aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichel Etienne2014-08-20 13:35:50 +0200
committerMichel Etienne2014-08-20 13:35:50 +0200
commit4e787048ecdda31c129dcada8385e74124795b82 (patch)
tree3047ddc9087dcaf1d72deb0b7f1e111c6c7cd29d
parent44690f334906c6c818aa8443bf46d6e4f33de832 (diff)
parentb6d1c06128a67878ca5430dff005eaabb026307b (diff)
downloadchouette-core-4e787048ecdda31c129dcada8385e74124795b82.tar.bz2
Merge branch 'sismo' of github.com:afimb/chouette2 into sismo
-rw-r--r--Gemfile1
-rw-r--r--Gemfile.lock7
-rw-r--r--app/assets/javascripts/plugins/bootstrap_timepicker_activation.coffee12
-rw-r--r--app/controllers/addresses_controller.rb101
-rw-r--r--app/inputs/check_boxes_input.rb17
-rw-r--r--app/inputs/extended_time_picker_input.rb12
-rw-r--r--app/models/referential.rb11
-rw-r--r--app/views/access_links/_form.html.erb26
-rw-r--r--app/views/access_points/_form.html.erb4
-rw-r--r--app/views/connection_links/_form.erb8
-rw-r--r--app/views/stop_areas/_form.html.erb71
-rw-r--r--config/environments/development.rb13
-rw-r--r--config/initializers/formtastic.rb96
-rw-r--r--config/routes.rb5
14 files changed, 183 insertions, 201 deletions
diff --git a/Gemfile b/Gemfile
index ce2fc899e..4fe2e5632 100644
--- a/Gemfile
+++ b/Gemfile
@@ -25,7 +25,6 @@ gem 'devise_invitable'
# Map, Geolocalization
gem "map_layers", "0.0.4"
gem "georuby-ext", "0.0.5"
-gem 'nominatim'
# User interface
gem 'language_engine', '0.0.5'
diff --git a/Gemfile.lock b/Gemfile.lock
index 316d89ab8..66e76c29c 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -143,8 +143,6 @@ GEM
factory_girl_rails (1.7.0)
factory_girl (~> 2.6.0)
railties (>= 3.0.0)
- faraday (0.9.0)
- multipart-post (>= 1.2, < 3)
fastercsv (1.5.5)
ffi (1.9.3)
ffi (1.9.3-java)
@@ -221,7 +219,6 @@ GEM
morrisjs-rails (0.4.3)
railties (> 3.1, < 5)
multi_json (1.10.1)
- multipart-post (2.0.0)
net-scp (1.0.4)
net-ssh (>= 1.99.1)
net-sftp (2.0.5)
@@ -231,9 +228,6 @@ GEM
net-ssh (>= 1.99.1)
nokogiri (1.5.10)
nokogiri (1.5.10-java)
- nominatim (0.0.5)
- faraday
- multi_json
open4 (1.3.0)
orm_adapter (0.4.0)
pg (0.11.0)
@@ -424,7 +418,6 @@ DEPENDENCIES
modernizr-rails (~> 2.0.6)
morrisjs-rails
ninoxe!
- nominatim
pg (~> 0.11.0)
rabl
rails (= 3.2.18)
diff --git a/app/assets/javascripts/plugins/bootstrap_timepicker_activation.coffee b/app/assets/javascripts/plugins/bootstrap_timepicker_activation.coffee
index bfa7c5587..9945022bc 100644
--- a/app/assets/javascripts/plugins/bootstrap_timepicker_activation.coffee
+++ b/app/assets/javascripts/plugins/bootstrap_timepicker_activation.coffee
@@ -1,8 +1,16 @@
jQuery ->
if(!(Modernizr.inputtypes && Modernizr.inputtypes.time))
- $('input[type="time"]').timepicker(
+ $('.timepicker_basic').timepicker(
template: false,
showInputs: false,
minuteStep: 1,
showMeridian: false,
- ) \ No newline at end of file
+ )
+ $('.timepicker_seconds').timepicker(
+ template: false,
+ showInputs: false,
+ minuteStep: 1,
+ secondStep: 1,
+ showMeridian: false,
+ showSeconds: true
+ ) \ No newline at end of file
diff --git a/app/controllers/addresses_controller.rb b/app/controllers/addresses_controller.rb
deleted file mode 100644
index 7e747be6a..000000000
--- a/app/controllers/addresses_controller.rb
+++ /dev/null
@@ -1,101 +0,0 @@
-class AddressesController < ChouetteController
-
- belongs_to :referential
-
- def index
- referential_path(@referential)
- @addresses = filtered_addresses
- respond_to do |format|
- format.json { render :json => @addresses.collect { |add| { :id => add.osm_id,
- :house_number => add.address ? "#{add.address.house_number}" : -1,
- :road => add.address ? "#{add.address.road}" : "#{add.display_name}",
- :postcode => add.address ? "#{add.address.postcode}" : -1,
- :city => add.address ? "#{add.address.city}" : -1,
- :country => add.address ? "#{add.address.country}" : -1,
- :lat => add.lat,
- :lon => add.lon} } }
- end
- end
-
- protected
-
- def filtered_addresses
- search = Nominatim.search(params[:q]).limit(10)
- addresses = search.address_details(true)
- #search.each_address do |sr|
- # Rails.logger.error("FILTERED ADRESS = #{sr.inspect}")
- # Rails.logger.error("\tATTRACTION = #{sr.attraction.inspect}")
- # Rails.logger.error("\tCLOTHES = #{sr.clothes.inspect}")
- # Rails.logger.error("\tHOUSE_NUMBER = #{sr.house_number.inspect}")
- # Rails.logger.error("\tROAD = #{sr.road.inspect}")
- # Rails.logger.error("\tCOMMERCIAL = #{sr.commercial.inspect}")
- # Rails.logger.error("\tPEDESTRIAN = #{sr.pedestrian.inspect}")
- # Rails.logger.error("\tSUBURB = #{sr.suburb.inspect}")
- # Rails.logger.error("\tCITY_DISTRICT = #{sr.city_district.inspect}")
- # Rails.logger.error("\tCITY = #{sr.city.inspect}")
- # Rails.logger.error("\tADMINISTRATIVE = #{sr.administrative.inspect}")
- # Rails.logger.error("\tCOUNTY = #{sr.county.inspect}")
- # Rails.logger.error("\tSTATE_DISTRICT = #{sr.state_district.inspect}")
- # Rails.logger.error("\tSTATE = #{sr.state.inspect}")
- # Rails.logger.error("\tPOSTCODE = #{sr.postcode.inspect}")
- # Rails.logger.error("\tCOUNTRY = #{sr.country.inspect}")
- # Rails.logger.error("\tCOUNTRY_CODE = #{sr.country_code.inspect}")
- # Rails.logger.error("\tPLACE = #{sr.place.inspect}")
- # Rails.logger.error("\tTOWN = #{sr.town.inspect}")
- # Rails.logger.error("\tVILLAGE = #{sr.village.inspect}")
- #end
- #if addresses
- # addresses.each do |ad|
- # Rails.logger.error("FILTERED PLACE : #{ad.inspect}")
- # Rails.logger.error("\tDISPLAY_NAME = #{ad.display_name.inspect}")
- # Rails.logger.error("\tCLASS = #{ad.class.inspect}")
- # Rails.logger.error("\tTYPE = #{ad.type.inspect}")
- # Rails.logger.error("\tADRRESS = #{ad.address.inspect}")
- # if ad.address
- # Rails.logger.error("\t\tATTRACTION = #{ad.address.attraction.inspect}")
- # Rails.logger.error("\t\tCLOTHES = #{ad.address.clothes.inspect}")
- # Rails.logger.error("\t\tHOUSE_NUMBER = #{ad.address.house_number.inspect}")
- # Rails.logger.error("\t\tROAD = #{ad.address.road.inspect}")
- # Rails.logger.error("\t\tCOMMERCIAL = #{ad.address.commercial.inspect}")
- # Rails.logger.error("\t\tPEDESTRIAN = #{ad.address.pedestrian.inspect}")
- # Rails.logger.error("\t\tSUBURB = #{ad.address.suburb.inspect}")
- # Rails.logger.error("\t\tCITY_DISTRICT = #{ad.address.city_district.inspect}")
- # Rails.logger.error("\t\tCITY = #{ad.address.city.inspect}")
- # Rails.logger.error("\t\tADMINISTRATIVE = #{ad.address.administrative.inspect}")
- # Rails.logger.error("\t\tCOUNTY = #{ad.address.county.inspect}")
- # Rails.logger.error("\t\tSTATE_DISTRICT = #{ad.address.state_district.inspect}")
- # Rails.logger.error("\t\tSTATE = #{ad.address.state.inspect}")
- # Rails.logger.error("\t\tPOSTCODE = #{ad.address.postcode.inspect}")
- # Rails.logger.error("\t\tCOUNTRY = #{ad.address.country.inspect}")
- # Rails.logger.error("\t\tCOUNTRY_CODE = #{ad.address.country_code.inspect}")
- # Rails.logger.error("\t\tPLACE = #{ad.address.place.inspect}")
- # Rails.logger.error("\t\tTOWN = #{ad.address.town.inspect}")
- # Rails.logger.error("\t\tVILLAGE = #{ad.address.village.inspect}")
- # end
- # Rails.logger.error("\tLAT = #{ad.lat.inspect}")
- # Rails.logger.error("\tLON = #{ad.lon.inspect}")
- # Rails.logger.error("\tBOUNDINGBOX = #{ad.boundingbox.inspect}")
- # Rails.logger.error("\tPOLYGONPOINTS = #{ad.polygonpoints.inspect}")
- # Rails.logger.error("\tPLACE_ID = #{ad.place_id.inspect}")
- # Rails.logger.error("\tOSM_ID = #{ad.osm_id.inspect}")
- # Rails.logger.error("\tOSM_TYPE = #{ad.osm_type.inspect}")
- # end
- #end
- #polygons = search.polygon(true)
- #if polygons
- # polygons.each do |po|
- # Rails.logger.error("FILTERED POLYGON : #{po.polygonpoints.inspect}")
- # if po.polygonpoints
- # if po.polygonpoints.coordinates
- # po.polygonpoints.coordinates.each do |point|
- # Rails.logger.error("\tPOINT = #{point.inspect}")
- # Rails.logger.error("\t\tLAT = #{point.lat.inspect}")
- # Rails.logger.error("\t\tLON = #{point.lon.inspect}")
- # end
- # end
- # end
- # end
- #end
- return addresses
- end
-end
diff --git a/app/inputs/check_boxes_input.rb b/app/inputs/check_boxes_input.rb
new file mode 100644
index 000000000..83137c224
--- /dev/null
+++ b/app/inputs/check_boxes_input.rb
@@ -0,0 +1,17 @@
+class CheckBoxesInput < Formtastic::Inputs::CheckBoxesInput
+
+ def selected_values
+ if object.respond_to?(method)
+ selected_items = [object.send(method)].compact.flatten
+
+ # FIX for ids only
+ return selected_items.map(&:to_s).compact if selected_items.all?{ |i| i.is_a? Integer}
+
+ [*selected_items.map { |o| send_or_call_or_object(value_method, o) }].compact
+ else
+ []
+ end
+ end
+
+end
+
diff --git a/app/inputs/extended_time_picker_input.rb b/app/inputs/extended_time_picker_input.rb
new file mode 100644
index 000000000..46b5bbdb4
--- /dev/null
+++ b/app/inputs/extended_time_picker_input.rb
@@ -0,0 +1,12 @@
+class ExtendedTimePickerInput < Formtastic::Inputs::TimePickerInput
+
+ def value
+ return options[:input_html][:value] if options[:input_html] && options[:input_html].key?(:value)
+ val = object.send(method)
+ return "00:00:00" if val.is_a?(Date)
+ return val.strftime("%H:%M:%S") if val.is_a?(Time)
+ return val if val.nil?
+ val.to_s
+ end
+
+end
diff --git a/app/models/referential.rb b/app/models/referential.rb
index 4209a6fac..f99c65f9f 100644
--- a/app/models/referential.rb
+++ b/app/models/referential.rb
@@ -191,15 +191,6 @@ end
Rails.application.config.after_initialize do
- Nominatim::Search
-
- class Nominatim::Search
-
- def each_address(&block)
- @results ||= get(Nominatim.config.search_url, @criteria).body.map! { |attrs| Nominatim::Address.new(attrs) }
- @results.each(&block)
- end
- end
Chouette::TridentActiveRecord
@@ -222,8 +213,6 @@ Rails.application.config.after_initialize do
class Chouette::StopArea
attr_accessible :projection_x,:projection_y,:projection_xy
- attr_accessible :address
- attr_reader :address
# override default_position method to add referential envelope when no stoparea is positioned
def default_position
diff --git a/app/views/access_links/_form.html.erb b/app/views/access_links/_form.html.erb
index a5145adc7..4de6e8e85 100644
--- a/app/views/access_links/_form.html.erb
+++ b/app/views/access_links/_form.html.erb
@@ -6,29 +6,17 @@
<%= form.input :name %>
<%= form.input :access_link_type, :as => :select, :collection => Chouette::AccessLink.access_link_types, :include_blank => false, :member_label => Proc.new { |type| t("connection_link_types.label.#{type}") } %>
<%= form.input :comment %>
- <%= form.input :link_distance %>
- <%= form.inputs :name => t('access_links.show.durations') do %>
- <%= form.input "default_duration(1i)", :as => :hidden ,:input_html => { :value => "2000" } %>
- <%= form.input "default_duration(2i)", :as => :hidden ,:input_html => { :value => "1" } %>
- <%= form.input "default_duration(3i)", :as => :hidden ,:input_html => { :value => "1" } %>
- <%= form.input :default_duration, :ignore_date=>true,:include_seconds=>true, :label => @access_link.human_attribute_name("default_duration")%>
- <%= form.input "frequent_traveller_duration(1i)", :as => :hidden ,:input_html => { :value => "2000" } %>
- <%= form.input "frequent_traveller_duration(2i)", :as => :hidden ,:input_html => { :value => "1" } %>
- <%= form.input "frequent_traveller_duration(3i)", :as => :hidden ,:input_html => { :value => "1" } %>
- <%= form.input :frequent_traveller_duration, :ignore_date=>true,:include_seconds=>true, :label => @access_link.human_attribute_name("frequent_traveller_duration")%>
- <%= form.input "occasional_traveller_duration(1i)", :as => :hidden ,:input_html => { :value => "2000" } %>
- <%= form.input "occasional_traveller_duration(2i)", :as => :hidden ,:input_html => { :value => "1" } %>
- <%= form.input "occasional_traveller_duration(3i)", :as => :hidden ,:input_html => { :value => "1" } %>
- <%= form.input :occasional_traveller_duration, :ignore_date=>true,:include_seconds=>true, :label => @access_link.human_attribute_name("occasional_traveller_duration")%>
- <%= form.input "mobility_restricted_traveller_duration(1i)", :as => :hidden ,:input_html => { :value => "2000" } %>
- <%= form.input "mobility_restricted_traveller_duration(2i)", :as => :hidden ,:input_html => { :value => "1" } %>
- <%= form.input "mobility_restricted_traveller_duration(3i)", :as => :hidden ,:input_html => { :value => "1" } %>
- <%= form.input :mobility_restricted_traveller_duration, :ignore_date=>true,:include_seconds=>true, :label => @access_link.human_attribute_name("mobility_restricted_traveller_duration")%>
- <% end %>
+ <%= form.input :link_distance %>
<%= form.input :mobility_restricted_suitability,:as => :boolean %>
<%= form.input :stairs_availability,:as => :boolean %>
<%= form.input :lift_availability,:as => :boolean %>
<%= form.input :objectid, :required => !@access_link.new_record? %>
+ <%= form.inputs :name => t('access_links.show.durations') do %>
+ <%= form.input :default_duration, :as => :extended_time_picker, :size => 8, :step => :seconds, :label => @access_link.human_attribute_name("default_duration"), :input_html => { :class => "form-control input-sm timepicker_seconds", :step => 1}, :wrapper_html => { :class => "input-append bootstrap-timepicker" } %>
+ <%= form.input :frequent_traveller_duration, :as => :extended_time_picker, :size => 8, :step => :seconds, :include_seconds => true, :label => @access_link.human_attribute_name("frequent_traveller_duration"), :input_html => { :class => "form-control input-sm timepicker_seconds", :step => 1}, :wrapper_html => { :class => "input-append bootstrap-timepicker" } %>
+ <%= form.input :occasional_traveller_duration, :as => :extended_time_picker, :size => 8, :include_seconds => true, :label => @access_link.human_attribute_name("occasional_traveller_duration"), :input_html => { :class => "form-control input-sm timepicker_seconds", :step => 1}, :wrapper_html => { :class => "input-append bootstrap-timepicker" } %>
+ <%= form.input :mobility_restricted_traveller_duration, :as => :extended_time_picker, :include_seconds => true, :label => @access_link.human_attribute_name("mobility_restricted_traveller_duration"), :input_html => { :class => "form-control input-sm timepicker_seconds", :step => 1}, :wrapper_html => { :class => "input-append bootstrap-timepicker" } %>
+ <% end %>
<% end %>
<%= form.actions do %>
<%= form.action :submit, :as => :button %>
diff --git a/app/views/access_points/_form.html.erb b/app/views/access_points/_form.html.erb
index 1132f65eb..adbfd0348 100644
--- a/app/views/access_points/_form.html.erb
+++ b/app/views/access_points/_form.html.erb
@@ -12,8 +12,8 @@
<%= form.input :zip_code %>
<%= form.input :city_name %>
<%= form.input :comment %>
- <%= form.input :openning_time, :as => :time_picker, :input_html => { :class => "form-control input-sm dateselect-time"}, :wrapper_html => { :class => "input-append bootstrap-timepicker" } %>
- <%= form.input :closing_time, :as => :time_picker, :input_html => { :class => "form-control input-sm dateselect-time"}, :wrapper_html => { :class => "input-append bootstrap-timepicker" } %>
+ <%= form.input :openning_time, :as => :time_picker, :input_html => { :class => "form-control input-sm timepicker_basic"}, :wrapper_html => { :class => "input-append bootstrap-timepicker" } %>
+ <%= form.input :closing_time, :as => :time_picker, :input_html => { :class => "form-control input-sm timepicker_basic"}, :wrapper_html => { :class => "input-append bootstrap-timepicker" } %>
<%= form.input :mobility_restricted_suitability,:as => :boolean %>
<%= form.input :stairs_availability,:as => :boolean %>
<%= form.input :lift_availability,:as => :boolean %>
diff --git a/app/views/connection_links/_form.erb b/app/views/connection_links/_form.erb
index 52f49d852..41eef1480 100644
--- a/app/views/connection_links/_form.erb
+++ b/app/views/connection_links/_form.erb
@@ -12,10 +12,10 @@
<%= form.input :objectid, :required => !@connection_link.new_record? %>
<% end %>
<%= form.inputs :name => t('connection_links.show.durations') do %>
- <%= form.input :default_duration, :as => :time_select, :size => 8, :include_seconds=>true, :label => @connection_link.human_attribute_name("default_duration"), :input_html => { :placeholder => "HH:MM" } %>
- <%= form.input :frequent_traveller_duration, :as => :time_select, :size => 8, :include_seconds=>true, :label => @connection_link.human_attribute_name("frequent_traveller_duration"), :input_html => { :placeholder => "HH:MM:SS" } %>
- <%= form.input :occasional_traveller_duration, :as => :time_select, :size => 8, :include_seconds=>true, :label => @connection_link.human_attribute_name("occasional_traveller_duration"), :input_html => { :placeholder => "HH:MM:SS" } %>
- <%= form.input :mobility_restricted_traveller_duration, :as => :time_select, :include_seconds=>true, :label => @connection_link.human_attribute_name("mobility_restricted_traveller_duration"), :input_html => { :placeholder => "HH:MM:SS" } %>
+ <%= form.input :default_duration, :as => :extended_time_picker, :size => 8, :step => :seconds, :label => @connection_link.human_attribute_name("default_duration"), :input_html => { :class => "form-control input-sm timepicker_seconds", :step => 1}, :wrapper_html => { :class => "input-append bootstrap-timepicker" } %>
+ <%= form.input :frequent_traveller_duration, :as => :extended_time_picker, :size => 8, :step => :seconds, :include_seconds => true, :label => @connection_link.human_attribute_name("frequent_traveller_duration"), :input_html => { :class => "form-control input-sm timepicker_seconds", :step => 1}, :wrapper_html => { :class => "input-append bootstrap-timepicker" } %>
+ <%= form.input :occasional_traveller_duration, :as => :extended_time_picker, :size => 8, :include_seconds => true, :label => @connection_link.human_attribute_name("occasional_traveller_duration"), :input_html => { :class => "form-control input-sm timepicker_seconds", :step => 1}, :wrapper_html => { :class => "input-append bootstrap-timepicker" } %>
+ <%= form.input :mobility_restricted_traveller_duration, :as => :extended_time_picker, :include_seconds => true, :label => @connection_link.human_attribute_name("mobility_restricted_traveller_duration"), :input_html => { :class => "form-control input-sm timepicker_seconds", :step => 1}, :wrapper_html => { :class => "input-append bootstrap-timepicker" } %>
<% end %>
<%= form.actions do %>
diff --git a/app/views/stop_areas/_form.html.erb b/app/views/stop_areas/_form.html.erb
index 38545e0ea..21b1a4f98 100644
--- a/app/views/stop_areas/_form.html.erb
+++ b/app/views/stop_areas/_form.html.erb
@@ -1,13 +1,13 @@
<div class="container-fluid">
- <div class="col-md-7">
+ <div class="col-md-7">
<div id="prefetch">
<label><%= t('.geolocalize') %></label>
- <input class="typeahead form-control input-lg" maxlength="255" name="stop_area[address]" type="text" placeholder="<%= t('.address') %>" />
+ <input class="typeahead form-control input-lg" maxlength="255" name="stop_area[address]" type="text" placeholder="<%= t('.address') %>" />
</div>
<%= semantic_form_for [@referential, @stop_area] do |form| %>
- <%= form.inputs do %>
+ <%= form.inputs do %>
<%= form.input :id, :as => :hidden %>
<%= form.input :name %>
<%= form.input :stop_area_type, :as => :select, :input_html => { :disabled => !@stop_area.new_record? }, :collection => Chouette::StopArea.stop_area_types, :include_blank => false, :member_label => Proc.new { |stop_area_type| t("area_types.label.#{stop_area_type}") } %>
@@ -17,30 +17,30 @@
<div class="panel-body">
<%= form.input :projection_xy, :input_html => { :title => t("formtastic.titles.stop_area.projection_xy")} %>
</div>
- </div>
+ </div>
<% end %>
<div class="panel panel-default">
<div class="panel-heading">WGS84</div>
<div class="panel-body">
<%= form.input :coordinates, :input_html => { :title => t("formtastic.titles.stop_area.coordinates")} %>
</div>
- </div>
+ </div>
<%= form.input :registration_number, :input_html => { :title => t("formtastic.titles.stop_area.registration_number")} %>
- <%= form.input :street_name %>
- <%= form.input :country_code %>
- <%= form.input :zip_code %>
- <%= form.input :city_name %>
- <%= form.input :fare_code %>
- <%= form.input :nearest_topic_name %>
- <%= form.input :comment, :as => :text %>
+ <%= form.input :street_name %>
+ <%= form.input :country_code %>
+ <%= form.input :zip_code %>
+ <%= form.input :city_name %>
+ <%= form.input :fare_code %>
+ <%= form.input :nearest_topic_name %>
+ <%= form.input :comment, :as => :text %>
<% if !manage_itl %>
<%= form.input :mobility_restricted_suitability,:as => :boolean %>
<%= form.input :stairs_availability,:as => :boolean %>
- <%= form.input :lift_availability,:as => :boolean %>
+ <%= form.input :lift_availability,:as => :boolean %>
<% end %>
- <%= form.input :objectid, :required => !@stop_area.new_record?, :input_html => { :title => t("formtastic.titles.stop_area.objectid")} %>
+ <%= form.input :objectid, :required => !@stop_area.new_record?, :input_html => { :title => t("formtastic.titles.stop_area.objectid")} %>
<% end %>
@@ -59,6 +59,39 @@
</div>
<script>
+ var address_display = function( address ) {
+ var name = "";
+ if ( address.house_number) {
+ name += address.house_number+" ";
+ }
+ name += address.road+", ";
+ if ( address.postalcode) {
+ name += address.postalcode+" ";
+ }
+ if ( address.city) {
+ name += address.city;
+ } else if ( address.county ) {
+ name += address.county;
+ } else if ( address.country ) {
+ name += address.country;
+ }
+
+ return name;
+ };
+ var filtering = function(list) {
+ var selection = $.grep( list, function(item) {
+ return (item.type == "house" || item.type == "residential") && item.address.road ;
+ });
+ return $.map( selection, function( d) {
+ return { postcode: d.address.postcode,
+ road: d.address.road,
+ lon: d.lon, lat: d.lat,
+ city: d.address.city,
+ postcode: d.address.postcode,
+ the_key: address_display( d.address)};
+ });
+ };
+
var addressesEngine = new Bloodhound({
datumTokenizer: function(d) {
return Bloodhound.tokenizers.whitespace(d.id+" : "+d.road);
@@ -68,16 +101,14 @@
},
limit: 10,
remote: {
- url: '<%= referential_addresses_path(@referential, :format => 'json') %>?q=%QUERY',
- filter: function(list) {
- return $.map(list, function(d) { return { postcode: d.postcode, road: d.road, lon: d.lon, lat: d.lat, city: d.city, postcode: d.postcode, the_key: d.house_number+" "+d.road+", "+d.postcode+" "+d.city+", "+d.country }; });
- },
+ url: 'http://nominatim.openstreetmap.org/search?q=%QUERY&format=json&addressdetails=1',
+ filter: filtering,
}
});
-
+
// kicks off the loading/processing of `local` and `prefetch`
var promise = addressesEngine.initialize();
-
+
// passing in `null` for the `options` arguments will result in the default
// options being used
$('#prefetch .typeahead').typeahead(
diff --git a/config/environments/development.rb b/config/environments/development.rb
index 5745766fd..d3ea21f5f 100644
--- a/config/environments/development.rb
+++ b/config/environments/development.rb
@@ -45,13 +45,13 @@ ChouetteIhm::Application.configure do
GA.tracker = "UA-AAAAAAAA"
# api key to geoportail IGN (production key link to application url root referer)
- #config.geoportail_api_key = "aaaaaaaaaaaaaa"
+ #config.geoportail_api_key = "aaaaaaaaaaaaaa"
# Specific for each company
config.company_name = "afimb"
config.company_theme = "#61970b"
config.company_contact = "http://www.chouette.mobi/contact-support/"
-
+
# file to data for demo
config.demo_data = "tmp/demo.zip"
@@ -72,17 +72,12 @@ ChouetteIhm::Application.configure do
config.to_prepare do
Devise::Mailer.layout "mailer"
#ApplicationMap.ign_api_key = "i2aqyge3x3iovnuhz7z06flp"
- chouette_command_script = "/home/zbouziane/Projects/dryade/chouette2_dev/tmp/chouette-command/chouette"
+ chouette_command_script = "tmp/chouette-command/chouette"
if File.exists? chouette_command_script
- Chouette::Command.command = "/home/zbouziane/Projects/dryade/chouette2_dev/tmp/chouette-command/chouette"
+ Chouette::Command.command = "tmp/chouette-command/chouette"
else
Chouette::Command.command = "true"
end
end
- Nominatim.configure do |config|
- config.email = 'zbouziane@gmail.com'
- config.endpoint = 'http://open.mapquestapi.com/nominatim/v1'
- end
-
end
diff --git a/config/initializers/formtastic.rb b/config/initializers/formtastic.rb
index c1f7f972f..c20f77e40 100644
--- a/config/initializers/formtastic.rb
+++ b/config/initializers/formtastic.rb
@@ -1,20 +1,76 @@
- Formtastic::FormBuilder.i18n_lookups_by_default = true
-
-module Formtastic
- module Inputs
- class CheckBoxesInput
- def selected_values
- if object.respond_to?(method)
- selected_items = [object.send(method)].compact.flatten
-
- # FIX for ids only
- return selected_items.map(&:to_s).compact if selected_items.all?{ |i| i.is_a? Integer}
-
- [*selected_items.map { |o| send_or_call_or_object(value_method, o) }].compact
- else
- []
- end
- end
- end
- end
-end
+# encoding: utf-8
+
+# Set the default text field size when input is a string. Default is nil.
+Formtastic::FormBuilder.default_text_field_size = 50
+
+# Set the default text area height when input is a text. Default is 20.
+# Formtastic::FormBuilder.default_text_area_height = 5
+
+# Set the default text area width when input is a text. Default is nil.
+# Formtastic::FormBuilder.default_text_area_width = 50
+
+# Should all fields be considered "required" by default?
+# Defaults to true.
+# Formtastic::FormBuilder.all_fields_required_by_default = true
+
+# Should select fields have a blank option/prompt by default?
+# Defaults to true.
+# Formtastic::FormBuilder.include_blank_for_select_by_default = true
+
+# Set the string that will be appended to the labels/fieldsets which are required
+# It accepts string or procs and the default is a localized version of
+# '<abbr title="required">*</abbr>'. In other words, if you configure formtastic.required
+# in your locale, it will replace the abbr title properly. But if you don't want to use
+# abbr tag, you can simply give a string as below
+# Formtastic::FormBuilder.required_string = "(required)"
+
+# Set the string that will be appended to the labels/fieldsets which are optional
+# Defaults to an empty string ("") and also accepts procs (see required_string above)
+# Formtastic::FormBuilder.optional_string = "(optional)"
+
+# Set the way inline errors will be displayed.
+# Defaults to :sentence, valid options are :sentence, :list, :first and :none
+# Formtastic::FormBuilder.inline_errors = :sentence
+# Formtastic uses the following classes as default for hints, inline_errors and error list
+
+# If you override the class here, please ensure to override it in your stylesheets as well
+# Formtastic::FormBuilder.default_hint_class = "inline-hints"
+# Formtastic::FormBuilder.default_inline_error_class = "inline-errors"
+# Formtastic::FormBuilder.default_error_list_class = "errors"
+
+# Set the method to call on label text to transform or format it for human-friendly
+# reading when formtastic is used without object. Defaults to :humanize.
+# Formtastic::FormBuilder.label_str_method = :humanize
+
+# Set the array of methods to try calling on parent objects in :select and :radio inputs
+# for the text inside each @<option>@ tag or alongside each radio @<input>@. The first method
+# that is found on the object will be used.
+# Defaults to ["to_label", "display_name", "full_name", "name", "title", "username", "login", "value", "to_s"]
+# Formtastic::FormBuilder.collection_label_methods = [
+# "to_label", "display_name", "full_name", "name", "title", "username", "login", "value", "to_s"]
+
+# Specifies if labels/hints for input fields automatically be looked up using I18n.
+# Default value: true. Overridden for specific fields by setting value to true,
+# i.e. :label => true, or :hint => true (or opposite depending on initialized value)
+# Formtastic::FormBuilder.i18n_lookups_by_default = false
+
+# Specifies if I18n lookups of the default I18n Localizer should be cached to improve performance.
+# Defaults to true.
+# Formtastic::FormBuilder.i18n_cache_lookups = false
+
+# Specifies the class to use for localization lookups. You can create your own
+# class and use it instead by subclassing Formtastic::Localizer (which is the default).
+# Formtastic::FormBuilder.i18n_localizer = MyOwnLocalizer
+
+# You can add custom inputs or override parts of Formtastic by subclassing Formtastic::FormBuilder and
+# specifying that class here. Defaults to Formtastic::FormBuilder.
+# Formtastic::Helpers::FormHelper.builder = MyCustomBuilder
+
+# You can opt-in to Formtastic's use of the HTML5 `required` attribute on `<input>`, `<select>`
+# and `<textarea>` tags by setting this to false (defaults to true).
+# Formtastic::FormBuilder.use_required_attribute = true
+
+# You can opt-in to new HTML5 browser validations (for things like email and url inputs) by setting
+# this to false. Doing so will add a `novalidate` attribute to the `<form>` tag.
+# See http://diveintohtml5.org/forms.html#validation for more info.
+# Formtastic::FormBuilder.perform_browser_validations = true
diff --git a/config/routes.rb b/config/routes.rb
index 1abe59a1f..a14f09b48 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -140,12 +140,7 @@ ChouetteIhm::Application.routes.draw do
resources :access_links
end
- resources :addresses, :only => [:index]
-
resources :stop_areas do
- #collection do
- # get 'addresses'
- #end
resources :access_points
resources :stop_area_parents
resources :stop_area_children