From 93feb27547afbfe56c2a7f7aed3e47287bcf6199 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Fri, 26 Oct 2018 18:04:34 +0100 Subject: [PATCH] boot: Move UI modules into boot module Signed-off-by: Michael Tremer --- src/templates/netboot/menu-config.cfg | 4 ++-- src/templates/netboot/menu-header.cfg | 8 +++---- src/templates/netboot/menu.cfg | 8 +++---- src/web/__init__.py | 8 ++++--- src/web/boot.py | 32 ++++++++++++++++++++++++++- src/web/ui_modules.py | 23 ------------------- 6 files changed, 46 insertions(+), 37 deletions(-) diff --git a/src/templates/netboot/menu-config.cfg b/src/templates/netboot/menu-config.cfg index f064424d..b60ed296 100644 --- a/src/templates/netboot/menu-config.cfg +++ b/src/templates/netboot/menu-config.cfg @@ -12,7 +12,7 @@ menu begin {{ release.sname }} initrd {{ release.netboot_initrd_url(arch, platform) }} append {{ release.netboot_args(arch, platform) }} vga=791 - {% module NetBootMenuSeparator() %} + {% module BootMenuSeparator() %} label {{ release.sname }}.novga menu label {{ _("Install in text mode") }} @@ -38,7 +38,7 @@ menu begin {{ release.sname }} append {{ release.netboot_args(arch, platform) }} console=ttyS0,115200 novga {% end %} - {% module NetBootMenuSeparator() %} + {% module BootMenuSeparator() %} label {{ release.sname }}.back menu label {{ _("Back...") }} diff --git a/src/templates/netboot/menu-header.cfg b/src/templates/netboot/menu-header.cfg index 90e2b968..b2c86064 100644 --- a/src/templates/netboot/menu-header.cfg +++ b/src/templates/netboot/menu-header.cfg @@ -1,11 +1,11 @@ -menu begin {{ id }} +menu begin {{ slug }} menu title {{ title }} - label {{ id }}.back + label {{ slug }}.back menu label {{ _("Back...") }} menu exit - {% module NetBootMenuSeparator() %} + {% module BootMenuSeparator() %} - {% for r in [r for r in releases if r.is_netboot_capable()] %}{% module NetBootMenuConfig(r, arch=arch, platform=platform) %}{% end %} + {% for r in [r for r in releases if r.is_netboot_capable()] %}{% module BootMenuConfig(r, arch=arch, platform=platform) %}{% end %} menu end diff --git a/src/templates/netboot/menu.cfg b/src/templates/netboot/menu.cfg index 98f0e839..d50c2d18 100644 --- a/src/templates/netboot/menu.cfg +++ b/src/templates/netboot/menu.cfg @@ -17,16 +17,16 @@ prompt 0 menu title {{ _("IPFire boot menu") }} ({{ arch }}) {% if latest_release %} - {% module NetBootMenuConfig(latest_release, arch=arch, platform=platform) %} - {% module NetBootMenuSeparator() %} + {% module BootMenuConfig(latest_release, arch=arch, platform=platform) %} + {% module BootMenuSeparator() %} {% end %} {% if stable_releases %} - {% module NetBootMenuHeader(_("Stable releases"), stable_releases, arch=arch, platform=platform) %} + {% module BootMenuHeader(_("Stable releases"), stable_releases, arch=arch, platform=platform) %} {% end %} {% if development_releases %} - {% module NetBootMenuHeader(_("Development releases"), development_releases, arch=arch, platform=platform) %} + {% module BootMenuHeader(_("Development releases"), development_releases, arch=arch, platform=platform) %} {% end %} {% if arch == "x86_64" %} diff --git a/src/web/__init__.py b/src/web/__init__.py index 72d72ba7..6c5f025f 100644 --- a/src/web/__init__.py +++ b/src/web/__init__.py @@ -57,6 +57,11 @@ class Application(tornado.web.Application): "BlogPost" : blog.PostModule, "BlogPosts" : blog.PostsModule, + # Boot + "BootMenuConfig" : boot.MenuConfigModule, + "BootMenuHeader" : boot.MenuHeaderModule, + "BootMenuSeparator" : boot.MenuSeparatorModule, + # Location "Map" : ui_modules.MapModule, @@ -77,9 +82,6 @@ class Application(tornado.web.Application): "MirrorItem" : ui_modules.MirrorItemModule, "MirrorsTable" : ui_modules.MirrorsTableModule, - "NetBootMenuConfig" : ui_modules.NetBootMenuConfigModule, - "NetBootMenuHeader" : ui_modules.NetBootMenuHeaderModule, - "NetBootMenuSeparator" : ui_modules.NetBootMenuSeparatorModule, "ProgressBar" : ui_modules.ProgressBarModule, "FireinfoDeviceTable" : ui_modules.FireinfoDeviceTableModule, "FireinfoDeviceAndGroupsTable" : ui_modules.FireinfoDeviceAndGroupsTableModule, diff --git a/src/web/boot.py b/src/web/boot.py index 0c91db00..232a104f 100644 --- a/src/web/boot.py +++ b/src/web/boot.py @@ -2,13 +2,16 @@ import logging import os +import re import tornado.httpserver import tornado.ioloop import tornado.locale import tornado.options import tornado.web +import unicodedata from . import base +from . import ui_modules BASEDIR = os.path.dirname(__file__) @@ -49,7 +52,6 @@ class BootBaseHandler(base.BaseHandler): class MenuGPXEHandler(BootBaseHandler): - """ menu.gpxe """ @@ -132,3 +134,31 @@ class MenuCfgHandler(BootBaseHandler): self.render("netboot/menu.cfg", latest_release=latest_release, stable_releases=stable_releases, development_releases=development_releases, arch=self.arch, platform=self.platform) + + +class MenuConfigModule(ui_modules.UIModule): + def render(self, release, arch=None, platform=None): + return self.render_string("netboot/menu-config.cfg", release=release, + arch=arch, platform=platform) + + +class MenuHeaderModule(ui_modules.UIModule): + def render(self, title, releases, arch=None, platform=None): + # Remove any non-ASCII characters + try: + slug = unicodedata.normalize("NFKD", title) + except TypeError: + pass + + # Remove excessive whitespace + slug = re.sub(r"[^\w]+", " ", slug) + + slug = "-".join(slug.split()).lower() + + return self.render_string("netboot/menu-header.cfg", slug=slug, + title=title, releases=releases, arch=arch, platform=platform) + + +class MenuSeparatorModule(ui_modules.UIModule): + def render(self): + return self.render_string("netboot/menu-separator.cfg") diff --git a/src/web/ui_modules.py b/src/web/ui_modules.py index 6a622f6b..b8acbd23 100644 --- a/src/web/ui_modules.py +++ b/src/web/ui_modules.py @@ -1,8 +1,6 @@ #!/usr/bin/python -import re import tornado.web -import unicodedata from .. import database @@ -113,27 +111,6 @@ class MirrorsTableModule(UIModule): mirrors=mirrors, preferred_mirrors=preferred_mirrors) -class NetBootMenuConfigModule(UIModule): - def render(self, release, arch=None, platform=None): - return self.render_string("netboot/menu-config.cfg", release=release, - arch=arch, platform=platform) - - -class NetBootMenuHeaderModule(UIModule): - def render(self, title, releases, arch=None, platform=None): - id = unicodedata.normalize("NFKD", str(title)).encode("ascii", "ignore") - id = re.sub(r"[^\w]+", " ", id) - id = "-".join(id.lower().strip().split()) - - return self.render_string("netboot/menu-header.cfg", id=id, - title=title, releases=releases, arch=arch, platform=platform) - - -class NetBootMenuSeparatorModule(UIModule): - def render(self): - return self.render_string("netboot/menu-separator.cfg") - - class ProgressBarModule(UIModule): def render(self, value, colour=None): value *= 100 -- 2.47.3