diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-11-14 16:11:15 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-11-14 16:11:15 +0100 |
commit | e70ee5519dadbc6cd6eec3ebbf3414251a163d0a (patch) | |
tree | 7be44c99cc0abc0c51c84c79e4091e142875a3d8 | |
parent | abcc53d4e630878a9f46d412916b2a056deb0e3c (diff) | |
download | Chimère-e70ee5519dadbc6cd6eec3ebbf3414251a163d0a.tar.bz2 Chimère-e70ee5519dadbc6cd6eec3ebbf3414251a163d0a.zip |
Fix update share link management
-rw-r--r-- | chimere/static/chimere/js/base.js | 72 | ||||
-rw-r--r-- | chimere/templates/chimere/blocks/map.html | 5 | ||||
-rw-r--r-- | chimere/templates/chimere/blocks/share_bar.html | 27 | ||||
-rw-r--r-- | chimere/urls.py | 2 |
4 files changed, 44 insertions, 62 deletions
diff --git a/chimere/static/chimere/js/base.js b/chimere/static/chimere/js/base.js index facaf23..00acadd 100644 --- a/chimere/static/chimere/js/base.js +++ b/chimere/static/chimere/js/base.js @@ -107,43 +107,45 @@ function zoomToCurrentExtent(map){ return true; } -/* interface */ -function share_link_update(){ - $('.share_link').click(function(){ - if (this.share_initialized){ - return false; - } - this.share_initialized = true; - var href = $(this).attr('href'); - var url = get_share_url; - var classes = $(this).attr('class').split(' '); - prefix = 'share_id_'; - var share_id; - for (idx=0;idx<classes.length;idx++){ - if(classes[idx].substring(0, prefix.length) == prefix){ - var share_id = classes[idx].substring(prefix.length); - share_id = share_id.split('_')[0]; - } - } - $('#main-map').chimere('update_permalink'); - var params = $('#permalink').attr('href').split('#'); - url += share_id + params[params.length-1]; - $.ajax({url: url, - dataType: "html", - success: function (url) { - window.location.href = url; - return true; - }, - error: function(){ - return false; - } - }); - return false; - }); -} - $("a").on("click", function(event){ if ($(this).is("[disabled]")) { event.preventDefault(); } }); + +var update_permalink = false; + +function share_link_update(){ + if (update_permalink){ + $('.share_link').unbind('click').click(function(){ + update_permalink(); + var href = $(this).attr('href'); + var url = get_share_url; + var classes = $(this).attr('class').split(' '); + prefix = 'share_id_'; + var share_id; + for (idx=0;idx<classes.length;idx++){ + if(classes[idx].substring(0, prefix.length) == prefix){ + var share_id = classes[idx].substring(prefix.length); + } + } + var params = $('#permalink').attr('href').split('#'); + url += share_id + "/" + params[params.length-1] + "/"; + var initialized = false; + $.ajax({url: url, + dataType: "html", + success: function (url) { + if(!initialized){ + initialized = true; + window.open(url); + } + return false; + }, + error: function(){ + return false; + } + }); + return false; + }); + } +} diff --git a/chimere/templates/chimere/blocks/map.html b/chimere/templates/chimere/blocks/map.html index 3b75646..7c5370f 100644 --- a/chimere/templates/chimere/blocks/map.html +++ b/chimere/templates/chimere/blocks/map.html @@ -83,6 +83,11 @@ $("#{{map_id}}").show(); if (!permalink) $('#main-map').chimere('zoom', {'area':{{zoom}} }); {% endif %} + function update_permalink(){ + alert("hop"); + $('#main-map').chimere('update_permalink'); + }; + {{extra_map_def|safe}} // init layer selection diff --git a/chimere/templates/chimere/blocks/share_bar.html b/chimere/templates/chimere/blocks/share_bar.html index 1c02ce3..a680aa8 100644 --- a/chimere/templates/chimere/blocks/share_bar.html +++ b/chimere/templates/chimere/blocks/share_bar.html @@ -9,32 +9,7 @@ {% endfor %}</ul>{% endif %} <script language='text/javascript'> $(function(){ - $('.share_link').click(function(){ - $('#main-map').chimere('update_permalink'); - var href = $(this).attr('href'); - var url = '{% url 'chimere:get-share-url' %}'; - var classes = $(this).attr('class').split(' '); - prefix = 'share_id_'; - var share_id; - for (idx=0;idx<classes.length;idx++){ - if(classes[idx].substring(0, prefix.length) == prefix){ - var share_id = classes[idx].substring(prefix.length); - } - } - var params = $('#permalink').attr('href').split('#'); - url += share_id + "/" + params[params.length-1] + "/"; - $.ajax({url: url, - dataType: "html", - success: function (url) { - window.open(url); - return false; - }, - error: function(){ - return false; - } - }); - return false; - }); + share_link_update(); }); </script> {% endif %} diff --git a/chimere/urls.py b/chimere/urls.py index 7004f75..73faef1 100644 --- a/chimere/urls.py +++ b/chimere/urls.py @@ -136,7 +136,7 @@ urlpatterns += patterns( url(r'^(?P<area_name>[a-zA-Z0-9_-]+/)?getCategory/(?P<category_id>\d+)/?$', 'getCategory', name="get_category"), url(r'^(?P<area_name>[a-zA-Z0-9_-]*/)?get-share-url/(?:(?P<network>\w+)/' - r'(?:(?P<attrs>[a-zA-Z0-9_;.:-]+)/)?)?$', + r'(?:(?P<attrs>[a-zA-Z0-9_;.:-]+))?)?/?$', 'getShareUrl', name="get-share-url"), url(r'^(?P<area_name>[a-zA-Z0-9_-]*/)?ty/(?P<tiny_urn>\w+)$', 'redirectFromTinyURN', name="tiny"), |