diff options
author | Ivan Kohler <ivan@freeside.biz> | 2012-06-26 22:23:30 -0700 |
---|---|---|
committer | Ivan Kohler <ivan@freeside.biz> | 2012-06-26 22:23:30 -0700 |
commit | 2d57d71025519495dd1cdfca3799a6652c674637 (patch) | |
tree | 385700ad99669a79bcf3b25a725097e0c36bc4b5 | |
parent | ea830c61145a0c659f24e55a4640db4e2036c06f (diff) |
add a user preference to disable submitting the one-time charge form on [enter], RT#14387
-rw-r--r-- | httemplate/edit/quick-charge.html | 106 | ||||
-rw-r--r-- | httemplate/pref/pref-process.html | 2 | ||||
-rw-r--r-- | httemplate/pref/pref.html | 9 |
3 files changed, 98 insertions, 19 deletions
diff --git a/httemplate/edit/quick-charge.html b/httemplate/edit/quick-charge.html index 27841063f..1d9647f2f 100644 --- a/httemplate/edit/quick-charge.html +++ b/httemplate/edit/quick-charge.html @@ -11,13 +11,30 @@ <SCRIPT TYPE="text/javascript"> -function enable_quick_charge () { +function enable_quick_charge (e) { + if ( document.QuickChargeForm.amount.value && document.QuickChargeForm.pkg.value ) { document.QuickChargeForm.submit.disabled = false; } else { document.QuickChargeForm.submit.disabled = true; } + +% if ( $curuser->option('disable_enter_submit_onetimecharge') ) { + + var key; + if (window.event) + key = window.event.keyCode; //IE + else + + key = e.which; //firefox, others + + return (key != 13); + +% } else { + return true; +% } + } function validate_quick_charge () { @@ -76,7 +93,12 @@ function bill_now_changed (what) { </SCRIPT> -<FORM ACTION="process/quick-charge.cgi" NAME="QuickChargeForm" ID="QuickChargeForm" METHOD="POST" onsubmit="document.QuickChargeForm.submit.disabled=true;return validate_quick_charge();"> +<FORM ACTION = "process/quick-charge.cgi" + NAME = "QuickChargeForm" + ID = "QuickChargeForm" + METHOD = "POST" + onSubmit = "document.QuickChargeForm.submit.disabled=true; return validate_quick_charge();" +> <INPUT TYPE="hidden" NAME="custnum" VALUE="<% $custnum %>"> @@ -85,7 +107,13 @@ function bill_now_changed (what) { <TR> <TD ALIGN="right"><% mt('Amount') |h %> </TD> <TD> - <% $money_char %><INPUT TYPE="text" NAME="amount" SIZE=6 VALUE="<% $amount %>" onChange="enable_quick_charge()" onKeyPress="enable_quick_charge()"> + <% $money_char %><INPUT TYPE = "text" + NAME = "amount" + SIZE = 6 + VALUE = "<% $amount %>" + onChange = "return enable_quick_charge(event)" + onKeyPress = "return enable_quick_charge(event)" + > </TD> </TR> @@ -93,7 +121,11 @@ function bill_now_changed (what) { <TR> <TD ALIGN="right"><% mt('Quantity') |h %> </TD> <TD> - <INPUT TYPE="text" NAME="quantity" SIZE=4 VALUE="<% $quantity %>"> + <INPUT TYPE = "text" + NAME = "quantity" + SIZE = 4 + VALUE = "<% $quantity %>" + onKeyPress = "return enable_quick_charge(event)"> </TD> </TR> % } @@ -107,6 +139,7 @@ function bill_now_changed (what) { NAME = "bill_now" VALUE = "1" <% $cgi->param('bill_now') ? 'CHECKED' : '' %> + onClick = "bill_now_changed(this);" onChange = "bill_now_changed(this);" > <% mt('with terms') |h %> @@ -127,7 +160,11 @@ function bill_now_changed (what) { SIZE = 32 ID = "start_date_text" VALUE = "<% $start_date %>" - <% $cgi->param('bill_now') ? 'STYLE = "background-color:#dddddd" DISABLED' : '' %> + onKeyPress="return enable_quick_charge(event)" + <% $cgi->param('bill_now') + ? 'STYLE = "background-color:#dddddd" DISABLED' + : '' + %> > <IMG SRC = "<%$fsurl%>images/calendar.png" ID = "start_date_button" @@ -173,7 +210,14 @@ function bill_now_changed (what) { <TR> <TD ALIGN="right"><% mt('Description') |h %> </TD> <TD> - <INPUT TYPE="text" NAME="pkg" SIZE="50" MAXLENGTH="50" VALUE="<% $pkg %>" onChange="enable_quick_charge()" onKeyPress="enable_quick_charge()"> + <INPUT TYPE = "text" + NAME = "pkg" + SIZE = "50" + MAXLENGTH = "50" + VALUE = "<% $pkg %>" + onChange = "return enable_quick_charge(event)" + onKeyPress = "return enable_quick_charge(event)" + > </TD> </TR> @@ -191,7 +235,15 @@ function bill_now_changed (what) { <TR> <TD></TD> <TD> - <INPUT TYPE="text" NAME="description<% $row %>" SIZE="60" MAXLENGTH="65" VALUE="<% $param->{"description$row"} |h %>" rownum="<% $row %>" onkeyup = "possiblyAddRow;" > + <INPUT TYPE = "text" + NAME = "description<% $row %>" + SIZE = "60" + MAXLENGTH = "65" + VALUE = "<% $param->{"description$row"} |h %>" + rownum = "<% $row %>" + onKeyPress = "return enable_quick_charge(event)" + onKeyUp = "return possiblyAddRow(event)" + > </TD> </TR> % } @@ -210,10 +262,26 @@ function bill_now_changed (what) { var rownum = <% $row %>; - function possiblyAddRow() { + function possiblyAddRow(e) { + if ( ( rownum - this.getAttribute('rownum') ) == 1 ) { addRow(); } + +% if ( $curuser->option('disable_enter_submit_onetimecharge') ) { + + var key; + if (window.event) + key = window.event.keyCode; //IE + else + key = e.which; //firefox, others + + return (key != 13); + +% } else { + return true; +% } + } function addRow() { @@ -228,14 +296,16 @@ function bill_now_changed (what) { var description_cell = document.createElement('TD'); - var description_input = document.createElement('INPUT'); - description_input.setAttribute('name', 'description'+rownum); - description_input.setAttribute('id', 'description'+rownum); - description_input.setAttribute('size', 60); - description_input.setAttribute('maxLength', 65); - description_input.setAttribute('rownum', rownum); - description_input.onkeyup = possiblyAddRow; - description_cell.appendChild(description_input); + //var description_input = document.createElement('INPUT'); + var di = document.createElement('INPUT'); + di.setAttribute('name', 'description'+rownum); + di.setAttribute('id', 'description'+rownum); + di.setAttribute('size', 60); + di.setAttribute('maxLength', 65); + di.setAttribute('rownum', rownum); + di.onkeyup = possiblyAddRow; + di.onkeypress = enable_quick_charge; + description_cell.appendChild(di); row.appendChild(description_cell); @@ -251,8 +321,10 @@ function bill_now_changed (what) { </HTML> <%init> +my $curuser = $FS::CurrentUser::CurrentUser; + die "access denied" - unless $FS::CurrentUser::CurrentUser->access_right('One-time charge'); + unless $curuser->access_right('One-time charge'); my $conf = new FS::Conf; my $date_format = $conf->config('date_format') || '%m/%d/%Y'; diff --git a/httemplate/pref/pref-process.html b/httemplate/pref/pref-process.html index 974b96dc2..bd6bb860a 100644 --- a/httemplate/pref/pref-process.html +++ b/httemplate/pref/pref-process.html @@ -49,7 +49,7 @@ unless ( $error ) { # if ($access_user) { #XXX autogen my @paramlist = qw( locale menu_position default_customer_view mobile_menu - disable_html_editor + disable_html_editor disable_enter_submit_onetimecharge email_address snom-ip snom-username snom-password vonage-fromnumber vonage-username vonage-password diff --git a/httemplate/pref/pref.html b/httemplate/pref/pref.html index 8fd1eaa73..8e56355db 100644 --- a/httemplate/pref/pref.html +++ b/httemplate/pref/pref.html @@ -32,7 +32,7 @@ Interface <TR> <TH ALIGN="right">Locale: </TH> - <TD> + <TD COLSPAN=2> <SELECT NAME="locale"> % foreach my $locale ( FS::Locales->locales ) { % my %info = FS::Locales->locale_info($locale); @@ -83,6 +83,13 @@ Interface </TD> </TR> + <TR> + <TH ALIGN="right" COLSPAN=1>Disable submission on [Enter] key - one-time charges: </TH> + <TD ALIGN="left" COLSPAN=2> + <INPUT TYPE="checkbox" NAME="disable_enter_submit_onetimecharge" VALUE="1" <% $curuser->option('disable_enter_submit_onetimecharge') ? 'CHECKED' : '' %>> + </TD> + </TR> + </TABLE> <BR> |