diff options
author | Ivan Kohler <ivan@freeside.biz> | 2016-08-25 15:06:45 -0700 |
---|---|---|
committer | Ivan Kohler <ivan@freeside.biz> | 2016-08-25 15:06:45 -0700 |
commit | 64aec88c35418b8c630811cdf5afb19b2a1c4299 (patch) | |
tree | 2ebcc93b3ab5d0ab4cd3a9f583d7d727e07f3d07 /httemplate | |
parent | 3fc0a546caf38b444b63744726c5080ce5d9bbbb (diff) |
usability: customer tags with checkboxes instead of a select-multiple
Diffstat (limited to 'httemplate')
-rwxr-xr-x | httemplate/edit/cust_main.cgi | 2 | ||||
-rw-r--r-- | httemplate/edit/cust_main/basics.html | 1 | ||||
-rwxr-xr-x | httemplate/edit/process/cust_main.cgi | 7 | ||||
-rw-r--r-- | httemplate/elements/checkboxes-table.html | 18 | ||||
-rw-r--r-- | httemplate/elements/select-cust_tag.html | 13 | ||||
-rw-r--r-- | httemplate/elements/tr-select-cust_tag.html | 4 |
6 files changed, 25 insertions, 20 deletions
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' => {}, |