applications/luci-statistics: render graph menus in alphabetic order

This commit is contained in:
Jo-Philipp Wich 2012-12-25 02:31:28 +00:00
parent 33fba71fc9
commit 5a23297f9d

View file

@ -2,6 +2,7 @@
Luci statistics - statistics controller module Luci statistics - statistics controller module
(c) 2008 Freifunk Leipzig / Jo-Philipp Wich <xm@leipzig.freifunk.net> (c) 2008 Freifunk Leipzig / Jo-Philipp Wich <xm@leipzig.freifunk.net>
(c) 2012 Jo-Philipp Wich <xm@subsignal.org>
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@ -9,8 +10,6 @@ You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0 http://www.apache.org/licenses/LICENSE-2.0
$Id$
]]-- ]]--
module("luci.controller.luci_statistics.luci_statistics", package.seeall) module("luci.controller.luci_statistics.luci_statistics", package.seeall)
@ -69,9 +68,9 @@ function index()
-- create toplevel menu nodes -- create toplevel menu nodes
local st = entry({"admin", "statistics"}, template("admin_statistics/index"), _("Statistics"), 80) local st = entry({"admin", "statistics"}, template("admin_statistics/index"), _("Statistics"), 80)
st.index = true st.index = true
entry({"admin", "statistics", "collectd"}, cbi("luci_statistics/collectd"), _("Collectd"), 10).subindex = true entry({"admin", "statistics", "collectd"}, cbi("luci_statistics/collectd"), _("Collectd"), 10).subindex = true
-- populate collectd plugin menu -- populate collectd plugin menu
local index = 1 local index = 1
@ -106,7 +105,8 @@ function index()
-- get rrd data tree -- get rrd data tree
local tree = luci.statistics.datatree.Instance(host) local tree = luci.statistics.datatree.Instance(host)
for i, plugin in luci.util.vspairs( tree:plugins() ) do local _, plugin, idx
for _, plugin, idx in luci.util.vspairs( tree:plugins() ) do
-- get plugin instances -- get plugin instances
local instances = tree:plugin_instances( plugin ) local instances = tree:plugin_instances( plugin )
@ -114,16 +114,17 @@ function index()
-- plugin menu entry -- plugin menu entry
entry( entry(
{ "admin", "statistics", "graph", plugin }, { "admin", "statistics", "graph", plugin },
call("statistics_render"), labels[plugin], i call("statistics_render"), labels[plugin], idx
).query = { timespan = span , host = host } ).query = { timespan = span , host = host }
-- if more then one instance is found then generate submenu -- if more then one instance is found then generate submenu
if #instances > 1 then if #instances > 1 then
for j, inst in luci.util.vspairs(instances) do local _, inst, idx2
for _, inst, idx2 in luci.util.vspairs(instances) do
-- instance menu entry -- instance menu entry
entry( entry(
{ "admin", "statistics", "graph", plugin, inst }, { "admin", "statistics", "graph", plugin, inst },
call("statistics_render"), inst, j call("statistics_render"), inst, idx2
).query = { timespan = span , host = host } ).query = { timespan = span , host = host }
end end
end end
@ -148,6 +149,7 @@ function statistics_render()
local hosts = graph.tree:host_instances() local hosts = graph.tree:host_instances()
local is_index = false local is_index = false
local i, p, inst, idx
-- deliver image -- deliver image
if vars.img then if vars.img then
@ -186,8 +188,8 @@ function statistics_render()
-- render graphs -- render graphs
for i, inst in ipairs( instances ) do for i, inst in luci.util.vspairs( instances ) do
for i, img in ipairs( graph:render( plugin, inst, is_index ) ) do for i, img in luci.util.vspairs( graph:render( plugin, inst, is_index ) ) do
table.insert( images, graph:strippngpath( img ) ) table.insert( images, graph:strippngpath( img ) )
images[images[#images]] = inst images[images[#images]] = inst
end end