diff --git a/js/controller/BoardController.js b/js/controller/BoardController.js index 460818ffd..398a58632 100644 --- a/js/controller/BoardController.js +++ b/js/controller/BoardController.js @@ -200,6 +200,27 @@ app.controller('BoardController', function ($rootScope, $scope, $stateParams, St CardService.archive(card); StackService.removeCard(card); }; + $scope.isCurrentUserAssigned = function (card) { + if (! CardService.get(card.id).assignedUsers) { + return false; + } + var userList = CardService.get(card.id).assignedUsers.filter(function (obj) { + return obj.participant.uid === OC.getCurrentUser().uid; + }); + return userList.length === 1; + }; + $scope.cardAssignToMe = function (card) { + CardService.assignUser(card, OC.getCurrentUser().uid) + .then( + function() {StackService.updateCard(card);} + ); + $('.popovermenu').addClass('hidden'); + }; + $scope.cardUnassignFromMe = function (card) { + CardService.unassignUser(card, OC.getCurrentUser().uid); + StackService.updateCard(card); + $('.popovermenu').addClass('hidden'); + }; $scope.cardUnarchive = function (card) { CardService.unarchive(card); StackService.removeCard(card); diff --git a/js/service/CardService.js b/js/service/CardService.js index 1e62d1bdd..51edc4e1d 100644 --- a/js/service/CardService.js +++ b/js/service/CardService.js @@ -106,11 +106,11 @@ app.factory('CardService', function (ApiService, $http, $q) { CardService.prototype.assignUser = function (card, user) { var deferred = $q.defer(); var self = this; - if (self.getCurrent().assignedUsers === null) { - self.getCurrent().assignedUsers = []; + if (self.get(card.id).assignedUsers === null) { + self.get(card.id).assignedUsers = []; } $http.post(this.baseUrl + '/' + card.id + '/assign', {'userId': user}).then(function (response) { - self.getCurrent().assignedUsers.push(response.data); + self.get(card.id).assignedUsers.push(response.data); deferred.resolve(response.data); }, function (error) { deferred.reject('Error while update ' + self.endpoint); @@ -123,7 +123,7 @@ app.factory('CardService', function (ApiService, $http, $q) { var deferred = $q.defer(); var self = this; $http.delete(this.baseUrl + '/' + card.id + '/assign/' + user, {}).then(function (response) { - self.getCurrent().assignedUsers = self.getCurrent().assignedUsers.filter(function (obj) { + self.get(card.id).assignedUsers = self.get(card.id).assignedUsers.filter(function (obj) { return obj.participant.uid !== user; }); deferred.resolve(response.data); @@ -174,4 +174,4 @@ app.factory('CardService', function (ApiService, $http, $q) { var service = new CardService($http, 'cards', $q); return service; -}); \ No newline at end of file +}); diff --git a/templates/part.board.mainView.php b/templates/part.board.mainView.php index 717770d59..1b9ae6fdd 100644 --- a/templates/part.board.mainView.php +++ b/templates/part.board.mainView.php @@ -53,7 +53,7 @@ + ng-click="stackservice.delete(s.id)">