Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/templates/blog/author.html \
src/templates/blog/base.html \
src/templates/blog/index.html \
src/templates/blog/author.html \
src/templates/blog/base.html \
src/templates/blog/index.html \
- src/templates/blog/post.html
+ src/templates/blog/post.html \
+ src/templates/blog/search-results.html
templates_blogdir = $(templatesdir)/blog
templates_blogdir = $(templatesdir)/blog
{% block menu %}
<form class="form-inline ml-auto my-2 my-lg-0" action="/search" method="GET">
<input class="form-control form-control-sm mr-sm-2" type="search" name="q"
{% block menu %}
<form class="form-inline ml-auto my-2 my-lg-0" action="/search" method="GET">
<input class="form-control form-control-sm mr-sm-2" type="search" name="q"
- placeholder="{{ _("Search") }}" aria-label="{{ _("Search") }}">
+ placeholder="{{ _("Search") }}" aria-label="{{ _("Search") }}" value="{% try %}{{ q }}{% except %}{% end %}">
</form>
<ul class="navbar-nav">
</form>
<ul class="navbar-nav">
--- /dev/null
+{% extends "base.html" %}
+
+{% block title %}{{ _("Search results for '%s'") % q }}{% end block %}
+
+{% block main %}
+ <div class="card">
+ <div class="card-body">
+ <h5>{{ _("Search results for '%s'") % q }}</h5>
+
+ {% module BlogPosts(posts) %}
+ </div>
+ </div>
+{% end block %}
(r"/", blog.IndexHandler),
(r"/authors/(\w+)", blog.AuthorHandler),
(r"/post/(.*)", blog.PostHandler),
(r"/", blog.IndexHandler),
(r"/authors/(\w+)", blog.AuthorHandler),
(r"/post/(.*)", blog.PostHandler),
+ (r"/search", blog.SearchHandler),
])
# downloads.ipfire.org
])
# downloads.ipfire.org
self.render("blog/post.html", post=entry)
self.render("blog/post.html", post=entry)
+class SearchHandler(base.BaseHandler):
+ def get(self):
+ q = self.get_argument("q")
+
+ posts = self.planet.search(q)
+ if not posts:
+ raise tornado.web.HTTPError(404, "Nothing found")
+
+ self.render("blog/search-results.html", q=q, posts=posts)
+
+
class PostModule(ui_modules.UIModule):
def render(self, post):
return self.render_string("blog/modules/post.html", post=post)
class PostModule(ui_modules.UIModule):
def render(self, post):
return self.render_string("blog/modules/post.html", post=post)