refactor: client-side to use flag notes API

v1.18.x
Julian Lam 4 years ago
parent cc6cbfcdc4
commit ef4e74bfc8

@ -32,19 +32,29 @@ define('forum/flags/detail', ['forum/flags/list', 'components', 'translator', 'b
} }
case 'appendNote': case 'appendNote':
socket.emit('flags.appendNote', { // socket.emit('flags.appendNote', {
flagId: ajaxify.data.flagId, api.post(`/flags/${ajaxify.data.flagId}/notes`, {
note: noteEl.value, note: noteEl.value,
datetime: parseInt(noteEl.getAttribute('data-datetime'), 10), datetime: parseInt(noteEl.getAttribute('data-datetime'), 10),
}, function (err, payload) { }).then((payload) => {
if (err) {
return app.alertError(err.message);
}
app.alertSuccess('[[flags:note-added]]'); app.alertSuccess('[[flags:note-added]]');
Detail.reloadNotes(payload.notes); Detail.reloadNotes(payload.notes);
Detail.reloadHistory(payload.history); Detail.reloadHistory(payload.history);
noteEl.removeAttribute('data-datetime'); 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; 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); postAction('restore', ajaxify.data.target.pid, ajaxify.data.target.tid);
break; 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': case 'prepare-edit':
var selectedNoteEl = this.closest('[data-index]'); var selectedNoteEl = this.closest('[data-index]');
var index = selectedNoteEl.getAttribute('data-index'); var index = selectedNoteEl.getAttribute('data-index');

@ -41,6 +41,7 @@ SocketFlags.appendNote = async function (socket, data) {
}; };
SocketFlags.deleteNote = 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)) { if (!data || !(data.flagId && data.datetime)) {
throw new Error('[[error:invalid-data]]'); throw new Error('[[error:invalid-data]]');
} }

Loading…
Cancel
Save