Merge branch 'master' of git.freeside.biz:/home/git/freeside
[freeside.git] / httemplate / edit / deploy_zone-mobile.html
1 <& elements/edit.html,
2     'name_singular' => 'deployment zone',
3     'table'         => 'deploy_zone',
4     'post_url'      => popurl(1).'process/deploy_zone-mobile.html',
5     'labels'        => {
6         'description'     => 'Description',
7         'agentnum'        => 'Agent',
8         'dbaname'         => 'Business name (if different from agent)',
9         'technology'      => 'Technology',
10         'spectrum'        => 'Spectrum',
11         'is_broadband',   => 'Broadband Internet',
12         'adv_speed_up'    => 'Upstream',
13         'adv_speed_down'  => 'Downstream',
14         'is_voice',       => 'Voice',
15         'vertexnum'       => '',
16         'active_date'     => 'Active since',
17     },
18     'fields'        => [
19         { field         => 'zonetype',
20           type          => 'hidden',
21           value         => 'P'
22         },
23         'description',
24         { field         => 'active_date',
25           type          => 'fixed-date',
26           value         => time,
27         },
28         { field         => 'agentnum',
29           type          => 'select-agent',
30           disable_empty => 1,
31           viewall_right => 'Edit FCC report configuration for all agents',
32         },
33         'dbaname',
34         { field         => 'technology',
35           type          => 'select',
36           options       => $media_types->{'Mobile Wireless'},
37           labels        => $technology_labels,
38         },
39         { field         => 'spectrum',
40           type          => 'select',
41           options       => [ keys %$spectrum_labels ],
42           labels        => $spectrum_labels,
43         },
44         { field         => 'is_broadband', type => 'checkbox', value=>'Y' },
45         { field         => 'is_voice', type => 'checkbox', value=>'Y' },
46         { type => 'tablebreak-tr-title',
47           value => 'Advertised minimum speed (Mbps)' },
48         'adv_speed_down',
49         'adv_speed_up',
50         { type => 'tablebreak-tr-title', value => 'Footprint'},
51         { field => 'vertexnum',
52           type              => 'deploy_zone_vertex',
53           o2m_table         => 'deploy_zone_vertex',
54           m2_label          => ' ',
55           m2_error_callback => $m2_error_callback,
56         },
57     ],
58
59 &>
60 <%init>
61 my $curuser = $FS::CurrentUser::CurrentUser;
62 die "access denied"
63   unless $curuser->access_right([
64     'Edit FCC report configuration',
65     'Edit FCC report configuration for all agents',
66   ]);
67
68 my $technology_labels = FS::part_pkg_fcc_option->technology_labels;
69 my $spectrum_labels = FS::part_pkg_fcc_option->spectrum_labels;
70 my $media_types = FS::part_pkg_fcc_option->media_types;
71
72 my $m2_error_callback = sub {
73   my ($cgi, $deploy_zone) = @_;
74   my @vertexnums = sort { $a <=> $b } grep {
75     /^vertexnum\d+/ and length($cgi->param($_.'_latitude'))
76   } $cgi->param;
77
78   map {
79     my $k = $_;
80     my $s = 0;
81     FS::deploy_zone_vertex->new({
82       vertexnum   => scalar($cgi->param($k)),
83       zonenum     => $deploy_zone->zonenum,
84       latitude    => scalar($cgi->param($k.'_latitude')),
85       longitude   => scalar($cgi->param($k.'_longitude')),
86     })
87   } @vertexnums;
88 };
89
90 </%init>