From ec39561c09d580b7861d76cee1bb4ad882a6d9d7 Mon Sep 17 00:00:00 2001 From: Josh Angell Date: Mon, 13 Feb 2012 17:14:40 +0000 Subject: Some js/css for the report and around type pages, needs work Signed-off-by: Josh Angell --- web/js/map-OpenLayers.js | 2 ++ 1 file changed, 2 insertions(+) (limited to 'web/js/map-OpenLayers.js') diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index fa93c2f4c..14c00efb3 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -216,6 +216,7 @@ $(function(){ $('#side-form').hide(); $('#side').show(); $('#sub_map_links').show(); + $('.content[role=main]').addClass('report-a-poblem-page'); fixmystreet.page = 'around'; }); @@ -371,6 +372,7 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { } $('#side').hide(); $('#sub_map_links').hide(); + $('.content[role=main]').addClass('report-a-poblem-page'); fixmystreet.page = 'new'; location.hash = 'report'; } -- cgit v1.2.3 From 8c04cb49d80f52afa773c9ff5d5c9845ee40e7a7 Mon Sep 17 00:00:00 2001 From: Josh Angell Date: Tue, 14 Feb 2012 11:36:43 +0000 Subject: Height fix js function added and used on the report/around page for the sidebar Signed-off-by: Josh Angell --- web/js/map-OpenLayers.js | 2 ++ 1 file changed, 2 insertions(+) (limited to 'web/js/map-OpenLayers.js') diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index 14c00efb3..02392360b 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -217,6 +217,7 @@ $(function(){ $('#side').show(); $('#sub_map_links').show(); $('.content[role=main]').addClass('report-a-poblem-page'); + heightFix('#report-a-poblem-sidebar:visible', '.content.report-a-poblem-page', 26); fixmystreet.page = 'around'; }); @@ -373,6 +374,7 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { $('#side').hide(); $('#sub_map_links').hide(); $('.content[role=main]').addClass('report-a-poblem-page'); + heightFix('#report-a-poblem-sidebar:visible', '.content.report-a-poblem-page', 26); fixmystreet.page = 'new'; location.hash = 'report'; } -- cgit v1.2.3 From e23d5b1c63ea9568fcc1caef592a4ec0ed2702ba Mon Sep 17 00:00:00 2001 From: Josh Angell Date: Tue, 14 Feb 2012 16:19:38 +0000 Subject: Form styling and bits for report / around pages Signed-off-by: Josh Angell --- web/js/map-OpenLayers.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'web/js/map-OpenLayers.js') diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index 02392360b..b121c6bfc 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -216,8 +216,7 @@ $(function(){ $('#side-form').hide(); $('#side').show(); $('#sub_map_links').show(); - $('.content[role=main]').addClass('report-a-poblem-page'); - heightFix('#report-a-poblem-sidebar:visible', '.content.report-a-poblem-page', 26); + heightFix('#report-a-poblem-sidebar:visible', '.content', 26); fixmystreet.page = 'around'; }); @@ -373,8 +372,7 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { } $('#side').hide(); $('#sub_map_links').hide(); - $('.content[role=main]').addClass('report-a-poblem-page'); - heightFix('#report-a-poblem-sidebar:visible', '.content.report-a-poblem-page', 26); + heightFix('#report-a-poblem-sidebar:visible', '.content', 26); fixmystreet.page = 'new'; location.hash = 'report'; } -- cgit v1.2.3 From 24e55fad95460bd0a90ee5d50d67bb31a8fe7c08 Mon Sep 17 00:00:00 2001 From: Josh Angell Date: Tue, 21 Feb 2012 16:45:57 +0000 Subject: Add new map pins, alter the js to match Signed-off-by: Josh Angell --- web/js/map-OpenLayers.js | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'web/js/map-OpenLayers.js') diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index b121c6bfc..8fe2c56b4 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -20,7 +20,7 @@ function fixmystreet_activate_drag() { } function fms_markers_list(pins, transform) { - var cols = { 'red':'R', 'green':'G', 'blue':'B', 'purple':'P' }; + var cols = { 'red':'R', 'green':'G', 'yellow':'Y' }; var markers = []; for (var i=0; i Date: Tue, 21 Feb 2012 17:04:59 +0000 Subject: =?UTF-8?q?Tentative=20change=20to=20the=20map=20pins:=20change=20?= =?UTF-8?q?blue=20to=20big,=20can't=20work=20out=20how=20to=20get=20them?= =?UTF-8?q?=20a=20different=20size=E2=80=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Josh Angell --- web/js/map-OpenLayers.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'web/js/map-OpenLayers.js') diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index 8fe2c56b4..c72f2d5cf 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -20,7 +20,7 @@ function fixmystreet_activate_drag() { } function fms_markers_list(pins, transform) { - var cols = { 'red':'R', 'green':'G', 'yellow':'Y' }; + var cols = { 'red':'R', 'green':'G', 'yellow':'Y', 'big':'-big' }; var markers = []; for (var i=0; i Date: Wed, 22 Feb 2012 14:07:05 +0000 Subject: Separate colour and size using StyleMap and Rules, to enable differently sized map pins (fixes #228). --- web/js/map-OpenLayers.js | 57 +++++++++++++++++++++++++++++++----------------- 1 file changed, 37 insertions(+), 20 deletions(-) (limited to 'web/js/map-OpenLayers.js') diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index c72f2d5cf..5000e7bca 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -20,7 +20,6 @@ function fixmystreet_activate_drag() { } function fms_markers_list(pins, transform) { - var cols = { 'red':'R', 'green':'G', 'yellow':'Y', 'big':'-big' }; var markers = []; for (var i=0; i Date: Thu, 23 Feb 2012 15:28:39 +0000 Subject: Fix typo - poblem to problem Signed-off-by: Josh Angell --- web/js/map-OpenLayers.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'web/js/map-OpenLayers.js') diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index 5000e7bca..3bf2078e7 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -233,7 +233,7 @@ $(function(){ $('#side-form').hide(); $('#side').show(); $('#sub_map_links').show(); - heightFix('#report-a-poblem-sidebar:visible', '.content', 26); + heightFix('#report-a-problem-sidebar:visible', '.content', 26); fixmystreet.page = 'around'; }); @@ -389,7 +389,7 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { } $('#side').hide(); $('#sub_map_links').hide(); - heightFix('#report-a-poblem-sidebar:visible', '.content', 26); + heightFix('#report-a-problem-sidebar:visible', '.content', 26); fixmystreet.page = 'new'; location.hash = 'report'; } -- cgit v1.2.3 From bde98cf4346dc008120582464d68b8509d9365b3 Mon Sep 17 00:00:00 2001 From: Matthew Somerville Date: Thu, 23 Feb 2012 15:42:49 +0000 Subject: Initial desktop making map whole of background. --- web/js/map-OpenLayers.js | 3 +++ 1 file changed, 3 insertions(+) (limited to 'web/js/map-OpenLayers.js') diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index 3bf2078e7..e7848c5bb 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -207,6 +207,9 @@ $(function(){ ); fixmystreet.map.setCenter(centre, fixmystreet.zoom || 3); } + if ($('#map_box').data('size')=='full') { + fixmystreet.map.pan(-200, -25, { animate: false }); + } if (document.getElementById('mapForm')) { var click = new OpenLayers.Control.Click(); -- cgit v1.2.3 From 459e6cb9d0c5aa1ccd56269c11c3c14a79c05726 Mon Sep 17 00:00:00 2001 From: Matthew Somerville Date: Thu, 23 Feb 2012 18:04:50 +0000 Subject: Do some zoom centre faking trickery so that zooming in and out does as you would hopefully expect. --- web/js/map-OpenLayers.js | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) (limited to 'web/js/map-OpenLayers.js') diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index e7848c5bb..2eb949b76 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -208,7 +208,28 @@ $(function(){ fixmystreet.map.setCenter(centre, fixmystreet.zoom || 3); } if ($('#map_box').data('size')=='full') { - fixmystreet.map.pan(-200, -25, { animate: false }); + // TODO Work better with window resizing, this is pretty 'set up' only at present + var q = $(window).width() / 4; + // Need to try and fake the 'centre' being 75% from the left + fixmystreet.map.pan(-q, -25, { animate: false }); + fixmystreet.map.events.register("movestart", null, function(e){ + fixmystreet.map.moveStart = { zoom: this.getZoom(), center: this.getCenter() }; + }); + fixmystreet.map.events.register("zoomend", null, function(e){ + if ( !this.getCenter().equals(fixmystreet.map.moveStart.center) ) { + // Centre has moved, e.g. by double-click. Same whether zoom in or out + fixmystreet.map.pan(-q, -25, { animate: false }); + return; + } + var zoom_change = this.getZoom() - fixmystreet.map.moveStart.zoom; + if (zoom_change == -1) { + // Zoomed out, need to re'centre' + fixmystreet.map.pan(-q/2, 0, { animate: false }); + } else if (zoom_change == 1) { + // Using a zoom button + fixmystreet.map.pan(q, 0, { animate: false }); + } + }); } if (document.getElementById('mapForm')) { -- cgit v1.2.3 From 4ce04db99fd13868b5d4fbba279dc35c10c01c6a Mon Sep 17 00:00:00 2001 From: Matthew Somerville Date: Fri, 24 Feb 2012 08:02:55 +0000 Subject: Pan map when reporting click is where sidebar will be. If the user clicks on the map in a location where the help text sidebar will appear, pan the map to the right the width of the sidebar so that the pin and its location remain visible. --- web/js/map-OpenLayers.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'web/js/map-OpenLayers.js') diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index 2eb949b76..3d1d725f2 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -372,7 +372,7 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { trigger: function(e) { var lonlat = fixmystreet.map.getLonLatFromViewPortPx(e.xy); if (fixmystreet.page == 'new') { - /* Already have a purple pin */ + /* Already have a pin */ fixmystreet.markers.features[0].move(lonlat); } else { var markers = fms_markers_list( [ [ lonlat.lat, lonlat.lon, 'yellow' ] ], false ); @@ -414,6 +414,13 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { $('#side').hide(); $('#sub_map_links').hide(); heightFix('#report-a-problem-sidebar:visible', '.content', 26); + var sidebar = $('#report-a-problem-sidebar'); + if (sidebar.css('position') == 'absolute') { + var w = sidebar.width(), h = sidebar.height(), o = sidebar.offset(); + if (e.xy.x >= o.left && e.xy.x <= o.left + w && e.xy.y >= o.top && e.xy.y <= o.top + h) { + fixmystreet.map.pan(-w, 0, { animate: false }); + } + } fixmystreet.page = 'new'; location.hash = 'report'; } -- cgit v1.2.3 From 09a31705470f3cfce90187ed0454768359bb414c Mon Sep 17 00:00:00 2001 From: Matthew Somerville Date: Fri, 24 Feb 2012 11:12:52 +0000 Subject: Some fixes for non-JS map display, and more JS pin moving depending on click location. --- web/js/map-OpenLayers.js | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'web/js/map-OpenLayers.js') diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index 3d1d725f2..4a5e8ed54 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -216,7 +216,7 @@ $(function(){ fixmystreet.map.moveStart = { zoom: this.getZoom(), center: this.getCenter() }; }); fixmystreet.map.events.register("zoomend", null, function(e){ - if ( !this.getCenter().equals(fixmystreet.map.moveStart.center) ) { + if ( !fixmystreet.map.moveStart || !this.getCenter().equals(fixmystreet.map.moveStart.center) ) { // Centre has moved, e.g. by double-click. Same whether zoom in or out fixmystreet.map.pan(-q, -25, { animate: false }); return; @@ -414,10 +414,20 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { $('#side').hide(); $('#sub_map_links').hide(); heightFix('#report-a-problem-sidebar:visible', '.content', 26); + + // If we clicked the map somewhere inconvenient var sidebar = $('#report-a-problem-sidebar'); if (sidebar.css('position') == 'absolute') { var w = sidebar.width(), h = sidebar.height(), o = sidebar.offset(); - if (e.xy.x >= o.left && e.xy.x <= o.left + w && e.xy.y >= o.top && e.xy.y <= o.top + h) { + if (e.xy.y <= o.top) { + // top of the page, pin hidden by header + lonlat.transform( + new OpenLayers.Projection("EPSG:4326"), + fixmystreet.map.getProjectionObject() + ); + fixmystreet.map.setCenter(lonlat, fixmystreet.map.getZoom(), true, true); + } else if (e.xy.x >= o.left && e.xy.x <= o.left + w + 24 && e.xy.y >= o.top && e.xy.y <= o.top + h + 64) { + // underneath where the new sidebar will appear fixmystreet.map.pan(-w, 0, { animate: false }); } } -- cgit v1.2.3 From 108e3c53e8fc6a9e2a9d9c1151647f049225ed96 Mon Sep 17 00:00:00 2001 From: Matthew Somerville Date: Wed, 29 Feb 2012 09:22:42 +0000 Subject: Main part of mobile site full screen map for reporting a problem. --- web/js/map-OpenLayers.js | 65 +++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 53 insertions(+), 12 deletions(-) (limited to 'web/js/map-OpenLayers.js') diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index 4a5e8ed54..769facdc7 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -183,8 +183,7 @@ function fixmystreet_onload() { $(function(){ - var perm = new OpenLayers.Control.Permalink(); - set_map_config(perm); + set_map_config(); fixmystreet.map = new OpenLayers.Map("map", { controls: fixmystreet.controls, @@ -207,6 +206,7 @@ $(function(){ ); fixmystreet.map.setCenter(centre, fixmystreet.zoom || 3); } + if ($('#map_box').data('size')=='full') { // TODO Work better with window resizing, this is pretty 'set up' only at present var q = $(window).width() / 4; @@ -238,16 +238,6 @@ $(function(){ click.activate(); } - /* To let permalink not be caught by the Click layer, answer found - * at http://www.mail-archive.com/users@openlayers.org/msg12958.html - * Not sure why you can't use eventListeners or events.register... - */ - OpenLayers.Event.observe( perm.element, "click", function(e) { - OpenLayers.Event.stop(e); - location.href = OpenLayers.Event.element(e).href; - return false; - }); - $(window).hashchange(function(){ if (location.hash) { return; } // Okay, back to around view. @@ -370,6 +360,48 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { }, trigger: function(e) { + if ($('html').hasClass('mobile') && fixmystreet.page != 'new') { + if (fixmystreet.page == 'mobile-full-map') { + this.locate_report(e); + $('#map_box').css({ + zIndex: 'auto', position: 'static', + width: 'auto', height: '10em', + margin: '0 -1em' + }); + fixmystreet.map.updateSize(); + // Also remove panzoom and permalink? + } else { + this.mobile_full_screen_map(e); + } + } else { + this.locate_report(e); + } + }, + + mobile_full_screen_map: function(e) { + if ( fixmystreet.markers.getVisibility() ) { + $('#hide_pins_link').click(); + } + fixmystreet.map.addControls([ + new OpenLayers.Control.Navigation({ zoomWheelEnabled: false }), + new OpenLayers.Control.Permalink(), + new OpenLayers.Control.PanZoomFMS() + ]); + $('#map_box').css({ + zIndex: 0, position: 'fixed', + top: 0, left: 0, right: 0, bottom: 0, + width: '100%', height: '100%', + margin: 0 + }); + // Also need to move green banner, add close button, etc. + fixmystreet.map.updateSize(); + fixmystreet.page = 'mobile-full-map'; + // To make sure the click control is on top + this.deactivate(); + this.activate(); + }, + + locate_report: function(e) { var lonlat = fixmystreet.map.getLonLatFromViewPortPx(e.xy); if (fixmystreet.page == 'new') { /* Already have a pin */ @@ -431,6 +463,15 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { fixmystreet.map.pan(-w, 0, { animate: false }); } } + + if (fixmystreet.page == 'mobile-full-map') { + lonlat.transform( + new OpenLayers.Projection("EPSG:4326"), + fixmystreet.map.getProjectionObject() + ); + fixmystreet.map.setCenter(lonlat); + } + fixmystreet.page = 'new'; location.hash = 'report'; } -- cgit v1.2.3 From 60c0c4f6bcb9c450b20fa8722284696f8d4c3a1c Mon Sep 17 00:00:00 2001 From: Josh Angell Date: Wed, 29 Feb 2012 09:55:55 +0000 Subject: Change word 'stale' to 'old' Signed-off-by: Josh Angell --- web/js/map-OpenLayers.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'web/js/map-OpenLayers.js') diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index 769facdc7..b753d8615 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -153,7 +153,7 @@ function fixmystreet_onload() { e.preventDefault(); fixmystreet.markers.setVisibility(true); var texts = [ - 'en', 'Include stale reports', 'Hide stale reports', + 'en', 'Include old reports', 'Hide old reports', 'nb', 'Inkluder utdaterte problemer', 'Skjul utdaterte rapporter', 'cy', 'Cynnwys hen adroddiadau', 'Cuddio hen adroddiadau' ]; -- cgit v1.2.3 From e771a1e5e04ae6f14928b1a328cca06c37f9af78 Mon Sep 17 00:00:00 2001 From: Matthew Somerville Date: Wed, 29 Feb 2012 12:31:45 +0000 Subject: Reduce JS pin fetching to only exactly the map that is shown. --- web/js/map-OpenLayers.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'web/js/map-OpenLayers.js') diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index b753d8615..c6bdfb68e 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -99,7 +99,7 @@ function fixmystreet_onload() { styleMap: pin_layer_style_map }; if (fixmystreet.page == 'around') { - fixmystreet.bbox_strategy = new OpenLayers.Strategy.BBOX(); + fixmystreet.bbox_strategy = new OpenLayers.Strategy.BBOX({ ratio: 1 }); pin_layer_options.strategies = [ fixmystreet.bbox_strategy ]; pin_layer_options.protocol = new OpenLayers.Protocol.HTTP({ url: '/ajax', -- cgit v1.2.3 From 3ffef58745c4ce245953d32aeb618d9323fa6077 Mon Sep 17 00:00:00 2001 From: Josh Angell Date: Wed, 29 Feb 2012 12:58:09 +0000 Subject: Finished style and interaction for mobile map Signed-off-by: Josh Angell --- web/js/map-OpenLayers.js | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) (limited to 'web/js/map-OpenLayers.js') diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index b753d8615..0e45fac77 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -369,7 +369,6 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { margin: '0 -1em' }); fixmystreet.map.updateSize(); - // Also remove panzoom and permalink? } else { this.mobile_full_screen_map(e); } @@ -380,12 +379,17 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { mobile_full_screen_map: function(e) { if ( fixmystreet.markers.getVisibility() ) { - $('#hide_pins_link').click(); + //hide pins and update text + $('#hide_pins_link').click().text('Show pins'); + } + var permalink_id; + if ($('#map_permalink').length) { + permalink_id = 'map_permalink'; } fixmystreet.map.addControls([ new OpenLayers.Control.Navigation({ zoomWheelEnabled: false }), - new OpenLayers.Control.Permalink(), - new OpenLayers.Control.PanZoomFMS() + new OpenLayers.Control.Permalink(permalink_id), + new OpenLayers.Control.PanZoomFMS({id: 'fms_pan_zoom' }) ]); $('#map_box').css({ zIndex: 0, position: 'fixed', @@ -393,7 +397,18 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { width: '100%', height: '100%', margin: 0 }); - // Also need to move green banner, add close button, etc. + + // move and alter green banner, add close button + $('#map_box').append('Close'); + $('.big-green-banner').addClass('mobile-map-banner'); + // hide site-logo (z-index madness), show sub_map_links + // and push map zoom down a notch + $('#site-logo').hide(); + $('#sub_map_links').show(); + $('#fms_pan_zoom').css({'top':'3.5em !important'}); + + // need to set up a click for #close-mobile-map somehow + fixmystreet.map.updateSize(); fixmystreet.page = 'mobile-full-map'; // To make sure the click control is on top @@ -435,7 +450,7 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { $('#form_category').change( form_category_onchange ); } }); - $('#side-form').show(); + $('#side-form, #site-logo').show(); /* For some reason on IOS5 if you use the jQuery show method it * doesn't display the JS validation error messages unless you do this * or you cause a screen redraw by changing the phone orientation. @@ -444,7 +459,8 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { document.getElementById('side-form').style.display = 'block'; } $('#side').hide(); - $('#sub_map_links').hide(); + //hide lots of the map ui on mobile + $('#sub_map_links, #fms_pan_zoom, #close-mobile-map', '.mobile').hide(); heightFix('#report-a-problem-sidebar:visible', '.content', 26); // If we clicked the map somewhere inconvenient -- cgit v1.2.3 From 9d26e831430b6ed5ec06574483bc2e4ed7dd2da2 Mon Sep 17 00:00:00 2001 From: Josh Angell Date: Wed, 29 Feb 2012 17:28:14 +0000 Subject: Remove some extraneous stuff Signed-off-by: Josh Angell --- web/js/map-OpenLayers.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'web/js/map-OpenLayers.js') diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index 120bbf144..a772cad97 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -379,8 +379,7 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { mobile_full_screen_map: function(e) { if ( fixmystreet.markers.getVisibility() ) { - //hide pins and update text - $('#hide_pins_link').click().text('Show pins'); + $('#hide_pins_link').click(); } var permalink_id; if ($('#map_permalink').length) { @@ -405,7 +404,6 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { // and push map zoom down a notch $('#site-logo').hide(); $('#sub_map_links').show(); - $('#fms_pan_zoom').css({'top':'3.5em !important'}); // need to set up a click for #close-mobile-map somehow -- cgit v1.2.3 From 0ebd9c37bd8c637342c0236af1404cfd07c37a11 Mon Sep 17 00:00:00 2001 From: Matthew Somerville Date: Thu, 1 Mar 2012 03:58:41 +0000 Subject: Initial pass of pin popups. --- web/js/map-OpenLayers.js | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) (limited to 'web/js/map-OpenLayers.js') diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index a772cad97..137103f7c 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -108,17 +108,36 @@ function fixmystreet_onload() { }); } fixmystreet.markers = new OpenLayers.Layer.Vector("Pins", pin_layer_options); + fixmystreet.markers.events.register( 'loadend', fixmystreet.markers, function(evt) { + if (fixmystreet.map.popups.length) fixmystreet.map.removePopup(fixmystreet.map.popups[0]); + }); var markers = fms_markers_list( fixmystreet.pins, true ); fixmystreet.markers.addFeatures( markers ); if (fixmystreet.page == 'around' || fixmystreet.page == 'reports' || fixmystreet.page == 'my') { - fixmystreet.markers.events.register( 'featureselected', fixmystreet.markers, function(evt) { - if (evt.feature.attributes.id) { - window.location = '/report/' + evt.feature.attributes.id; - } + var select = new OpenLayers.Control.SelectFeature( fixmystreet.markers ); + var selectedFeature; + function onPopupClose(evt) { + select.unselect(selectedFeature); OpenLayers.Event.stop(evt); + } + fixmystreet.markers.events.register( 'featureunselected', fixmystreet.markers, function(evt) { + var feature = evt.feature, popup = feature.popup; + fixmystreet.map.removePopup(popup); + popup.destroy(); + feature.popup = null; + }); + fixmystreet.markers.events.register( 'featureselected', fixmystreet.markers, function(evt) { + var feature = evt.feature; + selectedFeature = feature; + var popup = new OpenLayers.Popup.FramedCloud("popup", + feature.geometry.getBounds().getCenterLonLat(), + null, + "TITLE
More", + null, true, onPopupClose); + feature.popup = popup; + fixmystreet.map.addPopup(popup); }); - var select = new OpenLayers.Control.SelectFeature( fixmystreet.markers ); fixmystreet.map.addControl( select ); select.activate(); } else if (fixmystreet.page == 'new') { -- cgit v1.2.3 From 9a51dfaeef496a4d08b5054bf0e664184157cc29 Mon Sep 17 00:00:00 2001 From: Matthew Somerville Date: Thu, 1 Mar 2012 04:15:30 +0000 Subject: Animate moving of map when pin clicked somewhere inconvenient. --- web/js/map-OpenLayers.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'web/js/map-OpenLayers.js') diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index 137103f7c..38a2930d3 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -490,10 +490,13 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { new OpenLayers.Projection("EPSG:4326"), fixmystreet.map.getProjectionObject() ); - fixmystreet.map.setCenter(lonlat, fixmystreet.map.getZoom(), true, true); + var p = fixmystreet.map.getViewPortPxFromLonLat(lonlat) + p.x -= $(window).width() / 3; + lonlat = fixmystreet.map.getLonLatFromViewPortPx(p); + fixmystreet.map.panTo(lonlat); } else if (e.xy.x >= o.left && e.xy.x <= o.left + w + 24 && e.xy.y >= o.top && e.xy.y <= o.top + h + 64) { // underneath where the new sidebar will appear - fixmystreet.map.pan(-w, 0, { animate: false }); + fixmystreet.map.pan(-w, 0, { animate: true }); } } -- cgit v1.2.3 From 4c6fe90795c6f1597775ad317798a6c75f8f27f9 Mon Sep 17 00:00:00 2001 From: Matthew Somerville Date: Thu, 1 Mar 2012 09:34:25 +0000 Subject: Remove some of #224 due to new #258. --- web/js/map-OpenLayers.js | 82 ++++++++++++------------------------------------ 1 file changed, 20 insertions(+), 62 deletions(-) (limited to 'web/js/map-OpenLayers.js') diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index 38a2930d3..2375d5eb8 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -133,7 +133,7 @@ function fixmystreet_onload() { var popup = new OpenLayers.Popup.FramedCloud("popup", feature.geometry.getBounds().getCenterLonLat(), null, - "TITLE
More", + feature.attributes.title + "
More details", null, true, onPopupClose); feature.popup = popup; fixmystreet.map.addPopup(popup); @@ -379,61 +379,14 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { }, trigger: function(e) { - if ($('html').hasClass('mobile') && fixmystreet.page != 'new') { - if (fixmystreet.page == 'mobile-full-map') { - this.locate_report(e); - $('#map_box').css({ - zIndex: 'auto', position: 'static', - width: 'auto', height: '10em', - margin: '0 -1em' - }); - fixmystreet.map.updateSize(); - } else { - this.mobile_full_screen_map(e); - } + if ($('html').hasClass('mobile')) { + this.locate_report_mobile(e); } else { this.locate_report(e); } }, - mobile_full_screen_map: function(e) { - if ( fixmystreet.markers.getVisibility() ) { - $('#hide_pins_link').click(); - } - var permalink_id; - if ($('#map_permalink').length) { - permalink_id = 'map_permalink'; - } - fixmystreet.map.addControls([ - new OpenLayers.Control.Navigation({ zoomWheelEnabled: false }), - new OpenLayers.Control.Permalink(permalink_id), - new OpenLayers.Control.PanZoomFMS({id: 'fms_pan_zoom' }) - ]); - $('#map_box').css({ - zIndex: 0, position: 'fixed', - top: 0, left: 0, right: 0, bottom: 0, - width: '100%', height: '100%', - margin: 0 - }); - - // move and alter green banner, add close button - $('#map_box').append('Close'); - $('.big-green-banner').addClass('mobile-map-banner'); - // hide site-logo (z-index madness), show sub_map_links - // and push map zoom down a notch - $('#site-logo').hide(); - $('#sub_map_links').show(); - - // need to set up a click for #close-mobile-map somehow - - fixmystreet.map.updateSize(); - fixmystreet.page = 'mobile-full-map'; - // To make sure the click control is on top - this.deactivate(); - this.activate(); - }, - - locate_report: function(e) { + locate_report_pin_and_council: function(e) { var lonlat = fixmystreet.map.getLonLatFromViewPortPx(e.xy); if (fixmystreet.page == 'new') { /* Already have a pin */ @@ -453,7 +406,7 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { $('#hide_pins_link').click(); } if (fixmystreet.page == 'new') { - return; + return true; } $.getJSON('/report/new/ajax', { latitude: $('#fixmystreet\\.latitude').val(), @@ -467,6 +420,21 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { $('#form_category').change( form_category_onchange ); } }); + return false; + }, + + locate_report_mobile: function(e) { + if (this.locate_report_pin_and_council(e)) { + return; + } + fixmystreet.page = 'new'; + location.hash = 'report'; + }, + + locate_report: function(e) { + if (this.locate_report_pin_and_council(e)) { + return; + } $('#side-form, #site-logo').show(); /* For some reason on IOS5 if you use the jQuery show method it * doesn't display the JS validation error messages unless you do this @@ -476,8 +444,6 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { document.getElementById('side-form').style.display = 'block'; } $('#side').hide(); - //hide lots of the map ui on mobile - $('#sub_map_links, #fms_pan_zoom, #close-mobile-map', '.mobile').hide(); heightFix('#report-a-problem-sidebar:visible', '.content', 26); // If we clicked the map somewhere inconvenient @@ -500,14 +466,6 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { } } - if (fixmystreet.page == 'mobile-full-map') { - lonlat.transform( - new OpenLayers.Projection("EPSG:4326"), - fixmystreet.map.getProjectionObject() - ); - fixmystreet.map.setCenter(lonlat); - } - fixmystreet.page = 'new'; location.hash = 'report'; } -- cgit v1.2.3 From 195d9b4e10132018859ff120c89819c1f94fa7ed Mon Sep 17 00:00:00 2001 From: Matthew Somerville Date: Thu, 1 Mar 2012 11:11:47 +0000 Subject: Bugfix. --- web/js/map-OpenLayers.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'web/js/map-OpenLayers.js') diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index 2375d5eb8..0ed66ca53 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -406,7 +406,7 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { $('#hide_pins_link').click(); } if (fixmystreet.page == 'new') { - return true; + return false; } $.getJSON('/report/new/ajax', { latitude: $('#fixmystreet\\.latitude').val(), @@ -420,7 +420,7 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { $('#form_category').change( form_category_onchange ); } }); - return false; + return lonlat; }, locate_report_mobile: function(e) { @@ -432,7 +432,8 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { }, locate_report: function(e) { - if (this.locate_report_pin_and_council(e)) { + var lonlat = this.locate_report_pin_and_council(e); + if (!lonlat) { return; } $('#side-form, #site-logo').show(); -- cgit v1.2.3 From be88a751f3f3febe9b71d5148d68d839b7601de8 Mon Sep 17 00:00:00 2001 From: Matthew Somerville Date: Thu, 1 Mar 2012 11:29:08 +0000 Subject: Green pin when creating, for #250. --- web/js/map-OpenLayers.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'web/js/map-OpenLayers.js') diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index 0ed66ca53..8d8f03e37 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -392,7 +392,7 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { /* Already have a pin */ fixmystreet.markers.features[0].move(lonlat); } else { - var markers = fms_markers_list( [ [ lonlat.lat, lonlat.lon, 'yellow' ] ], false ); + var markers = fms_markers_list( [ [ lonlat.lat, lonlat.lon, 'green' ] ], false ); fixmystreet.bbox_strategy.deactivate(); fixmystreet.markers.removeAllFeatures(); fixmystreet.markers.addFeatures( markers ); -- cgit v1.2.3 From 6be95b8b2f9530e58652710eef0e39836980e0bc Mon Sep 17 00:00:00 2001 From: Matthew Somerville Date: Thu, 1 Mar 2012 11:31:00 +0000 Subject: Function return has reversed. --- web/js/map-OpenLayers.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'web/js/map-OpenLayers.js') diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index 8d8f03e37..f9c2efcaf 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -424,7 +424,8 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { }, locate_report_mobile: function(e) { - if (this.locate_report_pin_and_council(e)) { + var lonlat = this.locate_report_pin_and_council(e); + if (!lonlat) { return; } fixmystreet.page = 'new'; -- cgit v1.2.3 From 5e9d0e7f7ad547d059025e152ca64fe294b67eea Mon Sep 17 00:00:00 2001 From: Josh Angell Date: Thu, 1 Mar 2012 11:56:18 +0000 Subject: Move disappearing of sub map links and appearing of tryagain/ok to after the click, also remove permalink and add receive updates Signed-off-by: Josh Angell --- web/js/map-OpenLayers.js | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'web/js/map-OpenLayers.js') diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index f9c2efcaf..22183668d 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -430,6 +430,14 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { } fixmystreet.page = 'new'; location.hash = 'report'; + $('#sub_map_links').hide(); + $('#map_box').append( + '' + ); + $('.mobile-map-banner').text('Right place?'); }, locate_report: function(e) { -- cgit v1.2.3 From 4b87bd21bd46801807213a4aa54d533b2dbf49ce Mon Sep 17 00:00:00 2001 From: Josh Angell Date: Thu, 1 Mar 2012 12:27:20 +0000 Subject: Try again link for #258 Signed-off-by: Josh Angell --- web/js/map-OpenLayers.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'web/js/map-OpenLayers.js') diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index 22183668d..390384733 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -267,6 +267,9 @@ $(function(){ $('#side').show(); $('#sub_map_links').show(); heightFix('#report-a-problem-sidebar:visible', '.content', 26); + //only on mobile + $('.mobile #mob_sub_map_links').remove(); + $('.mobile-map-banner').text('Place pin on map'); fixmystreet.page = 'around'; }); @@ -434,7 +437,7 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { $('#map_box').append( '' ); $('.mobile-map-banner').text('Right place?'); -- cgit v1.2.3 From e2a347ad816f7f77ef9d06dd553f03ae22fb4636 Mon Sep 17 00:00:00 2001 From: Matthew Somerville Date: Thu, 1 Mar 2012 12:39:50 +0000 Subject: Mobile JS can be same as desktop now. --- web/js/map-OpenLayers.js | 47 +++++++++++++---------------------------------- 1 file changed, 13 insertions(+), 34 deletions(-) (limited to 'web/js/map-OpenLayers.js') diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index 390384733..ef12a71a4 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -268,7 +268,7 @@ $(function(){ $('#sub_map_links').show(); heightFix('#report-a-problem-sidebar:visible', '.content', 26); //only on mobile - $('.mobile #mob_sub_map_links').remove(); + $('#mob_sub_map_links').remove(); $('.mobile-map-banner').text('Place pin on map'); fixmystreet.page = 'around'; }); @@ -382,14 +382,6 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { }, trigger: function(e) { - if ($('html').hasClass('mobile')) { - this.locate_report_mobile(e); - } else { - this.locate_report(e); - } - }, - - locate_report_pin_and_council: function(e) { var lonlat = fixmystreet.map.getLonLatFromViewPortPx(e.xy); if (fixmystreet.page == 'new') { /* Already have a pin */ @@ -409,7 +401,7 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { $('#hide_pins_link').click(); } if (fixmystreet.page == 'new') { - return false; + return; } $.getJSON('/report/new/ajax', { latitude: $('#fixmystreet\\.latitude').val(), @@ -423,31 +415,7 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { $('#form_category').change( form_category_onchange ); } }); - return lonlat; - }, - - locate_report_mobile: function(e) { - var lonlat = this.locate_report_pin_and_council(e); - if (!lonlat) { - return; - } - fixmystreet.page = 'new'; - location.hash = 'report'; - $('#sub_map_links').hide(); - $('#map_box').append( - '' - ); - $('.mobile-map-banner').text('Right place?'); - }, - locate_report: function(e) { - var lonlat = this.locate_report_pin_and_council(e); - if (!lonlat) { - return; - } $('#side-form, #site-logo').show(); /* For some reason on IOS5 if you use the jQuery show method it * doesn't display the JS validation error messages unless you do this @@ -479,6 +447,17 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { } } + if ($('html').hasClass('mobile')) { + $('#sub_map_links').hide(); + $('#map_box').append( + '' + ); + $('.mobile-map-banner').text('Right place?'); + } + fixmystreet.page = 'new'; location.hash = 'report'; } -- cgit v1.2.3 From 2690a3d248b78ec53429077dae974fc741e68831 Mon Sep 17 00:00:00 2001 From: Josh Angell Date: Thu, 1 Mar 2012 12:47:42 +0000 Subject: Some language changes to fix sub_map_links breaking Signed-off-by: Josh Angell --- web/js/map-OpenLayers.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'web/js/map-OpenLayers.js') diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index 390384733..cc21a0fae 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -172,7 +172,7 @@ function fixmystreet_onload() { e.preventDefault(); fixmystreet.markers.setVisibility(true); var texts = [ - 'en', 'Include old reports', 'Hide old reports', + 'en', 'Show old', 'Hide old', 'nb', 'Inkluder utdaterte problemer', 'Skjul utdaterte rapporter', 'cy', 'Cynnwys hen adroddiadau', 'Cuddio hen adroddiadau' ]; -- cgit v1.2.3 From 13d3f671611fe75736247d8a1db54ebd349a81e6 Mon Sep 17 00:00:00 2001 From: Josh Angell Date: Thu, 1 Mar 2012 12:53:23 +0000 Subject: Linter fix Signed-off-by: Josh Angell --- web/js/map-OpenLayers.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'web/js/map-OpenLayers.js') diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index 6fb0a7616..89059eae9 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -437,7 +437,7 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { new OpenLayers.Projection("EPSG:4326"), fixmystreet.map.getProjectionObject() ); - var p = fixmystreet.map.getViewPortPxFromLonLat(lonlat) + var p = fixmystreet.map.getViewPortPxFromLonLat(lonlat); p.x -= $(window).width() / 3; lonlat = fixmystreet.map.getLonLatFromViewPortPx(p); fixmystreet.map.panTo(lonlat); -- cgit v1.2.3 From 890417a33a07bc70953e30c0709868632a7d249c Mon Sep 17 00:00:00 2001 From: Josh Angell Date: Thu, 1 Mar 2012 13:17:40 +0000 Subject: Initial scroll event for when user clicks ok on mobile map, also altered how the Notes scroll so they use offset instead Signed-off-by: Josh Angell --- web/js/map-OpenLayers.js | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'web/js/map-OpenLayers.js') diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index 89059eae9..87400c9d8 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -456,6 +456,16 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { '

' ); $('.mobile-map-banner').text('Right place?'); + + // mobile user clicks 'ok' on map + $('#mob_ok').on('click', function(e){ + e.preventDefault(); + //scroll the height of the map box instead of the offset + //of the #side-form or whatever as we will probably want + //to do this on other pages where #side-form might not be + var height = $('#map_box').height(); + $('html, body').animate({scrollTop:height}, 1000); + }); } fixmystreet.page = 'new'; -- cgit v1.2.3 From d6d3a2904cafa7236b5426a9d19f0807c28e153f Mon Sep 17 00:00:00 2001 From: Matthew Somerville Date: Thu, 1 Mar 2012 15:39:53 +0000 Subject: Move popups to come out of the middle of the pin. --- web/js/map-OpenLayers.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'web/js/map-OpenLayers.js') diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index 87400c9d8..b50f8c30f 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -134,7 +134,8 @@ function fixmystreet_onload() { feature.geometry.getBounds().getCenterLonLat(), null, feature.attributes.title + "
More details", - null, true, onPopupClose); + { size: new OpenLayers.Size(0,0), offset: new OpenLayers.Pixel(0,-40) }, + true, onPopupClose); feature.popup = popup; fixmystreet.map.addPopup(popup); }); -- cgit v1.2.3 From 0b06d212c635a6696c41e339e56b1e0c058f10a1 Mon Sep 17 00:00:00 2001 From: Josh Angell Date: Thu, 1 Mar 2012 15:46:25 +0000 Subject: Add class for when map is 'complete' Signed-off-by: Josh Angell --- web/js/map-OpenLayers.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'web/js/map-OpenLayers.js') diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index 87400c9d8..2328fc6a3 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -451,7 +451,7 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { $('#sub_map_links').hide(); $('#map_box').append( '' ); @@ -465,6 +465,9 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { //to do this on other pages where #side-form might not be var height = $('#map_box').height(); $('html, body').animate({scrollTop:height}, 1000); + + //add this class so we can modify the look of the links inside + $('#mob_sub_map_links').addClass('map_complete'); }); } -- cgit v1.2.3 From f00eaa221cdefd6d2d70c8c2029df801bc0d0420 Mon Sep 17 00:00:00 2001 From: Matthew Somerville Date: Thu, 1 Mar 2012 15:50:01 +0000 Subject: Remember pin hiding state in case they try again. --- web/js/map-OpenLayers.js | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'web/js/map-OpenLayers.js') diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index b50f8c30f..d4aa51a34 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -263,6 +263,10 @@ $(function(){ // Okay, back to around view. fixmystreet.bbox_strategy.activate(); fixmystreet.markers.refresh( { force: true } ); + if ( fixmystreet.state_pins_were_hidden ) { + // If we had pins hidden when we clicked map (which had to show the pin layer as I'm doing it in one layer), hide them again. + $('#hide_pins_link').click(); + } fixmystreet.drag.deactivate(); $('#side-form').hide(); $('#side').show(); @@ -399,6 +403,7 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { // link so that it updates the text in case they go // back if ( ! fixmystreet.markers.getVisibility() ) { + fixmystreet.state_pins_were_hidden = true; $('#hide_pins_link').click(); } if (fixmystreet.page == 'new') { -- cgit v1.2.3 From aed77780b3b363512fa0effd36e0c60d62397fac Mon Sep 17 00:00:00 2001 From: Josh Angell Date: Thu, 1 Mar 2012 16:11:01 +0000 Subject: Initial styles for mobile completed map buttons Signed-off-by: Josh Angell --- web/js/map-OpenLayers.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'web/js/map-OpenLayers.js') diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index 4c789cc19..3a6cec3e5 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -470,10 +470,11 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { //of the #side-form or whatever as we will probably want //to do this on other pages where #side-form might not be var height = $('#map_box').height(); - $('html, body').animate({scrollTop:height}, 1000); + $('html, body').animate({scrollTop:height-60}, 1000); //add this class so we can modify the look of the links inside $('#mob_sub_map_links').addClass('map_complete'); + $('#mob_ok').text('MAP'); }); } -- cgit v1.2.3 From d04f5d84ca070718e5ce28ab8c45db5bec03c442 Mon Sep 17 00:00:00 2001 From: Matthew Somerville Date: Thu, 1 Mar 2012 16:25:54 +0000 Subject: Change links once the scrolling is complete, not before. --- web/js/map-OpenLayers.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'web/js/map-OpenLayers.js') diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index 3a6cec3e5..9d5b474f1 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -470,11 +470,12 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { //of the #side-form or whatever as we will probably want //to do this on other pages where #side-form might not be var height = $('#map_box').height(); - $('html, body').animate({scrollTop:height-60}, 1000); + $('html, body').animate({scrollTop:height-60}, 1000, function(){ + //add this class so we can modify the look of the links inside + $('#mob_sub_map_links').addClass('map_complete'); + $('#mob_ok').text('MAP'); + }); - //add this class so we can modify the look of the links inside - $('#mob_sub_map_links').addClass('map_complete'); - $('#mob_ok').text('MAP'); }); } -- cgit v1.2.3 From d180953fab70128ce1e8215d98177456482d6051 Mon Sep 17 00:00:00 2001 From: Josh Angell Date: Thu, 1 Mar 2012 16:35:07 +0000 Subject: Add scroll to top js when map is completed on mobile Signed-off-by: Josh Angell --- web/js/map-OpenLayers.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'web/js/map-OpenLayers.js') diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index 3a6cec3e5..414bb1fc5 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -469,8 +469,12 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { //scroll the height of the map box instead of the offset //of the #side-form or whatever as we will probably want //to do this on other pages where #side-form might not be - var height = $('#map_box').height(); - $('html, body').animate({scrollTop:height-60}, 1000); + if($(this).parent().hasClass('map_complete')){ + $('html, body').animate({scrollTop:0}, 1000); + }else{ + var height = $('#map_box').height(); + $('html, body').animate({scrollTop:height-60}, 1000); + } //add this class so we can modify the look of the links inside $('#mob_sub_map_links').addClass('map_complete'); -- cgit v1.2.3 From 2e697be14d06a9ef1bfe0bdb97b7820fb04d45c2 Mon Sep 17 00:00:00 2001 From: Matthew Somerville Date: Thu, 1 Mar 2012 20:35:56 +0000 Subject: Allow back button to work when reading mobile reporting notes, fixes #260. --- web/js/map-OpenLayers.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'web/js/map-OpenLayers.js') diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index abee9ebfa..aec9b69b1 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -259,7 +259,15 @@ $(function(){ } $(window).hashchange(function(){ - if (location.hash) { return; } + if (location.hash == '#report' && $('.rap-notes').is(':visible')) { + $('.rap-notes-close').click(); + return; + } + + if (location.hash) { + return; + } + // Okay, back to around view. fixmystreet.bbox_strategy.activate(); fixmystreet.markers.refresh( { force: true } ); -- cgit v1.2.3 From 28032886923829170f5f989c53428fe7a1d8232e Mon Sep 17 00:00:00 2001 From: Matthew Somerville Date: Fri, 2 Mar 2012 11:13:19 +0000 Subject: Fix hashchange not working in IE6 for #246, and better animatino when clicking underneath where the sidebar will appear. --- web/js/map-OpenLayers.js | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'web/js/map-OpenLayers.js') diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index aec9b69b1..a95325d34 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -264,7 +264,7 @@ $(function(){ return; } - if (location.hash) { + if (location.hash && location.hash != '#') { return; } @@ -445,8 +445,9 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { var sidebar = $('#report-a-problem-sidebar'); if (sidebar.css('position') == 'absolute') { var w = sidebar.width(), h = sidebar.height(), o = sidebar.offset(); - if (e.xy.y <= o.top) { - // top of the page, pin hidden by header + if (e.xy.y <= o.top || (e.xy.x >= o.left && e.xy.x <= o.left + w + 24 && e.xy.y >= o.top && e.xy.y <= o.top + h + 64)) { + // top of the page, pin hidden by header; + // or underneath where the new sidebar will appear lonlat.transform( new OpenLayers.Projection("EPSG:4326"), fixmystreet.map.getProjectionObject() @@ -455,9 +456,6 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { p.x -= $(window).width() / 3; lonlat = fixmystreet.map.getLonLatFromViewPortPx(p); fixmystreet.map.panTo(lonlat); - } else if (e.xy.x >= o.left && e.xy.x <= o.left + w + 24 && e.xy.y >= o.top && e.xy.y <= o.top + h + 64) { - // underneath where the new sidebar will appear - fixmystreet.map.pan(-w, 0, { animate: true }); } } -- cgit v1.2.3 From 4eab56c784bb53d2e174e7b7101da7eba49a1a02 Mon Sep 17 00:00:00 2001 From: Matthew Somerville Date: Fri, 2 Mar 2012 13:30:41 +0000 Subject: Enable scroll wheel if mobile full screen map view. --- web/js/map-OpenLayers.js | 3 +++ 1 file changed, 3 insertions(+) (limited to 'web/js/map-OpenLayers.js') diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index a95325d34..7789159c1 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -395,6 +395,9 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { }, trigger: function(e) { + if (typeof fixmystreet.nav_control != 'undefined') { + fixmystreet.nav_control.disableZoomWheel(); + } var lonlat = fixmystreet.map.getLonLatFromViewPortPx(e.xy); if (fixmystreet.page == 'new') { /* Already have a pin */ -- cgit v1.2.3 From e54162a799f69d69fd0fd509ad97c372655ee106 Mon Sep 17 00:00:00 2001 From: Matthew Somerville Date: Fri, 2 Mar 2012 14:41:07 +0000 Subject: Fix issue with overlapping map/form due to map height changing, by fixing height once we know it. --- web/js/map-OpenLayers.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'web/js/map-OpenLayers.js') diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index 7789159c1..92ced9981 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -463,13 +463,18 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { } if ($('html').hasClass('mobile')) { + var $map_box = $('#map_box'), + width = $map_box.width(), + height = $map_box.height(); $('#sub_map_links').hide(); - $('#map_box').append( + $map_box.append( '' - ); + ).css({ position: 'relative', width: width, height: height }); + // Making it relative here makes it much easier to do the scrolling later + $('.mobile-map-banner').text('Right place?'); // mobile user clicks 'ok' on map @@ -481,7 +486,6 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { if($(this).parent().hasClass('map_complete')){ $('html, body').animate({scrollTop:0}, 1000); }else{ - var height = $('#map_box').height(); $('html, body').animate({scrollTop:height-60}, 1000, function(){ //add this class so we can modify the look of the links inside $('#mob_sub_map_links').addClass('map_complete'); -- cgit v1.2.3 From ad5173beb2cfdf9e3c2a746d088f0e068c29d775 Mon Sep 17 00:00:00 2001 From: Matthew Somerville Date: Sat, 3 Mar 2012 01:25:55 +0000 Subject: Change map button back to OK if used, as otherwise use of try again was forced potentially unnecessarily. --- web/js/map-OpenLayers.js | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) (limited to 'web/js/map-OpenLayers.js') diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index 92ced9981..2f5947193 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -478,20 +478,19 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { $('.mobile-map-banner').text('Right place?'); // mobile user clicks 'ok' on map - $('#mob_ok').on('click', function(e){ - e.preventDefault(); + $('#mob_ok').toggle(function(){ //scroll the height of the map box instead of the offset //of the #side-form or whatever as we will probably want //to do this on other pages where #side-form might not be - if($(this).parent().hasClass('map_complete')){ - $('html, body').animate({scrollTop:0}, 1000); - }else{ - $('html, body').animate({scrollTop:height-60}, 1000, function(){ - //add this class so we can modify the look of the links inside - $('#mob_sub_map_links').addClass('map_complete'); - $('#mob_ok').text('MAP'); - }); - } + $('html, body').animate({ scrollTop: height-60 }, 1000, function(){ + $('#mob_sub_map_links').addClass('map_complete'); + $('#mob_ok').text('MAP'); + }); + }, function(){ + $('html, body').animate({ scrollTop: 0 }, 1000, function(){ + $('#mob_sub_map_links').removeClass('map_complete'); + $('#mob_ok').text('OK'); + }); }); } -- cgit v1.2.3 From 2e67cfea120582c73fad391c415297ba086cbcdb Mon Sep 17 00:00:00 2001 From: Matthew Somerville Date: Mon, 5 Mar 2012 12:20:12 +0000 Subject: Heading spacing. --- web/js/map-OpenLayers.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'web/js/map-OpenLayers.js') diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index 2f5947193..f3dda2555 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -472,7 +472,7 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { 'Try again' + 'OK' + '

' - ).css({ position: 'relative', width: width, height: height }); + ).css({ position: 'relative', width: width, height: height, marginBottom: '1em' }); // Making it relative here makes it much easier to do the scrolling later $('.mobile-map-banner').text('Right place?'); -- cgit v1.2.3 From 7f5cd5357dadd81b25198a623cd4937eb72dfabf Mon Sep 17 00:00:00 2001 From: Josh Angell Date: Tue, 6 Mar 2012 11:50:23 +0000 Subject: Remove stray heightFix Signed-off-by: Josh Angell --- web/js/map-OpenLayers.js | 1 - 1 file changed, 1 deletion(-) (limited to 'web/js/map-OpenLayers.js') diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index f3dda2555..b6859f486 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -279,7 +279,6 @@ $(function(){ $('#side-form').hide(); $('#side').show(); $('#sub_map_links').show(); - heightFix('#report-a-problem-sidebar:visible', '.content', 26); //only on mobile $('#mob_sub_map_links').remove(); $('.mobile-map-banner').text('Place pin on map'); -- cgit v1.2.3 From 391878c3761ba11d6fe447a0d5e3547a250304ff Mon Sep 17 00:00:00 2001 From: Matthew Somerville Date: Wed, 7 Mar 2012 11:20:47 +0000 Subject: Put padding on inner div to stop animation jump, no important on hidden-js so that size can be calculated by JS. --- web/js/map-OpenLayers.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'web/js/map-OpenLayers.js') diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index b6859f486..8ee217dff 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -441,7 +441,7 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { document.getElementById('side-form').style.display = 'block'; } $('#side').hide(); - heightFix('#report-a-problem-sidebar:visible', '.content', 26); + heightFix('#report-a-problem-sidebar', '.content', 26); // If we clicked the map somewhere inconvenient var sidebar = $('#report-a-problem-sidebar'); -- cgit v1.2.3 From 84f1d553ae8e5fb0821d2e416538fa935bf2feaf Mon Sep 17 00:00:00 2001 From: Matthew Somerville Date: Wed, 7 Mar 2012 14:27:49 +0000 Subject: Hide sub map links when report process started (fixes #265); bit of space under key tools in mobile environment, and fix typo. --- web/js/map-OpenLayers.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'web/js/map-OpenLayers.js') diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index 8ee217dff..101585c07 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -461,11 +461,11 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { } } + $('#sub_map_links').hide(); if ($('html').hasClass('mobile')) { var $map_box = $('#map_box'), width = $map_box.width(), height = $map_box.height(); - $('#sub_map_links').hide(); $map_box.append( '