<%# luci-theme-opentopd Copyright 2019-2021 sirpdboy https://github.com/sirpdboy/luci-theme-opentopd/issues luci-theme-material: Copyright 2015 Lutty Yang 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 fs = require "nixio.fs" local nutil = require "nixio.util" local uci = require 'luci.model.uci'.cursor() 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 currentNode = luci.dispatcher.context.path local c = tree local i, r function glob(...) local iter, code, msg = fs.glob(...) if iter then return nutil.consume(iter) else return nil, code, msg end end function getExtension(str) return str:match(".+%.(%w+)$") end -- 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 if selected_node then render_tabmenu(prefix .. "/" .. selected_name, selected_node, level + 1) end end end local function render_submenu(prefix,parent, node) local childs = disp.node_childs(node) if #childs > 0 then local active = (currentNode[2] == parent) and "active" or "" local display = (currentNode[2] == parent) and 'style="display: block;"' or "" write('') end end local function render_topmenu() local childs = disp.node_childs(cattree) if #childs > 0 then write('') end end local function render_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 math.randomseed(os.time()) local bgcount = 0 local currentBg = {} local bgs,attr = {} local theme_dir = media .. "/background/" for i, f in ipairs(glob("/www" .. theme_dir .. "*")) do attr = fs.stat(f) if attr then local ext = getExtension(fs.basename(f)) if ext == "jpg" or ext == "png" or ext == "gif" then local bg = {} bg.type = ext bg.url = theme_dir .. fs.basename(f) table.insert(bgs,bg) bgcount = bgcount + 1 end end end local bg_url = media.."/img/bg1.jpg" if bgcount > 0 then currentBg = bgs[math.random(1,bgcount)] bg_url = currentBg.url end -- local bing = "123" -- i = math.random(1,3) -- if (bgcount == 0 ) then -- local json = require "luci.jsonc" -- local remote_bg_url="http://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=3&mkt=en-US" -- --bing = sys.httpget(remote_bg_url) -- bing = sys.exec("wget --timeout=0.5 -qO- '%s'" %remote_bg_url) -- if (bing and bing ~= '') then -- bg_url = "https://www.bing.com" .. json.parse(bing).images[i].url -- elseif ( bgcount > 0 ) then -- bg_url = currentBg.url -- end -- end %> <%=striptags( (boardinfo.hostname or "?") .. ( (node and node.title) and ' - ' .. translate(node.title) or '')) %> - LuCI - LuCI"> - LuCI">
<% render_topmenu() %>
<%=boardinfo.hostname or "?"%>
<% 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.%>

<%- end -%> <% if category then render_tabmenu(category, cattree) end %>