aboutsummaryrefslogtreecommitdiffstats
path: root/www/js
diff options
context:
space:
mode:
authorStruan Donald <struan@exo.org.uk>2012-11-07 18:46:50 +0000
committerStruan Donald <struan@exo.org.uk>2012-11-07 18:46:50 +0000
commit068f7fda24147f800880617594c199cfb62e326f (patch)
treedc9d531a3174851bc7dcd72f748d6a5cbd98862f /www/js
parentdb8a39254cc6ec632a3d30ef28a5a0a8c6a42a92 (diff)
reload saved report for completion
Diffstat (limited to 'www/js')
-rw-r--r--www/js/map-OpenLayers.js61
-rw-r--r--www/js/mobile.js30
2 files changed, 39 insertions, 52 deletions
diff --git a/www/js/map-OpenLayers.js b/www/js/map-OpenLayers.js
index a25e43f..9abf12e 100644
--- a/www/js/map-OpenLayers.js
+++ b/www/js/map-OpenLayers.js
@@ -247,6 +247,7 @@ function show_map(event) {
ensureNonZeroHeight();
set_map_config();
+ $('#mark-here').hide();
fixmystreet.map = new OpenLayers.Map("map", {
controls: fixmystreet.controls,
@@ -349,6 +350,14 @@ function show_map(event) {
fixmystreet_onload();
}
fixContentHeight(fixmystreet.map);
+
+ if ( fixmystreet.page == 'around' ) {
+ if ( localStorage.currentReport ) {
+ mark_here();
+ } else {
+ $('#mark-here').show();
+ }
+ }
}
$(document).delegate('#around-page', 'pageshow', show_map );
@@ -561,58 +570,6 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, {
heightFix('#report-a-problem-sidebar', '.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(),
- $map_box = $('#map_box'), bo = $map_box.offset();
- // e.xy is relative to top left of map, which might not be top left of page
- e.xy.x += bo.left;
- e.xy.y += bo.top;
- 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()
- );
- var p = fixmystreet.map.getViewPortPxFromLonLat(lonlat);
- p.x -= ( o.left + w ) / 2;
- lonlat = fixmystreet.map.getLonLatFromViewPortPx(p);
- fixmystreet.map.panTo(lonlat);
- }
- }
-
- $('#sub_map_links').hide();
- var $map_box = $('#map_box');
- $map_box.append(
- '<p id="mob_sub_map_links">' +
- '<a href="#" id="try_again">Try again</a>' +
- '<a href="#ok" id="mob_ok">OK</a>' +
- '</p>'
- );
- // .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?').prepend('<a href="index.html">home</a>');
-
- $('#try_again').on('click', function(){
- 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();
- $('#sub_map_links').show();
- $('#mob_sub_map_links').remove();
- });
- $('#mob_ok').on('click', function(){
- localStorage.latitude = $('#fixmystreet\\.latitude').val();
- localStorage.longitude = $('#fixmystreet\\.longitude').val();
- $.mobile.changePage('submit-problem.html')
- });
fixmystreet.page = 'new';
location.hash = 'report';
diff --git a/www/js/mobile.js b/www/js/mobile.js
index 98d3f2b..db5d554 100644
--- a/www/js/mobile.js
+++ b/www/js/mobile.js
@@ -594,7 +594,35 @@ function display_saved_report() {
}
}
+function complete_report() {
+ var reports = localStorage.getObject('reports');
+ var r = reports[localStorage.currentReport];
+
+ if ( r.lat && r.lon ) {
+ show_around( r.lat, r.lon );
+ } else {
+ getPosition();
+ }
+}
+
function submit_problem_show() {
+ var reports, r;
+
+ if ( localStorage.currentReport ) {
+ reports = localStorage.getObject('reports');
+ r = reports[localStorage.currentReport];
+
+ $('#form_title').val(r.title);
+ $('#form_detail').val(r.detail);
+ if ( r.may_show_name == 0 ) {
+ $('#form_may_show_name').attr('checked', 'off');
+ }
+ //category: $('#form_category').val();
+ $('#form_phone').val(r.phone);
+ $('#pc').val(r.pc);
+
+ }
+
$('#mapForm').submit(postReport);
$('#mapForm :input[type=submit]').on('click', function() { submit_clicked = $(this); });
$('#side-form, #site-logo').show();
@@ -647,6 +675,7 @@ function decide_front_page() {
}
localStorage.offline = 0;
+ delete localStorage.currentReport;
if ( navigator.network.connection.type == Connection.NONE ||
navigator.network.connection.type == Connection.UNKNOWN ) {
@@ -673,3 +702,4 @@ $(document).delegate('#no-connection-page', 'pageshow', check_for_gps);
$(document).delegate('.saved-report', 'click', open_saved_report_page);
$(document).delegate('#mark-here', 'click', mark_here);
$(document).delegate('#create_report', 'click', create_offline);
+$(document).delegate('#complete_report', 'click', complete_report);