summaryrefslogtreecommitdiff
path: root/httemplate
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2016-08-25 15:06:45 -0700
committerIvan Kohler <ivan@freeside.biz>2016-08-25 15:06:45 -0700
commit64aec88c35418b8c630811cdf5afb19b2a1c4299 (patch)
tree2ebcc93b3ab5d0ab4cd3a9f583d7d727e07f3d07 /httemplate
parent3fc0a546caf38b444b63744726c5080ce5d9bbbb (diff)
usability: customer tags with checkboxes instead of a select-multiple
Diffstat (limited to 'httemplate')
-rwxr-xr-xhttemplate/edit/cust_main.cgi2
-rw-r--r--httemplate/edit/cust_main/basics.html1
-rwxr-xr-xhttemplate/edit/process/cust_main.cgi7
-rw-r--r--httemplate/elements/checkboxes-table.html18
-rw-r--r--httemplate/elements/select-cust_tag.html13
-rw-r--r--httemplate/elements/tr-select-cust_tag.html4
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' => {},