|
|
@@ -2305,6 +2305,66 @@ $(document).ready(async () => { |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
// dataset Dropzone |
|
|
|
const $dataset = $('#dataset'); |
|
|
|
if ($dataset.length > 0) { |
|
|
|
const filenameDict = {}; |
|
|
|
let previewTemplate = ''; |
|
|
|
previewTemplate += '<div class="dz-preview dz-file-preview">\n '; |
|
|
|
previewTemplate += ' <div class="dz-details">\n '; |
|
|
|
previewTemplate += ' <div class="dz-filename">'; |
|
|
|
previewTemplate += ' <span data-dz-name></span>'; |
|
|
|
previewTemplate += ' </div>\n '; |
|
|
|
previewTemplate += ' <div class="dz-size" data-dz-size></div>\n '; |
|
|
|
previewTemplate += ' <img data-dz-thumbnail />\n '; |
|
|
|
previewTemplate += ' </div>\n '; |
|
|
|
previewTemplate += ' <div class="dz-progress ui active progress">'; |
|
|
|
previewTemplate += ' <div class="dz-upload bar" data-dz-uploadprogress><div class="progress"></div></div>\n '; |
|
|
|
previewTemplate += ' </div>\n '; |
|
|
|
previewTemplate += ' <div class="dz-success-mark">'; |
|
|
|
previewTemplate += ' <span>上传成功</span>'; |
|
|
|
previewTemplate += ' </div>\n '; |
|
|
|
previewTemplate += ' <div class="dz-error-mark">'; |
|
|
|
previewTemplate += ' <span>上传失败</span>'; |
|
|
|
previewTemplate += ' </div>\n '; |
|
|
|
previewTemplate += ' <div class="dz-error-message">'; |
|
|
|
previewTemplate += ' <span data-dz-errormessage></span>'; |
|
|
|
previewTemplate += ' </div>\n'; |
|
|
|
previewTemplate += '</div>'; |
|
|
|
|
|
|
|
await createDropzone('#dataset', { |
|
|
|
url: $dataset.data('upload-url'), |
|
|
|
headers: {'X-Csrf-Token': csrf}, |
|
|
|
maxFiles: $dataset.data('max-file'), |
|
|
|
maxFilesize: $dataset.data('max-size'), |
|
|
|
acceptedFiles: ($dataset.data('accepts') === '*/*') ? null : $dataset.data('accepts'), |
|
|
|
addRemoveLinks: true, |
|
|
|
dictDefaultMessage: $dataset.data('default-message'), |
|
|
|
dictInvalidFileType: $dataset.data('invalid-input-type'), |
|
|
|
dictFileTooBig: $dataset.data('file-too-big'), |
|
|
|
dictRemoveFile: $dataset.data('remove-file'), |
|
|
|
previewTemplate, |
|
|
|
init() { |
|
|
|
this.on('success', (file, data) => { |
|
|
|
filenameDict[file.name] = data.uuid; |
|
|
|
const input = $(`<input id="${data.uuid}" name="files" type="hidden">`).val(data.uuid); |
|
|
|
$('.files').append(input); |
|
|
|
}); |
|
|
|
this.on('removedfile', (file) => { |
|
|
|
if (file.name in filenameDict) { |
|
|
|
$(`#${filenameDict[file.name]}`).remove(); |
|
|
|
} |
|
|
|
if ($dataset.data('remove-url') && $dataset.data('csrf')) { |
|
|
|
$.post($dataset.data('remove-url'), { |
|
|
|
file: filenameDict[file.name], |
|
|
|
_csrf: $dataset.data('csrf') |
|
|
|
}); |
|
|
|
} |
|
|
|
}); |
|
|
|
}, |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
// Helpers. |
|
|
|
$('.delete-button').on('click', showDeletePopup); |
|
|
|
$('.add-all-button').on('click', showAddAllPopup); |
|
|
|