aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuc Donnet2014-12-02 11:47:49 +0100
committerLuc Donnet2014-12-02 11:47:49 +0100
commit228c5a383eff1c6175a97a8ed446d6777b9310c8 (patch)
tree742766cde2cac2d495d1e7995d64646269eb22d6
parentc5379f821a7f280f296f0b0dd0180aa57ce6b9c8 (diff)
downloadchouette-core-228c5a383eff1c6175a97a8ed446d6777b9310c8.tar.bz2
Fix autocomplete stop areas in one line Refs #0030224
-rw-r--r--Gemfile.lock3
-rw-r--r--app/assets/stylesheets/vendor/token-input.css2
-rw-r--r--app/controllers/autocomplete_stop_areas_controller.rb22
-rw-r--r--app/helpers/application_helper.rb6
-rw-r--r--app/inputs/search_stop_area_input.rb41
-rw-r--r--app/views/autocomplete_stop_areas/index.rabl17
-rw-r--r--app/views/autocomplete_stop_areas/show.rabl18
-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/add_routing_stops.html.erb2
-rw-r--r--app/views/stop_areas/select_parent.html.erb2
11 files changed, 73 insertions, 46 deletions
diff --git a/Gemfile.lock b/Gemfile.lock
index da39fbd57..7ee8f548a 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -217,9 +217,8 @@ GEM
polyamorous (1.1.0)
activerecord (>= 3.0)
polyglot (0.3.5)
- rabl (0.7.8)
+ rabl (0.11.4)
activesupport (>= 2.3.14)
- multi_json (~> 1.0)
rack (1.4.5)
rack-cache (1.2)
rack (>= 0.4)
diff --git a/app/assets/stylesheets/vendor/token-input.css b/app/assets/stylesheets/vendor/token-input.css
index 89dbd802e..5fccc6a38 100644
--- a/app/assets/stylesheets/vendor/token-input.css
+++ b/app/assets/stylesheets/vendor/token-input.css
@@ -62,7 +62,7 @@ li.token-input-token p {
margin: 0;
}
-li.token-input-token span {
+li.token-input-token span.token-input-delete-token {
float: right;
color: #777;
cursor: pointer;
diff --git a/app/controllers/autocomplete_stop_areas_controller.rb b/app/controllers/autocomplete_stop_areas_controller.rb
index 740383537..64a62efe5 100644
--- a/app/controllers/autocomplete_stop_areas_controller.rb
+++ b/app/controllers/autocomplete_stop_areas_controller.rb
@@ -1,25 +1,19 @@
-class AutocompleteStopAreasController < ApplicationController
- include ApplicationHelper
+class AutocompleteStopAreasController < InheritedResources::Base
+ respond_to :json, :only => [:index, :children, :parent, :physicals]
+
before_filter :switch_referential
-
+
def switch_referential
Apartment::Database.switch(referential.slug)
end
- respond_to :json, :only => [:index, :children, :parent, :physicals]
-
- def index
- @options = { :stop_area_path => root_url }
- Rabl::Renderer.new('autocomplete_stop_areas/index', stop_areas_by_name, :view_path => 'app/views', :format => :json).render
- end
+ def referential
+ @referential ||= current_organisation.referentials.find params[:referential_id]
+ end
protected
- def referential
- @referential ||= current_organisation.referentials.find params[:referential_id]
- end
-
- def stop_areas_by_name
+ def collection
result = []
if physical_filter?
result = referential.stop_areas.physical
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index bb8cf84e4..88ff3fecf 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -1,5 +1,9 @@
module ApplicationHelper
-
+
+ def stop_area_picture_url(stop_area)
+ image_path("map/#{stop_area.area_type.underscore}.png")
+ end
+
def selected_referential?
@referential.present? and not @referential.new_record?
end
diff --git a/app/inputs/search_stop_area_input.rb b/app/inputs/search_stop_area_input.rb
index 901715dc1..2365947d0 100644
--- a/app/inputs/search_stop_area_input.rb
+++ b/app/inputs/search_stop_area_input.rb
@@ -1,29 +1,42 @@
class SearchStopAreaInput < Formtastic::Inputs::SearchInput
-
+
def search
if options[:json]
tokenLimit = options[:tokenLimit].present? ? options[:tokenLimit] : "null"
template.content_tag( :script,
("$(document).ready(function() {
+
var item_name = function( item){
- var result = item.name;
- console.log( item );
- console.log( item.registration_number );
- if ( item.registration_number !=null && item.registration_number.length > 0) {
- result += ' (' + item.registration_number + ')';
+ var result = item.short_name;
+ if ( item.short_registration_number != '' ) {
+ result += ' <small>[' + item.short_registration_number + ']</small>';
}
return result;
};
- var item_format = function( item ){
- var info = '';
- if ( item.zip_code != null ) {
- info += item.zip_code + ' ';
- }
- if ( item.city_name != null ) {
- info += item.city_name;
+
+ var item_localization = function( item){
+ var localization = item.zip_code + ' ' + item.short_city_name;
+ return localization;
+ };
+
+ var item_format = function( item ){
+ var name = item_name( item );
+ var localization = item_localization( item );
+
+ html_result = '<li>';
+ html_result += '<span><image src=\"' + item.stop_area_path + '\" height=\"25px\" width=\"25px\"></span>'
+ if(name != '')
+ {
+ html_result += '<span style=\"height:25px; line-height:25px; margin-left: 5px; \">' + name + '</span>' ;
+ }
+ if(localization != '')
+ {
+ html_result += '<small style=\"height:25px; line-height:25px; margin-left: 10px; color: #555; \">' + localization + '</small>';
}
- return '<li><div class=\"name\">' + item_name( item) + '</div><div class=\"info\">' + item.area_type + '</div><div class=\"info\">' + info + '</div></li>'
+ html_result += '</li>';
+ return html_result;
};
+
$('##{dom_id}').tokenInput('#{options[:json]}', {
crossDomain: false,
tokenLimit: #{tokenLimit},
diff --git a/app/views/autocomplete_stop_areas/index.rabl b/app/views/autocomplete_stop_areas/index.rabl
index 9864ff2d3..6d81442c7 100644
--- a/app/views/autocomplete_stop_areas/index.rabl
+++ b/app/views/autocomplete_stop_areas/index.rabl
@@ -1,9 +1,18 @@
collection @stop_areas
node do |stop_area|
- { :id => stop_area.id, :stop_area_path => @options[ :stop_area_path], :registration_number => stop_area.registration_number || "", :name => stop_area.name || "", :zip_code => stop_area.zip_code || "", :city_name => stop_area.city_name || "" }
+ {
+ :id => stop_area.id,
+ :registration_number => stop_area.registration_number || "",
+ :short_registration_number => truncate(stop_area.registration_number, :length => 10) || "",
+ :name => stop_area.name || "",
+ :short_name => truncate(stop_area.name, :length => 30) || "",
+ :zip_code => stop_area.zip_code || "",
+ :city_name => stop_area.city_name || "",
+ :short_city_name => truncate(stop_area.city_name, :length => 15) || ""
+ }
end
-node :area_type do |area|
- I18n.t("area_types.label.#{area.area_type.underscore}") || ""
-end
+node(:stop_area_path) { |stop_area|
+ stop_area_picture_url(stop_area) || ""
+}
diff --git a/app/views/autocomplete_stop_areas/show.rabl b/app/views/autocomplete_stop_areas/show.rabl
index 989f6f4b1..73ce277cf 100644
--- a/app/views/autocomplete_stop_areas/show.rabl
+++ b/app/views/autocomplete_stop_areas/show.rabl
@@ -1,10 +1,18 @@
object @stop_area
-Rails.logger.debug "inside Rabl view call helper for help_path #{self.inspect}"
node do |stop_area|
- { :id => stop_area.id, :registration_number => stop_area.registration_number || "", :image_path => @options[ :image_path ], :name => stop_area.name || "", :zip_code => stop_area.zip_code || "", :city_name => stop_area.city_name || "" }
+ {
+ :id => stop_area.id,
+ :registration_number => stop_area.registration_number || "",
+ :short_registration_number => truncate(stop_area.registration_number, :length => 10) || "",
+ :name => stop_area.name || "",
+ :short_name => truncate(stop_area.name, :length => 30) || "",
+ :zip_code => stop_area.zip_code || "",
+ :city_name => stop_area.city_name || "",
+ :short_city_name => truncate(stop_area.city_name, :length => 15) || ""
+ }
end
-node :area_type do |area|
- I18n.t("area_types.label.#{area.area_type.underscore}") || ""
-end
+node(:stop_area_path) { |stop_area|
+ stop_area_picture_url(stop_area) || ""
+}
diff --git a/app/views/connection_links/select_areas.html.erb b/app/views/connection_links/select_areas.html.erb
index 0d8f25351..b4c40c5f6 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_autocomplete_stop_areas_path(@referential, :format => :json)+"?filter=itl_excluded", :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('autocomplete_stop_areas/show', [@departure].compact, :view_path => 'app/views', :format => :json).render } %>
- <%= form.input :arrival_id, :as => :search_stop_area, :json => referential_autocomplete_stop_areas_path(@referential, :format => :json)+"?filter=itl_excluded", :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('autocomplete_stop_areas/show', [@arrival].compact, :view_path => 'app/views', :format => :json).render } %>
+ <%= form.input :departure_id, :as => :search_stop_area, :json => referential_autocomplete_stop_areas_path(@referential, :format => :json)+"?filter=itl_excluded", :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('autocomplete_stop_areas/show', [@departure].compact, :view_path => 'app/views', :format => :json, :scope => self).render } %>
+ <%= form.input :arrival_id, :as => :search_stop_area, :json => referential_autocomplete_stop_areas_path(@referential, :format => :json)+"?filter=itl_excluded", :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('autocomplete_stop_areas/show', [@arrival].compact, :view_path => 'app/views', :format => :json, :scope => self).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 362915a54..4d30ba674 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_autocomplete_stop_areas_path(@referential, :format => :json)+"?relation=children&target_type=#{@stop_area.area_type}", :hint_text => t('search_hint'), :no_result_text => t('no_result_text'),:searching_text => t('searching_term'), :input_html => { :"data-pre" => Rabl::Renderer.new('autocomplete_stop_areas/index', @children, :view_path => 'app/views', :format => :json).render } %>
+ <%= form.input :children_ids, :as => :search_stop_area, :json => referential_autocomplete_stop_areas_path(@referential, :format => :json)+"?relation=children&target_type=#{@stop_area.area_type}", :hint_text => t('search_hint'), :no_result_text => t('no_result_text'),:searching_text => t('searching_term'), :input_html => { :"data-pre" => Rabl::Renderer.new('autocomplete_stop_areas/index', @children, :view_path => 'app/views', :format => :json, :scope => self ).render } %>
<% end %>
<%= form.actions do %>
diff --git a/app/views/stop_areas/add_routing_stops.html.erb b/app/views/stop_areas/add_routing_stops.html.erb
index 8675c199b..310e2f8b0 100644
--- a/app/views/stop_areas/add_routing_stops.html.erb
+++ b/app/views/stop_areas/add_routing_stops.html.erb
@@ -3,7 +3,7 @@
<%= semantic_form_for [@referential, @stop_area] do |form| %>
<div>
<%= form.inputs do %>
- <%= form.input :routing_stop_ids, :as => :search_stop_area, :json => referential_autocomplete_stop_areas_path(@referential, :format => :json)+"?filter=itl_excluded", :hint_text => t('search_hint'), :no_result_text => t('no_result_text'),:searching_text => t('searching_term'), :input_html => { :"data-pre" => Rabl::Renderer.new('autocomplete_stop_areas/index', @stop_area.routing_stops, :view_path => 'app/views', :format => :json).render } %>
+ <%= form.input :routing_stop_ids, :as => :search_stop_area, :json => referential_autocomplete_stop_areas_path(@referential, :format => :json)+"?filter=itl_excluded", :hint_text => t('search_hint'), :no_result_text => t('no_result_text'),:searching_text => t('searching_term'), :input_html => { :"data-pre" => Rabl::Renderer.new('autocomplete_stop_areas/index', @stop_area.routing_stops, :view_path => 'app/views', :format => :json, :scope => self).render } %>
<% end %>
<%= form.actions do %>
diff --git a/app/views/stop_areas/select_parent.html.erb b/app/views/stop_areas/select_parent.html.erb
index 9a830d67d..3f550d370 100644
--- a/app/views/stop_areas/select_parent.html.erb
+++ b/app/views/stop_areas/select_parent.html.erb
@@ -3,7 +3,7 @@
<%= semantic_form_for [@referential, @stop_area] do |form| %>
<div>
<%= form.inputs do %>
- <%= form.input :parent_id, :as => :search_stop_area, :json => referential_autocomplete_stop_areas_path(@referential, :format => :json)+"?relation=parent&target_type=#{@stop_area.area_type}", :hint_text => t('search_hint'), :no_result_text => t('no_result_text'), :searching_text => t('searching_term'), :tokenLimit => 1, :input_html => { :"data-pre" => Rabl::Renderer.new('autocomplete_stop_areas/index', [@parent].compact, :stop_area_path => root_url, :view_path => 'app/views', :format => :json).render } %>
+ <%= form.input :parent_id, :as => :search_stop_area, :json => referential_autocomplete_stop_areas_path(@referential, :format => :json)+"?relation=parent&target_type=#{@stop_area.area_type}", :hint_text => t('search_hint'), :no_result_text => t('no_result_text'), :searching_text => t('searching_term'), :tokenLimit => 1, :input_html => { :"data-pre" => Rabl::Renderer.new('autocomplete_stop_areas/index', [@parent].compact, :view_path => 'app/views', :format => :json, :scope => self ).render } %>
<% end %>
<%= form.actions do %>