Modifications pour le document Upload
Modifié par Florent Charton le 2025/07/04 23:28
Depuis la version 1.1
modifié par superadmin
sur 2022/06/20 08:49
sur 2022/06/20 08:49
Commentaire de modification :
Install extension [org.xwiki.contrib:application-ckeditor-ui/1.63.1]
À la version 2.1
modifié par Florent Charton
sur 2024/08/08 18:44
sur 2024/08/08 18:44
Commentaire de modification :
Install extension [org.xwiki.platform:xwiki-platform-ckeditor-ui/15.10.11]
Résumé
-
Propriétés de la Page (1 modifications, 0 ajouts, 0 suppressions)
-
Objets (2 modifications, 0 ajouts, 0 suppressions)
Détails
- Propriétés de la Page
-
- Auteur du document
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. superadmin1 +xwiki:XWiki.fcharton
- XWiki.JavaScriptExtension[0]
-
- Code
-
... ... @@ -1,23 +1,56 @@ 1 -require(['jquery', 'imageSelector', 'l10n!imageSelector', 'resource'], function($, imageSelector, translations, resource) { 2 - $("#upload form input.button").on('click', function(event) { 3 - event.preventDefault(); 4 - var imageSelectorElement = $('.image-selector'); 5 - imageSelectorElement.addClass('loading'); 6 - imageSelector.createLoader($("#fileUploadField").prop('files')[0], { 7 - onSuccess: function(entityReference) { 8 - imageSelector.updateSelectedImageReferences([XWiki.Model.serialize(entityReference)]); 9 - imageSelectorElement.removeClass('loading'); 10 - new XWiki.widgets.Notification(translations.get('modal.fileUpload.success'), 'done'); 11 - }, 12 - onError: function() { 13 - new XWiki.widgets.Notification(translations.get('modal.fileUpload.fail'), 'error'); 14 - imageSelectorElement.removeClass('loading'); 15 - }, 16 - onAbort: function() { 17 - new XWiki.widgets.Notification(translations.get('modal.fileUpload.abort'), 'error'); 18 - imageSelectorElement.removeClass('loading'); 19 - } 1 +require(['jquery', 'imageSelector', 'l10n!imageSelector', 'resource'], 2 + function ($, imageSelector, translations, resource) { 3 + function init(element) { 4 + const uploadButton = element.find(".upload form input.button"); 5 + 6 + uploadButton.prop("disabled", true); 7 + 8 + element.on('change', function () { 9 + if ($(this).find("input[type='file']").prop('files').length > 0) { 10 + uploadButton.prop("disabled", false); 11 + } else { 12 + uploadButton.prop("disabled", true); 13 + } 14 + }); 15 + 16 + uploadButton.on('click', function (event) { 17 + event.preventDefault(); 18 + 19 + const buttonElement = $(this); 20 + 21 + const uploadedFile = element.find("input[type='file']").prop('files')[0]; 22 + 23 + const beforeUploadEvent = $.Event("xwiki:actions:beforeUpload"); 24 + $(document).trigger(beforeUploadEvent, { 25 + file: uploadedFile, 26 + documentReference: imageSelector.getDocumentReference(element) 27 + }); 28 + 29 + if (!beforeUploadEvent.isDefaultPrevented()) { 30 + element.addClass('loading'); 31 + imageSelector.createLoader(uploadedFile, { 32 + onSuccess: function (entityReference) { 33 + imageSelector.updateSelectedImageReferences([XWiki.Model.serialize(entityReference)], buttonElement); 34 + element.removeClass('loading'); 35 + new XWiki.widgets.Notification(translations.get('modal.fileUpload.success'), 'done'); 36 + }, 37 + onError: function () { 38 + new XWiki.widgets.Notification(translations.get('modal.fileUpload.fail'), 'error'); 39 + element.removeClass('loading'); 40 + }, 41 + onAbort: function () { 42 + new XWiki.widgets.Notification(translations.get('modal.fileUpload.abort'), 'error'); 43 + element.removeClass('loading'); 44 + } 45 + }, element); 46 + } 47 + }); 48 + } 49 + 50 + init($(document).find('.image-selector')); 51 + 52 + $(document).on('xwiki:dom:updated', (event, data) => { 53 + data.elements.forEach(element => init($(element))); 20 20 }); 21 21 }); 22 -}); 23 23
- XWiki.UIExtensionClass[0]
-
- Cached
-
... ... @@ -1,0 +1,1 @@ 1 +Non - Asynchronous rendering
-
... ... @@ -1,0 +1,1 @@ 1 +Non