summaryrefslogtreecommitdiff
path: root/httemplate/edit/svc_pbx.html
blob: d973bf5e90ab08c6b90c7d1fad2a6bd43bf897ea (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
46
47
48
49
50
51
52
<& elements/svc_Common.html,
     'table'          => 'svc_pbx',

     'end_callback' => sub {
       my( $cgi, $svc_pbx, $fields, $opt ) = @_;
       $opt->{labels}{extensionnum} = ' ';
       push @$fields,
         { type  => 'tablebreak-tr-title',
           value => 'Extensions',
         },
         {
           field     => 'extensionnum',
           type      => 'pbx_extension',
           o2m_table => 'pbx_extension',
           m2_label  => ' ',
           m2_error_callback => $m2_error_callback,
         },
       ;

     },

&>
<%init>

my $m2_error_callback = sub {
  my($cgi, $object) = @_;

  #process_o2m fields in process/svc_pbx.html
  my @fields = qw( extension pin sip_password phone_name );
  my @gfields = ( '', map "_$_", @fields );

  map {
        if ( /^extensionnum(\d+)$/ ) {
          my $num = $1;
          if ( grep $cgi->param("extensionnum$num$_"), @gfields ) {
            my $x = new FS::pbx_extension {
              'extensionnum' => scalar($cgi->param("extensionnum$num")),
              map { $_ => scalar($cgi->param("extensionnum${num}_$_")) } @fields,
            };
            $x;
          } else {
            ();
          }
        } else {
          ();
        }
      }
      $cgi->param;
};


</%init>