Files
wnsrc/lua/sam/menu/tabs/config/reports.lua
lifestorm 94063e4369 Upload
2024-08-04 22:55:00 +03:00

171 lines
3.9 KiB
Lua

--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
if SAM_LOADED then return end
local sam = sam
local config = sam.config
local not_empty = function(s)
return s and s ~= ""
end
local number_entry = function(setting, config_key, default)
local entry = setting:Add("SAM.TextEntry")
entry:SetWide(50)
entry:SetPlaceholder("")
entry:SetBackground(Color(34, 34, 34))
entry:SetNumeric(true)
entry:DisallowFloats()
entry:DisallowNegative()
entry:SetCheck(not_empty)
entry:SetConfig(config_key, default)
return entry
end
config.add_tab("Reports", function(parent)
local body = parent:Add("SAM.ScrollPanel")
body:Dock(FILL)
body:LineMargin(0, 6, 0, 0)
local i = 0
body:GetCanvas():On("OnChildAdded", function(s, child)
i = i + 1
child:SetZPos(i)
if not body.making_line then
body:Line()
end
end)
do
local setting = body:Add("SAM.LabelPanel")
setting:Dock(TOP)
setting:SetLabel("Enable")
setting:DockMargin(8, 6, 8, 0)
local enable = setting:Add("SAM.ToggleButton")
enable:SetConfig("Reports", true)
end
do
local setting = body:Add("SAM.LabelPanel")
setting:Dock(TOP)
setting:SetLabel("Commands")
setting:DockMargin(8, 6, 8, 0)
local entry = setting:Add("SAM.TextEntry")
entry:SetWide(200)
entry:SetNoBar(true)
entry:SetPlaceholder("")
entry:SetMultiline(true)
entry:SetConfig("Reports.Commands")
entry.no_scale = true
function entry:OnValueChange()
self:SetTall(self:GetNumLines() * (sam.SUI.Scale(16) --[[font size]] + 1) + 1 + 2)
end
entry:OnValueChange()
end
do
local setting = body:Add("SAM.LabelPanel")
setting:Dock(TOP)
setting:SetLabel("Max Reports (Number of reports that can show on your screen)")
setting:DockMargin(8, 6, 8, 0)
number_entry(setting, "Reports.MaxReports", 4)
end
do
local setting = body:Add("SAM.LabelPanel")
setting:Dock(TOP)
setting:SetLabel("Auto Close Time (Time to wait before automatically closing claimed reports)")
setting:DockMargin(8, 6, 8, 0)
local entry = setting:Add("SAM.TextEntry")
entry:SetWide(70)
entry:SetNoBar(false)
entry:SetPlaceholder("")
entry:SetCheck(function(time)
time = sam.parse_length(time)
if not time then
return false
end
end)
entry:SetConfig("Reports.AutoCloseTime", "10m")
end
do
local setting = body:Add("SAM.LabelPanel")
setting:Dock(TOP)
setting:SetLabel("Always Show (Show the popups even if you are not on duty)")
setting:DockMargin(8, 6, 8, 0)
local enable = setting:Add("SAM.ToggleButton")
enable:SetConfig("Reports.AlwaysShow", true)
end
do
local setting = body:Add("SAM.LabelPanel")
setting:Dock(TOP)
setting:SetLabel("On Duty Jobs")
setting:DockMargin(8, 6, 8, 0)
local entry = setting:Add("SAM.TextEntry")
entry:SetWide(300)
entry:SetNoBar(true)
entry:SetPlaceholder("")
entry:SetMultiline(true)
entry:SetConfig("Reports.DutyJobs", "")
entry.no_scale = true
function entry:OnValueChange()
self:SetTall(self:GetNumLines() * (sam.SUI.Scale(16) --[[font size]] + 1) + 1 + 2)
end
entry:OnValueChange()
end
do
local setting = body:Add("SAM.LabelPanel")
setting:Dock(TOP)
setting:SetLabel("Position")
setting:DockMargin(8, 6, 8, 0)
local combo = setting:Add("SAM.ComboBox")
combo:SetWide(60)
combo:AddChoice("Left", nil, true)
combo:AddChoice("Right")
combo:SetConfig("Reports.Position", "Left")
end
do
local setting = body:Add("SAM.LabelPanel")
setting:Dock(TOP)
setting:SetLabel("X Padding")
setting:DockMargin(8, 6, 8, 0)
number_entry(setting, "Reports.XPadding", 5)
end
do
local setting = body:Add("SAM.LabelPanel")
setting:Dock(TOP)
setting:SetLabel("Y Padding")
setting:DockMargin(8, 6, 8, 0)
number_entry(setting, "Reports.YPadding", 5)
end
return body
end, function()
return LocalPlayer():HasPermission("manage_config")
end, 2)