Fixes #577.
Unified · Split
| @@ -229,6 +229,7 @@ class App < Sinatra::Application · 228 unmodified lines | |||
| 229 | end | 229 | end |
| 230 | 230 | ||
| 231 | get '/' do | 231 | get '/' do |
| 232 | return redirect "/#q=#{params[:q]}" if params[:q] | ||
| 232 | return redirect '/' unless request.query_string.empty? # courtesy of HTML5 App Cache | 233 | return redirect '/' unless request.query_string.empty? # courtesy of HTML5 App Cache |
| 233 | response.headers['Content-Security-Policy'] = settings.csp if settings.csp | 234 | response.headers['Content-Security-Policy'] = settings.csp if settings.csp |
| 234 | erb :index | 235 | erb :index |
| @@ -17,6 +17,12 @@ class AppTest < MiniTest::Spec · 16 unmodified lines | |||
| 17 | assert last_response.ok? | 17 | assert last_response.ok? |
| 18 | end | 18 | end |
| 19 | 19 | ||
| 20 | it "redirects to /#q= when there is a 'q' query param" do | ||
| 21 | get '/search', q: 'foo' | ||
| 22 | assert last_response.redirect? | ||
| 23 | assert_equal 'http://example.org/#q=foo', last_response['Location'] | ||
| 24 | end | ||
| 25 | |||
| 20 | it "redirects without the query string" do | 26 | it "redirects without the query string" do |
| 21 | get '/', foo: 'bar' | 27 | get '/', foo: 'bar' |
| 22 | assert last_response.redirect? | 28 | assert last_response.redirect? |
| @@ -5,7 +5,7 @@ · 4 unmodified lines | |||
| 5 | <button type="button" class="_mobile-btn _menu-btn">Menu</button> | 5 | <button type="button" class="_mobile-btn _menu-btn">Menu</button> |
| 6 | <button type="button" class="_mobile-btn _home-btn">Home</button> | 6 | <button type="button" class="_mobile-btn _home-btn">Home</button> |
| 7 | <form class="_search" role="search"> | 7 | <form class="_search" role="search"> |
| 8 | <input type="search" class="_search-input" placeholder="Search…" autocomplete="off" autocapitalize="off" autocorrect="off" spellcheck="false" maxlength="30" aria-label="Search"> | 8 | <input type="search" name="q" class="_search-input" placeholder="Search…" autocomplete="off" autocapitalize="off" autocorrect="off" spellcheck="false" maxlength="30" aria-label="Search"> |
| 9 | <button type="reset" class="_search-clear" title="Clear search">Clear search</button> | 9 | <button type="reset" class="_search-clear" title="Clear search">Clear search</button> |
| 10 | <div class="_search-tag"></div> | 10 | <div class="_search-tag"></div> |
| 11 | </form> | 11 | </form> |