From 95ec88b448f79d281419e6b5fe839d711a836230 Mon Sep 17 00:00:00 2001 From: wes Date: Sun, 6 Aug 2017 19:02:48 -0400 Subject: [PATCH] basic filtering works :-] --- src/posts.py | 13 +++++++------ src/scripts/post.tag | 19 +++++++++++++------ src/scripts/sidebar.tag | 22 +++++++++++++++++++--- src/website.py | 18 +++++++++--------- 4 files changed, 48 insertions(+), 24 deletions(-) diff --git a/src/posts.py b/src/posts.py index 924b58a..3e00244 100644 --- a/src/posts.py +++ b/src/posts.py @@ -17,12 +17,13 @@ class Posts: self.db = self.client["blog"] - def savepost(self, title="", content="", author="", _id=False): + def savepost(self, title="", content="", author="", category="programming", _id=False): if _id: doc = self.db[_id] doc["title"] = title doc["content"] = content doc["author"] = author + doc["category"] = category else: doc = { "title" : title, @@ -34,15 +35,15 @@ class Posts: print("post was saved %s" % doc) return jsonify(self.db.save(doc)) - def getpost(self, _id): - results = self.db.iterview("blogPosts/blog-posts", 1, include_docs=True, key=_id) + def getpost(self, _id, category="programming"): + results = self.db.iterview("blogPosts/blog-posts", 1, include_docs=True, startkey=[category, _id]) return jsonify([result.doc for result in results][0]) - def iterpost(self, endkey=False, startkey=False): + def iterpost(self, endkey=False, startkey=False, category="programming"): if startkey and not endkey: - results = self.db.iterview("blogPosts/blog-posts", 2, include_docs=True, startkey=startkey) + results = self.db.iterview("blogPosts/blog-posts", 2, include_docs=True, startkey=[category, startkey]) elif endkey and not startkey: - results = self.db.iterview("blogPosts/blog-posts", 1, include_docs=True, endkey=endkey) + results = self.db.iterview("blogPosts/blog-posts", 1, include_docs=True, endkey=[category, endkey]) else: results = self.db.iterview("blogPosts/blog-posts", 2, include_docs=True) diff --git a/src/scripts/post.tag b/src/scripts/post.tag index 94813bb..f469a4f 100644 --- a/src/scripts/post.tag +++ b/src/scripts/post.tag @@ -54,6 +54,7 @@ var self = this; self.route = route; +self.category = "programming"; self._id = ""; self.author = ""; self.title = ""; @@ -64,6 +65,12 @@ self.content = ""; self.swipe = false; self.loading = self.opts.state.loaded; +RiotControl.on("filtercategory", + (ev) => { + let category = ev.category.toLowerCase(); + self.update({"category" : category}); + }); + self.start = false; self.end = false; @@ -76,7 +83,7 @@ prev(ev) { return; } self.prevloading = " loader-branded"; - self.prevPost(self._id, "fadeIn"); + self.prevPost(self._id); } next(ev) { @@ -86,7 +93,7 @@ next(ev) { return; } self.nextloading = " loader-branded"; - self.nextPost(self._id, "fadeIn"); + self.nextPost(self._id); } toTop() { @@ -135,7 +142,7 @@ updatePost(postcontent) { nextPost(_id) { self.update({"loading" : true}); - self.opts.cached(`/blog/switchpost/${_id.slice(-hashLength)}`) + self.opts.cached(`/blog/switchpost/${_id.slice(-hashLength)}/${self.category}`) .then((resp) => resp.text()) .then((resp) => { var content = JSON.parse(resp); @@ -155,7 +162,7 @@ nextPost(_id) { prevPost(_id) { self.update({"loading" : true}); - self.opts.cached(`/blog/prevpost/${_id.slice(-hashLength)}`) + self.opts.cached(`/blog/prevpost/${_id.slice(-hashLength)}/${self.category}`) .then((resp) => resp.text()) .then((resp) => { self.updatePost(JSON.parse(resp)) @@ -166,7 +173,7 @@ getPost(_id) { self.update({"loading" : true}); var url; if (_id !== undefined && _id) { - url = `/blog/getpost/${_id.slice(-hashLength)}`; + url = `/blog/getpost/${_id.slice(-hashLength)}/${self.category}`; } else { url = "/blog/switchpost/"; @@ -176,7 +183,7 @@ getPost(_id) { .then((resp) => { self.updatePost(JSON.parse(resp)) }) } -self.getPost(self.opts.state._id, "fadeIn"); +self.getPost(self.opts.state._id); diff --git a/src/scripts/sidebar.tag b/src/scripts/sidebar.tag index d42d149..e79720e 100644 --- a/src/scripts/sidebar.tag +++ b/src/scripts/sidebar.tag @@ -32,14 +32,23 @@