summaryrefslogtreecommitdiff
path: root/httemplate/elements
diff options
context:
space:
mode:
authorivan <ivan>2006-04-22 00:58:40 +0000
committerivan <ivan>2006-04-22 00:58:40 +0000
commit1a033848671cad2cbe7687b37fc718b3b2a68b83 (patch)
tree01fc1ca352726cdc5786e0ccaf78515e9326ba84 /httemplate/elements
parent303cb4ce4b6ce634e108e3b7a0b43086a5e4f184 (diff)
start of package class web UI (add/edit package classes, package class selection in package def edit)
Diffstat (limited to 'httemplate/elements')
-rw-r--r--httemplate/elements/select-agent.html32
-rw-r--r--httemplate/elements/select-pkg_class.html16
-rw-r--r--httemplate/elements/select-table.html45
-rw-r--r--httemplate/elements/tr-select-pkg_class.html29
4 files changed, 102 insertions, 20 deletions
diff --git a/httemplate/elements/select-agent.html b/httemplate/elements/select-agent.html
index c2a5e4bde..aa480a54b 100644
--- a/httemplate/elements/select-agent.html
+++ b/httemplate/elements/select-agent.html
@@ -1,24 +1,16 @@
<%
my( $agentnum, %opt ) = @_;
- my @agents;
- if ( $opt{'agents'} ) {
- @agents = @{ $opt{'agents'} };
- } else {
- @agents = qsearch( 'agent', { disabled=>'' } );
- }
-
+ my %select_opt = ();
+ $select_opt{'records'} = $opt{'agents'}
+ if $opt{'agents'};
+
+%><%= include( '/elements/select-table.html',
+ 'table' => 'agent',
+ 'name_col' => 'agent',
+ 'value' => $agentnum,
+ 'empty_label' => 'all',
+ 'hashref' => { 'disabled' => '' },
+ %select_opt,
+ )
%>
-
-<SELECT NAME="agentnum">
-
- <OPTION VALUE="">all</OPTION>
-
- <% foreach my $agent ( sort { $a->agent cmp $b->agent } @agents ) { %>
-
- <OPTION VALUE="<%= $agent->agentnum %>"<%= $agentnum == $agent->agentnum ? ' SELECTED' : '' %>><%= $agent->agent %>
-
- <% } %>
-
-</SELECT>
-
diff --git a/httemplate/elements/select-pkg_class.html b/httemplate/elements/select-pkg_class.html
new file mode 100644
index 000000000..5486e0877
--- /dev/null
+++ b/httemplate/elements/select-pkg_class.html
@@ -0,0 +1,16 @@
+<%
+ my( $classnum, %opt ) = @_;
+
+ my %select_opt = ();
+ $select_opt{'records'} = $opt{'pkg_class'}
+ if $opt{'pkg_class'};
+
+%><%= include( '/elements/select-table.html',
+ 'table' => 'pkg_class',
+ 'name_col' => 'classname',
+ 'value' => $classnum,
+ 'empty_label' => '(none)',
+ #'hashref' => { 'disabled' => '' },
+ #%select_opt,
+ )
+%>
diff --git a/httemplate/elements/select-table.html b/httemplate/elements/select-table.html
new file mode 100644
index 000000000..10cc8b995
--- /dev/null
+++ b/httemplate/elements/select-table.html
@@ -0,0 +1,45 @@
+<%
+
+ ##required
+ # 'table' => 'table_name',
+ # 'name_col' => 'name_column',
+ #
+ ##strongly recommended (you want your forms to be "sticky" on errors, right?)
+ # 'value' => 'current_value',
+ #
+ ##opt
+ # 'empty_label' => '', #better specify it though, the default might change
+ # 'hashref' => {},
+ # 'records' => \@records, #instead of hashref
+
+ my( %opt ) = @_;
+
+ my $key = dbdef->table($opt{'table'})->primary_key; #? $opt{'primary_key'} ||
+
+ my $name_col = $opt{'name_col'};
+
+ my @records = ();
+ if ( $opt{'records'} ) {
+ @records = @{ $opt{'records'} };
+ } else {
+ @records = qsearch( $opt{'table'}, ( $opt{'hashref'} || {} ) );
+ }
+
+%>
+
+<SELECT NAME="<%= $key %>">
+
+ <OPTION VALUE=""><%= $opt{'empty_label'} || 'all' %></OPTION>
+
+ <% foreach my $record ( sort { $a->$name_col() cmp $b->$name_col() }
+ @records
+ )
+ {
+ %>
+
+ <OPTION VALUE="<%= $record->$key() %>"<%= $opt{'value'} == $record->$key() ? ' SELECTED' : '' %>><%= $record->$name_col() %>
+
+ <% } %>
+
+</SELECT>
+
diff --git a/httemplate/elements/tr-select-pkg_class.html b/httemplate/elements/tr-select-pkg_class.html
new file mode 100644
index 000000000..de10885c8
--- /dev/null
+++ b/httemplate/elements/tr-select-pkg_class.html
@@ -0,0 +1,29 @@
+<%
+ my( $classnum, %opt ) = @_;
+
+ my @pkg_class;
+ if ( $opt{'pkg_class'} ) {
+ @pkg_class = @{ $opt{'pkg_class'} };
+ } else {
+ @pkg_class = qsearch( 'pkg_class', {} ); # { disabled=>'' } );
+ }
+
+%>
+
+<% if ( scalar(@pkg_class) == 0 ) { %>
+
+ <INPUT TYPE="hidden" NAME="classnum" VALUE="">
+
+<% } else { %>
+
+ <TR>
+ <TD ALIGN="right"><%= $opt{'label'} || 'Package class' %></TD>
+ <TD>
+ <%= include( '/elements/select-pkg_class.html', $classnum,
+ 'pkg_class' => \@pkg_class,
+ )
+ %>
+ </TD>
+ </TR>
+
+<% } %>