diff options
author | Sarven Capadisli <csarven@status.net> | 2010-01-04 09:52:35 +0000 |
---|---|---|
committer | Sarven Capadisli <csarven@status.net> | 2010-01-04 09:52:35 +0000 |
commit | fe8927a42caa8f74e13f636ed530ef590668f01c (patch) | |
tree | d155a2d669f4538b55babeca8fa98242c370db6e /js | |
parent | d1998adb13e78728ea9479f3efab50e55d53b32c (diff) |
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.
Diffstat (limited to 'js')
-rw-r--r-- | js/util.js | 79 |
1 files changed, 46 insertions, 33 deletions
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('<a id="notice_data-location_name"/>'); - 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('<a id="notice_data-location_name"/>'); + 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'); |