about summary refs log tree commit diff
diff options
context:
space:
mode:
authorVincent Ambo <tazjin@gmail.com>2018-04-14T21·28+0200
committerVincent Ambo <tazjin@gmail.com>2018-04-14T21·28+0200
commitba33efd772575bbd51643fbf2aa176df3bced258 (patch)
treecc4cb1d6850b16f54144cdbc113ef8fa0aef7c20
parente0b1bc2627d65a759003842c4dc508e9f842da35 (diff)
refactor(handlers): Receive search terms via query parameters
There are several reasons for this, but one important one is that
people expect to be able to share search links.
-rw-r--r--src/handlers.rs6
-rw-r--r--src/main.rs2
-rw-r--r--templates/index.html2
-rw-r--r--templates/search.html2
4 files changed, 6 insertions, 6 deletions
diff --git a/src/handlers.rs b/src/handlers.rs
index 02ff99394edf..ccb01eb3c803 100644
--- a/src/handlers.rs
+++ b/src/handlers.rs
@@ -179,9 +179,9 @@ pub fn reply_thread(state: State<AppState>,
 /// This handler executes a full-text search on the forum database and
 /// displays the results to the user.
 pub fn search_forum(state: State<AppState>,
-                    query: Form<SearchPosts>) -> ConverseResponse {
-    let query_string = query.0.query.clone();
-    state.db.send(query.0)
+                    query: Query<SearchPosts>) -> ConverseResponse {
+    let query_string = query.query.clone();
+    state.db.send(query.into_inner())
         .flatten()
         .and_then(move |results| state.renderer.send(SearchResultPage {
             results,
diff --git a/src/main.rs b/src/main.rs
index 92eeca48df64..851e810412ee 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -153,7 +153,7 @@ fn main() {
             .resource("/thread/submit", |r| r.method(Method::POST).with3(submit_thread))
             .resource("/thread/reply", |r| r.method(Method::POST).with3(reply_thread))
             .resource("/thread/{id}", |r| r.method(Method::GET).with2(forum_thread))
-            .resource("/search", |r| r.method(Method::POST).with2(search_forum))
+            .resource("/search", |r| r.method(Method::GET).with2(search_forum))
             .resource("/oidc/login", |r| r.method(Method::GET).with(login))
             .resource("/oidc/callback", |r| r.method(Method::POST).with3(callback));
 
diff --git a/templates/index.html b/templates/index.html
index d4daa216c293..16ddf44c364a 100644
--- a/templates/index.html
+++ b/templates/index.html
@@ -14,7 +14,7 @@
         <a class="navbar-brand" href="/">
           <h2>Converse</h2>
         </a>
-        <form class="form-inline" method="post" action="/search">
+        <form class="form-inline" method="get" action="/search">
           <input class="form-control mr-sm-2" type="search" placeholder="Search" name="query" aria-label="Search">
           <button class="btn btn-outline-success my-2 my-sm-0 mr-1" type="submit">Search</button>
           <a class="btn btn-outline-secondary my-2" href="/thread/new">New thread</a>
diff --git a/templates/search.html b/templates/search.html
index 95384b1caf58..3bb30e5d60b3 100644
--- a/templates/search.html
+++ b/templates/search.html
@@ -14,7 +14,7 @@
         <a class="navbar-brand" href="/">
           <h2>Converse</h2>
         </a>
-        <form class="form-inline" method="post" action="/search">
+        <form class="form-inline" method="get" action="/search">
           <input class="form-control mr-sm-2" type="search" placeholder="Search" name="query" aria-label="Search">
           <button class="btn btn-outline-success my-2 my-sm-0 mr-1" type="submit">Search</button>
           <a class="btn btn-outline-secondary my-2" href="/thread/new">New thread</a>