ARAI#38183: Starten en Stoppen van opdrachtuitvoering.

svn path=/Website/trunk/; revision=33442
This commit is contained in:
Maykel Geerdink
2017-04-10 10:48:30 +00:00
parent 539d2dbf34
commit fae2c4d808
2 changed files with 120 additions and 38 deletions

View File

@@ -17,6 +17,13 @@
<%
var urole = getQParamSafe("urole");
var internuit = getQParamInt("opdrIUit", 0) == 1; // Interne uitvoerder.
var externuit = getQParamInt("opdrEUit", 0) == 1; // Externe uitvoerder.
if (!internuit && !externuit)
{
internuit = true;
externuit = true;
}
// let op: geen parameter moet equivalent zijn met een null parameter (NIET -1 oid)!
var theparams = { urole: urole,
@@ -43,6 +50,8 @@ var theparams = { urole: urole,
disc_key_arr: getQParamIntArray("disc_key_str", null),
kp: getQParam("kp", null),
handler_key: getQParamInt("handler", null),
internuit: internuit,
externuit: externuit,
typeopdr_key: getQParamInt("typeopdr_key", null),
stpen: getQParamInt("stpen", 0) == 1,
strej: getQParamInt("strej", 0) == 1,

View File

@@ -245,18 +245,18 @@ function opdr_plan(params)
min-height: 72px;
}
.cardbeheerder.uitvbe {
background-color: #55B99C; /* Bedrijf Extern. */
background-color: #C99CA8; /* Bedrijf Extern. */
}
.cardbeheerder.uitvbi {
background-color: #C99CA8; /* Bedrijf Intern. */
background-color: #55B99C; /* Bedrijf Intern. */
}
.cardbeheerder.uitvpi {
background-color: #559CB9; /* Persoon Intern. */
}
.cardbeheerder.uitvnt {
background-color: #CD4A48; /* Niet Toegewezen. */
background-color: #8F6329; /* Niet Toegewezen. CD4A48 5ED75F*/
}
.cardbeheerder.active {
.cardbeheerder.goto {
background-color: #DAA520;
}
.cardbeheerder .profile img.profile {
@@ -299,6 +299,9 @@ function opdr_plan(params)
div.cardmoved {
background-color: #AEE9FF;
}
div.cardnotmoved {
background-color: #E35931; /* ED4429 */
}
.ui-sortable-helper {
background-color: #FFDC23;
}
@@ -323,7 +326,15 @@ function opdr_plan(params)
color: #CC0000;
}
div.activecard {
background-color: #E8FFE8;
background-color: #FFFA7A; /*#E8FFE8;*/
border-color: #333;
}
div.activecard.halt {
background-color: #FFCA7B; /*#E8FFE8;*/
border-color: #333;
}
div.activecard.resume {
background-color: #FFE57A; /*#E8FFE8;*/
border-color: #333;
}
div.legendaright {
@@ -345,15 +356,15 @@ function opdr_plan(params)
<script type="text/javascript">
function sort(pcardboxid)
{
//alert("pcardboxid = " + 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) Einddatum, wat het eerst klaar moet zijn staat boven aan (kleinste waarde bovenaan).
// 3) Meldingnummer (A12345/1) (kleinste waarde bovenaan).
return (($(a).attr("active") == "1"? "0" : "1") + $(a).attr("einddatum") + "/" + $(a).attr("opdracht") > ($(b).attr("active") == "1"? "0" : "1") + $(b).attr("einddatum") + "/" + $(b).attr("opdracht")) ? 1 : -1;
// 2) Onderbroken en Hervat. Eerst active, dan active hervatte en dan actieve 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("resume") + $(a).attr("einddatum") + "/" + $(a).attr("opdracht") > ($(b).attr("active") == "1"? "0" : "1") + $(b).attr("halt") + $(b).attr("resume") + $(b).attr("einddatum") + "/" + $(b).attr("opdracht")) ? 1 : -1;
});
sortableList.append(listitems);
}
@@ -384,7 +395,7 @@ function opdr_plan(params)
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")).removeClass("selectedcard");
$(".ui-sortable div.cardorders").not($(this).parent().find("div.cardorders"), ".legenda").removeClass("selectedcard");
if (selectedCurrentCard != undefined &&
selectedCurrentCard.text() != $(this).text() &&
@@ -416,7 +427,7 @@ function opdr_plan(params)
}
// Alle kaarten deselecteren en alle clonen verwijderen.
$(".selectedcard").removeClass("selectedcard");
$(".selectedcard").not(".legenda").removeClass("selectedcard");
$(".pholder").remove();
// Nu de juiste kaarten selecteren.
@@ -524,9 +535,9 @@ function opdr_plan(params)
var oldprs_key = -2;
while (!oRs.eof)
{
var prs_key = oRs("prs_perslid_key").Value || -1;
var prs_key = oRs("prs_perslid_key").Value || -1; // Melder key.
var opdr_key = oRs("mld_opdr_key").Value;
var behandelaar = oRs("behandelaar").Value;
var behandelaar = oRs("behandelaar").Value; // Behandelaar
var B_OF_P = oRs("B_OF_P").Value;
var uitv_key = oRs("uitv_key").Value || -1;
var uitv_naam = oRs("uitv_naam").Value;
@@ -613,7 +624,7 @@ function opdr_plan(params)
// 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").show(); // Laat de clonen zien.
$(".pholder").hide(); // Laat de clonen zien.
},
stop: function (e, ui)
{ // Wordt uitgevoerd door de bronlijst als het slepen stopt.
@@ -629,9 +640,10 @@ function opdr_plan(params)
// 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 gekopieerd dan class "cardmoved" niet toevoegen
// 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)!!
@@ -642,7 +654,7 @@ function opdr_plan(params)
ui.item.after(elements).remove();
// Alle kaarten deselecteren. Het (gekopieerde) aangeklikte en gesleepte item (die in elements zat) waren nog geselecteerd.
$(".selectedcard").removeClass("selectedcard");
$(".selectedcard").not(".legenda").removeClass("selectedcard");
if (received)
{ // Sorteer de lijst waar de items aan zijn toegevoegd.
@@ -671,14 +683,39 @@ function opdr_plan(params)
data,
FcltCallbackAndThen(function (data)
{
// TODO: Hier pas elementen toevoegen afhankelijk welke mogen.
//alert("1");
//alert(JSON.stringify(elements));
//ui.item.after(elements).remove(); hier pas uitvoeren
//elements gebruiken.
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 : "")%>");
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)
@@ -696,21 +733,36 @@ function opdr_plan(params)
},
over: function (event, ui)
{
$(".cardbeheerder", this).toggleClass("active");
$(".cardbeheerder", this).toggleClass("goto");
},
out: function (event, ui)
{
$(".cardbeheerder", this).toggleClass("active");
$(".cardbeheerder", this).toggleClass("goto");
}
});
//$("#cardboxbeh<%=uitv_key%>").sortable("disable");
});
</script>
<% }
else
{
%> <script type="text/javascript">
// 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>
<% }
CARD_START("cardbeh" + uitv_key,
{ cardclass: "cardbeheerder uitv" + uitvclass.toLowerCase(),
html: "uitv_key=" + uitv_key + " opdr_key=-1" + " einddatum=-1" + " active=1"
html: "uitv_key='" + uitv_key + "' opdr_key='-1'" + " einddatum='-1'" + " opdracht='-1' active='1' halt='0' resume='0'"
});
switch(uitv_type)
{
@@ -772,8 +824,8 @@ function opdr_plan(params)
}
%>
<tr><td>uitv_key = <%=uitv_key%></td></tr>
<tr><td>prs_key = <%=prs_key%></td></tr>
<!--comment <tr><td>uitv_key = <%=uitv_key%></td></tr>
<tr><td>prs_key = <%=prs_key%></td></tr>-->
<%
CARD_END();
@@ -799,25 +851,43 @@ function opdr_plan(params)
+ ">" + L("lcl_rs_truncated") + "</span>";
}
var extended_opdr_status = mld.getextendedopdrstatus(mld_statusopdr_key, opdr_key);
CARD_START("opdrcard" + opdr_key,
{ cardclass: "cardorders sortable" +
(!this_opdr.canChange || mld_statusopdr_key == 8 || uitv_type == "BE"? " disable-sort-item" : "") +
(mld_statusopdr_key == 8? " activecard" : "") +
(mld_statusopdr_key == 8? " activecard" + (extended_opdr_status == 81? " halt" : "") + (extended_opdr_status == 82? " resume" : ""): "") +
(einddatum < now? " latecard" : ""),
html: "opdr_key=" + opdr_key
+ " opdracht=" + safe.html(opdracht)
+ " einddatum=" + einddatum
+ " active=" + (mld_statusopdr_key == 8? "1" : "0")
+ " sortid=" + (mld_statusopdr_key == 8? "0" : "1") + einddatum + "/" + opdracht
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") + "'"
+ " resume='" + (extended_opdr_status == 82? "1" : "0") + "'"
+ " sortid='" + (mld_statusopdr_key == 8? "0" : "1") + einddatum + "/" + opdracht + "'"
});
%> <tr>
<td>
<% if (!this_opdr.canChange)
{ %>
<i class="fa fa-lock cardopdrnochange" aria-hidden="true"></i>
<% } else if (mld_statusopdr_key == 8) { %>
<i class="fa fa-hourglass-half" aria-hidden="true"></i>
<% } else { %>
<% }
else if (mld_statusopdr_key == 8)
{
if (extended_opdr_status == 81)
{ %>
<i class="fa fa-pause" aria-hidden="true"></i>
<% }
else if (extended_opdr_status == 82)
{ %>
<i class="fa fa-play" 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 <%=(!this_opdr.canChange? " disable-sort-item" : "")%>"><%=safe.html(opdracht)%></span>
@@ -860,13 +930,16 @@ function opdr_plan(params)
</script>
<div id="legenda" style="display:none; line-height: 30px;">
<table id="opdrachtlegenda">
<tr><td colspan="2"><div class="selectedcard"><%=I("fa-chevron-right")%>&nbsp;<%= L("lcl_opdr_selected") %></div></td></tr>
<tr><td colspan="2"><div class="legenda selectedcard"><%=I("fa-chevron-right")%>&nbsp;<%= L("lcl_opdr_selected") %></div></td></tr>
<tr><td><div class="cardmoved"><%=I("fa-chevron-right")%>&nbsp;<%= L("lcl_opdr_moved") %></div></td></tr>
<tr><td><div class="activecard"><%=I("fa-hourglass-half")%>&nbsp;<%= L("lcl_opdr_active") %></div></td></tr>
<tr><td><div class="activecard resume"><%=I("fa-play")%>&nbsp;<%= L("lcl_mld_ord_rsm") %></div></td></tr>
<tr><td><div class="activecard halt"><%=I("fa-pause")%>&nbsp;<%= L("lcl_mld_ord_hlt") %></div></td></tr>
<tr><td><div class="latecard"><%=I("fa-chevron-right")%>&nbsp;<%= L("lcl_opdr_late") %></div></td></tr>
<tr><td><div class="cardnotmoved"><%=I("fa-chevron-right")%>&nbsp;<%= L("lcl_opdr_notmoved") %></div></td></tr>
<tr><td><div class="disable-sort-item"><%=I("fa-lock cardopdrnochange")%>&nbsp;<%= L("lcl_blokkade") %></div></td></tr>
<tr><td><div class="legendaleft">Ctrl + Click:&nbsp;</div><div class="legendaright selectedcard"><%="Multi select"%></div></td></tr>
<tr><td><div class="legendaleft">Shift + Click:&nbsp;</div><div class="legendaright selectedcard"><%="Multi select"%></div></td></tr>
<tr><td><div class="legendaleft">Ctrl + Click:&nbsp;</div><div class="legenda legendaright selectedcard"><%="Multi select"%></div></td></tr>
<tr><td><div class="legendaleft">Shift + Click:&nbsp;</div><div class="legenda legendaright selectedcard"><%="Multi select"%></div></td></tr>
</table>
</div>
</body>