mirror of
https://github.com/ntop/ntopng.git
synced 2026-04-30 16:09:32 +00:00
95 lines
2.8 KiB
Lua
95 lines
2.8 KiB
Lua
--
|
|
-- (C) 2013-24 - ntop.org
|
|
--
|
|
|
|
local dirs = ntop.getDirs()
|
|
package.path = dirs.installdir .. "/scripts/lua/modules/?.lua;" .. package.path
|
|
package.path = dirs.installdir .. "/scripts/lua/pro/modules/?.lua;" .. package.path
|
|
package.path = dirs.installdir .. "/scripts/lua/pro/enterprise/modules/?.lua;" .. package.path
|
|
|
|
local rest_utils = require "rest_utils"
|
|
local os_utils = require "os_utils"
|
|
local dashboard_utils = require "dashboard_utils"
|
|
|
|
--
|
|
-- Get list of components for a dashboard template
|
|
-- Example: curl -u admin:admin "http://localhost:3000/lua/pro/rest/v2/get/dashboard/template/data.lua?template=default"
|
|
--
|
|
|
|
local template_id = _GET["template"]
|
|
|
|
local page = "dashboard"
|
|
|
|
if isEmptyString(template_id) then
|
|
template_id = "default"
|
|
end
|
|
|
|
local rc = rest_utils.consts.success.ok
|
|
|
|
local res = {}
|
|
local components = {}
|
|
|
|
local templates_path = os_utils.fixPath(dirs.installdir .. "/scripts/templates/" .. page)
|
|
local templates = dashboard_utils.get_templates(templates_path)
|
|
local template = templates[template_id];
|
|
if template and template.components then
|
|
components = template.components
|
|
end
|
|
|
|
----------------------------------
|
|
-- Component Definition Example --
|
|
----------------------------------
|
|
--[[
|
|
|
|
components[#components+1] = {
|
|
-- Component type
|
|
component = "simple-table",
|
|
|
|
-- Component name
|
|
id = "top_local_talkers",
|
|
|
|
-- Component title
|
|
i18n_name = "report.top_local_hosts", -- "dashboard.top_local_talkers",
|
|
|
|
-- Background color
|
|
-- - Accepted colors: primary, secondary, success, danger, warning, info, light, dark, white
|
|
-- color = "success",
|
|
|
|
-- Width/Height
|
|
-- - Grid is divided into 12 units, we support 4/8/12 as size for components
|
|
width = 4,
|
|
height = 4,
|
|
|
|
-- Time Window
|
|
-- - Configured here on Dashboard - with a default if not specified
|
|
-- - User-selectable on Reports from the range picker
|
|
-- - Accepted values: '5_min', '30_min', 'hour', '2_hours', '12_hours', 'day', 'week', 'month', 'year'
|
|
time_window = '',
|
|
|
|
-- Time Offset (optional)
|
|
-- - Configured here both on Dashboard and Reports - e.g. show 1 week before
|
|
-- - Accepted values: 'hour', 'day', 'week', 'month', 'year'
|
|
time_offset = '',
|
|
|
|
-- Interface ID (optional - use current ifid by default)
|
|
--ifid = 1,
|
|
|
|
-- Component-specific parameters
|
|
params = {
|
|
-- Rest URL (note: prefix is added by the component at runtime)
|
|
url = "/lua/pro/rest/v2/get/interface/top/local/talkers.lua",
|
|
url_params = {}, -- Array of (fixed) params to be passed to the REST URL (in addition to runtime params)
|
|
table_type = 'throughput',
|
|
columns = {
|
|
{ id = 'name', i18n_name = "host_details.host" },
|
|
{ id = 'throughput', i18n_name = "dashboard.actual_traffic" },
|
|
},
|
|
}
|
|
}
|
|
|
|
--]]
|
|
----------------------------------
|
|
|
|
res.list = components
|
|
|
|
rest_utils.answer(rest_utils.consts.success.ok, res)
|