summaryrefslogtreecommitdiffhomepage
path: root/web/src/view
diff options
context:
space:
mode:
Diffstat (limited to 'web/src/view')
-rw-r--r--web/src/view/cbi/dvalue.htm12
-rw-r--r--web/src/view/cbi/footer.htm7
-rw-r--r--web/src/view/cbi/full_valuefooter.htm8
-rw-r--r--web/src/view/cbi/full_valueheader.htm3
-rw-r--r--web/src/view/cbi/fvalue.htm3
-rw-r--r--web/src/view/cbi/header.htm7
-rw-r--r--web/src/view/cbi/lvalue.htm16
-rw-r--r--web/src/view/cbi/map.htm6
-rw-r--r--web/src/view/cbi/mvalue.htm19
-rw-r--r--web/src/view/cbi/nsection.htm20
-rw-r--r--web/src/view/cbi/tblsection.htm39
-rw-r--r--web/src/view/cbi/tiny_valuefooter.htm6
-rw-r--r--web/src/view/cbi/tiny_valueheader.htm1
-rw-r--r--web/src/view/cbi/tsection.htm25
-rw-r--r--web/src/view/cbi/ucisection.htm20
-rw-r--r--web/src/view/cbi/value.htm3
-rw-r--r--web/src/view/cbi/valuefooter.htm5
-rw-r--r--web/src/view/cbi/valueheader.htm5
-rw-r--r--web/src/view/error404.htm5
-rw-r--r--web/src/view/error500.htm5
-rw-r--r--web/src/view/footer.htm7
-rw-r--r--web/src/view/header.htm137
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 %>
+&nbsp;
+<%+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%>&nbsp;</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 %>&#187; <% 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