Merge branch 'master' of git.freeside.biz:/home/git/freeside
[freeside.git] / httemplate / edit / part_svc.cgi
index 58c237e..7a47f15 100755 (executable)
@@ -31,6 +31,9 @@
   font-size: smaller;
   font-style: italic;
 }
+.selectrole {
+  font-size: small
+}
 </STYLE>
 <SCRIPT TYPE="text/javascript">
 function fixup_submit(layer) {
@@ -72,6 +75,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;
       }
@@ -87,6 +101,15 @@ function flag_changed(obj) {
       }
     }
   }
+  var required = document.getElementById(layer + '__' + field + '_required');
+  if (required && !required.disabledinit) {
+    if (newflag == "F") {
+      required.checked = false;
+      required.disabled = true;
+    } else {
+      required.disabled = false;
+    }
+  }
 }
 
 window.onload = function() {
@@ -97,6 +120,17 @@ window.onload = function() {
       obj.setAttribute('should_be_multiple', true);
     }
   }
+  var inputs = document.getElementsByTagName('INPUT');
+  for(i = 0; i < inputs.length; i++) {
+    var obj = inputs[i];
+    if (obj.type == 'checkbox') {
+      if ( obj.name.match(/_required$/) ) {
+        if ( obj.disabled ) {
+          obj.disabledinit = 1;
+        }
+      }
+    }
+  }
   for(i = 0; i < selects.length; i++) {
     var obj = selects[i];
     if ( obj.name.match(/_flag$/) ) {