[freeside-commits] branch master updated. 64aec88c35418b8c630811cdf5afb19b2a1c4299

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


The branch, master has been updated
       via  64aec88c35418b8c630811cdf5afb19b2a1c4299 (commit)
      from  3fc0a546caf38b444b63744726c5080ce5d9bbbb (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 64aec88c35418b8c630811cdf5afb19b2a1c4299
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Thu Aug 25 15:06:45 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