summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2012-09-10 23:10:31 -0700
committerIvan Kohler <ivan@freeside.biz>2012-09-10 23:10:31 -0700
commit4b76d6fbe262579dbb19aa40b24c83f1024f5425 (patch)
tree8519462b7aa05aabb7dfb3d31296a1f7e0fab4eb
parent2b10c0594ff2ab9ce37d9f8af9c154d3bedde731 (diff)
still prevent inadvertantly losing disabled package/service defs, package classes, but now without incurring the perf overhead of showing all disabled items in config selections
-rw-r--r--httemplate/config/config.cgi1
-rw-r--r--httemplate/elements/select-table.html33
2 files changed, 19 insertions, 15 deletions
diff --git a/httemplate/config/config.cgi b/httemplate/config/config.cgi
index a4f9890a5..7960d7e38 100644
--- a/httemplate/config/config.cgi
+++ b/httemplate/config/config.cgi
@@ -304,7 +304,6 @@ Setting <b><% $key %></b>
%
% my %opt = ( 'element_name' => "$key$n",
% 'empty_label' => ' ',
-% 'showdisabled' => 1,
% );
% if ( $config_item->multiple ) {
% $opt{'multiple'} = 1 if $config_item->multiple;
diff --git a/httemplate/elements/select-table.html b/httemplate/elements/select-table.html
index 127028ee5..c0cd7a50b 100644
--- a/httemplate/elements/select-table.html
+++ b/httemplate/elements/select-table.html
@@ -181,24 +181,29 @@ if ( $opt{'records'} ) {
});
}
-unless ( $value < 1 # !$value #ignore negatives too
- or ref($value)
+if ( ref( $value ) eq 'ARRAY' ) {
+ $value = { map { $_ => 1 } @$value };
+}
+
+unless ( !ref($value) && $value < 1 # !$value #ignore negatives too
or ! exists( $opt{hashref}->{disabled} ) #??
- or grep { $value == $_->$key() } @records
+ #or grep { $value == $_->$key() } @records
) {
delete $opt{hashref}->{disabled};
- $opt{hashref}->{$key} = $value;
- my $record = qsearchs( {
- 'table' => $opt{table},
- 'addl_from' => $opt{'addl_from'},
- 'hashref' => $hashref,
- 'extra_sql' => $extra_sql,
- });
- push @records, $record if $record;
-}
-if ( ref( $value ) eq 'ARRAY' ) {
- $value = { map { $_ => 1 } @$value };
+ foreach my $v ( ref($value) ? keys %$value : ($value) ) {
+ next if grep { $v == $_->$key() } @records;
+
+ $opt{hashref}->{$key} = $v;
+ my $record = qsearchs( {
+ 'table' => $opt{table},
+ 'addl_from' => $opt{'addl_from'},
+ 'hashref' => $hashref,
+ 'extra_sql' => $extra_sql,
+ });
+ push @records, $record if $record;
+
+ }
}
my @pre_options = $opt{pre_options} ? @{ $opt{pre_options} } : ();