Skip to content

Commit d1dc672

Browse files
author
Florian ALEXANDRE
committed
feat: file d&d into richtext
1 parent 9af825c commit d1dc672

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

src/bundle/Resources/public/js/CKEditor/upload-file/upload-file-editing.js

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,36 @@ class UploadFileEditing extends Plugin {
88
}
99

1010
addListeners() {
11+
this.listenTo(this.editor.editing.view.document, 'drop', (event, data) => {
12+
if (data.dataTransfer.effectAllowed === 'copyMove') {
13+
return;
14+
}
15+
16+
const { files } = data.dataTransfer;
17+
18+
if (!files.length) {
19+
return;
20+
}
21+
22+
this.editor.model.change((writer) => {
23+
writer.setSelection(this.editor.editing.mapper.toModelRange(data.dropRange));
24+
});
25+
26+
const allowedMimeTypes = ibexa.adminUiConfig.fileUpload.mime_types || []
27+
const readFile = function(file, resolve, reject) {
28+
this.addEventListener('load', () => resolve({fileReader: this, file}), false);
29+
this.addEventListener('error', () => reject(), false);
30+
this.readAsDataURL(file);
31+
}
32+
33+
files.forEach((file) => {
34+
if (allowedMimeTypes.includes(file.type)) {
35+
new Promise(readFile.bind(new FileReader(), file)).then(({file}) => {
36+
this.editor.execute('insertIbexaUploadFile', { file });
37+
})
38+
}
39+
});
40+
});
1141
}
1242

1343
init() {

0 commit comments

Comments
 (0)