Skip to content

Commit

Permalink
deletion
Browse files Browse the repository at this point in the history
  • Loading branch information
blakecallens committed Mar 23, 2016
1 parent 182f9e5 commit 9a96dd0
Show file tree
Hide file tree
Showing 5 changed files with 75 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ <h1>^page_name^</h1>
<button type="button" class="btn hidden-xs" ng-class="{'btn-default': !topic.infoActive, 'btn-info': topic.infoActive}" ng-click="getTopicInfo(topic)">
<i class="fa fa-info-circle"></i>
</button>
<button type="button" class="btn btn-default">
<button type="button" class="btn btn-default" ng-click="confirmDeletion(topic)">
<i class="fa fa-trash"></i>
</button>
</div>
Expand All @@ -32,5 +32,6 @@ <h1>^page_name^</h1>
</div>
</div>
</div>
^tmp_admin-new=elements=deletion_modal^
</div>
^tmp_admin-new=footer^
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<div class="modal fade deletion-modal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-body">
^loc_CONFIRM_DELETE^ <span style="font-style: italic" ng-bind="objectToDelete[deletionNameKey]"></span>?
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal" ng-disabled="deleting">
<i class="fa fa-ban"></i>&nbsp;^loc_CANCEL^
</button>
<button type="button" class="btn btn-danger" ng-click="deleteObject()" ng-disabled="deleting">
<i class="fa fa-trash"></i>&nbsp;^loc_DELETE^&nbsp;<i class="fa fa-spinner fa-spin" ng-if="deleting"></i>
</button>
</div>
</div>
</div>
</div>
10 changes: 5 additions & 5 deletions plugins/pencilblue/templates/admin-new/elements/pagination.html
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<ul class="pagination pagination-sm" ng-if="pages.length > 1">
<li class="clickable" ng-class="{'disabled': paginationOffset === 0}"><a ng-click="paginate(0)"><i class="fa fa-angle-double-left"></i></a></li>
<li class="clickable" ng-class="{'disabled': paginationOffset === 0}"><a ng-click="paginate(paginationOffset - 1)"><i class="fa fa-angle-left"></i></a></li>
<li class="clickable" ng-class="{'active': paginationOffset === $index}" ng-repeat="page in pages"><a ng-click="paginate($index)" ng-bind="$index + 1"></a></li>
<li class="clickable" ng-class="{'disabled': paginationOffset === pages.length - 1}"><a ng-click="paginate(paginationOffset + 1)"><i class="fa fa-angle-right"></i></a></li>
<li class="clickable" ng-class="{'disabled': paginationOffset === pages.length - 1}"><a ng-click="paginate(pages.length - 1)"><i class="fa fa-angle-double-right"></i></a></li>
<li class="clickable" ng-class="{'disabled': paginationPage === 0}"><a ng-click="paginate(0)"><i class="fa fa-angle-double-left"></i></a></li>
<li class="clickable" ng-class="{'disabled': paginationPage === 0}"><a ng-click="paginate(paginationPage - 1)"><i class="fa fa-angle-left"></i></a></li>
<li class="clickable" ng-class="{'active': paginationPage === $index}" ng-repeat="page in pages"><a ng-click="paginate($index)" ng-bind="$index + 1"></a></li>
<li class="clickable" ng-class="{'disabled': paginationPage === pages.length - 1}"><a ng-click="paginate(paginationPage + 1)"><i class="fa fa-angle-right"></i></a></li>
<li class="clickable" ng-class="{'disabled': paginationPage === pages.length - 1}"><a ng-click="paginate(pages.length - 1)"><i class="fa fa-angle-double-right"></i></a></li>
</ul>
41 changes: 34 additions & 7 deletions public/js/admin-new/controllers/topics/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,14 @@
$rootScope.subNavKey = 'manage_topics';

$scope.searchText = $location.search().q || '';
$scope.paginationOffset = $location.search().offset || 0;
$scope.paginationLimit = $location.search().limit || 100;
$scope.paginationPage = parseInt($location.search().page) || 0;
$scope.paginationLimit = parseInt($location.search().limit) || 100;
$scope.pages = [];
$scope.deleteNameKey = 'name';

$scope.getTopics = function() {
$scope.topics = null;
topicsFactory.getTopics({q: $scope.searchText, $offset: $scope.paginationOffset, $limit: $scope.paginationLimit}, function(error, topics, total) {
topicsFactory.getTopics({q: $scope.searchText, $offset: $scope.paginationPage * $scope.paginationLimit, $limit: $scope.paginationLimit}, function(error, topics, total) {
$scope.topics = topics;
$scope.totalItems = total;
$scope.pages = [];
Expand All @@ -40,8 +40,8 @@
};

$scope.search = function() {
$scope.paginationPage = 0;
$scope.setLocationSearch();
$scope.paginationOffset = 0;
$scope.getTopics();
};

Expand All @@ -53,18 +53,18 @@
offset = $scope.pages.length - 1;
}

if(offset === $scope.paginationOffset) {
if(offset === $scope.paginationPage) {
return;
}

$scope.paginationOffset = offset;
$scope.paginationPage = offset;
$scope.getTopics();
};

$scope.setLocationSearch = function() {
$location.search({
q: $scope.searchText.length ? $scope.searchText : null,
offset: $scope.paginationOffset,
page: $scope.paginationPage,
limit: $scope.paginationLimit
});
};
Expand All @@ -76,6 +76,33 @@
topic.infoActive = true;
};

$scope.confirmDeletion = function(topic) {
$scope.objectToDelete = topic;
$scope.deletionNameKey = 'name';
angular.element('.deletion-modal').modal('show');
};

$scope.deleteObject = function() {
if(!$scope.objectToDelete) {
return;
}

$scope.deleting = true;
topicsFactory.deleteTopic($scope.objectToDelete._id || $scope.objectToDelete.id, function(error, result) {
if(error) {
$scope.deleting = false;
$scope.errorMessage = error.message;
angular.element('.deletion-modal').modal('hide');
return;
}

angular.element('.deletion-modal').modal('hide');
$scope.paginationPage = 0;
$scope.setLocationSearch();
$scope.getTopics();
});
};

$scope.getTopics();
});
}());
17 changes: 17 additions & 0 deletions public/js/admin-new/factories/content/topics.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,29 @@
}
}),

Topic: $resource('/api/content/topics/:id', {id: '@id'}, {
delete: {
method: 'DELETE',
params: {
id: '@id'
}
}
}),

getTopics: function(query, cb) {
var topics = this.Topics.get(query, function() {
cb(null, topics.data, topics.total);
}, function(error) {
cb(error);
});
},

deleteTopic: function(id, cb) {
this.Topic.delete({id: id}, function() {
cb(null);
}, function(error) {
cb(error);
});
}
};
});
Expand Down

0 comments on commit 9a96dd0

Please sign in to comment.