summaryrefslogtreecommitdiff
path: root/httemplate/view
diff options
context:
space:
mode:
Diffstat (limited to 'httemplate/view')
-rw-r--r--httemplate/view/cust_main/contacts.html8
-rwxr-xr-xhttemplate/view/cust_main/packages.html3
-rw-r--r--httemplate/view/cust_main/packages/location.html29
-rwxr-xr-xhttemplate/view/cust_main/packages/section.html7
-rw-r--r--httemplate/view/kml.cgi13
-rw-r--r--httemplate/view/map.html120
-rw-r--r--httemplate/view/prospect_main.html8
-rw-r--r--httemplate/view/svc_broadband.cgi33
8 files changed, 204 insertions, 17 deletions
diff --git a/httemplate/view/cust_main/contacts.html b/httemplate/view/cust_main/contacts.html
index fccdf0247..3d4043aff 100644
--- a/httemplate/view/cust_main/contacts.html
+++ b/httemplate/view/cust_main/contacts.html
@@ -65,6 +65,14 @@
<TD ALIGN="right"><% mt('Country') |h %></TD>
<TD BGCOLOR="#ffffff"><% code2country( $cust_main->get("${pre}country") ) %></TD>
</TR>
+
+% if ( $cust_main->get($pre.'latitude') && $cust_main->get($pre.'longitude') ) {
+ <& /elements/tr-coords.html, $cust_main->get($pre.'latitude'),
+ $cust_main->get($pre.'longitude'),
+ $cust_main->name_short,
+ &>
+% }
+
<TR>
<TD ALIGN="right"><% $daytime_label %></TD>
<TD COLSPAN=3 BGCOLOR="#ffffff">
diff --git a/httemplate/view/cust_main/packages.html b/httemplate/view/cust_main/packages.html
index 740d1544a..e16b2c1d4 100755
--- a/httemplate/view/cust_main/packages.html
+++ b/httemplate/view/cust_main/packages.html
@@ -26,7 +26,7 @@
<TABLE>
<TR>
- <TD ALIGN="left">
+ <TD ALIGN="left" VALIGN="top">
% if ( @$packages ) {
@@ -85,6 +85,7 @@
% # in this format, put all packages in one section
<& /elements/table-grid.html &>
<& packages/section.html,
+ 'cust_main' => $cust_main,
'packages' => $packages,
'show_location' => $show_location,
&>
diff --git a/httemplate/view/cust_main/packages/location.html b/httemplate/view/cust_main/packages/location.html
index 6658415b5..1bfca00f2 100644
--- a/httemplate/view/cust_main/packages/location.html
+++ b/httemplate/view/cust_main/packages/location.html
@@ -1,15 +1,27 @@
-<TD CLASS="inv" BGCOLOR="<% $bgcolor %>">
+<TD CLASS="inv" BGCOLOR="<% $bgcolor %>" WIDTH="20%">
% unless ( $cust_pkg->locationnum ) {
<I><FONT SIZE=-1>(<% mt('default service address') |h %>)</FONT><BR>
% }
- <% $loc->location_label( 'join_string' => '<BR>',
- 'double_space' => ' &nbsp; ',
- 'escape_function' => \&encode_entities,
- 'countrydefault' => $countrydefault,
- )
- %>
+ <% $loc->location_label( 'join_string' => '<BR>',
+ 'double_space' => ' &nbsp; ',
+ 'escape_function' => \&encode_entities,
+ 'countrydefault' => $countrydefault,
+ )
+ %>
+
+% if ( $loc->latitude && $loc->longitude ) {
+ <BR>
+ <FONT SIZE=-1>
+ <% $loc->latitude %>, <% $loc->longitude %>
+ <& /elements/coord-links.html,
+ $loc->latitude,
+ $loc->longitude,
+ $opt{'cust_main'}->name_short. ': '. $opt{'part_pkg'}->pkg
+ &>
+ </FONT>
+% }
% unless ( $cust_pkg->locationnum ) {
</I>
@@ -19,10 +31,11 @@
% && $FS::CurrentUser::CurrentUser->access_right('Change customer package')
% )
% {
+ <BR>
<FONT SIZE=-1>
(&nbsp;<%pkg_change_location_link($cust_pkg)%>&nbsp;)
% if ( $cust_pkg->locationnum ) {
-&nbsp;(&nbsp;<%edit_location_link($cust_pkg->locationnum)%>&nbsp;)
+ (&nbsp;<%edit_location_link($cust_pkg->locationnum)%>&nbsp;)
% }
</FONT>
% }
diff --git a/httemplate/view/cust_main/packages/section.html b/httemplate/view/cust_main/packages/section.html
index 20c998880..85f0c795a 100755
--- a/httemplate/view/cust_main/packages/section.html
+++ b/httemplate/view/cust_main/packages/section.html
@@ -23,9 +23,10 @@
% }
%
% my %iopt = (
-% 'bgcolor' => $bgcolor,
-% 'cust_pkg' => $cust_pkg,
-% 'part_pkg' => $cust_pkg->part_pkg,
+% 'bgcolor' => $bgcolor,
+% 'cust_pkg' => $cust_pkg,
+% 'part_pkg' => $cust_pkg->part_pkg,
+% 'cust_main' => $opt{'cust_main'},
% %conf_opt,
% );
%
diff --git a/httemplate/view/kml.cgi b/httemplate/view/kml.cgi
new file mode 100644
index 000000000..47435c74a
--- /dev/null
+++ b/httemplate/view/kml.cgi
@@ -0,0 +1,13 @@
+<% $kml->archive %>\
+<%init>
+
+my ($latitude, $longitude, $name) = @_;
+#would be nice to pass in customer or prospect name too...
+
+my $kml = Geo::GoogleEarth::Pluggable->new;
+$kml->Point( map { $_=>scalar($cgi->param($_)) } qw( name lat lon ) );
+
+#http_header('Content-Type' => 'application/vnd.google-earth.kml+xml' ); #kml
+http_header('Content-Type' => 'application/vnd.google-earth.kmz' ); #kmz
+
+</%init>
diff --git a/httemplate/view/map.html b/httemplate/view/map.html
new file mode 100644
index 000000000..71a153842
--- /dev/null
+++ b/httemplate/view/map.html
@@ -0,0 +1,120 @@
+<& /elements/header-popup.html, {
+ title => '',#$name,
+ head => $head,
+ etc => 'onload="html_googlemaps_initialize()"',
+ nobr => 1,
+ }
+&>
+
+<% $map_div %>
+
+<%init>
+
+my $name = js_string( scalar($cgi->param('name')) );
+
+my $point = [ map scalar($cgi->param($_)), qw( longitude latitude ) ];
+
+my( $head, $map_div ) = onload_render(
+ $name,
+ map scalar($cgi->param($_)), qw( lat lon )
+);
+
+#false laziness w/Mason.pm
+sub js_string {
+ my $string = shift;
+ $string =~ s/(['\\])/\\$1/g;
+ $string =~ s/\r/\\r/g;
+ $string =~ s/\n/\\n/g;
+ $string = "'". $string. "'";
+ return $string;
+}
+
+#subroutines below derived from HTML::GoogleMapsV3, but without using
+#Geo::Coder::Google or GPS::Point
+sub onload_render
+{
+## my $self = shift;
+ my( $name, $latitude, $longitude ) = @_;
+
+ #map_canvas { height: 100% }
+
+ my $header='
+ <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
+ <style type="text/css">
+ html { height: 100% }
+ body { height: 100%; margin: 0px; padding: 0px }
+ #map_canvas { height: 100% }
+ </style>
+ <script type="text/javascript" src="http://maps.google.com/maps/api/js?libraries=panoramio,geometry&v=3.4&sensor=false">
+ </script>
+ <script type="text/javascript">
+ var lengthLine=0;
+ function html_googlemaps_initialize() {
+ var latlng = new google.maps.LatLng(' .$latitude . ',' . $longitude . ');
+ var myOptions = {
+ zoom: 14,
+ center: latlng,
+ rotateControl: true,
+ mapTypeId: google.maps.MapTypeId.ROADMAP
+ };
+
+ map = new google.maps.Map(document.getElementById("map_canvas"),
+ myOptions);
+
+ map.setOptions( {rotateControl : true });
+
+
+ ';
+
+##our own hacked in code for displaying a marker at the center
+$header .= '
+var markerOptions = {
+ map: map,
+ position: latlng,
+ title: '. $name. '
+};
+var marker = new google.maps.Marker(markerOptions);
+';
+
+## if( defined $self->{polyline} ) {
+## foreach my $polyline ( keys %{$self->{polyline}} ) {
+## $header .= $self->{polyline}->{$polyline} . "\n";
+## }
+## }
+
+ $header .= '}
+ </script>';
+
+
+ #my $div = '<div id="map_canvas" style="width:80%; height:75%"></div>';
+ my $div = '<div id="map_canvas" style="width:100%; height:100%"></div>';
+
+
+ $header .= "<SCRIPT>
+
+ panoramioLayer = new google.maps.panoramio.PanoramioLayer();
+
+ function panoramioOn(){
+ panoramioLayer.setMap(map);
+ }
+ function panoramioOff() {
+ panoramioLayer.setMap(null);
+ }
+
+ function panoramioToggle() {
+ if( panoramioLayer.getMap() == null ) {
+ panoramioOn();
+ } else {
+ panoramioOff();
+ }
+ }
+
+
+
+ </SCRIPT>";
+
+ return ($header,$div)
+
+}
+
+</%init>
diff --git a/httemplate/view/prospect_main.html b/httemplate/view/prospect_main.html
index d92d27097..1c8195672 100644
--- a/httemplate/view/prospect_main.html
+++ b/httemplate/view/prospect_main.html
@@ -51,7 +51,13 @@
)
%>
</TD>
- </TR>
+ </TR>
+% if ( $cust_location->latitude && $cust_location->longitude ) {
+ <& /elements/tr-coords.html, $cust_location->latitude,
+ $cust_location->longitude,
+ $prospect_main->name,
+ &>
+% }
% }
</TABLE>
diff --git a/httemplate/view/svc_broadband.cgi b/httemplate/view/svc_broadband.cgi
index 22cbb1f44..de39f6ae4 100644
--- a/httemplate/view/svc_broadband.cgi
+++ b/httemplate/view/svc_broadband.cgi
@@ -13,9 +13,17 @@ my %labels = map { $_ => ( ref($fields->{$_})
);
} keys %$fields;
+#my %labels = ();
+
+$labels{'description'} = emt('Description');
$labels{'router'} = emt('Router');
+$labels{'speed_down'} = emt('Download Speed');
+$labels{'speed_up'} = emt('Upload Speed');
+$labels{'ip_addr'} = emt('IP Address');
$labels{'usergroup'} = emt('RADIUS groups'); #?
+$labels{'coordinates'} = 'Latitude/Longitude';
+
my @fields = (
'description',
{ field => 'router', value => \&router },
@@ -24,8 +32,9 @@ my @fields = (
{ field => 'ip_addr', value => \&ip_addr },
{ field => 'sectornum', value => \&sectornum },
'mac_addr',
- 'latitude',
- 'longitude',
+ #'latitude',
+ #'longitude',
+ { field => 'coordinates', value => \&coordinates },
'altitude',
'vlan_profile',
'authkey',
@@ -46,8 +55,9 @@ sub router {
sub ip_addr {
my $svc = shift;
my $ip_addr = $svc->ip_addr;
- my $out = $ip_addr . ' (' .
- include('/elements/popup_link-ping.html', ip => $ip_addr) . ')';
+ my $out = $ip_addr;
+ $out .= ' (' . include('/elements/popup_link-ping.html', ip => $ip_addr) . ')'
+ if $ip_addr;
if ( my $addr_block = $svc->addr_block ) {
$out .= '<br>Netmask: ' . $addr_block->NetAddr->mask .
'<br>Gateway: ' . $addr_block->ip_gateway;
@@ -72,4 +82,19 @@ sub sectornum {
$link . $tower_sector->description. ( $link ? '</A>' : '');
}
+sub coordinates {
+ my $s = shift; #$svc_broadband
+ return '' unless $s->latitude && $s->longitude;
+
+ my $d = $s->description;
+ unless ($d) {
+ my $cust_pkg = $s->cust_svc->cust_pkg;
+ $d = $cust_pkg->cust_main->name_short if $cust_pkg;
+ }
+
+ #'Latitude: '. $s->latitude. ', Longitude: '. $s->longitude. ' '.
+ $s->latitude. ', '. $s->longitude. ' '.
+ include('/elements/coord-links.html', $s->latitude, $s->longitude, $d);
+}
+
</%init>