Browse Source

next pagination working

pull/1/head
wes 8 years ago
parent
commit
1929560f42
  1. 42
      src/scripts/browse.tag
  2. 2
      src/website.py

42
src/scripts/browse.tag

@ -33,6 +33,15 @@
</a> </a>
</div> </div>
</div> </div>
<div class="getmore">
<button
class="btn btn-primary branded"
if={opts.state.results.length == pagesize}
onclick={getmore}
>
Next
</button>
</div>
</div> </div>
</div> </div>
</div> </div>
@ -53,6 +62,7 @@ self.loading = false;
self.category = self.opts.state.category_filter; self.category = self.opts.state.category_filter;
self.converter = new showdown.Converter(); self.converter = new showdown.Converter();
self.lastkey = false; self.lastkey = false;
self.pagesize = 5;
self.openPost = (id) => { self.openPost = (id) => {
return ((ev) => { return ((ev) => {
@ -73,15 +83,15 @@ self.filterCategories = (category) => {
return ((ev) => { return ((ev) => {
if (ev !== undefined) { if (ev !== undefined) {
ev.preventDefault(); ev.preventDefault();
self.route(`browse/${category}`);
} }
self.route(`browse/${category}`);
self.update({ self.update({
"loading" : true "loading" : true
}); });
self.opts.state.category_filter = category; self.opts.state.category_filter = category;
window.cached(`/blog/getbrowse/${category}/5/${self.lastkey ? self.lastkey : ""}`) window.cached(`/blog/getbrowse/${category}/${self.pagesize}/${self.lastkey ? self.lastkey : ""}`)
.then((resp) => { return resp.json() }) .then((resp) => { return resp.json() })
.then((results) => { .then((results) => {
self.opts.state.results = results; self.opts.state.results = results;
@ -92,9 +102,30 @@ self.filterCategories = (category) => {
}) })
} }
self.getNext = (startkey) => {
self.update({"loading" : true});
var endpoint;
if (self.category) {
endpoint = `/blog/getbrowse/${self.category}/${self.pagesize}/${startkey}`;
}
else {
endpoint = `/blog/getbrowselim/${self.pagesize}/${startkey}`;
}
window.cached(endpoint)
.then((resp) => { return resp.json() })
.then((results) => {
self.opts.state.results = results.slice(1, results.length);
self.update({
"loading" : false
});
});
}
self.getInitial = () => { self.getInitial = () => {
self.update({"loading" : true}); self.update({"loading" : true});
window.cached("/blog/getbrowse/5") window.cached(`/blog/getbrowse/${self.pagesize}`)
.then((resp) => { return resp.json() }) .then((resp) => { return resp.json() })
.then((results) => { .then((results) => {
self.opts.state.results = results; self.opts.state.results = results;
@ -104,6 +135,11 @@ self.getInitial = () => {
}); });
} }
self.getmore = (ev) => {
ev.preventDefault();
self.getNext(self.opts.state.results.slice(-1)[0][1].id)
}
self.on("mount", () => { self.on("mount", () => {
if (!self.opts.state.category_filter && !self.opts.state.category_tag) { if (!self.opts.state.category_filter && !self.opts.state.category_tag) {
self.getInitial(); self.getInitial();

2
src/website.py

@ -163,7 +163,7 @@ def NeverWhere(configfile=None):
@app.route("/blog/browse/<category>/<start>") @app.route("/blog/browse/<category>/<start>")
def browse_categories(category, start): def browse_categories(category, start):
results = posts.browse(4, start*4, categories=[category], json=False) results = posts.browse(5, start*5, categories=[category], json=False)
return render_template("index.html", return render_template("index.html",
page="browse", page="browse",
start=start, start=start,

Loading…
Cancel
Save