]> git.ipfire.org Git - ipfire.org.git/commitdiff
wiki: Add tree
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 19 May 2020 16:17:34 +0000 (16:17 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 19 May 2020 16:17:34 +0000 (16:17 +0000)
This lists all pages on the wiki

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Makefile.am
src/backend/wiki.py
src/scss/_variables.scss
src/templates/base.html
src/templates/wiki/tree.html [new file with mode: 0644]
src/web/__init__.py
src/web/wiki.py

index c88e0cfecf1d1a1a622ac89039eaf154f4d18db7..63c51e1f6690560237a64a7e547b35a180913983 100644 (file)
@@ -323,6 +323,7 @@ templates_wiki_DATA = \
        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
index 2fb898d75952d44d5739d21b9a112d3e8fbe8676..d2212ec930869bcbb0ab07172d6537f346fda9ee 100644 (file)
@@ -23,6 +23,14 @@ class Wiki(misc.Object):
                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("/"):
index 2b781ed3e3a55cea5c228458e67626cf85e4fd2e..772a14d57994916fd89eb9f4a5929f15292ce004 100644 (file)
@@ -46,7 +46,7 @@ $font-weight-bold:                    700;
 // 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;
 
index 3c3ca4d16d9255cd9d6a7b3254dd8e0ba2230253..bee5bb0d38b656dc373c46f19f271e231755e747 100644 (file)
                                                <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>
diff --git a/src/templates/wiki/tree.html b/src/templates/wiki/tree.html
new file mode 100644 (file)
index 0000000..a2d1bb2
--- /dev/null
@@ -0,0 +1,38 @@
+{% 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 }} &dash;
+                                                       {{ _("Last edited %s") % locale.format_date(page.timestamp, shorter=True) }}
+                                               </small>
+                                       </div>
+                               {% end %}
+                       {% end %}
+               </div>
+       </div>
+{% end block %}
index eec28f2dc1bf1e5423380fb976455f312319146b..f94d06cdd63709e83cf3aa37b5183d519512a8c0 100644 (file)
@@ -320,6 +320,7 @@ class Application(tornado.web.Application):
                        # Handlers
                        (r"/recent\-changes", wiki.RecentChangesHandler),
                        (r"/search", wiki.SearchHandler),
+                       (r"/tree", wiki.TreeHandler),
                        (r"/watchlist", wiki.WatchlistHandler),
 
                        # Media
index ca0f1b35f949394e0fb0804234c7ed74003391e0..f417e22ab060fcaa7ad0e15e7cedb8a7679c2302 100644 (file)
@@ -358,6 +358,11 @@ class RecentChangesHandler(auth.CacheMixin, base.BaseHandler):
                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):