better multiple-select behavior in part_svc edit, #23251
authorMark Wells <mark@freeside.biz>
Sat, 1 Jun 2013 00:02:48 +0000 (17:02 -0700)
committerMark Wells <mark@freeside.biz>
Sat, 1 Jun 2013 00:02:48 +0000 (17:02 -0700)
httemplate/edit/elements/part_svc_column.html
httemplate/edit/part_svc.cgi

index d03c49d..fbea9bd 100644 (file)
@@ -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);
index 58c237e..2ec0242 100755 (executable)
@@ -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;
       }