264 lines
8.6 KiB
Plaintext
264 lines
8.6 KiB
Plaintext
<%@language = "javascript" %>
|
|
<% /*
|
|
$Revision$
|
|
$Id$
|
|
|
|
File: ins_move_multi.asp
|
|
Description: Multi verplaatsen van objecten
|
|
Parameters: ins_keys
|
|
|
|
Context:
|
|
Note:
|
|
|
|
*/ %>
|
|
<!-- #include file="../Shared/common.inc" -->
|
|
<!-- #include file="../Shared/iface.inc" -->
|
|
<!-- #include file="../Shared/save2db.inc" -->
|
|
<!-- #include file="../Shared/afdelingselector.inc" -->
|
|
<!-- #include file="../Shared/persoonselector.inc" -->
|
|
<!-- #include file="../Shared/plaatsselector.inc" -->
|
|
<!-- #include file="ins.inc" -->
|
|
|
|
<%
|
|
FCLTHeader.Requires({ plugins:["suggest", "jQuery"]
|
|
, js: ["../ins/bind.js"]
|
|
});
|
|
|
|
var urole = getQParamSafe("urole");
|
|
var fronto = urole == "fo";
|
|
var backo = urole == "bo";
|
|
var minfo = urole == "mi";
|
|
var frontend = (!fronto && !backo && !minfo);
|
|
var autfunction = urole == "fo"? "WEB_INSFOF" : "WEB_INSMAN";
|
|
var authparams = user.checkAutorisation(autfunction); // Nog nodig voor FCLTplaatsselector
|
|
|
|
var ins_key_arr = getQParamIntArray("ins_keys");
|
|
var tobemoved = 0;
|
|
var ingesloten = [];
|
|
// Bepaal de objecten in de selectie die ook echt gewijzigd kunnen of mogen worden.
|
|
for (var i = 0; i < ins_key_arr.length; i++)
|
|
{
|
|
var this_ins = ins.func_enabled_deel(ins_key_arr[i]);
|
|
if (this_ins.canChange)
|
|
{
|
|
ingesloten.push(ins_key_arr[i]);
|
|
tobemoved++;
|
|
}
|
|
}
|
|
user.anything_todo_or_abort(tobemoved > 0); // We klagen niet over enkele wel en enkele niet
|
|
%>
|
|
|
|
<html>
|
|
<head>
|
|
<% FCLTHeader.Generate(); %>
|
|
|
|
<script type="text/javascript">
|
|
async function ins_submit()
|
|
{
|
|
if (!await validateForm("u2"))
|
|
return false;
|
|
|
|
$.post( $("form[name=u2]")[0].action
|
|
, $("[name=u2]").serialize()
|
|
, FcltCallbackAndThenAlways(ins_submit_callback)
|
|
, "json"
|
|
);
|
|
return true; // disable button
|
|
}
|
|
|
|
function ins_submit_callback(json)
|
|
{
|
|
iface.button.enable("btn_move_submit");
|
|
if (json.success)
|
|
FcltMgr.closeDetail(window, json);
|
|
}
|
|
|
|
function ins_cancel()
|
|
{
|
|
FcltMgr.closeDetail(window, { cancel: true } );
|
|
}
|
|
|
|
function onChangeAfdeling(p_key)
|
|
{
|
|
if (p_key > 0)
|
|
{
|
|
setBind("A");
|
|
$("#locatie").removeClass("required");
|
|
}
|
|
}
|
|
function onChangePersoon(p_key)
|
|
{
|
|
if (p_key > 0)
|
|
{
|
|
setBind("P");
|
|
$("#locatie").removeClass("required");
|
|
}
|
|
}
|
|
|
|
function change1()
|
|
{ // plaats: gebouw/terrein
|
|
setBind('T');
|
|
$("#locatie").addClass("required");
|
|
}
|
|
|
|
function change2(p_key)
|
|
{ // plaats: ruimte
|
|
setBind('R');
|
|
$("#locatie").addClass("required");
|
|
}
|
|
|
|
function change3(p_key)
|
|
{ // plaats: werkplek
|
|
setBind('W');
|
|
$("#locatie").addClass("required");
|
|
}
|
|
</script>
|
|
</head>
|
|
|
|
|
|
<body class="fclt-modal" id="mod_insmultiMove">
|
|
<% MODAL_START(); %>
|
|
<%
|
|
var srtdeel_binding = 0xFF; // Veronderstel nog even dat alles mag
|
|
var maxlevel = 3;
|
|
var change = "";
|
|
|
|
sql = "SELECT DISTINCT sd.ins_srtdeel_binding"
|
|
+ " FROM ins_srtdeel SD"
|
|
+ " , ins_deel D"
|
|
+ " WHERE D.ins_srtdeel_key = SD.ins_srtdeel_key"
|
|
+ " AND D.ins_deel_key IN (" + ingesloten.join(",") + ")";
|
|
oRs = Oracle.Execute(sql);
|
|
while (!oRs.eof)
|
|
{ // bitwise and om alleen de overeenkomstige bindings over te houden.
|
|
srtdeel_binding = srtdeel_binding & oRs("ins_srtdeel_binding").value;
|
|
oRs.MoveNext();
|
|
}
|
|
oRs.close();
|
|
|
|
var heeftPlaats = (srtdeel_binding & (BIND_RUIMTE | BIND_WERKPL | BIND_TERREI));
|
|
var heeftAfdeling = (srtdeel_binding & (BIND_AFDELI));
|
|
var heeftPersoon = (srtdeel_binding & (BIND_PERSOO));
|
|
var heeftDeel = (srtdeel_binding & (BIND_INSDEE));
|
|
|
|
var change = "";
|
|
if (srtdeel_binding & (BIND_TERREI | BIND_RUIMTE | BIND_WERKPL))
|
|
{
|
|
change = "change1()";
|
|
maxlevel = 2;
|
|
}
|
|
if (srtdeel_binding & (BIND_RUIMTE | BIND_WERKPL))
|
|
{
|
|
change = "change2()";
|
|
maxlevel = 5;
|
|
}
|
|
if (srtdeel_binding & (BIND_WERKPL))
|
|
{
|
|
change = "change3()";
|
|
maxlevel = 6;
|
|
}
|
|
%>
|
|
<form name="u2"
|
|
action="ins_move_deel_multi_save.asp?urole=<%=urole%>&ins_keys=<%=ingesloten.join(",")%>"
|
|
method="post">
|
|
<%
|
|
MODAL_BLOCK_START("insMultiMove", L("lcl_select_locatie"), { icon: "fa-map-marker" })
|
|
|
|
if (heeftAfdeling)
|
|
{
|
|
FCLTafdelingselector( "afdelingkey"
|
|
, "sDept"
|
|
, { departmentKey: null
|
|
, label: L("lcl_prs_organisatie")
|
|
, autlevel: authparams.PRSwritelevel
|
|
, onChange: "onChangeAfdeling"
|
|
}
|
|
);
|
|
}
|
|
else
|
|
{
|
|
Response.Write("<input type='hidden' id='afdelingkey' name='afdelingkey' value='-1'/>");
|
|
}
|
|
|
|
if (heeftPersoon)
|
|
{
|
|
FCLTpersoonselector( "persoonkey"
|
|
, "sgPerson"
|
|
, { perslidKey: null
|
|
, label: L("lcl_name")
|
|
, autlevel: authparams.PRSwritelevel
|
|
, onChange: "onChangePersoon"
|
|
}
|
|
);
|
|
}
|
|
else
|
|
{
|
|
Response.Write("<input type='hidden' id='persoonkey' name='persoonkey' value='-1'/>");
|
|
}
|
|
|
|
if (heeftPlaats)
|
|
{
|
|
FCLTplaatsselector( authparams.ALGreadlevel
|
|
, { terrein: true
|
|
, startlevel: 2 /*locatie*/
|
|
, eindlevel: maxlevel
|
|
, terrein: (srtdeel_binding & BIND_TERREI)
|
|
, requiredlevel: 2
|
|
, filtercode: "INCVR"
|
|
, onLocChange: change
|
|
, escalateOnChUp: true
|
|
}
|
|
);
|
|
|
|
if (S("fg_ins_symbols"))
|
|
{
|
|
// zijn er objecten met coordinaten?
|
|
var sql = "SELECT count(*) aantal"
|
|
+ " FROM ins_deel"
|
|
+ " WHERE ins_deel_dwgx IS NOT NULL"
|
|
+ " AND ins_deel_key IN (" + ingesloten.join(",") + ")";
|
|
var oRs = Oracle.Execute(sql);
|
|
if (oRs("aantal").Value > 0)
|
|
{
|
|
RWCHECKBOXTR("wis_grafisch", "fldcheck", L("lcl_ins_deel_wisgrafisch"), 1); // default wissen
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Response.Write("<input type='hidden' id='locatiekey' name='locatiekey' value='-1'>");
|
|
Response.Write("<input type='hidden' id='gebouwkey' name='gebouwkey' value='-1'>");
|
|
Response.Write("<input type='hidden' id='verdiepingkey' name='verdiepingkey' value='-1'>");
|
|
Response.Write("<input type='hidden' id='ruimtekey' name='ruimtekey' value='-1'>");
|
|
Response.Write("<input type='hidden' id='werkplekkey' name='werkplekkey' value='-1'>");
|
|
}
|
|
|
|
if (!heeftAfdeling && !heeftPersoon && !heeftPlaats)
|
|
{
|
|
var alle_binding = [L("lcl_obj_bind_a"), L("lcl_obj_bind_p"), L("alg_locatie")];
|
|
var geen_binding = L("lcl_obj_bind_none").format(alle_binding.join(" "+L("lcl_fac_api_of")+" "));
|
|
%>
|
|
<tr>
|
|
<td><%=safe.jsstring(geen_binding)%></td>
|
|
</tr>
|
|
<%
|
|
}
|
|
MODAL_BLOCK_END();
|
|
|
|
var buttons = [];
|
|
if (heeftAfdeling || heeftPersoon || heeftPlaats)
|
|
{
|
|
buttons.push({title: L("lcl_submit"), action:"ins_submit()", icon: "fa-fclt-save", singlepress: true, id: "btn_move_submit", importance: 1});
|
|
}
|
|
buttons.push({title: L("lcl_cancel"), action:"ins_cancel()", icon: "fa-fclt-cancel" , importance: 3});
|
|
SIMPLE_BLOCK_START();
|
|
CreateButtons(buttons);
|
|
SIMPLE_BLOCK_END();
|
|
IFACE.FORM_END();
|
|
%>
|
|
</form>
|
|
<% MODAL_END(); %>
|
|
</body>
|
|
</html>
|
|
<% ASPPAGE_END(); %>
|