aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuc Donnet2012-05-03 10:11:03 +0200
committerLuc Donnet2012-05-03 10:11:03 +0200
commitfa0a2e3e4223974db08f7e795ada93af442f21ec (patch)
tree9e48d5b86bb9cae20654277eba8efaac3e2ee134
parent32c1a5676e0df8524d534a71c78363ce215f92d3 (diff)
downloadchouette-core-fa0a2e3e4223974db08f7e795ada93af442f21ec.tar.bz2
Add children to stop area
-rw-r--r--app/assets/stylesheets/stop_areas.css.scss7
-rw-r--r--app/controllers/stop_area_children_controller.rb21
-rw-r--r--app/controllers/stop_areas_controller.rb6
-rw-r--r--app/views/stop_areas/add_children.html.erb29
-rw-r--r--config/locales/stop_areas.yml8
-rw-r--r--config/routes.rb2
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'