summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Wells <mark@freeside.biz>2016-04-13 19:18:34 -0700
committerMark Wells <mark@freeside.biz>2016-04-13 19:18:34 -0700
commitccd822eb8751deae96b57df4ce6abc56a195b9c4 (patch)
tree091b99fb7c634b9b39961ccb6468def0a8b82dcc
parent916c7d12076875cfc090ffaebde8f5add436430e (diff)
tower location CSV download, #39776
-rw-r--r--httemplate/browse/tower.html39
-rw-r--r--httemplate/edit/tower.html6
-rw-r--r--httemplate/misc/tower-export.html36
3 files changed, 59 insertions, 22 deletions
diff --git a/httemplate/browse/tower.html b/httemplate/browse/tower.html
index e2f9fd0bd..c8812e57b 100644
--- a/httemplate/browse/tower.html
+++ b/httemplate/browse/tower.html
@@ -1,22 +1,23 @@
-<% include( 'elements/browse.html',
- 'title' => 'Towers',
- 'name' => 'towers',
- 'menubar' => [ 'Add a new tower' =>
- $p.'edit/tower.html',
- ],
- 'query' => { 'table' => 'tower', },
- 'count_query' => 'SELECT COUNT(*) FROM tower',
- 'disableable' => 1,
- 'disabled_statuspos' => 1,
- 'header' => [ 'Name', 'Location', 'Sectors', ],
- 'fields' => [ $tower_sub,
- $coord_sub,
- $sector_sub,
- ],
- 'links' => [ ],
- 'cell_style' => [ $tagdesc_style ],
- )
-%>
+<& elements/browse.html,
+ 'title' => 'Towers',
+ 'name' => 'towers',
+ 'menubar' => [ 'Add a new tower' =>
+ $p.'edit/tower.html',
+ 'Download CSV for towercoverage.com' =>
+ $p.'misc/tower-export.html?format=tc'
+ ],
+ 'query' => { 'table' => 'tower', },
+ 'count_query' => 'SELECT COUNT(*) FROM tower',
+ 'disableable' => 1,
+ 'disabled_statuspos' => 1,
+ 'header' => [ 'Name', 'Location', 'Sectors', ],
+ 'fields' => [ $tower_sub,
+ $coord_sub,
+ $sector_sub,
+ ],
+ 'links' => [ ],
+ 'cell_style' => [ $tagdesc_style ],
+&>
<%init>
die "access denied"
diff --git a/httemplate/edit/tower.html b/httemplate/edit/tower.html
index fa3838dcf..4d8ad1e89 100644
--- a/httemplate/edit/tower.html
+++ b/httemplate/edit/tower.html
@@ -26,9 +26,9 @@
'default_ip_addr' => 'Tower IP address',
'latitude' => 'Latitude',
'longitude' => 'Longitude',
- 'altitude' => 'Altitude',
- 'height' => 'Height',
- 'veg_height' => 'Vegetation height',
+ 'altitude' => 'Altitude (feet)',
+ 'height' => 'Height (feet)',
+ 'veg_height' => 'Vegetation height (feet)',
'color' => 'Color',
},
&>
diff --git a/httemplate/misc/tower-export.html b/httemplate/misc/tower-export.html
new file mode 100644
index 000000000..d359a97a5
--- /dev/null
+++ b/httemplate/misc/tower-export.html
@@ -0,0 +1,36 @@
+<%init>
+# currently, browse/tower just shows all towers, so do the same here
+my @towers = qsearch({ table => 'tower' });
+http_header('Content-Type' => 'text/csv');
+http_header('Content-Disposition' => 'attachment;filename=towers.csv');
+if ( $cgi->param('format') eq 'tc' ) {
+ # towercoverage.com format: not a true CSV, no quoting (so no way to include
+ # commas in any field, so we strip them)
+
+ # lat/long are signed decimals, northeast positive
+ # height is in meters
+ # Description/Group are not necessary
+ # sector/antenna information (orientation, beamwidth, gain, frequency,
+ # etc.) is in what TC calls a "Coverage", which can't be edited this way.
+ my $text = "SiteName,Latitude,Longitude,Description,Group,Height\n";
+
+ foreach my $tower (@towers) {
+ next if ( !$tower->latitude or !$tower->longitude );
+
+ my $name = $tower->towername;
+ my $height = ( ($tower->altitude || 0 ) + ($tower->height || 0) ) / 3.28;
+ $name =~ s(,)( )g;
+ $text .= join(',',
+ $name,
+ $tower->latitude,
+ $tower->longitude,
+ '',
+ '',
+ $height,
+ ) . "\n";
+ }
+ $m->print($text);
+} else {
+ die('unknown format '.$cgi->param('format'));
+}
+</%init>