X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fedit%2Fpart_svc.cgi;h=e899ad073dc857d9ab2de0d570fcd5556849ee90;hb=c5e31619e5a3071506cff19578e9e377753a96f4;hp=437f7e850bf357a51bc090f55143fd6ba73eaf49;hpb=7353f670ef61e617a9dfb6c258907eb70e0345f6;p=freeside.git diff --git a/httemplate/edit/part_svc.cgi b/httemplate/edit/part_svc.cgi index 437f7e850..e899ad073 100755 --- a/httemplate/edit/part_svc.cgi +++ b/httemplate/edit/part_svc.cgi @@ -9,29 +9,12 @@ Service Part #<% $part_svc->svcpart ? $part_svc->svcpart : "(NEW)" %>

Service
-Disable new orders {disabled} eq 'Y' ? ' CHECKED' : '' %>>
+{disabled} eq 'Y' ? ' CHECKED' : '' %>> Disable new orders
+{'preserve'} eq 'Y' ? ' CHECKED' : '' %>> Preserve this service on package cancellation
+
-Service definitions are the templates for items you offer to your customers. - -For the selected table, you can give fields default or fixed (unchangable) -values, or select an inventory class to manually or automatically fill in -that field. -

+ % #YUCK. false laziness w/part_svc.pm. go away virtual fields, please % my %vfields; @@ -74,6 +57,9 @@ that field. % 'A' => { 'desc' => 'Automatically fill in from inventory', % 'condition' => $inv_sub, % }, +% 'H' => { 'desc' => 'Select from hardware class', +% 'condition' => sub { $_[0]->{type} ne 'select-hardware' }, +% }, % 'X' => { 'desc' => 'Excluded', % 'condition' => % sub { ! $vfields{$_[1]}->{$_[2]} }, @@ -94,19 +80,21 @@ that field. % #'form_action' => 'process/part_svc.cgi', % 'form_action' => 'part_svc.cgi', #self % 'form_text' => [ qw( svc svcpart ) ], -% 'form_checkbox' => [ 'disabled' ], +% 'form_checkbox' => [ 'disabled', 'preserve' ], % 'layer_callback' => sub { % my $layer = shift; % % my $html = qq!!; % +% $html .= $svcdb_info; +% % my $columns = 3; % my $count = 0; % my $communigate = 0; % my @part_export = % map { qsearch( 'part_export', {exporttype => $_ } ) } % keys %{FS::part_export::export_info($layer)}; -% $html .= '

'. table(). +% $html .= '

'. include('/elements/table.html') . % "Exports"; % foreach my $part_export ( @part_export ) { % $communigate++ if $part_export->exporttype =~ /^communigate/; @@ -126,7 +114,7 @@ that field. % $count++; % $html .= '' unless $count % $columns; % } -% $html .= '

'; +% $html .= '

'. $mod_info; % % $html .= include('/elements/table-grid.html', 'cellpadding' => 4 ). % ''. @@ -151,7 +139,11 @@ that field. % ) % } fields($layer); % } -% push @fields, 'usergroup' if $layer eq 'svc_acct'; #kludge +% push @fields, 'usergroup' +% if $layer eq 'svc_acct' +% or ( $layer eq 'svc_broadband' and +% $conf->exists('svc_broadband-radius') ); # double kludge +% # (but we do want to check the config, right?) % $part_svc->svcpart($clone) if $clone; #haha, undone below % % @@ -195,7 +187,7 @@ that field. % foreach my $f ( keys %flag ) { % % # need to template-ize more httemplate/edit/svc_* first -% next if $f eq 'M' and $layer !~ /^svc_(broadband|external|phone)$/; +% next if $f eq 'M' and $layer !~ /^svc_(broadband|external|phone|dish)$/; % % #here is where the SUB from above is called, to skip some choices % next if $flag{$f}->{condition} @@ -234,7 +226,8 @@ that field. % " what.form.${layer}__${field}_classnum.style.backgroundColor = '#ffffff';". % " what.form.${layer}__${field}_classnum.style.display = 'none';". % " }". -% ' } else if ( f == "M" || f == "A" ) { //enable, inventory', +% ' } else if ( f == "M" || f == "A" || f == "H" ) { '. +% '//enable, inventory', % " what.form.${layer}__${field}.disabled = false;". % " what.form.${layer}__${field}.style.backgroundColor = '#ffffff';". % " what.form.${layer}__${field}.style.display = 'none';". @@ -254,10 +247,10 @@ that field. % % my $disabled = $flag ? '' % : 'DISABLED STYLE="background-color: #dddddd"'; +% my $nodisplay = ' STYLE="display:none"'; % % if ( !$def->{type} || $def->{type} eq 'text' ) { % -% my $nodisplay = ' STYLE="display:none"'; % my $is_inv = ( $flag =~ /^[MA]$/ ); % % $html .= @@ -325,32 +318,17 @@ that field. % qq!'; % -% } elsif ( $def->{type} eq 'select-svc_pbx.html' ) { -% -% $html .= include('/elements/select-svc_pbx.html', -% 'curr_value' => $value, -% 'element_name' => "${layer}__${field}", -% 'element_etc' => $disabled, -% 'multiple' => ($flag eq 'S'), -% ); -% -% } elsif ( $def->{type} eq 'select-lnp_status.html' ) { +% } elsif ( $def->{type} =~ /select-(.*?).html/ ) { % -% $html .= include('/elements/select-lnp_status.html', +% $html .= include("/elements/".$def->{type}, % 'curr_value' => $value, % 'element_name' => "${layer}__${field}", % 'element_etc' => $disabled, -% 'multiple' => ($flag eq 'S'), +% 'multiple' => ($def->{multiple} || +% $flag eq 'S'), +% # allow the table def to force 'multiple' % ); % -% } elsif ( $def->{type} eq 'radius_usergroup_selector' ) { -% -% #XXX disable the RADIUS usergroup selector? ugh it sure does need -% #an overhaul, people have dum group problems because of it -% -% $html .= FS::svc_acct::radius_usergroup_selector( -% [ split(',', $value) ], "${layer}__${field}" ); -% % } elsif ( $def->{type} eq 'communigate_pro-accessmodes' ) { % % $html .= include('/elements/communigate_pro-accessmodes.html', @@ -359,6 +337,16 @@ that field. % #doesn't work#'element_etc' => $disabled, % ); % +% } elsif ( $def->{type} eq 'select-hardware' ) { +% +% $html .= qq!!; +% $html .= include('/elements/select-hardware_class.html', +% 'curr_value' => $value, +% 'element_name' => "${layer}__${field}_classnum", +% 'element_etc' => $flag ne 'H' && $nodisplay, +% 'empty_label' => 'Select hardware class', +% ); +% % } elsif ( $def->{type} eq 'disabled' ) { % % $html .= @@ -388,7 +376,8 @@ that field. % % $html .= include('/elements/progress-init.html', % $layer, #form name -% [ qw(svc svcpart disabled exportnum), @fields ], +% [ qw(svc svcpart disabled preserve exportnum), +% @fields ], % 'process/part_svc.cgi', % $p.'browse/part_svc.cgi', % $layer, @@ -417,6 +406,7 @@ Table <% $widget->html %> die "access denied" unless $FS::CurrentUser::CurrentUser->access_right('Configuration'); +my $conf = FS::Conf->new; my $part_svc; my $clone = ''; if ( $cgi->param('clone') && $cgi->param('clone') =~ /^(\d+)$/ ) {#clone @@ -454,6 +444,72 @@ my %communigate_fields = ( #'svc_cert' => { map { $_=>1 } qw( ) }, ); +my $svcdb_info = ' + + + + + + + + + + + + +
GenericAccessTelephony
+
    +
  • svc_acct: Accounts - anything with a username (mailbox, shell, RADIUS, etc.) +
  • svc_hardware: Equipment supplied to customers +
  • svc_external: Externally-tracked service +
+
+
    +
  • svc_dsl: DSL +
  • svc_broadband: Wireless broadband +
  • svc_dish: DISH Network +
+
+
    +
  • svc_phone: Customer phone number +
  • svc_pbx: Customer PBX +
+
+
+ + + + + + + + +
HostingColocation
+
    +
  • svc_domain: Domain +
  • svc_cert: Certificate +
  • svc_forward: Mail forwarding +
  • svc_mailinglist: Mailing list +
  • svc_www: Virtual domain website +
+
+
    +
  • svc_port: Customer router/switch port +
+
+ +'; + +my $mod_info = ' +For the selected table, you can give fields default or fixed (unchangable) +values, or select an inventory class to manually or automatically fill in +that field. +'; +