939 lines
50 KiB
HTML
939 lines
50 KiB
HTML
<% /*
|
|
$Revision$
|
|
$Id$
|
|
|
|
File: opdr_plan.inc
|
|
Description: Definieert de serverside functie opdr_plan() die een planbord van opdrachten toont die
|
|
voldoen aan de gegeven parameters/criteria.
|
|
Zoals altijd wordt hierbij wel autorisatie betrokken,
|
|
maar verder geen contextafhankelijke zaken; dat behoort de aanroeper te doen.
|
|
Parameters:
|
|
Context: vanuit opdr_search_list.asp
|
|
Note:
|
|
*/ %>
|
|
|
|
<!-- #include file="../Shared/iface.inc" -->
|
|
<!-- #include file="../Shared/discx3d.inc" -->
|
|
<!-- #include file="../Shared/json2.js" -->
|
|
<!-- #include file="../mld/mld.inc" -->
|
|
|
|
<%
|
|
FCLTHeader.Requires({plugins: ["jQuery"],
|
|
js: ["./mld.js",
|
|
"jquery-ui.js"], // Voor het slepen.
|
|
css: ["../mld/mld.css"]
|
|
});
|
|
|
|
// Om planbord kaarten in een kaartenbak te groeperen.
|
|
var __cardboxactive__ = false;
|
|
function CARDBOX_START(id, params)
|
|
{
|
|
params = params || {};
|
|
if (__cardboxactive__) ERROR_NESTED_BLOCK_START_DETECTED;
|
|
__cardboxactive__ = true;
|
|
%><!-- CARDBOX_START <%=id%> -->
|
|
<td><div id="<%=id%>" style="display:inline-block" class="fcltcardbox <%=params.cardclass? params.cardclass : ""%>" <%=params.hidden? ' style="display:none"' : ''%> <%=params.html? " " + params.html : ""%>><%
|
|
}
|
|
function CARDBOX_END()
|
|
{
|
|
if (!__cardboxactive__) ERROR_BLOCK_END_WITHOUT_BLOCKSTART;
|
|
__cardboxactive__ = false;
|
|
%></div></td>
|
|
<!-- CARDBOX_END --><%
|
|
}
|
|
|
|
// Om velden in een planbord kaart te groeperen.
|
|
var __cardactive__ = false;
|
|
function CARD_START(id, params)
|
|
{
|
|
params = params || {};
|
|
if (__cardactive__) ERROR_NESTED_BLOCK_START_DETECTED;
|
|
__cardactive__ = true;
|
|
%><!-- CARD_START <%=id%> -->
|
|
<div id="<%=id%>" class="fcltcard <%=params.cardclass? params.cardclass : ""%>" <%=params.hidden? ' style="display:none"' : ''%> <%=params.html? " " + params.html : ""%>>
|
|
<table class="fcltcardtab" width="100%"><%
|
|
}
|
|
function CARD_END()
|
|
{
|
|
if (!__cardactive__) ERROR_BLOCK_END_WITHOUT_BLOCKSTART;
|
|
__cardactive__ = false;
|
|
%> </table>
|
|
</div>
|
|
<!-- CARD_END --><%
|
|
}
|
|
|
|
function opdr_plan(params)
|
|
{
|
|
var urole = params.urole;
|
|
var fronto = (urole == "fo");
|
|
var backo = (urole == "bo");
|
|
var frontend = (urole == "fe");
|
|
var bgtmode = (urole == "bgt");
|
|
|
|
// Voor resulttable de globalen zetten; zou ng anders moeten.
|
|
var outputmode = params.outputmode; // print to 0 = screen, 1 = printer, 2 = excel, etc.
|
|
var isPrinting = (outputmode == 1 || outputmode == 5);
|
|
var isExcel = (outputmode == 2 || outputmode == 6);
|
|
var showAll = params.showall;
|
|
|
|
var mld_key = params.mld_key;
|
|
|
|
var mldstpen = params.mldstpen;
|
|
var mldstnew = params.mldstnew;
|
|
var mldsting = params.mldsting;
|
|
var mldstacc = params.mldstacc;
|
|
var mldstuit = params.mldstuit;
|
|
var mldstrej = params.mldstrej;
|
|
var mldstafm = params.mldstafm;
|
|
var mldstver = params.mldstver;
|
|
var mldnieto = params.mldnieto;
|
|
var mldopdrstrej = params.mldopdrstrej;
|
|
var mldopdrstnak = params.mldopdrstnak;
|
|
var mldopdrsttfi = params.mldopdrsttfi;
|
|
var mldopdrstfia = params.mldopdrstfia;
|
|
var mldopdrstuit = params.mldopdrstuit;
|
|
var mldopdrstafm = params.mldopdrstafm;
|
|
var mldopdrstver = params.mldopdrstver;
|
|
var mldopdrstacp = params.mldopdrstacp;
|
|
var mldopdrstafr = params.mldopdrstafr;
|
|
var mldopdrstgoe = params.mldopdrstgoe;
|
|
|
|
var showstatus = "";
|
|
if (mldstpen) showstatus = (showstatus == ""? "" : showstatus + ",") + "0";
|
|
if (mldstrej) showstatus = (showstatus == ""? "" : showstatus + ",") + "1";
|
|
if (mldstnew) showstatus = (showstatus == ""? "" : showstatus + ",") + "2";
|
|
if (mldsting) showstatus = (showstatus == ""? "" : showstatus + ",") + "3";
|
|
if (mldstacc) showstatus = (showstatus == ""? "" : showstatus + ",") + "4";
|
|
if (mldstafm) showstatus = (showstatus == ""? "" : showstatus + ",") + "5";
|
|
if (mldstver) showstatus = (showstatus == ""? "" : showstatus + ",") + "6";
|
|
if (mldstuit) showstatus = (showstatus == ""? "" : showstatus + ",") + "7";
|
|
if (mldnieto) showstatus = (showstatus == ""? "" : showstatus + ",") + "99";
|
|
var from_mld = (showstatus != "");
|
|
params.showstatus = showstatus;
|
|
params.from_mld = from_mld;
|
|
|
|
var showopdrstatus = "";
|
|
if (mldopdrstrej) showopdrstatus = (showopdrstatus == ""? "" : showopdrstatus + ",") + "1";
|
|
if (mldopdrstnak) showopdrstatus = (showopdrstatus == ""? "" : showopdrstatus + ",") + "2";
|
|
if (mldopdrsttfi) showopdrstatus = (showopdrstatus == ""? "" : showopdrstatus + ",") + "3"; // Verderop wordt wel bepaald of 'b2' status 3 mag zien
|
|
if (mldopdrstfia) showopdrstatus = (showopdrstatus == ""? "" : showopdrstatus + ",") + "4";
|
|
if (mldopdrstuit) showopdrstatus = (showopdrstatus == ""? "" : showopdrstatus + ",") + "5";
|
|
if (mldopdrstafm) showopdrstatus = (showopdrstatus == ""? "" : showopdrstatus + ",") + "6";
|
|
if (mldopdrstver) showopdrstatus = (showopdrstatus == ""? "" : showopdrstatus + ",") + "7";
|
|
if (mldopdrstacp) showopdrstatus = (showopdrstatus == ""? "" : showopdrstatus + ",") + "8";
|
|
if (mldopdrstafr) showopdrstatus = (showopdrstatus == ""? "" : showopdrstatus + ",") + "9";
|
|
if (mldopdrstgoe) showopdrstatus = (showopdrstatus == ""? "" : showopdrstatus + ",") + "10"; // Verderop wordt wel bepaald of 'b2' status 10 mag zien
|
|
params.showopdrstatus = showopdrstatus;
|
|
params.mldopdrstrej = mldopdrstrej;
|
|
params.mldopdrstafm = mldopdrstafm;
|
|
params.mldopdrstver = mldopdrstver;
|
|
|
|
//var groepering_key = params.groepering_key; // Voor maninfo. 2 en 16 ondersteund
|
|
|
|
params.uitvoerder = false;
|
|
if (frontend)
|
|
{
|
|
// Dan zijn het alleen opdrachten van *mijn* meldingen waarop ik MLDUSE-read rechten heb
|
|
// en van het type waarbij mld_typeopdr_zichtbaarfe = 1 als ik een mld_key heb
|
|
// Omdat uitsluitend vanuit subframe van mld_melding wordt aangeroepen in deze mode veronderstellen we dat geregeld.
|
|
// OF het zijn de opdrachten waarvan ik uitvoerende ben (MLDORD)
|
|
if (mld_key)
|
|
var pautfunction = "WEB_MLDUSE";
|
|
else
|
|
{
|
|
var pautfunction = "WEB_MLDORD";
|
|
params.uitvoerder = true;
|
|
}
|
|
}
|
|
else if (from_mld)
|
|
var pautfunction = ["WEB_ORDBO2","WEB_ORDBOF"];
|
|
else if (urole == 'b2')
|
|
var pautfunction = "WEB_ORDBO2";
|
|
else if (urole == 'bgt')
|
|
var pautfunction = "WEB_BGTORD";
|
|
else
|
|
var pautfunction = "WEB_ORDBOF";
|
|
|
|
// De functie checkAutorisation(autfunction) geeft een Response.End indien er geen autorisatie voor autfunction wordt gevonden
|
|
var authparams = user.checkAutorisation(pautfunction);
|
|
|
|
if (mld_key)
|
|
{ // Bestaat de gezochte melding?
|
|
var sql = "SELECT '1' FROM mld_melding WHERE mld_melding_key = " + mld_key;
|
|
oRs = Oracle.Execute(sql);
|
|
if (!oRs.eof)
|
|
{ // Melding bestaat. Dan kan de info opgevraagd worden.
|
|
var mld_melding = mld.mld_melding_info(mld_key);
|
|
lcl.set_dialect(mld_melding.srtdisc, "MLD_SRTDISCIPLINE_KEY");
|
|
// Moet hier eigenlijk niet ook gecontroleerd worden of ik de opdrachten van deze melding wel mag zien?
|
|
// var this_mld = mld.func_enabled_melding(mld_key, {verynew: verynew}); // Wat heb ik zoal aan rechten op deze specifieke melding
|
|
// var hasFOBOread = this_mld.canFOread || this_mld.canBOread;
|
|
}
|
|
}
|
|
%>
|
|
|
|
<html id="planhtml">
|
|
<head>
|
|
<% FCLTHeader.Generate({ outputmode: params.outputmode }); %>
|
|
<script type="text/javascript">
|
|
function sort(pcardboxid)
|
|
{
|
|
var sortableList = $("#" + pcardboxid);
|
|
var listitems = $("div", sortableList);
|
|
|
|
listitems.sort(function (a, b)
|
|
{ // Sorteervolgorde: 1) Active opdrachten (active == 1) bovenaan. Daar zijn ze mee bezig. (Beheerder is ook actief).
|
|
// 2) Onderbroken.
|
|
// 3) Einddatum, wat het eerst klaar moet zijn staat boven aan (kleinste waarde bovenaan).
|
|
// 4) Meldingnummer (A12345/1) (kleinste waarde bovenaan).
|
|
return (($(a).attr("active") == "1"? "0" : "1") + $(a).attr("halt") + $(a).attr("einddatum") + "/" + $(a).attr("opdracht") > ($(b).attr("active") == "1"? "0" : "1") + $(b).attr("halt") + $(b).attr("einddatum") + "/" + $(b).attr("opdracht")) ? 1 : -1;
|
|
});
|
|
sortableList.append(listitems);
|
|
}
|
|
|
|
var mld_show_cards = <%=S("mld_show_cards")%>;
|
|
function showMaxCards(pcardbehid, pshowall)
|
|
{
|
|
lcard = $("#" + pcardbehid).next();
|
|
lteller = 0;
|
|
while (lcard.length == 1)
|
|
{
|
|
if (lcard.attr("id") == "cardasc" || lcard.attr("id") == "carddesc")
|
|
{
|
|
if ((pshowall && lcard.attr("id") == "cardasc") || (!pshowall && lcard.attr("id") == "carddesc"))
|
|
lcard.show();
|
|
else
|
|
lcard.hide();
|
|
}
|
|
else
|
|
{
|
|
lteller++;
|
|
if (pshowall || lteller <= mld_show_cards)
|
|
lcard.show();
|
|
else
|
|
lcard.hide();
|
|
}
|
|
lcard = lcard.next();
|
|
}
|
|
}
|
|
|
|
var selectedCard;
|
|
var selectedCurrentCard;
|
|
var lastClickedCardboxid;
|
|
var lastClickedCard;
|
|
var received = false;
|
|
var prs_key_received = -1;
|
|
var uitv_key_received = -1;
|
|
var uitv_type_received = "";
|
|
var cardboxid_received = "";
|
|
var selectedCardArray = [];
|
|
$(document).ready(function()
|
|
{
|
|
$("div.cardbox").on("mousedown",
|
|
"div.cardorders",
|
|
function (e)
|
|
{
|
|
if ($(this).hasClass("disable-sort-item"))
|
|
return;
|
|
|
|
var cardboxid_clicked = $(this).parent().attr("id");
|
|
|
|
if (lastClickedCardboxid && lastClickedCardboxid != cardboxid_clicked)
|
|
lastClickedCard = null; // Laatste aangeklikte kaart was in een andere kolom. Dan wordt lastClickedCard null.
|
|
|
|
// Deselecteer alle kaarten van andere rijen.
|
|
$(".ui-sortable div.cardorders").not($(this).parent().find("div.cardorders"), ".legenda").removeClass("selectedcard");
|
|
|
|
if (selectedCurrentCard != undefined &&
|
|
selectedCurrentCard.text() != $(this).text() &&
|
|
!selectedCurrentCard.next("div.cardorders").hasClass("pholder") &&
|
|
selectedCurrentCard.hasClass("selectedcard") &&
|
|
($(this).hasClass("selectedcard") || (e.ctrlKey || e.metaKey))
|
|
)
|
|
{
|
|
// Voeg een clone kaart toe aan de kaart die hiervoor WAS geselecteerd (selectedCurrentCard).
|
|
selectedCurrentCard.after(selectedCurrentCard.clone().removeClass("selectedcard").addClass("pholder").hide());
|
|
}
|
|
|
|
// Als shift key is ingedrukt dan voorgaande geselecteerde kaart tot aangeklikte kaart selecteren.
|
|
if (e.shiftKey)
|
|
{ // Shift key is aan geklikt. Dan alle kaarten selecteren tussen huidige kaart en lastClickedCard.
|
|
// Als lastClickedCard null is dan is de laatste kaart niet in deze kolom aangeklikt.
|
|
if (lastClickedCard == null)
|
|
lastClickedCard = $(this).parents().children("div.cardorders").first(); // De eerste kaart in de kolom.
|
|
|
|
if (lastClickedCard.attr("sortid") < $(this).attr("sortid"))
|
|
{
|
|
start = lastClickedCard;
|
|
end = $(this);
|
|
}
|
|
else
|
|
{
|
|
start = $(this);
|
|
end = lastClickedCard;
|
|
}
|
|
|
|
// Alle kaarten deselecteren en alle clonen verwijderen.
|
|
$(".selectedcard").not(".legenda").removeClass("selectedcard");
|
|
$(".pholder").remove();
|
|
|
|
// Nu de juiste kaarten selecteren.
|
|
var icard = start; // iterator kaarten.
|
|
while (icard.prop("tagName") == "DIV" && icard.attr("sortid") != end.attr("sortid"))
|
|
{
|
|
// Geblokkeerde kaarten en clonen overslaan.
|
|
if (!icard.hasClass("disable-sort-item") && !icard.hasClass("pholder"))
|
|
{
|
|
if (icard.next("div.cardorders").hasClass("pholder"))
|
|
{
|
|
//$(this).next("div.cardorders").remove();
|
|
}
|
|
else
|
|
icard.after(icard.clone().addClass("pholder").hide());
|
|
icard.addClass("selectedcard");
|
|
}
|
|
icard = icard.next();
|
|
}
|
|
icard.after(icard.clone().addClass("pholder").hide());
|
|
icard.addClass("selectedcard");
|
|
}
|
|
else if (e.ctrlKey || e.metaKey)
|
|
{ // Ctrl key is aangeklikt.
|
|
// Verwijder alle clonen van andere rijen.
|
|
$(".ui-sortable div.cardorders.pholder").not($(this).parent().find("div.cardorders")).remove();
|
|
|
|
// Als de kaart al geselecteerd is dan deselecteren, anders alsnog selecteren.
|
|
if ($(this).next("div.cardorders").hasClass("pholder"))
|
|
$(this).next("div.cardorders").remove();
|
|
else
|
|
$(this).after($(this).clone().addClass("pholder").hide());
|
|
$(this).toggleClass("selectedcard");
|
|
}
|
|
else
|
|
{
|
|
// Pas in de mousup alle clonen verwijderen en daarna pas clone van geselecteerde kaart aanmaken.
|
|
// Anders is in de mouseup de $(this) de clone en niet het orgineel.
|
|
}
|
|
|
|
selectedCurrentCard = $(this); // De aangeklikte kaart.
|
|
selectedCard = $(this).clone().removeClass("selectedcard"); // De clone van de aangeklikte kaart.
|
|
|
|
lastClickedCardboxid = cardboxid_clicked;
|
|
lastClickedCard = $(this);
|
|
});
|
|
|
|
$("div.cardbox").on("mouseup",
|
|
"div.cardorders",
|
|
function (e)
|
|
{ // Receive en stop worden na de mousup uitgevoerd.
|
|
if ($(this).hasClass("disable-sort-item"))
|
|
return;
|
|
|
|
if (e.shiftKey || e.ctrlKey || e.metaKey)
|
|
{
|
|
}
|
|
else
|
|
{
|
|
// Deselecteer alle gesleept kopie kaarten, behalve diegene die gesleept/aangeklikt is. Die wordt vanzelf verwijderd/gedeselecteerd.
|
|
$(this).addClass("selectedcard").siblings().removeClass("selectedcard");
|
|
|
|
// Alle clonen verwijdern.
|
|
$(".pholder").remove();
|
|
// Nu wel een clone aanmaken voor de net geselecteerde kaart.
|
|
$(this).after($(this).clone().removeClass("selectedcard").addClass("pholder").hide());
|
|
}
|
|
});
|
|
$("div.cardbox").on("dblclick",
|
|
"div.cardorders",
|
|
function (e)
|
|
{
|
|
var opdr_key_dblclick = $(this).attr("opdr_key");
|
|
var url = "appl/mld/mld_opdr.asp?urole=bo&opdr_key=" + opdr_key_dblclick;
|
|
FcltMgr.openDetail(url, { reuse: true });
|
|
});
|
|
$("div.cardbox").on("dblclick",
|
|
"div.cardbeheerder",
|
|
function (e)
|
|
{
|
|
var uitv_key_dblclick = $(this).attr("uitv_key");
|
|
var prs_key_dblclick = $(this).attr("prs_key");
|
|
if ($(this).hasClass("uitvpi"))
|
|
var url = "appl/prs/prs_perslid.asp?prs_key=" + uitv_key_dblclick;
|
|
else if ($(this).hasClass("uitvbi"))
|
|
var url = "appl/prs/prs_perslid.asp?prs_key=" + (prs_key_dblclick > 0? prs_key_dblclick : uitv_key_dblclick);
|
|
else
|
|
var url = "appl/prs/prs_bedrijf.asp?bedrijf_key=" + uitv_key_dblclick;
|
|
FcltMgr.openDetail(url, { reuse: true });
|
|
});
|
|
$("div.cardbox").on("click",
|
|
"div.cardasc",
|
|
function (e)
|
|
{
|
|
showMaxCards($(this).parent().children(".cardbeheerder").first().attr("id"), false);
|
|
FcltMgr.resized(window);
|
|
window.parent.$("#workFrame").height(window.parent.$("#workFrame").height() + 100);
|
|
});
|
|
$("div.cardbox").on("click",
|
|
"div.carddesc",
|
|
function (e)
|
|
{
|
|
showMaxCards($(this).parent().children(".cardbeheerder").first().attr("id"), true);
|
|
FcltMgr.resized(window);
|
|
window.parent.$("#workFrame").height(window.parent.$("#workFrame").height() + 100);
|
|
});
|
|
});
|
|
|
|
function cardboxbehSortable(uitv_type, uitv_key, prs_key)
|
|
{
|
|
if (uitv_type != "BE")
|
|
{
|
|
$(function() {
|
|
$("#cardboxbeh" + uitv_key + (uitv_type == "BI"? "_" + prs_key : "")).sortable({
|
|
items: '.sortable:not(.disable-sort-item)',
|
|
connectWith: ".cardbox",
|
|
opacity: 0.7,
|
|
cursor: "move",
|
|
delay: 150, // Nodig om te voorkomen dat per ongeluk wordt gesleept, wanneer wordt geprobeerd om te selecteren.
|
|
revert: 0,
|
|
placeholder: "placeholderclass",
|
|
forcePlaceholderSize: true,
|
|
tolerance: "pointer",
|
|
helper: function (e, item)
|
|
{
|
|
// In principe, als je een unhighlighted item sleept, moeten alle andere items geunhighlighted worden.
|
|
// Behalve als de Ctrl of Shift toets ook was ingedrukt.
|
|
if (!item.hasClass("selectedcard"))
|
|
{
|
|
//item.addClass("selectedcard").siblings().removeClass("selectedcard");
|
|
|
|
if (e.shiftKey || e.ctrlKey || e.metaKey)
|
|
{
|
|
}
|
|
else
|
|
{
|
|
// Deselecteer alle gesleept kopie kaarten, behalve diegene die gesleept/aangeklikt is. Die wordt vanzelf verwijderd/gedeselecteerd.
|
|
item.addClass("selectedcard").siblings().removeClass("selectedcard");
|
|
|
|
// Alle clonen verwijdern.
|
|
$(".pholder").remove();
|
|
// Nu wel een clone aanmaken voor de net geselecteerde kaart.
|
|
item.after(item.clone().removeClass("selectedcard").addClass("pholder").hide());
|
|
}
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////////////
|
|
// Nu de geselecteerde kaarten doorgeven aan de "stop()" functie //
|
|
///////////////////////////////////////////////////////////////////
|
|
|
|
// Clone de geselecteerde kaarten in een array elements.
|
|
var elements = item.parent().children(".selectedcard").clone();
|
|
|
|
// Voeg een property "multidrag" met de elements toe aan "item" die de geselecteerde elementen bevat van de orginele/bron lijst.
|
|
item.data("multidrag", elements).siblings(".selectedcard").remove();
|
|
|
|
// De geselecteerde kaarten in het geheugen bestaan nu en zijn aan het "item" is gekoppeld,
|
|
// dus kunnen we ze later benaderen waneer we in de "stop()" callback functie zijn.
|
|
|
|
// Create the helper. De kaarten als een DOM element meegeven.
|
|
var helper = $("<div/>");
|
|
return helper.append(elements);
|
|
},
|
|
start: function (e, ui)
|
|
{ // Wordt uitgevoerd door de bronlijst als het slepen start.
|
|
// De geselecteerde kaarten zijn normaal tijdens het slepen niet meer zichtbaar.
|
|
// Daarom de clonen laten zien. Wel zorgen dat ze dezelfde kleur hebben.
|
|
//ui.item.show(); // Laat de orginele kaart (waar op geklikt is) zien tijdens het slepen.
|
|
$(".pholder").hide(); // Laat de clonen zien.
|
|
},
|
|
stop: function (e, ui)
|
|
{ // Wordt uitgevoerd door de bronlijst als het slepen stopt.
|
|
// Mouseup en receive worden voor de stop uitgevoerd.
|
|
|
|
// De originele highlighted kaart waar op geklikt is verdwijnt vanzelf.
|
|
// De originele highlighted kaarten waar niet op geklikt is, moeten nog verwijderd worden.
|
|
// Ook alle clonen verwijderen.
|
|
|
|
//selectedCard.remove();
|
|
//$(".pholder").remove();
|
|
|
|
// Nu benaderen we de kaarten die we opgeslagen hebben in "item"'s data!
|
|
// Haal de elementen uit de helper.
|
|
var elements = ui.item.data("multidrag");
|
|
var cardbox_src = this;
|
|
|
|
// Met de class "cardmoved" aangeven dat de kaarten zijn verplaatst.
|
|
// Als de kaarten naar de eigen lijst zijn versleept dan class "cardmoved" niet toevoegen
|
|
if (received)
|
|
elements.addClass("cardmoved");
|
|
// "elements" bevat nu de originele geselecteerde items vanuit de orginele lijst (de gesleepte items)!!
|
|
|
|
|
|
// Uiteindelijk voeg ik de geselecteerde items toe achter "het item" (aangeklikte en gesleepte item) in de nieuwe lijst.
|
|
// Daarna "het item" in de lijst verwijderen omdat het net ook (dubbel) is toegevoegd.
|
|
ui.item.after(elements).remove();
|
|
|
|
// Alle kaarten deselecteren. Het (gekopieerde) aangeklikte en gesleepte item (die in elements zat) waren nog geselecteerd.
|
|
// Mocht er een cardnotmoved kaart tussen zitten, dan kan de class er nu weer af.
|
|
$(".selectedcard").not(".legenda").removeClass("selectedcard").removeClass("cardnotmoved");
|
|
|
|
if (received)
|
|
{ // Sorteer de lijst waar de items aan zijn toegevoegd.
|
|
sort(cardboxid_received);
|
|
|
|
// Nu werkelijk de behandelaar aanpassen van de verschoven opdrachten.
|
|
var opdr_key_array = [];;
|
|
for (var i = 0; i < elements.length; i++)
|
|
{
|
|
opdr_key_array.push(elements.eq(i).attr("opdr_key"));
|
|
}
|
|
|
|
// Bepaal de uitv_key en prs_key van de lijst waar de items naar toe worden gekopieerd (destination).
|
|
var uitv_key_dest = uitv_key_received;
|
|
var prs_key_dest = prs_key_received;
|
|
var uitv_type_dest = uitv_type_received;
|
|
var uitv_key_src = uitv_key;
|
|
var prs_key_src = prs_key;
|
|
|
|
var data = { uitv_key: uitv_key_dest,
|
|
prs_key: prs_key_dest,
|
|
uitv_type: uitv_type_dest,
|
|
opdr_key_arr: opdr_key_array.join(",") };
|
|
protectRequest.dataToken(data);
|
|
$.post("../mld/opdr_handlerchange.asp",
|
|
data,
|
|
FcltCallbackAndThen(function (data)
|
|
{
|
|
var notmoved_opdrkeys = [];
|
|
if (data.notmoved != "")
|
|
notmoved_opdrkeys = data.notmoved.split(",");
|
|
for (var i = 0; i < notmoved_opdrkeys.length; i++)
|
|
{
|
|
for (var j = 0; j < elements.length; j++)
|
|
{
|
|
var element_opdrkey = elements[j].id.substr(8); // "opdrcard" eraf halen en je houdt de opdracht key over.
|
|
if (element_opdrkey == notmoved_opdrkeys[i])
|
|
{ // Element terug plaatsen.
|
|
// cardbox_src.lastChild.after(elements[j]); werkt wel voor Firefox maar niet voor IE11.
|
|
// In IE11 is de functie after() niet gedefinieerd als je de lastChild opvraagt.
|
|
// Blijkbaar in IE11 levert lastChild geen jquery object op.
|
|
// Dan maar eerst een jquery object er van maken.
|
|
$("#" + cardbox_src.lastChild.id).after(elements[j]);
|
|
$(cardbox_src.lastChild).removeClass("cardmoved").addClass("cardnotmoved");
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (notmoved_opdrkeys.length > 0)
|
|
{
|
|
sort("cardboxbeh" + uitv_key + (uitv_type == "BI"? "_" + prs_key : ""));
|
|
FcltMgr.alert(L("lcl_opdr_notmovedintern").format(notmoved_opdrkeys.length));
|
|
}
|
|
}),
|
|
"json");
|
|
}
|
|
else
|
|
// Verplaats naar de eigen lijst. Wel weer even sorteren.
|
|
sort("cardboxbeh" + uitv_key + (uitv_type == "BI"? "_" + prs_key : ""));
|
|
received = false;
|
|
},
|
|
receive: function (e, ui)
|
|
{ // Wordt uitgevoerd door de lijst die ontvangt. Wordt niet uitgevoerd als het dezelfde lijst is als de zender.
|
|
// Mouseup en stop worden voor de receive uitgevoerd.
|
|
received = true;
|
|
prs_key_received = prs_key;
|
|
uitv_key_received = uitv_key;
|
|
uitv_type_received = uitv_type;
|
|
cardboxid_received = "cardboxbeh" + uitv_key + (uitv_type == "BI"? "_" + prs_key : "");
|
|
},
|
|
create: function (event, ui)
|
|
{
|
|
sort("cardboxbeh" + uitv_key + (uitv_type == "BI"? "_" + prs_key : ""));
|
|
},
|
|
over: function (event, ui)
|
|
{
|
|
$(".cardbeheerder", this).toggleClass("goto");
|
|
},
|
|
out: function (event, ui)
|
|
{
|
|
$(".cardbeheerder", this).toggleClass("goto");
|
|
},
|
|
sort: function (event, ui)
|
|
{
|
|
//if (!ui.helper.parent().is('body')) {
|
|
// ui.helper.appendTo($('body'));
|
|
//}
|
|
ui.helper.offset(ui.offset); // JQuery bug: helper/placeholder verschuift t.o.v. muis bij scrollable scherm. Deze regel verhelpt dat.
|
|
}
|
|
});
|
|
});
|
|
}
|
|
else
|
|
{
|
|
// Bedrijven Extern (BE) alleen even sorteren en daarna mogen ze niet meer sortable zijn. Minimale sortable code nodig.
|
|
$(function() {
|
|
$("#cardboxbeh" + uitv_key).sortable({
|
|
items: '.sortable:not(.disable-sort-item)',
|
|
create: function (event, ui)
|
|
{
|
|
sort("cardboxbeh" + uitv_key);
|
|
}
|
|
});
|
|
$("#cardboxbeh" + uitv_key).sortable("disable");
|
|
});
|
|
}
|
|
}
|
|
|
|
</script>
|
|
</head>
|
|
|
|
<body id="planbody">
|
|
<%
|
|
var buttons = [];
|
|
buttons.push({ icon: "legenda.png", title: L("lcl_res_legenda"), action: "openLegenda()" });
|
|
// PF: bang van niet.. buttons.push({ icon: "print.png", title: L("lcl_print_table"), action: "opdr_print()" });
|
|
|
|
IFRAMER_HEADER(L("lcl_orders"), buttons);
|
|
%>
|
|
<div id='pbMaxHistoryB'><span id='pbMaxHistoryInfoB'><div></div></span></div>
|
|
<div id="collapseblock">
|
|
<div id="planbodylist"><table><tr>
|
|
<%
|
|
// TODO width van planbodylist gebruiken om horizontale scrollbar te verkrijgen.
|
|
// jquery scrollbar kun je nog gebruiken? jQuery('.textarea-scrollbar').scrollbar();??
|
|
var sql = mld.getopdroverzicht_sql(pautfunction, params);
|
|
oRs = Oracle.Execute(sql);
|
|
|
|
var prs_key = -1; // Melder key.
|
|
var uitv_key = -1;
|
|
var uitv_type = "";
|
|
var olduitv_key = -2;
|
|
var oldprs_key = -2;
|
|
var nrCardBoxes = 0;
|
|
var aantal_int = 0;
|
|
var aantal_ext = 0;
|
|
var nrCardsInCardbox = 0;
|
|
for (var cnt = 0; (cnt < S("qp_maxrows") || showAll) &&
|
|
(cnt < S("qp_maxrows2") || isExcel) && // Naar excel altijd alle regels (meer dan S("qp_maxrows2")) weergeven.
|
|
!oRs.eof; cnt++)
|
|
{
|
|
uitv_key = oRs("uitv_key").Value || -1;
|
|
uitv_type = oRs("uitv_type").Value;
|
|
prs_key = uitv_type == "BI"? oRs("prs_perslid_key").Value || -1 : -1; // Behandelaar
|
|
var opdr_key = oRs("mld_opdr_key").Value;
|
|
var behandelaar = oRs("behandelaar").Value; // Behandelaar
|
|
var B_OF_P = oRs("B_OF_P").Value;
|
|
var uitv_naam = oRs("uitv_naam").Value;
|
|
var opdracht = oRs("ins_srtdiscipline_prefix").Value + oRs("mld_melding_key").Value + "/" + oRs("mld_opdr_bedrijfopdr_volgnr").Value;
|
|
// Voor einddatum de COALESCE van plandatum en einddatum. COALESCE(mld_opdr_plandatum, mld_opdr_einddatum)
|
|
var einddatum = oRs("mld_opdr_plandatum").Value != null? new Date(oRs("mld_opdr_plandatum").Value).getTime() : new Date(oRs("mld_opdr_einddatum").Value).getTime();
|
|
var now = new Date().getTime();
|
|
var mld_statusopdr_key = oRs("mld_statusopdr_key").Value;
|
|
var mld_opdr_omschrijving = oRs("mld_opdr_omschrijving").Value || "";
|
|
var plaatsmelding = oRs("plaatsmelding").Value || "";
|
|
var meldinggroep = oRs("mld_stdmeldinggroep_naam").Value || "";
|
|
var vakgroep = oRs("ins_discipline_omschrijving").Value || "";
|
|
|
|
var uitvclass = uitv_type;
|
|
if (uitv_type == "BE")
|
|
aantal_ext++;
|
|
else
|
|
aantal_int++;
|
|
if (uitv_type == "BI" && prs_key < 0)
|
|
uitvclass = "NT" // Niet Toegewezen.
|
|
|
|
// Ik wil weten of ik de opdracht mag wijzigen.
|
|
// Als de opdracht niet te wijzigen is, dan mag ik deze niet slepen.
|
|
// Een niet te wijzigen opdracht heeft ook een icon "fa-lock" voor het opdrachtnummer.
|
|
// Voor externe bedrijven hoef ik de rechten niet op te vragen. Ik mag toch niet wijzigen/slepen in dit scherm.
|
|
if (uitv_type == "BE")
|
|
var this_opdr = { canChange: false };
|
|
else
|
|
var this_opdr = mld.func_enabled_opdracht(opdr_key); // Wat mag ik zoal op deze opdracht?
|
|
|
|
if ((uitv_type != "BI" && uitv_key != olduitv_key) ||
|
|
(uitv_type == "BI" && (uitv_key != olduitv_key || prs_key != oldprs_key)))
|
|
{
|
|
CARDBOX_START("cardboxbeh" + uitv_key + (uitv_type == "BI"? "_" + prs_key : ""),
|
|
{cardclass: "cardbox cbsortable uitv" + uitvclass.toLowerCase(),
|
|
html: "uitv_key=" + uitv_key + " prs_key=" + (uitv_type == "BI"? prs_key : "-1")
|
|
});
|
|
nrCardBoxes++;
|
|
nrCardsInCardbox = 0;
|
|
%>
|
|
<script type="text/javascript">
|
|
cardboxbehSortable("<%=uitv_type%>", <%=uitv_key%>, <%=prs_key%>);
|
|
</script>
|
|
<%
|
|
CARD_START("cardbeh" + uitv_key + (uitv_type == "BI"? "_" + prs_key : ""),
|
|
{ cardclass: "cardbeheerder uitv" + uitvclass.toLowerCase(),
|
|
html: "uitv_key='" + uitv_key + "' prs_key='" + prs_key + "' opdr_key='-1'" + " einddatum='-1'" + " opdracht='-1' active='1' halt='0'"
|
|
});
|
|
switch(uitv_type)
|
|
{
|
|
case "BI": if (prs_key < 0)
|
|
{ // Niet Toegewezen.
|
|
%> <tr><td><span class="readonly cardname"><%=L("lcl_opdr_unassigned") + " " + safe.html(uitv_naam)%></span></td></tr>
|
|
<% }
|
|
else
|
|
{ // Toegewezen.
|
|
var thisUser = new Perslid(prs_key); // geeft ook handige informatie
|
|
%> <tr>
|
|
<td rowspan="2" class='profile'><img id='photo' class='profile' src='<%=thisUser.photoinfo().photopaththumb %>'></td>
|
|
<td><span class="readonly cardname"><%=safe.html(uitv_naam)%><br><%=safe.html(behandelaar)%></span></td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="readonly cardsubname">
|
|
<%= safe.html(thisUser.prs_srtperslid())%>
|
|
<%= thisUser.prs_perslid_telefoonnr() ? "<br><i class='fa fa-phone'></i> "+safe.html(thisUser.prs_perslid_telefoonnr()) : "" %>
|
|
</span></td>
|
|
</tr>
|
|
<%
|
|
}
|
|
break;
|
|
case "PI": var thisUser = new Perslid(uitv_key); // geeft ook handige informatie
|
|
%> <tr>
|
|
<td rowspan="2" class='profile'><img id='photo' class='profile' src='<%=thisUser.photoinfo().photopaththumb %>'></td>
|
|
<td><span class="readonly cardname"><%=safe.html(thisUser.naam())%></span></td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="readonly cardsubname">
|
|
<%= safe.html(thisUser.prs_srtperslid())+"<br>"%>
|
|
<%= thisUser.prs_perslid_telefoonnr() ? "<i class='fa fa-phone'></i> "+safe.html(thisUser.prs_perslid_telefoonnr()) : "" %>
|
|
</span></td>
|
|
</tr>
|
|
<% break;
|
|
case "BE":
|
|
var bsql = "SELECT COALESCE(prs_bedrijf_bezoek_plaats, prs_bedrijf_post_plaats) plaats"
|
|
+ " , COALESCE(prs_bedrijf_contact_telefoon, prs_bedrijf_telefoon, prs_bedrijf_telefoon2) telefoon "
|
|
+ " FROM prs_bedrijf WHERE prs_bedrijf_key = " + uitv_key;
|
|
boRs = Oracle.Execute(bsql);
|
|
var uitv_plaats = "";
|
|
var uitv_telefoon = "";
|
|
if (!boRs.eof) {
|
|
uitv_plaats = boRs("plaats").value;
|
|
uitv_telefoon = boRs("telefoon").value;
|
|
}
|
|
boRs.close();
|
|
%>
|
|
<tr>
|
|
<td><span class="readonly cardname"><%=safe.html(uitv_naam)%></span></td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="readonly cardsubname">
|
|
<%= uitv_plaats ? safe.html(uitv_plaats) + "<br>" : ""%>
|
|
<%= uitv_telefoon ? "<i class='fa fa-phone'></i> "+safe.html(uitv_telefoon) : "" %>
|
|
</span></td>
|
|
</tr>
|
|
<% break;
|
|
}
|
|
|
|
CARD_END();
|
|
if (S("mld_show_cards") > 0)
|
|
{ %>
|
|
<script type="text/javascript">
|
|
$(document).ready(function()
|
|
{
|
|
showMaxCards("cardbeh" + "<%=uitv_key + (uitv_type == "BI"? "_" + prs_key : "")%>", false);
|
|
});
|
|
</script>
|
|
|
|
<% }
|
|
}
|
|
|
|
if (isPrinting || S("rs_maxchar") < 0 || mld_opdr_omschrijving.length < S("rs_maxchar") * 1.20) // 'Meer' moet minstens 20% extra tekst opleveren.
|
|
var safe_mld_opdr_omschrijving = safe.html(oRs("mld_opdr_omschrijving").Value); // simpelweg hele tekst
|
|
else
|
|
{
|
|
// Oke, op scherm afkappen na S("rs_maxchar") karakters.
|
|
// Probeer op de eerste spatie maar die moet wel binnen 20% karakters komen
|
|
var full_mld_opdr_omschrijving = mld_opdr_omschrijving;
|
|
var spatie = String(mld_opdr_omschrijving).substr(S("rs_maxchar")).indexOf(" ");
|
|
if (spatie < 0 || spatie > S("rs_maxchar")/5)
|
|
spatie = 0;
|
|
var part_mld_opdr_omschrijving = full_mld_opdr_omschrijving.substr(0, S("rs_maxchar") + spatie + 1);
|
|
// pas op: val is al 'html-safe' terwijl we dat voor afkappen niet kunnen hebben?
|
|
// in ieder geval geen safe.htmlattr.
|
|
var safe_mld_opdr_omschrijving = safe.html(part_mld_opdr_omschrijving)
|
|
+ "<span class='rsTruncmore' " // Dubbel encoderen hieronder, anders html-injections was achter de Meer... mogelijk
|
|
+ " resttxt='" + safe.htmlattr(safe.html(full_mld_opdr_omschrijving.substr(S("rs_maxchar") + spatie + 1))) + "'"
|
|
+ " title='" + L("lcl_rs_truncmore") + "'"
|
|
+ " onclick='return expandTruncate(event, this)'"
|
|
+ ">" + L("lcl_rs_truncated") + "</span>";
|
|
}
|
|
|
|
var extended_opdr_status = mld.getextendedopdrstatus(mld_statusopdr_key, opdr_key);
|
|
nrCardsInCardbox++;
|
|
CARD_START("opdrcard" + opdr_key,
|
|
{ cardclass: "cardorders" + (!this_opdr.canChange || mld_statusopdr_key == 8 || uitv_type == "BE"? "" : " sortable") +
|
|
(!this_opdr.canChange || mld_statusopdr_key == 8 || uitv_type == "BE"? " disable-sort-item" : "") +
|
|
(mld_statusopdr_key == 8? " activecard" + (extended_opdr_status == 81? " halt" : ""): "") +
|
|
(einddatum < now? " latecard" : ""),
|
|
html: "opdr_key='" + opdr_key + "'"
|
|
+ " opdracht='" + safe.html(opdracht) + "'"
|
|
+ " einddatum='" + einddatum + "'"
|
|
+ " active='" + (mld_statusopdr_key == 8? "1" : "0") + "'"
|
|
+ " halt='" + (extended_opdr_status == 81? "1" : "0") + "'"
|
|
+ " sortid='" + (mld_statusopdr_key == 8? "0" : "1") + einddatum + "/" + opdracht + "'",
|
|
hidden: S("mld_show_cards") > 0? true : false
|
|
});
|
|
%> <tr>
|
|
<td>
|
|
<% if (!this_opdr.canChange)
|
|
{ %>
|
|
<i class="fa fa-lock cardopdrnochange" aria-hidden="true"></i>
|
|
<% }
|
|
else if (mld_statusopdr_key == 8)
|
|
{
|
|
if (extended_opdr_status == 81)
|
|
{ %>
|
|
<i class="fa fa-pause" aria-hidden="true"></i>
|
|
<% }
|
|
else
|
|
{ %>
|
|
<i class="fa fa-hourglass-half" aria-hidden="true"></i>
|
|
<% }
|
|
}
|
|
else
|
|
{ %>
|
|
<i class="fa fa-chevron-right" aria-hidden="true"></i>
|
|
<% } %>
|
|
<span class="readonly cardopdrnr"><%=safe.html(opdracht)%></span>
|
|
<% if (oRs("mld_opdr_plandatum").Value != null)
|
|
{
|
|
%><span class="carddate"><i class="fa fa-clock-o fa-fw"></i><%=toDateTimeString(oRs("mld_opdr_plandatum").Value, false,false, true)%></span><%
|
|
} else { // straks ook de startdatum
|
|
%><span class="carddate"><i class="fa fa-calendar-check-o fa-fw"></i><%=toDateTimeString(oRs("mld_opdr_einddatum").Value, false,false, true)%></span><%
|
|
}
|
|
if (plaatsmelding) {
|
|
%><br><span class="cardplace"><i class="fa fa-map-marker fa-fw"></i> <%=plaatsmelding.length < 40 ? safe.html(plaatsmelding) : safe.html(plaatsmelding.substr(0,36)) + "…" %>
|
|
</span><%
|
|
}
|
|
var mvarray = [];
|
|
if (meldinggroep) mvarray.push(meldinggroep.length < 20 ? safe.html(meldinggroep) : safe.html(meldinggroep.substr(0,16)) + "…");
|
|
if (vakgroep) mvarray.push(vakgroep.length < 20 ? safe.html(vakgroep) : safe.html(vakgroep.substr(0,16)) + "…");
|
|
%><br><span class="cardgroep"><i class="fa fa-object-group fa-fw"></i> <%=mvarray.join(" / ")%>
|
|
</span>
|
|
</td></tr>
|
|
<tr><td><span class="readonly cardopdrtxt"><%=safe_mld_opdr_omschrijving%></span></td></tr>
|
|
<% CARD_END();
|
|
|
|
if (S("mld_show_cards") > 0 && nrCardsInCardbox == (S("mld_show_cards") + 1))
|
|
{
|
|
CARD_START("cardasc",
|
|
{ cardclass: "cardasc disable-sort-item",
|
|
html: "opdr_key='-1' opdracht='-1' einddatum='0' active='0' halt='2'",
|
|
hidden: true
|
|
});
|
|
%>
|
|
<tr>
|
|
<td width="100%">
|
|
<center><i class="fa fa-sort-asc" aria-hidden="true"></i></center>
|
|
</td>
|
|
</tr>
|
|
<% CARD_END();
|
|
CARD_START("carddesc",
|
|
{ cardclass: "carddesc disable-sort-item",
|
|
html: "opdr_key='-1' opdracht='-1' einddatum='-1' active='0' halt='3'"
|
|
});
|
|
%>
|
|
<tr>
|
|
<td width="100%">
|
|
<center><i class="fa fa-sort-desc" aria-hidden="true"></i></center>
|
|
</td>
|
|
</tr>
|
|
<% CARD_END();
|
|
}
|
|
|
|
olduitv_key = uitv_key;
|
|
oldprs_key = prs_key;
|
|
oRs.MoveNext();
|
|
if (oRs.eof || ((uitv_type != "BI" && (oRs("uitv_key").Value || -1) != olduitv_key) ||
|
|
(uitv_type == "BI" && ((oRs("uitv_key").Value || -1) != olduitv_key || (oRs("prs_perslid_key").Value || -1) != oldprs_key))))
|
|
CARDBOX_END();
|
|
}
|
|
%>
|
|
</tr></table></div>
|
|
</div>
|
|
|
|
<% if (S("mld_show_cards") > 0)
|
|
{ %>
|
|
<script type="text/javascript">
|
|
$(document).ready(function()
|
|
{
|
|
showMaxCards("cardbeh" + "<%=uitv_key + (uitv_type == "BI"? "_" + prs_key : "")%>", false);
|
|
});
|
|
</script>
|
|
<% } %>
|
|
|
|
<div id='pbMaxHistoryE'><span id='pbMaxHistoryInfoE'><div></div></span></div>
|
|
<%
|
|
var hisInfo = "empty";
|
|
if (!oRs.eof)
|
|
{
|
|
var a_element = "<a href='" + safe.jsstring(Request.ServerVariables("SCRIPT_NAME") + "?showall=1" + transitQS()) + "' target='_self" + "'>"
|
|
+ L("lcl_qp_maxcards1").format(S("qp_maxrows"))
|
|
+ "</a>";
|
|
hisInfo = (cnt <= S("qp_maxrows")
|
|
? a_element
|
|
: L("lcl_qp_maxcards2").format(S("qp_maxrows2")))
|
|
}
|
|
|
|
var extraTitle = [];
|
|
if (aantal_int > 0)
|
|
extraTitle.push(L("lcl_opdr_internuit") + " " + aantal_int);
|
|
if (aantal_ext > 0)
|
|
extraTitle.push(L("lcl_opdr_externuit") + " " + aantal_ext);
|
|
%>
|
|
<script type="text/javascript">
|
|
$(document).ready(function()
|
|
{
|
|
if ("<%=hisInfo%>" == "empty")
|
|
{
|
|
$("#pbMaxHistoryB").hide();
|
|
$("#pbMaxHistoryE").hide();
|
|
}
|
|
else
|
|
{
|
|
$("#pbMaxHistoryInfoB")[0].innerHTML = "<%=hisInfo%>";
|
|
$("#pbMaxHistoryInfoE")[0].innerHTML = "<%=hisInfo%>";
|
|
}
|
|
FcltMgr.setHeaderExtraTitle("<%=safe.html(extraTitle.join(", "))%>");
|
|
|
|
// Breedte van het scherm zetten. Elke cardbox (kolom) is 200 pixels breed plus 2 maal border van 10 pixels plus 5 pixels tussenruimte = 225.
|
|
FcltMgr.resized(window);
|
|
window.parent.$("#workFrame").height(window.parent.$("#workFrame").height() + 100);
|
|
});
|
|
</script>
|
|
|
|
<!-- LEGENDA -->
|
|
<script type="text/javascript">
|
|
function openLegenda()
|
|
{
|
|
params = { width: 220,
|
|
resizable: false,
|
|
position: {my: "right top", at: "right top+30"},
|
|
title: "<%=L("lcl_res_legenda")%>"
|
|
}
|
|
$('div#legenda').dialog(params).dialog('open');
|
|
}
|
|
</script>
|
|
<div id="legenda" style="display:none; line-height: 30px;">
|
|
<table id="opdrachtlegenda">
|
|
<tr><td colspan="2"><div class="legenda selectedcard"><%=I("fa-chevron-right")%> <%= L("lcl_opdr_selected") %></div></td></tr>
|
|
<tr><td><div class="cardmoved"><%=I("fa-chevron-right")%> <%= L("lcl_opdr_moved") %></div></td></tr>
|
|
<tr><td><div class="activecard"><%=I("fa-hourglass-half")%> <%= L("lcl_opdr_active") %></div></td></tr>
|
|
<tr><td><div class="activecard halt"><%=I("fa-pause")%> <%= L("lcl_mld_ord_hlt") %></div></td></tr>
|
|
<tr><td><div class="latecard"><%=I("fa-chevron-right")%> <%= L("lcl_opdr_late") %></div></td></tr>
|
|
<tr><td><div class="cardnotmoved"><%=I("fa-chevron-right")%> <%= L("lcl_opdr_notmoved") %></div></td></tr>
|
|
<tr><td><div class="disable-sort-item"><%=I("fa-lock cardopdrnochange")%> <%= L("lcl_blokkade") %></div></td></tr>
|
|
<tr><td><div class="legendaleft">Ctrl + Click: </div><div class="legenda legendaright selectedcard"><%="Multi select"%></div></td></tr>
|
|
<tr><td><div class="legendaleft">Shift + Click: </div><div class="legenda legendaright selectedcard"><%="Multi select"%></div></td></tr>
|
|
</table>
|
|
</div>
|
|
</body>
|
|
</html>
|
|
<%
|
|
}
|
|
%>
|