X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Fsearch%2Felements%2Fcheckbox-foot.html;h=f33a87467b4800de24f20867ae4d67e68c48442f;hp=be1caab916809f12b4864bdbf1b106071324b026;hb=HEAD;hpb=3d0a1bb06b895c5be6e3f0517d355442a6b1e125 diff --git a/httemplate/search/elements/checkbox-foot.html b/httemplate/search/elements/checkbox-foot.html index be1caab91..f33a87467 100644 --- a/httemplate/search/elements/checkbox-foot.html +++ b/httemplate/search/elements/checkbox-foot.html @@ -4,13 +4,14 @@ html_foot => include('elements/checkbox-foot.html', actions => [ { label => 'Edit selected packages', - action => 'popup_package_edit()', + onclick => 'popup_package_edit()', }, { submit => 'Delete selected packages', confirm => 'Really delete these packages?' }, ], filter => '.name = "pkgpart"', # see below + minboxes => 2, #will remove checkboxes if there aren't at least this many ), &> @@ -26,7 +27,8 @@ array is a hashref of either: of "submit" becomes the "value" property of the button (and thus its label). If "confirm" is specified, the button will have an onclick handler that displays the value of "confirm" in a popup message box and asks the user to -confirm the choice. +confirm the choice. The hashref may also have a "name" property, which +sets the name of the submit button. - "onclick" and "label". Creates a non-submit button that executes the Javascript code in "onclick". "label" is used as the text of the button. @@ -48,7 +50,7 @@ false.
% foreach my $action (@$actions) { % if ( $action->{onclick} ) { -{name} %> onclick="<% $opt{onclick} %>"\ +{name} %> onclick="<% $action->{onclick} %>"\ VALUE="<% $action->{label} |h%>"> % } elsif ( $action->{submit} ) { {name} %> <% $action->{confirm} %>\ @@ -66,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'; } @@ -74,6 +84,15 @@ function setAll(setTo) { checkboxes[i].checked = setTo; } } +function toCGIString() { + var out = ''; + for (var i = 0; i < checkboxes.length; i++) { + if (checkboxes[i].checked) { + out += '&' + checkboxes[i].name + '=' + checkboxes[i].value; + } + } + return out; +} <%init> my %opt = @_;