diff options
Diffstat (limited to 'httemplate')
-rw-r--r-- | httemplate/browse/reason.html | 22 | ||||
-rw-r--r-- | httemplate/search/elements/checkbox-foot.html | 9 |
2 files changed, 30 insertions, 1 deletions
diff --git a/httemplate/browse/reason.html b/httemplate/browse/reason.html index 8af88a950..bdbcf3704 100644 --- a/httemplate/browse/reason.html +++ b/httemplate/browse/reason.html @@ -18,6 +18,8 @@ 'fields' => \@fields, 'links' => \@links, 'align' => $align, + 'html_form' => qq!<FORM ACTION="${p}misc/reason_merge.html" METHOD="POST">!, + 'html_foot' => $html_foot, ) %> <%init> @@ -31,7 +33,8 @@ my $class = $1; my $classname = $FS::reason_type::class_name{$class}; my $classpurpose = $FS::reason_type::class_purpose{$class}; -my $html_init = ucfirst($classname). " reasons $classpurpose.<BR><BR>". +my $html_init = include('/elements/init_overlib.html'). +ucfirst($classname). " reasons $classpurpose.<BR><BR>". qq!<A HREF="${p}edit/reason.html?class=$class">!. "<I>Add a $classname reason</I></A><BR><BR>"; @@ -107,5 +110,22 @@ if ( $class eq 'S' ) { $align .= 'cl'; } +# reason merge handling +push @header, ''; +push @fields, sub { + my $reason = shift; + my $reasonnum = $reason->reasonnum; + qq!<INPUT TYPE="checkbox" NAME="reasonnum" VALUE="$reasonnum">!; +}; +push @links, ''; +$align .= 'l'; +my $html_foot = include('/search/elements/checkbox-foot.html', + onclick => include( '/elements/popup_link_onclick.html', + js_action => q!'! . "${p}misc/reason-merge.html?" . q!' + toCGIString()!, + actionlabel => 'Merge reasons', + ), + label => 'merge selected reasons', + minboxes => 2, +) . '</FORM>'; </%init> diff --git a/httemplate/search/elements/checkbox-foot.html b/httemplate/search/elements/checkbox-foot.html index c47009425..ae8b79470 100644 --- a/httemplate/search/elements/checkbox-foot.html +++ b/httemplate/search/elements/checkbox-foot.html @@ -11,6 +11,7 @@ }, ], filter => '.name = "pkgpart"', # see below + minboxes => 2, #will remove checkboxes if there aren't at least this many ), &> @@ -67,6 +68,14 @@ for (var i = 0; i < inputs.length; i++) { } } %# avoid the need for "$areboxes" late-evaluation hackery +% if ($opt{'minboxes'}) { +if ( checkboxes.length < <% $opt{'minboxes'} %> ) { + for (i = 0; i < checkboxes.length; i++) { + checkboxes[i].parentNode.removeChild(checkboxes[i]); + } + checkboxes = []; +} +% } if ( checkboxes.length == 0 ) { document.getElementById('checkbox_footer').style.display = 'none'; } |