Files
Facilitor/APPL/ALG/alg_edit_gebouw_multi.asp
Alex Tiehuis ed68afe48e AAIT#54525 Mogelijkheid multi-actie bij gebouwen
svn path=/Website/trunk/; revision=39922
2018-11-22 13:52:13 +00:00

215 lines
9.5 KiB
Plaintext

<%@language = "javascript" %>
<% /*
$Revision$
$Id$
File: alg_edit_gebouw_multi.asp
Description: Multi editten van gebouwen
Parameters: key
Context: alg_gebouw_search_list.asp
Note: De minimale multi-edit velden
*/ %>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="../Shared/save2db.inc" -->
<!-- #include file="../Shared/persoonselector.inc" -->
<!-- #include file="../Shared/kostenplaatsselector.inc" -->
<!-- #include file="alg.inc" -->
<%
FCLTHeader.Requires({ plugins:["suggest", "jQuery", "kenmerk"] });
var bld_key_arr = getQParamIntArray("bld_keys");
var submitting = getQParamInt("submit", 0) == 1;
var warning = "";
var result = {};
var tobeedited = 0;
var ingesloten = [];
// Bepaal de gebouwen in de selectie die
// ook echt gewijzigd kunnen of mogen worden.
var onrgoedlvl = "G";
for (var i = 0; i < bld_key_arr.length; i++)
{
var this_alg = alg.func_enabled(bld_key_arr[i], onrgoedlvl);
if (this_alg.writeman || this_alg.writeuse)
{
ingesloten.push(bld_key_arr[i]);
tobeedited++;
var last_this_alg = this_alg; // deze gebruiken we voor rechtencontrole. Niet 100% zuiver maar goed genoeg
}
}
user.auth_required_or_abort(ingesloten.length); // We klagen niet over enkele wel en enkele niet
%>
<html>
<head>
<% FCLTHeader.Generate(); %>
<%
if (submitting)
{
var fields = [];
if (Request.Form("prs_kstpl").Count == 1 && getFParam("check_prs_kstpl", "off") == "on")
fields.push({ dbs: "prs_kostenplaats_key", typ: "key", frm: "prs_kstpl", track: L("lcl_prs_dept_kosten"), foreign: "prs_kostenplaats" });
if (Request.Form("verantw").Count == 1 && getFParam("check_verantw", "off") == "on")
fields.push({ dbs: "prs_perslid_key_verantw", typ: "key", frm: "verantw", track: L("lcl_alg_verantw"), foreign: "prs_perslid" });
if (Request.Form("verantw2").Count == 1 && getFParam("check_verantw2", "off") == "on")
fields.push({ dbs: "prs_perslid_key_verantw2", typ: "key", frm: "verantw2", track: L("lcl_alg_verantw2"), foreign: "prs_perslid" });
for (var i = 0; i < ingesloten.length; i++)
{ // Ik mag het object wijzigen dus voer wijziging uit
if (fields.length)
{
var algUpd = buildTrackingUpdate("alg_gebouw", " alg_gebouw_key = " + ingesloten[i], fields);
// Submit the changed data
var err = Oracle.Execute(algUpd.sql, true);
if (err.friendlyMsg)
warning = err.friendlyMsg;
}
else
algUpd = { trackarray: [] };
// /* flextrackarray = */ ins.updateKenmerkdeel(ingesloten[i], {multimode: true});
var update_string = L("lcl_alg_is_alggup") + "\n" + algUpd.trackarray.join("\n");
shared.trackaction("ALGGUP", ingesloten[i], update_string);
}
%> <script type="text/javascript">
$(function()
{
FcltMgr.closeDetail(window, { success: true } )
});
</script>
<% Response.End();
}
%>
<script type="text/javascript">
function alg_submit()
{ // Invoer van velden wordt realtime gevalideerd.
document.forms.u2.submit();
return true; // disable button
}
function alg_cancel()
{
FcltMgr.closeDetail(window, { cancel: true } );
}
</script>
</head>
<body class="modal" id="mod_algmultiedit">
<form name="u2" action="alg_edit_gebouw_multi.asp?submit=1&bld_keys=<%=ingesloten.join(",")%>" method="post">
<%
BLOCK_START("algGebouw", L("lcl_alg_gebouw_frame"));
FCLTkostenplaatsselector( "prs_kstpl",
"prs_kstpl",
user_key,
{ kostenplaatsKey: -1,
label: L("lcl_prs_dept_kosten"),
filtercode: "G",
readonly: !last_this_alg.writeman
});
FCLTpersoonselector("verantw",
"sgVerantw",
{ perslidKey: -1,
label: L("lcl_alg_verantw"),
readonly: !last_this_alg.writeuse,
autlevel: last_this_alg.authparams("WEB_ALGMAN") && last_this_alg.authparams("WEB_ALGMAN").PRSwritelevel
});
FCLTpersoonselector("verantw2",
"sgVerantw2",
{ perslidKey: -1,
label: L("lcl_alg_verantw2"),
readonly: !last_this_alg.writeuse,
autlevel: last_this_alg.authparams("WEB_ALGMAN") && last_this_alg.authparams("WEB_ALGMAN").PRSwritelevel
});
BLOCK_END();
%>
<script type="text/javascript">
function putCheckmarkSuggest(prs_key, prs_txt, obj)
{
thisobj = $("#"+obj.suggestid);
if (thisobj.is(":checkbox"))
var isgevuld = thisobj.is(":checked")
else
var isgevuld = thisobj.val();
if (thisobj.hasClass("flddate"))
var cb_name = "check_" + thisobj.attr("id").substr("show_".length);
else if (thisobj.hasClass("suggest"))
var cb_name = "check_" + thisobj.attr("id").substr(0, thisobj.attr("id").length-5);
else
var cb_name = "check_" + thisobj.attr("name");
$("input[type=checkbox][name=" + cb_name + "]").prop("checked", isgevuld);
// Eventuele andere onChange acties van een selecter hieronder toevoegen.
};
$(function()
{ // Een vinkboxje voor de invoer velden toevoegen.
// Niet een vinkboxje toevoegen voor de flexkenmerken. Dat doet generateFlexKenmerkBlock.listKenmerk wel.
$("input[type=text],input[type=checkbox],input[type=number],input:not([type]),select, textarea").not(".fldtime").not("[class^='fldflex']").not("[class^='fldSflex']").each(
function() {
if ($(this).hasClass("flddate"))
var cb_name = "check_" + $(this).attr("id").substr("show_".length);
else if ($(this).hasClass("suggest"))
var cb_name = "check_" + $(this).attr("id").substr(0, $(this).attr("id").length-5);
else
var cb_name = "check_" + $(this).attr("name");
var cb = $("<input type='checkbox'>").attr("name", cb_name);
var td = $("<td class='multi_cb'></td>").append(cb);
$(this).closest("tr").find(" td.label").before(td);
// Zetten vinkje als je waarde invult
if ($(this).hasClass('suggest'))
{ // Suggest veld: Functie putCheckmarkSuggest() aan sgonchange koppelen.
this.setAttribute("sgonchange", "putCheckmarkSuggest");
}
else if ($(this).hasClass("flddate"))
{
// De FCLTcalendar vervaldatum heeft zijn eigen onChange functie die wordt aangeroepen.
// Geen change functie aan het datum veld koppelen.
}
else
{ // Andere velden dan suggest veld.
$(this).change(function()
{
if ($(this).is(":checkbox"))
var isgevuld = $(this).is(":checked")
else
var isgevuld = $(this).val();
$("input[type=checkbox][name=" + cb_name + "]").prop("checked", isgevuld);
});
}
// Wissen waarde als je vinkje weghaalt
cb.change(function(deze) {
return function() {
if (!$(this).is(":checked"))
$(deze).val("");
else if ($(deze).hasClass("required"))
// Vinkje is aangevinkt en waarde is leeg.
// Als het veld verplicht is het vinkje er weer afhalen.
$(this).prop("checked", false);
}
}(this));
});
});
</script>
<%
var buttons = [];
buttons.push({title: L("lcl_submit"), action:"alg_submit()", singlepress: true, id: "btn_edit_submit"})
buttons.push({title: L("lcl_cancel"), action:"alg_cancel()"})
CreateButtons(buttons)
IFACE.FORM_END();
%>
</form>
</body>
</html>