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 | 
