mirror of
https://github.com/mickael-kerjean/filestash.git
synced 2025-10-30 01:26:43 +08:00
55 lines
1.6 KiB
JavaScript
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;
|
|
}
|