Fix deleting boards and add a simple undo function

Signed-off-by: Julius Härtl <jus@bitgrid.net>
This commit is contained in:
Julius Härtl
2017-05-02 08:56:03 +02:00
parent 8b4e7ec2bf
commit 588252d949
3 changed files with 35 additions and 9 deletions

View File

@@ -86,6 +86,13 @@ button:hover {
cursor: pointer; cursor: pointer;
} }
#app-navigation .app-navigation-entry-utils li.board-delete-undo {
background-color: #aa0000;
color: #fff;
cursor: pointer;
width: auto !important;
}
/** /**
* Board view * Board view
*/ */

View File

@@ -21,10 +21,12 @@
* *
*/ */
app.controller('ListController', function ($scope, $location, $filter, BoardService, $element) { app.controller('ListController', function ($scope, $location, $filter, BoardService, $element, $timeout) {
$scope.boards = []; $scope.boards = [];
$scope.newBoard = {}; $scope.newBoard = {};
$scope.status = {}; $scope.status = {
deleteUndo: []
};
$scope.colors = ['0082c9', '00c9c6','00c906', 'c92b00', 'F1DB50', '7C31CC', '3A3B3D', 'CACBCD']; $scope.colors = ['0082c9', '00c9c6','00c906', 'c92b00', 'F1DB50', '7C31CC', '3A3B3D', 'CACBCD'];
$scope.boardservice = BoardService; $scope.boardservice = BoardService;
$scope.newBoard.color = $scope.colors[0]; $scope.newBoard.color = $scope.colors[0];
@@ -71,9 +73,25 @@ app.controller('ListController', function ($scope, $location, $filter, BoardServ
}; };
$scope.boardDelete = function(board) { $scope.boardDelete = function(board) {
var boardId = board.id;
$scope.status.deleteUndo[boardId] = 10;
$scope.boardDeleteCountdown = function () {
console.log($scope.status);
if($scope.status.deleteUndo[boardId] > 0) {
$scope.status.deleteUndo[boardId]--;
$timeout($scope.boardDeleteCountdown, 1000);
}
if($scope.status.deleteUndo[boardId] === 0) {
BoardService.delete(board.id).then(function (data) { BoardService.delete(board.id).then(function (data) {
$scope.filterData(); $scope.filterData();
}); });
}
};
$timeout($scope.boardDeleteCountdown, 1000);
};
$scope.boardDeleteUndo = function (board) {
delete $scope.status.deleteUndo[board.id];
}; };
}); });

View File

@@ -7,15 +7,16 @@
<a href="#!/board/{{b.id}}/" ng-if="!b.status.edit">{{ b.title }}</a> <a href="#!/board/{{b.id}}/" ng-if="!b.status.edit">{{ b.title }}</a>
<div class="app-navigation-entry-utils" ng-show="!b.status.edit" style="position:absolute;"> <div class="app-navigation-entry-utils" ng-show="!b.status.edit" style="position:absolute;">
<ul> <ul>
<li class="app-navigation-entry-utils-counter board-delete-undo" ng-show="status.deleteUndo[b.id]" ng-click="boardDeleteUndo(b)" title="Click to undo">Deleting in {{ status.deleteUndo[b.id] }}s &nbsp; X</li>
<li class="app-navigation-entry-utils-menu-share svg" ng-show="b.shared>0"><i class="icon icon-share" title="<?php p($l->t('Shared with you')); ?>"> </i></li> <li class="app-navigation-entry-utils-menu-share svg" ng-show="b.shared>0"><i class="icon icon-share" title="<?php p($l->t('Shared with you')); ?>"> </i></li>
<li class="app-navigation-entry-utils-menu-button svg"><button class="icon-more"></button></li> <li class="app-navigation-entry-utils-menu-button svg" ng-show="!status.deleteUndo[b.id]"><button class="icon-more"></button></li>
</ul> </ul>
</div> </div>
<div class="app-navigation-entry-menu app-navigation-noclose" ng-show="!b.status.edit"> <div class="app-navigation-entry-menu app-navigation-noclose" ng-show="!b.status.edit">
<ul> <ul>
<li ng-show="b.owner===user"><button class="icon-rename svg" title="<?php p($l->t('edit')); ?>" ng-click="b.status.edit=true"></button></li> <li ng-show="b.owner.uid===user"><button class="icon-rename svg" title="<?php p($l->t('edit')); ?>" ng-click="b.status.edit=true"></button></li>
<li ng-show="b.owner===user"><button class="icon-delete svg" title="<?php p($l->t('delete')); ?>" ng-click="boardDelete(b)"></button></li> <li ng-show="b.owner.uid===user"><button class="icon-delete svg" title="<?php p($l->t('delete')); ?>" ng-click="boardDelete(b)"></button></li>
<li ng-show="b.owner!==user"><button class="icon-delete svg" title="<?php p($l->t('remove share')); ?>" ng-click="boardRemoveShare(b)"></button></li> <li ng-show="b.owner.uid!==user && false"><button class="icon-delete svg" title="<?php p($l->t('remove share')); ?>" ng-click="boardRemoveShare(b)"></button></li>
</ul> </ul>
</div> </div>
<div class="app-navigation-entry-deleted" ng-show="false"> <div class="app-navigation-entry-deleted" ng-show="false">