diff --git a/cfg.sample.py b/cfg.sample.py
index 2c8a8adf1..799984a86 100644
--- a/cfg.sample.py
+++ b/cfg.sample.py
@@ -10,7 +10,7 @@ access_log_file = os.path.join(data_dir, "access.log")
users_dir = os.path.join(data_dir, "users")
product_name = "Plinth"
-box_name = "Freedom Plug"
+box_name = "FreedomBox"
port = 8000
diff --git a/menu.py b/menu.py
index 3e682e4b5..79f220537 100644
--- a/menu.py
+++ b/menu.py
@@ -5,11 +5,15 @@ import cfg
class Menu():
"""One menu item."""
- def __init__(self, label="", url="#", order=50):
+ def __init__(self, label="", icon="", url="#", order=50):
"""label is the text that is displayed on the menu.
+ icon is the icon to be displayed next to the label.
+ Choose from the Glyphicon set:
+ http://twitter.github.com/bootstrap/base-css.html#icons
+
url is the url location that will be activated when the menu
- item is selected
+ item is selected.
order is the numerical rank of this item within the menu.
Lower order items appear closest to the top/left of the menu.
@@ -20,14 +24,15 @@ class Menu():
"""
self.label = label
- self.order = order
+ self.icon = icon
self.url = url
+ self.order = order
self.items = []
def sort_items(self):
"""Sort the items in self.items by order."""
self.items = sorted(self.items, key=lambda x: x.order, reverse=False)
- def add_item(self, label, url, order=50, basehref=True):
+ def add_item(self, label, icon, url, order=50, basehref=True):
"""This method creates a menu item with the parameters, adds
that menu item to this menu, and returns the item.
@@ -36,7 +41,7 @@ class Menu():
if basehref and url.startswith("/"):
url = cfg.base_href + url
- item = Menu(label=label, url=url, order=order)
+ item = Menu(label=label, icon=icon, url=url, order=order)
self.items.append(item)
self.sort_items()
return item
@@ -61,7 +66,7 @@ class Menu():
so = []
for item in self.items:
- i = { 'label':item.label, 'url':item.url}
+ i = { 'label':item.label, 'icon':item.icon, 'url':item.url}
if item.active_p():
i['active']=True
if item.items and render_subs:
@@ -74,7 +79,7 @@ class Menu():
if render_subs is True, we render submenus too"""
- return ('')
+ + ';\n // -->\n ')
diff --git a/modules/installed/apps/apps.py b/modules/installed/apps/apps.py
index fa22178e3..058c22141 100644
--- a/modules/installed/apps/apps.py
+++ b/modules/installed/apps/apps.py
@@ -7,8 +7,8 @@ class Apps(PagePlugin):
def __init__(self, *args, **kwargs):
PagePlugin.__init__(self, *args, **kwargs)
self.register_page("apps")
- self.menu = cfg.main_menu.add_item("Apps", "/apps", 80)
- self.menu.add_item("Photo Gallery", "/apps/photos", 35)
+ self.menu = cfg.main_menu.add_item("Apps", "icon-download-alt", "/apps", 80)
+ self.menu.add_item("Photo Gallery", "icon-picture", "/apps/photos", 35)
@cherrypy.expose
def index(self):
diff --git a/modules/installed/help/help.py b/modules/installed/help/help.py
index f10b04d3e..049f600d4 100644
--- a/modules/installed/help/help.py
+++ b/modules/installed/help/help.py
@@ -8,12 +8,12 @@ class Help(PagePlugin):
def __init__(self, *args, **kwargs):
PagePlugin.__init__(self, *args, **kwargs)
self.register_page("help")
- self.menu = cfg.main_menu.add_item(_("Documentation"), "/help", 101)
- self.menu.add_item(_("Where to Get Help"), "/help/index", 5)
- self.menu.add_item(_("Developer's Manual"), "/help/view/plinth", 10)
- self.menu.add_item(_("FAQ"), "/help/view/faq", 20)
- self.menu.add_item(_("%s Wiki" % cfg.box_name), "http://wiki.debian.org/FreedomBox", 30)
- self.menu.add_item(_("About"), "/help/about", 100)
+ self.menu = cfg.main_menu.add_item(_("Documentation"), "icon-book", "/help", 101)
+ self.menu.add_item(_("Where to Get Help"), "icon-search", "/help/index", 5)
+ self.menu.add_item(_("Developer's Manual"), "icon-info-sign", "/help/view/plinth", 10)
+ self.menu.add_item(_("FAQ"), "icon-question-sign", "/help/view/faq", 20)
+ self.menu.add_item(_("%s Wiki" % cfg.box_name), "icon-pencil", "http://wiki.debian.org/FreedomBox", 30)
+ self.menu.add_item(_("About"), "icon-star", "/help/about", 100)
@cherrypy.expose
def index(self):
@@ -48,7 +48,7 @@ class Help(PagePlugin):
@cherrypy.expose
def about(self):
return self.fill_template(title=_("About the %s" % cfg.box_name), main="""
-
+
We live in a world where our use of the network is mediated by those who often do not have our best interests at heart. By building software that does not rely on diff --git a/modules/installed/privacy/privacy.py b/modules/installed/privacy/privacy.py index a0eeffab2..12517e370 100644 --- a/modules/installed/privacy/privacy.py +++ b/modules/installed/privacy/privacy.py @@ -9,11 +9,11 @@ class Privacy(PagePlugin): def __init__(self, *args, **kwargs): PagePlugin.__init__(self, *args, **kwargs) self.register_page("privacy") - self.menu = cfg.main_menu.add_item("Privacy", "/privacy", 12) - self.menu.add_item("General Config", "/privacy/config", 10) - self.menu.add_item("Ad Blocking", "/privacy/adblock", 20) - self.menu.add_item("TOR", "/privacy/TOR", 30) - self.menu.add_item("HTTPS Everywhere", "/privacy/https_everywhere", 30) + self.menu = cfg.main_menu.add_item("Privacy", "icon-eye-open", "/privacy", 12) + self.menu.add_item("General Config", "icon-asterisk", "/privacy/config", 10) + self.menu.add_item("Ad Blocking", "icon-ban-circle", "/privacy/adblock", 20) + self.menu.add_item("TOR", "icon-eye-close", "/privacy/TOR", 30) + self.menu.add_item("HTTPS Everywhere", "icon-lock", "/privacy/https_everywhere", 30) @cherrypy.expose def index(self): diff --git a/modules/installed/router/router.py b/modules/installed/router/router.py index 91b586650..6c21fea76 100644 --- a/modules/installed/router/router.py +++ b/modules/installed/router/router.py @@ -11,11 +11,11 @@ class router(PagePlugin): order = 9 # order of running init in PagePlugins def __init__(self, *args, **kwargs): self.register_page("router") - self.menu = cfg.main_menu.add_item("Router", "/router", 10) - self.menu.add_item("Wireless", "/router/wireless", 12) - self.menu.add_item("Firewall", "/router/firewall", 18) - self.menu.add_item("Hotspot and Mesh", "/router/hotspot") - self.menu.add_item("Info", "/router/info", 100) + self.menu = cfg.main_menu.add_item("Router", "icon-retweet", "/router", 10) + self.menu.add_item("Wireless", "icon-signal", "/router/wireless", 12) + self.menu.add_item("Firewall", "icon-fire", "/router/firewall", 18) + self.menu.add_item("Hotspot and Mesh", "icon-map-marker", "/router/hotspot") + self.menu.add_item("Info", "icon-list-alt", "/router/info", 100) @cherrypy.expose def index(self): @@ -45,9 +45,9 @@ class router(PagePlugin): class setup(PagePlugin): def __init__(self, *args, **kwargs): self.register_page("router.setup") - self.menu = cfg.html_root.router.menu.add_item("General Setup", "/router/setup", 10) - self.menu.add_item("Dynamic DNS", "/router/setup/ddns", 20) - self.menu.add_item("MAC Address Clone", "/router/setup/mac_address", 30) + self.menu = cfg.html_root.router.menu.add_item("General Setup", "icon-cog", "/router/setup", 10) + self.menu.add_item("Dynamic DNS", "icon-flag", "/router/setup/ddns", 20) + self.menu.add_item("MAC Address Clone", "icon-barcode", "/router/setup/mac_address", 30) @cherrypy.expose @require() diff --git a/modules/installed/santiago/santiago.py b/modules/installed/santiago/santiago.py index 38e651206..7cf11e538 100644 --- a/modules/installed/santiago/santiago.py +++ b/modules/installed/santiago/santiago.py @@ -114,7 +114,7 @@ class Santiago(PagePlugin): class santiago(PagePlugin): def __init__(self, *args, **kwargs): PagePlugin.__init__(self, *args, **kwargs) - self.menu = cfg.html_root.privacy.menu.add_item("Santiago", "/privacy/santiago", 10) + self.menu = cfg.html_root.privacy.menu.add_item("Santiago", "icon-leaf", "/privacy/santiago", 10) self.register_page("privacy.santiago") @cherrypy.expose diff --git a/modules/installed/services/services.py b/modules/installed/services/services.py index 5ad7feb40..5a7427c2c 100644 --- a/modules/installed/services/services.py +++ b/modules/installed/services/services.py @@ -8,8 +8,8 @@ class Services(PagePlugin): def __init__(self, *args, **kwargs): PagePlugin.__init__(self, *args, **kwargs) self.register_page("services") - self.menu = cfg.main_menu.add_item("Services", "/services", 90) - self.menu.add_item("Open ID", "/services/openid", 35) + self.menu = cfg.main_menu.add_item("Services", "icon-list", "/services", 90) + self.menu.add_item("Open ID", "icon-user", "/services/openid", 35) @cherrypy.expose def index(self): diff --git a/modules/installed/sharing/file_explorer.py b/modules/installed/sharing/file_explorer.py index 1e7ce6f38..ed23b5053 100644 --- a/modules/installed/sharing/file_explorer.py +++ b/modules/installed/sharing/file_explorer.py @@ -7,7 +7,7 @@ class FileExplorer(PagePlugin): def __init__(self, *args, **kwargs): PagePlugin.__init__(self, *args, **kwargs) self.register_page("sharing.explorer") - cfg.html_root.sharing.menu.add_item("File Explorer", "/sharing/explorer", 30) + cfg.html_root.sharing.menu.add_item("File Explorer", "icon-folder-open", "/sharing/explorer", 30) @cherrypy.expose @require() diff --git a/modules/installed/sharing/sharing.py b/modules/installed/sharing/sharing.py index 866b9bc44..7617c577a 100644 --- a/modules/installed/sharing/sharing.py +++ b/modules/installed/sharing/sharing.py @@ -10,8 +10,8 @@ class Sharing(PagePlugin): def __init__(self, *args, **kwargs): PagePlugin.__init__(self, *args, **kwargs) self.register_page("sharing") - self.menu = cfg.main_menu.add_item("Sharing", "/sharing", 35) - self.menu.add_item("File Server", "/sharing/files", 10) + self.menu = cfg.main_menu.add_item("Sharing", "icon-share-alt", "/sharing", 35) + self.menu.add_item("File Server", "icon-inbox", "/sharing/files", 10) @cherrypy.expose def index(self): @@ -37,7 +37,7 @@ class PrinterSharing(PagePlugin): def __init__(self, *args, **kwargs): PagePlugin.__init__(self, *args, **kwargs) self.register_page("sharing.printer") - cfg.html_root.sharing.menu.add_item("Printer Sharing", "/sharing/printer", 35) + cfg.html_root.sharing.menu.add_item("Printer Sharing", "icon-print", "/sharing/printer", 35) @cherrypy.expose @require() diff --git a/modules/installed/system/system.py b/modules/installed/system/system.py index 6f5e32a88..68a7a50ff 100644 --- a/modules/installed/system/system.py +++ b/modules/installed/system/system.py @@ -18,10 +18,10 @@ class Sys(PagePlugin): def __init__(self, *args, **kwargs): PagePlugin.__init__(self, *args, **kwargs) self.register_page("sys") - self.menu = cfg.main_menu.add_item(_("System"), "/sys", 100) - self.menu.add_item(_("Configure"), "/sys/config", 10) - self.menu.add_item(_("Package Manager"), "/sys/packages", 20) - self.menu.add_item(_("Users and Groups"), "/sys/users", 15) + self.menu = cfg.main_menu.add_item(_("System"), "icon-cog", "/sys", 100) + self.menu.add_item(_("Configure"), "icon-cog", "/sys/config", 10) + self.menu.add_item(_("Package Manager"), "icon-gift", "/sys/packages", 20) + self.menu.add_item(_("Users and Groups"), "icon-user", "/sys/users", 15) @cherrypy.expose def index(self): diff --git a/plinth.py b/plinth.py index b912dc09e..2eff29f40 100755 --- a/plinth.py +++ b/plinth.py @@ -40,7 +40,7 @@ def error_page_500(status, message, traceback, version): cfg.log.error("500 Internal Server Error. Trackback is above.") more="""
This is an internal error and not something you caused or can fix. Please report the error on the bug tracker so + href="https://github.com/seandiggity/Plinth/issues">bug tracker so we can fix it.
""" return error_page(status, message, "%s
%s" % (more, "\n".join(traceback.split("\n")))) diff --git a/templates/base.tmpl b/templates/base.tmpl index b6a2c236a..5a37f537b 100644 --- a/templates/base.tmpl +++ b/templates/base.tmpl @@ -45,14 +45,22 @@ - - $css - + + + + + $css + @@ -112,7 +117,7 @@ -
FreedomBox
+
FreedomBox Dashboard
@@ -130,7 +135,7 @@