summaryrefslogtreecommitdiff
path: root/js/util.js
diff options
context:
space:
mode:
authorSarven Capadisli <csarven@status.net>2010-01-04 09:52:35 +0000
committerSarven Capadisli <csarven@status.net>2010-01-04 09:52:35 +0000
commitfe8927a42caa8f74e13f636ed530ef590668f01c (patch)
treed155a2d669f4538b55babeca8fa98242c370db6e /js/util.js
parentd1998adb13e78728ea9479f3efab50e55d53b32c (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/util.js')
-rw-r--r--js/util.js79
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');