OSDN Git Service

Web::Controller::Search: support sorting by create_time
authorhylom <hylom@users.sourceforge.jp>
Thu, 26 Apr 2018 13:51:55 +0000 (22:51 +0900)
committerhylom <hylom@users.sourceforge.jp>
Thu, 26 Apr 2018 13:51:55 +0000 (22:51 +0900)
src/newslash_web/lib/Newslash/Web/Controller/Search.pm
src/newslash_web/templates/search/search.html.tt2

index ca4fb12..f3889aa 100644 (file)
@@ -13,6 +13,7 @@ sub search {
     my $query = $c->param('q');
     my $start = $c->param('start') || 0;
     my $target = $c->param('target') || "story";
+    my $sort_reverse = $c->param('sort_reverse') == 1;
 
     my $item_per_page = 10;
 
@@ -28,10 +29,12 @@ sub search {
     my $ua  = Mojo::UserAgent->new;
     $c->render_later;
 
-    my $req= { query => $query,
-               limit => $item_per_page,
-               offset => $start,
-               target => $target,
+    my $req = { query => $query,
+                limit => $item_per_page,
+                offset => $start,
+                target => $target,
+                sort => "create_time",
+                sort_reverse => $sort_reverse,
              };
     $ua->post($url => {Accept => 'application/json'} => json => $req => sub {
                   my ($ua_, $tx) = @_;
@@ -42,6 +45,8 @@ sub search {
                  if (!defined $ua) {
                      $message = "some_error_occured";
                      $c->render(query_words => $query,
+                                target => $target,
+                                sort_reverse => $sort_reverse,
                                 message => $message,
                                 error => 1,
                                 status => 500,
@@ -67,6 +72,7 @@ sub search {
 
                      $c->render(query_words => $query,
                                 target => $target,
+                                sort_reverse => $sort_reverse,
                                 message => $message,
                                 error => 1,
                                 status => $code,
@@ -81,6 +87,7 @@ sub search {
                       $message = "searchd_error";
                       $c->render(query_words => $query,
                                  target => $target,
+                                 sort_reverse => $sort_reverse,
                                  message => $message,
                                  error => 1,
                                  status => 500,
@@ -104,6 +111,7 @@ sub search {
                   $c->render(query_words => $query,
                              target => $target,
                              results => $result,
+                             sort_reverse => $sort_reverse,
                              message => "",
                              error => 0,
                              start => $start,
index b3f61cd..fe91914 100644 (file)
@@ -16,7 +16,7 @@
           </div>
         </div>
 
-        <div class="form-inline col-sm-12">
+        <div class="form-inline col-sm-4">
           <label class="control-label" for="target">検索対象:</label>
           <select class="form-control" id="target" name="target">
             <option value="story" [% IF target == "story" %]selected="1"[% END %]>ストーリー</option>
             <option value="all" [% IF target == "all" %]selected="1"[% END %]>すべて</option>
           </select>
         </div>
+
+        <div class="form-inline col-sm-8">
+          <label class="control-label" for="sort_reverse">並び順:</label>
+          <select class="form-control" id="sort_reverse" name="sort_reverse">
+            <option value="1" [% IF sort_reverse == "1" %]selected="1"[% END %]>新しい順</option>
+            <option value="0" [% IF sort_reverse == "0" %]selected="1"[% END %]>古い順</option>
+          </select>
+        </div>
+
       </form>
     </div>