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