summaryrefslogtreecommitdiff
path: root/httemplate/view/svc_Common.html
blob: 9c4d71eb8e9b4e2967846204ba826dc276970199 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<& elements/svc_Common.html,
             'table'    => $table,
	     'edit_url' => $edit_url, #$p."edit/svc_Common.html?svcdb=$table;svcnum=",
	     %opt,
&>
<%init>

# false laziness w/edit/svc_Common.html

$cgi->param('svcdb') =~ /^(svc_\w+)$/ or die "unparseable svcdb";
my $table = $1;
require "FS/$table.pm";

my $edit_url = svc_url( 'm' => $m, 'action' => 'edit', 'svcdb' => $table, query => '' );

my %opt;
if ( UNIVERSAL::can("FS::$table", 'table_info') ) {
  $opt{'name'}   = "FS::$table"->table_info->{'name'};

  my $fields = "FS::$table"->table_info->{'fields'};
  my %labels = map { $_ =>  ( ref($fields->{$_})
                               ? $fields->{$_}{'label'}
			       : $fields->{$_}
			   );
                   }
               keys %$fields;
  $opt{'labels'} = \%labels;

  #transform FS::svc_* table_info's structure into one svc_Common.html likes
  delete $fields->{svcnum};
  $opt{'fields'} = [ map { ref $fields->{$_}
                             ? { field => $_,
                                 %{ $fields->{$_} }
                               }
                             : $_
                          } keys %$fields
                   ];

}

</%init>