summaryrefslogtreecommitdiff
path: root/public
diff options
context:
space:
mode:
authorpolo <ordipolo@gmx.fr>2025-06-19 02:53:01 +0200
committerpolo <ordipolo@gmx.fr>2025-06-19 02:53:01 +0200
commitb61c918e05124ddb0bb3102a626ca913a0ab4f3a (patch)
tree48c9b88466ab566838f0ff7bdb933eabc0b01600 /public
parent83619ac611490e8cd652a0252349704100fc5148 (diff)
downloadcms-b61c918e05124ddb0bb3102a626ca913a0ab4f3a.zip
upload image éditeur: nom d'origine + uniqid + extension d'origine dans une liste autorisée
Diffstat (limited to 'public')
-rw-r--r--public/js/tinymce.js16
1 files changed, 8 insertions, 8 deletions
diff --git a/public/js/tinymce.js b/public/js/tinymce.js
index 55a37cc..f8d78c8 100644
--- a/public/js/tinymce.js
+++ b/public/js/tinymce.js
@@ -49,9 +49,9 @@ function openEditor(id, page = '') {
49 } 49 }
50 }); 50 });
51 editor.on('PastePreProcess', function (e){ // déclenchement au collage AVANT insertion dans l'éditeur 51 editor.on('PastePreProcess', function (e){ // déclenchement au collage AVANT insertion dans l'éditeur
52 let parser = new DOMParser(); 52 const parser = new DOMParser();
53 let doc = parser.parseFromString(e.content, 'text/html'); 53 const doc = parser.parseFromString(e.content, 'text/html');
54 let images = doc.querySelectorAll('img'); 54 const images = doc.querySelectorAll('img');
55 55
56 let downloads_in_progress = []; 56 let downloads_in_progress = [];
57 57
@@ -59,11 +59,11 @@ function openEditor(id, page = '') {
59 if(img.src.startsWith('file://')){ // détection d'images non insérables 59 if(img.src.startsWith('file://')){ // détection d'images non insérables
60 console.warn('Image locale non insérable dans tinymce :', img.src); 60 console.warn('Image locale non insérable dans tinymce :', img.src);
61 img.outerHTML = '<div style="border:1px solid red; padding:10px; margin:5px 0; background-color:#ffe6e6; color:#a94442; font-size:14px;">' + 61 img.outerHTML = '<div style="border:1px solid red; padding:10px; margin:5px 0; background-color:#ffe6e6; color:#a94442; font-size:14px;">' +
62"Image locale non insérée. Pour insérer une image depuis LibreOffice, copiez l'image seule et recoller." + 62"Image locale non insérée (vient-elle de LibreOffice ?). Effacez cet encadré et copiez-collez l'image seule. Ensuite cliquez sur le bouton Insérer une image puis dans la nouvelle fenêtre sur Enregistrer." +
63'</div>'; 63'</div>';
64 } 64 }
65 else if(img.src.startsWith('http')){ // détection d'images web 65 else if(img.src.startsWith('http')){ // détection d'images web
66 let promise = fetch('index.php?action=upload_image_url', { // promesse d'un fichier téléchargeable sur le serveur 66 const promise = fetch('index.php?action=upload_image_url', { // promesse d'un fichier téléchargeable sur le serveur
67 method: 'POST', 67 method: 'POST',
68 headers: { 'Content-Type': 'application/json' }, 68 headers: { 'Content-Type': 'application/json' },
69 body: JSON.stringify({ image_url: img.src }) 69 body: JSON.stringify({ image_url: img.src })
@@ -75,7 +75,7 @@ function openEditor(id, page = '') {
75 } 75 }
76 }) 76 })
77 .catch(error => { 77 .catch(error => {
78 console.error('Erreur lors de l’upload de l’image :', error); 78 console.error('Erreur lors de l’upload de l’image distante:', error);
79 }); 79 });
80 80
81 downloads_in_progress.push(promise); 81 downloads_in_progress.push(promise);
@@ -96,7 +96,7 @@ function openEditor(id, page = '') {
96 } 96 }
97 }); // fin editor.on('PastePreProcess'... 97 }); // fin editor.on('PastePreProcess'...
98 }, 98 },
99 // upload d'image 99 // upload d'image natif de tinymce avec le bouton "Insérer une image"
100 images_upload_handler: (blobInfo, progress) => new Promise((resolve, reject) => { 100 images_upload_handler: (blobInfo, progress) => new Promise((resolve, reject) => {
101 const formData = new FormData(); 101 const formData = new FormData();
102 formData.append("file", blobInfo.blob()); 102 formData.append("file", blobInfo.blob());
@@ -107,7 +107,7 @@ function openEditor(id, page = '') {
107 }) 107 })
108 .then(response => response.json()) 108 .then(response => response.json())
109 .then(data => { 109 .then(data => {
110 if (data.location) { 110 if(data.location) {
111 resolve(data.location); 111 resolve(data.location);
112 } 112 }
113 else { 113 else {