diff options
| author | Michel Etienne | 2012-11-06 18:53:29 +0100 |
|---|---|---|
| committer | Michel Etienne | 2012-11-06 18:53:29 +0100 |
| commit | 48842ac1197560b1b7f597e3e1be7c4d93f8d098 (patch) | |
| tree | dfeee03bf8ae1fb2b4a665b61c95bfe33056105f /app/controllers | |
| parent | c1c4d3fbc9231fe6b1bdd325faced49f33cdf1b2 (diff) | |
| download | chouette-core-48842ac1197560b1b7f597e3e1be7c4d93f8d098.tar.bz2 | |
add access_points and access_links managment
Diffstat (limited to 'app/controllers')
| -rw-r--r-- | app/controllers/access_links_controller.rb | 73 | ||||
| -rw-r--r-- | app/controllers/access_points_controller.rb | 54 | ||||
| -rw-r--r-- | app/controllers/stop_areas_controller.rb | 6 |
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 { |
