diff options
Diffstat (limited to 'web/src/view')
-rw-r--r-- | web/src/view/cbi/dvalue.htm | 12 | ||||
-rw-r--r-- | web/src/view/cbi/footer.htm | 7 | ||||
-rw-r--r-- | web/src/view/cbi/full_valuefooter.htm | 8 | ||||
-rw-r--r-- | web/src/view/cbi/full_valueheader.htm | 3 | ||||
-rw-r--r-- | web/src/view/cbi/fvalue.htm | 3 | ||||
-rw-r--r-- | web/src/view/cbi/header.htm | 7 | ||||
-rw-r--r-- | web/src/view/cbi/lvalue.htm | 16 | ||||
-rw-r--r-- | web/src/view/cbi/map.htm | 6 | ||||
-rw-r--r-- | web/src/view/cbi/mvalue.htm | 19 | ||||
-rw-r--r-- | web/src/view/cbi/nsection.htm | 20 | ||||
-rw-r--r-- | web/src/view/cbi/tblsection.htm | 39 | ||||
-rw-r--r-- | web/src/view/cbi/tiny_valuefooter.htm | 6 | ||||
-rw-r--r-- | web/src/view/cbi/tiny_valueheader.htm | 1 | ||||
-rw-r--r-- | web/src/view/cbi/tsection.htm | 25 | ||||
-rw-r--r-- | web/src/view/cbi/ucisection.htm | 20 | ||||
-rw-r--r-- | web/src/view/cbi/value.htm | 3 | ||||
-rw-r--r-- | web/src/view/cbi/valuefooter.htm | 5 | ||||
-rw-r--r-- | web/src/view/cbi/valueheader.htm | 5 | ||||
-rw-r--r-- | web/src/view/error404.htm | 5 | ||||
-rw-r--r-- | web/src/view/error500.htm | 5 | ||||
-rw-r--r-- | web/src/view/footer.htm | 7 | ||||
-rw-r--r-- | web/src/view/header.htm | 137 |
22 files changed, 359 insertions, 0 deletions
diff --git a/web/src/view/cbi/dvalue.htm b/web/src/view/cbi/dvalue.htm new file mode 100644 index 000000000..f54667def --- /dev/null +++ b/web/src/view/cbi/dvalue.htm @@ -0,0 +1,12 @@ +<%+cbi/valueheader%> +<% if self.value then + if type(self.value) == "function" then %> + <%=self:value(section)%> +<% else %> + <%=self.value%> +<% end +else %> + <%=self:cfgvalue(section)%> +<% end %> + +<%+cbi/valuefooter%> diff --git a/web/src/view/cbi/footer.htm b/web/src/view/cbi/footer.htm new file mode 100644 index 000000000..2acf710cd --- /dev/null +++ b/web/src/view/cbi/footer.htm @@ -0,0 +1,7 @@ + <div> + <input type="submit" value="<%:save Speichern%>" /> + <input type="reset" value="<%:reset Zurücksetzen%>" /> + <script type="text/javascript">cbi_d_init();</script> + </div> + </form> +<%+footer%>
\ No newline at end of file diff --git a/web/src/view/cbi/full_valuefooter.htm b/web/src/view/cbi/full_valuefooter.htm new file mode 100644 index 000000000..6151a3a66 --- /dev/null +++ b/web/src/view/cbi/full_valuefooter.htm @@ -0,0 +1,8 @@ + <div class="cbi-value-description"><%=self.description%> </div> + </div> + <% if self.tag_invalid[section] then %><div class="cbi-error"><%:cbi_invalid Fehler: Ungültige Eingabe%></div><% end %> + </div> + <% if #self.deps > 0 then %><script type="text/javascript"> + <% for j, d in ipairs(self.deps) do %>cbi_d_add("cbi-<%=self.config.."-"..section.."-"..self.option%>", "cbid.<%=self.config.."."..section.."."..d.field%>", "<%=d.value%>"); + <% end %> + </script><% end %>
\ No newline at end of file diff --git a/web/src/view/cbi/full_valueheader.htm b/web/src/view/cbi/full_valueheader.htm new file mode 100644 index 000000000..062efa2dd --- /dev/null +++ b/web/src/view/cbi/full_valueheader.htm @@ -0,0 +1,3 @@ + <div class="cbi-value" id="cbi-<%=self.config.."-"..section.."-"..self.option%>"> + <div class="cbi-value-title"><%=self.title%></div> + <div class="cbi-value-field">
\ No newline at end of file diff --git a/web/src/view/cbi/fvalue.htm b/web/src/view/cbi/fvalue.htm new file mode 100644 index 000000000..b609f1d4f --- /dev/null +++ b/web/src/view/cbi/fvalue.htm @@ -0,0 +1,3 @@ +<%+cbi/valueheader%> + <input onchange="cbi_d_update(this.id)" type="checkbox" id="cbid.<%=self.config.."."..section.."."..self.option%>" name="cbid.<%=self.config.."."..section.."."..self.option%>"<% if self:cfgvalue(section) == self.enabled then %> checked="checked"<% end %> value="1" /> +<%+cbi/valuefooter%>
\ No newline at end of file diff --git a/web/src/view/cbi/header.htm b/web/src/view/cbi/header.htm new file mode 100644 index 000000000..4229aaf0d --- /dev/null +++ b/web/src/view/cbi/header.htm @@ -0,0 +1,7 @@ +<%+header%> + <form method="post" action="<%=luci.http.env.REQUEST_URI%>"> + <div> + <script type="text/javascript" src="<%=resource%>/cbi.js"></script> + <input type="hidden" name="cbi.submit" value="1" /> + <input type="submit" value="<%:save Speichern%>" class="hidden" /> + </div> diff --git a/web/src/view/cbi/lvalue.htm b/web/src/view/cbi/lvalue.htm new file mode 100644 index 000000000..f1ae5a093 --- /dev/null +++ b/web/src/view/cbi/lvalue.htm @@ -0,0 +1,16 @@ +<%+cbi/valueheader%> +<% if self.widget == "select" then %> + <select onchange="cbi_d_update(this.id)" id="cbid.<%=self.config.."."..section.."."..self.option%>" name="cbid.<%=self.config.."."..section.."."..self.option%>"<% if self.size then %> size="<%=self.size%>"<% end %>> +<%for i, key in pairs(self.keylist) do%> + <option<% if self:cfgvalue(section) == key then %> selected="selected"<% end %> value="<%=key%>"><%=self.vallist[i]%></option> +<% end %> + </select> +<% elseif self.widget == "radio" then + local c = 0; + for i, key in pairs(self.keylist) do + c = c + 1%> + <%=self.vallist[i]%><input type="radio" name="cbid.<%=self.config.."."..section.."."..self.option%>"<% if self:cfgvalue(section) == key then %> checked="checked"<% end %> value="<%=key%>" /> +<% if c == self.size then c = 0 %><br /> +<% end end %> +<% end %> +<%+cbi/valuefooter%>
\ No newline at end of file diff --git a/web/src/view/cbi/map.htm b/web/src/view/cbi/map.htm new file mode 100644 index 000000000..835393c1c --- /dev/null +++ b/web/src/view/cbi/map.htm @@ -0,0 +1,6 @@ + <div class="cbi-map" id="cbi-<%=self.config%>"> + <h1><%=self.title%></h1> + <div class="cbi-map-descr"><%=self.description%></div> +<% self:render_children() %> + <br /> + </div> diff --git a/web/src/view/cbi/mvalue.htm b/web/src/view/cbi/mvalue.htm new file mode 100644 index 000000000..bed66e569 --- /dev/null +++ b/web/src/view/cbi/mvalue.htm @@ -0,0 +1,19 @@ +<% +local v = self:valuelist(section) +%> +<%+cbi/valueheader%> +<% if self.widget == "select" then %> + <select multiple="multiple" name="cbid.<%=self.config.."."..section.."."..self.option%>[]"<% if self.size then %> size="<%=self.size%>"<% end %>> +<%for i, key in pairs(self.keylist) do %> + <option<% if luci.util.contains(v, key) then %> selected="selected"<% end %> value="<%=key%>"><%=self.vallist[i]%></option> +<% end %> + </select> +<% elseif self.widget == "checkbox" then + local c = 0; + for i, key in pairs(self.keylist) do + c = c + 1%> + <%=self.vallist[i]%><input type="checkbox" name="cbid.<%=self.config.."."..section.."."..self.option%>[]"<% if luci.util.contains(v, key) then %> checked="checked"<% end %> value="<%=key%>" /> +<% if c == self.size then c = 0 %><br /> +<% end end %> +<% end %> +<%+cbi/valuefooter%>
\ No newline at end of file diff --git a/web/src/view/cbi/nsection.htm b/web/src/view/cbi/nsection.htm new file mode 100644 index 000000000..fff597ad0 --- /dev/null +++ b/web/src/view/cbi/nsection.htm @@ -0,0 +1,20 @@ +<% if self:cfgvalue(self.section) then +section = self.section %> + <div class="cbi-section" id="cbi-<%=self.config%>-<%=section%>"> + <h2><%=self.title%></h2> + <div class="cbi-section-descr"><%=self.description%></div> + <% if self.addremove then %><div class="cbi-section-remove right"> + <input type="submit" name="cbi.rns.<%=self.config%>.<%=section%>" value="<%:cbi_del Eintrag entfernen%>" /> + </div><% end %> +<div class="cbi-section-node" id="cbi-<%=self.config%>-<%=section%>"> +<%+cbi/ucisection%> +</div> +<br /> + </div> +<% elseif self.addremove then %> + <div class="cbi-section" id="cbi-<%=self.config%>-<%=self.section%>"> + <h2><%=self.title%></h2> + <div class="cbi-section-descr"><%=self.description%></div> + <input type="submit" name="cbi.cns.<%=self.config%>.<%=self.section%>" value="<%:cbi_add Eintrag anlegen%>" /> + </div> +<% end %> diff --git a/web/src/view/cbi/tblsection.htm b/web/src/view/cbi/tblsection.htm new file mode 100644 index 000000000..df16efbed --- /dev/null +++ b/web/src/view/cbi/tblsection.htm @@ -0,0 +1,39 @@ + <div class="cbi-section" id="cbi-<%=self.config%>-<%=self.sectiontype%>"> + <h2><%=self.title%></h2> + <div class="cbi-section-descr"><%=self.description%></div> + <div class="cbi-section-node"> + <div class="cbi-section-row"> +<% for i, k in pairs(self.children) do %> + <div class="cbi-section-row-head"><%=k.title%></div> +<% end %> + </div> + <div class="cbi-section-row"> +<% for i, k in pairs(self.children) do %> + <div class="cbi-section-row-descr"><%=k.description%></div> +<% end %> + </div> +<% for i, k in ipairs(self:cfgsections()) do%> + <% if not self.anonymous then %><h3 class="table-cell"><%=k%></h3><% end %> +<% +section = k +scope = {valueheader = "cbi/tiny_valueheader", valuefooter = "cbi/tiny_valuefooter"} +%> +<div class="cbi-section-row" id="cbi-<%=self.config%>-<%=section%>"> +<%+cbi/ucisection%> + <% if self.addremove then %><div class="cbi-section-remove table-cell"> + <input type="submit" name="cbi.rts.<%=self.config%>.<%=k%>" value="X" /> + </div><% end %> +</div> +<% end %> +<% if self.addremove then %> + <div class="cbi-section-create"> + <% if self.anonymous then %> + <input type="submit" name="cbi.cts.<%=self.config%>.<%=self.sectiontype%>" value="<%:cbi_add Eintrag hinzufügen%>" /> + <% else %> + <input type="text" class="cbi-section-create-name" name="cbi.cts.<%=self.config%>.<%=self.sectiontype%>" /> + <input type="submit" value="<%:cbi_add Eintrag hinzufügen%>" /> + <% end %><% if self.err_invalid then %><div class="cbi-error"><%:cbi_invalid Fehler: Ungültige Eingabe%></div><% end %> + </div> + </div> +<% end %> + </div> diff --git a/web/src/view/cbi/tiny_valuefooter.htm b/web/src/view/cbi/tiny_valuefooter.htm new file mode 100644 index 000000000..e65ebb6c0 --- /dev/null +++ b/web/src/view/cbi/tiny_valuefooter.htm @@ -0,0 +1,6 @@ + <% if self.tag_invalid[section] then %><div class="cbi-error"><%:cbi_invalid Fehler: Ungültige Eingabe%></div><% end %> + </div> + <% if #self.deps > 0 then %><script type="text/javascript"> + <% for j, d in ipairs(self.deps) do %>cbi_d_add("cbi-<%=self.config.."-"..section.."-"..self.option%>", "cbid.<%=self.config.."."..section.."."..d.field%>", "<%=d.value%>"); + <% end %> + </script><% end %>
\ No newline at end of file diff --git a/web/src/view/cbi/tiny_valueheader.htm b/web/src/view/cbi/tiny_valueheader.htm new file mode 100644 index 000000000..b9b26bd6a --- /dev/null +++ b/web/src/view/cbi/tiny_valueheader.htm @@ -0,0 +1 @@ + <div class="cbi-value-field" id="cbi-<%=self.config.."-"..section.."-"..self.option%>"> diff --git a/web/src/view/cbi/tsection.htm b/web/src/view/cbi/tsection.htm new file mode 100644 index 000000000..37b18b5d4 --- /dev/null +++ b/web/src/view/cbi/tsection.htm @@ -0,0 +1,25 @@ + <div class="cbi-section" id="cbi-<%=self.config%>-<%=self.sectiontype%>"> + <h2><%=self.title%></h2> + <div class="cbi-section-descr"><%=self.description%></div> +<% for i, k in ipairs(self:cfgsections()) do%> + <% if self.addremove then %><div class="cbi-section-remove right"> + <input type="submit" name="cbi.rts.<%=self.config%>.<%=k%>" value="<%:cbi_del Eintrag entfernen%>" /> + </div><% end %> + <% if not self.anonymous then %><h3><%=k%></h3><% end %> +<% section = k %> +<div class="cbi-section-node" id="cbi-<%=self.config%>-<%=section%>"> +<%+cbi/ucisection%> +</div> +<br /> +<% end %> +<% if self.addremove then %> + <div class="cbi-section-create"> + <% if self.anonymous then %> + <input type="submit" name="cbi.cts.<%=self.config%>.<%=self.sectiontype%>" value="<%:cbi_add Eintrag hinzufügen%>" /> + <% else %> + <input type="text" class="cbi-section-create-name" name="cbi.cts.<%=self.config%>.<%=self.sectiontype%>" /> + <input type="submit" value="<%:cbi_add Eintrag hinzufügen%>" /> + <% end %><% if self.err_invalid then %><div class="cbi-error"><%:cbi_invalid Fehler: Ungültige Eingabe%></div><% end %> + </div> +<% end %> + </div> diff --git a/web/src/view/cbi/ucisection.htm b/web/src/view/cbi/ucisection.htm new file mode 100644 index 000000000..0abc37e7c --- /dev/null +++ b/web/src/view/cbi/ucisection.htm @@ -0,0 +1,20 @@ +<% self:render_children(section, scope or {}) %> + <% if #self.optionals[section] > 0 or self.dynamic then %> + <div class="cbi-optionals"> + <% if self.dynamic then %> + <input type="text" name="cbi.opt.<%=self.config%>.<%=section%>" /> + <% else %> + <select name="cbi.opt.<%=self.config%>.<%=section%>"> + <option><%:cbi_addopt -- Feld --%></option> + <% for key, val in pairs(self.optionals[section]) do %> + <option id="cbi-<%=self.config.."-"..section.."-"..val.option%>" value="<%=val.option%>"><%=val.title%></option> + <% end %> + </select> + <script type="text/javascript"><% for key, val in pairs(self.optionals[section]) do %> + <% if #val.deps > 0 then %><% for j, d in ipairs(val.deps) do %>cbi_d_add("cbi-<%=self.config.."-"..section.."-"..val.option%>", "cbid.<%=self.config.."."..section.."."..d.field%>", "<%=d.value%>"); + <% end %><% end %> + <% end %></script> + <% end %> + <input type="submit" value="<%:add hinzufügen%>" /> + </div> + <% end %>
\ No newline at end of file diff --git a/web/src/view/cbi/value.htm b/web/src/view/cbi/value.htm new file mode 100644 index 000000000..31bf38f77 --- /dev/null +++ b/web/src/view/cbi/value.htm @@ -0,0 +1,3 @@ +<%+cbi/valueheader%> + <input type="text" onchange="cbi_d_update(this.id)" <% if self.size then %>size="<%=self.size%>" <% end %><% if self.maxlength then %>maxlength="<%=self.maxlength%>" <% end %>name="cbid.<%=self.config.."."..section.."."..self.option%>" id="cbid.<%=self.config.."."..section.."."..self.option%>" value="<%=self:cfgvalue(section)%>" /> +<%+cbi/valuefooter%> diff --git a/web/src/view/cbi/valuefooter.htm b/web/src/view/cbi/valuefooter.htm new file mode 100644 index 000000000..bc9d1b127 --- /dev/null +++ b/web/src/view/cbi/valuefooter.htm @@ -0,0 +1,5 @@ +<% if valuefooter then + include(valuefooter) +else + include("cbi/full_valuefooter") +end %>
\ No newline at end of file diff --git a/web/src/view/cbi/valueheader.htm b/web/src/view/cbi/valueheader.htm new file mode 100644 index 000000000..8d9802f57 --- /dev/null +++ b/web/src/view/cbi/valueheader.htm @@ -0,0 +1,5 @@ +<% if valueheader then + include(valueheader) +else + include("cbi/full_valueheader") +end %>
\ No newline at end of file diff --git a/web/src/view/error404.htm b/web/src/view/error404.htm new file mode 100644 index 000000000..60daee2cb --- /dev/null +++ b/web/src/view/error404.htm @@ -0,0 +1,5 @@ +<%+header%> +<h1>404 Not Found</h1> +<p>Sorry, the object you requested was not found.</p> +<tt>Unable to dispatch: <%=luci.http.env.PATH_INFO%></tt> +<%+footer%>
\ No newline at end of file diff --git a/web/src/view/error500.htm b/web/src/view/error500.htm new file mode 100644 index 000000000..8af22e8f2 --- /dev/null +++ b/web/src/view/error500.htm @@ -0,0 +1,5 @@ +<%+header%> +<h1>500 Internal Server Error</h1> +<p>Sorry, the server encountered an unexpected error.</p> +<tt><%=message%></tt> +<%+footer%>
\ No newline at end of file diff --git a/web/src/view/footer.htm b/web/src/view/footer.htm new file mode 100644 index 000000000..c8506ac5c --- /dev/null +++ b/web/src/view/footer.htm @@ -0,0 +1,7 @@ + </div> + <div class="clear"></div> +</div></div> + +<div class="separator magenta bold"><a href="http://luci.freifunk-halle.net"><%=require("luci").__appname__ .. " " .. luci.__version__%> - Lua Configuration Interface</a></div> +</body> +</html>
\ No newline at end of file diff --git a/web/src/view/header.htm b/web/src/view/header.htm new file mode 100644 index 000000000..5f876781f --- /dev/null +++ b/web/src/view/header.htm @@ -0,0 +1,137 @@ +<% +require("luci.sys") +local load1, load5, load15 = luci.sys.loadavg() + +local request = require("luci.dispatcher").request +local category = request[1] +local tree = luci.dispatcher.node() +local cattree = category and luci.dispatcher.node(category) +local node = luci.dispatcher.dispatched + +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("text/html") +%><?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> + <link rel="stylesheet" type="text/css" href="<%=media%>/cascade.css" /> + <% if node and node.css then %><link rel="stylesheet" type="text/css" href="<%=resource%>/<%=node.css%>" /><% end %> + <meta http-equiv="content-type" content="text/xhtml+xml; charset=utf-8" /> + <meta http-equiv="content-script-type" content="text/javascript" /> + <title>LuCI - Lua Configuration Interface</title> +</head> +<body> +<div id="header"> + <div class="headerlogo left"><img src="<%=media%>/logo.png" alt="<%=luci.config.brand.title%>" /></div> + <div class="whitetext smalltext right"> + <%=luci.config.brand.firmware%><br /> + <%=luci.config.brand.distro%><br /> + <%:load Last%>: <%=load1%> <%=load5%> <%=load15%><br /> + <%:hostname Hostname%>: <%=luci.sys.hostname()%> + </div> + <div> + <span class="headertitle"><%=luci.config.brand.title%></span><br /> + <span class="whitetext bold"><%=luci.config.brand.subtitle%></span> + </div> +</div> + +<div class="separator yellow bold"> +<%:path Pfad%>: <% +local c = tree +local url = controller +for k,v in pairs(request) do + if c.nodes and c.nodes[v] then + c = c.nodes[v] + url = url .. "/" .. v + %><a href="<%=url%>"><%=c.title or v%></a> <% if k ~= #request then %>» <% end + end +end +%> +</div> + +<div id="columns"><div id="columnswrapper"> + <div class="sidebar left"> +<% +local function submenu(prefix, node) + if not node._menu_selected or not node.nodes then + return false + end + local index = {} + for k, n in pairs(node.nodes) do + table.insert(index, {name=k, order=n.order or 100}) + end + + table.sort(index, function(a, b) return a.order < b.order end) +%> + <ul> + <% for j, v in pairs(index) do + local nnode = node.nodes[v.name]%> + <li> + <span<% if nnode._menu_selected then %> class="yellowtext"<%end%>><a href="<%=controller .. prefix .. v.name%>"><%=nnode.title%></a></span> + <% submenu(prefix .. v.name .. "/", nnode) %> + </li> + <% end %> + </ul> +<% +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 then %> + <div<% if node._menu_selected then %> class="yellowtext"<%end%>><a href="<%=controller%>/<%=category%>/<%=k.name%>"><%=node.title%></a> + <%submenu("/" .. category .. "/" .. k.name .. "/", node)%> + </div> +<% end + end +end +%> + </div> + <div class="sidebar right"> + <div><%:webif Weboberfläche%> + <ul><% + for k,node in pairs(tree.nodes) do + if node.title then %> + <li<% if request[1] == k then %> class="yellowtext"<%end%>><a href="<%=controller%>/<%=k%>"><%=node.title%></a></li> +<% end + end%> + </ul> + </div> + <% + if "admin" == request[1] then + require("luci.model.uci") + local ucic = luci.model.uci.changes() + if ucic then + ucic = #luci.util.split(ucic) + end + %> + <div><%:config Konfiguration%> + <ul> + <% if ucic then %> + <li><a href="<%=controller%>/admin/uci/changes"><%:changes Änderungen%>: <%=ucic%></a></li> + <li><a href="<%=controller%>/admin/uci/apply"><%:apply Anwenden%></a></li> + <li><a href="<%=controller%>/admin/uci/revert"><%:revert Verwerfen%></a></li> + <% else %> + <li><%:changes Änderungen%>: 0</li> + <% end %> + </ul> + </div> + <% end %> + </div> + <div id="content">
\ No newline at end of file |