Merge pull request #16715 from mattwire/cancelsubscriptiongeneratetext
[civicrm-core.git] / templates / CRM / common / checkUsernameAvailable.tpl
1 {*
2 +--------------------------------------------------------------------+
3 | Copyright CiviCRM LLC. All rights reserved. |
4 | |
5 | This work is published under the GNU AGPLv3 license with some |
6 | permitted exceptions and without any warranty. For full license |
7 | and copyright information, see https://civicrm.org/licensing |
8 +--------------------------------------------------------------------+
9 *}
10 {* This included tpl checks if a given username is taken or available. *}
11 {crmSigner var=checkUserSig for=civicrm/ajax/cmsuser}
12 {literal}
13 var lastName = null;
14 cj("#checkavailability").click(function() {
15 var cmsUserName = cj.trim(cj("#cms_name").val());
16 if ( lastName == cmsUserName) {
17 /*if user checking the same user name more than one times. avoid the ajax call*/
18 return;
19 }
20 /*don't allow special character and for joomla minimum username length is two*/
21
22 var spchar = "\<|\>|\"|\'|\%|\;|\(|\)|\&|\\\\|\/";
23
24 {/literal}{if $config->userSystem->is_drupal == "1"}{literal}
25 spchar = spchar + "|\~|\`|\:|\!|\=|\#|\$|\^|\*|\{|\}|\\[|\\]|\+|\?|\,";
26 {/literal}{/if}{literal}
27 var r = new RegExp( "["+spchar+"]", "i");
28 /*regular expression \\ matches a single backslash. this becomes r = /\\/ or r = new RegExp("\\\\").*/
29 if ( r.exec(cmsUserName) ) {
30 alert('{/literal}{ts escape="js"}Your username contains invalid characters{/ts}{literal}');
31 return;
32 }
33 {/literal}{if $config->userFramework == "Joomla"}{literal}
34 else if ( cmsUserName && cmsUserName.length < 2 ) {
35 alert('{/literal}{ts escape="js"}Your username is too short{/ts}{literal}');
36 return;
37 }
38 {/literal}{/if}{literal}
39 if (cmsUserName) {
40 /*take all messages in javascript variable*/
41 var check = "{/literal}{ts escape='js'}Checking...{/ts}{literal}";
42 var available = "{/literal}{ts escape='js'}This username is currently available.{/ts}{literal}";
43 var notavailable = "{/literal}{ts escape='js'}This username is taken.{/ts}{literal}";
44 var errorMsg = "{/literal}{ts escape='js'}Error checking username. Please reload the form and try again.{/ts}{literal}";
45
46 //remove all the class add the messagebox classes and start fading
47 cj("#msgbox").removeClass().addClass('cmsmessagebox').css({"color":"#000","backgroundColor":"#FFC","border":"1px solid #c93"}).text(check).fadeIn("slow");
48
49 //check the username exists or not from ajax
50 var contactUrl = {/literal}"{crmURL p='civicrm/ajax/cmsuser' h=0 }"{literal};
51
52 var checkUserParams = {
53 cms_name: cj("#cms_name").val(),
54 ts: {/literal}"{$checkUserSig.ts}"{literal},
55 sig: {/literal}"{$checkUserSig.signature}"{literal},
56 for: 'civicrm/ajax/cmsuser'
57 };
58 cj.post(contactUrl, checkUserParams ,function(data) {
59 if ( data.name == "no") {/*if username not avaiable*/
60 cj("#msgbox").fadeTo(200,0.1,function() {
61 cj(this).html(notavailable).addClass('cmsmessagebox').css({"color":"#CC0000","backgroundColor":"#F7CBCA","border":"1px solid #CC0000"}).fadeTo(900,1);
62 });
63 } else if ( data.name == "error") {/*if username not avaiable*/
64 cj("#msgbox").fadeTo(200,0.1,function() {
65 cj(this).html(errorMsg).addClass('cmsmessagebox').css({"color":"#CC0000","backgroundColor":"#F7CBCA","border":"1px solid #CC0000"}).fadeTo(900,1);
66 });
67 } else {
68 cj("#msgbox").fadeTo(200,0.1,function() {
69 cj(this).html(available).addClass('cmsmessagebox').css({"color":"#008000","backgroundColor":"#C9FFCA", "border": "1px solid #349534"}).fadeTo(900,1);
70 });
71 }
72 }, "json");
73 lastName = cmsUserName;
74 } else {
75 cj("#msgbox").removeClass().text('').css({"backgroundColor":"#FFFFFF", "border": "0px #FFFFFF"}).fadeIn("fast");
76 }
77 });
78 {/literal}