FSN#39638 Bulk bewerken via scaffolding
svn path=/Website/trunk/; revision=32930
This commit is contained in:
@@ -305,7 +305,7 @@ function validateForm(fName, params)
|
||||
if (params.checkOnly) // slechts enkele velden controleren
|
||||
jqcheckonly = "#" + params.checkOnly.join(",#");
|
||||
var jqchecknot="";
|
||||
if (params.checkNot) // Deze velden niet meer controleren
|
||||
if (params.checkNot && params.checkNot.length) // Deze velden niet meer controleren
|
||||
jqchecknot = "#" + params.checkNot.join(",#");
|
||||
|
||||
if (params.relaxed)
|
||||
|
||||
@@ -146,7 +146,7 @@ function scaffolding_edit(model, scf_params)
|
||||
if ("hook_pre_edit" in model && !multi)
|
||||
model.hook_pre_edit(xxx_data, model.fields);
|
||||
|
||||
var modal = model.edit.modal || scf_params.edit && scf_params.edit.modal; // dan doen we een detailrecord altijd modal
|
||||
var modal = multi || model.edit.modal || scf_params.edit && scf_params.edit.modal; // dan doen we een detailrecord altijd modal
|
||||
if (key < 0 && scf_params.edit && scf_params.edit.addmodal)
|
||||
modal = true;
|
||||
%>
|
||||
@@ -165,7 +165,18 @@ function scaffolding_edit(model, scf_params)
|
||||
|
||||
function scf_submit()
|
||||
{
|
||||
if (!validateForm("u2"))
|
||||
var params = { };
|
||||
<% if (multi) { %>
|
||||
// Alleen de velden controleren waar het vinkje voor aan staat
|
||||
params.checkNot = [];
|
||||
$("input[type=text],input[type=checkbox],input[type=number],select").not("[name^=scf_multi]").each(function() {
|
||||
var thisname = $(this).attr("name");
|
||||
var cb_name = "scf_multi_" + thisname;
|
||||
if (!$("input[name=" + cb_name + "]").is(":checked"))
|
||||
params.checkNot.push(thisname);
|
||||
});
|
||||
<% } %>
|
||||
if (!validateForm("u2", params))
|
||||
return false;
|
||||
|
||||
if (typeof pre_submit != "undefined")
|
||||
@@ -257,7 +268,7 @@ function scaffolding_edit(model, scf_params)
|
||||
{
|
||||
$('textarea').resize(function () { FcltMgr.resized(window) });
|
||||
$('textarea').autogrow();
|
||||
<% if (multi) {
|
||||
<% if (multi) {
|
||||
// Overal een vinkje voorzetten
|
||||
%>
|
||||
$("input[type=text],input[type=checkbox],select").each(function() {
|
||||
@@ -333,10 +344,13 @@ function scaffolding_edit(model, scf_params)
|
||||
{
|
||||
var field = model.fields[fld];
|
||||
if (field.sql)
|
||||
continue; // weinig aan te beweken
|
||||
continue; // weinig aan te bewerken
|
||||
|
||||
if (multi)
|
||||
field.required = false;
|
||||
if (multi && !field.multiedit)
|
||||
{
|
||||
delete model.fields[fld]; // Die is niet multi-edit enabled
|
||||
continue;
|
||||
}
|
||||
|
||||
if (field.hidden_fld || (field.readonly && !(key > 0)))
|
||||
{ // Eerst de hidden velden.
|
||||
|
||||
@@ -57,12 +57,14 @@ function scaffolding_list(model, scf_params)
|
||||
}
|
||||
|
||||
var default_url = model.list.default_url;
|
||||
var modal_url = scf_params.this_fullpath + "?mode=edit" + transit + "&id={0}"
|
||||
|
||||
if (!default_url &&
|
||||
"id" in model.fields &&
|
||||
("show" in model || "show" in scf_params || model["REST_PUT"] || model["REST_DELETE"]))
|
||||
{
|
||||
if (modal)
|
||||
default_url = scf_params.this_fullpath + "?mode=edit" + transit + "&id=";
|
||||
default_url = modal_url;
|
||||
else
|
||||
default_url = scf_params.this_path + "?mode=wrap" + transit + "&id=";
|
||||
}
|
||||
@@ -123,7 +125,7 @@ function scaffolding_list(model, scf_params)
|
||||
function scf_multiedit(rowArray, isMulti)
|
||||
{
|
||||
var scfKeyString = getKeyString(rowArray);
|
||||
var url = "<%= default_url %>".format(scfKeyString) + "&scf_multi=1";
|
||||
var url = "<%= modal_url %>".format(scfKeyString) + "&scf_multi=1";
|
||||
FcltMgr.openModalDetail(url, scfKeyString.split(",").length + " " + "<%=safe.jsstring(model.records_title)%>", { callback: scf_reload });
|
||||
}
|
||||
|
||||
@@ -238,10 +240,13 @@ function scaffolding_list(model, scf_params)
|
||||
}
|
||||
|
||||
// Uniques misbruiken we om een intelligentere tabelkop te kunnen maken
|
||||
// Ook kijken of we multiedit moeten aanbieden
|
||||
var multiedit = false;
|
||||
var title = model.records_title;
|
||||
for (var fld in model.fields)
|
||||
{
|
||||
var field = model.fields[fld];
|
||||
multiedit = multiedit || field.multiedit;
|
||||
if (field.uniquewith && fld in filter) // Dan de andere waarde tonen als tabel
|
||||
{
|
||||
// Eigenlijk willen we de records_title van de andere tabel.
|
||||
@@ -466,7 +471,7 @@ function scaffolding_list(model, scf_params)
|
||||
if (model.REST_DELETE)
|
||||
rst.addAction({ action: "scf_delete", caption: L("lcl_delete"), multi: true, onlyMulti: true, multiOnce: true } );
|
||||
|
||||
if (model.REST_PUT && model.edit && model.edit.modal)
|
||||
if (model.REST_PUT && multiedit)
|
||||
rst.addAction({ action: "scf_multiedit", caption: L("lcl_change"), multi: true, onlyMulti: true, multiOnce: true } );
|
||||
|
||||
var cnt = rst.processResultset();
|
||||
|
||||
@@ -44,17 +44,26 @@ function scaffolding_save(model, scf_params)
|
||||
|
||||
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 keys = getFParamIntArray("scf_multi_id");
|
||||
for (var i = 0; i < keys.length; i++)
|
||||
var key = getFParamIntArray("scf_multi_id"); // voor resultaat
|
||||
if (anyleft)
|
||||
{
|
||||
var restresult = model.REST_PUT(params, jsondata, keys [i]);
|
||||
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)
|
||||
{
|
||||
@@ -89,11 +98,11 @@ function scaffolding_save(model, scf_params)
|
||||
key = restresult.key;
|
||||
}
|
||||
}
|
||||
var warning = restresult.warning;
|
||||
|
||||
var result = { key: key,
|
||||
warning: warning,
|
||||
keepForm: !!warning,
|
||||
warning: restresult.warning,
|
||||
toaster: restresult.toaster,
|
||||
keepForm: !!restresult.warning,
|
||||
success: true };
|
||||
Response.ContentType = "application/json";
|
||||
Response.Write(JSON.stringify(result));
|
||||
|
||||
Reference in New Issue
Block a user