Move some javascript functions out of global scope
authorTom Hughes <tom@compton.nu>
Tue, 24 Feb 2015 00:19:08 +0000 (00:19 +0000)
committerTom Hughes <tom@compton.nu>
Tue, 24 Feb 2015 00:19:08 +0000 (00:19 +0000)
app/assets/javascripts/application.js
app/assets/javascripts/diary_entry.js
app/assets/javascripts/index.js
app/assets/javascripts/index/browse.js
app/assets/javascripts/index/notes.js
app/assets/javascripts/index/search.js
app/assets/javascripts/leaflet.map.js
app/assets/javascripts/leaflet.share.js
app/assets/javascripts/user.js
config/jshint.yml

index 4e202ad..132b69f 100644 (file)
 
 var querystring = require('querystring-component');
 
-function remoteEditHandler(bbox, object) {
-  var loaded = false,
-    url = document.location.protocol === "https:" ?
-            "https://127.0.0.1:8112/load_and_zoom?" :
-            "http://127.0.0.1:8111/load_and_zoom?",
-    query = {
-        left: bbox.getWest() - 0.0001,
-        top: bbox.getNorth() + 0.0001,
-        right: bbox.getEast() + 0.0001,
-        bottom: bbox.getSouth() - 0.0001
-    };
-
-  if (object) query.select = object.type + object.id;
-
-  var iframe = $('<iframe>')
-    .hide()
-    .appendTo('body')
-    .attr("src", url + querystring.stringify(query))
-    .on('load', function() {
-      $(this).remove();
-      loaded = true;
-    });
-
-  setTimeout(function () {
-    if (!loaded) {
-      alert(I18n.t('site.index.remote_failed'));
-      iframe.remove();
-    }
-  }, 1000);
-
-  return false;
-}
-
 /*
  * Called as the user scrolls/zooms around to maniplate hrefs of the
  * view tab and various other links
@@ -100,19 +67,6 @@ function updateLinks(loc, zoom, layers, object) {
       I18n.t('javascripts.site.edit_disabled_tooltip') : '');
 }
 
-function escapeHTML(string) {
-  var htmlEscapes = {
-    '&': '&amp;',
-    '<': '&lt;',
-    '>': '&gt;',
-    '"': '&quot;',
-    "'": '&#x27;'
-  };
-  return string === null ? '' : (string + '').replace(/[&<>"']/g, function(match) {
-      return htmlEscapes[match];
-  });
-}
-
 function maximiseMap() {
   $("#content").addClass("maximised");
 }
index 5a19cb4..b513057 100644 (file)
@@ -9,7 +9,7 @@ $(document).ready(function () {
       map.removeLayer(marker);
     }
 
-    marker = L.marker(e.latlng, {icon: getUserIcon()}).addTo(map)
+    marker = L.marker(e.latlng, {icon: OSM.getUserIcon()}).addTo(map)
       .bindPopup(I18n.t('diary_entry.edit.marker_text'));
   }
 
@@ -34,7 +34,7 @@ $(document).ready(function () {
     map.setView(centre, params.zoom);
 
     if ($("#latitude").val() && $("#longitude").val()) {
-      marker = L.marker(centre, {icon: getUserIcon()}).addTo(map)
+      marker = L.marker(centre, {icon: OSM.getUserIcon()}).addTo(map)
         .bindPopup(I18n.t('diary_entry.edit.marker_text'));
     }
 
index 79c866b..9a05b62 100644 (file)
@@ -137,12 +137,12 @@ $(document).ready(function () {
     .addTo(map);
 
   if (OSM.STATUS !== 'api_offline' && OSM.STATUS !== 'database_offline') {
-    initializeNotes(map);
+    OSM.initializeNotes(map);
     if (params.layers.indexOf(map.noteLayer.options.code) >= 0) {
       map.addLayer(map.noteLayer);
     }
 
-    initializeBrowse(map);
+    OSM.initializeBrowse(map);
     if (params.layers.indexOf(map.dataLayer.options.code) >= 0) {
       map.addLayer(map.dataLayer);
     }
@@ -191,7 +191,7 @@ $(document).ready(function () {
     map.setView([params.lat, params.lon], params.zoom);
   }
 
-  var marker = L.marker([0, 0], {icon: getUserIcon()});
+  var marker = L.marker([0, 0], {icon: OSM.getUserIcon()});
 
   if (params.marker) {
     marker.setLatLng([params.mlat, params.mlon]).addTo(map);
@@ -207,6 +207,39 @@ $(document).ready(function () {
     marker.setLatLng(center).addTo(map);
   });
 
+  function remoteEditHandler(bbox, object) {
+    var loaded = false,
+        url = document.location.protocol === "https:" ?
+        "https://127.0.0.1:8112/load_and_zoom?" :
+        "http://127.0.0.1:8111/load_and_zoom?",
+        query = {
+          left: bbox.getWest() - 0.0001,
+          top: bbox.getNorth() + 0.0001,
+          right: bbox.getEast() + 0.0001,
+          bottom: bbox.getSouth() - 0.0001
+        };
+
+    if (object) query.select = object.type + object.id;
+
+    var iframe = $('<iframe>')
+        .hide()
+        .appendTo('body')
+        .attr("src", url + querystring.stringify(query))
+        .on('load', function() {
+          $(this).remove();
+          loaded = true;
+        });
+
+    setTimeout(function () {
+      if (!loaded) {
+        alert(I18n.t('site.index.remote_failed'));
+        iframe.remove();
+      }
+    }, 1000);
+
+    return false;
+  }
+
   $("a[data-editor=remote]").click(function(e) {
     var params = OSM.mapParams(this.search);
     remoteEditHandler(map.getBounds(), params.object);
index 5db23a9..28a8308 100644 (file)
@@ -1,4 +1,4 @@
-function initializeBrowse(map) {
+OSM.initializeBrowse = function (map) {
   var browseBounds;
   var selectedLayer;
   var dataLayer = map.dataLayer;
@@ -127,4 +127,4 @@ function initializeBrowse(map) {
     // Stash the currently drawn feature
     selectedLayer = layer;
   }
-}
+};
index 307b11e..d5ffbea 100644 (file)
@@ -1,4 +1,4 @@
-function initializeNotes(map) {
+OSM.initializeNotes = function (map) {
   var noteLayer = map.noteLayer,
       notes = {};
 
@@ -93,4 +93,4 @@ function initializeNotes(map) {
       noteLoader = null;
     }
   }
-}
+};
index a87c561..b829b58 100644 (file)
@@ -74,7 +74,7 @@ OSM.Search = function(map) {
     if (!marker) {
       var data = $(this).find("a.set_position").data();
 
-      marker = L.marker([data.lat, data.lon], {icon: getUserIcon()});
+      marker = L.marker([data.lat, data.lon], {icon: OSM.getUserIcon()});
 
       $(this).data("marker", marker);
     }
index d60f3b2..f433cd3 100644 (file)
@@ -275,7 +275,7 @@ L.extend(L.Icon.Default.prototype, {
   }
 });
 
-function getUserIcon(url) {
+OSM.getUserIcon = function (url) {
   return L.icon({
     iconUrl: url || OSM.MARKER_RED,
     iconSize: [25, 41],
@@ -284,4 +284,4 @@ function getUserIcon(url) {
     shadowUrl: OSM.MARKER_SHADOW,
     shadowSize: [41, 41]
   });
-}
+};
index d4c8295..44d02c0 100644 (file)
@@ -274,6 +274,19 @@ L.OSM.share = function (options) {
       update();
     }
 
+    function escapeHTML(string) {
+      var htmlEscapes = {
+        '&': '&amp;',
+        '<': '&lt;',
+        '>': '&gt;',
+        '"': '&quot;',
+        "'": '&#x27;'
+      };
+      return string === null ? '' : (string + '').replace(/[&<>"']/g, function(match) {
+        return htmlEscapes[match];
+      });
+    }
+
     function update() {
       var bounds = map.getBounds();
 
index fb4aa03..22c2ad8 100644 (file)
@@ -26,7 +26,7 @@ $(document).ready(function () {
   }
 
   if ($("#map").hasClass("set_location")) {
-    var marker = L.marker([0, 0], {icon: getUserIcon()});
+    var marker = L.marker([0, 0], {icon: OSM.getUserIcon()});
 
     if (OSM.home) {
       marker.setLatLng([OSM.home.lat, OSM.home.lon]);
@@ -51,7 +51,7 @@ $(document).ready(function () {
     $("[data-user]").each(function () {
       var user = $(this).data('user');
       if (user.lon && user.lat) {
-        L.marker([user.lat, user.lon], {icon: getUserIcon(user.icon)}).addTo(map)
+        L.marker([user.lat, user.lon], {icon: OSM.getUserIcon(user.icon)}).addTo(map)
           .bindPopup(user.description);
       }
     });
index 5ce7665..4021902 100644 (file)
@@ -19,12 +19,7 @@ options:
     L: true
     OSM: true
     Piwik: true
-    escapeHTML: false
-    getUserIcon: false
-    initializeBrowse: false
-    initializeNotes: false
     maximiseMap: false
     minimiseMap: false
     querystring: false
-    remoteEditHandler: false
     updateLinks: false