applications/luci-tinyproxy: add status page
authorJo-Philipp Wich <jow@openwrt.org>
Sat, 20 Nov 2010 21:31:59 +0000 (21:31 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Sat, 20 Nov 2010 21:31:59 +0000 (21:31 +0000)
applications/luci-tinyproxy/luasrc/controller/tinyproxy.lua
applications/luci-tinyproxy/luasrc/view/tinyproxy_status.htm [new file with mode: 0644]

index f21b0fc6466a5b91059a563153f073e357b76626..d413d59d887e7b900f51a6dee2fa7f4ebef24f56 100644 (file)
@@ -12,14 +12,18 @@ You may obtain a copy of the License at
 
 $Id$
 ]]--
+
 module("luci.controller.tinyproxy", package.seeall)
 
 function index()
        if not nixio.fs.access("/etc/config/tinyproxy") then
                return
        end
-       
-       local page = entry({"admin", "services", "tinyproxy"}, cbi("tinyproxy"), "Tinyproxy")
-       page.dependent = true
-       page.i18n = "tinyproxy"
+
+       require("luci.i18n").loadc("vnstat")
+       local i18n = luci.i18n.translate
+
+       entry({"admin", "services", "tinyproxy"}, alias("admin", "services", "tinyproxy", "config"), "Tinyproxy").i18n = "tinyproxy"
+       entry({"admin", "services", "tinyproxy", "status"}, template("tinyproxy_status"), i18n("Status"))
+       entry({"admin", "services", "tinyproxy", "config"}, cbi("tinyproxy"), i18n("Configuration"))
 end
diff --git a/applications/luci-tinyproxy/luasrc/view/tinyproxy_status.htm b/applications/luci-tinyproxy/luasrc/view/tinyproxy_status.htm
new file mode 100644 (file)
index 0000000..c85a206
--- /dev/null
@@ -0,0 +1,50 @@
+<%
+
+if luci.http.formvalue("frame") == "1" then
+       local uci = require "luci.model.uci".cursor()
+       local addr = "127.0.0.1"
+       local port = "8888"
+
+       uci:foreach("tinyproxy", "tinyproxy",
+               function(s)
+                       addr = s.StatHost or addr
+                       port = s.Port     or port
+                       return false
+               end)
+
+       local data = false
+       local wget = io.popen("wget -qO- http://%s:%s" % { addr, port })
+       if wget then
+               while true do
+                       local l = wget:read("*l")
+                       if not l then
+                               break
+                       end
+
+                       luci.http.write(l)
+                       data = true
+               end
+
+               wget:close()
+       end
+
+       if not data then
+               luci.http.write(translate("Failed to retrieve statistics from url:"))
+               luci.http.write(" http://%s:%s" % { addr, port })
+       end
+
+       return
+end
+
+-%>
+
+<%+header%>
+
+<div class="cbi-map">
+       <h2><a id="content" name="content"><%:Tinyproxy Status%></a></h2>
+       <div class="cbi-section">
+               <iframe src="<%=REQUESTURL%>?frame=1" style="width:100%; height:350px; border:none"></iframe>
+       </div>
+</div>
+
+<%+footer%>