forked from Simnation/Main
99 lines
No EOL
3.1 KiB
Lua
99 lines
No EOL
3.1 KiB
Lua
function QBTypeToOxType(_type)
|
|
if _type == "text" then
|
|
return "input"
|
|
elseif _type == "password" then
|
|
return "input"
|
|
elseif _type == "number" then
|
|
return "number"
|
|
elseif _type == "radio" then
|
|
return "checkbox"
|
|
elseif _type == "checkbox" then
|
|
return "checkbox"
|
|
elseif _type == "select" then
|
|
return "select"
|
|
end
|
|
end
|
|
|
|
function QBToOxInput(data)
|
|
local returnData = {}
|
|
for i, v in pairs(data) do
|
|
local input = {
|
|
label = v.text,
|
|
name = i,
|
|
type = QBTypeToOxType(v.type),
|
|
required = v.isRequired,
|
|
default = v.placeholder,
|
|
}
|
|
if v.type == "select" then
|
|
input.options = {}
|
|
for i, v in pairs(v.options) do
|
|
table.insert(input.options, {value = v.value, label = v.text})
|
|
end
|
|
elseif v.type == "checkbox" then
|
|
for i, v in pairs(v.options) do
|
|
table.insert(returnData, {value = v.value, label = v.text})
|
|
end
|
|
end
|
|
table.insert(returnData, input)
|
|
end
|
|
return returnData
|
|
end
|
|
|
|
|
|
function OxTypeToQBType(_type)
|
|
if _type == "input" then
|
|
return "text"
|
|
elseif _type == "number" then
|
|
return "number"
|
|
elseif _type == "checkbox" then
|
|
return "checkbox"
|
|
elseif _type == "select" then
|
|
return "select"
|
|
elseif _type == "multi-select" then
|
|
return "select"
|
|
elseif _type == "slider" then
|
|
return "number"
|
|
elseif _type == "color" then
|
|
return "text"
|
|
elseif _type == "date" then
|
|
return "date"
|
|
elseif _type == "date-range" then
|
|
return "date"
|
|
elseif _type == "time" then
|
|
return "time"
|
|
elseif _type == "textarea" then
|
|
return "text"
|
|
end
|
|
end
|
|
|
|
function OxToQBInput(data)
|
|
local returnData = {}
|
|
for i, v in pairs(data) do
|
|
local input = {
|
|
text = v.label,
|
|
name = i,
|
|
type = OxTypeToQBType(v.type),
|
|
isRequired = v.required,
|
|
default = v.default or "",
|
|
}
|
|
if v.type == "select" then
|
|
input.text = ""
|
|
input.options = {}
|
|
for k, j in pairs(v.options) do
|
|
table.insert(input.options, {value = j.value, text = j.label})
|
|
end
|
|
elseif v.type == "checkbox" then
|
|
input.text = ""
|
|
input.options = {}
|
|
if v.options then -- Checks if options varible is valid so checkboxes are bundled together (not used by ox for each checkpoint)
|
|
for k, j in pairs(v.options) do
|
|
table.insert(input.options, {value = j.value, text = j.label, checked = j.checked}) -- added checked option (used to show box as ticked or not)
|
|
end
|
|
else -- If options is not valid or people pass a single checkbox then it will be a single checkbox per entry
|
|
table.insert(input.options, {value = v.value, text = v.label, checked = v.checked}) -- Kept value just incase it's used for other stuffs
|
|
end
|
|
end
|
|
table.insert(returnData, input)
|
|
end
|
|
return returnData
|
|
end |