diff options
| author | Luc Donnet | 2012-04-13 12:00:47 +0200 |
|---|---|---|
| committer | Luc Donnet | 2012-04-13 12:00:47 +0200 |
| commit | 610232a86b19d25de71c40a1bc032399abcaba58 (patch) | |
| tree | 54f6f51eddd1c64fffaf06399c03c5af001581f0 | |
| parent | d4de70ec093f0d6b16feb474bde5424c810a616a (diff) | |
| download | chouette-core-610232a86b19d25de71c40a1bc032399abcaba58.tar.bz2 | |
Add edition for stop area
| -rw-r--r-- | app/controllers/stop_areas_controller.rb | 12 | ||||
| -rw-r--r-- | app/maps/stop_area_map.rb | 29 | ||||
| -rw-r--r-- | app/maps/style_map/edit_stop_area_style_map.rb | 27 | ||||
| -rw-r--r-- | app/views/stop_areas/edit.html.erb | 2 |
4 files changed, 32 insertions, 38 deletions
diff --git a/app/controllers/stop_areas_controller.rb b/app/controllers/stop_areas_controller.rb index 77055853d..7c73553a8 100644 --- a/app/controllers/stop_areas_controller.rb +++ b/app/controllers/stop_areas_controller.rb @@ -30,13 +30,13 @@ class StopAreasController < ChouetteController end end - # def edit - # stop_area.position ||= stop_area.default_position + def edit + #stop_area.position ||= stop_area.default_position - # @map = StopAreaMap.new stop_area - # @map.editable = true - # edit! - # end + @map = StopAreaMap.new referential, stop_area + @map.editable = true + edit! + end protected diff --git a/app/maps/stop_area_map.rb b/app/maps/stop_area_map.rb index e0735e0a4..b5a339e87 100644 --- a/app/maps/stop_area_map.rb +++ b/app/maps/stop_area_map.rb @@ -18,22 +18,23 @@ class StopAreaMap < ApplicationMap page << map.add_layer(google_hybrid) page << map.add_layer(google_satellite) - page.assign "edit_stop_area_layer", kml_layer( polymorphic_path( [referential, stop_area], :format => :kml, :default => editable?), :style_map => StyleMap::StopAreasStyleMap.new.style_map) + page.assign "edit_stop_area_layer", kml_layer( polymorphic_path( [referential, stop_area], :format => :kml, :default => editable?), :style_map => StyleMap::EditStopAreaStyleMap.new.style_map) page << map.add_layer(:edit_stop_area_layer) -# if editable? -# # TODO virer ce code inline -# page << <<EOF -# edit_stop_area_layer.events.on({ -# 'afterfeaturemodified': function(event) { -# geometry = event.feature.geometry.clone().transform(new OpenLayers.Projection("EPSG:900913"), new OpenLayers.Projection("EPSG:4326")); -# $('#potimart_stop_area_position').val(geometry.y + ',' + geometry.x); -# } -# }); -# EOF -# page << map.add_control(OpenLayers::Control::ModifyFeature.new(:edit_stop_area_layer, :mode => 8, :autoActivate => true)) - -# end + if editable? + # TODO virer ce code inline + page << <<EOF + edit_stop_area_layer.events.on({ + 'afterfeaturemodified': function(event) { + geometry = event.feature.geometry.clone().transform(new OpenLayers.Projection("EPSG:900913"), new OpenLayers.Projection("EPSG:4326")); + $('#stop_area_longitude').val(geometry.x); + $('#stop_area_latitude').val(geometry.y); + } + }); +EOF + page << map.add_control(OpenLayers::Control::ModifyFeature.new(:edit_stop_area_layer, :mode => 8, :autoActivate => true)) + + end page << map.zoom_to_extent(bounds) if bounds #page << map.set_center(center.to_google.to_openlayers, 16, false, true) diff --git a/app/maps/style_map/edit_stop_area_style_map.rb b/app/maps/style_map/edit_stop_area_style_map.rb index 5b340cef9..7095cb2f3 100644 --- a/app/maps/style_map/edit_stop_area_style_map.rb +++ b/app/maps/style_map/edit_stop_area_style_map.rb @@ -1,12 +1,9 @@ class StyleMap::EditStopAreaStyleMap < StyleMap::GenericStyleMap - attr_accessor :styles, :display_label, :context, :terminus - alias_method :terminus?, :terminus + attr_accessor :styles, :display_label - def initialize(display_label = false, terminus = false, context = {}, styles = {}) + def initialize(display_label = false, styles = {}) @display_label = display_label - @terminus = terminus - @context = context @styles = styles end @@ -25,12 +22,8 @@ class StyleMap::EditStopAreaStyleMap < StyleMap::GenericStyleMap :strokeColor => "black", :strokeOpacity => 1, :strokeWidth => 2, - :display => "${display}" - }.tap do |style_basic| - style_basic.merge! :fontSize =>"11px", - :pointRadius => 16, - :externalGraphic => "/images/stop_area_hover.png" if terminus? - end + :display => true + } if styles["default"].present? style.merge styles["default"] @@ -54,12 +47,9 @@ class StyleMap::EditStopAreaStyleMap < StyleMap::GenericStyleMap :strokeColor => "black", :strokeOpacity => 1, :strokeWidth => 2, - :display => "${display}" - }.tap do |style_basic| - style_basic.merge! :fontSize =>"11px", - :pointRadius => 16, - :externalGraphic => "/images/stop_area_hover.png" if terminus? - end + :display => true + } + if styles["select"].present? select_style.merge styles["select"] else @@ -69,7 +59,8 @@ class StyleMap::EditStopAreaStyleMap < StyleMap::GenericStyleMap def context context = { - :label => :"function(feature) { if(feature.layer.map.getZoom() > 15) { return feature.attributes.name;} else {return '';}}" + :label => :" function(feature) {if(feature.layer.map.getZoom() > 13) { return feature.attributes.name;} else {return '';}} ", + :areaType => :" function(feature) { console.log(feature); return feature.attributes.stop_area_type.toLowerCase();} " } end diff --git a/app/views/stop_areas/edit.html.erb b/app/views/stop_areas/edit.html.erb index 10d937050..be09d94e0 100644 --- a/app/views/stop_areas/edit.html.erb +++ b/app/views/stop_areas/edit.html.erb @@ -1,3 +1,5 @@ <%= title_tag t('stop_areas.edit.title', :stop_area => @stop_area.name ) %> +<%= @map.to_html.html_safe %> + <%= render "form" %> |
