aboutsummaryrefslogtreecommitdiffstats
path: root/app/controllers/access_links_controller.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/controllers/access_links_controller.rb')
-rw-r--r--app/controllers/access_links_controller.rb73
1 files changed, 73 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