-<%= header("$action Service Definition",
- menubar( 'Main Menu' => $p,
- 'View all services' => "${p}browse/part_svc.cgi"
- ),
- " onLoad=\"visualize()\""
- )
-%>
-
-<% if ( $cgi->param('error') ) { %>
-<FONT SIZE="+1" COLOR="#ff0000">Error: <%= $cgi->param('error') %></FONT>
-<% } %>
-
-<FORM NAME="dummy">
-
- Service Part #<%= $part_svc->svcpart ? $part_svc->svcpart : "(NEW)" %>
-
-<PRE>
-Service <INPUT TYPE="text" NAME="svc" VALUE="<%= $hashref->{svc} %>">
-</PRE>
-Services are items you offer to your customers.
-<UL><LI>svc_acct - Shell accounts, POP mailboxes, SLIP/PPP and ISDN accounts
- <LI>svc_domain - Virtual domains
- <LI>svc_acct_sm - Virtual domain mail aliasing
- <LI>svc_www - Virtual domain website
-<!-- <LI>svc_charge - One-time charges (Partially unimplemented)
- <LI>svc_wo - Work orders (Partially unimplemented)
--->
-</UL>
-For the selected table, you can give fields default or fixed (unchangable)
-values. For example, a SLIP/PPP account may have a default (or perhaps fixed)
-<B>slipip</B> of <B>0.0.0.0</B>, while a POP mailbox will probably have a fixed
-blank <B>slipip</B> as well as a fixed shell something like <B>/bin/true</B> or
-<B>/usr/bin/passwd</B>.
-<BR><BR>
-<SCRIPT>
-var svcdb = null;
-var something = null;
-function changed(what) {
- svcdb = what.options[what.selectedIndex].value;
-<% foreach my $svcdb ( qw( svc_acct svc_domain svc_acct_sm svc_www ) ) { %>
- if (svcdb == "<%= $svcdb %>" ) {
- <% foreach my $not ( grep { $_ ne $svcdb } (
- qw(svc_acct svc_domain svc_acct_sm svc_www) ) ) { %>
- if (document.getElementById) {
- document.getElementById('d<%= $not %>').style.visibility = "hidden";
+function flag_changed(obj) {
+ var newflag = obj.value;
+ var a = obj.name.match(/(.*)__(.*)_flag/);
+ var layer = a[1];
+ var field = a[2];
+ var input = document.getElementById(layer + '__' + field);
+ // for fields that have both 'input' and 'select', 'select' is 'select from
+ // inventory class'.
+ var select = document.getElementById(layer + '__' + field + '_select');
+ if (newflag == "" || newflag == "X") { // disable
+ if ( input ) {
+ input.disabled = true;
+ input.className = 'disabled';
+ }
+ if ( select ) {
+ select.disabled = true;
+ select.className = 'hidden';
+ }
+ } else if ( newflag == 'D' || newflag == 'F' || newflag == 'S' ) {
+ if ( input ) {
+ // enable text box, disable inventory select
+ input.disabled = false;
+ input.className = 'enabled';
+ if ( select ) {
+ select.disabled = false;
+ select.className = 'hidden';
+ }
+ } else if ( select ) {
+ // enable select
+ select.disabled = false;
+ 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;
+ }
+ }
+ }
+ }