diff options
| author | Marc Florisson | 2013-05-17 18:55:58 +0200 |
|---|---|---|
| committer | Marc Florisson | 2013-05-17 18:55:58 +0200 |
| commit | a80e3496452341b0dab50716eb95137553814bcf (patch) | |
| tree | 2051bb884f172bc412cf55cef43e312dbe17445b | |
| parent | a9dee8d289c9c27471f00a86e307d0bbed210d93 (diff) | |
| parent | f3b470270bcfa7c1a8e0f29ba6dbe95c75605385 (diff) | |
| download | chouette-core-a80e3496452341b0dab50716eb95137553814bcf.tar.bz2 | |
Merge branch 'geoportail'
| -rw-r--r-- | app/assets/stylesheets/openlayers_style.css | 2 | ||||
| -rw-r--r-- | app/controllers/organisations_controller.rb | 6 | ||||
| -rw-r--r-- | app/maps/application_map.rb | 31 | ||||
| -rw-r--r-- | app/maps/connection_link_map.rb | 22 | ||||
| -rw-r--r-- | app/maps/journey_pattern_map.rb | 29 | ||||
| -rw-r--r-- | app/maps/line_map.rb | 24 | ||||
| -rw-r--r-- | app/maps/network_map.rb | 20 | ||||
| -rw-r--r-- | app/maps/route_map.rb | 29 | ||||
| -rw-r--r-- | app/maps/stop_area_map.rb | 14 | ||||
| -rw-r--r-- | app/views/organisations/edit.html.erb | 14 | ||||
| -rw-r--r-- | app/views/organisations/show.html.erb | 10 | ||||
| -rw-r--r-- | config/environments/development.rb | 1 | ||||
| -rw-r--r-- | config/locales/maps.yml | 8 | ||||
| -rw-r--r-- | config/locales/organisations.yml | 27 | ||||
| -rw-r--r-- | db/migrate/20130517090647_add_geoportail_key_to_organisation.rb | 5 | ||||
| -rw-r--r-- | db/schema.rb | 42 |
16 files changed, 166 insertions, 118 deletions
diff --git a/app/assets/stylesheets/openlayers_style.css b/app/assets/stylesheets/openlayers_style.css index aa088e537..0e3a67108 100644 --- a/app/assets/stylesheets/openlayers_style.css +++ b/app/assets/stylesheets/openlayers_style.css @@ -31,7 +31,7 @@ div.olLayerDiv { .olControlAttribution { font-size: smaller; right: 3px; - bottom: 4.5em; + bottom: 0.5em; position: absolute; display: block; } diff --git a/app/controllers/organisations_controller.rb b/app/controllers/organisations_controller.rb index daeb41837..7e2edb220 100644 --- a/app/controllers/organisations_controller.rb +++ b/app/controllers/organisations_controller.rb @@ -1,6 +1,12 @@ class OrganisationsController < InheritedResources::Base respond_to :html + def update + update! do |success, failure| + success.html { redirect_to organisation_path } + end + end + private def resource diff --git a/app/maps/application_map.rb b/app/maps/application_map.rb index 5efd6da84..e068a8950 100644 --- a/app/maps/application_map.rb +++ b/app/maps/application_map.rb @@ -4,6 +4,7 @@ class ApplicationMap include MapLayers::ViewHelpers attr_accessor :helpers + cattr_accessor :ign_api_key def helpers @helpers ||= Helpers.new @@ -18,6 +19,15 @@ class ApplicationMap self end + def geoportail_key + if ( self.helpers && self.helpers.current_user && + self.helpers.current_user.organisation && + self.helpers.current_user.organisation.geoportail_key) + return self.helpers.current_user.organisation.geoportail_key + end + return nil + end + class Helpers include ActionDispatch::Routing::UrlFor include Rails.application.routes.url_helpers @@ -40,7 +50,16 @@ class ApplicationMap end def map - @map ||= MapLayers::Map.new(id, :projection => projection("EPSG:900913"), :controls => controls) + @map ||= MapLayers::Map.new(id, :projection => projection("EPSG:900913"), :controls => controls) do |map, page| + page << map.add_layer(MapLayers::OSM_MAPNIK) + page << map.add_layer(geoportail_wmts) if self.geoportail_key + page << map.add_layer(google_physical) + page << map.add_layer(google_streets) + page << map.add_layer(google_hybrid) + page << map.add_layer(google_satellite) + + customize_map(map,page) if respond_to?( :customize_map) + end end def name @@ -58,6 +77,16 @@ class ApplicationMap OpenLayers::Format::KML.new :extractStyles => true, :extractAttributes => true, :maxDepth => 2 end + def geoportail_wmts + OpenLayers::Layer::WMTS.new :name => I18n.t("maps.ign_map"), + :url => "http://gpp3-wxs.ign.fr/#{self.geoportail_key}/wmts", + :layer => "GEOGRAPHICALGRIDSYSTEMS.MAPS", + :matrixSet => "PM", + :style => "normal", + :numZoomLevels => 19, + :attribution => 'Map base: ©IGN <a href="http://www.geoportail.fr/" target="_blank"><img src="http://api.ign.fr/geoportail/api/js/2.0.0beta/theme/geoportal/img/logo_gp.gif"></a> <a href="http://www.geoportail.gouv.fr/depot/api/cgu/licAPI_CGUF.pdf" alt="TOS" title="TOS" target="_blank">Terms of Service</a>' + end + def strategy_fixed OpenLayers::Strategy::Fixed.new :preload => true end diff --git a/app/maps/connection_link_map.rb b/app/maps/connection_link_map.rb index fe83efe40..9318ec90f 100644 --- a/app/maps/connection_link_map.rb +++ b/app/maps/connection_link_map.rb @@ -8,22 +8,12 @@ class ConnectionLinkMap < ApplicationMap @connection_link_style = connection_link_style end - def map - @map ||= MapLayers::Map.new(id, :projection => projection("EPSG:900913"), :controls => controls) do |map, page| - page << map.add_layer(MapLayers::OSM_MAPNIK) - page << map.add_layer(google_physical) - page << map.add_layer(google_streets) - page << map.add_layer(google_hybrid) - page << map.add_layer(google_satellite) - - page.assign "stop_areas_layer", kml_layer([connection_link.referential, connection_link, :stop_areas], :styleMap => StyleMap::StopAreasStyleMap.new(helpers).style_map) - page << map.add_layer(:stop_areas_layer) - page << map.add_layer( kml_layer([connection_link.referential, connection_link], :styleMap => StyleMap::ConnectionLinkStyleMap.new(helpers).style_map)) - page << map.add_control( hover_control_display_name(:stop_areas_layer) ) - #page << map.add_layer(kml_layer(connection_link, :styleMap => StyleMap::ConnectionLinkStyleMap.new( :style => connection_link_style).style_map)) - #page << map.add_layer(kml_layer(polymorphic_path([referential, connection_link, :stop_areas], :format => :kml), :styleMap => StyleMap::StopAreasStyleMap.new.style_map)) - page << map.zoom_to_extent(bounds.to_google.to_openlayers) if bounds - end + def customize_map(map, page) + page.assign "stop_areas_layer", kml_layer([connection_link.referential, connection_link, :stop_areas], :styleMap => StyleMap::StopAreasStyleMap.new(helpers).style_map) + page << map.add_layer(:stop_areas_layer) + page << map.add_layer( kml_layer([connection_link.referential, connection_link], :styleMap => StyleMap::ConnectionLinkStyleMap.new(helpers).style_map)) + page << map.add_control( hover_control_display_name(:stop_areas_layer) ) + page << map.zoom_to_extent(bounds.to_google.to_openlayers) if bounds end def ready? diff --git a/app/maps/journey_pattern_map.rb b/app/maps/journey_pattern_map.rb index b88c31208..075019c79 100644 --- a/app/maps/journey_pattern_map.rb +++ b/app/maps/journey_pattern_map.rb @@ -7,25 +7,16 @@ class JourneyPatternMap < ApplicationMap @style = style end - def map - @map ||= MapLayers::Map.new(id, :projection => projection("EPSG:900913"), :controls => controls) do |map, page| - page << map.add_layer(MapLayers::OSM_MAPNIK) - page << map.add_layer(google_physical) - page << map.add_layer(google_streets) - page << map.add_layer(google_hybrid) - page << map.add_layer(google_satellite) - - #page << map.add_layer(kml_layer(line, :styleMap => StyleMap::LineStyleMap.new( :style => line_style).style_map)) - layer = kml_layer([journey_pattern.referential, journey_pattern.route.line, journey_pattern.route, journey_pattern], :styleMap => StyleMap::JourneyPatternStyleMap.new(helpers).style_map) - page.assign "journeyPatternLayer", layer - - selectFeature = OpenLayers::Control::SelectFeature.new( :journeyPatternLayer) - page.assign "selectFeature", selectFeature - - page << map.add_layer( :journeyPatternLayer) - page << map.add_control( hover_control_display_name(:journeyPatternLayer) ) - page << map.zoom_to_extent(bounds.to_google.to_openlayers) if bounds - end + def customize_map(map, page) + layer = kml_layer([journey_pattern.referential, journey_pattern.route.line, journey_pattern.route, journey_pattern], :styleMap => StyleMap::JourneyPatternStyleMap.new(helpers).style_map) + page.assign "journeyPatternLayer", layer + + selectFeature = OpenLayers::Control::SelectFeature.new( :journeyPatternLayer) + page.assign "selectFeature", selectFeature + + page << map.add_layer( :journeyPatternLayer) + page << map.add_control( hover_control_display_name(:journeyPatternLayer) ) + page << map.zoom_to_extent(bounds.to_google.to_openlayers) if bounds end def ready? diff --git a/app/maps/line_map.rb b/app/maps/line_map.rb index e7b5611e6..3bc229555 100644 --- a/app/maps/line_map.rb +++ b/app/maps/line_map.rb @@ -8,22 +8,14 @@ class LineMap < ApplicationMap @line_style = line_style end - def map - @map ||= MapLayers::Map.new(id, :projection => projection("EPSG:900913"), :controls => controls) do |map, page| - page << map.add_layer(MapLayers::OSM_MAPNIK) - page << map.add_layer(google_physical) - page << map.add_layer(google_streets) - page << map.add_layer(google_hybrid) - page << map.add_layer(google_satellite) - - #page << map.add_layer(kml_layer(line, :styleMap => StyleMap::LineStyleMap.new( :style => line_style).style_map)) - page.assign "stop_areas_layer", kml_layer([line.referential, line], :styleMap => StyleMap::StopAreasStyleMap.new(helpers).style_map) - - page << map.add_layer(:stop_areas_layer) - page << map.add_control( hover_control_display_name(:stop_areas_layer) ) - - page << map.zoom_to_extent(bounds.to_google.to_openlayers) if bounds - end + def customize_map(map, page) + page << map.add_layer(kml_layer(line, :styleMap => StyleMap::LineStyleMap.new( :style => line_style).style_map)) + page.assign "stop_areas_layer", kml_layer([line.referential, line], :styleMap => StyleMap::StopAreasStyleMap.new(helpers).style_map) + + + page << map.add_layer(:stop_areas_layer) + page << map.add_control( hover_control_display_name(:stop_areas_layer) ) + page << map.zoom_to_extent(bounds.to_google.to_openlayers) if bounds end def bounds diff --git a/app/maps/network_map.rb b/app/maps/network_map.rb index 106c4f055..ec23f62c9 100644 --- a/app/maps/network_map.rb +++ b/app/maps/network_map.rb @@ -7,22 +7,12 @@ class NetworkMap < ApplicationMap @network_style = network_style end - def map - @map ||= MapLayers::Map.new(id, :projection => projection("EPSG:900913"), :controls => controls) do |map, page| - page << map.add_layer(MapLayers::OSM_MAPNIK) - page << map.add_layer(google_physical) - page << map.add_layer(google_streets) - page << map.add_layer(google_hybrid) - page << map.add_layer(google_satellite) - - page.assign "stop_areas_layer", kml_layer([network.referential, network], :styleMap => StyleMap::StopAreasStyleMap.new(helpers).style_map) + def customize_map(map, page) + page.assign "stop_areas_layer", kml_layer([network.referential, network], :styleMap => StyleMap::StopAreasStyleMap.new(helpers).style_map) - page << map.add_layer(:stop_areas_layer) - page << map.add_control( hover_control_display_name(:stop_areas_layer) ) - - #page << map.add_layer(kml_layer(network, :styleMap => StyleMap::NetworkStyleMap.new( :style => network_style).style_map)) - page << map.zoom_to_extent(bounds.to_google.to_openlayers) if bounds - end + page << map.add_layer(:stop_areas_layer) + page << map.add_control( hover_control_display_name(:stop_areas_layer) ) + page << map.zoom_to_extent(bounds.to_google.to_openlayers) if bounds end def bounds diff --git a/app/maps/route_map.rb b/app/maps/route_map.rb index e7b6e63c1..fc1a7d93e 100644 --- a/app/maps/route_map.rb +++ b/app/maps/route_map.rb @@ -7,25 +7,16 @@ class RouteMap < ApplicationMap @style = style end - def map - @map ||= MapLayers::Map.new(id, :projection => projection("EPSG:900913"), :controls => controls) do |map, page| - page << map.add_layer(MapLayers::OSM_MAPNIK) - page << map.add_layer(google_physical) - page << map.add_layer(google_streets) - page << map.add_layer(google_hybrid) - page << map.add_layer(google_satellite) - - #page << map.add_layer(kml_layer(line, :styleMap => StyleMap::LineStyleMap.new( :style => line_style).style_map)) - layer = kml_layer([route.referential, route.line, route], :styleMap => StyleMap::RouteStyleMap.new(helpers).style_map) - page.assign "routeLayer", layer - selectFeature = OpenLayers::Control::SelectFeature.new( :routeLayer) - - page << map.add_layer( :routeLayer) - page << map.add_control( hover_control_display_name(:routeLayer) ) - page << map.zoom_to_extent(bounds.to_google.to_openlayers) if bounds - - page.assign "selectFeature", selectFeature - end + def customize_map(map, page) + layer = kml_layer([route.referential, route.line, route], :styleMap => StyleMap::RouteStyleMap.new(helpers).style_map) + page.assign "routeLayer", layer + selectFeature = OpenLayers::Control::SelectFeature.new( :routeLayer) + + page << map.add_layer( :routeLayer) + page << map.add_control( hover_control_display_name(:routeLayer) ) + + page.assign "selectFeature", selectFeature + page << map.zoom_to_extent(bounds.to_google.to_openlayers) if bounds end def ready? diff --git a/app/maps/stop_area_map.rb b/app/maps/stop_area_map.rb index 2fc329dce..ab254bf73 100644 --- a/app/maps/stop_area_map.rb +++ b/app/maps/stop_area_map.rb @@ -9,13 +9,9 @@ class StopAreaMap < ApplicationMap @stop_area = stop_area end - def map - @map ||= MapLayers::Map.new(id, :projection => projection("EPSG:900913"), :controls => controls) do |map, page| - page << map.add_layer(MapLayers::OSM_MAPNIK) - page << map.add_layer(google_physical) - page << map.add_layer(google_streets) - page << map.add_layer(google_hybrid) - page << map.add_layer(google_satellite) + def customize_map(map, page) + page.assign "edit_stop_area_layer", kml_layer(stop_area, { :default => editable? }, :style_map => StyleMap::EditStopAreaStyleMap.new(helpers).style_map) + page << map.add_layer(:edit_stop_area_layer) if stop_area.children.present? page.assign "children_layer", kml_layer(stop_area, { :children => true }, :style_map => StyleMap::StopAreasStyleMap.new(helpers).style_map) @@ -31,7 +27,6 @@ class StopAreaMap < ApplicationMap page.assign "edit_stop_area_layer", kml_layer(stop_area, { :default => editable? }, :style_map => StyleMap::EditStopAreaStyleMap.new(helpers).style_map) page << map.add_layer(:edit_stop_area_layer) - if editable? page.assign "referential_projection", projection_type.present? ? projection("EPSG:" + projection_type) : JsVar.new("undefined") # TODO virer ce code inline @@ -56,9 +51,8 @@ EOF end - page << map.set_center(center.to_google.to_openlayers, 16, false, true) + page << map.set_center(center.to_google.to_openlayers, 16, false, true) end - end end def projection_type diff --git a/app/views/organisations/edit.html.erb b/app/views/organisations/edit.html.erb new file mode 100644 index 000000000..0e55a1562 --- /dev/null +++ b/app/views/organisations/edit.html.erb @@ -0,0 +1,14 @@ +<%= title_tag t(".title") %> + +<%= semantic_form_for @organisation, :url => organisation_path do |form| %> + <%= form.inputs do %> + <%= form.input :name %> + <%= form.input :geoportail_key %> + <% end %> + + <%= form.actions do %> + <%= form.action :submit, :as => :button %> + <%= form.action :cancel, :as => :link %> + <% end %> +<% end %> + diff --git a/app/views/organisations/show.html.erb b/app/views/organisations/show.html.erb index c407f56f9..753efc2c3 100644 --- a/app/views/organisations/show.html.erb +++ b/app/views/organisations/show.html.erb @@ -1,5 +1,12 @@ <%= title_tag @organisation.name %> +<div class="summary"> + <p> + <label><%= Organisation.human_attribute_name(:geoportail_key) %>: </label> + <%= @organisation.geoportail_key ? t('.key_registered') : t('.key_not_registered') %> + </p> +</div> + <div class="users"> <% @organisation.users.each do |user| %> <%= div_for user do %> @@ -12,7 +19,8 @@ <% content_for :sidebar do %> <ul class="actions"> - <%= link_to t('users.actions.new'), new_organisation_user_path, :class => "add" %> + <li><%= link_to t('organisations.actions.edit'), edit_organisation_path, :class => "edit" %></li> + <li><%= link_to t('users.actions.new'), new_organisation_user_path, :class => "add" %></li> </ul> <% end %> diff --git a/config/environments/development.rb b/config/environments/development.rb index e92b9246e..b619645d3 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -45,6 +45,7 @@ ChouetteIhm::Application.configure do config.to_prepare do Devise::Mailer.layout "mailer" + #ApplicationMap.ign_api_key = "i2aqyge3x3iovnuhz7z06flp" chouette_command_script = "tmp/chouette-command/chouette" if File.exists? chouette_command_script Chouette::Command.command = "tmp/chouette-command/chouette" diff --git a/config/locales/maps.yml b/config/locales/maps.yml new file mode 100644 index 000000000..339ad206d --- /dev/null +++ b/config/locales/maps.yml @@ -0,0 +1,8 @@ +en: + maps: + ign_map: "IGN maps" +fr: + maps: + ign_map: "Cartes IGN" + + diff --git a/config/locales/organisations.yml b/config/locales/organisations.yml new file mode 100644 index 000000000..011e87966 --- /dev/null +++ b/config/locales/organisations.yml @@ -0,0 +1,27 @@ +en: + organisations: + actions: + edit: "Edit your organisation" + edit: + title: "Update your organisation" + key_registered: "Key registered" + key_not_registered: "No key registered" + activerecord: + attributes: + organisation: + name: "Name" + geoportail_key: "IGN Geoportail Key" + +fr: + organisations: + actions: + edit: "Mofifier votre organisation" + edit: + title: "Modifier votre organisation" + key_registered: "Clé enregistrée" + key_not_registered: "Pas de clé" + activerecord: + attributes: + organisation: + name: "Nom" + geoportail_key: "Clé de l'API du Geoportail IGN" diff --git a/db/migrate/20130517090647_add_geoportail_key_to_organisation.rb b/db/migrate/20130517090647_add_geoportail_key_to_organisation.rb new file mode 100644 index 000000000..8d44809ca --- /dev/null +++ b/db/migrate/20130517090647_add_geoportail_key_to_organisation.rb @@ -0,0 +1,5 @@ +class AddGeoportailKeyToOrganisation < ActiveRecord::Migration + def change + add_column "organisations", "geoportail_key", "string" + end +end diff --git a/db/schema.rb b/db/schema.rb index abb811eb1..6afe49f71 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended to check this file into your version control system. -ActiveRecord::Schema.define(:version => 20130412094550) do +ActiveRecord::Schema.define(:version => 20130517090647) do create_table "access_links", :force => true do |t| t.integer "access_point_id", :limit => 8 @@ -63,12 +63,13 @@ ActiveRecord::Schema.define(:version => 20130412094550) do add_index "access_points", ["objectid"], :name => "access_points_objectid_key", :unique => true - create_table "api_keys", :force => true do |t| + create_table "api_keys", :id => false, :force => true do |t| + t.integer "id", :limit => 8 t.integer "referential_id" t.string "token" t.string "name" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false + t.datetime "created_at" + t.datetime "updated_at" end create_table "companies", :force => true do |t| @@ -123,8 +124,8 @@ ActiveRecord::Schema.define(:version => 20130412094550) do t.datetime "failed_at" t.string "locked_by" t.string "queue" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false + t.datetime "created_at" + t.datetime "updated_at" end add_index "delayed_jobs", ["priority", "run_at"], :name => "delayed_jobs_priority" @@ -135,8 +136,8 @@ ActiveRecord::Schema.define(:version => 20130412094550) do t.string "arguments", :limit => 1000 t.integer "position" t.string "severity" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false + t.datetime "created_at" + t.datetime "updated_at" end add_index "export_log_messages", ["export_id"], :name => "index_export_log_messages_on_export_id" @@ -146,8 +147,8 @@ ActiveRecord::Schema.define(:version => 20130412094550) do t.string "status" t.string "type" t.string "options" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false + t.datetime "created_at" + t.datetime "updated_at" t.string "references_type" t.string "reference_ids" end @@ -229,8 +230,8 @@ ActiveRecord::Schema.define(:version => 20130412094550) do t.string "arguments", :limit => 1000 t.integer "position" t.string "severity" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false + t.datetime "created_at" + t.datetime "updated_at" end add_index "import_log_messages", ["import_id"], :name => "index_import_log_messages_on_import_id" @@ -238,8 +239,8 @@ ActiveRecord::Schema.define(:version => 20130412094550) do create_table "imports", :force => true do |t| t.integer "referential_id", :limit => 8 t.string "status" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false + t.datetime "created_at" + t.datetime "updated_at" t.string "type" t.string "options" t.string "file_type" @@ -310,8 +311,9 @@ ActiveRecord::Schema.define(:version => 20130412094550) do create_table "organisations", :force => true do |t| t.string "name" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.string "geoportail_key" end create_table "pt_links", :force => true do |t| @@ -332,8 +334,8 @@ ActiveRecord::Schema.define(:version => 20130412094550) do create_table "referentials", :force => true do |t| t.string "name" t.string "slug" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false + t.datetime "created_at" + t.datetime "updated_at" t.string "prefix" t.string "projection_type" t.string "time_zone" @@ -469,8 +471,8 @@ ActiveRecord::Schema.define(:version => 20130412094550) do t.datetime "last_sign_in_at" t.string "current_sign_in_ip" t.string "last_sign_in_ip" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false + t.datetime "created_at" + t.datetime "updated_at" t.integer "organisation_id" t.string "name" t.string "confirmation_token" |
