diff options
Diffstat (limited to 'httemplate/view')
| -rw-r--r-- | httemplate/view/cust_main/contacts.html | 8 | ||||
| -rwxr-xr-x | httemplate/view/cust_main/packages.html | 3 | ||||
| -rw-r--r-- | httemplate/view/cust_main/packages/location.html | 29 | ||||
| -rwxr-xr-x | httemplate/view/cust_main/packages/section.html | 7 | ||||
| -rw-r--r-- | httemplate/view/kml.cgi | 13 | ||||
| -rw-r--r-- | httemplate/view/map.html | 120 | ||||
| -rw-r--r-- | httemplate/view/prospect_main.html | 8 | ||||
| -rw-r--r-- | httemplate/view/svc_broadband.cgi | 33 |
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' => ' ', - 'escape_function' => \&encode_entities, - 'countrydefault' => $countrydefault, - ) - %> + <% $loc->location_label( 'join_string' => '<BR>', + 'double_space' => ' ', + '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> ( <%pkg_change_location_link($cust_pkg)%> ) % if ( $cust_pkg->locationnum ) { - ( <%edit_location_link($cust_pkg->locationnum)%> ) + ( <%edit_location_link($cust_pkg->locationnum)%> ) % } </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 => \§ornum }, '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> |
