[freeside-commits] branch master updated. 4b76d6fbe262579dbb19aa40b24c83f1024f5425

Ivan ivan at 420.am
Mon Sep 10 23:10:33 PDT 2012


The branch, master has been updated
       via  4b76d6fbe262579dbb19aa40b24c83f1024f5425 (commit)
      from  2b10c0594ff2ab9ce37d9f8af9c154d3bedde731 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 4b76d6fbe262579dbb19aa40b24c83f1024f5425
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Mon Sep 10 23:10:31 2012 -0700

    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

diff --git a/httemplate/config/config.cgi b/httemplate/config/config.cgi
index a4f9890..7960d7e 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 127028e..c0cd7a5 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} } : ();

-----------------------------------------------------------------------

Summary of changes:
 httemplate/config/config.cgi          |    1 -
 httemplate/elements/select-table.html |   33 +++++++++++++++++++--------------
 2 files changed, 19 insertions(+), 15 deletions(-)




More information about the freeside-commits mailing list