diff options
| author | Luc Donnet | 2012-05-03 10:11:03 +0200 |
|---|---|---|
| committer | Luc Donnet | 2012-05-03 10:11:03 +0200 |
| commit | fa0a2e3e4223974db08f7e795ada93af442f21ec (patch) | |
| tree | 9e48d5b86bb9cae20654277eba8efaac3e2ee134 | |
| parent | 32c1a5676e0df8524d534a71c78363ce215f92d3 (diff) | |
| download | chouette-core-fa0a2e3e4223974db08f7e795ada93af442f21ec.tar.bz2 | |
Add children to stop area
| -rw-r--r-- | app/assets/stylesheets/stop_areas.css.scss | 7 | ||||
| -rw-r--r-- | app/controllers/stop_area_children_controller.rb | 21 | ||||
| -rw-r--r-- | app/controllers/stop_areas_controller.rb | 6 | ||||
| -rw-r--r-- | app/views/stop_areas/add_children.html.erb | 29 | ||||
| -rw-r--r-- | config/locales/stop_areas.yml | 8 | ||||
| -rw-r--r-- | config/routes.rb | 2 |
6 files changed, 68 insertions, 5 deletions
diff --git a/app/assets/stylesheets/stop_areas.css.scss b/app/assets/stylesheets/stop_areas.css.scss index b837f4f15..b751723b4 100644 --- a/app/assets/stylesheets/stop_areas.css.scss +++ b/app/assets/stylesheets/stop_areas.css.scss @@ -109,4 +109,11 @@ } +#workspace.stop_areas.add_children +{ + .token-input-list{ + display: inline-block; + } +} + diff --git a/app/controllers/stop_area_children_controller.rb b/app/controllers/stop_area_children_controller.rb new file mode 100644 index 000000000..a3a59047f --- /dev/null +++ b/app/controllers/stop_area_children_controller.rb @@ -0,0 +1,21 @@ +class StopAreaChildrenController < ChouetteController + + respond_to :json, :only => :index + + def index + respond_to do |format| + format.json { render :json => children_maps } + end + end + + def children_maps + children.collect do |child| + { :id => child.id.to_s, :name => "#{child.name} #{child.country_code}" } + end + end + + def children + referential.stop_areas.find(params[:stop_area_id]).possible_children.select{ |p| p.name =~ /#{params[:q]}/i } + end + +end diff --git a/app/controllers/stop_areas_controller.rb b/app/controllers/stop_areas_controller.rb index d881baae7..e0d5a161c 100644 --- a/app/controllers/stop_areas_controller.rb +++ b/app/controllers/stop_areas_controller.rb @@ -21,11 +21,7 @@ class StopAreasController < ChouetteController def add_children @stop_area = stop_area - end - - def possible_children - @possible_children= stop_area.possible_children - render :layout => false + @children = stop_area.children end def index diff --git a/app/views/stop_areas/add_children.html.erb b/app/views/stop_areas/add_children.html.erb new file mode 100644 index 000000000..a8b29146a --- /dev/null +++ b/app/views/stop_areas/add_children.html.erb @@ -0,0 +1,29 @@ +<%= title_tag t('stop_areas.add_children.title', :stop_area => @stop_area.name ) %> + +<%= semantic_form_for [@referential, @stop_area] do |form| %> +<div> + <%= form.inputs do %> + <%= form.input :children_ids, :as => :text, :input_html => { :"data-pre" => ( @children.map { |child| { :id => child.id.to_s, :name => "#{child.name} #{child.country_code}" } } ).to_json } %> + <% end %> + + <%= form.buttons do %> + <%= form.commit_button %> + ou <%= link_to "revenir", [@referential, @stop_area] %> + <% end %> +</div> +<% end %> + +<script> + $(function() { + $( "#stop_area_children_ids" ).tokenInput('<%= referential_stop_area_stop_area_children_path(@referential, @stop_area, :format => :json) %>', { + crossDomain: false, + prePopulate: $('#stop_area_children_id').data('pre'), + minChars: 3, + }); + }); +</script> + +<% content_for :sidebar do %> +<ul class="actions"> +</ul> +<% end %> diff --git a/config/locales/stop_areas.yml b/config/locales/stop_areas.yml index 78ca3c2d1..db12e4fc4 100644 --- a/config/locales/stop_areas.yml +++ b/config/locales/stop_areas.yml @@ -27,6 +27,8 @@ en: area_type: Area Type select_parent: title: Select parent of stop area %{stop_area} + add_children: + title: Add children of stop area %{stop_area} activerecord: models: stop_area: Stop area @@ -50,6 +52,8 @@ en: object_version: Version creation_time: Created on creator_id: Created by + children_ids: Children + parent: Parent formtastic: hints: stop_area: @@ -85,6 +89,8 @@ fr: area_type: Type d'arrêt select_parent: title: Sélection du parent de l'arrêt %{stop_area} + add_children: + title: Ajouter les enfants de l'arrêt %{stop_area} activerecord: models: stop_area: Arrêt @@ -109,6 +115,8 @@ fr: object_version: Version creation_time: Créé le creator_id: Créé par + children_ids: Enfants + parent: Parent formtastic: hints: stop_area: diff --git a/config/routes.rb b/config/routes.rb index e5ad83ca6..38ac128ba 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -18,6 +18,7 @@ ChouetteIhm::Application.routes.draw do resources :lines, :networks do resources :stop_areas do resources :stop_area_parents + resources :stop_area_children member do get 'add_children' get 'select_parent' @@ -35,6 +36,7 @@ ChouetteIhm::Application.routes.draw do resources :stop_areas do resources :stop_area_parents + resources :stop_area_children member do get 'add_children' get 'select_parent' |
