From: Bartosz Dziewoński Date: Fri, 7 Mar 2014 17:39:51 +0000 (+0100) Subject: Check validity and availability of usernames during signup via AJAX X-Git-Tag: 1.31.0-rc.0~16657^2 X-Git-Url: http://git.cyclocoop.org/%7B%24www_url%7Dadmin/compta/exercices/cloturer.php?a=commitdiff_plain;h=74b222230da8a3dadc4d03e1a3e000c1ca09e12a;p=lhc%2Fweb%2Fwiklou.git Check validity and availability of usernames during signup via AJAX This is done in addition to the server-side checks. Users who have disabled JavaScript will not notice any difference. The way this is done (via action=query&list=users API) means that we can't check for all possible error conditions, both for the username (e.g. these enforced by extensions like AntiSpoof) and other parts of the form (e-mail, password…) – these are still handled server-side only. Thus we intentionally never say that whatever the user typed in is valid – we only warn when we know it's not. Doing this "properly" would require some reworking of the internals of the signup process and this way is already a huge improvement. (Split off from the reverted a0c72523.) Bug: 34447 Change-Id: I42c00b54651fd4e7217a862b3116c6113935f5ae --- diff --git a/RELEASE-NOTES-1.23 b/RELEASE-NOTES-1.23 index 2b91f88f88..b24442056e 100644 --- a/RELEASE-NOTES-1.23 +++ b/RELEASE-NOTES-1.23 @@ -116,6 +116,8 @@ production. creations, similar to the topOnly option. * Add mediawiki.ui.button styling to all pages so wiki content can use styled buttons. +* Special:UserLogin/signup now does AJAX checks for invalid and taken usernames, + displaying the error live. === Bug fixes in 1.23 === * (bug 41759) The "updated since last visit" markers (on history pages, recent diff --git a/includes/templates/Usercreate.php b/includes/templates/Usercreate.php index 0cb83d555e..aba0d2767c 100644 --- a/includes/templates/Usercreate.php +++ b/includes/templates/Usercreate.php @@ -58,15 +58,23 @@ class UsercreateTemplate extends BaseTemplate {
html( 'header' ); /* extensions such as ConfirmEdit add form HTML here */ ?>
+ +
data['message'] ) { ?> + class="data['messagetype']; ?>box" + + style="display: none;" + + > data['message'] ) { ?> -
data['messagetype'] == 'error' ) { ?> msg( 'createacct-error' ); ?>
html( 'message' ); ?> -
+