Added Unknown manufacturer filter (#9042)

* Fixed dist and error codes in scss

* Moved network discovery to monitoring from dashboard

* Added unknown MAC manufacturer filter in assets page #9036
This commit is contained in:
GabrieleDeri 2025-03-17 15:36:15 +01:00 committed by GitHub
parent 1f99754da4
commit a1e077c6ac
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 76 additions and 12 deletions

View file

@ -58,15 +58,17 @@ local tot_assets = asset_utils.getNumAssets(ifid, filters)[1].count
local assets = asset_utils.getHostsAssets(ifid, order, gui_to_db_columns[sort], start, length, filters)
for _, value in pairs(assets or {}) do
local record = {}
local json_info = json.decode(value.json_info or "") or {}
local column_ip = {
ip = value.ip
}
if not isEmptyString(value.os) then
column_ip.os = tonumber(value.os)
end
if value["systemhost"] then
column_ip.system_host = true
end
@ -159,7 +161,14 @@ for _, value in pairs(assets or {}) do
date = date,
timestamp = last_seen
}
-- Format table value. manufacturer is "unknown" in db
if value["manufacturer"] == "unknown" then
value["manufacturer"] = i18n("unknown")
end
record["manufacturer"] = value["manufacturer"]
record["key"] = value["key"]
rsp[#rsp + 1] = record
end

View file

@ -24,9 +24,25 @@ local rsp = {}
local filters = {}
for _, value in pairs(available_filters or {}) do
if not filters[value.filter] then filters[value.filter] = {} end
if value.value then filters[value.filter][value.value] = value.count end
--[[
Value is a table as below:
table
value string Super Micro Computer, Inc.
count string 9
filter string manufacturer
]]
-- Empty filter
if not filters[value.filter] then
filters[value.filter] = {}
end
-- If the filter has a name, add the count of devices to the filters list
if value.value then
filters[value.filter][value.value] = value.count
end
end
for key, value in pairsByKeys(filters or {}, asc) do
@ -40,8 +56,10 @@ for key, value in pairsByKeys(filters or {}, asc) do
end
for name, count in pairsByKeys(value or {}) do
local value = name
if isEmptyString(value) then goto continue end
if tonumber(name) then value = tonumber(name) end
if formatter then
name = formatter(name)
if isEmptyString(name) then name = value end
@ -59,6 +77,12 @@ for key, value in pairsByKeys(filters or {}, asc) do
end
name = discover_utils.getOsName(name)
end
-- Empty manufacturer filter formatting for dropdown
if name == "unknown" then
name = i18n("unknown")
end
filter_list[#filter_list + 1] = {
key = key,
value = value,
@ -107,4 +131,5 @@ rsp[#rsp + 1] = {
value = server_filters
}
rest_utils.answer(rest_utils.consts.success.ok, rsp)