[freeside-commits] branch FREESIDE_2_3_BRANCH updated. a064b639a194efff1cf554e821777b80f3399ec3

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


The branch, FREESIDE_2_3_BRANCH has been updated
       via  a064b639a194efff1cf554e821777b80f3399ec3 (commit)
      from  86bc5cdcde76e575550da249beeb33a4069fcca4 (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 a064b639a194efff1cf554e821777b80f3399ec3
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Mon Sep 10 23:10:34 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