diff --git a/app/assets/javascripts/search/all.js b/app/assets/javascripts/search/all.js index 648dc7f440..d64d0d7b67 100644 --- a/app/assets/javascripts/search/all.js +++ b/app/assets/javascripts/search/all.js @@ -7,6 +7,8 @@ //= require jquery //= require jquery_ujs +//= require jquery-ui +//= require spin //= require foundation //= require_tree . diff --git a/app/assets/javascripts/search/landing_page.js.coffee.erb b/app/assets/javascripts/search/landing_page.js.coffee.erb index 654d3376b9..22dc713867 100644 --- a/app/assets/javascripts/search/landing_page.js.coffee.erb +++ b/app/assets/javascripts/search/landing_page.js.coffee.erb @@ -3,6 +3,21 @@ $(document).ready -> setup_offcanvas_panel() setup_login_handlers() + spinner = new Spinner({length: 10, width: 10, color: '#000'}) + + + + + $("#suburb_search").autocomplete + source: $('#suburb_search').data('autocomplete-source') + minLength: 3 + delay: 500 + search: (event, ui) -> + $("#suburb_search").after($(spinner.spin().el).css("left", "93%").css("margin-top": "35px")) + + response: (event, ui) -> + spinner.stop() + setup_background = -> if $("#image-url-container").length > 0 diff --git a/app/assets/stylesheets/search/auto_complete.css.scss b/app/assets/stylesheets/search/auto_complete.css.scss new file mode 100644 index 0000000000..4097f1ae33 --- /dev/null +++ b/app/assets/stylesheets/search/auto_complete.css.scss @@ -0,0 +1,22 @@ +ul.ui-autocomplete { + position: absolute; + list-style: none; + margin: 0; + padding: 0; + border: solid 1px #999; + cursor: default; + li { + background-color: #FFF; + border-top: solid 1px #DDD; + margin: 0; + padding: 0; + a { + color: #000; + display: block; + padding: 3px; + } + a.ui-state-hover, a.ui-state-active { + background-color: #FFFCB2; + } + } +} \ No newline at end of file diff --git a/app/controllers/enterprises_controller.rb b/app/controllers/enterprises_controller.rb index d45b316dcd..c4a201e680 100644 --- a/app/controllers/enterprises_controller.rb +++ b/app/controllers/enterprises_controller.rb @@ -33,7 +33,7 @@ class EnterprisesController < BaseController end def search - suburb = Suburb.find_by_postcode(params[:postcode]) + suburb = Suburb.find_by_postcode(params[:suburb_search]) @enterpsises = Enterprise.find_near(suburb) @enterprises_json = @enterpsises.to_gmaps4rails render :layout => "landing_page" diff --git a/app/controllers/suburbs_controller.rb b/app/controllers/suburbs_controller.rb new file mode 100644 index 0000000000..e0710c0d31 --- /dev/null +++ b/app/controllers/suburbs_controller.rb @@ -0,0 +1,6 @@ +class SuburbsController < ActionController::Base + def index + @suburbs = Suburb.order(:name).where("lower(name) like ?", "%#{params[:term].downcase}%") + render json: @suburbs.map{ |suburb| "#{suburb.name}, #{suburb.postcode}" } + end +end \ No newline at end of file diff --git a/app/views/home/new_landing_page.html.haml b/app/views/home/new_landing_page.html.haml index 06d93498a4..0afbbccef9 100644 --- a/app/views/home/new_landing_page.html.haml +++ b/app/views/home/new_landing_page.html.haml @@ -7,7 +7,8 @@ .row = form_tag search_enterprises_path do .large-10.columns - = text_field_tag :postcode, "", class: "right", placeholder: "Enter your postcode..." + = text_field_tag :suburb_search, "", + data: { autocomplete_source: suburbs_path }, class: "right", placeholder: "Enter your postcode..." .large-2.columns = submit_tag "Search", class: "button-huge" .row diff --git a/config/routes.rb b/config/routes.rb index 33b2f77639..fc00014cd7 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -7,6 +7,8 @@ Openfoodweb::Application.routes.draw do post :search, :on => :collection end + resources :suburbs + namespace :admin do resources :order_cycles do post :bulk_update, :on => :collection, :as => :bulk_update