diff options
| -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 | 227 | ||||
| -rw-r--r-- | chimere/utils.py | 4 | ||||
| -rw-r--r-- | chimere/widgets.py | 2 | 
8 files changed, 227 insertions, 17 deletions
diff --git a/chimere/actions.py b/chimere/actions.py index 1fac738..ecbd07a 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 d450893..599f88a 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 fcec05e..72e7fa0 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 6a9c26a..ea30038 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 f59aca8..c799852 100644 --- a/chimere/static/chimere/js/jquery.chimere.js +++ b/chimere/static/chimere/js/jquery.chimere.js @@ -222,8 +222,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 = {};      /* @@ -919,6 +919,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; @@ -1484,6 +1492,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();          }, @@ -1628,8 +1649,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); @@ -1641,12 +1664,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())); @@ -1705,8 +1802,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); @@ -1718,8 +1817,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(''); @@ -1825,11 +1980,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(); @@ -2337,6 +2511,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/utils.py b/chimere/utils.py index 20dc99e..11c9c4e 100644 --- a/chimere/utils.py +++ b/chimere/utils.py @@ -1263,6 +1263,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 c9c6cc2..78d7508 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  | 
