diff options
author | Matthew Somerville <matthew@mysociety.org> | 2011-07-21 13:40:55 +0100 |
---|---|---|
committer | Matthew Somerville <matthew@mysociety.org> | 2011-07-21 13:41:24 +0100 |
commit | 4a8e9e711dca602d657cbe24b4733c613b94c279 (patch) | |
tree | ec84a70386c78476e9636bdd9b9656e255cd49f2 | |
parent | 96dd380147b497274a31ba2ee7ff2d8fffa9922a (diff) |
Allow pin moving without reload of page (at last).
-rw-r--r-- | perllib/FixMyStreet/App/Controller/My.pm | 1 | ||||
-rwxr-xr-x | perllib/FixMyStreet/App/Controller/Questionnaire.pm | 1 | ||||
-rw-r--r-- | perllib/FixMyStreet/App/Controller/Report.pm | 1 | ||||
-rw-r--r-- | perllib/FixMyStreet/App/Controller/Report/New.pm | 1 | ||||
-rw-r--r-- | web/js/map-OpenLayers.js | 8 |
5 files changed, 11 insertions, 1 deletions
diff --git a/perllib/FixMyStreet/App/Controller/My.pm b/perllib/FixMyStreet/App/Controller/My.pm index e5346f3d9..19b3ffee0 100644 --- a/perllib/FixMyStreet/App/Controller/My.pm +++ b/perllib/FixMyStreet/App/Controller/My.pm @@ -53,6 +53,7 @@ sub my : Path : Args(0) { $c->stash->{updates} = \@updates; $c->stash->{updates_pager} = $rs->pager; + $c->stash->{page} = 'my'; FixMyStreet::Map::display_map( $c, latitude => $pins->[0]{latitude}, diff --git a/perllib/FixMyStreet/App/Controller/Questionnaire.pm b/perllib/FixMyStreet/App/Controller/Questionnaire.pm index 0126fe566..acb1628cf 100755 --- a/perllib/FixMyStreet/App/Controller/Questionnaire.pm +++ b/perllib/FixMyStreet/App/Controller/Questionnaire.pm @@ -280,6 +280,7 @@ sub display : Private { { order_by => 'confirmed' } ); + $c->stash->{page} = 'questionnaire'; FixMyStreet::Map::display_map( $c, latitude => $problem->latitude, diff --git a/perllib/FixMyStreet/App/Controller/Report.pm b/perllib/FixMyStreet/App/Controller/Report.pm index ed8a7b418..6596615c6 100644 --- a/perllib/FixMyStreet/App/Controller/Report.pm +++ b/perllib/FixMyStreet/App/Controller/Report.pm @@ -122,6 +122,7 @@ sub generate_map_tags : Private { my $problem = $c->stash->{problem}; + $c->stash->{page} = 'report'; FixMyStreet::Map::display_map( $c, latitude => $problem->latitude, diff --git a/perllib/FixMyStreet/App/Controller/Report/New.pm b/perllib/FixMyStreet/App/Controller/Report/New.pm index ac8143718..ed9266632 100644 --- a/perllib/FixMyStreet/App/Controller/Report/New.pm +++ b/perllib/FixMyStreet/App/Controller/Report/New.pm @@ -901,6 +901,7 @@ sub generate_map : Private { # Don't do anything if the user skipped the map unless ( $c->req->param('skipped') ) { + $c->stash->{page} = 'new'; FixMyStreet::Map::display_map( $c, latitude => $latitude, diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index 948e4829f..6b4a03d7e 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -81,7 +81,7 @@ $(function(){ var markers = fms_markers_list( fixmystreet.pins, true ); fixmystreet.markers.addFeatures( markers ); - if (fixmystreet.page == 'around' || fixmystreet.page == 'reports') { + if (fixmystreet.page == 'around' || fixmystreet.page == 'reports' || fixmystreet.page == 'my') { fixmystreet.markers.events.register( 'featureselected', fixmystreet.markers, function(evt) { window.location = '/report/' + evt.feature.attributes.id; OpenLayers.Event.stop(evt); @@ -270,12 +270,18 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { trigger: function(e) { var lonlat = fixmystreet.map.getLonLatFromViewPortPx(e.xy); + if (fixmystreet.page == 'new') { + fixmystreet.markers.features[0].move(lonlat); + } lonlat.transform( fixmystreet.map.getProjectionObject(), new OpenLayers.Projection("EPSG:4326") ); document.getElementById('fixmystreet.latitude').value = lonlat.lat; document.getElementById('fixmystreet.longitude').value = lonlat.lon; + if (fixmystreet.page == 'new') { + return; + } document.getElementById('mapForm').submit(); } }); |