diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-06-23 19:56:52 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-06-23 19:56:52 +0200 |
commit | 2808bb76a4b7ed06aacff8f5cf45e215ac95f0cf (patch) | |
tree | 074b98606a06496929b75172495b1d019aaa9cdd | |
parent | 1d03951916abe35062d16336f6cf80c989004493 (diff) | |
parent | 76c03459c5fb7439a7158f4911556f85cb324d18 (diff) | |
download | Chimère-2808bb76a4b7ed06aacff8f5cf45e215ac95f0cf.tar.bz2 Chimère-2808bb76a4b7ed06aacff8f5cf45e215ac95f0cf.zip |
Merge branch 'v2.2'
Conflicts:
chimere/static/chimere/js/jquery.chimere.js
-rw-r--r-- | chimere/actions.py | 2 | ||||
-rw-r--r-- | chimere/forms.py | 2 | ||||
-rw-r--r-- | chimere/locale/fr/LC_MESSAGES/django.po | 3 | ||||
-rw-r--r-- | chimere/static/chimere/js/edit_area.js | 2 | ||||
-rw-r--r-- | chimere/static/chimere/js/edit_route_map.js | 2 | ||||
-rw-r--r-- | chimere/static/chimere/js/jquery.chimere.js | 229 | ||||
-rw-r--r-- | chimere/templates/chimere/blocks/footer.html | 2 | ||||
-rw-r--r-- | chimere/utils.py | 12 | ||||
-rw-r--r-- | chimere/widgets.py | 2 |
9 files changed, 235 insertions, 21 deletions
diff --git a/chimere/actions.py b/chimere/actions.py index ac2bbaf..aa13413 100644 --- a/chimere/actions.py +++ b/chimere/actions.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (C) 2008-2010 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> +# Copyright (C) 2008-2016 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as diff --git a/chimere/forms.py b/chimere/forms.py index 55bb57a..262ce76 100644 --- a/chimere/forms.py +++ b/chimere/forms.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (C) 2008-2014 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> +# Copyright (C) 2008-2016 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as diff --git a/chimere/locale/fr/LC_MESSAGES/django.po b/chimere/locale/fr/LC_MESSAGES/django.po index 0c5e884..75049e3 100644 --- a/chimere/locale/fr/LC_MESSAGES/django.po +++ b/chimere/locale/fr/LC_MESSAGES/django.po @@ -1,7 +1,6 @@ # Chimère -# Copyright (C) 2008-2015 +# Copyright (C) 2008-2016 Étienne Loks <etienne.loks@peacefrogs.net> # This file is distributed under the same license as the Chimère package. -# Étienne Loks <etienne.loks@peacefrogs.net>, 2008-2011. # msgid "" msgstr "" diff --git a/chimere/static/chimere/js/edit_area.js b/chimere/static/chimere/js/edit_area.js index 46cf900..993c043 100644 --- a/chimere/static/chimere/js/edit_area.js +++ b/chimere/static/chimere/js/edit_area.js @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2012 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> +/* Copyright (C) 2008-2016 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/chimere/static/chimere/js/edit_route_map.js b/chimere/static/chimere/js/edit_route_map.js index 3428e90..b177f71 100644 --- a/chimere/static/chimere/js/edit_route_map.js +++ b/chimere/static/chimere/js/edit_route_map.js @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2012 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> +/* Copyright (C) 2008-2016 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/chimere/static/chimere/js/jquery.chimere.js b/chimere/static/chimere/js/jquery.chimere.js index f7f11cb..92c7ee5 100644 --- a/chimere/static/chimere/js/jquery.chimere.js +++ b/chimere/static/chimere/js/jquery.chimere.js @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2016 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> +/* Copyright (C) 2008-2016 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -116,8 +116,8 @@ function transform(obj) { icon_start: null, icon_step: null, icon_end: null, - mobile:false, - input_id:'id_point' + mobile: false, + input_id: 'id_point' }; var settings = {}; /* @@ -774,6 +774,14 @@ function transform(obj) { settings.map.setCenter(settings.current_position); }, + // center from the lon lat + mapCenterOnLonLat: function(options){ + settings.current_position = new OpenLayers.LonLat(options["lon"], options["lat"]); + settings.current_position = settings.current_position.transform(EPSG_DISPLAY_PROJECTION, + settings.map.getProjectionObject()); + settings.map.setCenter(settings.current_position); + }, + // set current position setCurrentPosition: function(lonlat){ settings.current_position = lonlat; @@ -1328,6 +1336,19 @@ function transform(obj) { return feature; */ }, + + //LIB iOS + connectWebViewJavascriptBridge: function(callback) { + if (window.WebViewJavascriptBridge) { + callback(WebViewJavascriptBridge); + } else { + document.addEventListener('WebViewJavascriptBridgeReady', function() { + callback(WebViewJavascriptBridge); + }, false); + } + }, + //fin lib ios + cleanRoute: function(){ settings.layerVectors.removeAllFeatures(); }, @@ -1466,8 +1487,10 @@ function transform(obj) { // set the start point for routing routingFrom: function(){ $('#chimere_map_menu').hide(); - settings.routing_panel_open(); - $('#map_menu_clear').show(); + if (!settings.mobile){ + settings.routing_panel_open(); + $('#map_menu_clear').show(); + } settings.routing_start = new OpenLayers.Marker( settings.current_position.clone(), settings.icon_start); @@ -1479,12 +1502,86 @@ function transform(obj) { 'start_label'); } if (settings.routing_end) methods.route(); + // Added for mobile - START // + //iOS + methods.connectWebViewJavascriptBridge( + function(bridge) { + if(!bridge){ + bridge.init(function(message, responseCallback) { + if (responseCallback) { + responseCallback("Right back atcha"); + } + }); + } + bridge.send('openRouteFrom'); + }); + //android + window.JSInterface.openRouteFrom(); + // Added for mobile - END // + }, + // Added for mobile - START // + // set the start point for current Position + routingFromMyPosition: function(options){ + $('#chimere_map_menu').hide(); + settings.current_position = new OpenLayers.LonLat(options["lon"], options["lat"]); + settings.current_position = settings.current_position.transform(EPSG_DISPLAY_PROJECTION, + settings.map.getProjectionObject()); + settings.routing_start = new OpenLayers.Marker( + settings.current_position.clone(), + settings.icon_start); + settings.layerRouteMarker.addMarker(settings.routing_start); + if (nominatim_url){ + helpers.updateNominatimName(settings.current_position.clone() + .transform(settings.map.getProjectionObject(), + EPSG_DISPLAY_PROJECTION), + 'start_label'); + } + if (settings.routing_end) methods.route(); + + // Added for mobile - START // + //iOS + methods.connectWebViewJavascriptBridge( + function(bridge) { + if(!bridge){ + bridge.init(function(message, responseCallback) { + if (responseCallback) { + responseCallback("Right back atcha"); + } + }); + } + bridge.send('openRouteFrom'); + }); + //android + window.JSInterface.openRouteFrom(); + // Added for mobile - END // + }, + + updateMyCurrentPosition: function(options){ + + if (settings.current_position_marker) { + settings.layerMarkers.removeMarker(settings.current_position_marker) + } + + var tmp_position = new OpenLayers.LonLat(options["lon"], options["lat"]); + tmp_position = tmp_position.transform(EPSG_DISPLAY_PROJECTION, + + + settings.map.getProjectionObject()); + settings.current_position_marker = new OpenLayers.Marker( + tmp_position.clone(), + settings.icon_current_position); + settings.layerRouteMarker.addMarker(settings.current_position_marker); }, + + // Added for mobile - END // + // add a step point for routing routingAddStep: function(){ $('#chimere_map_menu').hide(); - settings.routing_panel_open(); - $('#map_menu_clear').show(); + if (!settings.mobile){ + settings.routing_panel_open(); + $('#map_menu_clear').show(); + } settings.routing_steps.push(new OpenLayers.Marker( settings.current_position.clone(), settings.icon_step.clone())); @@ -1543,8 +1640,10 @@ function transform(obj) { // set the finish point for routing routingTo: function(){ $('#chimere_map_menu').hide(); - settings.routing_panel_open(); - $('#map_menu_clear').show(); + if (!settings.mobile){ + settings.routing_panel_open(); + $('#map_menu_clear').show(); + } settings.routing_end = new OpenLayers.Marker( settings.current_position.clone(), settings.icon_end); @@ -1556,8 +1655,64 @@ function transform(obj) { 'end_label'); } if (settings.routing_start) methods.route(); + + // Added for mobile - START // + //iOS + methods.connectWebViewJavascriptBridge( + function(bridge) { + if(!bridge){ + bridge.init(function(message, responseCallback) { + if (responseCallback) { + responseCallback("Right back atcha"); + } + }); + } + bridge.send('openRouteTo'); + }); + //Android + window.JSInterface.openRouteTo(); + // Added for mobile - END // + }, + // set the finish point for current Position + routingToPosition: function(options){ + $('#chimere_map_menu').hide(); + if (!settings.mobile){ + settings.routing_panel_open(); + $('#map_menu_clear').show(); + } + settings.current_position = new OpenLayers.LonLat(options["lon"], options["lat"]); + settings.current_position = settings.current_position.transform(EPSG_DISPLAY_PROJECTION, + settings.map.getProjectionObject()); + settings.routing_end = new OpenLayers.Marker( + settings.current_position.clone(), + settings.icon_end); + settings.layerRouteMarker.addMarker(settings.routing_end); + if (nominatim_url){ + helpers.updateNominatimName(settings.current_position.clone() + .transform(settings.map.getProjectionObject(), + EPSG_DISPLAY_PROJECTION), + 'end_label'); + } + if (settings.routing_start) methods.route(); + // Added for mobile - START // + //iOS + methods.connectWebViewJavascriptBridge( + function(bridge) { + if(!bridge){ + bridge.init(function(message, responseCallback) { + if (responseCallback) { + responseCallback("Right back atcha"); + } + }); + } + bridge.send('openRouteTo'); + }); + //Android + window.JSInterface.openRouteTo(); + // Added for mobile - END // }, + // clear the current itinerary routingClear: function(){ $('#nominatim_start_lon').val(''); @@ -1663,11 +1818,30 @@ function transform(obj) { data.properties.description); $('#chimere_itinerary').show(); if(!settings.edition_type_is_route){ - $('#chimere_itinerary_form').hide(); - settings.routing_panel_open(); + if (!settings.mobile){ + $('#chimere_itinerary_form').hide(); + settings.routing_panel_open(); + } } else { methods.updateRoutingInput(); } + // Added for mobile - START // + //iOS + methods.connectWebViewJavascriptBridge( + function(bridge) { + if(!bridge){ + bridge.init(function(message, responseCallback) { + if (responseCallback) { + responseCallback("Right back atcha"); + } + }); + } + bridge.send('routeCalculated:'+data.properties.total); + bridge.send('routeCalculatedDetail:'+data.properties.description); + }); + //android + window.JSInterface.routeCalculated(data.properties.total, data.properties.description); + // Added for mobile - START // }, error: function (jqXHR, textStatus, errorThrown) { methods.redrawRoutingIcons(); @@ -2180,6 +2354,39 @@ function transform(obj) { $('#'+response_id).html(vals.display_name); $('#nominatim_'+response_id).html(vals.display_name); $('#chimere_'+response_id).html(vals.display_name); + // Added for mobile - START // + if (response_id === 'start_label') { + //iOS + methods.connectWebViewJavascriptBridge( + function(bridge) { + if(!bridge){ + bridge.init(function(message, responseCallback) { + if (responseCallback) { + responseCallback("Right back atcha"); + } + }); + } + bridge.send('updateFrom:'+vals.display_name); + }); + //android + window.JSInterface.updateFrom(vals.display_name); + } else if (response_id === 'end_label') { + //iOS + methods.connectWebViewJavascriptBridge( + function(bridge) { + if(!bridge){ + bridge.init(function(message, responseCallback) { + if (responseCallback) { + responseCallback("Right back atcha"); + } + }); + } + bridge.send('updateTo:'+vals.display_name); + }); + //android + window.JSInterface.updateTo(vals.display_name); + } + // Added for mobile - END // } }); } diff --git a/chimere/templates/chimere/blocks/footer.html b/chimere/templates/chimere/blocks/footer.html index f5830ed..d656e7b 100644 --- a/chimere/templates/chimere/blocks/footer.html +++ b/chimere/templates/chimere/blocks/footer.html @@ -1,3 +1,3 @@ {% load i18n %} -{% trans "This site uses Chimère"%} <img src="{{STATIC_URL}}chimere/img/copyleft.png" alt="copyleft"/> 2008-2015 <a href='http://www.chymeres.net/'>Chimère project</a> - {% trans "Map"%} <img src="{{STATIC_URL}}chimere/img/copyleft.png" alt="copyleft"/> <a href='http://openstreetmap.org/'>OpenStreetMap</a> +{% trans "This site uses Chimère"%} <img src="{{STATIC_URL}}chimere/img/copyleft.png" alt="copyleft"/> 2008-2016 <a href='http://www.chymeres.net/'>Chimère project</a> - {% trans "Map"%} <img src="{{STATIC_URL}}chimere/img/copyleft.png" alt="copyleft"/> <a href='http://openstreetmap.org/'>OpenStreetMap</a> diff --git a/chimere/utils.py b/chimere/utils.py index 1aa639a..ddc9471 100644 --- a/chimere/utils.py +++ b/chimere/utils.py @@ -1197,9 +1197,13 @@ class HtmlXsltManager(ImportManager): "point" not in item and not ("lat" in item and item['lat']): return cls = None + origin = self.importer_instance.origin + origin_lnk = item.get('link') + if origin_lnk: + origin = u"<a href='%s' target='_blank'>%s</a>" % ( + origin_lnk, origin) dct = { - 'origin': "<a href='%s' target='_blank'>%s</a>" % ( - item.get('link') or '#', self.importer_instance.origin), + 'origin': origin, 'license': self.importer_instance.license, 'name': item['name']} category = None @@ -1220,6 +1224,10 @@ class HtmlXsltManager(ImportManager): dct['description'] = item.get('description', '') if 'date' in item: dct.update(self.parse_date(item['date'])) + if "start_date" in item and item["start_date"]: + dct['start_date'] = item["start_date"] + if "end_date" in item and item["end_date"]: + dct['end_date'] = item["end_date"] key = item['key'] it, updated, created = self.create_or_update_item(cls, dct, key, category=category) diff --git a/chimere/widgets.py b/chimere/widgets.py index 7fccca4..467909d 100644 --- a/chimere/widgets.py +++ b/chimere/widgets.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (C) 2008-2013 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> +# Copyright (C) 2008-2016 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as |