summaryrefslogtreecommitdiff
path: root/httemplate/elements/select-part_pkg.html
diff options
context:
space:
mode:
Diffstat (limited to 'httemplate/elements/select-part_pkg.html')
-rw-r--r--httemplate/elements/select-part_pkg.html51
1 files changed, 51 insertions, 0 deletions
diff --git a/httemplate/elements/select-part_pkg.html b/httemplate/elements/select-part_pkg.html
new file mode 100644
index 0000000..885bb80
--- /dev/null
+++ b/httemplate/elements/select-part_pkg.html
@@ -0,0 +1,51 @@
+<%doc>
+
+Example:
+
+ include( '/elements/select-part_pkg.html',
+
+ #strongly recommended (you want your forms to be "sticky" on errors, right?)
+ 'curr_value' => 'current_value',
+
+ #opt
+ 'part_pkg' => \@records,
+
+ #select-table.html options
+ )
+
+</%doc>
+
+<% include( '/elements/select-table.html',
+ 'table' => 'part_pkg',
+ 'agent_virt' => 1,
+ 'agent_null' => 1,
+ 'name_col' => 'pkg',
+ 'empty_label' => 'Select package', #should this be the default?
+ 'label_callback' => sub { shift->pkg_comment },
+ 'hashref' => \%hash,
+ 'extra_option_attributes' => [ 'can_discount' ],
+ %opt,
+ )
+%>
+<%init>
+
+my( %opt ) = @_;
+
+$opt{'records'} = delete $opt{'part_pkg'}
+ if $opt{'part_pkg'};
+
+my %hash = ();
+$hash{'disabled'} = '' unless $opt{'showdisabled'};
+
+if ( exists($opt{'classnum'}) && defined($opt{'classnum'}) ) {
+ if ( $opt{'classnum'} > 0 ) {
+ $hash{'classnum'} = $opt{'classnum'};
+ } elsif ( $opt{'classnum'} eq '' || $opt{'classnum'} == 0 ) {
+ $hash{'classnum'} = '';
+ } #else -1 or not specified, all classes, so don't set classnum
+}
+
+$opt{'extra_sql'} .= ( keys(%hash) ? ' AND ' : ' WHERE ' ).
+ FS::part_pkg->curuser_pkgs_sql;
+
+</%init>