summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCarlo Landmeter <clandmeter@gmail.com>2015-03-20 09:48:31 +0000
committerCarlo Landmeter <clandmeter@gmail.com>2015-03-20 09:48:31 +0000
commitc9ebb179277f4af04087be7c71fdac91d3a7f42c (patch)
treed6387de5212a60e7fe1419391dca06089091f5cf
parent5c8ada0181366d44bba147bb494a0c800097d765 (diff)
downloadaports-turbo-c9ebb179277f4af04087be7c71fdac91d3a7f42c.tar.bz2
aports-turbo-c9ebb179277f4af04087be7c71fdac91d3a7f42c.tar.xz
add pager to packages
-rwxr-xr-xaports.lua33
-rw-r--r--tpl/packages.tpl11
2 files changed, 30 insertions, 14 deletions
diff --git a/aports.lua b/aports.lua
index 3ee1406..182e548 100755
--- a/aports.lua
+++ b/aports.lua
@@ -46,14 +46,18 @@ function PackagesRenderer:get()
local args = {
package = self:get_argument("package","", true),
arch = self:get_argument("arch", "x86", true),
+ page = self:get_argument("page", "", true),
}
local table = { [args.arch] = true }
if args.package == "" then
args.package = "%"
end
- local result = QueryPackages(args)
+ local result = QueryPackages(args, args.page)
if next(result) ~= nil then
table.rows = result
+ local rows = (table.rows ~= nil) and (#table.rows) or 0
+ table.pager = CreatePagerUri(args, rows)
+ table.page = (args.page == "") and "1" or args.page
end
table.packages = true
table.header = tpl:render("header.tpl", table)
@@ -109,23 +113,24 @@ function QueryContents(filename, pkgname, arch, page)
end
end
-function QueryPackages(terms)
+function QueryPackages(terms, page)
require('DBI')
local dbh = assert(DBI.Connect('SQLite3', 'db/apkindex.db'))
- local sth = assert(dbh:prepare('select name, version, url, lic, desc, arch, maintainer, datetime(build_time, \'unixepoch\') as build_time from apkindex where name like ? ORDER BY build_time DESC limit 100'))
- sth:execute(terms.package)
+ local sth = assert(dbh:prepare('select name, version, url, lic, desc, arch, maintainer, datetime(build_time, \'unixepoch\') as build_time from apkindex where name like ? ORDER BY build_time DESC limit ?,50'))
+ local offset = (tonumber(page) == nil) and 0 or tonumber(page)*50
+ sth:execute(terms.package, offset)
local r = {}
for row in sth:rows(true) do
- r[#r+1] = {
- package = row.name,
- version = row.version,
- project = row.url,
- license = row.lic,
- desc = row.desc,
- arch = row.arch,
- repo = "unk",
- maintainer = string.gsub(row.maintainer, '<.*>', ''),
- bdate = row.build_time
+ r[#r+1] = {
+ package = row.name,
+ version = row.version,
+ project = row.url,
+ license = row.lic,
+ desc = row.desc,
+ arch = row.arch,
+ repo = "unk",
+ maintainer = string.gsub(row.maintainer, '<.*>', ''),
+ bdate = row.build_time
}
end
sth:close()
diff --git a/tpl/packages.tpl b/tpl/packages.tpl
index 25aa25a..0268b29 100644
--- a/tpl/packages.tpl
+++ b/tpl/packages.tpl
@@ -48,6 +48,17 @@
{{{/rows}}}
</table>
</div>
+ <div class="panel-footer text-center">{{#pager}}
+ <nav>
+ <ul class="pagination">{{/pager}}{{#pager}}{{#prev}}
+ <li class=""><a href="/packages?{{{prev}}}" aria-label="Previous"><span aria-hidden="true">&laquo;</span></a></li>{{/prev}}{{/pager}}{{#pager}}{{^prev}}
+ <li class="disabled"><a href="" aria-label="Previous"><span aria-hidden="true">&laquo;</span></a></li>{{/prev}}{{/pager}}{{#pager}}
+ <li class="active"><a href="#">{{{page}}}</a></li>{{/pager}}{{#pager}}{{#next}}
+ <li><a href="/packages?{{{next}}}" aria-label="Next"><span aria-hidden="true">&raquo;</span></a></li>{{/next}}{{/pager}}{{#pager}}{{^next}}
+ <li class="disabled"><a href="#" aria-label="Next"><span aria-hidden="true">&raquo;</span></a></li>{{/next}}{{/pager}}{{#pager}}
+ </ul>
+ </nav>{{/pager}}
+ </div>
</div>
</div>
{{{footer}}}