applications/luci-statistics: make it work under uhttpd
authorJo-Philipp Wich <jow@openwrt.org>
Sat, 27 Mar 2010 22:19:16 +0000 (22:19 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Sat, 27 Mar 2010 22:19:16 +0000 (22:19 +0000)
applications/luci-statistics/luasrc/controller/luci_statistics/luci_statistics.lua
applications/luci-statistics/luasrc/view/public_statistics/graph.htm

index b40603d..817622c 100644 (file)
@@ -161,16 +161,28 @@ function statistics_render()
        local span  = vars.timespan or uci:get( "luci_statistics", "rrdtool", "default_timespan" ) or spans[1]
        local graph = luci.statistics.rrdtool.Graph( luci.util.parse_units( span ) )
 
        local span  = vars.timespan or uci:get( "luci_statistics", "rrdtool", "default_timespan" ) or spans[1]
        local graph = luci.statistics.rrdtool.Graph( luci.util.parse_units( span ) )
 
+       -- deliver image
+       if vars.img then
+               local l12 = require "luci.ltn12"
+               local png = io.open(graph.opts.imgpath .. "/" .. vars.img:gsub("%.+", "."), "r")
+               if png then
+                       luci.http.prepare_content("image/png")
+                       l12.pump.all(l12.source.file(png), luci.http.write)
+                       png:close()
+               end
+               return
+       end
+
        local plugin, instances
        local images = { }
 
        -- find requested plugin and instance
        local plugin, instances
        local images = { }
 
        -- find requested plugin and instance
-        for i, p in ipairs( luci.dispatcher.context.path ) do
-                if luci.dispatcher.context.path[i] == "graph" then
-                        plugin    = luci.dispatcher.context.path[i+1]
-                        instances = { luci.dispatcher.context.path[i+2] }
-                end
+    for i, p in ipairs( luci.dispatcher.context.path ) do
+        if luci.dispatcher.context.path[i] == "graph" then
+            plugin    = luci.dispatcher.context.path[i+1]
+            instances = { luci.dispatcher.context.path[i+2] }
         end
         end
+    end
 
        -- no instance requested, find all instances
        if #instances == 0 then
 
        -- no instance requested, find all instances
        if #instances == 0 then
index 71be2aa..fcc452f 100644 (file)
@@ -31,7 +31,7 @@ $Id$
 
 <div style="text-align: center">
        <% for i, img in ipairs(images) do %>
 
 <div style="text-align: center">
        <% for i, img in ipairs(images) do %>
-               <img src="/rrdimg/<%=img%>" />
+               <img src="<%=REQUEST_URI%>?img=<%=img%>" />
                <br />
        <% end %>
 </div>
                <br />
        <% end %>
 </div>