Procházet zdrojové kódy

Fix keyword search in Firefox and URL search via query param

Fixes #577.
Thibaut Courouble před 8 roky
rodič
revize
ad044f85d3
3 změnil soubory, kde provedl 8 přidání a 1 odebrání
  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>