summaryrefslogtreecommitdiff
path: root/httemplate
diff options
context:
space:
mode:
authorChristopher Burger <burgerc@freeside.biz>2018-08-29 14:09:58 -0400
committerChristopher Burger <burgerc@freeside.biz>2018-09-09 18:46:49 -0400
commit985adebbccf51c25ebeb049675c78830b98246aa (patch)
tree042f6304e833222f2edb0b17c8bb929842b526c5 /httemplate
parent9639c805abfdd2858a29576b767461c667bd5417 (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.html34
-rw-r--r--httemplate/elements/contact.html49
-rw-r--r--httemplate/elements/validate_password.html3
-rw-r--r--httemplate/misc/xmlhttp-validate_password.html4
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' => '&nbsp;',
- },
- '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' => '&nbsp;',
+ },
+ '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);
}