aboutsummaryrefslogtreecommitdiffstats
path: root/app/controllers
diff options
context:
space:
mode:
authorMichel Etienne2012-11-06 18:53:29 +0100
committerMichel Etienne2012-11-06 18:53:29 +0100
commit48842ac1197560b1b7f597e3e1be7c4d93f8d098 (patch)
treedfeee03bf8ae1fb2b4a665b61c95bfe33056105f /app/controllers
parentc1c4d3fbc9231fe6b1bdd325faced49f33cdf1b2 (diff)
downloadchouette-core-48842ac1197560b1b7f597e3e1be7c4d93f8d098.tar.bz2
add access_points and access_links managment
Diffstat (limited to 'app/controllers')
-rw-r--r--app/controllers/access_links_controller.rb73
-rw-r--r--app/controllers/access_points_controller.rb54
-rw-r--r--app/controllers/stop_areas_controller.rb6
3 files changed, 133 insertions, 0 deletions
diff --git a/app/controllers/access_links_controller.rb b/app/controllers/access_links_controller.rb
new file mode 100644
index 000000000..4c0173d4c
--- /dev/null
+++ b/app/controllers/access_links_controller.rb
@@ -0,0 +1,73 @@
+class AccessLinksController < ChouetteController
+ defaults :resource_class => Chouette::AccessLink
+
+ belongs_to :referential do
+ belongs_to :access_point, :parent_class => Chouette::AccessPoint, :optional => true, :polymorphic => true
+ belongs_to :stop_area, :parent_class => Chouette::StopArea, :optional => true, :polymorphic => true
+ end
+
+ respond_to :html, :kml, :xml, :json
+
+
+ def index
+ request.format.kml? ? @per_page = nil : @per_page = 12
+ index!
+ end
+
+ def show
+ #@map = AccessLinkMap.new(resource).with_helpers(self)
+ show!
+ end
+
+ def new
+ @access_point = Chouette::AccessPoint.find(params[:access_point_id])
+ data=params[:access_link]
+ @stop_area = Chouette::StopArea.find(data[:stop_area_id])
+ @orientation = data[:link_orientation_type]
+ name=data[:name]
+ if name.nil? || name.empty?
+ if @orientation == "access_point_to_stop_area"
+ name = "#{@access_point.name} -> #{@stop_area.name}"
+ else
+ name = "#{@stop_area.name} -> #{@access_point.name}"
+ end
+ data[:name] = name
+ end
+ @access_link = Chouette::AccessLink.new(data)
+ new!
+ end
+
+ def create
+ @access_point = Chouette::AccessPoint.find(params[:access_point_id])
+ data=params[:access_link]
+ @stop_area = Chouette::StopArea.find(data[:stop_area_id])
+ @orientation = data[:link_orientation_type]
+ create!
+ end
+
+ def edit
+ @access_point = Chouette::AccessPoint.find(params[:access_point_id])
+ @access_link = Chouette::AccessLink.find(params[:id])
+ @stop_area = @access_link.stop_area
+ @orientation = @access_link.link_orientation_type
+ edit!
+ end
+ protected
+
+ alias_method :access_link, :resource
+
+# def map
+# @map = AccessLinkMap.new(access_link).with_helpers(self)
+# end
+
+ def collection
+ @q = parent.access_links.search(params[:q])
+ @access_links ||=
+ begin
+ access_links = @q.result(:distinct => true).order(:name)
+ access_links = access_links.paginate(:page => params[:page]) if @per_page.present?
+ access_links
+ end
+ end
+
+end
diff --git a/app/controllers/access_points_controller.rb b/app/controllers/access_points_controller.rb
new file mode 100644
index 000000000..4f3c0d717
--- /dev/null
+++ b/app/controllers/access_points_controller.rb
@@ -0,0 +1,54 @@
+class AccessPointsController < ChouetteController
+ defaults :resource_class => Chouette::AccessPoint
+
+ belongs_to :referential do
+ belongs_to :stop_area, :parent_class => Chouette::StopArea, :optional => true, :polymorphic => true
+ end
+
+ respond_to :html, :kml, :xml, :json
+
+
+ def index
+ request.format.kml? ? @per_page = nil : @per_page = 12
+ index!
+ end
+
+ def show
+ map.editable = false
+ @access_links = @access_point.access_link_matrix
+ show! do |format|
+ unless access_point.position or params[:default]
+ format.kml {
+ render :nothing => true, :status => :not_found
+ }
+
+ end
+ end
+ end
+
+ def edit
+ access_point.position ||= access_point.default_position
+ map.editable = true
+ edit!
+ end
+
+
+ protected
+
+ alias_method :access_point, :resource
+
+ def map
+ @map = AccessPointMap.new(access_point).with_helpers(self)
+ end
+
+ def collection
+ @q = parent.access_points.search(params[:q])
+ @access_points ||=
+ begin
+ access_points = @q.result(:distinct => true).order(:name)
+ access_points = access_points.paginate(:page => params[:page]) if @per_page.present?
+ access_points
+ end
+ end
+
+end
diff --git a/app/controllers/stop_areas_controller.rb b/app/controllers/stop_areas_controller.rb
index 08cf86853..dfd756d9b 100644
--- a/app/controllers/stop_areas_controller.rb
+++ b/app/controllers/stop_areas_controller.rb
@@ -34,6 +34,11 @@ class StopAreasController < ChouetteController
@stops = stop_area.routing_stops
end
+ def access_links
+ @stop_area = stop_area
+ @access_links = stop_area.access_link_matrix
+ end
+
def index
request.format.kml? ? @per_page = nil : @per_page = 12
index!
@@ -41,6 +46,7 @@ class StopAreasController < ChouetteController
def show
map.editable = false
+ @access_points = @stop_area.access_points
show! do |format|
unless stop_area.position or params[:default]
format.kml {