diff --git a/css/style.css b/css/style.css index 8336ffc3e..f79fc0544 100644 --- a/css/style.css +++ b/css/style.css @@ -866,3 +866,10 @@ button:hover { .icon-details-white { background-image: url('../img/details-white.svg'); } + +/** + * Hotfix for https://github.com/angular-ui/ui-select/issues/1652 + */ +.ui-select-dropdown.select2-drop-active { + opacity: 1 !important; +} \ No newline at end of file diff --git a/js/controller/BoardController.js b/js/controller/BoardController.js index 88283387b..8931e2b97 100644 --- a/js/controller/BoardController.js +++ b/js/controller/BoardController.js @@ -119,12 +119,7 @@ app.controller('BoardController', function ($rootScope, $scope, $stateParams, St $scope.statusservice.setError('Error occured', error); }); - BoardService.searchUsers('%25'); - $scope.searchForUser = function (search) { - if (search == "") { - search = "%25"; - } BoardService.searchUsers(search); }; diff --git a/js/service/BoardService.js b/js/service/BoardService.js index 223725793..a7ea42352 100644 --- a/js/service/BoardService.js +++ b/js/service/BoardService.js @@ -26,32 +26,82 @@ app.factory('BoardService', function(ApiService, $http, $q){ }; BoardService.prototype = angular.copy(ApiService.prototype); - BoardService.prototype.searchUsers = function(search) { - var url = OC.generateUrl('/apps/deck/share/search/'+search); - var deferred = $q.defer(); - var self = this; - $http.get(url).then(function (response) { + BoardService.prototype.searchUsers = function (search) { + var deferred = $q.defer(); + var self = this; + var searchData = { + format: 'json', + perPage: 4, + itemType: [0, 1] + }; + if (search !== "") { + searchData.search = search; + } + $http({ + method: 'GET', + url: OC.linkToOCS('apps/files_sharing/api/v1') + 'sharees', + params: searchData + }) + .then(function (result) { + var response = result.data; + if (response.ocs.meta.statuscode !== 100) { + deferred.reject('Error while searching for sharees'); + return; + } + self.sharees = []; - self.sharees = []; - // filter out everyone who is already in the share list - angular.forEach(response.data, function(item) { - var exists = false; - angular.forEach(self.getCurrent().acl, function(acl) { - if (acl.participant === item.participant) { - exists = true; - } - }); - if(!exists) { - self.sharees.push(item); - } - }); + var users = response.ocs.data.exact.users.concat(response.ocs.data.users); + var groups = response.ocs.data.exact.groups.concat(response.ocs.data.groups); - deferred.resolve(response.data); - }, function (error) { - deferred.reject('Error while update ' + self.endpoint); - }); - return deferred.promise; - }; + // filter out everyone who is already in the share list + angular.forEach(users, function (item) { + var exists = false; + angular.forEach(self.getCurrent().acl, function (acl) { + if (acl.participant.primaryKey === item.value.shareWith || OC.getCurrentUser() === item.value.shareWith) { + exists = true; + } + }); + if (!exists) { + self.sharees.push({ + boardId: null, + id: null, + owner: false, + participant: item.value.shareWith, + permissionEdit: true, + permissionManage: true, + permissionShare: true, + type: 'user' + }); + } + }); + angular.forEach(groups, function (item) { + var exists = false; + angular.forEach(self.getCurrent().acl, function (acl) { + if (acl.participant.primaryKey === item.value.shareWith) { + exists = true; + } + }); + if (!exists) { + self.sharees.push({ + boardId: null, + id: null, + owner: false, + participant: item.value.shareWith, + permissionEdit: true, + permissionManage: true, + permissionShare: true, + type: 'group' + }); + } + }); + + deferred.resolve(self.sharees); + }, function () { + deferred.reject('Error while searching for sharees'); + }); + + return deferred.promise; + }; BoardService.prototype.addAcl = function(acl) { var board = this.getCurrent(); diff --git a/lib/Controller/BoardController.php b/lib/Controller/BoardController.php index ac6b311d7..3a8df7c23 100644 --- a/lib/Controller/BoardController.php +++ b/lib/Controller/BoardController.php @@ -130,13 +130,13 @@ class BoardController extends Controller { * @param $boardId * @param $type * @param $participant - * @param $edit - * @param $share - * @param $manage + * @param $permissionEdit + * @param $permissionShare + * @param $permissionManage * @return \OCP\AppFramework\Db\Entity */ - public function addAcl($boardId, $type, $participant, $edit, $share, $manage) { - return $this->boardService->addAcl($boardId, $type, $participant, $edit, $share, $manage); + public function addAcl($boardId, $type, $participant, $permissionEdit, $permissionShare, $permissionManage) { + return $this->boardService->addAcl($boardId, $type, $participant, $permissionEdit, $permissionShare, $permissionManage); } /** diff --git a/templates/part.board.sidebarView.php b/templates/part.board.sidebarView.php index 7cb494586..6f0e74204 100644 --- a/templates/part.board.sidebarView.php +++ b/templates/part.board.sidebarView.php @@ -17,7 +17,7 @@