Browse Source

category tags hopefully working now

pull/1/head
wes 7 years ago
parent
commit
eb9892cc1f
  1. 13
      src/scripts/app.tag
  2. 13
      src/scripts/browse.tag
  3. 15
      src/scripts/categories.tag
  4. 2
      src/scripts/categoryfilter.tag
  5. 9
      src/scripts/post.tag
  6. 8
      src/scripts/social.tag
  7. 5
      src/styles/riotblog.scss
  8. 8
      src/website.py

13
src/scripts/app.tag

@ -134,6 +134,7 @@ self.state = {
"results" : self.decode(self.opts.results),
"start" : self.opts.start,
"category_filter" : self.decode(self.opts.category_filter),
"category_tag" : false,
"_id" : self.opts.postid.slice(-hashLength),
"author" : self.opts.author,
"title" : self.opts.title,
@ -173,6 +174,8 @@ function activate(page) {
self.currentPage = document.title;
}
else {
console.log("XXX");
console.log(self.currentPage);
self.currentPage = self.state.title;
}
self.active = lens.setActive(self.active, page);
@ -213,10 +216,18 @@ self.on("mount", () => {
(id) => {
console.log("caught the event in the app tag");
console.log(`the id is ${id}`);
posts(id);
self.route(`/posts/${id}`);
}
);
window.RiotControl.on("browsecategories",
(category) => {
console.log("browse event fired");
console.log(category);
self.state.category_tag = category;
self.route(`/browse/${category}`);
});
window.RiotControl.on("postswitch",
(ev) => {
console.log("updating the title");

13
src/scripts/browse.tag

@ -54,7 +54,6 @@ self.converter = new showdown.Converter();
self.openPost = (id) => {
return ((ev) => {
self.route(`/posts/${id}`);
RiotControl.trigger("openpost", id);
});
};
@ -70,14 +69,16 @@ self.linkStyle = {
self.filterCategories = (category) => {
return ((ev) => {
ev.preventDefault();
if (ev !== undefined) {
ev.preventDefault();
self.route(`browse/${category}`);
}
self.update({
"loading" : true
});
self.opts.state.category_filter = category;
self.route(`browse/${category}`);
window.cached(`/blog/getbrowse/${category}/0`)
.then((resp) => { return resp.json() })
.then((results) => {
@ -102,9 +103,13 @@ self.getInitial = () => {
}
self.on("mount", () => {
if (!self.opts.state.category_filter) {
if (!self.opts.state.category_filter && !self.opts.state.category_tag) {
self.getInitial();
}
else if (self.opts.state.category_tag) {
self.filterCategories(self.opts.state.category_tag)();
self.one("updated", () => { self.opts.state.category_tag = false; });
}
});
</script>

15
src/scripts/categories.tag

@ -2,19 +2,26 @@
<div class="tags">
<i class="fa fa-tag" aria-hidden="true"></i>
<label
each="{category in categories}"
each="{category in opts.names}"
class="chip"
onclick={browseCategories(category)}
>
{category}
<button class="btn btn-clear"></button>
</label>
</div>
<script>
import route from 'riot-route';
var self = this;
self.categories = ["programming", "python"];
self.route = route;
browseCategories(name) {
return (ev) => {
ev.preventDefault();
window.RiotControl.trigger("browsecategories", name);
};
}
</script>
</categories>

2
src/scripts/categoryfilter.tag

@ -1,5 +1,5 @@
<categoryfilter>
<div>
<div class="categorybar">
<h4>
{ opts.name }
</h4>

9
src/scripts/post.tag

@ -1,5 +1,6 @@
<post>
<div class="posts-box post centered">
<categories names={categories}></categories>
<div
data-is="postcontrols"
prevloading={prevloading}
@ -29,7 +30,6 @@
</p>
<div class="divider"></div>
</div>
<categories></categories>
</div>
<div
data-is="postcontrols"
@ -56,8 +56,8 @@ const hashLength = 8;
self.route = route;
self.loading = false;
self.category = "programming";
self.categories = [];
self._id = self.opts.state._id.slice(-hashLength);
self.author = self.opts.state.author;
self.title = self.opts.state.title;
@ -112,6 +112,7 @@ updatePost(postcontent) {
self.update();
return;
}
self.categories = postcontent.categories;
self._id = postcontent._id.slice(-hashLength);
self.author = postcontent.author;
self.content = postcontent.content;
@ -152,7 +153,7 @@ getPost(_id) {
nextPost(_id) {
self.update({"loading" : true});
window.cached(`/blog/switchpost/${_id.slice(-hashLength)}/${self.category}`)
window.cached(`/blog/switchpost/${_id.slice(-hashLength)}`)
.then((resp) => resp.text())
.then((resp) => {
var content = JSON.parse(resp);
@ -172,7 +173,7 @@ nextPost(_id) {
prevPost(_id) {
self.update({"loading" : true});
window.cached(`/blog/prevpost/${_id.slice(-hashLength)}/${self.category}`)
window.cached(`/blog/prevpost/${_id.slice(-hashLength)}`)
.then((resp) => resp.text())
.then((resp) => {
self.updatePost(JSON.parse(resp))

8
src/scripts/social.tag

@ -37,12 +37,16 @@ loadButtons() {
window.twttr.ready(() => {
if (window.twttr.widgets !== undefined) {
console.log("twitter was defined");
window.twttr.widgets.load(self.refs.twitter.root);
if (self.refs.twitter !== undefined) {
window.twttr.widgets.load(self.refs.twitter.root);
}
}
});
if (FB !== undefined && FB.XFBML !== undefined) {
FB.XFBML.parse(self.refs.facebook.root);
if (self.refs.facebook !== undefined) {
FB.XFBML.parse(self.refs.facebook.root);
}
}
self.old_id = self._id;
}

5
src/styles/riotblog.scss

@ -97,6 +97,11 @@ $navbarHeight: 100px;
}
}
.categorybar {
max-width: 250px;
float: right;
}
.menu-button {
display: block !important;
margin-top: 0;

8
src/website.py

@ -171,14 +171,14 @@ def NeverWhere(configfile=None):
results=dumps(results))
@cache.cached(timeout=50)
@app.route("/blog/switchpost/<pid>/<category>")
def getpostid(pid, category):
@app.route("/blog/switchpost/<pid>")
def getpostid(pid):
return posts.iterpost(startkey=pid)
# get the post previous to this one
@cache.cached(timeout=50)
@app.route("/blog/prevpost/<pid>/<category>")
def prevpost(pid, category):
@app.route("/blog/prevpost/<pid>")
def prevpost(pid):
return posts.iterpost(endkey=pid)
# get the contents of any post

Loading…
Cancel
Save