Fix wrong attachment removal (#16915)
This commit is contained in:
parent
6e0e414f55
commit
07fde28ddb
1 changed files with 11 additions and 20 deletions
|
@ -1030,7 +1030,7 @@ async function initRepository() {
|
|||
if ($dropzone.length === 1) {
|
||||
$dropzone.data('saved', false);
|
||||
|
||||
const filenameDict = {};
|
||||
const fileUuidDict = {};
|
||||
dz = await createDropzone($dropzone[0], {
|
||||
url: $dropzone.data('upload-url'),
|
||||
headers: {'X-Csrf-Token': csrf},
|
||||
|
@ -1048,28 +1048,24 @@ async function initRepository() {
|
|||
thumbnailHeight: 480,
|
||||
init() {
|
||||
this.on('success', (file, data) => {
|
||||
filenameDict[file.name] = {
|
||||
uuid: data.uuid,
|
||||
fileUuidDict[file.uuid] = {
|
||||
submitted: false
|
||||
};
|
||||
const input = $(`<input id="${data.uuid}" name="files" type="hidden">`).val(data.uuid);
|
||||
$dropzone.find('.files').append(input);
|
||||
});
|
||||
this.on('removedfile', (file) => {
|
||||
if (!(file.name in filenameDict)) {
|
||||
return;
|
||||
}
|
||||
$(`#${filenameDict[file.name].uuid}`).remove();
|
||||
if ($dropzone.data('remove-url') && !filenameDict[file.name].submitted) {
|
||||
$(`#${file.uuid}`).remove();
|
||||
if ($dropzone.data('remove-url') && !fileUuidDict[file.uuid].submitted) {
|
||||
$.post($dropzone.data('remove-url'), {
|
||||
file: filenameDict[file.name].uuid,
|
||||
file: file.uuid,
|
||||
_csrf: csrf,
|
||||
});
|
||||
}
|
||||
});
|
||||
this.on('submit', () => {
|
||||
$.each(filenameDict, (name) => {
|
||||
filenameDict[name].submitted = true;
|
||||
$.each(fileUuidDict, (fileUuid) => {
|
||||
fileUuidDict[fileUuid].submitted = true;
|
||||
});
|
||||
});
|
||||
this.on('reload', () => {
|
||||
|
@ -1082,9 +1078,8 @@ async function initRepository() {
|
|||
dz.emit('thumbnail', this, imgSrc);
|
||||
dz.emit('complete', this);
|
||||
dz.files.push(this);
|
||||
filenameDict[this.name] = {
|
||||
fileUuidDict[this.uuid] = {
|
||||
submitted: true,
|
||||
uuid: this.uuid
|
||||
};
|
||||
$dropzone.find(`img[src='${imgSrc}']`).css('max-width', '100%');
|
||||
const input = $(`<input id="${this.uuid}" name="files" type="hidden">`).val(this.uuid);
|
||||
|
@ -2695,7 +2690,6 @@ $(document).ready(async () => {
|
|||
|
||||
// Dropzone
|
||||
for (const el of document.querySelectorAll('.dropzone')) {
|
||||
const filenameDict = {};
|
||||
const $dropzone = $(el);
|
||||
await createDropzone(el, {
|
||||
url: $dropzone.data('upload-url'),
|
||||
|
@ -2713,18 +2707,15 @@ $(document).ready(async () => {
|
|||
thumbnailWidth: 480,
|
||||
thumbnailHeight: 480,
|
||||
init() {
|
||||
this.on('success', (file, data) => {
|
||||
filenameDict[file.name] = data.uuid;
|
||||
this.on('success', (_file, data) => {
|
||||
const input = $(`<input id="${data.uuid}" name="files" type="hidden">`).val(data.uuid);
|
||||
$dropzone.find('.files').append(input);
|
||||
});
|
||||
this.on('removedfile', (file) => {
|
||||
if (file.name in filenameDict) {
|
||||
$(`#${filenameDict[file.name]}`).remove();
|
||||
}
|
||||
$(`#${file.uuid}`).remove();
|
||||
if ($dropzone.data('remove-url')) {
|
||||
$.post($dropzone.data('remove-url'), {
|
||||
file: filenameDict[file.name],
|
||||
file: file.uuid,
|
||||
_csrf: csrf
|
||||
});
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue