From 2d57d71025519495dd1cdfca3799a6652c674637 Mon Sep 17 00:00:00 2001 From: Ivan Kohler Date: Tue, 26 Jun 2012 22:23:30 -0700 Subject: [PATCH] add a user preference to disable submitting the one-time charge form on [enter], RT#14387 --- httemplate/edit/quick-charge.html | 106 ++++++++++++++++++++++++++++++++------ httemplate/pref/pref-process.html | 2 +- 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 @@ -
+ @@ -85,7 +107,13 @@ function bill_now_changed (what) { <% mt('Amount') |h %> - <% $money_char %> + <% $money_char %> @@ -93,7 +121,11 @@ function bill_now_changed (what) { <% mt('Quantity') |h %> - + % } @@ -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' + : '' + %> > <% mt('Description') |h %> - + @@ -191,7 +235,15 @@ function bill_now_changed (what) { - " rownum="<% $row %>" onkeyup = "possiblyAddRow;" > + " + rownum = "<% $row %>" + onKeyPress = "return enable_quick_charge(event)" + onKeyUp = "return possiblyAddRow(event)" + > % } @@ -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) { <%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 Locale: - + option('disable_enter_submit_onetimecharge') ? 'CHECKED' : '' %>> + + +
-- 2.11.0