summaryrefslogtreecommitdiff
path: root/httemplate/edit/svc_Common.html
blob: 5949a4dc0fcaccdb75258ee532cfe55f1c654d7e (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
42
43
44
45
<% include('elements/svc_Common.html',
             'table'        => $table,
	     'post_url'     => popurl(1). "process/svc_Common.html",
             %opt,
	  )
%>
<%init>

die "access denied"
  unless $FS::CurrentUser::CurrentUser->access_right('Provision customer service'); #something else more specific?

# false laziness w/view/svc_Common.html

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

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 edit.html likes
  delete $fields->{svcnum};
  $opt{'fields'} = [ map { ref $fields->{$_}
                             ? { field => $_,
                                 %{ $fields->{$_} }
                               }
                             : $_
                          } keys %$fields
                   ];


}

</%init>