Files
Facilitor/APPL/SCF/scaffolding_save.inc
Jos Groot Lipman 2801cf6dfa FSN#39638 Bulk bewerken via scaffolding
svn path=/Website/trunk/; revision=32930
2017-02-23 19:57:07 +00:00

111 lines
3.3 KiB
PHP

<% /*
$Revision$
$Id$
File: scaffolding_save.asp
Description: save information from scaffolding_edit.asp
Parameters:
Context:
Note:
*/
function scaffolding_save(model, scf_params)
{
protectRequest.validateToken();
var key = getQParamInt( "id" );
var multi = getFParamInt( "scf_multi", 0 ) == 1;
var formfields = [];
for (var fld in model.fields)
{
var field = model.fields[fld];
if (fld == "id")
continue;
if (fld.readonly)
continue;
if (field.insertonly && key > 0)
continue;
formfields.push({ name: fld, frm: fld });
}
var params = { filter: { "id": key } };
if (!(key > 0))
params.multiadd = scf_params.incsetting && scf_params.incsetting.multiadd;
var jsondata = api2.form2JSONdata(model, params, formfields);
params.properties = { extraserie: false,
nameprefix: "k"
};
if (model.includes && "custom_fields" in model.includes)
jsondata.custom_fields = flexkenmerken2jsondata(params.properties);
if (multi)
{
var anyleft = false;
for (var fld in jsondata) // Alle velden waar ons vinkje niet voor stond slaan we niet op
{
var cb_name = "scf_multi_" + fld;
if (getFParam(cb_name, "off") != "on")
delete jsondata[fld];
else
anyleft = true;
}
var key = getFParamIntArray("scf_multi_id"); // voor resultaat
if (anyleft)
{
var keys = getFParamIntArray("scf_multi_id");
for (var i = 0; i < keys.length; i++)
{
var restresult = model.REST_PUT(params, jsondata, keys [i]);
}
}
else
var restresult = { toaster: L("lcl_scf_no_changes") };
}
else if (key > 0)
{
if ("hook_pre_put" in model)
model.hook_pre_put(params, jsondata, key);
var restresult = model.REST_PUT(params, jsondata, key);
}
else
{
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
if (arr)
for (var i = 0; i < arr.length; i++)
{
if (arr[i] > 0)
{
jsondata[params.multiadd] = arr[i];
var restresult = model.REST_POST(params, jsondata);
key.push(restresult.key);
}
}
else
restresult = {};
}
else
{
var restresult = model.REST_POST(params, jsondata);
key = restresult.key;
}
}
var result = { key: key,
warning: restresult.warning,
toaster: restresult.toaster,
keepForm: !!restresult.warning,
success: true };
Response.ContentType = "application/json";
Response.Write(JSON.stringify(result));
}
%>