diff options
| author | Christopher Burger <burgerc@freeside.biz> | 2018-08-29 14:09:58 -0400 | 
|---|---|---|
| committer | Christopher Burger <burgerc@freeside.biz> | 2018-09-09 16:42:55 -0400 | 
| commit | 93ef20155af222e8b3f0737715975e0fc86741b0 (patch) | |
| tree | ce1ed19f090afb78f5f24bbe1561f45855bc0313 | |
| parent | fe0e5a810960200b5352128139e6b040ea08eada (diff) | |
RT# 75817 - updated UI to be more intuitive
| -rw-r--r-- | httemplate/edit/cust_main-contacts.html | 13 | ||||
| -rw-r--r-- | httemplate/elements/contact.html | 45 | ||||
| -rw-r--r-- | httemplate/elements/validate_password.html | 3 | ||||
| -rw-r--r-- | httemplate/misc/xmlhttp-validate_password.html | 4 | 
4 files changed, 50 insertions, 15 deletions
diff --git a/httemplate/edit/cust_main-contacts.html b/httemplate/edit/cust_main-contacts.html index 76929a7c9..3783cb9e9 100644 --- a/httemplate/edit/cust_main-contacts.html +++ b/httemplate/edit/cust_main-contacts.html @@ -4,6 +4,19 @@ Hmm, this is now entirely redundant with edit/cust_main/contacts_new.html, and  this one isn't being maintained well.  :/  </%doc> + +  <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', diff --git a/httemplate/elements/contact.html b/httemplate/elements/contact.html index faee7ead4..99ac0133d 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') ? '********' : '';  %       } elsif ( $field eq 'selfservice_access'  %              or $field eq 'comment'  %              or $field eq 'invoice_dest' ) { @@ -55,7 +57,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 ) { @@ -64,18 +66,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' ) { @@ -100,6 +117,9 @@  %         }            <BR>            <FONT SIZE="-1"><% $label{$field} %></FONT> +%       if ( $field eq 'password' ) { +          <div id="changepw<%$id%>_<%$field%>_result"></div> +%       }          </TD>  %     }      </TR> @@ -169,6 +189,7 @@ tie my %label, 'Tie::IxHash',  unless ($opt{'for_prospect'}) {    $label{'invoice_dest'} = 'Send invoices';    $label{'selfservice_access'} = 'Self-service'; +  $label{'password'} = 'Password';  }  my $first = 0; diff --git a/httemplate/elements/validate_password.html b/httemplate/elements/validate_password.html index 4057f5d3f..73c0db281 100644 --- a/httemplate/elements/validate_password.html +++ b/httemplate/elements/validate_password.html @@ -29,7 +29,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;      }    } @@ -61,6 +61,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 4d9716bb9..c53abe883 100644 --- a/httemplate/misc/xmlhttp-validate_password.html +++ b/httemplate/misc/xmlhttp-validate_password.html @@ -28,14 +28,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);    }  | 
