|
|
@ -1,4 +1,5 @@ |
|
|
|
<browse> |
|
|
|
<div class="content"> |
|
|
|
<menu |
|
|
|
name="Categories" |
|
|
|
items={opts.state.categories} |
|
|
@ -9,19 +10,23 @@ |
|
|
|
<div |
|
|
|
if={!loading} |
|
|
|
style={cardStyle} |
|
|
|
class="card content" |
|
|
|
class="card" |
|
|
|
each={result in opts.state.results} |
|
|
|
> |
|
|
|
<div class="card-header"> |
|
|
|
<a |
|
|
|
onclick={openPost(result[1].id)} |
|
|
|
> |
|
|
|
<h3 class="card-title"> |
|
|
|
{ result[1].title } by { result[1].author } |
|
|
|
</h3> |
|
|
|
</a> |
|
|
|
</div> |
|
|
|
<div class="card-body"> |
|
|
|
<raw content="{ converter.makeHtml(result[1].content) }"></raw> |
|
|
|
<a |
|
|
|
style={linkStyle} |
|
|
|
onclick={openPost(result[1].id)} |
|
|
|
> |
|
|
|
Read More |
|
|
|
</a> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
@ -31,28 +36,34 @@ import './menu.tag'; |
|
|
|
import './loading.tag'; |
|
|
|
import route from 'riot-route'; |
|
|
|
import { default as RiotControl } from 'riotcontrol'; |
|
|
|
import { default as showdown } from 'showdown'; |
|
|
|
|
|
|
|
var self = this; |
|
|
|
|
|
|
|
self.route = route; |
|
|
|
self.loading = false; |
|
|
|
self.converter = new showdown.Converter(); |
|
|
|
|
|
|
|
self.openPost = (id) => { |
|
|
|
return ((ev) => { |
|
|
|
console.log(id); |
|
|
|
console.log(RiotControl.trigger); |
|
|
|
RiotControl.trigger("openpost", id); |
|
|
|
}); |
|
|
|
}; |
|
|
|
|
|
|
|
self.cardStyle = { |
|
|
|
"margin" : "auto" |
|
|
|
"margin" : "auto", |
|
|
|
"margin-top" : "8px" |
|
|
|
}; |
|
|
|
|
|
|
|
self.linkStyle = { |
|
|
|
"cursor" : "pointer" |
|
|
|
}; |
|
|
|
|
|
|
|
self.filterCategories = (category) => { |
|
|
|
return ((ev) => { |
|
|
|
self.update({"loading" : true}); |
|
|
|
ev.preventDefault(); |
|
|
|
|
|
|
|
self.update({"loading" : true}); |
|
|
|
self.route(`browse/${category}`); |
|
|
|
window.cached(`/blog/getbrowse/${category}/0`) |
|
|
|
.then((resp) => { return resp.json() }) |
|
|
|