From ef4e74bfc8324c904a92017c3165e57435a0901c Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Fri, 16 Jul 2021 13:51:37 -0400 Subject: [PATCH] refactor: client-side to use flag notes API --- public/src/client/flags/detail.js | 42 ++++++++++++------------------- src/socket.io/flags.js | 1 + 2 files changed, 17 insertions(+), 26 deletions(-) diff --git a/public/src/client/flags/detail.js b/public/src/client/flags/detail.js index 93489914f8..b43c7bcc5d 100644 --- a/public/src/client/flags/detail.js +++ b/public/src/client/flags/detail.js @@ -32,19 +32,29 @@ define('forum/flags/detail', ['forum/flags/list', 'components', 'translator', 'b } case 'appendNote': - socket.emit('flags.appendNote', { - flagId: ajaxify.data.flagId, + // socket.emit('flags.appendNote', { + api.post(`/flags/${ajaxify.data.flagId}/notes`, { note: noteEl.value, datetime: parseInt(noteEl.getAttribute('data-datetime'), 10), - }, function (err, payload) { - if (err) { - return app.alertError(err.message); - } + }).then((payload) => { app.alertSuccess('[[flags:note-added]]'); Detail.reloadNotes(payload.notes); Detail.reloadHistory(payload.history); noteEl.removeAttribute('data-datetime'); + }).catch(app.alertError); + break; + + case 'delete-note': + var datetime = parseInt(this.closest('[data-datetime]').getAttribute('data-datetime'), 10); + bootbox.confirm('[[flags:delete-note-confirm]]', function (ok) { + if (ok) { + api.delete(`/flags/${ajaxify.data.flagId}/notes/${datetime}`, {}).then((payload) => { + app.alertSuccess('[[flags:note-deleted]]'); + Detail.reloadNotes(payload.notes); + Detail.reloadHistory(payload.history); + }).catch(app.alertError); + } }); break; @@ -80,26 +90,6 @@ define('forum/flags/detail', ['forum/flags/list', 'components', 'translator', 'b postAction('restore', ajaxify.data.target.pid, ajaxify.data.target.tid); break; - case 'delete-note': - var datetime = parseInt(this.closest('[data-datetime]').getAttribute('data-datetime'), 10); - bootbox.confirm('[[flags:delete-note-confirm]]', function (ok) { - if (ok) { - socket.emit('flags.deleteNote', { - flagId: ajaxify.data.flagId, - datetime: datetime, - }, function (err, payload) { - if (err) { - return app.alertError(err.message); - } - - app.alertSuccess('[[flags:note-deleted]]'); - Detail.reloadNotes(payload.notes); - Detail.reloadHistory(payload.history); - }); - } - }); - break; - case 'prepare-edit': var selectedNoteEl = this.closest('[data-index]'); var index = selectedNoteEl.getAttribute('data-index'); diff --git a/src/socket.io/flags.js b/src/socket.io/flags.js index 7b53f4e28a..ee8bc9ac05 100644 --- a/src/socket.io/flags.js +++ b/src/socket.io/flags.js @@ -41,6 +41,7 @@ SocketFlags.appendNote = async function (socket, data) { }; SocketFlags.deleteNote = async function (socket, data) { + sockets.warnDeprecated(socket, 'DELETE /api/v3/flags/:flagId/notes/:datetime'); if (!data || !(data.flagId && data.datetime)) { throw new Error('[[error:invalid-data]]'); }