Änderungen von Dokument Anwendung erstellen

Zuletzt geändert von admin am 2024/12/14 19:08

Von Version 1.2
bearbeitet von admin
am 2024/12/14 07:36
Änderungskommentar: Gelöschtes Objekt
Auf Version 1.1
bearbeitet von admin
am 2024/05/09 10:38
Änderungskommentar: Install extension [org.xwiki.platform:xwiki-platform-appwithinminutes-ui/16.2.0]

Zusammenfassung

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