소스 검색

Fixed 'show more' in tag search.

default 2 년 전
부모
커밋
7787fc7d32
1개의 변경된 파일17개의 추가작업 그리고 8개의 파일을 삭제
  1. 17 8
      httpd.c

+ 17 - 8
httpd.c

@@ -145,15 +145,24 @@ int server_get_handler(xs_dict *req, const char *q_path,
         char *t = NULL;
 
         if (xs_type(q_vars) == XSTYPE_DICT && (t = xs_dict_get(q_vars, "t"))) {
-            /* tag search query */
-            int skip = xs_number_get(xs_dict_get(q_vars, "skip"));
-            int show = xs_number_get(xs_dict_get(q_vars, "show"));
-
-            if (show == 0)
-                show = 64;
+            int skip = 0;
+            int show = xs_number_get(xs_dict_get(srv_config, "max_timeline_entries"));
+            char *v;
+
+            if ((v = xs_dict_get(q_vars, "skip")) != NULL)
+                skip = atoi(v);
+            if ((v = xs_dict_get(q_vars, "show")) != NULL)
+                show = atoi(v);
+
+            xs *tl = tag_search(t, skip, show + 1);
+            int more = 0;
+            if (xs_list_len(tl) >= show + 1) {
+                /* drop the last one */
+                tl = xs_list_del(tl, -1);
+                more = 1;
+            }
 
-            xs *tl = tag_search(t, skip, show);
-            *body = html_timeline(NULL, tl, 0, skip, show, 0);
+            *body = html_timeline(NULL, tl, 0, skip, show, more);
         }
         else
         if (xs_type(xs_dict_get(srv_config, "show_instance_timeline")) == XSTYPE_TRUE) {