Sfoglia il codice sorgente

Fix keyword search in Firefox and URL search via query param

Fixes #577.
Thibaut Courouble 8 anni fa
parent
commit
ad044f85d3
3 ha cambiato i file con 8 aggiunte e 1 eliminazioni
  1. 1 0
      lib/app.rb
  2. 6 0
      test/app_test.rb
  3. 1 1
      views/app.erb

+ 1 - 0
lib/app.rb

@@ -229,6 +229,7 @@ class App < Sinatra::Application
   end
 
   get '/' do
+    return redirect "/#q=#{params[:q]}" if params[:q]
     return redirect '/' unless request.query_string.empty? # courtesy of HTML5 App Cache
     response.headers['Content-Security-Policy'] = settings.csp if settings.csp
     erb :index

+ 6 - 0
test/app_test.rb

@@ -17,6 +17,12 @@ class AppTest < MiniTest::Spec
       assert last_response.ok?
     end
 
+    it "redirects to /#q= when there is a 'q' query param" do
+      get '/search', q: 'foo'
+      assert last_response.redirect?
+      assert_equal 'http://example.org/#q=foo', last_response['Location']
+    end
+
     it "redirects without the query string" do
       get '/', foo: 'bar'
       assert last_response.redirect?

+ 1 - 1
views/app.erb

@@ -5,7 +5,7 @@
     <button type="button" class="_mobile-btn _menu-btn">Menu</button>
     <button type="button" class="_mobile-btn _home-btn">Home</button>
     <form class="_search" role="search">
-      <input type="search" class="_search-input" placeholder="Search&hellip;" autocomplete="off" autocapitalize="off" autocorrect="off" spellcheck="false" maxlength="30" aria-label="Search">
+      <input type="search" name="q" class="_search-input" placeholder="Search&hellip;" autocomplete="off" autocapitalize="off" autocorrect="off" spellcheck="false" maxlength="30" aria-label="Search">
       <button type="reset" class="_search-clear" title="Clear search">Clear search</button>
       <div class="_search-tag"></div>
     </form>