From 5388f2af69ca472bae2b3f96688547ab79b0ab9a Mon Sep 17 00:00:00 2001 From: Julius Haertl Date: Wed, 24 Aug 2016 01:58:54 +0200 Subject: [PATCH] Fix board ordering on rename --- js/controller/BoardController.js | 2 +- js/controller/ListController.js | 26 +++++++++++--- js/public/app.js | 55 +++++++++++++----------------- js/service/BoardService.js | 2 +- lib/Controller/BoardController.php | 4 +-- lib/Db/AclMapper.php | 6 ++-- templates/part.boardlist.php | 6 ++-- templates/part.navigation.php | 2 +- 8 files changed, 55 insertions(+), 48 deletions(-) diff --git a/js/controller/BoardController.js b/js/controller/BoardController.js index 7fd3b8fcd..d98ebde82 100644 --- a/js/controller/BoardController.js +++ b/js/controller/BoardController.js @@ -189,7 +189,7 @@ app.controller('BoardController', function ($rootScope, $scope, $stateParams, St $scope.status.addSharee = null; } $scope.aclDelete = function(acl) { - BoardService.deleteAcl(acl.id); + BoardService.deleteAcl(acl); } $scope.aclUpdate = function(acl) { BoardService.updateAcl(acl); diff --git a/js/controller/ListController.js b/js/controller/ListController.js index 016d499c1..0024ed1db 100644 --- a/js/controller/ListController.js +++ b/js/controller/ListController.js @@ -21,15 +21,19 @@ * */ -app.controller('ListController', function ($scope, $location, BoardService) { - $scope.boards = null; +app.controller('ListController', function ($scope, $location, $filter, BoardService) { + $scope.boards = []; $scope.newBoard = {}; $scope.status = {}; $scope.colors = ['31CC7C', '317CCC', 'FF7A66', 'F1DB50', '7C31CC', 'CC317C', '3A3B3D', 'CACBCD']; $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.newBoard.color = color; @@ -40,21 +44,33 @@ app.controller('ListController', function ($scope, $location, BoardService) { .then(function (response) { $scope.newBoard = {}; $scope.status.addBoard=false; + $scope.filterData(); }, function(error) { $scope.status.createBoard = 'Unable to insert board: ' + error.message; }); }; $scope.boardUpdate = function(board) { - BoardService.update(board); + BoardService.update(board).then(function(data) { + $scope.filterData(); + }); board.status.edit = false; }; $scope.boardDelete = function(board) { // TODO: Ask for confirmation //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); + }; + diff --git a/js/public/app.js b/js/public/app.js index fef51bac2..35e224abf 100644 --- a/js/public/app.js +++ b/js/public/app.js @@ -1,26 +1,4 @@ -/* - * @copyright Copyright (c) 2016 Julius Härtl - * - * @author Julius Härtl - * - * @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 . - * - */ - angular.module('markdown', []) .provider('markdown', [function () { var opts = {}; @@ -308,7 +286,7 @@ app.controller('BoardController', ["$rootScope", "$scope", "$stateParams", "Stat $scope.status.addSharee = null; } $scope.aclDelete = function(acl) { - BoardService.deleteAcl(acl.id); + BoardService.deleteAcl(acl); } $scope.aclUpdate = function(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) { $scope.sidebar = $rootScope.sidebar; $scope.status = {}; @@ -423,16 +399,19 @@ app.controller('CardController', ["$scope", "$rootScope", "$routeParams", "$loca }]); - -app.controller('ListController', ["$scope", "$location", "BoardService", function ($scope, $location, BoardService) { - $scope.boards = null; +app.controller('ListController', ["$scope", "$location", "$filter", "BoardService", function ($scope, $location, $filter, BoardService) { + $scope.boards = []; $scope.newBoard = {}; $scope.status = {}; $scope.colors = ['31CC7C', '317CCC', 'FF7A66', 'F1DB50', '7C31CC', 'CC317C', '3A3B3D', 'CACBCD']; $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.newBoard.color = color; @@ -443,21 +422,33 @@ app.controller('ListController', ["$scope", "$location", "BoardService", functio .then(function (response) { $scope.newBoard = {}; $scope.status.addBoard=false; + $scope.filterData(); }, function(error) { $scope.status.createBoard = 'Unable to insert board: ' + error.message; }); }; $scope.boardUpdate = function(board) { - BoardService.update(board); + BoardService.update(board).then(function(data) { + $scope.filterData(); + }); board.status.edit = false; }; $scope.boardDelete = function(board) { // TODO: Ask for confirmation //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]; deferred.resolve(response.data); }, function (error) { - deferred.reject('Error deleting ACL ' + id); + deferred.reject('Error deleting ACL ' + acl.id); }); acl = null; return deferred.promise; diff --git a/js/service/BoardService.js b/js/service/BoardService.js index 70600dce5..a638e15aa 100644 --- a/js/service/BoardService.js +++ b/js/service/BoardService.js @@ -66,7 +66,7 @@ app.factory('BoardService', function(ApiService, $http, $q){ delete board.acl[response.data.id]; deferred.resolve(response.data); }, function (error) { - deferred.reject('Error deleting ACL ' + id); + deferred.reject('Error deleting ACL ' + acl.id); }); acl = null; return deferred.promise; diff --git a/lib/Controller/BoardController.php b/lib/Controller/BoardController.php index 58350f39c..1f03567e8 100644 --- a/lib/Controller/BoardController.php +++ b/lib/Controller/BoardController.php @@ -125,8 +125,8 @@ class BoardController extends Controller { * @NoAdminRequired * @RequireManagePermission */ - public function deleteAcl($id) { - return $this->boardService->deleteAcl($id); + public function deleteAcl($aclId) { + return $this->boardService->deleteAcl($aclId); } } \ No newline at end of file diff --git a/lib/Db/AclMapper.php b/lib/Db/AclMapper.php index 942b6a69b..6c01e57fc 100644 --- a/lib/Db/AclMapper.php +++ b/lib/Db/AclMapper.php @@ -36,9 +36,9 @@ class AclMapper extends DeckMapper implements IPermissionMapper { } 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` = ? ' . - 'UNION SELECT 0, id, \'user\', owner, 1, 1, 1, 1 FROM `*PREFIX*deck_boards` WHERE `id` = ? '; - return $this->findEntities($sql, [$boardId, $boardId], $limit, $offset); + $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` = ? '; + return $this->findEntities($sql, [$boardId], $limit, $offset); } public function findAllShared($boardId) { diff --git a/templates/part.boardlist.php b/templates/part.boardlist.php index 7e1ff0c39..837d913c2 100644 --- a/templates/part.boardlist.php +++ b/templates/part.boardlist.php @@ -1,5 +1,5 @@
- + diff --git a/templates/part.navigation.php b/templates/part.navigation.php index 9353fc36e..eedbeeb54 100644 --- a/templates/part.navigation.php +++ b/templates/part.navigation.php @@ -7,7 +7,7 @@
  • Public Boards
  • //--> -
  • +
  • {{ b.title }}