summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJimmy Huynh <jimmy.huynh@etu.unistra.fr>2021-01-28 16:24:44 +0100
committerSean Molenaar <SMillerDev@users.noreply.github.com>2021-04-08 23:17:31 +0200
commita78287a77722483a99784c96c694044c22c6921b (patch)
tree9b8134d10d5c07972c720138103cea366358f0d7
parentb5df8bbec96be2210408374561571f542913bc0f (diff)
(+) Blocking multiple sharing request to the same user
Signed-off-by: Marco Nassabain <marco.nassabain@hotmail.com>
-rw-r--r--js/controller/ShareController.js10
-rw-r--r--templates/part.content.php2
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 }}