X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fview%2Felements%2Fsvc_Common.html;h=296c27bbc8e00a9a5ed5901827fedf36b754fe04;hb=ff27c3f36240aee48ed50153dd5d8fe3ac3f2443;hp=0f103e3e0c338c007ff612a677abba12f12d8ce3;hpb=1053db7f76169cbbc87840539959a4c362aff242;p=freeside.git diff --git a/httemplate/view/elements/svc_Common.html b/httemplate/view/elements/svc_Common.html index 0f103e3e0..296c27bbc 100644 --- a/httemplate/view/elements/svc_Common.html +++ b/httemplate/view/elements/svc_Common.html @@ -1,116 +1,316 @@ -<% +<%doc> - # options example... - # - # 'table' => 'svc_something' - # - # 'labels' => { - # 'column' => 'Label', - # }, - # - # listref - each item is a literal column name (or method) or (notyet) coderef - # if not specified all columns (except for the primary key) will be viewable - # 'fields' => [ - # ] +#Example: - my(%opt) = @_; + include( 'elements/svc_Common.html, - my $table = $opt{'table'}; + 'table' => 'svc_something' - my $fields = $opt{'fields'} - #|| [ grep { $_ ne 'svcnum' } dbdef->table($table)->columns ]; - || [ grep { $_ ne 'svcnum' } fields($table) ]; + 'labels' => { + 'column' => 'Label', + }, - my($query) = $cgi->keywords; - $query =~ /^(\d+)$/; - my $svcnum = $1; - my $svc_x = qsearchs( $opt{'table'}, { 'svcnum' => $svcnum } ) - or die "Unknown svcnum $svcnum in ". $opt{'table'}. " table\n"; + #listref - each item is a literal column name (or method) or + # (notyet) coderef. if not specified all columns (except for the + #primary key) will be viewable + 'fields' => [ + ] - my $cust_svc = $svc_x->cust_svc; - my($label, $value, $svcdb) = $cust_svc->label; + # defaults to "edit/$table.cgi?", will have svcnum appended + 'edit_url' => - my $pkgnum = $cust_svc->pkgnum; + #at the very bottom (well, as low as you can go from here) + 'html_foot' => '', - my($cust_pkg, $custnum); - if ($pkgnum) { - $cust_pkg = $cust_svc->cust_pkg; - $custnum = $cust_pkg->custnum; - } else { - $cust_pkg = ''; - $custnum = ''; + #only needed for svc_broadband Manage Devices link + 'manage_link' => scalar($conf->config('svc_broadband-manage_link')), + 'manage_link_text' => scalar($conf->config('svc_broadband-manage_link_text')), + 'manage_link-new_window' => $conf->exists('svc_broadband-manage_link-new_window') + + ) + + + + + +% if ( $custnum ) { + + <& /elements/header.html, mt("View [_1]: [_2]",$label,$value) &> + + <& /elements/small_custview.html, $custnum, '', 1, + "${p}view/cust_main.cgi" &> +
+ +% } else { + + <& /elements/header.html, mt("View [_1]: [_2]",$label,$value), menubar( + emt("Cancel this (unaudited) [_1]",$label) => + "javascript:areyousure(\'${p}misc/cancel-unaudited.cgi?$svcnum\')" + ) &> + +% } + +% if ( $opt{radius_usage} ) { + <& svc_radius_usage.html, + 'svc' => $svc_x, + 'part_svc' => $part_svc, + 'cust_pkg' => $cust_pkg, + &> +% } + +<% mt('Service #') |h %><% $svcnum %> +% if ( $custnum ) { +% my $url = $opt{'edit_url'} || $p. 'edit/'. $opt{'table'}. '.cgi?'; +<& /view/elements/svc_edit_link.html, 'svc' => $svc_x, 'part_svc' => $part_svc, 'edit_url' => $url, + 'manage_link' => $opt{'manage_link'}, + 'manage_link_text' => $opt{'manage_link_text'}, + 'manage_link-new_window' => $opt{'manage_link-new_window'} +&> +% } +
+ +<% ntable("#cccccc") %><% ntable("#cccccc",2) %> + +% foreach my $f ( @$fields ) { +% my ($field, $label, $value) = &{ $format_field }($f); +% next if !$field; + + + <% $label %> + + + + <% $value %> + + + +% } + +% foreach (sort { $a cmp $b } $svc_x->virtual_fields) { + <% $svc_x->pvf($_)->widget('HTML', 'view', $svc_x->getfield($_)) %> +% } -%> -<% if ( $custnum ) { %> + + +
+ +<& svc_devices.html, + 'svc_x' => $svc_x, + 'table' => $svc_x->device_table, +&> - <%= include("/elements/header.html","View $label: $value", menubar( - "View this customer (#$custnum)" => "${p}view/cust_main.cgi?$custnum", - )) %> +% if ( defined($opt{'html_foot'}) ) { - <%= include( '/elements/small_custview.html', $custnum, '', 1 ) %> + <% ref($opt{'html_foot'}) + ? &{ $opt{'html_foot'} }($svc_x) + : $opt{'html_foot'} + %>
-<% } else { %> +% } + +% if ( $cust_svc ) { +<& /elements/table-tickets.html, object => $cust_svc &> +% } + +<% joblisting({'svcnum'=>$svcnum}, 1) %> + +<% include('/elements/footer.html') %> +<%init> - +} else { + $label = "Unlinked $table"; + $value = $svc_x->label; + $svcdb = $table; + # just to satisfy callbacks + $part_svc = FS::part_svc->new({ svcpart => 0, svcdb => $table }); +} - <%= include("/elements/header.html","View $label: $value", menubar( - "Cancel this (unaudited) $label" => - "javascript:areyousure(\'${p}misc/cancel-unaudited.cgi?$svcnum\')" - )) %> +my $pkgnum = $cust_svc->pkgnum if $cust_svc; -<% } %> +my($cust_pkg, $custnum); +if ($pkgnum) { + $cust_pkg = $cust_svc->cust_pkg; + $custnum = $cust_pkg->custnum; +} else { + $cust_pkg = ''; + $custnum = ''; +} -Service #<%= $svcnum %> -| Edit this <%= $label %> -
+# attached routers +if ( my $router = qsearchs('router', { svcnum => $svc_x->svcnum }) ) { + push @$fields, + 'router_routername', + 'router_block'; -<%= ntable("#cccccc") %><%= ntable("#cccccc",2) %> + $labels->{'router_routername'} = 'Attached router'; + $labels->{'router_block'} = 'Attached address block'; + $svc_x->set('router_routername', $router->routername); + my $block = qsearchs('addr_block', { routernum => $router->routernum }); + if ( $block ) { + $svc_x->set('router_block', $block->cidr); + } else { + $svc_x->set('router_block', '(none)'); + } +} -<% foreach my $f ( @$fields ) { +my @inventory_items = $svc_x->inventory_item; - my( $field, $type); - if ( ref($f) ) { - $field = $f->{'field'}, - $type = $f->{'type'} || 'text', - } else { - $field = $f; - $type = 'text'; - } -%> +my $format_field = sub { + my $f = shift; + my($field, $type, $value); + if ( ref($f) ) { + $field = $f->{'field'}; + $type = $f->{'type'} || 'text'; + } else { + $field = $f; + $type = 'text'; + } - - - <%= ( $opt{labels} && exists $opt{labels}->{$field} ) - ? $opt{labels}->{$field} - : $field - %> - + my $columndef = $part_svc->part_svc_column($field); + # skip fields that are fixed and empty + if ( $columndef->columnflag eq 'F' + and length($columndef->columnvalue) == 0 ) { + return; + } - <% - #eventually more options for