Änderungen von Dokument Anwendung erstellen
Zuletzt geändert von admin am 2024/12/14 19:08
Zusammenfassung
-
Objekte (0 geändert, 1 hinzugefügt, 0 gelöscht)
Details
- XWiki.JavaScriptExtension[0]
-
- Pufferstrategie
-
... ... @@ -1,0 +1,1 @@ 1 +long - Code
-
... ... @@ -1,0 +1,51 @@ 1 +require(['jquery', 'xwiki-form-validation-async'], function($) { 2 + var appNameInput = $('input[name="appName"]'); 3 + var appParentInput = $('input[name="appParentReference"]'); 4 + var preview = $('.appName-preview'); 5 + 6 + if (appNameInput.val() === '') { 7 + // We use a function instead of passing directly the promise because we want to avoid the "Uncaught (in promise)" 8 + // error. Basically, we want the rejected promise to be caught. 9 + appNameInput.validateAsync(() => Promise.reject(), 'awm'); 10 + } 11 + 12 + var errorMessage = appNameInput.closest('dd').prev('dt').find('.xErrorMsg'); 13 + if (!errorMessage.length) { 14 + errorMessage = $(document.createElement('span')).addClass('xErrorMsg').hide().appendTo(errorMessage.addBack()); 15 + } 16 + 17 + var toggleValidationError = function(message) { 18 + if (message) { 19 + appNameInput.addClass('xErrorField'); 20 + errorMessage.text(message).show(); 21 + return Promise.reject(); 22 + } else { 23 + appNameInput.removeClass('xErrorField'); 24 + errorMessage.hide(); 25 + } 26 + }; 27 + 28 + var updatePreview = function(content) { 29 + preview.removeClass('loading').html(content); 30 + var error = preview.find('.xErrorMsg'); 31 + return toggleValidationError(error.remove().text()); 32 + }; 33 + 34 + var fetchPreviewUpdate = function() { 35 + if (appNameInput.val() === '') { 36 + return updatePreview('<span class="xErrorMsg">$escapetool.javascript($services.localization.render("platform.appwithinminutes.appNameEmptyError"))</span>'); 37 + } else { 38 + preview.addClass('loading'); 39 + return $.get(XWiki.currentDocument.getURL('get'), appNameInput.closest('form').serialize()).then(updatePreview); 40 + } 41 + }; 42 + 43 + appNameInput.add(appParentInput).on('input', () => { 44 + appNameInput.validateAsync(fetchPreviewUpdate, 500, 'awm'); 45 + }).on('keyup', function(event) { 46 + // Show the error message if the user presses Enter before typing anything. 47 + if (event.which === 13 && appNameInput.val() === '' && !appNameInput.hasClass('xErrorField')) { 48 + appNameInput.validateAsync(fetchPreviewUpdate, 'awm').catch(() => appNameInput.focus()); 49 + } 50 + }); 51 +}); - Name
-
... ... @@ -1,0 +1,1 @@ 1 +Code - Inhalt parsen
-
... ... @@ -1,0 +1,1 @@ 1 +Ja - Benutze diese Erweiterung
-
... ... @@ -1,0 +1,1 @@ 1 +currentPage