projects
/
freeside.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
3fc0a54
)
usability: customer tags with checkboxes instead of a select-multiple
author
Ivan Kohler
<ivan@freeside.biz>
Thu, 25 Aug 2016 22:06:45 +0000
(15:06 -0700)
committer
Ivan Kohler
<ivan@freeside.biz>
Thu, 25 Aug 2016 22:06:45 +0000
(15:06 -0700)
httemplate/edit/cust_main.cgi
patch
|
blob
|
history
httemplate/edit/cust_main/basics.html
patch
|
blob
|
history
httemplate/edit/process/cust_main.cgi
patch
|
blob
|
history
httemplate/elements/checkboxes-table.html
patch
|
blob
|
history
httemplate/elements/select-cust_tag.html
patch
|
blob
|
history
httemplate/elements/tr-select-cust_tag.html
patch
|
blob
|
history
diff --git
a/httemplate/edit/cust_main.cgi
b/httemplate/edit/cust_main.cgi
index
b314d2d
..
3ba1e85
100755
(executable)
--- a/
httemplate/edit/cust_main.cgi
+++ b/
httemplate/edit/cust_main.cgi
@@
-303,8
+303,6
@@
if ( $cgi->param('error') ) {
$ss = '';
$stateid = '';
$ss = '';
$stateid = '';
- $cgi->param('tagnum', FS::part_tag->default_tags);
-
if ( $cgi->param('qualnum') =~ /^(\d+)$/ ) {
my $qualnum = $1;
my $qual = qsearchs('qual', { 'qualnum' => $qualnum } )
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
(file)
--- 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,
%# tags
<& /elements/tr-select-cust_tag.html,
'custnum' => $custnum,
+ 'default' => { map { $_=>1 } FS::part_tag->default_tags },
'cgi' => $cgi,
&>
'cgi' => $cgi,
&>
diff --git
a/httemplate/edit/process/cust_main.cgi
b/httemplate/edit/process/cust_main.cgi
index
74f8f23
..
2cb1648
100755
(executable)
--- 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->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 );
$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
(file)
--- 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,
% '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
%
%
% } 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 {
%
%
% } 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'} ) {
% if ( $opt{'target_link'} ) {
-
-
<A HREF="<% $opt{'target_link'} %><% $targetnum %>">
<A HREF="<% $opt{'target_link'} %><% $targetnum %>">
-%
-%
% }
%
% }
%
-<% $targetnum %>:
% if ( $opt{'name_callback'} ) {
% 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'} ) {
% }
% if ( $opt{'disable-able'} ) {
diff --git
a/httemplate/elements/select-cust_tag.html
b/httemplate/elements/select-cust_tag.html
index
61d4dca
..
02f8498
100644
(file)
--- 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??
'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',
'order_by' => ' ORDER BY tagname',
+ 'source_table' => 'cust_main',
+ 'sourcenum' => $opt{'custnum'},
%opt,
)
%>
%opt,
)
%>
diff --git
a/httemplate/elements/tr-select-cust_tag.html
b/httemplate/elements/tr-select-cust_tag.html
index
b133dcc
..
711408e
100644
(file)
--- 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',
<TH ALIGN="right"><% $opt{'label'} || 'Tags' %></TD>
<TD>
<% include( '/elements/select-cust_tag.html',
- 'curr_value' => \@curr_tagnum,
- 'part_tag' => \@part_tag,
%opt,
)
%>
%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;
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' => {},
my @part_tag = qsearch({
'table' => 'part_tag',
'hashref' => {},