Here goes. Nothing to fancy, just added a few more status field in the
header. Worked like a charm in 0.9

Saw your new documentation for 0.10 by the way. Very useful. Much
appreciated.




<%#
LuCI - Lua Configuration Interface
Copyright 2008 Steven Barth <ste...@midlink.org> 
Copyright 2008 Jo-Philipp Wich <x...@leipzig.freifunk.net> 
 
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
 
        http://www.apache.org/licenses/LICENSE-2.0
 
$Id: header.htm 4891 2009-06-22 10:23:21Z jow $
 
-%>
<%
require("luci.sys")
local load1, load5, load15 = luci.sys.loadavg()
local request  = require("luci.dispatcher").context.path
local category = request[1]
local tree     = luci.dispatcher.node()
local cattree  = category and luci.dispatcher.node(category)
local node     = luci.dispatcher.context.dispatched
local hostname = luci.model.uci.cursor():get("chilliconfig", "router",
"hostname")
local secs     = math.floor( luci.sys.uptime() % 60 )
local mins     = math.floor( luci.sys.uptime() / 60 )  % 60
local hours    = math.floor( luci.sys.uptime() / 3600 )  % 60
local days     = math.floor( luci.sys.uptime() / 86400 )  % 24
local version  = luci.model.uci.cursor():get("chilliconfig", "version",
"release")
local device   = luci.model.uci.cursor():get("chilliconfig", "version",
"device")
 
 
local c = tree
for i,r in ipairs(request) do
        if c.nodes and c.nodes[r] then
                c = c.nodes[r]
                c._menu_selected = true
        end
end
 
require("luci.i18n").loadc("default")
require("luci.http").prepare_content("application/xhtml+xml")
 
-%>
 
<?xml version="1.0" encoding="utf-8"?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";> 
<html xmlns="http://www.w3.org/1999/xhtml";
xml:lang="<%=luci.i18n.context.lang%>" lang="<%=luci.i18n.context.lang%>"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<meta http-equiv="Content-Script-Type" content="text/javascript" /> 
<link rel="stylesheet" type="text/css" media="screen"
href="<%=media%>/cascade.css" /> 
<!--[if lt IE 7]><link rel="stylesheet" type="text/css" media="screen"
href="<%=media%>/ie6.css" /><![endif]--> 
<!--[if IE 7]><link rel="stylesheet" type="text/css" media="screen"
href="<%=media%>/ie7.css" /><![endif]--> 
<% if node and node.css then %><link rel="stylesheet" type="text/css"
media="screen" href="<%=resource%>/<%=node.css%>" /> 
<% end -%>
<script type="text/javascript" src="<%=resource%>/VarType.js"></script> 
<script type="text/javascript" src="<%=resource%>/XHTML1.js"></script> 
<script type="text/javascript" src="<%=resource%>/Dropdowns.js"></script> 
<script type="text/javascript" src="<%=resource%>/xhr.js"></script> 
<link rel="shortcut icon" href="<%=media%>/resources/favicon.ico" /> 
<link rel="icon" type="image/ico" href="<%=media%>/resources/favicon.ico" />

<title><%=striptags( hostname .. ( (node and node.title) and ' - ' ..
node.title or '')) %> - LuCI</title> 
</head> 
<body class="lang_<%=luci.i18n.context.lang%>"> 
 
<p class="skiplink"> 
<span id="skiplink1"><a href="#navigation"><%:skiplink1 Skip to
navigation%></a></span> 
<span id="skiplink2"><a href="#content"><%:skiplink2 Skip to
content%></a></span> 
</p> 
 
<div id="header_top"> 
<img id="logo" src="<%=media%>/resources/logo.gif" /> 
<div id="header"> 
<p><%=luci.model.uci.cursor():get("chillifire", "config", "account")%>
Firmware Version:
<%=version%><br /> 
<%:load%>: <%="%.2f" % load1%> <%="%.2f" % load5%> <%="%.2f" % load15%><br
/> 
<%:hostname%>: <%=hostname%><br /> 
Device: <%=device%><br /> 
Uptime: <%=days%>d <%=hours%>h <%=mins%>m <%=secs%>s
</p> 
</div> 
</div> 
 
<div id="divider"> </div> 
<div id="menubar"> 
<h2 class="navigation"><a id="navigation" name="navigation"><%:navigation
Navigation%></a></h2> 
<ul id="mainmenu" class="dropdowns"> 
<%-
local function submenu(prefix, node)
        if not node.nodes or node.hidden then
                return false
        end
        local index = {}
        local count = 0
        for k, n in pairs(node.nodes) do
                if n.title and n.target then
                        table.insert(index, {name=k, order=n.order or 100})
                        count = count + 1
                end
        end
 
        table.sort(index, function(a, b) return a.order < b.order end)
 
        if count > 0 then
%>
<ul id="submenu_<%=string.gsub(string.gsub(prefix, "/", "_"), "^_(.-)_$",
"%1")%>">
<%-
                for j, v in pairs(index) do
                        if #v.name > 0 then
                                local nnode = node.nodes[v.name]
                                local href = controller .. prefix .. v.name
.. "/"
                                href = (nnode.query) and href ..
luci.http.build_querystring(nnode.query) or href
%>
<li><a<% if nnode._menu_selected then %> class="active"<%end%>
href="<%=luci.util.pcdata(href)%>"><%=nnode.title%></a><%-
submenu(prefix .. v.name .. "/", nnode)
%></li> 
<%-
                        end
                end
%>
</ul> 
<%
        end
end
 
if cattree and cattree.nodes then
        local index = {}
        for k, node in pairs(cattree.nodes) do
                table.insert(index, {name=k, order=node.order or 100})
        end
 
        table.sort(index, function(a, b) return a.order < b.order end)
 
        for i, k in ipairs(index) do
                node = cattree.nodes[k.name]
                if node.title and node.target and not node.hidden then
                        local href =
controller.."/"..category.."/"..k.name.."/"
                        href = (k.query) and href ..
luci.http.build_querystring(k.query) or href
%>
<li><a<% if node._menu_selected then %> class="preactive"<%end%>
href="<%=href%>"><%=node.title%></a><%
submenu("/" .. category .. "/" .. k.name .. "/", node)
%></li><% end
        end
end
%>
</ul> 
 
<ul id="modemenu"><%
for k,node in pairs(tree.nodes) do
        if node.title and not node.hidden and k ~= 'servicectl' then %>
<li><a<% if request[1] == k then %> class="active"<%end%>
href="<%=controller%>/<%=k%>/"><%=node.title%></a></li><%
        end
end
%>
</ul> 
 
<%
if tree.nodes[category] and tree.nodes[category].ucidata then
        local ucic = 0
        for i, j in pairs(require("luci.model.uci").cursor():changes()) do
                for k, l in pairs(j) do
                        for m, n in pairs(l) do
                                ucic = ucic + 1;
                        end
                end
        end
-%>
<ul id="savemenu" class="dropdowns"> 
<li><% if ucic > 0 then %><a class="warning"
href="<%=controller%>/<%=category%>/uci/changes/"><%:unsavedchanges%>:
<%=ucic%></a><%
submenu("/" .. category .. "/uci/", tree.nodes[category].nodes["uci"])
else -%>
<a href="#"><%:changes%>: 0</a><% end -%>
</li> 
</ul><% end %>
 
<div class="clear"></div> 
</div> 
<div id="divider"> </div> 
<div id="maincontent">



-----Original Message-----
From: openwrt-devel-boun...@lists.openwrt.org
[mailto:openwrt-devel-boun...@lists.openwrt.org] On Behalf Of Jo-Philipp
Wich
Sent: Saturday, 22 January 2011 8:24 a.m.
To: OpenWrt Development List
Subject: Re: [OpenWrt-Devel] Luci XML error

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi,

there is no such html in the official themes, is this with a custom
header.htm? If yes, would you mind to show it to me? It looks like its
missing a pcdata() call somewhere.

~ Jow
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk053W0ACgkQdputYINPTPMhgACeNpos+KHqTtYc2/WQ8KVXEogK
Ob4AnRjrjdsG2NIGvnXkbTsk5htUvo5E
=IKqF
-----END PGP SIGNATURE-----
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to