summaryrefslogtreecommitdiff
path: root/httemplate/elements
diff options
context:
space:
mode:
authorChristopher Burger <burgerc@freeside.biz>2017-11-13 12:45:15 -0500
committerChristopher Burger <burgerc@freeside.biz>2018-06-19 09:24:18 -0400
commitd65053a0357531b623d0ff715d3426301f242b2c (patch)
treeabf48d185222f1cf76fd36fc8363eb55d7857aab /httemplate/elements
parent20bfaf53d36f64261b9c6fe7a548b64ad40f5868 (diff)
RT# 77470 - added reason option to advanced package report with suspended status is selected. Also added links to suspend and unsuspend when status active or suspended is used.
Conflicts: FS/FS/cust_pkg/Search.pm httemplate/elements/tr-select-reason.html httemplate/elements/tr-td-label.html
Diffstat (limited to 'httemplate/elements')
-rw-r--r--httemplate/elements/header-popup.html1
-rw-r--r--httemplate/elements/popup-topreload.html17
-rw-r--r--httemplate/elements/topreload.js6
-rwxr-xr-xhttemplate/elements/tr-select-reason.html35
-rw-r--r--httemplate/elements/tr-td-label.html12
5 files changed, 61 insertions, 10 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/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-reason.html b/httemplate/elements/tr-select-reason.html
index 3b9bb2299..2fe676b1f 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>&nbsp;' : '';
</%init>