mirror of
https://github.com/ntop/ntopng.git
synced 2026-04-28 23:19:33 +00:00
Create datatable utilities
This commit is contained in:
parent
732a546be0
commit
330c3f5b9d
2 changed files with 66 additions and 48 deletions
59
scripts/lua/modules/datatable_utils.lua
Normal file
59
scripts/lua/modules/datatable_utils.lua
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
--
|
||||
-- (C) 2020-21 - ntop.org
|
||||
--
|
||||
|
||||
local dirs = ntop.getDirs()
|
||||
package.path = dirs.installdir .. "/scripts/lua/modules/?.lua;" .. package.path
|
||||
|
||||
require "lua_utils"
|
||||
local json = require("dkjson")
|
||||
|
||||
local datatable_utils = {}
|
||||
|
||||
local REDIS_KEY = "ntopng.prefs.%s.table.%s.columns"
|
||||
|
||||
local function get_username()
|
||||
local username = _SESSION["user"] or ''
|
||||
if (isNoLoginUser()) then username = 'no_login' end
|
||||
|
||||
return username
|
||||
end
|
||||
|
||||
---Save the columns visibility inside Redis
|
||||
---@param table_name string The HTML table id
|
||||
---@param columns string String containing ids separeted by comma
|
||||
function datatable_utils.save_column_preferences(table_name, columns)
|
||||
-- avoid the save of nil value
|
||||
if columns == nil then return end
|
||||
tprint(columns)
|
||||
local key = string.format(REDIS_KEY, get_username(), table_name)
|
||||
local cols = split(columns, ",")
|
||||
|
||||
ntop.setPref(key, json.encode(cols))
|
||||
end
|
||||
|
||||
---Load saved column visibility from Redis
|
||||
---@param table_name string The HTML table id
|
||||
---@return table
|
||||
function datatable_utils.load_saved_column_preferences(table_name)
|
||||
local key = string.format(REDIS_KEY, get_username(), table_name)
|
||||
local columns = ntop.getPref(key)
|
||||
|
||||
if isEmptyString(columns) then
|
||||
return { -1 }
|
||||
end
|
||||
|
||||
return json.decode(columns)
|
||||
end
|
||||
|
||||
---Check if there are saved visible columns
|
||||
---@param table_name string The HTML table id
|
||||
---@return boolean
|
||||
function datatable_utils.has_saved_column_preferences(table_name)
|
||||
local key = string.format(REDIS_KEY, get_username(), table_name)
|
||||
local columns = ntop.getPref(key)
|
||||
|
||||
return not isEmptyString(columns)
|
||||
end
|
||||
|
||||
return datatable_utils
|
||||
Loading…
Add table
Add a link
Reference in a new issue