aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuc Donnet2012-04-13 12:00:47 +0200
committerLuc Donnet2012-04-13 12:00:47 +0200
commit610232a86b19d25de71c40a1bc032399abcaba58 (patch)
tree54f6f51eddd1c64fffaf06399c03c5af001581f0
parentd4de70ec093f0d6b16feb474bde5424c810a616a (diff)
downloadchouette-core-610232a86b19d25de71c40a1bc032399abcaba58.tar.bz2
Add edition for stop area
-rw-r--r--app/controllers/stop_areas_controller.rb12
-rw-r--r--app/maps/stop_area_map.rb29
-rw-r--r--app/maps/style_map/edit_stop_area_style_map.rb27
-rw-r--r--app/views/stop_areas/edit.html.erb2
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" %>