diff options
| author | Michel Etienne | 2014-08-20 13:35:50 +0200 |
|---|---|---|
| committer | Michel Etienne | 2014-08-20 13:35:50 +0200 |
| commit | 4e787048ecdda31c129dcada8385e74124795b82 (patch) | |
| tree | 3047ddc9087dcaf1d72deb0b7f1e111c6c7cd29d | |
| parent | 44690f334906c6c818aa8443bf46d6e4f33de832 (diff) | |
| parent | b6d1c06128a67878ca5430dff005eaabb026307b (diff) | |
| download | chouette-core-4e787048ecdda31c129dcada8385e74124795b82.tar.bz2 | |
Merge branch 'sismo' of github.com:afimb/chouette2 into sismo
| -rw-r--r-- | Gemfile | 1 | ||||
| -rw-r--r-- | Gemfile.lock | 7 | ||||
| -rw-r--r-- | app/assets/javascripts/plugins/bootstrap_timepicker_activation.coffee | 12 | ||||
| -rw-r--r-- | app/controllers/addresses_controller.rb | 101 | ||||
| -rw-r--r-- | app/inputs/check_boxes_input.rb | 17 | ||||
| -rw-r--r-- | app/inputs/extended_time_picker_input.rb | 12 | ||||
| -rw-r--r-- | app/models/referential.rb | 11 | ||||
| -rw-r--r-- | app/views/access_links/_form.html.erb | 26 | ||||
| -rw-r--r-- | app/views/access_points/_form.html.erb | 4 | ||||
| -rw-r--r-- | app/views/connection_links/_form.erb | 8 | ||||
| -rw-r--r-- | app/views/stop_areas/_form.html.erb | 71 | ||||
| -rw-r--r-- | config/environments/development.rb | 13 | ||||
| -rw-r--r-- | config/initializers/formtastic.rb | 96 | ||||
| -rw-r--r-- | config/routes.rb | 5 |
14 files changed, 183 insertions, 201 deletions
@@ -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 |
