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 @@ class="icon icon-archive">t('Unarchive')); ?>