diff options
| author | Christopher Burger <burgerc@freeside.biz> | 2018-08-29 14:09:58 -0400 |
|---|---|---|
| committer | Christopher Burger <burgerc@freeside.biz> | 2018-09-09 18:46:49 -0400 |
| commit | 985adebbccf51c25ebeb049675c78830b98246aa (patch) | |
| tree | 042f6304e833222f2edb0b17c8bb929842b526c5 /httemplate | |
| parent | 9639c805abfdd2858a29576b767461c667bd5417 (diff) | |
RT# 75817 - updated UI to be more intuitive
Conflicts:
httemplate/edit/cust_main-contacts.html
httemplate/elements/contact.html
Diffstat (limited to 'httemplate')
| -rw-r--r-- | httemplate/edit/cust_main-contacts.html | 34 | ||||
| -rw-r--r-- | httemplate/elements/contact.html | 49 | ||||
| -rw-r--r-- | httemplate/elements/validate_password.html | 3 | ||||
| -rw-r--r-- | httemplate/misc/xmlhttp-validate_password.html | 4 |
4 files changed, 64 insertions, 26 deletions
diff --git a/httemplate/edit/cust_main-contacts.html b/httemplate/edit/cust_main-contacts.html index 7dedfe04d..aeedd78e5 100644 --- a/httemplate/edit/cust_main-contacts.html +++ b/httemplate/edit/cust_main-contacts.html @@ -1,12 +1,25 @@ -<% include('elements/edit.html', - 'name_singular' => 'customer contacts', #yes, we're editing all of them - 'table' => 'cust_main', - 'post_url' => popurl(1). 'process/cust_main-contacts.html', - 'labels' => { 'custnum' => ' ', #XXX supress this line entirely, its being redundant - 'contactnum' => ' ', #'Contact', - #'locationnum' => ' ', - }, - 'fields' => [ +<SCRIPT> +function checkPasswordValidation(fieldid) { + var validationResult = document.getElementById(fieldid+'_result').innerHTML; + if (validationResult.match(/Password valid!/)) { + return true; + } + else { + return false; + } +} +</SCRIPT> + +<& elements/edit.html, + 'name_singular' => 'customer contacts', #yes, we're editing all of them + 'table' => 'cust_main', + 'post_url' => popurl(1). 'process/cust_main-contacts.html', + 'no_pkey_display' => 1, + 'labels' => { 'custnum' => ' ', #XXX supress this line entirely, its being redundant + 'contactnum' => ' ', #'Contact', + #'locationnum' => ' ', + }, + 'fields' => [ { 'field' => 'contactnum', 'type' => 'contact', 'colspan' => 6, @@ -30,8 +43,7 @@ $conf->config('countrydefault') || 'US', 1, #no balance ), - ) -%> +&> <%init> my $curuser = $FS::CurrentUser::CurrentUser; diff --git a/httemplate/elements/contact.html b/httemplate/elements/contact.html index 678193516..a298a1b15 100644 --- a/httemplate/elements/contact.html +++ b/httemplate/elements/contact.html @@ -40,6 +40,8 @@ % } % } elsif ( $field eq 'emailaddress' ) { % $value = join(', ', map $_->emailaddress, $contact->contact_email); +% } elsif ( $field eq 'password' ) { +% $value = $contact->get('_password') ? '********' : ''; % } else { % $value = $contact->get($field); % } @@ -51,7 +53,7 @@ ID = "<%$id%>_<%$field%>" STYLE = "width: 140px" > - <OPTION VALUE="">Disabled + <OPTION VALUE="" <% !$value ? 'SELECTED' : '' %>>Disabled % if ( $value || $self_base_url ) { <OPTION VALUE="<% $value eq 'Y' ? 'Y' : 'E' %>" <% $value eq 'Y' ? 'SELECTED' : '' %>>Enabled % if ( $value eq 'Y' && $self_base_url ) { @@ -60,18 +62,33 @@ % } % } </SELECT> - <& /elements/change_password.html, - 'contact_num' => $curr_value, - 'custnum' => $opt{'custnum'}, - 'curr_value' => '', - 'no_label_display' => '1', - 'noformtag' => '1', - 'pre_pwd_field_label' => $id.'_', - &> +% #password form +% } elsif ( $field eq 'password') { + <INPUT TYPE = "text" + NAME = "<%$name%>_<%$field%>" + ID = "changepw<%$id%>_<%$field%>" + SIZE = "<% $size{$field} || 14 %>" + VALUE = "" + placeholder = "<% $value |h %>" + > +% my $contactnum = $curr_value ? $curr_value : '0'; + <& '/elements/validate_password.html', + 'fieldid' => "changepw".$id."_password", + 'svcnum' => '', + 'contactnum' => $contactnum, + 'submitid' => "submit", + &> + <SCRIPT TYPE="text/javascript"> - document.getElementById("<%$id%>_<%$field%>").onchange = function() { - if (this.value == "P" || this.value == "E") { changepw<%$id%>_toggle(true); } - return false + var selfService = document.getElementById("<%$id%>_selfservice_access").value; + + if (selfService !== "Y") { document.getElementById("changepw<%$id%>_password").disabled = 'true'; } + document.getElementById("<%$id%>_selfservice_access").onchange = function() { + if (this.value == "P" || this.value == "E" || this.value =="Y") { + document.getElementById("changepw<%$id%>_password").disabled = ''; + } + else { document.getElementById("changepw<%$id%>_password").disabled = 'true'; } + return false; } </SCRIPT> % } elsif ( $field eq 'invoice_dest' ) { @@ -96,6 +113,9 @@ % } <BR> <FONT SIZE="-1"><% $label{$field} %></FONT> +% if ( $field eq 'password' ) { + <div id="changepw<%$id%>_<%$field%>_result"></div> +% } </TD> % } </TR> @@ -143,6 +163,11 @@ tie my %label, 'Tie::IxHash', 'selfservice_access' => 'Self-service' ; +unless ($opt{'for_prospect'}) { + $label{'selfservice_access'} = 'Self-service'; + $label{'password'} = 'Password'; +} + my $first = 0; foreach my $phone_type ( qsearch({table=>'phone_type', order_by=>'weight'}) ) { next if $phone_type->typename =~ /^(Home|Fax)$/; diff --git a/httemplate/elements/validate_password.html b/httemplate/elements/validate_password.html index a8c06774e..9ecbba52d 100644 --- a/httemplate/elements/validate_password.html +++ b/httemplate/elements/validate_password.html @@ -30,7 +30,7 @@ function add_password_validation (fieldid, submitid) { // some browsers allow the enter key to submit a form even if the submit button is disabled // below prevents enter key from submiting form if password has not been validated. if (key == '13') { - var check = checkPasswordValidation(); + var check = checkPasswordValidation(fieldid); return check; } } @@ -62,6 +62,7 @@ function add_password_validation (fieldid, submitid) { ); } else { resultfield.innerHTML = ''; + if (submitid){ document.getElementById(submitid).disabled = false; } } }; } diff --git a/httemplate/misc/xmlhttp-validate_password.html b/httemplate/misc/xmlhttp-validate_password.html index b340170f8..95f1fd33c 100644 --- a/httemplate/misc/xmlhttp-validate_password.html +++ b/httemplate/misc/xmlhttp-validate_password.html @@ -29,14 +29,14 @@ my $validate_password = sub { $result{'syserror'} = 'Invoked without password' unless $password; return \%result if $result{'syserror'}; - if ($arg{'contactnum'}) { + if ($arg{'contactnum'} =~ /^\d+$/) { my $contactnum = $arg{'contactnum'}; $result{'syserror'} = 'Invalid contactnum' unless $contactnum =~ /^\d*$/; return \%result if $result{'syserror'}; my $contact = $contactnum ? qsearchs('contact',{'contactnum' => $contactnum}) - : ''; + : (new FS::contact {}); $result{'error'} = $contact->is_password_allowed($password); } |
