diff options
| author | Ivan Kohler <ivan@freeside.biz> | 2018-07-16 19:07:46 -0700 |
|---|---|---|
| committer | Ivan Kohler <ivan@freeside.biz> | 2018-07-16 19:07:46 -0700 |
| commit | 057ae504915d912bc60df87c9914e11752edf680 (patch) | |
| tree | b99391c29c28bf546bdcd0ba9abe79cfb33381d4 /httemplate/elements | |
| parent | f2166c28623ef38fe7db2069fce6cc16be865f11 (diff) | |
| parent | a439c0c5998c428e7bfd533353911ae48b4bee7b (diff) | |
Merge branch 'FREESIDE_3_BRANCH' of git.freeside.biz:/home/git/freeside into FREESIDE_3_BRANCH
Diffstat (limited to 'httemplate/elements')
| -rw-r--r-- | httemplate/elements/header-popup.html | 1 | ||||
| -rw-r--r-- | httemplate/elements/popup-topreload.html | 17 | ||||
| -rw-r--r-- | httemplate/elements/select-cust_phone.html | 31 | ||||
| -rw-r--r-- | httemplate/elements/select.html | 2 | ||||
| -rw-r--r-- | httemplate/elements/topreload.js | 6 | ||||
| -rw-r--r-- | httemplate/elements/tr-select-cust_phone.html | 12 | ||||
| -rwxr-xr-x | httemplate/elements/tr-select-reason.html | 35 | ||||
| -rw-r--r-- | httemplate/elements/tr-td-label.html | 12 |
8 files changed, 105 insertions, 11 deletions
diff --git a/httemplate/elements/header-popup.html b/httemplate/elements/header-popup.html index 906b1ee51..37402014b 100644 --- a/httemplate/elements/header-popup.html +++ b/httemplate/elements/header-popup.html @@ -34,6 +34,7 @@ Example: <SCRIPT SRC="<% $fsurl %>elements/printtofit.js"></SCRIPT> % } % } + <SCRIPT SRC="<% $fsurl %>elements/topreload.js"></SCRIPT> <% $head |n %> </HEAD> <BODY <% $etc |n %>> diff --git a/httemplate/elements/popup-topreload.html b/httemplate/elements/popup-topreload.html new file mode 100644 index 000000000..7a166f6de --- /dev/null +++ b/httemplate/elements/popup-topreload.html @@ -0,0 +1,17 @@ +<%doc> + +Example: + + <& /elements/popup-topreload, mt('Action completed') &> + +</%doc> +<& /elements/header-popup.html, encode_entities($message) &> + <SCRIPT TYPE="text/javascript"> + topreload(); + </SCRIPT> +<& /elements/footer-popup.html &> +<%init> + +my $message = shift; + +</%init>
\ No newline at end of file diff --git a/httemplate/elements/select-cust_phone.html b/httemplate/elements/select-cust_phone.html new file mode 100644 index 000000000..94cd41322 --- /dev/null +++ b/httemplate/elements/select-cust_phone.html @@ -0,0 +1,31 @@ +<SELECT NAME="<% $opt{'field_name'} %>" ID="<% $opt{'field_name'} %>"> + + <OPTION VALUE="" selected="selected">Select a phone number + +% foreach $p (@$phone_types) { + <OPTION VALUE="<% $phones_formatted{$p} %>"><% $p |h%> (<% $cust_phones->$p |h %>) +%} + +</SELECT> + +<%init> + +my %opt = @_; +my $cust_num = $opt{'cust_num'}; +my $phone_types = $opt{'phone_types'}; +my $format = $opt{'format'}; + +my $cust_phones = qsearchs('cust_main', { 'custnum' => $cust_num }) + or die 'unknown custnum' . $cust_num; + +my %phones_formatted = map { + $_ => format_phone_number($cust_phones->$_, $format) +} @$phone_types; + +sub format_phone_number { + my ($n, $f) = @_; + if ($f eq 'xxxxxxxxxx') { $n =~ s/-//g; } + return $n; +} + +</%init>
\ No newline at end of file diff --git a/httemplate/elements/select.html b/httemplate/elements/select.html index 59010c140..9dd4aec2c 100644 --- a/httemplate/elements/select.html +++ b/httemplate/elements/select.html @@ -41,7 +41,7 @@ % % } -</SELECT> +</SELECT> <% $opt{'post_field_label'} %> % } <%init> diff --git a/httemplate/elements/topreload.js b/httemplate/elements/topreload.js new file mode 100644 index 000000000..84faee05c --- /dev/null +++ b/httemplate/elements/topreload.js @@ -0,0 +1,6 @@ + window.topreload = function() { + if (window != window.top) { + window.top.location.reload(); + } + } +
\ No newline at end of file diff --git a/httemplate/elements/tr-select-cust_phone.html b/httemplate/elements/tr-select-cust_phone.html new file mode 100644 index 000000000..cf88392b0 --- /dev/null +++ b/httemplate/elements/tr-select-cust_phone.html @@ -0,0 +1,12 @@ + <TR> + <TD ALIGN="right"><% $opt{'label'} || 'Customer Phones' %></TD> + <TD> + <% include( '/elements/select-cust_phone.html', %opt ) %> + </TD> + </TR> + +<%init> + +my %opt = @_; + +</%init> diff --git a/httemplate/elements/tr-select-reason.html b/httemplate/elements/tr-select-reason.html index 3b9bb2299..f25171fef 100755 --- a/httemplate/elements/tr-select-reason.html +++ b/httemplate/elements/tr-select-reason.html @@ -5,17 +5,22 @@ Example: include( '/elements/tr-select-reason.html', #required - 'field' => 'reasonnum', - 'reason_class' => 'C', # currently 'C', 'R', 'F', 'S' or 'X' - # for cancel, credit, refund, suspend or void credit + 'field' => 'reasonnum', # field name + 'reason_class' => 'C', # one of those in %FS::reason_type::class_name + 'label' => 'Your Label', # field display label #recommended 'cgi' => $cgi, #easiest way for things to be properly "sticky" on errors #optional - 'control_button' => 'element_name', #button to be enabled when a reason is - #selected + 'control_button' => 'element_name', #button to be enabled when a reason is + #selected 'id' => 'element_id', + 'hide_add' => '1', # setting this will hide the add new reason link, + # even if the user has access to add a new reason. + 'hide_onload' => '1', # setting this will hide reason select box on page load, + # allowing for it do be displayed later. + 'pre_options' => [ 0 => 'all'], # an array of pre options. Defaults to 0 => 'select reason...' #deprecated ways to keep things "sticky" on errors # (requires duplicate code in each using file to parse cgi params) @@ -68,24 +73,28 @@ Example: </SCRIPT> %# sadly can't just use add_inline here, as we have non-text fields + <& tr-select-table.html, - 'label' => 'Reason', + 'label' => $label, 'field' => $name, 'id' => $id, 'table' => 'reason', 'records' => \@reasons, + 'label_callback' => sub { my $reason = shift; + $reason->type . ' : ' . $reason->reason }, 'name_col' => 'label', 'disable_empty' => 1, - 'pre_options' => [ 0 => 'Select reason...' ], + 'pre_options' => \@pre_options, 'post_options' => \@post_options, 'curr_value' => $init_reason, 'onchange' => $id.'_changed()', + 'hide_onload' => $opt{'hide_onload'}, &> % # "add new reason" fields % # should be a <fieldset>, but that doesn't fit well into the table -% if ( $curuser->access_right($add_access_right) ) { +% if ( $curuser->access_right($add_access_right) && !$hide_addnew ) { <TR id="<% $id %>_new_fields"> <TD COLSPAN=2> <TABLE CLASS="inv" STYLE="text-align: left"> @@ -184,6 +193,8 @@ my %opt = @_; my $name = $opt{'field'}; my $class = $opt{'reason_class'}; +my $label = $opt{'label'} ? $opt{'label'} : 'Reason'; +my $hide_addnew = $opt{'hide_addnew'} ? $opt{'hide_addnew'} : ''; my $init_reason; if ( $opt{'cgi'} ) { @@ -195,6 +206,8 @@ if ( $opt{'cgi'} ) { my $id = $opt{'id'} || $name; $id =~ s/\./_/g; # for edit/part_event +my $label_id = $opt{'label_id'} || ''; + my $add_access_right; if ($class eq 'C') { $add_access_right = 'Add on-the-fly cancel reason'; @@ -222,10 +235,14 @@ my @reasons = qsearch({ ' ON (reason.reason_type = reason_type.typenum)', 'hashref' => { disabled => '' }, 'extra_sql' => " AND reason_type.class = '$class'", + 'order_by' => ' ORDER BY type, reason', }); +my @pre_options = ( 0 => 'Select reason...' ); +@pre_options = @{ $opt{'pre_options'} } if $opt{'pre_options'}; + my @post_options; -if ( $curuser->access_right($add_access_right) ) { +if ( $curuser->access_right($add_access_right) && !$hide_addnew ) { @post_options = ( -1 => 'Add new reason' ); } diff --git a/httemplate/elements/tr-td-label.html b/httemplate/elements/tr-td-label.html index 8125541c7..542f4559c 100644 --- a/httemplate/elements/tr-td-label.html +++ b/httemplate/elements/tr-td-label.html @@ -1,4 +1,12 @@ -<TR> +<%doc> + +Actually <TR> <TH> $label </TH> + +Note that this puts the 'label' argument into the document verbatim, with no +escaping or localization. + +</%doc> +<TR id="<% $opt{'id'} %>_row" <% $row_style %>> <TD ALIGN = "right" VALIGN = "<% $opt{'valign'} || 'top' %>" @@ -14,6 +22,8 @@ my $style = 'padding-top: 3px'; $style .= '; '. $opt{'cell_style'} if $opt{'cell_style'}; +my $row_style = 'style="visibility:collapse;"' if $opt{'hide_onload'}; + my $required = $opt{'required'} ? '<font color="#ff0000">*</font> ' : ''; </%init> |
