summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFatih Acet <acetfatih@gmail.com>2017-07-09 17:16:18 +0300
committerFatih Acet <acetfatih@gmail.com>2017-07-21 22:35:25 +0300
commit08d597c7ce779608a689a85b63387a1f9da3e898 (patch)
tree13dd417ceb3633b01f9177d0de275ef2339f7033
parent3d4d9c5ab9464954d80a7bad3cff70d49af9b74f (diff)
downloadgitlab-ce-08d597c7ce779608a689a85b63387a1f9da3e898.tar.gz
IssueNotesRefactor: Implement :+1: :-1: mutality check.
-rw-r--r--app/assets/javascripts/notes/stores/issue_notes_store.js20
1 files changed, 19 insertions, 1 deletions
diff --git a/app/assets/javascripts/notes/stores/issue_notes_store.js b/app/assets/javascripts/notes/stores/issue_notes_store.js
index bed516b072a..bc71d106294 100644
--- a/app/assets/javascripts/notes/stores/issue_notes_store.js
+++ b/app/assets/javascripts/notes/stores/issue_notes_store.js
@@ -186,7 +186,7 @@ const actions = {
});
},
toggleAward(context, data) {
- const { endpoint, awardName, noteId } = data;
+ const { endpoint, awardName, noteId, skipMutalityCheck } = data;
const note = context.getters.notesById[noteId];
return service
@@ -194,6 +194,24 @@ const actions = {
.then(res => res.json())
.then(() => {
context.commit('toggleAward', { awardName, note });
+
+ if (!skipMutalityCheck && (awardName === 'thumbsup' || awardName === 'thumbsdown')) {
+ const counterAward = awardName === 'thumbsup' ? 'thumbsdown' : 'thumbsup';
+ const note = context.getters.notesById[noteId];
+ let amIAwarded = false;
+
+ note.award_emoji.forEach((a) => {
+ if (a.name === counterAward && a.user.id === window.gon.current_user_id) {
+ amIAwarded = true;
+ }
+ });
+
+ if (amIAwarded) {
+ data.awardName = counterAward;
+ data.skipMutalityCheck = true;
+ context.dispatch('toggleAward', data);
+ }
+ }
});
},
};