mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-26 16:46:12 +01:00
refactor: client-side to use flag notes API
This commit is contained in:
@@ -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]]');
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user