[freeside-commits] branch FREESIDE_4_BRANCH updated. 127c3e6c4da293af18ed05e108a110213be682fc

Ivan ivan at 420.am
Thu Aug 25 15:06:48 PDT 2016


The branch, FREESIDE_4_BRANCH has been updated
       via  127c3e6c4da293af18ed05e108a110213be682fc (commit)
      from  6bdc9c23cddd8d8a48f993afb58616972f2e1ac1 (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 127c3e6c4da293af18ed05e108a110213be682fc
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Thu Aug 25 15:06:47 2016 -0700

    usability: customer tags with checkboxes instead of a select-multiple

diff --git a/httemplate/edit/cust_main.cgi b/httemplate/edit/cust_main.cgi
index b314d2d..3ba1e85 100755
--- a/httemplate/edit/cust_main.cgi
+++ b/httemplate/edit/cust_main.cgi
@@ -303,8 +303,6 @@ if ( $cgi->param('error') ) {
   $ss = '';
   $stateid = '';
 
-  $cgi->param('tagnum', FS::part_tag->default_tags);
-
   if ( $cgi->param('qualnum') =~ /^(\d+)$/ ) {
     my $qualnum = $1;
     my $qual = qsearchs('qual', { 'qualnum' => $qualnum } )
diff --git a/httemplate/edit/cust_main/basics.html b/httemplate/edit/cust_main/basics.html
index c3768ac..a30d7f8 100644
--- a/httemplate/edit/cust_main/basics.html
+++ b/httemplate/edit/cust_main/basics.html
@@ -123,6 +123,7 @@
 %# tags
 <& /elements/tr-select-cust_tag.html,
              'custnum' => $custnum,
+             'default' => { map { $_=>1 } FS::part_tag->default_tags },
              'cgi'     => $cgi,
 &>
 
diff --git a/httemplate/edit/process/cust_main.cgi b/httemplate/edit/process/cust_main.cgi
index 74f8f23..2cb1648 100755
--- a/httemplate/edit/process/cust_main.cgi
+++ b/httemplate/edit/process/cust_main.cgi
@@ -109,7 +109,12 @@ if ( $cgi->param('no_credit_limit') ) {
   $new->setfield('credit_limit', '');
 }
 
-$new->tagnum( [ $cgi->param('tagnum') ] );
+#$new->tagnum( [ $cgi->param('tagnum') ] );
+my $params = $cgi->Vars;
+$new->tagnum( [
+  map { /^tagnum(\d+)/ && $1 }
+    grep { /^tagnum(\d+)/ && $cgi->param($_) } keys %$params
+] );
 
 $error ||= $new->set_national_id_from_cgi( $cgi );
 
diff --git a/httemplate/elements/checkboxes-table.html b/httemplate/elements/checkboxes-table.html
index 671cd1f..d3bbab4 100644
--- a/httemplate/elements/checkboxes-table.html
+++ b/httemplate/elements/checkboxes-table.html
@@ -69,6 +69,7 @@
 %               'select'    => $opt{'target_table'}. '.*',
 %               'addl_from' => "LEFT JOIN $opt{'link_table'} USING ( $target_pkey )",
 %               'extra_sql' => $extra_sql,
+%               'order_by'  => $opt{'order_by'},
 %            })
 %   ) {
 %
@@ -83,7 +84,11 @@
 %
 %     } elsif ( !$sourcenum ) { # newly created object, has no links yet
 %
-%       $checked = $opt{'default'} ? 'CHECKED' : ''
+%       if ( ref($opt{'default'}) ) {
+%         $checked = $opt{'default'}->{$targetnum} ? 'CHECKED' : '';
+%       } else {
+%         $checked = $opt{'default'}               ? 'CHECKED' : ''
+%       }
 %
 %     } else {
 %
@@ -98,17 +103,12 @@
 %
 %
 
-
-  <INPUT TYPE="checkbox" NAME="<% $target_pkey. $targetnum %>" <% $checked %> VALUE="ON">
+% my $color_col = $opt{'color_col'};
+  <INPUT TYPE="checkbox" NAME="<% $target_pkey. $targetnum %>" <% $checked %> VALUE="ON"><DIV STYLE="display:inline; background-color: #<% $color_col ? $target_obj->$color_col : '' %>">
 % if ( $opt{'target_link'} ) { 
-
-
     <A HREF="<% $opt{'target_link'} %><% $targetnum %>">
-%
-%
 %  }
 %  
-<% $targetnum %>: 
 % if ( $opt{'name_callback'} ) { 
 
 
@@ -118,7 +118,7 @@
 %  
 
 
-    <% $target_obj->$name_col() %><% $opt{'target_link'} ? '</A>' : '' %>
+    <% $target_obj->$name_col() %></DIV><% $opt{'target_link'} ? '</A>' : '' %>
 % } 
 % if ( $opt{'disable-able'} ) { 
 
diff --git a/httemplate/elements/select-cust_tag.html b/httemplate/elements/select-cust_tag.html
index 61d4dca..02f8498 100644
--- a/httemplate/elements/select-cust_tag.html
+++ b/httemplate/elements/select-cust_tag.html
@@ -1,11 +1,12 @@
-<% include( '/elements/select-table.html',
-                 'table'         => 'part_tag',
+<% include( '/elements/checkboxes-table.html',
+                 'target_table'  => 'part_tag',
+                 'link_table'    => 'cust_tag',
                  'name_col'      => 'tagname', #tagname - tagdesc??
-                 'multiple'      => 1,
-                 #'value'         => $agentnum || '',
-                 #'agent_virt'    => 1,
-                 'hashref'       => { 'disabled' => '' },
+                 'color_col'     => 'tagcolor',
+                 'disable-able'  => 1,
                  'order_by'      => ' ORDER BY tagname',
+                 'source_table'  => 'cust_main',
+                 'sourcenum'     => $opt{'custnum'},
                  %opt,
              )
 %>
diff --git a/httemplate/elements/tr-select-cust_tag.html b/httemplate/elements/tr-select-cust_tag.html
index b133dcc..711408e 100644
--- a/httemplate/elements/tr-select-cust_tag.html
+++ b/httemplate/elements/tr-select-cust_tag.html
@@ -4,8 +4,6 @@
     <TH ALIGN="right"><% $opt{'label'} || 'Tags' %></TD>
     <TD>
       <% include( '/elements/select-cust_tag.html',
-                     'curr_value' => \@curr_tagnum,
-                     'part_tag'   => \@part_tag,
                      %opt,
                  )
       %>
@@ -38,6 +36,8 @@ if ( $cgi && $cgi->param('tagnum') ) {
 my $extra_sql = "WHERE disabled IS NULL OR disabled = '' ";
 $extra_sql .= ' OR tagnum IN ('. join(',', @curr_tagnum). ')' if @curr_tagnum;
 
+#now kind of inefficient (we only want to know if there are any), but since
+# its an edit control its not significant
 my @part_tag = qsearch({
   'table'     => 'part_tag',
   'hashref'   => {},

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

Summary of changes:
 httemplate/edit/cust_main.cgi               |    2 --
 httemplate/edit/cust_main/basics.html       |    1 +
 httemplate/edit/process/cust_main.cgi       |    7 ++++++-
 httemplate/elements/checkboxes-table.html   |   18 +++++++++---------
 httemplate/elements/select-cust_tag.html    |   13 +++++++------
 httemplate/elements/tr-select-cust_tag.html |    4 ++--
 6 files changed, 25 insertions(+), 20 deletions(-)




More information about the freeside-commits mailing list