/* * @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 . * */ app.controller('ListController', function ($scope, $location, $filter, BoardService, $element) { $scope.boards = []; $scope.newBoard = {}; $scope.status = {}; $scope.colors = ['31CC7C', '317CCC', 'FF7A66', 'F1DB50', '7C31CC', 'CC317C', '3A3B3D', 'CACBCD']; $scope.boardservice = BoardService; // FIXME: not nice, but we want to load this only once if($element.attr('id') === 'app-navigation') { BoardService.fetchAll().then(function(data) { $scope.filterData(); }, function (error) { // TODO: show error when loading fails }); } $scope.filterData = function () { angular.copy($scope.boardservice.getData(), $scope.boardservice.sorted); $scope.boardservice.sorted = $filter('orderBy')($scope.boardservice.sorted, 'title'); }; $scope.selectColor = function(color) { $scope.newBoard.color = color; }; $scope.boardCreate = function() { if(!$scope.newBoard.title || !$scope.newBoard.color) { $scope.status.addBoard=false; return; } BoardService.create($scope.newBoard) .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).then(function(data) { $scope.filterData(); }); board.status.edit = false; }; $scope.boardDelete = function(board) { BoardService.delete(board.id).then(function (data) { $scope.filterData(); }); }; });