structura foldere
mutat kq- folders in un singur folder [kq]
This commit is contained in:
+243
@@ -0,0 +1,243 @@
|
||||
if Config.Menu ~= 'esx_context' then
|
||||
return
|
||||
end
|
||||
|
||||
function OpenManagementMenu()
|
||||
local Elements = {
|
||||
{
|
||||
unselectable = true,
|
||||
title = 'Management',
|
||||
},
|
||||
{
|
||||
title = 'Give Key',
|
||||
name = 'givekey',
|
||||
},
|
||||
{
|
||||
title = 'Key Holders',
|
||||
name = 'keyholders',
|
||||
},
|
||||
{
|
||||
title = 'Sell Garage',
|
||||
name = 'sell',
|
||||
},
|
||||
}
|
||||
|
||||
ESX.OpenContext('right', Elements,
|
||||
function(menu, element)
|
||||
if element.name == 'givekey' then
|
||||
TriggerEvent('advancedgarages:openGiveKeyMenu')
|
||||
ESX.CloseContext()
|
||||
end
|
||||
if element.name == 'keyholders' then
|
||||
TriggerEvent('advancedgarages:openKeyHoldersMenu')
|
||||
ESX.CloseContext()
|
||||
end
|
||||
if element.name == 'sell' then
|
||||
TriggerEvent('advancedgarages:sellGarage')
|
||||
ESX.CloseContext()
|
||||
end
|
||||
end, function(menu)
|
||||
ESX.CloseContext()
|
||||
end)
|
||||
end
|
||||
|
||||
function openGiveKeyMenu(vehicleList)
|
||||
local Elements = {}
|
||||
table.insert(Elements, {
|
||||
unselectable = true,
|
||||
title = 'Give Key',
|
||||
})
|
||||
|
||||
for k, v in pairs(vehicleList) do
|
||||
table.insert(Elements, {
|
||||
title = 'Player: ' .. v.name.firstName .. ' ' .. v.name.lastName,
|
||||
name = 'givekey',
|
||||
data = {
|
||||
id = v.id,
|
||||
garage = ClosestGarage
|
||||
}
|
||||
})
|
||||
end
|
||||
|
||||
ESX.OpenContext('right', Elements, function(menu, element)
|
||||
if element.name == 'givekey' then
|
||||
local selectedData = element.data
|
||||
local data = {
|
||||
id = selectedData.id,
|
||||
garage = selectedData.garage
|
||||
}
|
||||
TriggerServerEvent('advancedgarages:giveKey', data)
|
||||
ESX.CloseContext()
|
||||
end
|
||||
end,
|
||||
function(menu)
|
||||
ESX.CloseContext()
|
||||
end)
|
||||
end
|
||||
|
||||
function openTakeKeyMenu()
|
||||
local Elements = {}
|
||||
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
|
||||
|
||||
table.insert(Elements, {
|
||||
unselectable = true,
|
||||
title = 'Take Key',
|
||||
})
|
||||
|
||||
for k, v in pairs(holders) do
|
||||
table.insert(Elements, {
|
||||
title = 'Player: ' .. v.firstname .. ' ' .. v.lastname,
|
||||
name = 'keyholders',
|
||||
data = {
|
||||
id = v.identifier,
|
||||
garage = ClosestGarage
|
||||
}
|
||||
})
|
||||
end
|
||||
|
||||
ESX.OpenContext('right', Elements, function(menu, element)
|
||||
if element.name == 'keyholders' then
|
||||
local selectedData = element.data
|
||||
local data = {
|
||||
id = selectedData.id,
|
||||
garage = selectedData.garage
|
||||
}
|
||||
TriggerServerEvent('advancedgarages:takeKey', data)
|
||||
ESX.CloseContext()
|
||||
end
|
||||
end,
|
||||
function(menu)
|
||||
ESX.CloseContext()
|
||||
end)
|
||||
end
|
||||
|
||||
function HandleKeyboard(callback)
|
||||
local Elements = {
|
||||
{
|
||||
title = 'Set a Price',
|
||||
input = true,
|
||||
inputType = 'number',
|
||||
inputValue = 1,
|
||||
inputPlaceholder = 'Garage Price...',
|
||||
name = 'price',
|
||||
},
|
||||
{
|
||||
title = 'Continue',
|
||||
name = 'next',
|
||||
},
|
||||
}
|
||||
ESX.OpenContext('right', Elements, function(menu, element)
|
||||
local amount = menu.eles[1].inputValue
|
||||
if amount == 0 or amount == nil then return end
|
||||
if element.name == 'next' then
|
||||
ESX.CloseContext()
|
||||
callback(amount)
|
||||
end
|
||||
end, function(menu)
|
||||
ESX.CloseContext()
|
||||
end)
|
||||
end
|
||||
|
||||
function HandleGarageJob()
|
||||
local promise = promise.new()
|
||||
local Elements = {
|
||||
{
|
||||
title = 'Job Name (you can leave it blank for everyone)',
|
||||
input = true,
|
||||
inputType = 'text',
|
||||
inputValue = '',
|
||||
inputPlaceholder = 'Job Name...',
|
||||
name = 'Job Name',
|
||||
},
|
||||
{
|
||||
title = 'Continue',
|
||||
name = 'next',
|
||||
},
|
||||
}
|
||||
|
||||
ESX.OpenContext('right', Elements, function(menu, element)
|
||||
local jobName = menu.eles[1].inputValue
|
||||
if jobName == nil then
|
||||
return promise:resolve(false)
|
||||
end
|
||||
if element.name == 'next' then
|
||||
ESX.CloseContext()
|
||||
promise:resolve(jobName)
|
||||
end
|
||||
end, function(menu)
|
||||
ESX.CloseContext()
|
||||
end)
|
||||
return Citizen.Await(promise)
|
||||
end
|
||||
|
||||
function OpenRecoveryMenu(vehicleList)
|
||||
local Elements = {}
|
||||
table.insert(Elements, {
|
||||
unselectable = true,
|
||||
title = 'Recovery Vehicle (OUT)',
|
||||
})
|
||||
|
||||
for k, v in pairs(vehicleList) do
|
||||
table.insert(Elements, {
|
||||
title = v.plate,
|
||||
plate = v.plate,
|
||||
type = v.type,
|
||||
name = 'recovery',
|
||||
data = {
|
||||
plate = v.plate,
|
||||
type = v.type
|
||||
}
|
||||
})
|
||||
end
|
||||
|
||||
ESX.OpenContext('right', Elements, function(menu, element)
|
||||
if element.name == 'recovery' then
|
||||
local selectedData = element.data
|
||||
TriggerServerEvent('advancedgarages:RecoveryVehicle', selectedData)
|
||||
ESX.CloseContext()
|
||||
end
|
||||
end,
|
||||
function(menu)
|
||||
ESX.CloseContext()
|
||||
end)
|
||||
end
|
||||
|
||||
function OpenDeleteJobVehicleMenu(garage, job)
|
||||
local Elements = {}
|
||||
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
|
||||
|
||||
table.insert(Elements, {
|
||||
unselectable = true,
|
||||
title = 'Delete work vehicles',
|
||||
})
|
||||
|
||||
|
||||
for k, v in pairs(vehicles) do
|
||||
table.insert(Elements, {
|
||||
title = v.plate,
|
||||
name = 'next',
|
||||
data = {
|
||||
plate = v.plate,
|
||||
garage = garage
|
||||
}
|
||||
})
|
||||
end
|
||||
|
||||
ESX.OpenContext('right', Elements, function(menu, element)
|
||||
if element.name == 'next' then
|
||||
local selectedData = element.data
|
||||
TriggerServerEvent('advancedgarages:deleteJobVehicle', selectedData)
|
||||
ESX.CloseContext()
|
||||
end
|
||||
end, function(menu)
|
||||
ESX.CloseContext()
|
||||
end)
|
||||
end
|
||||
+203
@@ -0,0 +1,203 @@
|
||||
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
|
||||
+145
@@ -0,0 +1,145 @@
|
||||
if Config.Menu ~= 'nh-context' then
|
||||
return
|
||||
end
|
||||
|
||||
function OpenManagementMenu()
|
||||
TriggerEvent('nh-context:createMenu', {
|
||||
{
|
||||
header = 'Management',
|
||||
},
|
||||
{
|
||||
header = 'Give Key',
|
||||
event = 'advancedgarages:openGiveKeyMenu',
|
||||
},
|
||||
{
|
||||
header = 'Key Holders',
|
||||
event = 'advancedgarages:openKeyHoldersMenu',
|
||||
},
|
||||
{
|
||||
header = 'Sell Garage',
|
||||
event = 'advancedgarages:sellGarage',
|
||||
}
|
||||
})
|
||||
end
|
||||
|
||||
function openGiveKeyMenu(players)
|
||||
local Elements = {
|
||||
{
|
||||
header = 'Give Key',
|
||||
}
|
||||
}
|
||||
for k, v in pairs(players) do
|
||||
local data = {
|
||||
id = v.id,
|
||||
garage = ClosestGarage
|
||||
}
|
||||
table.insert(Elements, {
|
||||
header = 'Give Key',
|
||||
context = 'Player: ' .. v.name.firstName .. ' ' .. v.name.lastName,
|
||||
event = 'advancedgarages:giveKey',
|
||||
server = true,
|
||||
args = {
|
||||
data
|
||||
}
|
||||
})
|
||||
end
|
||||
TriggerEvent('nh-context:createMenu', Elements)
|
||||
end
|
||||
|
||||
function openTakeKeyMenu()
|
||||
local Elements = {
|
||||
{
|
||||
header = 'Take Key',
|
||||
}
|
||||
}
|
||||
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
|
||||
local data = {
|
||||
id = v.identifier,
|
||||
garage = ClosestGarage
|
||||
}
|
||||
table.insert(Elements, {
|
||||
header = 'Take Key',
|
||||
context = 'Player: ' .. v.firstname .. ' ' .. v.lastname,
|
||||
event = 'advancedgarages:takeKey',
|
||||
server = true,
|
||||
args = {
|
||||
data
|
||||
}
|
||||
})
|
||||
end
|
||||
TriggerEvent('nh-context:createMenu', Elements)
|
||||
end
|
||||
|
||||
function HandleKeyboard(callback)
|
||||
local keyboard, value = exports['nh-keyboard']:Keyboard({
|
||||
header = 'Set a Price',
|
||||
rows = { 'Price' }
|
||||
})
|
||||
if keyboard then
|
||||
callback(value)
|
||||
end
|
||||
end
|
||||
|
||||
function HandleGarageJob()
|
||||
local keyboard, value = exports['nh-keyboard']:Keyboard({
|
||||
header = 'Job Name (you can leave it blank for everyone)',
|
||||
rows = { 'Job Name' }
|
||||
})
|
||||
if keyboard then
|
||||
return value
|
||||
end
|
||||
end
|
||||
|
||||
function OpenRecoveryMenu(vehicleList)
|
||||
local menu = {}
|
||||
table.insert(menu, {
|
||||
header = 'Recovery Vehicle (OUT)'
|
||||
})
|
||||
for k, v in pairs(vehicleList) do
|
||||
table.insert(menu, {
|
||||
header = v.plate,
|
||||
event = 'advancedgarages:RecoveryVehicle',
|
||||
server = true,
|
||||
args = {
|
||||
v
|
||||
}
|
||||
})
|
||||
end
|
||||
TriggerEvent('nh-context:createMenu', menu)
|
||||
end
|
||||
|
||||
function OpenDeleteJobVehicleMenu(garage, job)
|
||||
local menu = {}
|
||||
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
|
||||
|
||||
table.insert(menu, {
|
||||
header = 'Delete work vehicles'
|
||||
})
|
||||
|
||||
for k, v in pairs(vehicles) do
|
||||
local data = {
|
||||
plate = v.plate,
|
||||
garage = garage
|
||||
}
|
||||
table.insert(menu, {
|
||||
header = v.plate,
|
||||
event = 'advancedgarages:deleteJobVehicle',
|
||||
server = true,
|
||||
args = {
|
||||
data
|
||||
}
|
||||
})
|
||||
end
|
||||
|
||||
TriggerEvent('nh-context:createMenu', menu)
|
||||
end
|
||||
+152
@@ -0,0 +1,152 @@
|
||||
if Config.Menu ~= 'ox_lib' then
|
||||
return
|
||||
end
|
||||
|
||||
function OpenManagementMenu()
|
||||
local elements = {
|
||||
{
|
||||
title = 'Give Key',
|
||||
onSelect = function(args)
|
||||
TriggerEvent('advancedgarages:openGiveKeyMenu')
|
||||
end
|
||||
},
|
||||
{
|
||||
title = 'Key Holders',
|
||||
onSelect = function(args)
|
||||
TriggerEvent('advancedgarages:openKeyHoldersMenu')
|
||||
end
|
||||
},
|
||||
{
|
||||
title = 'Sell Garage',
|
||||
onSelect = function(args)
|
||||
TriggerEvent('advancedgarages:sellGarage')
|
||||
end
|
||||
}
|
||||
}
|
||||
lib.registerContext({
|
||||
id = 'management',
|
||||
title = 'Management',
|
||||
options = elements
|
||||
})
|
||||
lib.showContext('management')
|
||||
end
|
||||
|
||||
function openGiveKeyMenu(players)
|
||||
local elements = {}
|
||||
for k, v in pairs(players) do
|
||||
table.insert(elements, {
|
||||
title = 'Player: ' .. v.name.firstName .. ' ' .. v.name.lastName,
|
||||
onSelect = function(args)
|
||||
local data = {
|
||||
id = v.id,
|
||||
garage = ClosestGarage
|
||||
}
|
||||
TriggerServerEvent('advancedgarages:giveKey', data)
|
||||
end
|
||||
})
|
||||
end
|
||||
lib.registerContext({
|
||||
id = 'givekey',
|
||||
title = 'Give Keys',
|
||||
options = elements
|
||||
})
|
||||
lib.showContext('givekey')
|
||||
end
|
||||
|
||||
function openTakeKeyMenu()
|
||||
local elements = {}
|
||||
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(elements, {
|
||||
title = 'Player: ' .. v.firstname .. ' ' .. v.lastname,
|
||||
onSelect = function(args)
|
||||
local data = {
|
||||
id = v.identifier,
|
||||
garage = ClosestGarage
|
||||
}
|
||||
TriggerServerEvent('advancedgarages:takeKey', data)
|
||||
end
|
||||
})
|
||||
end
|
||||
lib.registerContext({
|
||||
id = 'keyholders',
|
||||
title = 'Key Holders',
|
||||
options = elements
|
||||
})
|
||||
lib.showContext('keyholders')
|
||||
end
|
||||
|
||||
function HandleKeyboard(callback)
|
||||
local input = lib.inputDialog('Set a Price', { 'Garage Price...' })
|
||||
|
||||
if not input then return end
|
||||
local price = tonumber(input[1])
|
||||
|
||||
if price then
|
||||
local amount = price
|
||||
if amount == nil then
|
||||
Notification('Invalid Amount', 'error')
|
||||
else
|
||||
if amount >= 0 then
|
||||
callback(amount)
|
||||
else
|
||||
Notification('Invalid Amount', 'error')
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function HandleGarageJob()
|
||||
local input = lib.inputDialog('Job Name (you can leave it blank for everyone)', { 'Job Name' })
|
||||
if not input or input[1] == '' then return false end
|
||||
return input[1]
|
||||
end
|
||||
|
||||
function OpenRecoveryMenu(vehicleList)
|
||||
local menu = {}
|
||||
for k, v in pairs(vehicleList) do
|
||||
table.insert(menu, {
|
||||
title = v.plate,
|
||||
onSelect = function(args)
|
||||
TriggerServerEvent('advancedgarages:RecoveryVehicle', { plate = v.plate, type = v.type })
|
||||
end,
|
||||
})
|
||||
end
|
||||
lib.registerContext({
|
||||
id = 'recovery',
|
||||
title = 'Recovery Vehicle (OUT)',
|
||||
options = menu
|
||||
})
|
||||
lib.showContext('recovery')
|
||||
end
|
||||
|
||||
function OpenDeleteJobVehicleMenu(garage, job)
|
||||
local menu = {}
|
||||
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
|
||||
local data = {
|
||||
plate = v.plate,
|
||||
garage = garage
|
||||
}
|
||||
table.insert(menu, {
|
||||
title = v.plate,
|
||||
onSelect = function(args)
|
||||
TriggerServerEvent('advancedgarages:deleteJobVehicle', data)
|
||||
end,
|
||||
})
|
||||
end
|
||||
lib.registerContext({
|
||||
id = 'deletejobvehicle',
|
||||
title = 'Delete work vehicles',
|
||||
options = menu
|
||||
})
|
||||
lib.showContext('deletejobvehicle')
|
||||
end
|
||||
+176
@@ -0,0 +1,176 @@
|
||||
if Config.Menu ~= 'qb-menu' then
|
||||
return
|
||||
end
|
||||
|
||||
function OpenManagementMenu()
|
||||
local elementsList = {
|
||||
{
|
||||
header = 'Management',
|
||||
isMenuHeader = true,
|
||||
},
|
||||
{
|
||||
header = 'Give Key',
|
||||
params = {
|
||||
event = 'advancedgarages:openGiveKeyMenu',
|
||||
}
|
||||
},
|
||||
{
|
||||
header = 'Key Holders',
|
||||
params = {
|
||||
event = 'advancedgarages:openKeyHoldersMenu',
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
exports['qb-menu']:openMenu(elementsList)
|
||||
end
|
||||
|
||||
function openGiveKeyMenu(players)
|
||||
local elementsList = {}
|
||||
table.insert(elementsList, {
|
||||
header = 'Give Key',
|
||||
isMenuHeader = true,
|
||||
})
|
||||
for k, v in pairs(players) do
|
||||
table.insert(elementsList, {
|
||||
header = 'Player: ' .. v.name.firstName .. ' ' .. v.name.lastName,
|
||||
params = {
|
||||
isServer = true,
|
||||
event = 'advancedgarages:giveKey',
|
||||
args = {
|
||||
id = v.id,
|
||||
garage = ClosestGarage
|
||||
}
|
||||
}
|
||||
})
|
||||
end
|
||||
exports['qb-menu']:openMenu(elementsList)
|
||||
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
|
||||
|
||||
table.insert(elementsList, {
|
||||
header = 'Take Key',
|
||||
isMenuHeader = true,
|
||||
})
|
||||
|
||||
for k, v in pairs(holders) do
|
||||
table.insert(elementsList, {
|
||||
header = 'Player: ' .. v.firstname .. ' ' .. v.lastname,
|
||||
params = {
|
||||
isServer = true,
|
||||
event = 'advancedgarages:takeKey',
|
||||
args = {
|
||||
id = v.identifier,
|
||||
garage = ClosestGarage
|
||||
}
|
||||
}
|
||||
})
|
||||
end
|
||||
exports['qb-menu']:openMenu(elementsList)
|
||||
end
|
||||
|
||||
function HandleKeyboard(callback)
|
||||
local dialog = exports['qb-input']:ShowInput({
|
||||
header = 'Set a Price',
|
||||
submitText = 'Continue',
|
||||
inputs = {
|
||||
{
|
||||
text = 'Garage Price...',
|
||||
name = 'price',
|
||||
type = 'number',
|
||||
isRequired = true,
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
if dialog ~= nil then
|
||||
for k, v in pairs(dialog) do
|
||||
callback(v)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function HandleGarageJob()
|
||||
local dialog = exports['qb-input']:ShowInput({
|
||||
header = 'Job Name (you can leave it blank for everyone)',
|
||||
submitText = 'Continue',
|
||||
inputs = {
|
||||
{
|
||||
text = 'Job Name...',
|
||||
name = 'Job public garage',
|
||||
type = 'text',
|
||||
isRequired = false,
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
if dialog ~= nil then
|
||||
for k, v in pairs(dialog) do
|
||||
if v and v ~= '' then
|
||||
return v
|
||||
end
|
||||
|
||||
return nil
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function OpenRecoveryMenu(vehicleList)
|
||||
local elementsList = {}
|
||||
table.insert(elementsList, {
|
||||
header = 'Recovery Vehicle (OUT)',
|
||||
isMenuHeader = true,
|
||||
})
|
||||
|
||||
for k, v in pairs(vehicleList) do
|
||||
table.insert(elementsList, {
|
||||
header = v.plate,
|
||||
params = {
|
||||
isServer = true,
|
||||
event = 'advancedgarages:RecoveryVehicle',
|
||||
args = {
|
||||
plate = v.plate,
|
||||
type = v.type
|
||||
}
|
||||
}
|
||||
})
|
||||
end
|
||||
exports['qb-menu']:openMenu(elementsList)
|
||||
end
|
||||
|
||||
function OpenDeleteJobVehicleMenu(garage, job)
|
||||
local menu = {}
|
||||
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
|
||||
|
||||
table.insert(menu, {
|
||||
header = 'Delete work vehicles'
|
||||
})
|
||||
|
||||
for k, v in pairs(vehicles) do
|
||||
table.insert(menu, {
|
||||
header = v.plate,
|
||||
params = {
|
||||
isServer = true,
|
||||
event = 'advancedgarages:deleteJobVehicle',
|
||||
args = {
|
||||
plate = v.plate,
|
||||
garage = garage
|
||||
}
|
||||
}
|
||||
})
|
||||
end
|
||||
|
||||
exports['qb-menu']:openMenu(menu)
|
||||
end
|
||||
Reference in New Issue
Block a user