<%# Copyright 2008 Steven Barth Copyright 2008-2016 Jo-Philipp Wich Copyright 2012 David Menting Licensed to the public under the Apache License 2.0. -%> <% local sys = require "luci.sys" local util = require "luci.util" local http = require "luci.http" local disp = require "luci.dispatcher" local boardinfo = util.ubus("system", "board") local request = disp.context.path local request2 = disp.context.request local category = request[1] local cattree = category and disp.node(category) local leaf = request2[#request2] local tree = disp.node() local node = disp.context.dispatched local categories = disp.node_childs(tree) local c = tree local i, r -- tag all nodes leading to this page 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 -- send as HTML5 http.prepare_content("text/html") local function nodeurl(prefix, name, query) local u = url(prefix, name) if query then u = u .. http.build_querystring(query) end return pcdata(u) end local function render_tabmenu(prefix, node, level) if not level then level = 1 end local childs = disp.node_childs(node) if #childs > 0 then if level > 2 then write('
    ') end local selected_node local selected_name local i, v for i, v in ipairs(childs) do local nnode = node.nodes[v] if nnode._menu_selected then selected_node = nnode selected_name = v end if level > 2 then write('
  • %s
  • ' %{ v, (nnode._menu_selected or (node.leaf and v == leaf)) and 'active' or '', nodeurl(prefix, v, nnode.query), striptags(translate(nnode.title)) }) end end if level > 2 then write('
') end if selected_node then render_tabmenu(prefix .. "/" .. selected_name, selected_node, level + 1) end end end local function render_submenu(prefix, node) local childs = disp.node_childs(node) if #childs > 0 then write('') end end local function render_topmenu() local childs = disp.node_childs(cattree) if #childs > 0 then write('') end end local function render_changes() -- calculate the number of unsaved changes if tree.nodes[category] and tree.nodes[category].ucidata then local ucichanges = 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 ucichanges = ucichanges + 1; end end end if ucichanges > 0 then write('%s: %d' %{ url(category, 'uci/changes'), http.urlencode(http.formvalue('redir') or table.concat(disp.context.request, "/")), translate('Unsaved Changes'), ucichanges }) end end end -%> <%=striptags( (boardinfo.hostname or "?") .. ( (node and node.title) and ' - ' .. translate(node.title) or '')) %> - LuCI <% if node and node.css then %> <% end -%> <% if css then %> <% end -%>
<%=boardinfo.hostname or "?"%> <% render_topmenu() %>
<% render_changes() %>
<%- if luci.sys.process.info("uid") == 0 and luci.sys.user.getuser("root") and not luci.sys.user.getpasswd("root") then -%>

<%:No password set!%>

<%:There is no password set on this router. Please configure a root password to protect the web interface and enable SSH.%>
"><%:Go to password configuration...%>
<%- end -%>
<% if category then render_tabmenu(category, cattree) end %>