From 6ac7e934e2f0cb9cffc86a7adf6ffcf870832d26 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Mon, 12 Nov 2018 15:18:58 +0000 Subject: [PATCH] wiki: Add navbar Signed-off-by: Michael Tremer --- Makefile.am | 5 +++++ src/backend/wiki.py | 8 ++++++++ src/scss/style.scss | 1 + src/templates/wiki/modules/navbar.html | 15 +++++++++++++++ src/templates/wiki/page.html | 2 ++ src/web/__init__.py | 3 +++ src/web/wiki.py | 9 +++++++++ 7 files changed, 43 insertions(+) create mode 100644 src/templates/wiki/modules/navbar.html diff --git a/Makefile.am b/Makefile.am index 621c610d..6bbd6078 100644 --- a/Makefile.am +++ b/Makefile.am @@ -259,6 +259,11 @@ templates_wiki_DATA = \ templates_wikidir = $(templatesdir)/wiki +templates_wiki_modules_DATA = \ + src/templates/wiki/modules/navbar.html + +templates_wiki_modulesdir = $(templates_wikidir)/modules + # ------------------------------------------------------------------------------ SCSS_FILES = \ diff --git a/src/backend/wiki.py b/src/backend/wiki.py index a5635beb..e2a8e45e 100644 --- a/src/backend/wiki.py +++ b/src/backend/wiki.py @@ -2,6 +2,7 @@ import logging import markdown2 +import os.path import re from . import misc @@ -26,6 +27,13 @@ class Wiki(misc.Object): for row in res: yield Page(self.backend, row.id, data=row) + def get_page_title(self, page, default=None): + doc = self.get_page(page) + if doc: + return doc.title + + return default + def get_page(self, page, revision=None): page = Page.sanitise_page_name(page) assert page diff --git a/src/scss/style.scss b/src/scss/style.scss index 1cb80321..1b326cff 100644 --- a/src/scss/style.scss +++ b/src/scss/style.scss @@ -22,6 +22,7 @@ @import "../bootstrap/scss/navbar"; @import "../bootstrap/scss/card"; @import "../bootstrap/scss/pagination"; +@import "../bootstrap/scss/breadcrumb"; @import "../bootstrap/scss/badge"; @import "../bootstrap/scss/alert"; @import "../bootstrap/scss/progress"; diff --git a/src/templates/wiki/modules/navbar.html b/src/templates/wiki/modules/navbar.html new file mode 100644 index 00000000..06d05ec8 --- /dev/null +++ b/src/templates/wiki/modules/navbar.html @@ -0,0 +1,15 @@ + diff --git a/src/templates/wiki/page.html b/src/templates/wiki/page.html index 575863ec..4fe9574e 100644 --- a/src/templates/wiki/page.html +++ b/src/templates/wiki/page.html @@ -3,6 +3,8 @@ {% block title %}{{ page.title }}{% end block %} {% block main %} + {% module WikiNavbar(page) %} +
{% raw page.html %} diff --git a/src/web/__init__.py b/src/web/__init__.py index 1c054b8f..c8c97e1c 100644 --- a/src/web/__init__.py +++ b/src/web/__init__.py @@ -89,6 +89,9 @@ class Application(tornado.web.Application): "FireinfoDeviceAndGroupsTable" : fireinfo.DeviceAndGroupsTableModule, + # Wiki + "WikiNavbar" : wiki.WikiNavbarModule, + # Misc "Map" : ui_modules.MapModule, "ProgressBar" : ui_modules.ProgressBarModule, diff --git a/src/web/wiki.py b/src/web/wiki.py index e8201f1d..e2b5a57a 100644 --- a/src/web/wiki.py +++ b/src/web/wiki.py @@ -4,6 +4,7 @@ import tornado.web from . import auth from . import base +from . import ui_modules class PageHandler(auth.CacheMixin, base.BaseHandler): @tornado.web.removeslash @@ -48,3 +49,11 @@ class SearchHandler(auth.CacheMixin, base.BaseHandler): raise tornado.web.HTTPError(404, "Nothing found") self.render("wiki/search-results.html", q=q, pages=pages) + + +class WikiNavbarModule(ui_modules.UIModule): + def render(self, page, suffix=None): + breadcrumbs = self.backend.wiki.make_breadcrumbs(page.url) + + return self.render_string("wiki/modules/navbar.html", + breadcrumbs=breadcrumbs, page_title=page.title, suffix=suffix) -- 2.47.2