From 82c2a97314e5a569042056233475d1f97c1278ad Mon Sep 17 00:00:00 2001
From: Florian Eckert <fe@dev.tdt.de>
Date: Thu, 7 Mar 2019 15:09:47 +0100
Subject: luci-app-statistics: load graph menu entry name from the definitions

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>
---
 .../luasrc/controller/luci_statistics/luci_statistics.lua  | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

(limited to 'applications/luci-app-statistics/luasrc/controller/luci_statistics')

diff --git a/applications/luci-app-statistics/luasrc/controller/luci_statistics/luci_statistics.lua b/applications/luci-app-statistics/luasrc/controller/luci_statistics/luci_statistics.lua
index a89f9f4f87..eb7769b85f 100644
--- a/applications/luci-app-statistics/luasrc/controller/luci_statistics/luci_statistics.lua
+++ b/applications/luci-app-statistics/luasrc/controller/luci_statistics/luci_statistics.lua
@@ -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
-- 
cgit v1.2.3