diff --git a/js/controller/BoardController.js b/js/controller/BoardController.js index be414f923..69254c9c8 100644 --- a/js/controller/BoardController.js +++ b/js/controller/BoardController.js @@ -169,8 +169,14 @@ app.controller('BoardController', function ($rootScope, $scope, $stateParams, St }; $scope.cardDelete = function (card) { - CardService.delete(card.id); - StackService.removeCard(card); + OC.dialogs.confirm(t('deck', 'Are you sure you want to delete this card with all of its data?'), t('deck', 'Delete'), function(state) { + if (!state) { + return; + } + CardService.delete(card.id).then(function () { + StackService.removeCard(card); + }); + }); }; $scope.cardArchive = function (card) { CardService.archive(card); diff --git a/js/service/StackService.js b/js/service/StackService.js index daf2f3c5c..1343aa551 100644 --- a/js/service/StackService.js +++ b/js/service/StackService.js @@ -118,6 +118,26 @@ app.factory('StackService', function (ApiService, $http, $q) { } }; + // FIXME: Should not sure popup but proper undo mechanism + StackService.prototype.delete = function (id) { + var deferred = $q.defer(); + var self = this; + + OC.dialogs.confirm('Are you sure you want to delete the stack with all of its data?', t('deck', 'Delete'), function(state) { + if (!state) { + return; + } + $http.delete(self.baseUrl + '/' + id).then(function (response) { + self.remove(id); + deferred.resolve(response.data); + + }, function (error) { + deferred.reject('Deleting ' + self.endpoint + ' failed'); + }); + }); + return deferred.promise; + }; + var service = new StackService($http, 'stacks', $q); return service; }); diff --git a/templates/part.board.mainView.php b/templates/part.board.mainView.php index 004fd2a9e..1de9a543b 100644 --- a/templates/part.board.mainView.php +++ b/templates/part.board.mainView.php @@ -104,7 +104,7 @@
  • t('Delete')); ?>