[Groonga-commit] groonga/gcs-console [master] Implement pagination #3

Back to archive index

Yoji SHIDARA null+****@clear*****
Thu Oct 18 13:40:57 JST 2012


Yoji SHIDARA	2012-10-18 13:40:57 +0900 (Thu, 18 Oct 2012)

  New Revision: f5315eb5b5dbe2af0a4df0a5d5f72d3b24f08c7a
  https://github.com/groonga/gcs-console/commit/f5315eb5b5dbe2af0a4df0a5d5f72d3b24f08c7a

  Log:
    Implement pagination #3

  Modified files:
    routes/index.js
    views/domain-search.jade

  Modified: routes/index.js (+29 -3)
===================================================================
--- routes/index.js    2012-10-18 11:58:12 +0900 (b267413)
+++ routes/index.js    2012-10-18 13:40:57 +0900 (f8f658e)
@@ -55,7 +55,7 @@ exports.domainSearch = function(req, res) {
   withDomain(req, res, function(req, res) {
     var query = req.query.query;
     var size = 5;
-    var start = 0; // TODO support paginate
+    var start = Number(req.query.start || 0);
 
     if (query === undefined) {
       var locals = {
@@ -88,13 +88,39 @@ exports.domainSearch = function(req, res) {
         buffer += chunk;
       });
       searchResponse.on('end', function() {
+        var results = JSON.parse(buffer);
         var locals = {
           domain: req.domain,
           query: query,
           requestURL: requestURL,
-          results: JSON.parse(buffer),
-          start: start
+          results: results,
+          start: start,
+          nextLink: null,
+          previousLink: null
         };
+
+        if (results.hits.found > start + results.hits.hit.length) {
+          var nextLinkParams = {
+            query: query,
+            start: start + results.hits.hit.length
+          };
+          locals.nextLink = '/domain/' +
+            req.domain.DomainName +
+            '/search?' +
+            querystring.stringify(nextLinkParams);
+        }
+
+        if (start - size >= 0) {
+          var previousLinkParams = {
+            query: query,
+            start: start - size
+          };
+          locals.previousLink = '/domain/' +
+            req.domain.DomainName +
+            '/search?' +
+            querystring.stringify(previousLinkParams);
+        }
+
         res.render('domain-search', locals);
       });
     });

  Modified: views/domain-search.jade (+14 -0)
===================================================================
--- views/domain-search.jade    2012-10-18 11:58:12 +0900 (eed1310)
+++ views/domain-search.jade    2012-10-18 13:40:57 +0900 (ffa727a)
@@ -23,6 +23,20 @@ block domain-content
         strong Found #{results.hits.found} records. 
         | Showing #{results.hits.start + 1} - #{results.hits.start + results.hits.hit.length} (#{results.hits.hit.length} records).
 
+      ul.pager
+        if previousLink
+          li.previous
+            a(href=previousLink, rel="prev") « Previous
+        else
+          li.previous.disabled
+            a « Previous
+        if nextLink
+          li.next
+            a(href=nextLink, rel="next") Next »
+        else
+          li.next.disabled
+            a Next »
+
       table.table.table-bordered
         each hit, index in results.hits.hit
           tr.id-row
-------------- next part --------------
HTML����������������������������...
Download 



More information about the Groonga-commit mailing list
Back to archive index