diff options
| author | Alban Peignier | 2016-09-10 16:48:44 +0200 |
|---|---|---|
| committer | Alban Peignier | 2016-09-10 16:48:44 +0200 |
| commit | 69473fd3c1a8e2d3a9dcfce70c63c6d0a60edd4e (patch) | |
| tree | 8709b50098db1b5a48caa5df2b245fb939e3039a /app/controllers | |
| parent | dd300bbeae39ec67f0dc811b17720b03263bac20 (diff) | |
| download | chouette-core-69473fd3c1a8e2d3a9dcfce70c63c6d0a60edd4e.tar.bz2 | |
Manage GroupOfLines into Referential. Refs #838
Diffstat (limited to 'app/controllers')
| -rw-r--r-- | app/controllers/referential_group_of_lines_controller.rb | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/app/controllers/referential_group_of_lines_controller.rb b/app/controllers/referential_group_of_lines_controller.rb new file mode 100644 index 000000000..b00f5360b --- /dev/null +++ b/app/controllers/referential_group_of_lines_controller.rb @@ -0,0 +1,71 @@ +class ReferentialGroupOfLinesController < ChouetteController + defaults :resource_class => Chouette::GroupOfLine, :collection_name => 'group_of_lines', :instance_name => 'group_of_line' + + respond_to :html + respond_to :xml + respond_to :json + respond_to :kml, :only => :show + respond_to :js, :only => :index + + belongs_to :referential + + def show + @map = GroupOfLineMap.new(resource).with_helpers(self) + @lines = resource.lines.order(:name) + show! do + build_breadcrumb :show + end + end + + def index + index! do |format| + format.html { + if collection.out_of_bounds? + redirect_to params.merge(:page => 1) + end + build_breadcrumb :index + } + end + end + + + def name_filter + respond_to do |format| + format.json { render :json => filtered_group_of_lines_maps} + end + end + + + protected + + def filtered_group_of_lines_maps + filtered_group_of_lines.collect do |group_of_line| + { :id => group_of_line.id, :name => group_of_line.name } + end + end + + def filtered_group_of_lines + referential.group_of_lines.select{ |t| t.name =~ /#{params[:q]}/i } + end + + def collection + @q = referential.group_of_lines.search(params[:q]) + @group_of_lines ||= @q.result(:distinct => true).order(:name).paginate(:page => params[:page]) + end + + def resource_url(group_of_line = nil) + referential_group_of_line_path(referential, group_of_line || resource) + end + + def collection_url + referential_group_of_lines_path(referential) + end + + + private + + def group_of_line_params + params.require(:group_of_line).permit( :objectid, :object_version, :creation_time, :creator_id, :name, :comment, :lines, :registration_number, :line_tokens) + end + +end |
