summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Wells <mark@freeside.biz>2013-05-31 17:02:21 -0700
committerMark Wells <mark@freeside.biz>2013-05-31 17:02:21 -0700
commit52e1a09b0f426bf572e0af9d97bc1c00dd22f427 (patch)
treed4afbf1ebc9dd3458527566104a9f566e2ba8f35
parent58f7ac18d2f510c2332fcb9d3b66b718852d186f (diff)
better multiple-select behavior in part_svc edit, #23251
-rw-r--r--httemplate/edit/elements/part_svc_column.html3
-rwxr-xr-xhttemplate/edit/part_svc.cgi11
2 files changed, 14 insertions, 0 deletions
diff --git a/httemplate/edit/elements/part_svc_column.html b/httemplate/edit/elements/part_svc_column.html
index d03c49d2f..fbea9bd6d 100644
--- a/httemplate/edit/elements/part_svc_column.html
+++ b/httemplate/edit/elements/part_svc_column.html
@@ -157,6 +157,9 @@ that field.
'multiple' => $def->{'multiple'},
'disable_empty' => 1,
'curr_value' => $value,
+ # these can be switched between multiple and singular,
+ # so put the complete curr_value in an attribute
+ 'element_etc' => 'default="'.encode_entities($value).'"',
&>
% } else {
% my (@options, %labels);
diff --git a/httemplate/edit/part_svc.cgi b/httemplate/edit/part_svc.cgi
index 58c237efd..2ec024269 100755
--- a/httemplate/edit/part_svc.cgi
+++ b/httemplate/edit/part_svc.cgi
@@ -72,6 +72,17 @@ function flag_changed(obj) {
select.className = 'enabled';
if ( newflag == 'S' || select.getAttribute('should_be_multiple') ) {
select.multiple = true;
+ var defaults = select.getAttribute('default');
+ if ( defaults ) {
+ defaults = defaults.split(',');
+ for (var i = 0; i < defaults.length; i++) {
+ for (j = 0; j < select.options.length; j++ ) {
+ if ( defaults[i] == select.options[j].value ) {
+ select.options[j].selected = true;
+ }
+ }
+ }
+ }
} else {
select.multiple = false;
}