From 2adc5c13e424f630f772805af78df58dcea34ed1 Mon Sep 17 00:00:00 2001 From: user Date: Sat, 28 Apr 2018 23:44:17 +0300 Subject: [PATCH 01/93] Server: /toggle-private-messages-opt --- website/server/controllers/api-v3/members.js | 23 ++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/website/server/controllers/api-v3/members.js b/website/server/controllers/api-v3/members.js index 61e0e3ec19..6f0ab6fe2d 100644 --- a/website/server/controllers/api-v3/members.js +++ b/website/server/controllers/api-v3/members.js @@ -510,6 +510,29 @@ api.sendPrivateMessage = { }, }; +/** + * @api {post} /api/v3/members/toggle-private-messages-opt Opt-out / opt-in private messages + * @apiDescription Opt-out / opt-in private messaging functionality + * @apiName TogglePrivateMessagesOpt + * @apiGroup Member + * + * @apiSuccess {Object} data An empty Object + */ +api.togglePrivateMessagesOpt = { + method: 'POST', + url: '/members/toggle-private-messages-opt', + middlewares: [authWithHeaders()], + async handler (req, res) { + let user = res.locals.user; + + user.inbox.optOut = !user.inbox.optOut; + + await user.save(); + + res.respond(200, {}); + }, +}; + /** * @api {post} /api/v3/members/transfer-gems Send a gem gift to a member * @apiName TransferGems From 4a0856c91999dd58174f37ad02468ba8189cef05 Mon Sep 17 00:00:00 2001 From: user Date: Sun, 29 Apr 2018 03:07:03 +0300 Subject: [PATCH 02/93] Client: opt-in / opt-out functionalitonality is ready --- website/client/components/userMenu/inbox.vue | 77 +++++++++++++++++++- website/client/store/actions/members.js | 7 ++ 2 files changed, 83 insertions(+), 1 deletion(-) diff --git a/website/client/components/userMenu/inbox.vue b/website/client/components/userMenu/inbox.vue index 58428090c7..f918dd75b2 100644 --- a/website/client/components/userMenu/inbox.vue +++ b/website/client/components/userMenu/inbox.vue @@ -16,7 +16,12 @@ // .col-8.to-form(v-if='displayCreate') // strong To: // b-form-input - .row + .row + .col-12 + div.toggle(:class="!this.user.inbox.optOut && 'toggle--active'" @click="toggleOpt()") + div.bar + div.circle + .row(v-if="!this.user.inbox.optOut") .col-4.sidebar .search-section b-form-input(:placeholder="$t('search')", v-model='search') @@ -45,6 +50,9 @@ .new-message-row(v-if='selectedConversation.key') textarea(v-model='newMessage') button.btn.btn-secondary(@click='sendPrivateMessage()') Send + .row(v-else) + .col-12 + .h3.text-center You disabled private messages \ No newline at end of file + diff --git a/website/client/components/shops/quests/questInfo.vue b/website/client/components/shops/quests/questInfo.vue index 0cab52200b..a395eca04e 100644 --- a/website/client/components/shops/quests/questInfo.vue +++ b/website/client/components/shops/quests/questInfo.vue @@ -1,17 +1,18 @@