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