X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fview%2Fsvc_dsl.cgi;fp=httemplate%2Fview%2Fsvc_dsl.cgi;h=a4b2d43275b233caf01608a4a22e579637ed2543;hb=46ef8524cf2e6db7b851967062ce92ffb0773d10;hp=0000000000000000000000000000000000000000;hpb=39289cd1e5a06044aa9a8dc3d2e4d8c9ffb02b11;p=freeside.git diff --git a/httemplate/view/svc_dsl.cgi b/httemplate/view/svc_dsl.cgi new file mode 100644 index 000000000..a4b2d4327 --- /dev/null +++ b/httemplate/view/svc_dsl.cgi @@ -0,0 +1,62 @@ +<% include('elements/svc_Common.html', + 'table' => 'svc_dsl', + 'labels' => \%labels, + 'fields' => \@fields, + 'svc_callback' => $svc_cb, + 'html_foot' => $html_foot, + ) +%> +<%init> +my $conf = new FS::Conf; +my $date_format = $conf->config('date_format') || '%m/%d/%Y'; + +my $fields = FS::svc_dsl->table_info->{'fields'}; +my %labels = map { $_ => ( ref($fields->{$_}) + ? $fields->{$_}{'label'} + : $fields->{$_} + ); + } keys %$fields; +my @fields = keys %$fields; + +my $footer; + +my $html_foot = sub { + return $footer; +}; + +my $svc_cb = sub { + my( $cgi,$svc_x, $part_svc,$cust_pkg, $fields1,$opt) = @_; + + my @exports = $part_svc->part_export_dsl_pull; + die "more than one DSL-pulling export attached to svcpart ".$part_svc->svcpart + if ( scalar(@exports) > 1 ); + + # if no DSL-pulling exports, then just display everything, which is the + # default behaviour implemented above + return if ( scalar(@exports) == 0 ); + + $opt->{'disable_unprovision'} = 1; + my $exporttype = @exports[0]->exporttype; + + # XXX: AJAX auto-pull + + @fields = qw( svctn first last company username password ); + + if($exporttype eq 'ikano') { + push @fields, 'isp_chg'; + push @fields, 'isp_prev'; + push @fields, 'staticips'; + } + else { + # XXX + } + + # hack against "can't use string ... as a subroutine ref while 'strict refs' in use" + my $statusSub = \&{'FS::part_export::'.$exporttype.'::status_line'}; + my $statusLine = &$statusSub($svc_x,$date_format,"
"); + + $footer = "$statusLine"; + + # XXX: notes +}; +