summaryrefslogtreecommitdiff
path: root/httemplate
diff options
context:
space:
mode:
authorChristopher Burger <burgerc@freeside.biz>2018-09-04 08:30:35 -0400
committerChristopher Burger <burgerc@freeside.biz>2018-09-09 19:43:05 -0400
commit405f925e2578705780332900eb5df031bfa7c272 (patch)
treec35590cdf7022895170b551b9187751d96c4920a /httemplate
parent741c37dc7259c25f4229fbeeeb28231b4a99ecbc (diff)
RT# 75817 - Added password change link to cust main page
Conflicts: httemplate/edit/cust_main-contacts.html httemplate/elements/validate_password.html httemplate/view/cust_main/contacts_new.html
Diffstat (limited to 'httemplate')
-rw-r--r--httemplate/edit/cust_main-contacts.html18
-rw-r--r--httemplate/elements/change_password.html15
-rw-r--r--httemplate/elements/contact.html10
-rw-r--r--httemplate/elements/validate_password.html55
-rw-r--r--httemplate/misc/process/change-password.html6
-rw-r--r--httemplate/view/cust_main/contacts_new.html13
6 files changed, 41 insertions, 76 deletions
diff --git a/httemplate/edit/cust_main-contacts.html b/httemplate/edit/cust_main-contacts.html
index aeedd78e5..b3f67726b 100644
--- a/httemplate/edit/cust_main-contacts.html
+++ b/httemplate/edit/cust_main-contacts.html
@@ -1,15 +1,17 @@
<SCRIPT>
-function checkPasswordValidation(fieldid) {
- var validationResult = document.getElementById(fieldid+'_result').innerHTML;
- if (validationResult.match(/Password valid!/)) {
- return true;
+ function checkPasswordValidation(fieldid) {
+ var validationResult = document.getElementById(fieldid+'_result').innerHTML;
+ if (validationResult.match(/Password valid!/)) {
+ return true;
+ }
+ else {
+ return false;
+ }
}
- else {
- return false;
- }
-}
</SCRIPT>
+<& '/elements/validate_password_js.html', &>
+
<& elements/edit.html,
'name_singular' => 'customer contacts', #yes, we're editing all of them
'table' => 'cust_main',
diff --git a/httemplate/elements/change_password.html b/httemplate/elements/change_password.html
index 7d95e19dc..65b7d8502 100644
--- a/httemplate/elements/change_password.html
+++ b/httemplate/elements/change_password.html
@@ -11,9 +11,9 @@
% if (!$opt{'no_label_display'}) {
<A ID="<%$pre%>link" HREF="javascript:void(0)" onclick="<%$pre%>toggle(true)">(<% emt( $change_title ) %>)</A>
% }
-<DIV ID="<%$pre%>form" CLASS="passwordbox">
+<DIV ID="<%$pre%>div" CLASS="passwordbox">
% if (!$opt{'noformtag'}) {
- <FORM METHOD="POST" ACTION="<%$fsurl%>misc/process/change-password.html" onsubmit="return checkPasswordValidation()">
+ <FORM ID="<%$pre%>form" METHOD="POST" ACTION="<%$fsurl%>misc/process/change-password.html" onsubmit="return <%$pre%>checkPasswordValidation()">
% }
<% $change_id_input %>
@@ -44,11 +44,8 @@ function <%$pre%>toggle(toggle, clear) {
if (clear) {
document.getElementById('<%$pre%>password').value = '';
document.getElementById('<%$pre%>password_result').innerHTML = '';
-% if ($opt{'contact_num'}) {
- document.getElementById('<% $opt{'pre_pwd_field_label'} %>selfservice_access').value = 'Y';
-% }
}
- document.getElementById('<%$pre%>form').style.display =
+ document.getElementById('<%$pre%>div').style.display =
toggle ? 'inline-block' : 'none';
% if (!$opt{'no_label_display'}) {
document.getElementById('<%$pre%>link').style.display =
@@ -56,7 +53,7 @@ function <%$pre%>toggle(toggle, clear) {
% }
}
-function checkPasswordValidation() {
+function <%$pre%>checkPasswordValidation(resultId) {
var validationResult = document.getElementById('<%$pre%>password_result').innerHTML;
if (validationResult.match(/Password valid!/)) {
return true;
@@ -83,8 +80,8 @@ if ($opt{'svc_acct'}) {
}
elsif ($opt{'contact_num'}) {
$change_id_input = '
- <INPUT TYPE="hidden" NAME="'.$opt{'pre_pwd_field_label'}.'contactnum" VALUE="' . $opt{'contact_num'} . '">
- <INPUT TYPE="hidden" NAME="'.$opt{'pre_pwd_field_label'}.'custnum" VALUE="' . $opt{'custnum'} . '">
+ <INPUT TYPE="hidden" NAME="contactnum" VALUE="' . $opt{'contact_num'} . '">
+ <INPUT TYPE="hidden" NAME="custnum" VALUE="' . $opt{'custnum'} . '">
';
$pre .= $opt{'pre_pwd_field_label'};
}
diff --git a/httemplate/elements/contact.html b/httemplate/elements/contact.html
index a915a5876..e330e1fea 100644
--- a/httemplate/elements/contact.html
+++ b/httemplate/elements/contact.html
@@ -71,12 +71,10 @@
placeholder = "<% $value |h %>"
>
% my $contactnum = $curr_value ? $curr_value : '0';
- <& '/elements/validate_password.html',
- 'fieldid' => "changepw".$id."_password",
- 'svcnum' => '',
- 'contactnum' => $contactnum,
- 'submitid' => "submit",
- &>
+
+ <SCRIPT>
+ add_password_validation('<% "changepw".$id."_password" %>', 'submit', '', '<% $contactnum %>');
+ </SCRIPT>
<SCRIPT TYPE="text/javascript">
var selfService = document.getElementById("<%$id%>_selfservice_access").value;
diff --git a/httemplate/elements/validate_password.html b/httemplate/elements/validate_password.html
index 9ecbba52d..10471d974 100644
--- a/httemplate/elements/validate_password.html
+++ b/httemplate/elements/validate_password.html
@@ -15,59 +15,10 @@ should be the input id plus '_result'.
</%doc>
-<& '/elements/xmlhttp.html',
- 'url' => $p.'misc/xmlhttp-validate_password.html',
- 'subs' => [ 'validate_password' ],
- 'method' => 'POST', # important not to put passwords in url
-&>
-<SCRIPT>
-function add_password_validation (fieldid, submitid) {
- var inputfield = document.getElementById(fieldid);
- inputfield.onkeydown = function(e) {
- var key;
- if (window.event) { key = window.event.keyCode; }
- else { key = e.which; } // for ff browsers
- // 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(fieldid);
- return check;
- }
- }
- inputfield.onkeyup = function () {
- var fieldid = this.id+'_result';
- var resultfield = document.getElementById(fieldid);
- if (this.value) {
- resultfield.innerHTML = '<SPAN STYLE="color: blue;">Validating password...</SPAN>';
- validate_password('fieldid',fieldid,'svcnum','<% $opt{'svcnum'} %>','pkgnum','<% $opt{'pkgnum'} %>','contactnum','<% $opt{'contactnum'} %>','password',this.value,
- function (result) {
- result = JSON.parse(result);
- var resultfield = document.getElementById(result.fieldid);
- if (resultfield) {
- var errorimg = '<IMG SRC="<% $p %>images/error.png" style="width: 1em; display: inline-block; padding-right: .5em">';
- var validimg = '<IMG SRC="<% $p %>images/tick.png" style="width: 1em; display: inline-block; padding-right: .5em">';
- if (result.valid) {
- resultfield.innerHTML = validimg+'<SPAN STYLE="color: green;">Password valid!</SPAN>';
- if (submitid){ document.getElementById(submitid).disabled = false; }
- } else if (result.error) {
- resultfield.innerHTML = errorimg+'<SPAN STYLE="color: red;">'+result.error+'</SPAN>';
- if (submitid){ document.getElementById(submitid).disabled = true; }
- } else {
- result.syserror = result.syserror || 'Server error';
- resultfield.innerHTML = errorimg+'<SPAN STYLE="color: red;">'+result.syserror+'</SPAN>';
- if (submitid){ document.getElementById(submitid).disabled = true; }
- }
- }
- }
- );
- } else {
- resultfield.innerHTML = '';
- if (submitid){ document.getElementById(submitid).disabled = false; }
- }
- };
-}
+<& '/elements/validate_password_js.html', %opt &>
-add_password_validation('<% $opt{'fieldid'} %>', '<% $opt{'submitid'} %>');
+<SCRIPT>
+ add_password_validation('<% $opt{'fieldid'} %>', '<% $opt{'submitid'} %>', '<% $opt{'svcnum'} %>', '<% $opt{'contactnum'} %>');
</SCRIPT>
<%init>
diff --git a/httemplate/misc/process/change-password.html b/httemplate/misc/process/change-password.html
index a3e060168..37ad6d915 100644
--- a/httemplate/misc/process/change-password.html
+++ b/httemplate/misc/process/change-password.html
@@ -18,7 +18,7 @@
<% $cgi->redirect($fsurl.'view/svc_acct.cgi?'.$cgi->query_string) %>
% }
% elsif ($contactnum) {
- <% $cgi->redirect($fsurl.'edit/cust_main-contacts.html?'.$cgi->param('custnum')) %>
+ <% $cgi->redirect($fsurl.'view/cust_main.cgi?'.$cgi->param('custnum')) %>
% }
% }
@@ -34,6 +34,10 @@ my $curuser = $FS::CurrentUser::CurrentUser;
$cgi->param('svcnum') =~ /^(\d+)$/ or die "illegal svcnum" if $cgi->param('svcnum');
my $svcnum = $1;
+foreach my $prefix (grep /^(.*)(password)$/, $cgi->param) {
+ $cgi->param('password' => $cgi->param($prefix));
+}
+
$cgi->param('contactnum') =~ /^(\d+)$/ or die "illegal contactnum" if $cgi->param('contactnum');
my $contactnum = $1;
diff --git a/httemplate/view/cust_main/contacts_new.html b/httemplate/view/cust_main/contacts_new.html
index f73483ae1..19118ea27 100644
--- a/httemplate/view/cust_main/contacts_new.html
+++ b/httemplate/view/cust_main/contacts_new.html
@@ -6,6 +6,7 @@
% my $bgcolor1 = '#eeeeee';
% my $bgcolor2 = '#ffffff';
% my $bgcolor = $bgcolor2;
+% my $count = 0;
<TR>
<TH CLASS="grid" ALIGN="left" BGCOLOR="#cccccc">Type</TH>
<TH CLASS="grid" ALIGN="left" BGCOLOR="#cccccc">Contact</TH>
@@ -29,6 +30,16 @@
Enabled
%# <FONT SIZE="-1"><A HREF="XXX">disable</A>
%# <A HREF="XXX">re-email</A></FONT>
+ <FONT SIZE="-1">
+ <& /elements/change_password.html,
+ 'contact_num' => $contact->contactnum,
+ 'custnum' => $contact->custnum,
+ 'no_label_display' => '',
+ 'label' => 'change password',
+ 'curr_value' => '',
+ 'pre_pwd_field_label' => 'contact'.$count.'_',
+ &>
+ </FONT>
% } else {
Disabled
%# <FONT SIZE="-1"><A HREF="XXX">enable</A></FONT>
@@ -51,6 +62,7 @@
% } else {
% $bgcolor = $bgcolor1;
% }
+% $count++;
% }
</TABLE>
<%once>
@@ -64,5 +76,6 @@ my( $cust_main ) = @_;
#my $conf = new FS::Conf;
my @contacts = $cust_main->cust_contact;
+my $display = scalar(@contacts) > 0;
</%init>