FSN#36126 Eenvoudiger personen in meerdere groepen kunnen zetten

svn path=/Website/trunk/; revision=32887
This commit is contained in:
Jos Groot Lipman
2017-02-21 15:34:13 +00:00
parent 95682f602d
commit 18aa560f48
8 changed files with 41 additions and 12 deletions

View File

@@ -81,6 +81,9 @@ api2 = {
}
else
{
if (params.multiadd == formfields[i].frm)
val = getFParamIntArray(formfields[i].frm, null);
else
val = getFParamInt(formfields[i].frm, null);
}
break;

View File

@@ -54,7 +54,8 @@ function model_fac_profiel()
"profile_values": {
"model": new model_fac_profielwaarde(),
"joinfield": "profile",
"enable_update": true
"enable_update": true,
"multiadd": "catalog"
}
};

View File

@@ -75,7 +75,9 @@ function model_persons()
this.includes = {
"authorization": {
"model": new model_fac_gebruikersgroep(),
"joinfield": "user"
"joinfield": "user",
"multiadd": "fac_groep"
},
"custom_fields" : {
"model": new model_custom_fields(this, "PRS", { readman: true, readuse: true, pNiveau: "P" }),

View File

@@ -87,7 +87,8 @@ function model_res_activiteit()
"disciplines": {
"model": new model_res_activiteit_discipline(),
"joinfield": "res_activiteit_key",
"enable_update": true
"enable_update": true,
"multiadd": "res_discipline_key"
}
};

View File

@@ -257,7 +257,8 @@ function model_res_ruimte()
},
"configurations": {
"model": new model_res_ruimte_opstelling(),
"joinfield": "res_ruimte_key"
"joinfield": "res_ruimte_key",
"multiadd": "res_opstelling_key"
}
};

View File

@@ -431,12 +431,15 @@ function scf_RWFIELDTR(model, fld, val, key, params)
{ // dereference
val = val.id;
}
var canmultiadd = fld == params.multiadd && !(key > 0);
FCLTselector(fld, sql, { label: field.label,
initKey: val||null,
emptyOption: emptyOption,
emptyOption: canmultiadd?null:emptyOption,
emptyKey: (field.typ=="key"?-1:""),
readonly: (foreign.readonly?foreign.readonly:false),
required: params.required
required: params.required,
multi: canmultiadd,
size: 5
});
}
}

View File

@@ -321,6 +321,7 @@ function scaffolding_edit(model, scf_params)
var i = 0;
BLOCK_START(col_id, model.record_title);
var multiadd = scf_params.incsetting && scf_params.incsetting.multiadd; // Dan kunnen we meerdere toevoegen
while (i < col_1_length)
{
var fld = fld_arr[i];
@@ -330,7 +331,7 @@ function scaffolding_edit(model, scf_params)
else if (field.insertonly && key > 0)
scf_ROFIELDTR(model, fld, xxx_data[fld]);
else if (!field.hidden_fld)
scf_RWFIELDTR(model, fld, xxx_data[fld], key);
scf_RWFIELDTR(model, fld, xxx_data[fld], key, { multiadd: multiadd });
i++;
}
BLOCK_END();
@@ -347,7 +348,7 @@ function scaffolding_edit(model, scf_params)
else if (field.insertonly && key > 0)
scf_ROFIELDTR(model, fld, xxx_data[fld]);
else if (!field.hidden_fld)
scf_RWFIELDTR(model, fld, xxx_data[fld], key);
scf_RWFIELDTR(model, fld, xxx_data[fld], key, { multiadd: multiadd });
i++;
}
BLOCK_END();

View File

@@ -31,6 +31,9 @@ function scaffolding_save(model, scf_params)
}
var params = { filter: { "id": key } };
if (!(key > 0))
params.multiadd = scf_params.incsetting.multiadd;
var jsondata = api2.form2JSONdata(model, params, formfields);
params.properties = { extraserie: false,
nameprefix: "k"
@@ -48,9 +51,23 @@ function scaffolding_save(model, scf_params)
{
if ("hook_pre_post" in model)
model.hook_pre_post(params, jsondata);
if (params.multiadd)
{
key = [];
var arr = jsondata[params.multiadd]; // Dit zal dan een Array zijn
for (var i = 0; i < arr.length; i++)
{
jsondata[params.multiadd] = arr[i];
var restresult = model.REST_POST(params, jsondata);
key.push(restresult.key);
}
}
else
{
var restresult = model.REST_POST(params, jsondata);
key = restresult.key;
}
}
var warning = restresult.warning;
var result = { key: key,