aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/controllers/time_tables_controller.rb10
-rw-r--r--app/inputs/search_stop_area_input.rb2
-rw-r--r--app/inputs/search_time_table_input.rb40
-rw-r--r--app/views/connection_links/select_areas.html.erb4
-rw-r--r--app/views/stop_areas/add_children.html.erb2
-rw-r--r--app/views/stop_areas/index.rabl9
-rw-r--r--app/views/stop_areas/select_parent.html.erb4
-rw-r--r--app/views/stop_areas/show.rabl9
-rw-r--r--app/views/time_tables/comment_filter.json.rabl5
-rw-r--r--app/views/time_tables/index.json.rabl5
-rw-r--r--app/views/time_tables/time_tables.json.rabl5
-rw-r--r--app/views/vehicle_journeys/_form.html.erb16
12 files changed, 81 insertions, 30 deletions
diff --git a/app/controllers/time_tables_controller.rb b/app/controllers/time_tables_controller.rb
index 586713c60..2a4042521 100644
--- a/app/controllers/time_tables_controller.rb
+++ b/app/controllers/time_tables_controller.rb
@@ -33,10 +33,7 @@ class TimeTablesController < ChouetteController
end
def comment_filter
- respond_to do |format|
- format.json { render :json => filtered_time_tables_maps}
- end
-
+ @time_tables = filtered_time_tables
end
def index
@@ -68,11 +65,6 @@ class TimeTablesController < ChouetteController
protected
- def filtered_time_tables_maps
- filtered_time_tables.collect do |time_table|
- { :id => time_table.id, :name => time_table_description(time_table) }
- end
- end
def filtered_time_tables
referential.time_tables.select{ |t| t.comment =~ /#{params[:q]}/i }
end
diff --git a/app/inputs/search_stop_area_input.rb b/app/inputs/search_stop_area_input.rb
index 8003a513a..44f9cf82a 100644
--- a/app/inputs/search_stop_area_input.rb
+++ b/app/inputs/search_stop_area_input.rb
@@ -13,7 +13,7 @@ class SearchStopAreaInput < Formtastic::Inputs::SearchInput
noResultsText: '#{options[:no_result_text]}',
searchingText: '#{options[:searching_text]}',
resultsFormatter: function(item){ return '<li><div class=\"name\">' + item.name + '</div><div class=\"info\">' + item.area_type + '</div><div class=\"info\">' + item.zip_code + ' ' + item.city_name + '</div></li>' },
- tokenFormatter: function(item) { return '<li><p>' + item.name + '</p></li>' }
+ tokenFormatter: function(item){ return '<li><div class=\"name\">' + item.name + '</div><div class=\"info\">' + item.area_type + '</div><div class=\"info\">' + item.zip_code + ' ' + item.city_name + '</div></li>' },
});
});").html_safe)
end
diff --git a/app/inputs/search_time_table_input.rb b/app/inputs/search_time_table_input.rb
new file mode 100644
index 000000000..49f266d7a
--- /dev/null
+++ b/app/inputs/search_time_table_input.rb
@@ -0,0 +1,40 @@
+class SearchTimeTableInput < Formtastic::Inputs::SearchInput
+
+ def search
+ if options[:json]
+ tokenLimit = options[:tokenLimit].present? ? options[:tokenLimit] : "null"
+ template.content_tag( :script,
+ ("$(document).ready(function() {
+ $('##{dom_id}').tokenInput('#{options[:json]}', {
+ crossDomain: false,
+ tokenLimit: #{tokenLimit},
+ minChars: 2,
+ preventDuplicates: true,
+ hintText: '#{options[:hint_text]}',
+ noResultsText: '#{options[:no_result_text]}',
+ searchingText: '#{options[:searching_text]}',
+ resultsFormatter: function(item){ return '<li><div class=\"comment\">' + item.comment + '</div><div class=\"info\">' + item.time_table_bounding + '</div><div class=\"info\">' + item.composition_info + '</div></li>' },
+ tokenFormatter: function(item){ return '<li><div class=\"comment\">' + item.comment + '</div><div class=\"info\">' + item.time_table_bounding + '</div><div class=\"info\">' + item.composition_info + '</div></li>' },
+ });
+ });").html_safe)
+ end
+ end
+
+ def to_html
+ input_wrapping do
+ label_html <<
+ builder.search_field(method, input_html_options) <<
+ search
+ end
+ end
+
+ def input_html_options
+ super.merge({
+ :required => nil,
+ :autofocus => nil,
+ :class => 'token-input',
+ 'data-model-name' => object.class.model_name.human
+ })
+ end
+
+end
diff --git a/app/views/connection_links/select_areas.html.erb b/app/views/connection_links/select_areas.html.erb
index 17f6b193f..c98b4994e 100644
--- a/app/views/connection_links/select_areas.html.erb
+++ b/app/views/connection_links/select_areas.html.erb
@@ -3,8 +3,8 @@
<%= semantic_form_for [@referential, @connection_link] do |form| %>
<div>
<%= form.inputs do %>
- <%= form.input :departure_id, :as => :search_stop_area, :json => referential_connection_link_connection_link_areas_path(@referential, @connection_link, :format => :json), :tokenLimit => 1, :hint_text => t('search_hint'), :no_result_text => t('no_result_text'),:searching_text => t('searching_term'), :input_html => { :"data-pre" => ( @departure.present? ? [ { :id => @departure.id.to_s, :name => "#{@departure.name}" } ]: [] ).to_json } %>
- <%= form.input :arrival_id, :as => :search_stop_area, :json => referential_connection_link_connection_link_areas_path(@referential, @connection_link, :format => :json), :tokenLimit => 1, :hint_text => t('search_hint'), :no_result_text => t('no_result_text'),:searching_text => t('searching_term'), :input_html => { :"data-pre" => ( @arrival.present? ? [ { :id => @arrival.id.to_s, :name => "#{@arrival.name}" } ]: [] ).to_json } %>
+ <%= form.input :departure_id, :as => :search_stop_area, :json => referential_connection_link_connection_link_areas_path(@referential, @connection_link, :format => :json), :tokenLimit => 1, :hint_text => t('search_hint'), :no_result_text => t('no_result_text'),:searching_text => t('searching_term'), :input_html => { :"data-pre" => Rabl::Renderer.new('stop_areas/show', [@departure], :view_path => 'app/views', :format => :json).render } %>
+ <%= form.input :arrival_id, :as => :search_stop_area, :json => referential_connection_link_connection_link_areas_path(@referential, @connection_link, :format => :json), :tokenLimit => 1, :hint_text => t('search_hint'), :no_result_text => t('no_result_text'),:searching_text => t('searching_term'), :input_html => { :"data-pre" => Rabl::Renderer.new('stop_areas/show', [@arrival], :view_path => 'app/views', :format => :json).render } %>
<% end %>
<%= form.actions do %>
diff --git a/app/views/stop_areas/add_children.html.erb b/app/views/stop_areas/add_children.html.erb
index 33cc81b27..732e28466 100644
--- a/app/views/stop_areas/add_children.html.erb
+++ b/app/views/stop_areas/add_children.html.erb
@@ -3,7 +3,7 @@
<%= semantic_form_for [@referential, @stop_area] do |form| %>
<div>
<%= form.inputs do %>
- <%= form.input :children_ids, :as => :search_stop_area, :json => referential_stop_area_stop_area_children_path(@referential, @stop_area, :format => :json), :hint_text => t('search_hint'), :no_result_text => t('no_result_text'),:searching_text => t('searching_term'), :input_html => { :"data-pre" => ( @children.map { |child| { :id => child.id.to_s, :name => "#{child.name}" } } ).to_json } %>
+ <%= form.input :children_ids, :as => :search_stop_area, :json => referential_stop_area_stop_area_children_path(@referential, @stop_area, :format => :json), :hint_text => t('search_hint'), :no_result_text => t('no_result_text'),:searching_text => t('searching_term'), :input_html => { :"data-pre" => Rabl::Renderer.new('stop_areas/index', @children, :view_path => 'app/views', :format => :json).render } %>
<% end %>
<%= form.actions do %>
diff --git a/app/views/stop_areas/index.rabl b/app/views/stop_areas/index.rabl
new file mode 100644
index 000000000..72b736858
--- /dev/null
+++ b/app/views/stop_areas/index.rabl
@@ -0,0 +1,9 @@
+collection @stop_areas
+
+node do |stop_area|
+ { :id => stop_area.id, :name => stop_area.name || "", :zip_code => stop_area.zip_code || "", :city_name => stop_area.city_name || "" }
+end
+
+node :area_type do |area|
+ I18n.t("area_types.label.#{area.area_type.underscore}") || ""
+end \ No newline at end of file
diff --git a/app/views/stop_areas/select_parent.html.erb b/app/views/stop_areas/select_parent.html.erb
index 9bd25f4dd..9909e49d0 100644
--- a/app/views/stop_areas/select_parent.html.erb
+++ b/app/views/stop_areas/select_parent.html.erb
@@ -2,8 +2,8 @@
<%= semantic_form_for [@referential, @stop_area] do |form| %>
<div>
- <%= form.inputs do %>
- <%= form.input :parent_id, :as => :search_stop_area, :json => referential_stop_area_stop_area_parents_path(@referential, @stop_area, :format => :json), :tokenLimit => 1, :hint_text => t('search_hint'), :no_result_text => t('no_result_text'),:searching_text => t('searching_term'), :input_html => { :"data-pre" => ( @parent.present? ? [ { :id => @parent.id.to_s, :name => "#{@parent.name}" } ]: [] ).to_json } %>
+ <%= form.inputs do %>
+ <%= form.input :parent_id, :as => :search_stop_area, :json => referential_stop_area_stop_area_parents_path(@referential, @stop_area, :format => :json), :hint_text => t('search_hint'), :no_result_text => t('no_result_text'), :searching_text => t('searching_term'), :input_html => { :"data-pre" => Rabl::Renderer.new('stop_areas/show', [@parent], :view_path => 'app/views', :format => :json).render } %>
<% end %>
<%= form.actions do %>
diff --git a/app/views/stop_areas/show.rabl b/app/views/stop_areas/show.rabl
new file mode 100644
index 000000000..a03a3511d
--- /dev/null
+++ b/app/views/stop_areas/show.rabl
@@ -0,0 +1,9 @@
+object @stop_area
+
+node do |stop_area|
+ { :id => stop_area.id, :name => stop_area.name || "", :zip_code => stop_area.zip_code || "", :city_name => stop_area.city_name || "" }
+end
+
+node :area_type do |area|
+ I18n.t("area_types.label.#{area.area_type.underscore}") || ""
+end
diff --git a/app/views/time_tables/comment_filter.json.rabl b/app/views/time_tables/comment_filter.json.rabl
new file mode 100644
index 000000000..dec29cb69
--- /dev/null
+++ b/app/views/time_tables/comment_filter.json.rabl
@@ -0,0 +1,5 @@
+collection @time_tables, :object_root => false
+
+node do |time_table|
+ { :id => time_table.id, :comment => time_table.comment, :time_table_bounding => time_table_bounding( time_table), :composition_info => composition_info(time_table) }
+end
diff --git a/app/views/time_tables/index.json.rabl b/app/views/time_tables/index.json.rabl
new file mode 100644
index 000000000..dec29cb69
--- /dev/null
+++ b/app/views/time_tables/index.json.rabl
@@ -0,0 +1,5 @@
+collection @time_tables, :object_root => false
+
+node do |time_table|
+ { :id => time_table.id, :comment => time_table.comment, :time_table_bounding => time_table_bounding( time_table), :composition_info => composition_info(time_table) }
+end
diff --git a/app/views/time_tables/time_tables.json.rabl b/app/views/time_tables/time_tables.json.rabl
new file mode 100644
index 000000000..dec29cb69
--- /dev/null
+++ b/app/views/time_tables/time_tables.json.rabl
@@ -0,0 +1,5 @@
+collection @time_tables, :object_root => false
+
+node do |time_table|
+ { :id => time_table.id, :comment => time_table.comment, :time_table_bounding => time_table_bounding( time_table), :composition_info => composition_info(time_table) }
+end
diff --git a/app/views/vehicle_journeys/_form.html.erb b/app/views/vehicle_journeys/_form.html.erb
index d5d4cffdd..7d530a66e 100644
--- a/app/views/vehicle_journeys/_form.html.erb
+++ b/app/views/vehicle_journeys/_form.html.erb
@@ -12,7 +12,7 @@
<%= form.input :facility %>
<%= form.input :vehicle_type_identifier%>
<%= form.input :objectid, :required => !@vehicle_journey.new_record?, :input_html => { :title => t("formtastic.titles.vehicle_journey.objectid")} %>
- <%= form.input :time_table_tokens, :label => t('.time_tables'), :as => :text, :input_html => { :"data-pre" => ( @vehicle_journey.time_tables.map { |time_table| { :id => time_table.id, :name => time_table_description(time_table) } } ).to_json } %>
+ <%= form.input :time_table_tokens, :label => t('.time_tables'), :as => :search_time_table, :json => comment_filter_referential_time_tables_path(@referential, :format => :json), :hint_text => t('search_hint'), :no_result_text => t('no_result_text'),:searching_text => t('searching_term'), :input_html => { :"data-pre" => ( @vehicle_journey.time_tables.map{ |time_table| { :id => time_table.id, :comment => time_table.comment, :time_table_bounding => time_table_bounding( time_table), :composition_info => composition_info(time_table) } } ).to_json } %>
<li class="input">
<%= form.label @vehicle_journey.human_attribute_name(:vehicle_journey_at_stop_ids), :class => "label" %>
</li>
@@ -65,17 +65,3 @@
<%= javascript_include_tag edit_referential_line_route_vehicle_journey_path(@referential, @line, @route, @vehicle_journey, :format => :js) %>
<% end %>
-<script>
- $(function() {
- $( "#vehicle_journey_time_table_tokens" ).tokenInput('<%= comment_filter_referential_time_tables_path(@referential, :format => :json) %>', {
- crossDomain: false,
- prePopulate: $('#time_table_tokens').data('pre'),
- minChars: 1,
- preventDuplicates: true,
- hintText: '<%= t('search_hint') %>',
- noResultsText: '<%= t('no_result_text') %>',
- searchingText: '<%= t('searching_term') %>'
- });
- });
-</script>
-