mirror of
https://github.com/freedombox/FreedomBox.git
synced 2026-02-04 08:13:38 +00:00
new template based upon bootstrap
This commit is contained in:
parent
d2bcebf676
commit
638b287d1b
@ -7,7 +7,7 @@ class Apps(PagePlugin):
|
||||
def __init__(self, *args, **kwargs):
|
||||
PagePlugin.__init__(self, *args, **kwargs)
|
||||
self.register_page("apps")
|
||||
self.menu = cfg.main_menu.add_item("User Apps", "/apps", 80)
|
||||
self.menu = cfg.main_menu.add_item("Apps", "/apps", 80)
|
||||
self.menu.add_item("Photo Gallery", "/apps/photos", 35)
|
||||
|
||||
@cherrypy.expose
|
||||
@ -27,7 +27,7 @@ class Apps(PagePlugin):
|
||||
@require()
|
||||
def photos(self):
|
||||
return self.fill_template(title="Open ID", main='', sidebar_right="""
|
||||
<h2>Photo Gallery</h2><p>Your photos might well be the most valuable
|
||||
<strong>Photo Gallery</strong><p>Your photos might well be the most valuable
|
||||
digital property you have, so why trust it to companies that have no
|
||||
investment in the sentimental value of your family snaps? Keep those
|
||||
photos local, backed up, easily accessed and free from the whims of
|
||||
|
||||
@ -8,7 +8,7 @@ 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 and FAQ"), "/help", 101)
|
||||
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)
|
||||
@ -27,7 +27,7 @@ class Help(PagePlugin):
|
||||
offer suggestions, edits, and screenshots for completing
|
||||
it!</p>
|
||||
|
||||
<p><a href="http://wiki.debian.org/FreedomBox">A section of
|
||||
<p><a href="http://wiki.debian.org/FreedomBox" target="_blank">A section of
|
||||
the Debian wiki</a> is devoted to the %(box)s. At some
|
||||
point the documentation in the wiki and the documentation in
|
||||
the manual should dovetail.</p>
|
||||
@ -48,8 +48,9 @@ class Help(PagePlugin):
|
||||
@cherrypy.expose
|
||||
def about(self):
|
||||
return self.fill_template(title=_("About the %s" % cfg.box_name), main="""
|
||||
<p> We live in a world where our use of the network is
|
||||
mediated by organizations that often do not have our best
|
||||
<img src="/static/theme/img/freedombox-logo-200px.png" style="float:right;padding:25px;" />
|
||||
<p>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
|
||||
a central service, we can regain control and privacy. By
|
||||
keeping our data in our homes, we gain useful legal
|
||||
@ -62,14 +63,15 @@ class Help(PagePlugin):
|
||||
runs on must be cheap. The software it runs on must be easy to
|
||||
install and administrate by anybody. It must be easy to
|
||||
transition from existing services.</p>
|
||||
|
||||
<p>There are a number of projects working to realize a future
|
||||
<p><a class="btn btn-primary btn-large" href="http://wiki.debian.org/FreedomBox" target="_blank">Learn more »</a></p>""",
|
||||
sidebar_right=_("""<strong>Our Goal</strong><p>There are a number of projects working to realize a future
|
||||
of distributed services; we aim to bring them all together in
|
||||
a convenient package.</p>
|
||||
|
||||
<p>For more information about the Freedom Box project, see the
|
||||
<p>For more information about the FreedomBox project, see the
|
||||
<a href="http://wiki.debian.org/FreedomBox">Debian
|
||||
Wiki</a>.</p>""")
|
||||
Wiki</a>.</p>
|
||||
"""))
|
||||
|
||||
class View(PagePlugin):
|
||||
def __init__(self, *args, **kwargs):
|
||||
|
||||
@ -50,9 +50,9 @@ class Form():
|
||||
quad = [0,0,0,0]
|
||||
self.text += """ <label>
|
||||
<span>%(label)s</span>
|
||||
<input type="text" class="inputtextnowidth" name="%(name)s0" id="%(id)s0" value="%(q0)s" maxlength="3" size="1"/><b>.</b>
|
||||
<input type="text" class="inputtextnowidth" name="%(name)s1" id="%(id)s1" value="%(q1)s" maxlength="3" size="1"/><b>.</b>
|
||||
<input type="text" class="inputtextnowidth" name="%(name)s2" id="%(id)s2" value="%(q2)s" maxlength="3" size="1"/><b>.</b>
|
||||
<input type="text" class="inputtextnowidth" name="%(name)s0" id="%(id)s0" value="%(q0)s" maxlength="3" size="1"/><strong>.</strong>
|
||||
<input type="text" class="inputtextnowidth" name="%(name)s1" id="%(id)s1" value="%(q1)s" maxlength="3" size="1"/><strong>.</strong>
|
||||
<input type="text" class="inputtextnowidth" name="%(name)s2" id="%(id)s2" value="%(q2)s" maxlength="3" size="1"/><strong>.</strong>
|
||||
<input type="text" class="inputtextnowidth" name="%(name)s3" id="%(id)s3" value="%(q3)s" maxlength="3" size="1"/>
|
||||
</label>""" % {'label':label, 'name':name, 'id':id, 'q0':quad[0], 'q1':quad[1], 'q2':quad[2], 'q3':quad[3]}
|
||||
|
||||
@ -77,7 +77,7 @@ class Form():
|
||||
self.text += """
|
||||
<div class="submit">
|
||||
<label><span></span>
|
||||
<input type="submit" class="button" value="%s" name="%s" id="%s" />
|
||||
<input type="submit" class="btn-primary" value="%s" name="%s" id="%s" />
|
||||
</label></div>\n""" % (label, name, id)
|
||||
def submit_row(self, buttons):
|
||||
"""buttons is a list of tuples, each containing label, name, id. Name and id are optional."""
|
||||
@ -99,7 +99,7 @@ class Form():
|
||||
|
||||
if button_text != '':
|
||||
button_text += " "
|
||||
button_text += '<input type="submit" class="button" value="%s" name="%s" id="%s" />\n' % (label, name, id)
|
||||
button_text += '<input type="submit" class="btn-primary" value="%s" name="%s" id="%s" />\n' % (label, name, id)
|
||||
self.text += '%s</div></label>' % button_text
|
||||
def name_or_id(self, name, id):
|
||||
if not name: name = id
|
||||
|
||||
@ -9,7 +9,7 @@ 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 Controls", "/privacy", 12)
|
||||
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)
|
||||
@ -29,7 +29,7 @@ class Privacy(PagePlugin):
|
||||
is a founding consideration, not an afterthought.</p>
|
||||
"""
|
||||
return self.fill_template(title=_("Privacy Control Panel"), main=main,
|
||||
sidebar_right=_("""<h2>Statement of Principles</h2><p>When we say your
|
||||
sidebar_right=_("""<strong>Statement of Principles</strong><p>When we say your
|
||||
privacy is important, it's not just an empty pleasantry. We really
|
||||
mean it. Your privacy control panel should give you fine-grained
|
||||
control over exactly who can access your %s and the
|
||||
@ -37,6 +37,6 @@ information on it.</p>
|
||||
|
||||
<p>Your personal information should not leave this box without your
|
||||
knowledge and direction. And if companies or government wants this
|
||||
information, they have to ask <b>you</b> for it. This gives you a
|
||||
information, they have to ask <strong>you</strong> for it. This gives you a
|
||||
change to refuse and also tells you who wants your data.</p>
|
||||
""") % cfg.product_name)
|
||||
|
||||
@ -14,5 +14,5 @@ class Info(PagePlugin):
|
||||
@require()
|
||||
def index(self):
|
||||
return self.fill_template(title="Router Information", main="""
|
||||
<p> Eventually we will display a bunch of info, graphs and logs about the routing functions here.</p>
|
||||
<p>Eventually we will display a bunch of info, graphs and logs about the routing functions here.</p>
|
||||
""")
|
||||
|
||||
@ -11,7 +11,7 @@ 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 Admin", "/router", 10)
|
||||
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")
|
||||
@ -54,7 +54,7 @@ class setup(PagePlugin):
|
||||
def index(self):
|
||||
parts = self.forms('/router/setup')
|
||||
parts['title'] = "General Router Setup"
|
||||
parts['sidebar_right']="""<h2>Introduction</h2><p>Your %s is a replacement for your
|
||||
parts['sidebar_right']="""<strong>Introduction</strong><p>Your %s is a replacement for your
|
||||
wireless router. By default, it should do everything your usual
|
||||
router does. With the addition of some extra modules, its abilities
|
||||
can rival those of high-end routers costing hundreds of dollars.</p>
|
||||
@ -88,7 +88,7 @@ class wan(FormPlugin, PagePlugin):
|
||||
url = ["/router/setup"]
|
||||
order = 10
|
||||
|
||||
js = """<script LANGUAGE="JavaScript">
|
||||
js = """<script type="text/javascript">
|
||||
<!--
|
||||
function hideshow_static() {
|
||||
var d = document.getElementById('connect_type');
|
||||
@ -105,7 +105,7 @@ class wan(FormPlugin, PagePlugin):
|
||||
def sidebar_right(self, *args, **kwargs):
|
||||
side=''
|
||||
if cfg.users.expert():
|
||||
side += """<h2>WAN Connection Type</h2>
|
||||
side += """<strong>WAN Connection Type</strong>
|
||||
<h3>DHCP</h3><p>DHCP allows your router to automatically
|
||||
connect with the upstream network. If you are unsure what
|
||||
option to choose, stick with DHCP. It is usually
|
||||
@ -150,7 +150,7 @@ class wan(FormPlugin, PagePlugin):
|
||||
form.dotted_quad("Static DNS 2", name="dns2", quad=[dns20, dns21, dns22, dns23])
|
||||
form.dotted_quad("Static DNS 3", name="dns3", quad=[dns30, dns31, dns32, dns33])
|
||||
form.html('</div>')
|
||||
form.html(""" <script LANGUAGE="JavaScript">
|
||||
form.html(""" <script type="text/javascript">
|
||||
<!--
|
||||
hideshow_static();
|
||||
// -->
|
||||
|
||||
@ -8,7 +8,7 @@ class Services(PagePlugin):
|
||||
def __init__(self, *args, **kwargs):
|
||||
PagePlugin.__init__(self, *args, **kwargs)
|
||||
self.register_page("services")
|
||||
self.menu = cfg.main_menu.add_item("Other Services", "/services", 90)
|
||||
self.menu = cfg.main_menu.add_item("Services", "/services", 90)
|
||||
self.menu.add_item("Open ID", "/services/openid", 35)
|
||||
|
||||
@cherrypy.expose
|
||||
@ -19,7 +19,7 @@ class Services(PagePlugin):
|
||||
@require()
|
||||
def openid(self):
|
||||
return self.fill_template(title="Open ID", main='', sidebar_right="""
|
||||
<h2>One Login for Every Site</h2><p>Your %s is also an OpenID
|
||||
<strong>One Login for Every Site</strong><p>Your %s is also an OpenID
|
||||
machine. It can generate credentials that allow you to log in to many
|
||||
websites without the need to remember or enter a separate username and
|
||||
password at each one.</p>
|
||||
|
||||
@ -10,7 +10,7 @@ class Sharing(PagePlugin):
|
||||
def __init__(self, *args, **kwargs):
|
||||
PagePlugin.__init__(self, *args, **kwargs)
|
||||
self.register_page("sharing")
|
||||
self.menu = cfg.main_menu.add_item("Resource Sharing", "/sharing", 35)
|
||||
self.menu = cfg.main_menu.add_item("Sharing", "/sharing", 35)
|
||||
self.menu.add_item("File Server", "/sharing/files", 10)
|
||||
|
||||
@cherrypy.expose
|
||||
@ -25,7 +25,7 @@ class Sharing(PagePlugin):
|
||||
@require()
|
||||
def files(self):
|
||||
return self.fill_template(title="File Server", main='', sidebar_right=_("""
|
||||
<h2>Freedom NAS</h2><p> The %s can make your spare hard drives accessible to your
|
||||
<strong>Freedom NAS</strong><p> The %s can make your spare hard drives accessible to your
|
||||
local network, thus acting as a NAS server. We currently support
|
||||
sharing files via NFS and SMB.
|
||||
|
||||
@ -47,7 +47,7 @@ class PrinterSharing(PagePlugin):
|
||||
<p>TODO: Setup and install CUPS</p>
|
||||
"""
|
||||
return self.fill_template(title="Printer Sharing", main=main, sidebar_right="""
|
||||
<h2>Share Your Printer</h2><p> The %s can share your printer via Samba and CUPS.</p>
|
||||
<strong>Share Your Printer</strong><p> The %s can share your printer via Samba and CUPS.</p>
|
||||
""" % cfg.box_name)
|
||||
|
||||
|
||||
|
||||
@ -64,7 +64,7 @@ class general(FormPlugin, PagePlugin):
|
||||
## only expert users are going to get deep enough to see any timestamps
|
||||
if not cfg.users.expert():
|
||||
return ''
|
||||
return _(#"""<h2>Time Zone</h2>
|
||||
return _(#"""<strong>Time Zone</strong>
|
||||
"""<p>Set your timezone to get accurate
|
||||
timestamps. %(product)s will use this information to set your
|
||||
%(box)s's systemwide timezone.</p>
|
||||
|
||||
@ -15,7 +15,7 @@ class experts(FormPlugin, PagePlugin):
|
||||
order = 10
|
||||
|
||||
def help(self, *args, **kwargs):
|
||||
side = _(#"""<h2>Expert Mode</h2>
|
||||
side = _(#"""<strong>Expert Mode</strong>
|
||||
"""
|
||||
<p>The %(box)s can be administered in two modes, 'basic'
|
||||
and 'expert'. Basic mode hides a lot of features and
|
||||
|
||||
@ -18,7 +18,7 @@ class Sys(PagePlugin):
|
||||
def __init__(self, *args, **kwargs):
|
||||
PagePlugin.__init__(self, *args, **kwargs)
|
||||
self.register_page("sys")
|
||||
self.menu = cfg.main_menu.add_item(_("%s System" % cfg.product_name), "/sys", 100)
|
||||
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)
|
||||
@ -37,7 +37,7 @@ class Sys(PagePlugin):
|
||||
@require()
|
||||
def packages(self):
|
||||
side=_("""
|
||||
<h2>Help</h2>
|
||||
<strong>Help</strong>
|
||||
<p>On this page, you can add or remove %s plugins to your %s.</p>
|
||||
<p>Plugins are just Debian packages, so Debian's usual package management features should make this job fairly easy.</p>
|
||||
""" % (cfg.product_name, cfg.box_name))
|
||||
|
||||
@ -24,8 +24,8 @@ class add(FormPlugin, PagePlugin):
|
||||
order = 30
|
||||
|
||||
sidebar_left = ''
|
||||
sidebar_right = _("""<h2>Add User</h2><p>Adding a user via this
|
||||
administrative interface <b>might</b> create a system user.
|
||||
sidebar_right = _("""<strong>Add User</strong><p>Adding a user via this
|
||||
administrative interface <strong>might</strong> create a system user.
|
||||
For example, if you provide a user with ssh access, she will
|
||||
need a system account. If you don't know what that means,
|
||||
don't worry about it.</p>""")
|
||||
@ -70,16 +70,16 @@ class edit(FormPlugin, PagePlugin):
|
||||
order = 35
|
||||
|
||||
sidebar_left = ''
|
||||
sidebar_right = _("""<h2>Edit Users</h2><p>Click on a user's name to
|
||||
go to a screen for editing that user's account.</p><h2>Delete
|
||||
Users</h2><p>Check the box next to a users' names and then click
|
||||
sidebar_right = _("""<strong>Edit Users</strong><p>Click on a user's name to
|
||||
go to a screen for editing that user's account.</p><strong>Delete
|
||||
Users</strong><p>Check the box next to a users' names and then click
|
||||
"Delete User" to remove users from %s and the %s
|
||||
system.</p><p>Deleting users is permanent!</p>""" % (cfg.product_name, cfg.box_name))
|
||||
|
||||
def main(self, msg=''):
|
||||
users = cfg.users.keys()
|
||||
add_form = Form(title=_("Edit or Delete User"), action="/sys/users/edit", message=msg)
|
||||
add_form.html('<span class="indent"><b>Delete</b><br /></span>')
|
||||
add_form.html('<span class="indent"><strong>Delete</strong><br /></span>')
|
||||
for uname in sorted(users.keys()):
|
||||
add_form.html('<span class="indent"> %s ' %
|
||||
add_form.get_checkbox(name=uname) +
|
||||
@ -123,6 +123,6 @@ class edit(FormPlugin, PagePlugin):
|
||||
return self.fill_template(template="err", title=_("Unnown User"), main=main,
|
||||
sidebar_left=self.sidebar_left, sidebar_right=sidebar_right)
|
||||
|
||||
main = _("""<h2>Edit User '%s'</h2>""" % u['username'])
|
||||
main = _("""<strong>Edit User '%s'</strong>""" % u['username'])
|
||||
sidebar_right = ''
|
||||
return self.fill_template(title="", main=main, sidebar_left=self.sidebar_left, sidebar_right=sidebar_right)
|
||||
|
||||
@ -22,13 +22,13 @@ class wan(FormPlugin, PagePlugin):
|
||||
end will be reachable from the WAN. If your %(box)s
|
||||
connects you to the internet, that means you'll be able to log
|
||||
in to the front end from the internet. This might be
|
||||
convenient, but it is also <b>dangerous</b>, since it can
|
||||
convenient, but it is also <strong>dangerous</strong>, since it can
|
||||
enable attackers to gain access to your %(box)s from the
|
||||
outside world. All they'll need is your username and
|
||||
passphrase, which they might guess or they might simply try
|
||||
every posible combination of letters and numbers until they
|
||||
get in. If you enable the WAN administration option, you
|
||||
<b>must</b> use long and complex passphrases.</p>
|
||||
<strong>must</strong> use long and complex passphrases.</p>
|
||||
|
||||
<p>For security reasons, neither WAN Administration nor WAN
|
||||
SSH is available to the `admin` user account.</p>
|
||||
|
||||
@ -6,70 +6,62 @@
|
||||
#end if
|
||||
#end def
|
||||
<!doctype html>
|
||||
|
||||
<!--[if lt IE 7 ]> <html class="ie ie6 no-js" lang="en"> <![endif]-->
|
||||
<!--[if IE 7 ]> <html class="ie ie7 no-js" lang="en"> <![endif]-->
|
||||
<!--[if IE 8 ]> <html class="ie ie8 no-js" lang="en"> <![endif]-->
|
||||
<!--[if IE 9 ]> <html class="ie ie9 no-js" lang="en"> <![endif]-->
|
||||
<!--[if gt IE 9]><!--><html class="no-js" lang="en"><!--<![endif]-->
|
||||
<!-- the "no-js" class is for Modernizr. -->
|
||||
|
||||
<head id="www-sitename-com" data-template-set="html5-reset">
|
||||
|
||||
<!--[if gt IE 9]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
|
||||
<!-- the "no-js" class is for Modernizr -->
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
|
||||
<!-- Always force latest IE rendering engine (even in intranet) & Chrome Frame -->
|
||||
<!-- Always force latest IE rendering engine and Chrome Frame -->
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
|
||||
|
||||
<title>$default($title, "Plinth Front End to the Freedom Box")</title>
|
||||
|
||||
<meta name="title" content="$default($title, 'Plinth Front End to the Freedom Box')" />
|
||||
<meta name="description" content="Plinth admin frontend for Freedom Box" />
|
||||
|
||||
<!-- I believe that robots should only have faces if they truly need them. -->
|
||||
<meta name="robots" content="noindex, nofollow, noarchive" />
|
||||
<meta name="googlebot" content="noindex, nofollow, noarchive, nosnippet, noodp, noimageindex, notranslate" />
|
||||
<meta name="msnbot" content="noindex, nofollow, noarchive, noodp" />
|
||||
<meta name="slurp" content="noindex, nofollow, noarchive, noodp, noydir" />
|
||||
|
||||
<!-- Mobile Viewport Fix
|
||||
j.mp/mobileviewport & davidbcalhoun.com/2010/viewport-metatag
|
||||
<!-- Mobile Viewport Fix http://j.mp/mobileviewport & http://davidbcalhoun.com/2010/viewport-metatag
|
||||
device-width : Occupy full width of the screen in its current orientation
|
||||
initial-scale = 1.0 retains dimensions instead of zooming out if page height > device height
|
||||
maximum-scale = 1.0 retains dimensions instead of zooming in if page width < device width
|
||||
-->
|
||||
<!-- Uncomment to use; use thoughtfully!
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
|
||||
-->
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
|
||||
<!-- I believe that robots should only have faces if they truly need them -->
|
||||
<meta name="robots" content="noindex, nofollow, noarchive" />
|
||||
<meta name="googlebot" content="noindex, nofollow, noarchive, nosnippet, noodp, noimageindex, notranslate" />
|
||||
<meta name="msnbot" content="noindex, nofollow, noarchive, noodp" />
|
||||
<meta name="slurp" content="noindex, nofollow, noarchive, noodp, noydir" />
|
||||
|
||||
<meta name="title" content="$default($title, 'FreedomBox Dashboard')" />
|
||||
<meta name="description" content="Plinth administrative interface for the FreedomBox" />
|
||||
<title>$default($title, "FreedomBox Dashboard")</title>
|
||||
|
||||
<link rel="shortcut icon" href="$basehref/static/theme/img/favicon.ico" />
|
||||
<!-- This is the traditional favicon.
|
||||
- size: 16x16 or 32x32
|
||||
- transparency is OK
|
||||
- see wikipedia for info on browser support: http://mky.be/favicon/ -->
|
||||
<!-- This is the traditional favicon. Size: 16x16 or 32x32, transparency is OK -->
|
||||
|
||||
<link rel="apple-touch-icon" href="$basehref/static/theme/img/freedombox-button-114px.png" />
|
||||
<!-- The is the icon for iOS's Web Clip.
|
||||
- size: 57x57 for older iPhones, 72x72 for iPads, 114x114 for iPhone4's retina display (IMHO, just go ahead and use the biggest one)
|
||||
- To prevent iOS from applying its styles to the icon name it thusly: apple-touch-icon-precomposed.png
|
||||
- Transparency is not recommended (iOS will put a black BG behind the icon) -->
|
||||
<link rel="apple-touch-icon" sizes="57x57" href="$basehref/static/theme/img/apple-touch-icon-57px-precomposed.png" />
|
||||
<link rel="apple-touch-icon" sizes="72x72" href="$basehref/static/theme/img/apple-touch-icon-72px-precomposed.png" />
|
||||
<link rel="apple-touch-icon" sizes="114x114" href="$basehref/static/theme/img/apple-touch-icon-114px-precomposed.png" />
|
||||
<!-- The is the icon for iOS's Web Clip. Size: 57x57 for older iPhones, 72x72 for iPads, 114x114 for iPhone4
|
||||
- To prevent iOS from applying its styles to the icon name it thusly: apple-touch-icon-precomposed.png
|
||||
- Transparency is not recommended (iOS will put a black BG behind the icon) -->
|
||||
|
||||
<!-- HTML5-Reset CSS: screen, mobile & print are all in the same file -->
|
||||
<link rel="stylesheet" href="$basehref/static/theme/css/style-html5reset.css" />
|
||||
|
||||
<!-- Original Plinth CSS, not sure if this should all be integrated into "style-html5reset.css" -->
|
||||
<link rel="stylesheet" href="$basehref/static/theme/css/style-plinth.css" />
|
||||
<!--<link rel="stylesheet" href="$basehref/static/theme/css/style-plinth-2col.css" />-->
|
||||
<link rel="stylesheet/less" href="$basehref/static/theme/less/style.less" />
|
||||
<script type="text/javascript" src="$basehref/static/theme/js/libs/less-1.2.1.min.js"></script>
|
||||
<!-- Use SimpLESS (Win/Linux/Mac) or LESS.app (Mac) to compile your .less files
|
||||
to style.css, and replace the 2 lines above with this one:
|
||||
<link rel="stylesheet/less" href="$basehref/static/theme/less/style.css">
|
||||
-->
|
||||
$css
|
||||
|
||||
<!-- Local copy of Modernizr -->
|
||||
<script type="text/javascript" src="$basehref/static/theme/js/modernizr-1.7.min.js"></script>
|
||||
<!-- Local copy of JQuery -->
|
||||
<script type="text/javascript" src="$basehref/static/theme/js/jquery-1.5.1.min.js"></script>
|
||||
<!-- HTML5-Reset functions -->
|
||||
<script type="text/javascript" src="$basehref/static/theme/js/functions.js"></script>
|
||||
|
||||
<!-- JS required for Plinth menus and UI -->
|
||||
<link rel="stylesheet" href="$basehref/static/theme/css/bootstrap.css" />
|
||||
<style type="text/css">
|
||||
body {
|
||||
padding-top: 60px;
|
||||
padding-bottom: 40px;
|
||||
}
|
||||
.sidebar-nav {
|
||||
padding: 9px 0;
|
||||
}
|
||||
</style>
|
||||
<script type="text/javascript" src="$basehref/static/theme/js/menu.js"></script>
|
||||
<script type="text/javascript" src="$basehref/static/theme/js/plinth.js"></script>
|
||||
$js
|
||||
@ -82,43 +74,49 @@
|
||||
</script>
|
||||
</head>
|
||||
<body onload="javascript:onload_handler();">
|
||||
<div class="wrapper"><!-- may not be necessary: http://camendesign.com/code/developpeurs_sans_frontieres -->
|
||||
<!--[if lt IE 7]><p class=chromeframe>Your browser is <em>ancient!</em> <a href="http://browsehappy.com/">Upgrade to a different browser</a> or <a href="http://www.google.com/chromeframe/?redirect=true">install Google Chrome Frame</a> to experience this site.</p><![endif]-->
|
||||
<!-- ^ Freedombox needs a better version of "Browse Happy", with freedom and privacy-respecting browsers only -->
|
||||
|
||||
<header>
|
||||
<div id="header"> <!-- should be replaced by <header> for HTML5 transition -->
|
||||
|
||||
<div id="headerleft">
|
||||
<a href="$basehref/"><img src="$basehref/static/theme/img/freedombox.png" /></a>
|
||||
</div> <!-- End headerleft -->
|
||||
|
||||
<div id="headerright">
|
||||
<br /><br /><br />
|
||||
<h1><a href="$basehref/"><img src="$basehref/static/theme/img/freedombox-logotype.png" /></a></h1>
|
||||
<h2><a href="$basehref/">Plinth Administration Control Panel</a></h2>
|
||||
<nav>
|
||||
<script>
|
||||
<div class="navbar navbar-fixed-top">
|
||||
<div class="navbar-inner">
|
||||
<div class="container-fluid">
|
||||
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</a>
|
||||
<a href="$basehref/" style="float:left;padding-right:5px;"><img src="$basehref/static/theme/img/freedombox-logo-32px.png" /></a><a class="brand" href="$basehref/" style="padding-top:8px">FreedomBox Dashboard</a>
|
||||
<div class="nav-collapse">
|
||||
<script type="text/javascript">
|
||||
<!--
|
||||
main_menu(main_menu_items);
|
||||
// -->
|
||||
</script>
|
||||
</nav> <!-- End main menu -->
|
||||
</div> <!-- End headerright -->
|
||||
#if $username
|
||||
<p class="navbar-text pull-right">Logged in as <a href="$username">$username</a>. <a href="$basehref/auth/logout" title="Log out">Log out</a>.</p>
|
||||
#else
|
||||
<p class="navbar-text pull-right">Not logged in. <a href="$basehref/auth/login" title="Log in">Log in</a>.</p>
|
||||
#end if
|
||||
</div><!--/.nav-collapse -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
#if $username
|
||||
<p id="layoutdims">Logged in as $username. <a href="$basehref/auth/logout" title="Log out">Logout.</a></p>
|
||||
#else
|
||||
<p id="layoutdims">Not logged in. <a href="$basehref/auth/login" title="Log in">Log in.</a></p>
|
||||
#end if
|
||||
</div> <!-- should be replaced by </header> for HTML5 transition -->
|
||||
</header> <!-- End header -->
|
||||
|
||||
<div class="colmask threecol">
|
||||
<div class="colmid">
|
||||
<div class="colleft">
|
||||
|
||||
<article>
|
||||
<div class="col1">
|
||||
<h2>
|
||||
<div class="container-fluid">
|
||||
<div class="row-fluid" style="padding-top:25px;">
|
||||
<div class="span3">
|
||||
<div class="well sidebar-nav">
|
||||
#block nav_block
|
||||
$nav
|
||||
#end block nav_block
|
||||
#block sidebar_left_block
|
||||
$sidebar_left
|
||||
#end block sidebar_left_block
|
||||
</div><!--/.well -->
|
||||
</div><!--/span-->
|
||||
<div class="span9">
|
||||
<div class="hero-unit">
|
||||
<h2>
|
||||
#block title_block
|
||||
$title
|
||||
#end block title_block
|
||||
@ -126,58 +124,62 @@
|
||||
#block main_block
|
||||
$main
|
||||
#end block main_block
|
||||
</div>
|
||||
</article> <!-- End column 1 -->
|
||||
|
||||
<div class="col2">
|
||||
#block nav_block
|
||||
$nav
|
||||
#end block nav_block
|
||||
#block sidebar_left_block
|
||||
$sidebar_left
|
||||
#end block sidebar_left_block
|
||||
|
||||
</div> <!-- End column 2 -->
|
||||
|
||||
<aside>
|
||||
<div class="col3">
|
||||
<div id="ads">
|
||||
<!--<a href="http://matthewjamestaylor.com">
|
||||
<img src="mjt-125x125.gif" width="125" border="0" height="125" alt="Art and Design by Matthew James Taylor" />
|
||||
</a>
|
||||
-->
|
||||
</div>
|
||||
#block sidebar_right_block
|
||||
</div>
|
||||
<div class="row-fluid">
|
||||
<div class="span8 alert alert-info">
|
||||
#block sidebar_right_block
|
||||
$sidebar_right
|
||||
#end block sidebar_right_block
|
||||
</div>
|
||||
</aside> <!-- End column 3 -->
|
||||
</div><!--/span-->
|
||||
</div><!--/row-->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div><!--/span-->
|
||||
</div><!--/row-->
|
||||
|
||||
<footer>
|
||||
<div id="footer"> <!-- should be replaced by <footer> for HTML5 transition -->
|
||||
#block footer_block
|
||||
<hr>
|
||||
|
||||
<footer>
|
||||
<p>#block footer_block
|
||||
<p>
|
||||
Plinth is © Copyright 2012 <a href="http://hackervisions.org" target="_blank">James Vasile</a>. It is
|
||||
free software offered to you under the terms of
|
||||
the <a href="http://www.gnu.org/licenses/agpl.html" target="_blank">GNU Affero General Public
|
||||
License</a>, Version 3 or later.
|
||||
License</a>, Version 3 or later. This Plinth theme was built by <a href="http://seandiggity.com" target="_blank">Sean "Diggity" O'Brien</a>.
|
||||
</p>
|
||||
<!--<p>Current page: $current_url</p>-->
|
||||
<p>Current page: $current_url</p>
|
||||
<p>
|
||||
This page uses
|
||||
the <a href="http://matthewjamestaylor.com/blog/perfect-3-column.htm" target="_blank">Perfect
|
||||
'Holy Grail' 3 Column Liquid Layout</a>
|
||||
by <a href="http://matthewjamestaylor.com" target="_blank">Matthew James Taylor</a>.
|
||||
And the <a href="http://html5reset.org" target="_blank">HTML5-Reset</a> boilerplate template.
|
||||
|
||||
</p>
|
||||
#end block footer_block
|
||||
</div> <!-- should be replaced by </footer> for HTML5 transition -->
|
||||
</footer>
|
||||
#end block footer_block</p>
|
||||
</footer>
|
||||
|
||||
</div> <!-- End wrapper -->
|
||||
</div><!--/.fluid-container-->
|
||||
|
||||
<!-- JavaScript <script> tags are placed at the end of the document to speed up initial page loads-->
|
||||
<!-- Local copy of HTML5 shim, for IE6-8 support of HTML5 elements -->
|
||||
<!--[if lt IE 9]>
|
||||
<script type="text/javascript" src="$basehref/static/theme/js/libs/html5.js"></script>
|
||||
<![endif]-->
|
||||
<!-- Local copy of Modernizr -->
|
||||
<script type="text/javascript" src="$basehref/static/theme/js/libs/modernizr-2.5.3-respond-1.1.0.min.js"></script>
|
||||
<!-- Local copy of jQuery -->
|
||||
<script type="text/javascript" src="$basehref/static/theme/js/libs/jquery-1.7.1.min.js"></script>
|
||||
<!-- Bootstrap JS -->
|
||||
<script type="text/javascript" src="$basehref/static/theme/js/libs/bootstrap/bootstrap-transition.js"></script>
|
||||
<script type="text/javascript" src="$basehref/static/theme/js/libs/bootstrap/bootstrap-alert.js"></script>
|
||||
<script type="text/javascript" src="$basehref/static/theme/js/libs/bootstrap/bootstrap-modal.js"></script>
|
||||
<script type="text/javascript" src="$basehref/static/theme/js/libs/bootstrap/bootstrap-dropdown.js"></script>
|
||||
<script type="text/javascript" src="$basehref/static/theme/js/libs/bootstrap/bootstrap-scrollspy.js"></script>
|
||||
<script type="text/javascript" src="$basehref/static/theme/js/libs/bootstrap/bootstrap-tab.js"></script>
|
||||
<script type="text/javascript" src="$basehref/static/theme/js/libs/bootstrap/bootstrap-tooltip.js"></script>
|
||||
<script type="text/javascript" src="$basehref/static/theme/js/libs/bootstrap/bootstrap-popover.js"></script>
|
||||
<script type="text/javascript" src="$basehref/static/theme/js/libs/bootstrap/bootstrap-button.js"></script>
|
||||
<script type="text/javascript" src="$basehref/static/theme/js/libs/bootstrap/bootstrap-collapse.js"></script>
|
||||
<script type="text/javascript" src="$basehref/static/theme/js/libs/bootstrap/bootstrap-carousel.js"></script>
|
||||
<script type="text/javascript" src="$basehref/static/theme/js/libs/bootstrap/bootstrap-typeahead.js"></script>
|
||||
<!-- JS plugins -->
|
||||
<script type="text/javascript" src="$basehref/static/theme/js/plugins.js"></script>
|
||||
<!-- Additional JS -->
|
||||
<script type="text/javascript" src="$basehref/static/theme/js/functions.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@ -1,177 +0,0 @@
|
||||
/*
|
||||
HTML5 Reset :: style.css
|
||||
----------------------------------------------------------
|
||||
We have learned much from/been inspired by/taken code where offered from:
|
||||
|
||||
Eric Meyer :: http://ericmeyer.com
|
||||
HTML5 Doctor :: http://html5doctor.com
|
||||
and the HTML5 Boilerplate :: http://html5boilerplate.com
|
||||
|
||||
-------------------------------------------------------------------------------*/
|
||||
|
||||
/* Let's default this puppy out
|
||||
-------------------------------------------------------------------------------*/
|
||||
|
||||
html, body, body div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, figure, footer, header, hgroup, menu, nav, section, time, mark, audio, video {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
outline: 0;
|
||||
font-size: 100%;
|
||||
vertical-align: baseline;
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
article, aside, figure, footer, header, hgroup, nav, section {display: block;}
|
||||
|
||||
/* Responsive images and other embedded objects
|
||||
Note: keeping IMG here will cause problems if you're using foreground images as sprites.
|
||||
If this default setting for images is causing issues, you might want to replace it with a .responsive class instead. */
|
||||
img,
|
||||
object,
|
||||
embed {max-width: 100%;}
|
||||
|
||||
/* force a vertical scrollbar to prevent a jumpy page */
|
||||
html {overflow-y: scroll;}
|
||||
|
||||
/* we use a lot of ULs that aren't bulleted.
|
||||
don't forget to restore the bullets within content. */
|
||||
ul {list-style: none;}
|
||||
|
||||
blockquote, q {quotes: none;}
|
||||
|
||||
blockquote:before,
|
||||
blockquote:after,
|
||||
q:before,
|
||||
q:after {content: ''; content: none;}
|
||||
|
||||
a {margin: 0; padding: 0; font-size: 100%; vertical-align: baseline; background: transparent;}
|
||||
|
||||
del {text-decoration: line-through;}
|
||||
|
||||
abbr[title], dfn[title] {border-bottom: 1px dotted #000; cursor: help;}
|
||||
|
||||
/* tables still need cellspacing="0" in the markup */
|
||||
table {border-collapse: collapse; border-spacing: 0;}
|
||||
th {font-weight: bold; vertical-align: bottom;}
|
||||
td {font-weight: normal; vertical-align: top;}
|
||||
|
||||
hr {display: block; height: 1px; border: 0; border-top: 1px solid #ccc; margin: 1em 0; padding: 0;}
|
||||
|
||||
input, select {vertical-align: middle;}
|
||||
|
||||
pre {
|
||||
white-space: pre; /* CSS2 */
|
||||
white-space: pre-wrap; /* CSS 2.1 */
|
||||
white-space: pre-line; /* CSS 3 (and 2.1 as well, actually) */
|
||||
word-wrap: break-word; /* IE */
|
||||
}
|
||||
|
||||
input[type="radio"] {vertical-align: text-bottom;}
|
||||
input[type="checkbox"] {vertical-align: bottom; *vertical-align: baseline;}
|
||||
.ie6 input {vertical-align: text-bottom;}
|
||||
|
||||
select, input, textarea {font: 99% sans-serif;}
|
||||
|
||||
table {font-size: inherit; font: 100%;}
|
||||
|
||||
/* Accessible focus treatment
|
||||
people.opera.com/patrickl/experiments/keyboard/test */
|
||||
a:hover, a:active {outline: none;}
|
||||
|
||||
small {font-size: 85%;}
|
||||
|
||||
strong, th {font-weight: bold;}
|
||||
|
||||
td, td img {vertical-align: top;}
|
||||
|
||||
/* Make sure sup and sub don't screw with your line-heights
|
||||
gist.github.com/413930 */
|
||||
sub, sup {font-size: 75%; line-height: 0; position: relative;}
|
||||
sup {top: -0.5em;}
|
||||
sub {bottom: -0.25em;}
|
||||
|
||||
/* standardize any monospaced elements */
|
||||
pre, code, kbd, samp {font-family: monospace, sans-serif;}
|
||||
|
||||
/* hand cursor on clickable elements */
|
||||
.clickable,
|
||||
label,
|
||||
input[type=button],
|
||||
input[type=submit],
|
||||
button {cursor: pointer;}
|
||||
|
||||
/* Webkit browsers add a 2px margin outside the chrome of form elements */
|
||||
button, input, select, textarea {margin: 0;}
|
||||
|
||||
/* make buttons play nice in IE */
|
||||
button {width: auto; overflow: visible;}
|
||||
|
||||
/* scale images in IE7 more attractively */
|
||||
.ie7 img {-ms-interpolation-mode: bicubic;}
|
||||
|
||||
/* prevent BG image flicker upon hover */
|
||||
.ie6 html {filter: expression(document.execCommand("BackgroundImageCache", false, true));}
|
||||
|
||||
/* let's clear some floats */
|
||||
.clearfix:before, .clearfix:after { content: "\0020"; display: block; height: 0; overflow: hidden; }
|
||||
.clearfix:after { clear: both; }
|
||||
.clearfix { zoom: 1; }
|
||||
|
||||
|
||||
|
||||
/* Ok, this is where the fun starts.
|
||||
-------------------------------------------------------------------------------*/
|
||||
|
||||
/* new Linux- and Windows-friendly sans-serif font stack: http://mky.be/fontstack */
|
||||
body {font: 13px Helmet, Freesans, sans-serif;}
|
||||
|
||||
/* using local fonts? make sure to read up on Paul Irish's
|
||||
Bulletproof @font-face syntax: http://mky.be/font-face/bulletproof/ */
|
||||
|
||||
/* we like off-black for text */
|
||||
body, select, input, textarea {color: #333;}
|
||||
|
||||
a {color: #03f;}
|
||||
a:hover {color: #69f;}
|
||||
|
||||
/* Custom text-selection colors (remove any text shadows: twitter.com/miketaylr/status/12228805301) */
|
||||
::-moz-selection{background: #fcd700; color: #fff; text-shadow: none;}
|
||||
::selection {background: #fcd700; color: #fff; text-shadow: none;}
|
||||
|
||||
/* j.mp/webkit-tap-highlight-color */
|
||||
a:link {-webkit-tap-highlight-color: #fcd700;}
|
||||
|
||||
ins {background-color: #fcd700; color: #000; text-decoration: none;}
|
||||
mark {background-color: #fcd700; color: #000; font-style: italic; font-weight: bold;}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* Print styles!
|
||||
-------------------------------------------------------------------------------*/
|
||||
@media print {
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/* Media queries!
|
||||
-------------------------------------------------------------------------------*/
|
||||
|
||||
/* Consider this: www.cloudfour.com/css-media-query-for-mobile-is-fools-gold/ */
|
||||
@media screen and (max-device-width: 480px) {
|
||||
|
||||
|
||||
}
|
||||
|
||||
@media all and (orientation: portrait) {
|
||||
|
||||
}
|
||||
|
||||
@media all and (orientation: landscape) {
|
||||
|
||||
}
|
||||
|
||||
@ -1,30 +0,0 @@
|
||||
/* 2 Column settings */
|
||||
|
||||
.colright {
|
||||
float:left;
|
||||
width:0%; /* width of page */
|
||||
position:relative;
|
||||
}
|
||||
|
||||
.threecol .colmid {
|
||||
right:5%; /* width of the right column */
|
||||
}
|
||||
.threecol .colleft {
|
||||
right:70%; /* width of the middle column */
|
||||
}
|
||||
.threecol .col1 {
|
||||
width:66%; /* width of center column content (column width minus padding on either side) */
|
||||
left:102%; /* 100% plus left padding of center column */
|
||||
}
|
||||
.threecol .col2 {
|
||||
width:21%; /* Width of left column content (column width minus padding on either side) */
|
||||
left:11%; /* width of (right column) plus (center column left and right padding) plus (left column left padding) */
|
||||
}
|
||||
.threecol .col3 {
|
||||
width:21%; /* Width of right column content (column width minus padding on either side) */
|
||||
|
||||
/* Note this used to be 85%, but I subtracted 1% for padding to pull stuff closer to the margin */
|
||||
left:84%; /* Please make note of the brackets here:
|
||||
(100% - left column width) plus (center column left and right padding) plus (left column left and right padding) plus (right column left padding) */
|
||||
}
|
||||
|
||||
@ -1,328 +0,0 @@
|
||||
body {
|
||||
margin:0;
|
||||
padding:0;
|
||||
border:0; /* This removes the border around the viewport in old versions of IE */
|
||||
width:100%;
|
||||
background:#EEE;
|
||||
min-width:600px; /* Minimum width of layout - remove line if not required */
|
||||
/* The min-width property does not work in old versions of Internet Explorer */
|
||||
font-size:90%;
|
||||
font-family:Arial, Helvetica, sans-serif;
|
||||
}
|
||||
a {
|
||||
color:#3D8FE2;
|
||||
text-decoration:none;
|
||||
}
|
||||
a:hover {
|
||||
color:#fff;
|
||||
background:#3D8FE2;
|
||||
text-decoration:none;
|
||||
}
|
||||
h1, h2, h3 {
|
||||
margin:.8em 0 .2em 0;
|
||||
padding:0;
|
||||
}
|
||||
p {
|
||||
margin:.4em 0 .8em 0;
|
||||
padding:0;
|
||||
}
|
||||
img {
|
||||
margin:10px 0 5px;
|
||||
}
|
||||
#ads img {
|
||||
display:block;
|
||||
padding-top:10px;
|
||||
}
|
||||
|
||||
/* Header styles */
|
||||
#header {
|
||||
clear:both;
|
||||
float:left;
|
||||
width:100%;
|
||||
border-bottom:1px solid #000;
|
||||
}
|
||||
|
||||
#headerleft {
|
||||
float: left;
|
||||
padding-left: 1em;
|
||||
}
|
||||
#headerleft a { color:#1D6FE2; text-decoration:none; outline: none;}
|
||||
|
||||
#headerright {
|
||||
float:left;
|
||||
}
|
||||
#headerright p,
|
||||
#headerright h1,
|
||||
#headerright h2 {
|
||||
padding:.4em 15px 0 15px;
|
||||
margin:0;
|
||||
}
|
||||
|
||||
#headerright h1 a,
|
||||
#headerright h2 a {color:black; text-decoration:none; outline: none;}
|
||||
#headerright ul {
|
||||
clear:left;
|
||||
float:left;
|
||||
width:100%;
|
||||
list-style:none;
|
||||
margin:10px 0 0 0;
|
||||
padding:0;
|
||||
}
|
||||
#headerright ul li {
|
||||
display:inline;
|
||||
list-style:none;
|
||||
margin:0;
|
||||
padding:0;
|
||||
}
|
||||
#headerright ul li a {
|
||||
display:block;
|
||||
float:left;
|
||||
margin:0 0 0 1px;
|
||||
padding:3px 10px;
|
||||
text-align:center;
|
||||
background:#EEE;
|
||||
color:#000;
|
||||
text-decoration:none;
|
||||
position:relative;
|
||||
left:15px;
|
||||
line-height:1.3em;
|
||||
}
|
||||
#headerright ul li a:hover {
|
||||
background:lightblue;
|
||||
color:#fff;
|
||||
}
|
||||
#headerright ul li a.active,
|
||||
#headerright ul li a.active:hover {
|
||||
color:#fff;
|
||||
background:#000;
|
||||
font-weight:bold;
|
||||
text-decoration:none;
|
||||
}
|
||||
#headerright ul li a span {
|
||||
display:block;
|
||||
}
|
||||
|
||||
/* 'widths' sub menu */
|
||||
#layoutdims {
|
||||
clear:both;
|
||||
background:#eee;
|
||||
background:lightblue;
|
||||
border-top:4px solid #000;
|
||||
margin:0;
|
||||
padding:6px 15px !important;
|
||||
text-align:right;
|
||||
}
|
||||
/* column container */
|
||||
.colmask {
|
||||
position:relative; /* This fixes the IE7 overflow hidden bug */
|
||||
clear:both;
|
||||
float:left;
|
||||
width:100%; /* width of whole page */
|
||||
overflow:hidden; /* This chops off any overhanging divs */
|
||||
}
|
||||
/* common column settings */
|
||||
.colright,
|
||||
.colmid,
|
||||
.colleft {
|
||||
float:left;
|
||||
width:100%; /* width of page */
|
||||
position:relative;
|
||||
}
|
||||
.col1,
|
||||
.col2,
|
||||
.col3 {
|
||||
float:left;
|
||||
position:relative;
|
||||
padding:0 0em 1em 0; /* no left and right padding on columns, we just make them narrower instead
|
||||
only padding top and bottom is included here, make it whatever value you need */
|
||||
overflow:hidden;
|
||||
}
|
||||
|
||||
.col2 h2,
|
||||
.col3 h2 {color:black;
|
||||
font-weight:bold;
|
||||
font-size:100%;
|
||||
text-align:center;
|
||||
background:cornflowerblue;
|
||||
margin-top: 1em;
|
||||
margin-bottom: 0.4em;}
|
||||
.col2 h3,
|
||||
.col3 h3 {color:black;
|
||||
font-weight:bold;
|
||||
font-size:100%;
|
||||
text-align:left;
|
||||
padding-top: 0em;
|
||||
margin-top: 0em;
|
||||
margin-bottom: 0em;}
|
||||
.col3 p {
|
||||
margin: 0.4em 0.5em .8em 0.5em;
|
||||
padding:0;
|
||||
}
|
||||
.col2 li {padding-bottom: 0.2em;}
|
||||
.col2 a {padding-left: 0.2em;}
|
||||
.col2 a.active,
|
||||
.col2 a.active:hover {
|
||||
color:#fff;
|
||||
background:#000;
|
||||
font-weight:bold;
|
||||
text-decoration:none;
|
||||
padding: 0.2em;
|
||||
}
|
||||
|
||||
/* 3 Column settings */
|
||||
.threecol {
|
||||
background:#eee; /* right column background colour */
|
||||
background:#EEE;
|
||||
}
|
||||
.threecol .colmid {
|
||||
right:25%; /* width of the right column */
|
||||
background:lightblue;
|
||||
}
|
||||
.threecol .colleft {
|
||||
right:50%; /* width of the middle column */
|
||||
background:#f4f4f4; /* left column background colour */
|
||||
background:#EEE;
|
||||
}
|
||||
.threecol .col1 {
|
||||
width:46%; /* width of center column content (column width minus padding on either side) */
|
||||
left:102%; /* 100% plus left padding of center column */
|
||||
}
|
||||
.threecol .col2 {
|
||||
width:21%; /* Width of left column content (column width minus padding on either side) */
|
||||
left:31%; /* width of (right column) plus (center column left and right padding) plus (left column left padding) */
|
||||
}
|
||||
.threecol .col3 {
|
||||
width:21%; /* Width of right column content (column width minus padding on either side) */
|
||||
|
||||
/* Note this used to be 85%, but I subtracted 1% for padding to pull stuff closer to the margin */
|
||||
left:84%; /* Please make note of the brackets here:
|
||||
(100% - left column width) plus (center column left and right padding) plus (left column left and right padding) plus (right column left padding) */
|
||||
}
|
||||
/* Footer styles */
|
||||
#footer {
|
||||
clear:both;
|
||||
float:left;
|
||||
width:100%;
|
||||
border-top:1px solid #000;
|
||||
padding: 1em;
|
||||
font-size:75%;
|
||||
background:lightblue;
|
||||
}
|
||||
#footer p {
|
||||
margin:0;
|
||||
}
|
||||
|
||||
/* Form Styles */
|
||||
form.form {
|
||||
margin:0 auto;
|
||||
width:100%;
|
||||
background:#EEE;
|
||||
position:relative;
|
||||
margin-top:2em;
|
||||
}
|
||||
|
||||
form.form h2 {
|
||||
color:#ffffff;
|
||||
font-size:1.2em;
|
||||
background:lightblue;
|
||||
text-transform:uppercase;
|
||||
padding:0.5em 0em 0.5em 0.5em;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
form.form h3 {
|
||||
color:red;
|
||||
font-weight:bold;
|
||||
font-size:1em;
|
||||
padding:0.5em 0 0.5em 0.5em;
|
||||
text-align:center;
|
||||
background:#EEE;
|
||||
}
|
||||
|
||||
form.form .line,
|
||||
form.form p {
|
||||
width:94%;
|
||||
display: block;
|
||||
background:#EEE;
|
||||
padding:0.5em 0em 1em 1em;
|
||||
|
||||
padding-right:0.5em;
|
||||
margin-left:0.5em;
|
||||
background:#1D6FE2;
|
||||
margin-top: 0em;
|
||||
margin-bottom: 0em;
|
||||
}
|
||||
form.form label {
|
||||
width:100%;
|
||||
display: block;
|
||||
background:#EEE;
|
||||
padding:1em 0 0.5em 0em;
|
||||
}
|
||||
|
||||
form.form .submit {
|
||||
text-align:left;
|
||||
}
|
||||
|
||||
form.form .indent {
|
||||
padding: 0px;
|
||||
padding-left: 0.75em;
|
||||
}
|
||||
|
||||
form.form label span {
|
||||
display: block;
|
||||
color:black;
|
||||
font-size:12px;
|
||||
float:left;
|
||||
width:30%;
|
||||
text-align:right;
|
||||
padding:0.5em 2em 0 0;
|
||||
}
|
||||
|
||||
form.form .inputtext {
|
||||
padding:0.2em 0.3em 0.2em 0.3em;
|
||||
background:#1D6FE2;
|
||||
border-bottom: 1px double #171717;
|
||||
border-top: 1px double #171717;
|
||||
border-left:1px double #333333;
|
||||
border-right:1px double #333333;
|
||||
}
|
||||
|
||||
form.form .checkbox { text-align: left;}
|
||||
|
||||
form.form .inputtextnowidth {
|
||||
padding:0.5em 0.5em 0em 0em;
|
||||
background:#1D6FE2;
|
||||
border-bottom: 1px double #171717;
|
||||
border-top: 1px double #171717;
|
||||
border-left:1px double #333333;
|
||||
border-right:1px double #333333;
|
||||
}
|
||||
|
||||
form.form .textbox{
|
||||
padding:7px 7px;
|
||||
width:60%;
|
||||
background:#1D6FE2;
|
||||
border-bottom: 1px double #171717;
|
||||
border-top: 1px double #171717;
|
||||
border-left:1px double #333333;
|
||||
border-right:1px double #333333;
|
||||
overflow:hidden;
|
||||
height:150px;
|
||||
}
|
||||
|
||||
form.form .button
|
||||
{
|
||||
margin:0 0 10px 0;
|
||||
padding:4px 7px;
|
||||
background:lightblue;
|
||||
border:0px;
|
||||
position: relative;
|
||||
top:10px;
|
||||
width:100px;
|
||||
border-bottom: 1px double lightblue;
|
||||
border-top: 1px double cornflowerblue;
|
||||
border-left:1px double lightblue;
|
||||
border-right:1px double cornflowerblue;
|
||||
}
|
||||
|
||||
.err {color:red;}
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 10 KiB |
Binary file not shown.
Binary file not shown.
|
Before Width: | Height: | Size: 22 KiB |
@ -20,4 +20,4 @@ $(window).resize(function() {
|
||||
|
||||
});
|
||||
|
||||
*/
|
||||
*/
|
||||
|
||||
16
themes/default/js/jquery-1.5.1.min.js
vendored
16
themes/default/js/jquery-1.5.1.min.js
vendored
File diff suppressed because one or more lines are too long
@ -1,11 +1,11 @@
|
||||
function main_menu(items) {
|
||||
output = "<ul>"
|
||||
output = '<ul class="nav">'
|
||||
for (item in items) {
|
||||
i = items[item];
|
||||
|
||||
// Handle active page
|
||||
if (i["active"]) {
|
||||
active = 'class = "active"';
|
||||
active = ' class="active"';
|
||||
} else {
|
||||
active = '';
|
||||
}
|
||||
@ -18,25 +18,25 @@ function main_menu(items) {
|
||||
label = " <br />" + label;
|
||||
}
|
||||
|
||||
output = output +'<li><a href="' + i["url"] + '" ' + active + '>' + label + "</a></li>";
|
||||
output = output +'<li' + active + '><a href="' + i["url"] + '"' + active + '>' + label + "</a></li>";
|
||||
}
|
||||
output = output + "</ul>";
|
||||
document.write(output);
|
||||
}
|
||||
|
||||
function render_items(items) {
|
||||
output = "<ul>";
|
||||
output = '<ul class="nav nav-list"><li class="nav-header">Menu</li>';
|
||||
for (item in items) {
|
||||
i = items[item];
|
||||
|
||||
// Handle active page
|
||||
if (i["active"]) {
|
||||
active = 'class = "active"';
|
||||
active = ' class="active"';
|
||||
} else {
|
||||
active = '';
|
||||
}
|
||||
|
||||
output = output +'<li><a href="' + i["url"] + '" ' + active + '>' + i['label'] + "</a></li>";
|
||||
output = output +'<li' + active + '><a href="' + i["url"] + '"' + active + '>' + i['label'] + "</a></li>";
|
||||
if (i['subs']) {
|
||||
output += render_items(i['subs']);
|
||||
}
|
||||
@ -49,6 +49,6 @@ function side_menu(items) {
|
||||
if (items.length == 0) {
|
||||
return 0;
|
||||
}
|
||||
output = "<h2>Menu</h2>" + render_items(items);
|
||||
output = render_items(items);
|
||||
document.write(output);
|
||||
}
|
||||
}
|
||||
|
||||
2
themes/default/js/modernizr-1.7.min.js
vendored
2
themes/default/js/modernizr-1.7.min.js
vendored
File diff suppressed because one or more lines are too long
@ -1,15 +1,13 @@
|
||||
# HTML5 Reset (http://html5reset.org)
|
||||
# Plinth HTML5 Bootstrap Theme by Sean "Diggity" O'Brien (https://github.com/seandiggity/Plinth)
|
||||
|
||||
## Summary:
|
||||
|
||||
HTML5 Reset is a simple set of best practices to get web projects off on the right foot.
|
||||
This theme is free software offered to you under the terms of the GNU Affero General Public License, Version 3 or later:
|
||||
http://www.gnu.org/licenses/agpl.html
|
||||
|
||||
It is based upon Twitter's Bootstrap (http://twitter.github.com/bootstrap) with some pieces from HTML5 Boilerplate
|
||||
(http://html5boilerplate.com) and HTML5-Reset (http://html5reset.org). As such, it includes code from a variety of
|
||||
HTML5, CSS3, and JavaScript projects. Please see the individual files included with this theme for author information.
|
||||
|
||||
Refer to the Plinth documentation for information about editing themes and templates.
|
||||
|
||||
1. A style sheet designed to strip initial files from browsers, meaning you start off with a blank slate.
|
||||
2. Easy to customize -- remove whatever you don't need, keep what you do.
|
||||
3. Analytics and jQuery snippets in place
|
||||
4. Meta tags ready for population
|
||||
5. Empty mobile and print style sheets, including blocks for device orientation
|
||||
6. Modernizr.js [http://www.modernizr.com/](http://www.modernizr.com/) enables HTML5 compatibility with IE (and a dozen other great features)
|
||||
7. IE-specific classes for simple CSS-targeting
|
||||
8. iPhone/iPad/iTouch icon snippets
|
||||
9. Lots of other keen stuff...
|
||||
@ -1 +1 @@
|
||||
css/style-plinth.css
|
||||
less/style.less
|
||||
Loading…
x
Reference in New Issue
Block a user