FSN#35003 Superuser meldingen en opdrachten: FACFAC mag enkele velden *altijd* bewerken

svn path=/Website/trunk/; revision=33705
This commit is contained in:
Jos Groot Lipman
2017-05-04 22:08:30 +00:00
parent 4956bfa986
commit e27f3c9bf3
4 changed files with 74 additions and 8 deletions

View File

@@ -1604,6 +1604,8 @@ function generic_REST_PUT(model, gparams)
var err = Oracle.Execute(xxxUpd.sql, true); var err = Oracle.Execute(xxxUpd.sql, true);
if (err.friendlyMsg) if (err.friendlyMsg)
abort_with_warning(err.friendlyMsg); abort_with_warning(err.friendlyMsg);
if (model.trackcode)
shared.trackaction(model.trackcode, the_key, xxxUpd.trackarray.join("\n"));
} }
var inctrack = api2.process_includes(params, model, jsondata, the_key); var inctrack = api2.process_includes(params, model, jsondata, the_key);

View File

@@ -19,16 +19,75 @@
<% <%
user.checkAutorisation("WEB_FACFAC"); user.checkAutorisation("WEB_FACFAC");
var edit_fields = { "bes_bestelopdr": { "track": null,
"fields": ["bes_bestelopdr_status"]
},
"cnt_contract": { "track": "#CNTUPD",
"fields": ["cnt_contract_status",
"ins_discipline_key",
"cnt_contract_teverzenden"]
},
"fac_tracking": { "track": null,
"fields": ["fac_tracking_datum",
"name",
"fac_tracking_oms",
"prs_perslid_key"]
},
"fin_factuur": { "track": "#FINUPD",
"fields": ["prs_kostensoort_key",
"fin_factuur_statuses_key"]
},
"mld_melding": { "track": "#MLDUPD",
"fields": ["mld_melding_status",
"prs_perslid_key",
"prs_kostenplaats_key"]
},
"mld_opdr": { "track": "#ORDUPD",
"fields": ["mld_typeopdr_key",
"mld_statusopdr_key",
"mld_opdr_teverzenden",
"mld_opdr_verzonden"]
},
"res_rsv_ruimte": { "track": "#RESUPD",
"fields": ["res_status_fo_key",
"res_status_bo_key"]
},
"res_rsv_deel": { "track": "#RESUPD",
"fields": ["res_status_bo_key"]
},
"res_rsv_artikel": { "track": "#RESUPD",
"fields": ["res_status_bo_key"]
}
}
var table = getQParam("table").toUpperCase(); var table = getQParam("table").toUpperCase();
var model = model_generic(table, "WEB_FACFAC"); var model = model_generic(table, "WEB_FACFAC");
if (mode == "show")
delete model.soft_delete;
var params = { "transit": { "table": table }, var params = { "transit": { "table": table },
"show": {} // zodat je kunt doorklikken "show": {} // zodat je kunt doorklikken
}; };
// Meeste velden geforceerd readonly
for (var fld in model.fields)
{
var exception = edit_fields[table.toLowerCase()];
if (fld == model.soft_delete ||
exception && inArray(fld, exception.fields))
{
model.fields[fld].multiedit = !model.fields[fld].foreign;
model.fields[fld].track = true;
model.trackcode = exception.track;
continue;
}
// Anders altijd:
model.fields[fld].readonly = true;
}
if (mode == "show" || mode == "edit" )
delete model.soft_delete;
params.search = {}; params.search = {};
if ("id" in model.fields) if ("id" in model.fields)
{ {
@@ -57,13 +116,11 @@
if ("estimated_rows" in model && model.estimated_rows < S("qp_maxrows")) if ("estimated_rows" in model && model.estimated_rows < S("qp_maxrows"))
params.search.autosearch = true; params.search.autosearch = true;
if (model.nrfields > 10) if (getQParamInt("scf_multi", 0) == 0 && model.nrfields > 10)
params.multicolumn = true; params.multicolumn = true;
model.REST_GET = generic_REST_GET(model); // Toevoegen en delete staan we niet toe
// geforceerd readonly
model.REST_POST = null; model.REST_POST = null;
model.REST_PUT = null;
model.REST_DELETE = null; model.REST_DELETE = null;
scaffolding(model, params); scaffolding(model, params);

View File

@@ -582,6 +582,7 @@ function scf_RWFIELDTR(model, fld, val, key, params)
{ {
switch (field.typ) switch (field.typ)
{ {
case "key": params.datatype = "number"; break; // Voor mgt_generic soms
case "varchar": params.datatype = "text"; break; case "varchar": params.datatype = "text"; break;
case "number": case "number":
case "float": params.datatype = field.typ; break; case "float": params.datatype = field.typ; break;

View File

@@ -183,6 +183,9 @@ function scaffolding_edit(model, scf_params)
params.checkNot = []; params.checkNot = [];
$("input[type=text],input[type=checkbox],input[type=number],select").not("[name^=scf_multi]").each(function() { $("input[type=text],input[type=checkbox],input[type=number],select").not("[name^=scf_multi]").each(function() {
var thisname = $(this).attr("name"); var thisname = $(this).attr("name");
if (!thisname) // Veel te ingewikkeld met datumvelden, die controleren we multi nooit
return;
var cb_name = "scf_multi_" + thisname; var cb_name = "scf_multi_" + thisname;
if (!$("input[name=" + cb_name + "]").is(":checked")) if (!$("input[name=" + cb_name + "]").is(":checked"))
params.checkNot.push(thisname); params.checkNot.push(thisname);
@@ -283,8 +286,11 @@ function scaffolding_edit(model, scf_params)
<% if (multi) { <% if (multi) {
// Overal een vinkje voorzetten // Overal een vinkje voorzetten
%> %>
$("input[type=text],input[type=checkbox],input[type=number],select").each(function() { $("input[type=text],input[type=checkbox],input[type=number],select").not(".fldtime").each(function() {
var cb_name = "scf_multi_" + $(this).attr("name"); if ($(this).hasClass('flddate'))
var cb_name = "scf_multi_" + $(this).attr("id").substr("show_".length);
else
var cb_name = "scf_multi_" + $(this).attr("name");
var cb = $("<input type='checkbox'>").attr("name", cb_name); var cb = $("<input type='checkbox'>").attr("name", cb_name);
var td = $("<td class='multi_cb'></td>").append(cb); var td = $("<td class='multi_cb'></td>").append(cb);
$(this).closest("tr").find("td.label").before(td); $(this).closest("tr").find("td.label").before(td);