diff options
author | Fatih Acet <acetfatih@gmail.com> | 2017-07-09 17:16:18 +0300 |
---|---|---|
committer | Fatih Acet <acetfatih@gmail.com> | 2017-07-21 22:35:25 +0300 |
commit | 08d597c7ce779608a689a85b63387a1f9da3e898 (patch) | |
tree | 13dd417ceb3633b01f9177d0de275ef2339f7033 | |
parent | 3d4d9c5ab9464954d80a7bad3cff70d49af9b74f (diff) | |
download | gitlab-ce-08d597c7ce779608a689a85b63387a1f9da3e898.tar.gz |
IssueNotesRefactor: Implement :+1: :-1: mutality check.
-rw-r--r-- | app/assets/javascripts/notes/stores/issue_notes_store.js | 20 |
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); + } + } }); }, }; |