diff options
author | Jimmy Huynh <jimmy.huynh@etu.unistra.fr> | 2021-01-28 16:24:44 +0100 |
---|---|---|
committer | Sean Molenaar <SMillerDev@users.noreply.github.com> | 2021-04-08 23:17:31 +0200 |
commit | a78287a77722483a99784c96c694044c22c6921b (patch) | |
tree | 9b8134d10d5c07972c720138103cea366358f0d7 | |
parent | b5df8bbec96be2210408374561571f542913bc0f (diff) |
(+) Blocking multiple sharing request to the same user
Signed-off-by: Marco Nassabain <marco.nassabain@hotmail.com>
-rw-r--r-- | js/controller/ShareController.js | 10 | ||||
-rw-r--r-- | templates/part.content.php | 2 |
2 files changed, 11 insertions, 1 deletions
diff --git a/js/controller/ShareController.js b/js/controller/ShareController.js index 2977dc2c2..57722f416 100644 --- a/js/controller/ShareController.js +++ b/js/controller/ShareController.js @@ -25,7 +25,17 @@ app.controller('ShareController', function (ShareResource) { }); }; + // Dict <itemId, List<Int>(user_id)>: Local mapping b/w users & articles: [Article 1 : <Jimmy, Aurelien, ...>, Article 2: <...>] + this.usersSharedArticles = {}; + this.shareItem = function(itemId, userId) { + if (this.usersSharedArticles[itemId] && this.usersSharedArticles[itemId].includes(userId)) {return ; } + + // quick initialization (instead of if (...) : []) + this.usersSharedArticles[itemId] = this.usersSharedArticles[itemId] ? this.usersSharedArticles[itemId] : []; + + this.usersSharedArticles[itemId].push(userId); + var response = ShareResource.shareItem(itemId, userId); response.then((result) => { return result; diff --git a/templates/part.content.php b/templates/part.content.php index 962247e8f..f210508c6 100644 --- a/templates/part.content.php +++ b/templates/part.content.php @@ -119,7 +119,7 @@ </form> - <a + <a ng-repeat="user in Share.userList" ng-click="Share.shareItem(item.id, user.value.shareWith)"> {{ user.value.shareWith }} |