src/templates/wiki/recent-changes.html \
src/templates/wiki/revisions.html \
src/templates/wiki/search-results.html \
+ src/templates/wiki/tree.html \
src/templates/wiki/watchlist.html
templates_wikidir = $(templatesdir)/wiki
if res:
return Page(self.backend, res.id, data=res)
+ def __iter__(self):
+ return self._get_pages(
+ "SELECT wiki.* FROM wiki_current current \
+ LEFT JOIN wiki ON current.id = wiki.id \
+ WHERE current.deleted IS FALSE \
+ ORDER BY page",
+ )
+
def make_path(self, page, path):
# Nothing to do for absolute links
if path.startswith("/"):
// Typo
$font-size-base: 1.125rem;
$lead-font-size: 1.5rem;
-$small-font-size: 87.5%;
+$small-font-size: 85%;
$line-height-base: 1.5;
<div class="footer-info">
<div class="container pb-3">
<ul class="list-inline">
+ <li class="list-inline-item">
+ <a href="/watchlist">{{ _("My Watchlist") }}
+ </li>
+
<li class="list-inline-item">
<a href="/recent-changes">{{ _("Recent Changes") }}
</li>
<li class="list-inline-item">
- <a href="/watchlist">{{ _("My Watchlist") }}
+ <a href="/tree">{{ _("Tree") }}
</li>
</ul>
</div>
--- /dev/null
+{% extends "base.html" %}
+
+{% block title %}{{ _("Tree") }}{% end block %}
+
+{% block main %}
+ <section>
+ <div class="container">
+ <div class="row">
+ <div class="col col-lg-6">
+ <h1>{{ _("Tree") }}</h1>
+ </div>
+ </div>
+ </div>
+ </section>
+
+ <div class="card">
+ <div class="list-group list-group-flush">
+ {% for page in pages %}
+ {% if page.check_acl(current_user) %}
+ <div class="list-group-item d-flex flex-column">
+ <p class="mb-0">
+ {% for p, title in backend.wiki.make_breadcrumbs(page.page) %}
+ <a href="{{ p }}">{{ title }}</a> /
+ {% end %}
+
+ <a href="{{ page.url }}">{{ page.title or _("- No Title -") }}</a>
+ </p>
+
+ <small class="text-muted">
+ {{ page.page }} ‐
+ {{ _("Last edited %s") % locale.format_date(page.timestamp, shorter=True) }}
+ </small>
+ </div>
+ {% end %}
+ {% end %}
+ </div>
+ </div>
+{% end block %}
# Handlers
(r"/recent\-changes", wiki.RecentChangesHandler),
(r"/search", wiki.SearchHandler),
+ (r"/tree", wiki.TreeHandler),
(r"/watchlist", wiki.WatchlistHandler),
# Media
self.render("wiki/recent-changes.html", recent_changes=recent_changes)
+class TreeHandler(auth.CacheMixin, base.BaseHandler):
+ def get(self):
+ self.render("wiki/tree.html", pages=self.backend.wiki)
+
+
class WatchlistHandler(auth.CacheMixin, base.BaseHandler):
@tornado.web.authenticated
def get(self):