aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorMarc Florisson2013-05-17 18:55:58 +0200
committerMarc Florisson2013-05-17 18:55:58 +0200
commita80e3496452341b0dab50716eb95137553814bcf (patch)
tree2051bb884f172bc412cf55cef43e312dbe17445b /app
parenta9dee8d289c9c27471f00a86e307d0bbed210d93 (diff)
parentf3b470270bcfa7c1a8e0f29ba6dbe95c75605385 (diff)
downloadchouette-core-a80e3496452341b0dab50716eb95137553814bcf.tar.bz2
Merge branch 'geoportail'
Diffstat (limited to 'app')
-rw-r--r--app/assets/stylesheets/openlayers_style.css2
-rw-r--r--app/controllers/organisations_controller.rb6
-rw-r--r--app/maps/application_map.rb31
-rw-r--r--app/maps/connection_link_map.rb22
-rw-r--r--app/maps/journey_pattern_map.rb29
-rw-r--r--app/maps/line_map.rb24
-rw-r--r--app/maps/network_map.rb20
-rw-r--r--app/maps/route_map.rb29
-rw-r--r--app/maps/stop_area_map.rb14
-rw-r--r--app/views/organisations/edit.html.erb14
-rw-r--r--app/views/organisations/show.html.erb10
11 files changed, 103 insertions, 98 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: &copy;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 %>