Изменения документа AdminUsersSheet

Редактировал(а) Alexey Semenihin 23.10.2026, 15:12

От версии 3.1
отредактировано Dmitriy Rybakov
на 20.06.2025, 16:36
Изменить комментарий: Install extension [org.xwiki.platform:xwiki-platform-administration-ui/16.10.8]
К версии 4.1
отредактировано Alexey Semenihin
на 23.10.2026, 15:12
Изменить комментарий: Install extension [org.xwiki.platform:xwiki-platform-administration-ui/17.10.12]

Сводка

Подробности

Свойства страницы
Автор документа
... ... @@ -1,1 +1,1 @@
1 -XWiki.rybakovds
1 +XWiki.semenihinaa
Содержимое
... ... @@ -111,7 +111,9 @@
111 111   <button type="button" class="btn btn-default" data-dismiss="modal">
112 112   $escapetool.xml($services.localization.render('cancel'))
113 113   </button>
114 - <button type="button" class="btn btn-primary" disabled="disabled">
114 + ## The registration form is not present on page load so we can't bind the submit button without triggerig an
115 + ## HTML validation error. That's why we set the form attribute from JavaScript instead.
116 + <button type="submit" class="btn btn-primary" disabled="disabled">
115 115   $escapetool.xml($services.localization.render('create'))
116 116   </button>
117 117   </div>
... ... @@ -206,11 +206,13 @@
206 206  #macro (maybeShowDeleteUserWarning $userReference $right)
207 207   #countPagesLastModifiedBy($userReference)
208 208   #if ($pageCount > 0)
209 - <div class="box errormessage xform">
211 + {{/html}}
212 +
213 + {{error cssClass="xform"}}
214 + {{html}}
210 210   #set ($pageIndexReference = $services.model.createDocumentReference(
211 211   $userReference.wikiReference.name, 'Main', 'AllDocs'))
212 - #set ($pageIndexURL = $xwiki.getURL($pageIndexReference) + '#|t=alldocs&doc.author=' +
213 - $escapetool.url($services.model.serialize($userReference, 'local')))
217 + #set ($pageIndexURL = $xwiki.getURL($pageIndexReference, 'view', "doc.author=${escapetool.url($services.model.serialize($userReference, 'local'))}"))
214 214   #set ($translationKey = "administration.section.users.deleteUser.${right}RightsWarning")
215 215   $services.localization.render($translationKey, ["<a href='$pageIndexURL'>", $pageCount, '</a>'])
216 216   <dl>
... ... @@ -235,7 +235,10 @@
235 235   [$rightTranslation]))</span>
236 236   </dd>
237 237   </dl>
238 - </div>
242 + {{/html}}
243 + {{/error}}
244 +
245 + {{html clean="false"}}
239 239   #end
240 240  #end
241 241  
XWiki.JavaScriptExtension[0]
Код
... ... @@ -8,7 +8,10 @@
8 8   //
9 9   // User Creation
10 10   //
11 - var createUserModal = $('#createUserModal');
11 + const createUserModal = $('#createUserModal');
12 + // We set the form attribute from JavaScript in order to avoid HTML validation errors because the form is not present
13 + // on page load (we load it the first time the modal is shown, see below).
14 + const createUserButton = createUserModal.find('.btn-primary').attr('form', 'register');
12 12  
13 13   var validateCreateUserForm = function(form) {
14 14   return form.length && (!window.LiveValidation ||
... ... @@ -16,7 +16,7 @@
16 16   };
17 17  
18 18   createUserModal.on('show.bs.modal', function() {
19 - var createUserButton = createUserModal.find('.btn-primary').prop('disabled', true);
22 + createUserButton.prop('disabled', true);
20 20   var createUserURL = XWiki.currentDocument.getURL('view', 'xpage=registerinline');
21 21   var createUserModalBody = createUserModal.find('.modal-body').empty().addClass('loading');
22 22   $.get(createUserURL, function(html) {
... ... @@ -28,12 +28,13 @@
28 28   createUserForm.find(':input').filter(':visible').first().focus();
29 29   createUserButton.prop('disabled', !createUserForm.length);
30 30   });
31 - }).on('click', '.btn-primary', function(event) {
34 + }).on('submit', 'form#register', function(event) {
35 + event.preventDefault();
32 32   var createUserForm = createUserModal.find('form#register');
33 33   if (!validateCreateUserForm(createUserForm)) {
34 34   return;
35 35   }
36 - var createUserButton = $(this).prop('disabled', true);
40 + createUserButton.prop('disabled', true);
37 37   var notification = new XWiki.widgets.Notification(
38 38   $jsontool.serialize($services.localization.render('xe.admin.users.create.inProgress')),
39 39   'inprogress'
... ... @@ -74,6 +74,7 @@
74 74   var editUserURL = userDocument.getURL('edit');
75 75   var parameters = {xpage: 'edituser'};
76 76   if (forceLock === true) {
81 + parameters.force_token = xm.form_token;
77 77   parameters.force = 1;
78 78   }
79 79   editUserModal.find('.modal-body').first().empty().addClass('loading').load(editUserURL, parameters, function() {