Browse Source

next pagination working

pull/1/head
wes 7 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>
</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>
@ -53,6 +62,7 @@ self.loading = false;
self.category = self.opts.state.category_filter;
self.converter = new showdown.Converter();
self.lastkey = false;
self.pagesize = 5;
self.openPost = (id) => {
return ((ev) => {
@ -73,15 +83,15 @@ self.filterCategories = (category) => {
return ((ev) => {
if (ev !== undefined) {
ev.preventDefault();
self.route(`browse/${category}`);
}
self.route(`browse/${category}`);
self.update({
"loading" : true
});
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((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.update({"loading" : true});
window.cached("/blog/getbrowse/5")
window.cached(`/blog/getbrowse/${self.pagesize}`)
.then((resp) => { return resp.json() })
.then((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", () => {
if (!self.opts.state.category_filter && !self.opts.state.category_tag) {
self.getInitial();

2
src/website.py

@ -163,7 +163,7 @@ def NeverWhere(configfile=None):
@app.route("/blog/browse/<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",
page="browse",
start=start,

Loading…
Cancel
Save