checkbox and multiselect insert and update payload
by bilbobaggins
JavaScript
var validationmap=[ { "inputtype": "textbox", "inputCustomMapping": "name", "inputname": "name", "inputplaceholder": "", "fieldtypename": "STRING", "fieldvalidatename": "string", "fieldmaxlength": "80", "inputisPrimary": false }, { "inputtype": "textbox", "inputCustomMapping": "address", "inputname": "address", "inputplaceholder": "", "fieldtypename": "STRING", "fieldvalidatename": "string", "fieldmaxlength": "80", "inputisPrimary": false }, { "inputtype": "radio", "inputtypemod": "gender", "inputtypeVal": "name", "inputtypeID": "genderid", "inputParent": "gender", "inputCustomMapping": "genderid", "inputname": "genderid", "inputtextval": "name", "inputplaceholder": "", "fieldtypename": "INTEGER", "fieldvalidatename": "number", "fieldmaxlength": "80", "inputisPrimary": false } ]
let multiInsertCodeforCheckbox = function (redlime) {
var r1 = ` let internim={ datapayload:{ ...arg.datapayload`
var r2 = `
var isactivearrayobj = {
recordstate: base.interimdatapayload.recordstate
}
//flatting multiselects objects
var temp = Object.fromEntries(
Object.entries(internim.datapayload).map(([k, v]) => [
k,
datatransformutils.flat(v)
])
)
let b = { ...temp, ...isactivearrayobj }
//apply cartesion for multiselects objects
var interns = datatransformutils.getCartesian(b)
let o = {
payset: interns,
delObj: {
${redlime[0].inputtypeID}: interns[0].${redlime[0].inputtypeID}
}
}
base.datapayload = o
return base
}`
redlime.forEach(function (dt) {
if (dt.inputtype == 'checkbox'||dt.inputtype == 'radio') {
r1 = r1 + `,...current${dt.inputtypemod}.data `
}
else if(dt.inputtype == 'multiselect')
{
if(r1.includes('multiselects'))
{
}
else
{
r1 = r1 + `,...multiselects`
}
}
})
r1 = r1 + `}}`
return r1+r2
}
let multiInsertCode=function(validationmap)
{
let isMultiControl = validationmap
...