204 lines
6.0 KiB
Lua
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
|