Files
2019-01-28 01:09:45 +11:00

55 lines
1.6 KiB
JavaScript

export const FormObjToJSON = function(o, fn){
let obj = Object.assign({}, o);
Object.keys(obj).map((key) => {
let t = obj[key];
if("label" in t && "type" in t && "default" in t && "value" in t){
if(typeof fn === "function"){
fn(obj, key);
} else {
obj[key] = obj[key].value;
}
} else {
obj[key] = FormObjToJSON(obj[key], fn);
}
});
return obj
};
export function createFormBackend(backend_available, backend_data){
if(!backend_available) return {};
let template = JSON.parse(JSON.stringify(backend_available[backend_data.type]));
for(let key in backend_data){
if(key in template){
template[key].value = backend_data[key];
template[key].enabled = true;
} else {
// create a form object if data isn't available in the template
let obj = {};
obj[key] = {
label: key,
type: "text",
value: null,
default: backend_data[key]
};
template = Object.assign(obj, template);
}
if(key === "label"){
template[key].placeholder = "Name as shown on the login screen.";
template[key].value = backend_data[key];
template[key].enabled = true;
} else if(key === "type"){
template[key].enabled = true;
} else if(key === "advanced"){
template[key].enabled = true;
}
}
let obj = {};
obj[backend_data.type] = template;
return obj;
}