111 lines
3.3 KiB
PHP
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));
|
|
}
|
|
%>
|