luci-app-statistics: load graph menu entry name from the definitions
authorFlorian Eckert <fe@dev.tdt.de>
Thu, 7 Mar 2019 14:09:47 +0000 (15:09 +0100)
committerFlorian Eckert <fe@dev.tdt.de>
Thu, 7 Mar 2019 14:16:38 +0000 (15:16 +0100)
This change defines the menu entry for the LuCI and the rrd definition in
one place. This also has advantage when plugins are written with
exec/python/perl or lua. The controller does not have to be touched for
the menu entry change.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
applications/luci-app-statistics/luasrc/controller/luci_statistics/luci_statistics.lua

index a89f9f4f8766cfd9eb9dcf358037c82c51f9f224..eb7769b85fd4ed7ef3c6f400c94efb00664d9186 100644 (file)
@@ -115,11 +115,15 @@ function index()
                -- get plugin instances
                local instances = tree:plugin_instances( plugin )
 
-               -- plugin menu entry
-               entry(
-                       { "admin", "statistics", "graph", plugin },
-                       call("statistics_render"), labels[plugin], idx
-               ).query = { timespan = span , host = host }
+               -- load plugin menu entry from the description
+               local plugin_name = "luci.statistics.rrdtool.definitions." .. plugin
+               local stat, def = pcall( require, plugin_name )
+               if stat and def and type(def.item) == "function" then
+                       entry(
+                               { "admin", "statistics", "graph", plugin },
+                               call("statistics_render"), def.item(), idx
+                       ).query = { timespan = span , host = host }
+               end
 
                -- if more then one instance is found then generate submenu
                if #instances > 1 then