Fix board ordering on rename

This commit is contained in:
Julius Haertl
2016-08-24 01:58:54 +02:00
parent 2deffacd98
commit 5388f2af69
8 changed files with 55 additions and 48 deletions

View File

@@ -189,7 +189,7 @@ app.controller('BoardController', function ($rootScope, $scope, $stateParams, St
$scope.status.addSharee = null; $scope.status.addSharee = null;
} }
$scope.aclDelete = function(acl) { $scope.aclDelete = function(acl) {
BoardService.deleteAcl(acl.id); BoardService.deleteAcl(acl);
} }
$scope.aclUpdate = function(acl) { $scope.aclUpdate = function(acl) {
BoardService.updateAcl(acl); BoardService.updateAcl(acl);

View File

@@ -21,15 +21,19 @@
* *
*/ */
app.controller('ListController', function ($scope, $location, BoardService) { app.controller('ListController', function ($scope, $location, $filter, BoardService) {
$scope.boards = null; $scope.boards = [];
$scope.newBoard = {}; $scope.newBoard = {};
$scope.status = {}; $scope.status = {};
$scope.colors = ['31CC7C', '317CCC', 'FF7A66', 'F1DB50', '7C31CC', 'CC317C', '3A3B3D', 'CACBCD']; $scope.colors = ['31CC7C', '317CCC', 'FF7A66', 'F1DB50', '7C31CC', 'CC317C', '3A3B3D', 'CACBCD'];
$scope.boardservice = BoardService; $scope.boardservice = BoardService;
BoardService.fetchAll(); // TODO: show error when loading fails BoardService.fetchAll().then(function(data) {
$scope.filterData();
}, function (error) {
}); // TODO: show error when loading fails
$scope.selectColor = function(color) { $scope.selectColor = function(color) {
$scope.newBoard.color = color; $scope.newBoard.color = color;
@@ -40,21 +44,33 @@ app.controller('ListController', function ($scope, $location, BoardService) {
.then(function (response) { .then(function (response) {
$scope.newBoard = {}; $scope.newBoard = {};
$scope.status.addBoard=false; $scope.status.addBoard=false;
$scope.filterData();
}, function(error) { }, function(error) {
$scope.status.createBoard = 'Unable to insert board: ' + error.message; $scope.status.createBoard = 'Unable to insert board: ' + error.message;
}); });
}; };
$scope.boardUpdate = function(board) { $scope.boardUpdate = function(board) {
BoardService.update(board); BoardService.update(board).then(function(data) {
$scope.filterData();
});
board.status.edit = false; board.status.edit = false;
}; };
$scope.boardDelete = function(board) { $scope.boardDelete = function(board) {
// TODO: Ask for confirmation // TODO: Ask for confirmation
//if (confirm('Are you sure you want to delete this?')) { //if (confirm('Are you sure you want to delete this?')) {
BoardService.delete(board.id); BoardService.delete(board.id).then(function (data) {
$scope.filterData();
});
//} //}
}; };
$scope.filterData = function () {
console.log("filter");
angular.copy($scope.boardservice.getData(), $scope.boards);
$scope.boards = $filter('orderBy')($scope.boards, 'title');
console.log($scope.boards);
};

View File

@@ -1,26 +1,4 @@
/*
* @copyright Copyright (c) 2016 Julius Härtl <jus@bitgrid.net>
*
* @author Julius Härtl <jus@bitgrid.net>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
angular.module('markdown', []) angular.module('markdown', [])
.provider('markdown', [function () { .provider('markdown', [function () {
var opts = {}; var opts = {};
@@ -308,7 +286,7 @@ app.controller('BoardController', ["$rootScope", "$scope", "$stateParams", "Stat
$scope.status.addSharee = null; $scope.status.addSharee = null;
} }
$scope.aclDelete = function(acl) { $scope.aclDelete = function(acl) {
BoardService.deleteAcl(acl.id); BoardService.deleteAcl(acl);
} }
$scope.aclUpdate = function(acl) { $scope.aclUpdate = function(acl) {
BoardService.updateAcl(acl); BoardService.updateAcl(acl);
@@ -364,8 +342,6 @@ app.controller('BoardController', ["$rootScope", "$scope", "$stateParams", "Stat
}]); }]);
app.controller('CardController', ["$scope", "$rootScope", "$routeParams", "$location", "$stateParams", "BoardService", "CardService", "StackService", "StatusService", function ($scope, $rootScope, $routeParams, $location, $stateParams, BoardService, CardService, StackService, StatusService) { app.controller('CardController', ["$scope", "$rootScope", "$routeParams", "$location", "$stateParams", "BoardService", "CardService", "StackService", "StatusService", function ($scope, $rootScope, $routeParams, $location, $stateParams, BoardService, CardService, StackService, StatusService) {
$scope.sidebar = $rootScope.sidebar; $scope.sidebar = $rootScope.sidebar;
$scope.status = {}; $scope.status = {};
@@ -423,16 +399,19 @@ app.controller('CardController', ["$scope", "$rootScope", "$routeParams", "$loca
}]); }]);
app.controller('ListController', ["$scope", "$location", "$filter", "BoardService", function ($scope, $location, $filter, BoardService) {
app.controller('ListController', ["$scope", "$location", "BoardService", function ($scope, $location, BoardService) { $scope.boards = [];
$scope.boards = null;
$scope.newBoard = {}; $scope.newBoard = {};
$scope.status = {}; $scope.status = {};
$scope.colors = ['31CC7C', '317CCC', 'FF7A66', 'F1DB50', '7C31CC', 'CC317C', '3A3B3D', 'CACBCD']; $scope.colors = ['31CC7C', '317CCC', 'FF7A66', 'F1DB50', '7C31CC', 'CC317C', '3A3B3D', 'CACBCD'];
$scope.boardservice = BoardService; $scope.boardservice = BoardService;
BoardService.fetchAll(); // TODO: show error when loading fails BoardService.fetchAll().then(function(data) {
$scope.filterData();
}, function (error) {
}); // TODO: show error when loading fails
$scope.selectColor = function(color) { $scope.selectColor = function(color) {
$scope.newBoard.color = color; $scope.newBoard.color = color;
@@ -443,21 +422,33 @@ app.controller('ListController', ["$scope", "$location", "BoardService", functio
.then(function (response) { .then(function (response) {
$scope.newBoard = {}; $scope.newBoard = {};
$scope.status.addBoard=false; $scope.status.addBoard=false;
$scope.filterData();
}, function(error) { }, function(error) {
$scope.status.createBoard = 'Unable to insert board: ' + error.message; $scope.status.createBoard = 'Unable to insert board: ' + error.message;
}); });
}; };
$scope.boardUpdate = function(board) { $scope.boardUpdate = function(board) {
BoardService.update(board); BoardService.update(board).then(function(data) {
$scope.filterData();
});
board.status.edit = false; board.status.edit = false;
}; };
$scope.boardDelete = function(board) { $scope.boardDelete = function(board) {
// TODO: Ask for confirmation // TODO: Ask for confirmation
//if (confirm('Are you sure you want to delete this?')) { //if (confirm('Are you sure you want to delete this?')) {
BoardService.delete(board.id); BoardService.delete(board.id).then(function (data) {
$scope.filterData();
});
//} //}
}; };
$scope.filterData = function () {
console.log("filter");
angular.copy($scope.boardservice.getData(), $scope.boards);
$scope.boards = $filter('orderBy')($scope.boards, 'title');
console.log($scope.boards);
};
@@ -908,7 +899,7 @@ app.factory('BoardService', ["ApiService", "$http", "$q", function(ApiService, $
delete board.acl[response.data.id]; delete board.acl[response.data.id];
deferred.resolve(response.data); deferred.resolve(response.data);
}, function (error) { }, function (error) {
deferred.reject('Error deleting ACL ' + id); deferred.reject('Error deleting ACL ' + acl.id);
}); });
acl = null; acl = null;
return deferred.promise; return deferred.promise;

View File

@@ -66,7 +66,7 @@ app.factory('BoardService', function(ApiService, $http, $q){
delete board.acl[response.data.id]; delete board.acl[response.data.id];
deferred.resolve(response.data); deferred.resolve(response.data);
}, function (error) { }, function (error) {
deferred.reject('Error deleting ACL ' + id); deferred.reject('Error deleting ACL ' + acl.id);
}); });
acl = null; acl = null;
return deferred.promise; return deferred.promise;

View File

@@ -125,8 +125,8 @@ class BoardController extends Controller {
* @NoAdminRequired * @NoAdminRequired
* @RequireManagePermission * @RequireManagePermission
*/ */
public function deleteAcl($id) { public function deleteAcl($aclId) {
return $this->boardService->deleteAcl($id); return $this->boardService->deleteAcl($aclId);
} }
} }

View File

@@ -36,9 +36,9 @@ class AclMapper extends DeckMapper implements IPermissionMapper {
} }
public function findAll($boardId, $limit=null, $offset=null) { public function findAll($boardId, $limit=null, $offset=null) {
$sql = 'SELECT id, board_id, type, participant, permission_write, permission_invite, permission_manage, 0 as owner FROM `*PREFIX*deck_board_acl` WHERE `board_id` = ? ' . $sql = 'SELECT id, board_id, type, participant, permission_write, permission_invite, permission_manage FROM `*PREFIX*deck_board_acl` WHERE `board_id` = ? ';
'UNION SELECT 0, id, \'user\', owner, 1, 1, 1, 1 FROM `*PREFIX*deck_boards` WHERE `id` = ? '; //'UNION SELECT 0, id, \'user\', owner, 1, 1, 1, 1 FROM `*PREFIX*deck_boards` WHERE `id` = ? ';
return $this->findEntities($sql, [$boardId, $boardId], $limit, $offset); return $this->findEntities($sql, [$boardId], $limit, $offset);
} }
public function findAllShared($boardId) { public function findAllShared($boardId) {

View File

@@ -1,5 +1,5 @@
<div id="boardlist"> <div id="boardlist">
<table width="100%"> <!--<table width="100%">
<thead> <thead>
<tr> <tr>
<td class="cell-board-bullet"></td> <td class="cell-board-bullet"></td>
@@ -8,7 +8,7 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr data-ng-repeat="b in boardservice.data" <tr data-ng-repeat="b in boards"
ui-sref="board({boardId: b.id})"> ui-sref="board({boardId: b.id})">
<td> <td>
<span class="board-bullet" <span class="board-bullet"
@@ -50,5 +50,5 @@
<td></td> <td></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>//-->
</div> </div>

View File

@@ -7,7 +7,7 @@
<li><a href="#" class="icon-public">Public Boards</a></li> <li><a href="#" class="icon-public">Public Boards</a></li>
//--> //-->
<li class="with-icon with-menu" data-ng-repeat="b in boardservice.getData() | orderBy: ['shared', 'title']"> <li class="with-icon with-menu" data-ng-repeat="b in boards">
<span class="board-bullet" style="background-color:#{{b.color}};" ng-if="!b.status.edit"> </span> <span class="board-bullet" style="background-color:#{{b.color}};" ng-if="!b.status.edit"> </span>
<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;">