From fe8927a42caa8f74e13f636ed530ef590668f01c Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Mon, 4 Jan 2010 09:52:35 +0000 Subject: Added errorCallback() to geoCurrentPosition() i.e., if user doesn't grant permission, removes the Geo processing and (if any) existing geo location data from notice form. --- js/util.js | 79 ++++++++++++++++++++++++++++++++++++-------------------------- 1 file changed, 46 insertions(+), 33 deletions(-) (limited to 'js') diff --git a/js/util.js b/js/util.js index f7c54e469..c1cc08a71 100644 --- a/js/util.js +++ b/js/util.js @@ -493,44 +493,57 @@ var SN = { // StatusNet return false; }); - navigator.geolocation.getCurrentPosition(function(position) { - $('#'+SN.C.S.NoticeLat).val(position.coords.latitude); - $('#'+SN.C.S.NoticeLon).val(position.coords.longitude); - - var data = { - 'lat': position.coords.latitude, - 'lon': position.coords.longitude, - 'token': $('#token').val() - }; - - $.getJSON(geocodeURL, data, function(location) { - NLN.replaceWith(''); - NLN = $('#'+SN.C.S.NoticeLocationName); - - if (typeof(location.location_ns) != 'undefined') { - $('#'+SN.C.S.NoticeLocationNs).val(location.location_ns); - } + navigator.geolocation.getCurrentPosition( + function(position) { + $('#'+SN.C.S.NoticeLat).val(position.coords.latitude); + $('#'+SN.C.S.NoticeLon).val(position.coords.longitude); + + var data = { + 'lat': position.coords.latitude, + 'lon': position.coords.longitude, + 'token': $('#token').val() + }; + + $.getJSON(geocodeURL, data, function(location) { + NLN.replaceWith(''); + NLN = $('#'+SN.C.S.NoticeLocationName); + + if (typeof(location.location_ns) != 'undefined') { + $('#'+SN.C.S.NoticeLocationNs).val(location.location_ns); + } - if (typeof(location.location_id) != 'undefined') { - $('#'+SN.C.S.NoticeLocationId).val(location.location_id); - } + if (typeof(location.location_id) != 'undefined') { + $('#'+SN.C.S.NoticeLocationId).val(location.location_id); + } - if (typeof(location.name) == 'undefined') { - NLN_text = position.coords.latitude + ';' + position.coords.longitude; - } - else { - NLN_text = location.name; - } + if (typeof(location.name) == 'undefined') { + NLN_text = position.coords.latitude + ';' + position.coords.longitude; + } + else { + NLN_text = location.name; + } - NLN.attr('href', location.url); - NLN.text(NLN_text); - NLN.click(function() { - window.open(location.url); + NLN.attr('href', location.url); + NLN.text(NLN_text); + NLN.click(function() { + window.open(location.url); - return false; + return false; + }); }); - }); - }); + }, + + function(error) { + if (error.PERMISSION_DENIED == 1) { + $('label[for='+SN.C.S.NoticeDataGeo+']').removeClass('checked'); + NDGS.hide(); + $('#'+SN.C.S.NoticeLat).val(''); + $('#'+SN.C.S.NoticeLon).val(''); + $('#'+SN.C.S.NoticeLocationNs).val(''); + $('#'+SN.C.S.NoticeLocationId).val(''); + } + } + ); } else { $('label[for='+SN.C.S.NoticeDataGeo+']').removeClass('checked'); -- cgit v1.2.3-54-g00ecf