diff options
| -rw-r--r-- | chimere/static/bootstrap/bootstrap.min.css (renamed from chimere_example_project/chimere_example_static/bootstrap/bootstrap.min.css) | 0 | ||||
| -rw-r--r-- | chimere/static/bootstrap/bootstrap.min.js (renamed from chimere_example_project/chimere_example_static/bootstrap/bootstrap.min.js) | 0 | ||||
| -rw-r--r-- | chimere/static/chimere/js/jquery.chimere.js | 261 | ||||
| -rw-r--r-- | chimere/static/font-awesome/LICENSE (renamed from chimere_example_project/chimere_example_static/font-awesome/LICENSE) | 0 | ||||
| -rw-r--r-- | chimere/static/font-awesome/css/font-awesome.css (renamed from chimere_example_project/chimere_example_static/font-awesome/css/font-awesome.css) | 0 | ||||
| -rw-r--r-- | chimere/static/font-awesome/css/font-awesome.min.css (renamed from chimere_example_project/chimere_example_static/font-awesome/css/font-awesome.min.css) | 0 | ||||
| -rw-r--r-- | chimere/static/font-awesome/fonts/FontAwesome.otf (renamed from chimere_example_project/chimere_example_static/font-awesome/fonts/FontAwesome.otf) | bin | 93888 -> 93888 bytes | |||
| -rw-r--r-- | chimere/static/font-awesome/fonts/fontawesome-webfont.eot (renamed from chimere_example_project/chimere_example_static/font-awesome/fonts/fontawesome-webfont.eot) | bin | 60767 -> 60767 bytes | |||
| -rw-r--r-- | chimere/static/font-awesome/fonts/fontawesome-webfont.svg (renamed from chimere_example_project/chimere_example_static/font-awesome/fonts/fontawesome-webfont.svg) | 0 | ||||
| -rw-r--r-- | chimere/static/font-awesome/fonts/fontawesome-webfont.ttf (renamed from chimere_example_project/chimere_example_static/font-awesome/fonts/fontawesome-webfont.ttf) | bin | 122092 -> 122092 bytes | |||
| -rw-r--r-- | chimere/static/font-awesome/fonts/fontawesome-webfont.woff (renamed from chimere_example_project/chimere_example_static/font-awesome/fonts/fontawesome-webfont.woff) | bin | 71508 -> 71508 bytes | |||
| -rw-r--r-- | chimere/static/font-awesome/fonts/fontawesome-webfont.woff2 (renamed from chimere_example_project/chimere_example_static/font-awesome/fonts/fontawesome-webfont.woff2) | bin | 56780 -> 56780 bytes | |||
| -rw-r--r-- | chimere/templates/chimere/blocks/map.html | 2 | ||||
| -rw-r--r-- | chimere/templates/chimere/main_map.html | 6 |
14 files changed, 91 insertions, 178 deletions
diff --git a/chimere_example_project/chimere_example_static/bootstrap/bootstrap.min.css b/chimere/static/bootstrap/bootstrap.min.css index a553c4f..a553c4f 100644 --- a/chimere_example_project/chimere_example_static/bootstrap/bootstrap.min.css +++ b/chimere/static/bootstrap/bootstrap.min.css diff --git a/chimere_example_project/chimere_example_static/bootstrap/bootstrap.min.js b/chimere/static/bootstrap/bootstrap.min.js index 1765631..1765631 100644 --- a/chimere_example_project/chimere_example_static/bootstrap/bootstrap.min.js +++ b/chimere/static/bootstrap/bootstrap.min.js diff --git a/chimere/static/chimere/js/jquery.chimere.js b/chimere/static/chimere/js/jquery.chimere.js index df5dea5..a94b74e 100644 --- a/chimere/static/chimere/js/jquery.chimere.js +++ b/chimere/static/chimere/js/jquery.chimere.js @@ -143,13 +143,6 @@ function transform(obj) { return obj.transform(EPSG_DISPLAY_PROJECTION, EPSG_PROJECTION); } -var invisibleStyleIcon = new ol.style.Style({ - image: new ol.style.Icon({ - src : MEDIA_URL+'chimere/img/marker-cluster.png', //still need something even if it's invisible - opacity : 0 - }) - }); - /* * Little hasattr helper */ @@ -203,6 +196,15 @@ var register_hovering = function(exp, handlers_to_deactivate){ } +var unregister_hovering = function(exp, handlers_to_deactivate){ + $(exp).data('hovering', false); + if (handlers_to_deactivate){ + for (idx in handlers_to_deactivate){ + handlers_to_deactivate[idx].setActive(true); + } + } +} + // jQuery pseudo-expression :hovering jQuery.expr[":"].hovering = function(elem) { return $(elem).data('hovering') ? true : false; @@ -244,7 +246,7 @@ jQuery.expr[":"].hovering = function(elem) { // Provide this function to make a custom click event on the marker on_marker_click: null, // Provide this function to override the feature detail display - display_feature_detail_fx: null, + display_feature_detail_callback: null, // Provide this function for overriding the getSubcategories default get_subcategories_fx: null, hide_popup_fx: null, @@ -302,15 +304,6 @@ jQuery.expr[":"].hovering = function(elem) { */ init: function ( options ) { /* Manage parameters */ - /* OL3-deprecated-cluster - // not staticaly in default because of STATIC_URL init - if (defaults.cluster_icon == null && typeof STATIC_URL != 'undefined'){ - defaults.cluster_icon = new OpenLayers.Icon( - STATIC_URL+'chimere/img/marker-cluster.png', - new OpenLayers.Size(36, 39), - new OpenLayers.Pixel(-(36/2), -(39/2))); - } - */ /* OL3-deprecated-routing if (defaults.icon_start == null && typeof STATIC_URL != 'undefined'){ defaults.icon_start = new OpenLayers.Icon( @@ -577,7 +570,14 @@ jQuery.expr[":"].hovering = function(elem) { settings.current_feature = feature; if (!settings.edition){ if ($('.popover-content').is(":hovering")){ - return; + // the popup is no more visible bad info + if ($('.popover:visible').length == 0){ + unregister_hovering('.popover-content', + [settings.MouseWheelZoom, + settings.DragPan]); + } else { + return; + } } if (feature) { $(settings.popup_item).popover('destroy'); @@ -706,93 +706,14 @@ jQuery.expr[":"].hovering = function(elem) { if (settings.enable_clustering){ + settings.invisibleStyleIcon = new ol.style.Style({ + image: new ol.style.Icon({ + src : MEDIA_URL+'chimere/img/marker-cluster.png', //still need something even if it's invisible + opacity : 0 + }) + }); methods.enableClustering(); } - /* OL3-deprecated-cluster - if (settings.enable_clustering){ - var style = new OpenLayers.Style({ - graphicTitle: "${name}", - externalGraphic: "${icon}", - graphicWidth: "${width}", - graphicHeight: "${height}", - graphicXOffset: "${offsetx}", - graphicYOffset: "${offsety}", - graphicOpacity: 1, - label: "${label}", - labelYOffset: "2", - fontSize:'1.3em' - }, { - context: { - name: function(feature) { - if(feature.cluster) { - feature.attributes.width = settings.cluster_icon.size.w; - feature.attributes.height = settings.cluster_icon.size.h; - feature.attributes.offsetx = settings.cluster_icon.offset.x; - feature.attributes.offsety = settings.cluster_icon.offset.y; - } else{ - var marker = feature.attributes.marker - feature.attributes.width = marker.icon.size.w; - feature.attributes.height = marker.icon.size.h; - feature.attributes.offsetx = settings.icon_offset.x; - feature.attributes.offsety = settings.icon_offset.y; - } - return feature.attributes.name; - }, - label: function(feature) { - // clustered features count or blank if feature is not a cluster - return feature.cluster ? feature.cluster.length : ""; - }, - icon: function(feature) { - if (feature.cluster){ - return settings.cluster_icon.url; - } else { - return STATIC_URL + 'chimere/img/empty.png'; - } - }, - width: function(feature) { return feature.attributes.width; }, - height: function(feature) { return feature.attributes.height; }, - offsetx: function(feature) { return feature.attributes.offsetx; }, - offsety: function(feature) { return feature.attributes.offsety; } - }}); - - - // Cluster layer - settings.clustering = new OpenLayers.Strategy.Cluster({ - distance: 10, - threshold: 2}); - settings.layerCluster = new OpenLayers.Layer.Vector("Cluster layer", - {styleMap: new OpenLayers.StyleMap({'default': style}), - strategies: [settings.clustering]}); - settings.map.addLayer(settings.layerCluster); - - var highlightCtrl = new OpenLayers.Control.SelectFeature( - settings.layerCluster, { - hover: true, - highlightOnly: true, - eventListeners: { - featurehighlighted: function(e) { - if(e.feature.attributes.marker) - e.feature.attributes.marker.events.triggerEvent('mouseover'); - }, - featureunhighlighted: function(e) { - if(e.feature.attributes.marker) - e.feature.attributes.marker.events.triggerEvent('mouseout'); - } - } - }); - - var selectCtrl = new OpenLayers.Control.SelectFeature( - settings.layerCluster,{ - onSelect: methods.zoomOnCluster - }); - - settings.map.addControl(highlightCtrl); - settings.map.addControl(selectCtrl); - - highlightCtrl.activate(); - selectCtrl.activate(); - } - */ /* Markers layer */ settings.icons = []; @@ -871,6 +792,8 @@ jQuery.expr[":"].hovering = function(elem) { return; + + /* if (settings.routing_start_lon && settings.routing_start_lat){ /// OL3-TODO settings.current_position = new OpenLayers.LonLat( @@ -914,6 +837,7 @@ jQuery.expr[":"].hovering = function(elem) { //methods.update_permalink_activation(); methods.preload_images(); + */ }, // end of init register_reload_on_move: function(){ var reload_on_move = function(evnt){ @@ -1001,7 +925,7 @@ jQuery.expr[":"].hovering = function(elem) { if (!settings._remindOldStyle[feat.getId()]){ settings._remindOldStyle[feat.getId()] = feat.getStyle(); } - feat.setStyle(invisibleStyleIcon); + feat.setStyle(settings.invisibleStyleIcon); settings._remindUpdated[feat.getId()] = 1; } } @@ -1165,6 +1089,11 @@ jQuery.expr[":"].hovering = function(elem) { 'html': true, 'content': feature.get('name') }); + $(settings.popup_item).on('hidden.bs.popover', function () { + unregister_hovering('.popover-content', + [settings.MouseWheelZoom, + settings.DragPan]); + }) $(settings.popup_item).popover('show'); methods.display_feature_detail(feature.get('key'), feature.get('name')); }, @@ -1218,6 +1147,7 @@ jQuery.expr[":"].hovering = function(elem) { activateRouteEdit: function(){ // TODO OL3 return; + /* settings.edition_type_is_route = true; methods.cleanMarker(); // settings.map.events.unregister('click', settings.map, @@ -1231,6 +1161,7 @@ jQuery.expr[":"].hovering = function(elem) { settings.layerVectors.events.register('featureadded', settings.layerVectors, helpers.featureRouteCreated); } + */ }, activateMarkerEdit: function(){ @@ -1912,6 +1843,7 @@ jQuery.expr[":"].hovering = function(elem) { })); settings.dbFeatures.push(feat); return; + /* var polyline = route.geometry; var point_array = new Array(); for (i=0; i<polyline.coordinates.length; i++){ @@ -1935,6 +1867,7 @@ jQuery.expr[":"].hovering = function(elem) { map.zoomToExtent(dataExtent, closest=true); methods.loadCategories(); } + */ }, /* * Put a multiline on the map @@ -1964,6 +1897,7 @@ jQuery.expr[":"].hovering = function(elem) { })); settings.dbFeatures.push(feat); return; + /* var gformat = new OpenLayers.Format.GeoJSON(); var feats = gformat.read(feature); var style = OpenLayers.Util.extend({}, @@ -1975,6 +1909,7 @@ jQuery.expr[":"].hovering = function(elem) { EPSG_DISPLAY_PROJECTION, settings.map.getProjectionObject()); settings.layerVectors.addFeatures(feats); + */ }, routingInputChange: function(nominatim_id){ $('#map_menu_clear').show(); @@ -2436,52 +2371,53 @@ jQuery.expr[":"].hovering = function(elem) { data: params, dataType: "html", success: function (data) { - if ( settings.display_feature_detail_fx ) { - settings.display_feature_detail_fx(data, settings); + if (!settings.popupContentFull) { + $('#detail').html(data).fadeIn(); + if (settings.display_feature_detail_callback){ + settings.display_feature_detail_callback(settings); + } } else { - if (!settings.popupContentFull) { - $('#detail').html(data).fadeIn(); + // first display to get the size of the content + // get default popover size + var w = $('.popover').width(); + var h = $('.popover').height(); + $(".popover").addClass('inside-popup'); + $(".popover-title").html(name); + $(".popover-title").show(); + $(".popover-content").html(data); + + if (settings.display_feature_detail_callback){ + settings.display_feature_detail_callback(settings); } - else { - // first display to get the size of the content - // get default popover size - var w = $('.popover').width(); - var h = $('.popover').height(); - $(".popover").addClass('inside-popup'); - $(".popover-title").html(name); - $(".popover-title").show(); - $(".popover-content").html(data); - var offset = settings.popup.getOffset(); - offset[0] = offset[0] - $('.popover').width()/2 + w/2; - offset[1] = offset[1] - $('.popover').height() + h; - settings.popup.setOffset(offset); - settings.popup.dispatchEvent('change:offset'); - // pan toward the popup + margin to display pop height - var center_position = settings.popup.getPosition(); - var doc_height = $(document).height(); - if (doc_height / 2 < - offset[1]*2){ - var pixel = settings.map.getPixelFromCoordinate(center_position); - pixel[1] += offset[1] + doc_height / 4; - center_position = settings.map.getCoordinateFromPixel(pixel); - } - var pan = ol.animation.pan( - {duration: settings.animation_duration, - source: settings.view.getCenter()}) - settings.map.beforeRender(pan); - settings.view.setCenter(center_position); - - // waiting for the pan to finish - setTimeout(function(){ - // to trigger autopan - settings.popup.dispatchEvent('change:position'); - $(".popover").removeClass('transparent'); - register_hovering('.popover-content', - [settings.MouseWheelZoom, - settings.DragPan]); - }, settings.animation_duration + 10 - ); + var offset = settings.popup.getOffset(); + offset[0] = offset[0] - $('.popover').width()/2 + w/2; + offset[1] = offset[1] - $('.popover').height() + h; + settings.popup.setOffset(offset); + settings.popup.dispatchEvent('change:offset'); + // pan toward the popup + margin to display pop height + var center_position = settings.popup.getPosition(); + var doc_height = $(document).height(); + if (doc_height / 2 < - offset[1]*2){ + var pixel = settings.map.getPixelFromCoordinate(center_position); + pixel[1] += offset[1] + doc_height / 4; + center_position = settings.map.getCoordinateFromPixel(pixel); } + var pan = ol.animation.pan( + {duration: settings.animation_duration, + source: settings.view.getCenter()}) + settings.map.beforeRender(pan); + settings.view.setCenter(center_position); + // waiting for the pan to finish + setTimeout(function(){ + // to trigger autopan + settings.popup.dispatchEvent('change:position'); + $(".popover").removeClass('transparent'); + register_hovering('.popover-content', + [settings.MouseWheelZoom, + settings.DragPan]); + }, settings.animation_duration + 10 + ); } } }); @@ -2585,22 +2521,23 @@ jQuery.expr[":"].hovering = function(elem) { var extent; return; //////// OL3-deprecated + /* if (OpenLayers && current_extent && current_extent.length == 4){ extent = new OpenLayers.Bounds( current_extent[0], current_extent[1], current_extent[2], current_extent[3]); } - /* - else if (OpenLayers && default_area && default_area.length == 4){ - extent = new OpenLayers.Bounds(default_area[0], default_area[1], - default_area[2], default_area[3]); - }*/ + //else if (OpenLayers && default_area && default_area.length == 4){ + // extent = new OpenLayers.Bounds(default_area[0], default_area[1], + // default_area[2], default_area[3]); + //} else{ return; } extent.transform(EPSG_DISPLAY_PROJECTION, EPSG_PROJECTION); settings.map.zoomToExtent(extent, true); return true; + */ }, zoomToMarkerExtent: function(){ settings.map.zoomToExtent( @@ -2761,27 +2698,7 @@ jQuery.expr[":"].hovering = function(elem) { }*/ }, hidePopup: function (evt) { - $('#'+settings.marker_hover_id).hide(); - if (settings.hide_popup_fx) { - settings.hide_popup_fx(evt, settings) - } - else { // Default behaviour - /* - if (settings.current_popup) - { - settings.current_feature = null; - if (!settings.simple){ - $('#detail').fadeOut(); - } - if (settings.current_popup.visible()){ - settings.current_popup.hide(); - if(evt) - settings.map.events.triggerEvent('click', evt); - methods.update_permalink_activation(); - return true; - } - }*/ - } + $(settings.popup_item).popover('destroy'); methods.update_permalink_activation(); return false; }, diff --git a/chimere_example_project/chimere_example_static/font-awesome/LICENSE b/chimere/static/font-awesome/LICENSE index 2e5e82e..2e5e82e 100644 --- a/chimere_example_project/chimere_example_static/font-awesome/LICENSE +++ b/chimere/static/font-awesome/LICENSE diff --git a/chimere_example_project/chimere_example_static/font-awesome/css/font-awesome.css b/chimere/static/font-awesome/css/font-awesome.css index 2dcdc22..2dcdc22 100644 --- a/chimere_example_project/chimere_example_static/font-awesome/css/font-awesome.css +++ b/chimere/static/font-awesome/css/font-awesome.css diff --git a/chimere_example_project/chimere_example_static/font-awesome/css/font-awesome.min.css b/chimere/static/font-awesome/css/font-awesome.min.css index 24fcc04..24fcc04 100644 --- a/chimere_example_project/chimere_example_static/font-awesome/css/font-awesome.min.css +++ b/chimere/static/font-awesome/css/font-awesome.min.css diff --git a/chimere_example_project/chimere_example_static/font-awesome/fonts/FontAwesome.otf b/chimere/static/font-awesome/fonts/FontAwesome.otf Binary files differindex f7936cc..f7936cc 100644 --- a/chimere_example_project/chimere_example_static/font-awesome/fonts/FontAwesome.otf +++ b/chimere/static/font-awesome/fonts/FontAwesome.otf diff --git a/chimere_example_project/chimere_example_static/font-awesome/fonts/fontawesome-webfont.eot b/chimere/static/font-awesome/fonts/fontawesome-webfont.eot Binary files differindex 33b2bb8..33b2bb8 100644 --- a/chimere_example_project/chimere_example_static/font-awesome/fonts/fontawesome-webfont.eot +++ b/chimere/static/font-awesome/fonts/fontawesome-webfont.eot diff --git a/chimere_example_project/chimere_example_static/font-awesome/fonts/fontawesome-webfont.svg b/chimere/static/font-awesome/fonts/fontawesome-webfont.svg index 1ee89d4..1ee89d4 100644 --- a/chimere_example_project/chimere_example_static/font-awesome/fonts/fontawesome-webfont.svg +++ b/chimere/static/font-awesome/fonts/fontawesome-webfont.svg diff --git a/chimere_example_project/chimere_example_static/font-awesome/fonts/fontawesome-webfont.ttf b/chimere/static/font-awesome/fonts/fontawesome-webfont.ttf Binary files differindex ed9372f..ed9372f 100644 --- a/chimere_example_project/chimere_example_static/font-awesome/fonts/fontawesome-webfont.ttf +++ b/chimere/static/font-awesome/fonts/fontawesome-webfont.ttf diff --git a/chimere_example_project/chimere_example_static/font-awesome/fonts/fontawesome-webfont.woff b/chimere/static/font-awesome/fonts/fontawesome-webfont.woff Binary files differindex 8b280b9..8b280b9 100644 --- a/chimere_example_project/chimere_example_static/font-awesome/fonts/fontawesome-webfont.woff +++ b/chimere/static/font-awesome/fonts/fontawesome-webfont.woff diff --git a/chimere_example_project/chimere_example_static/font-awesome/fonts/fontawesome-webfont.woff2 b/chimere/static/font-awesome/fonts/fontawesome-webfont.woff2 Binary files differindex 3311d58..3311d58 100644 --- a/chimere_example_project/chimere_example_static/font-awesome/fonts/fontawesome-webfont.woff2 +++ b/chimere/static/font-awesome/fonts/fontawesome-webfont.woff2 diff --git a/chimere/templates/chimere/blocks/map.html b/chimere/templates/chimere/blocks/map.html index 10f1c97..4ee9613 100644 --- a/chimere/templates/chimere/blocks/map.html +++ b/chimere/templates/chimere/blocks/map.html @@ -13,6 +13,8 @@ </div> <div id='{{map_id}}'></div> +<div id='popup'></div> +<div id='layerSwitcher'></div> <script type="text/javascript"> $("#{{map_id}}").show(); </script> diff --git a/chimere/templates/chimere/main_map.html b/chimere/templates/chimere/main_map.html index fd3f0b8..cb83642 100644 --- a/chimere/templates/chimere/main_map.html +++ b/chimere/templates/chimere/main_map.html @@ -27,12 +27,6 @@ {% block search_box %} {% endblock %} {% block content %} {{block.super}} - <div id='popup'></div> - <div id='layerSwitcher'></div> - <div id='main-map'></div> -<script type="text/javascript"> - $("#main-map").show(); -</script> {% map_menu %} {% map 'main-map' %} <script type='text/javascript'> |
