diff options
author | Jonathan Prykop <jonathan@freeside.biz> | 2016-12-17 19:53:23 -0600 |
---|---|---|
committer | Jonathan Prykop <jonathan@freeside.biz> | 2016-12-17 19:53:23 -0600 |
commit | 80bfc5e1b11694553ddaa48e3b181462cfadc9dd (patch) | |
tree | fd2c7d2547e9edba5222aab08768b0679bf03cb3 /ng_selfservice/elements | |
parent | dbb1f2c9894385044ed85b64d9016b2eeb06d649 (diff) |
73443: Selfservice NG Password reset page
Diffstat (limited to 'ng_selfservice/elements')
-rw-r--r-- | ng_selfservice/elements/add_password_validation.php | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/ng_selfservice/elements/add_password_validation.php b/ng_selfservice/elements/add_password_validation.php new file mode 100644 index 0000000..6938437 --- /dev/null +++ b/ng_selfservice/elements/add_password_validation.php @@ -0,0 +1,51 @@ +<SCRIPT> +function add_password_validation (fieldid,nologin) { + var inputfield = document.getElementById(fieldid); + inputfield.onchange = function () { + var fieldid = this.id+'_result'; + var resultfield = document.getElementById(fieldid); + var svcnum = ''; + var svcfield = document.getElementById(this.id+'_svcnum'); + if (svcfield) { + svcnum = svcfield.options[svcfield.selectedIndex].value; + } + if (this.value) { + resultfield.innerHTML = '<SPAN STYLE="color: blue;">Validating password...</SPAN>'; + var validate_data = { + fieldid: fieldid, + check_password: this.value, + }; + if (!nologin) { + validate_data['svcnum'] = svcnum; + } + $.ajax({ + url: 'xmlrpc_validate_passwd.php', + data: validate_data, + method: 'POST', + success: function ( result ) { + result = JSON.parse(result); + var resultfield = document.getElementById(fieldid); + if (resultfield) { + var errorimg = '<IMG SRC="images/error.png" style="width: 1em; display: inline-block; padding-right: .5em">'; + var validimg = '<IMG SRC="images/tick.png" style="width: 1em; display: inline-block; padding-right: .5em">'; + if (result.password_valid) { + resultfield.innerHTML = validimg+'<SPAN STYLE="color: green;">Password valid!</SPAN>'; + } else if (result.password_invalid) { + resultfield.innerHTML = errorimg+'<SPAN STYLE="color: red;">'+result.password_invalid+'</SPAN>'; + } else { + resultfield.innerHTML = ''; + } + } + }, + error: function ( jqXHR, textStatus, errorThrown ) { + var resultfield = document.getElementById(fieldid); + console.log('ajax error: '+textStatus+'+'+errorThrown); + if (resultfield) { + resultfield.innerHTML = ''; + } + }, + }); + } + }; +} +</SCRIPT> |