2026-04-14 17:41:39 +02:00

204 lines
6.0 KiB
Lua

if Config.Menu ~= 'esx_menu_default' then
return
end
function OpenManagementMenu()
local elementsList = {}
table.insert(elementsList, { label = 'Give Key', value = 'givekey' })
table.insert(elementsList, { label = 'Key Holders', value = 'keyholders' })
table.insert(elementsList, { label = 'Sell Garage', value = 'sell' })
ESX.UI.Menu.Open('default', GetCurrentResourceName(), 'management', {
title = 'Management',
align = 'right',
elements = elementsList
}, function(data, menu)
if data.current.value == 'givekey' then
menu.close()
TriggerEvent('advancedgarages:openGiveKeyMenu')
end
if data.current.value == 'keyholders' then
menu.close()
TriggerEvent('advancedgarages:openKeyHoldersMenu')
end
if data.current.value == 'sell' then
menu.close()
TriggerEvent('advancedgarages:sellGarage')
end
end, function(data, menu)
menu.close()
end)
end
function openGiveKeyMenu(players)
local elementsList = {}
for k, v in pairs(players) do
table.insert(elementsList, {
label = 'Player: ' .. v.name.firstName .. ' ' .. v.name.lastName,
value = {
id = v.id,
garage = ClosestGarage
}
})
end
ESX.UI.Menu.Open('default', GetCurrentResourceName(), 'givekey', {
title = 'Give Key',
align = 'right',
elements = elementsList
}, function(data, menu)
if data.current.value then
menu.close()
local selectedData = data.current.value
local data = {
id = selectedData.id,
garage = selectedData.garage
}
TriggerServerEvent('advancedgarages:giveKey', data)
end
end, function(data, menu)
menu.close()
end)
end
function openTakeKeyMenu()
local elementsList = {}
local holders = lib.callback.await('advancedgarages:getGarageKeyHolders', false, ClosestGarage)
if not holders or #holders == 0 then
Notification(i18n.t('keyholders.empty_list'), 'info')
return
end
for k, v in pairs(holders) do
table.insert(elementsList, {
label = 'Player: ' .. v.firstname .. ' ' .. v.lastname,
value = {
id = v.identifier,
garage = ClosestGarage
}
})
end
ESX.UI.Menu.Open('default', GetCurrentResourceName(), 'keyholders', {
title = 'Recovery',
align = 'right',
elements = elementsList
}, function(data, menu)
if data.current.value then
menu.close()
local selectedData = data.current.value
local data = {
id = selectedData.id,
garage = selectedData.garage
}
TriggerServerEvent('advancedgarages:takeKey', data)
end
end, function(data, menu)
menu.close()
end)
end
function HandleKeyboard(callback)
ESX.UI.Menu.Open('dialog', GetCurrentResourceName(), 'price',
{
title = ('Set a price')
},
function(data, menu)
local amount = tonumber(data.value)
if amount == nil then
Notification('Invalid Amount', 'error')
else
menu.close()
callback(amount)
end
end,
function(data, menu)
menu.close()
end)
end
function HandleGarageJob()
local promise = promise.new()
ESX.UI.Menu.Open('dialog', GetCurrentResourceName(), 'job',
{
title = ('Job Name (you can leave it blank for everyone)')
},
function(data, menu)
local jobName = data.value
if jobName == nil then
menu.close()
return promise:resolve(false)
end
promise:resolve(jobName)
menu.close()
end,
function(data, menu)
menu.close()
end)
return Citizen.Await(promise)
end
function OpenRecoveryMenu(vehicleList)
local elementsList = {}
for k, v in pairs(vehicleList) do
table.insert(elementsList, {
label = v.plate,
type = v.type,
value = {
plate = v.plate,
type = v.type
}
})
end
ESX.UI.Menu.Open('default', GetCurrentResourceName(), 'recovery', {
title = 'Recovery Vehicle (OUT)',
align = 'right',
elements = elementsList
}, function(data, menu)
if data.current.value then
menu.close()
local selectedData = data.current.value
TriggerServerEvent('advancedgarages:RecoveryVehicle', selectedData)
end
end, function(data, menu)
menu.close()
end)
end
function OpenDeleteJobVehicleMenu(garage, job)
local elementsList = {}
local vehicles = lib.callback.await('advancedgarages:getJobVehicles', false, garage, job)
if not vehicles or #vehicles == 0 then
Notification(i18n.t('keyholders.empty_out'), 'info')
return
end
for k, v in pairs(vehicles) do
table.insert(elementsList, {
label = v.plate,
value = {
plate = v.plate,
garage = garage
}
})
end
ESX.UI.Menu.Open('default', GetCurrentResourceName(), 'deletejob', {
title = 'Delete work vehicles',
align = 'right',
elements = elementsList
}, function(data, menu)
local selectedData = data.current.value
if selectedData then
TriggerServerEvent('advancedgarages:deleteJobVehicle', selectedData)
menu.close()
end
end, function(data, menu)
menu.close()
end)
end