FCLT#81775 [clientside] Toggles en modules correct zetten

svn path=/Website/trunk/; revision=64542
This commit is contained in:
2024-05-06 11:11:26 +00:00
parent 3a8173eb4c
commit a66102aa9a

View File

@@ -545,8 +545,9 @@ function removeReply(resetReplyAll)
FcltMgr.stopPropagation();
$(".note-textarea .reply-wrapper").remove();
$(".note-option-group").find("[data-toggle-type], .name").removeClass("disabled");
if (resetReplyAll)
$("[data-toggle-subject-role='4'] > [data-toggle-type='8'].on").trigger("click");
if (resetReplyAll) {
$("[data-toggle-subject-role='4'] > [data-toggle-type='8']").eq(0).filter(".off").trigger("click", true); // Alleen de eerste weer aan
}
var orgModule = $("#module").val();
var orgKey = $("#" + orgModule + "_key").val();
@@ -576,13 +577,13 @@ function noteReply(note_key, module_key, type)
var org_module_key = $("#module_key").val(); // Dit is de module_key (opdr_ of mld_key) die hoort bij de huidige reply
// Oude opschonen
removeReply(note_key > 0);
removeReply();
// Nieuwe erin zetten
if (org_module_key != module_key) // Als die niet is ingevuld, of er staat momenteel een reply bij van een andere opdracht/melding, dan wordt die overschreven
{
$("#module_key").val(module_key);
$("form[name=u2]")[0].action = type + "_edit_note_save.asp?" + type + "_key=" + module_key + "&note_key=" + org_note_key;
// Aan deze module adresseren
$("#module_key").val(module_key);
$("form[name=u2]")[0].action = type + "_edit_note_save.asp?" + type + "_key=" + module_key + "&note_key=" + org_note_key;
if ($("#module").val() == "mld" && type === "opdr") {
$("[data-toggle-subject-role='4']").filter("[data-opdr-key='" + module_key + "']").find("[data-toggle-type='8'].off").trigger("click", true);
}
if (note_key > 0) // Ik reply op een specifieke notitie
@@ -620,7 +621,7 @@ function noteReply(note_key, module_key, type)
$("textarea#note").blur().focus().trigger("keyup");
}
function noteToggleHandler(e) {
function noteToggleHandler(e, firstClick) {
const SUBJECT_ROLE = {
0: "EXT",
1: "FE",
@@ -632,7 +633,7 @@ function noteToggleHandler(e) {
e.preventDefault(); // Door het [for]-attribuut wordt anders alsnog de checkbox getoggled
return;
}
var $wrapper = $(this).closest(".note-option-group"); // De toggles horende by de persoon waarvoor getoggled wordt
var $wrapper = $(this).closest(".note-option-group"); // De toggles horende bij de persoon waarvoor getoggled wordt
$(this).toggleClass("on off");
var subject_role = $wrapper.attr("data-toggle-subject-role");
var noteToggleSubject = SUBJECT_ROLE[subject_role];
@@ -640,17 +641,18 @@ function noteToggleHandler(e) {
var newState = $(this).hasClass("on") ? "on" : "off";
var anySelected = $(this).siblings().addBack().filter(".on:not(.hidden)").length > 0;
var type = parseInt($(this).attr("data-toggle-type"));
var visible = type == 1 ? newState : $wrapper.find("[data-toggle-type=1].on").length === 1;
$wrapper.toggleClass("anySelected", visible);
if (noteToggleSubject == "FE" && type == 8 && e.originalEvent && anySelected && S_mld_note_hidden_action2FE == 1) {
// In deze uitzondering hoeven we het oogje niet mee te vinken
} else if (noteToggleSubject != "BO" && e.originalEvent && anySelected) { // *iets* aangevinkt? Dan ook zichtbaar
} else if (noteToggleSubject != "BO" && (e.originalEvent || firstClick) && anySelected) { // *iets* aangevinkt? Dan ook zichtbaar
$(this).siblings("[data-toggle-type='1'].off").trigger("click");
} else if (noteToggleSubject != "BO" && !anySelected) {
$(this).siblings("[data-toggle-type='1'].on.hidden").trigger("click"); // *alles* uitgevinkt? Dan ook onzichtbaar
}
var visible = type == 1 ? newState : $wrapper.find("[data-toggle-type=1].on").length === 1;
$wrapper.toggleClass("anySelected", visible);
switch (type) {
case 1: /* Zichtbaarheid */
if (newState === "off") { // Als ik zichtbaarheid uitschakel ..
@@ -692,10 +694,11 @@ function noteToggleHandler(e) {
if ($("#module").val() == "mld" && noteToggleSubject == "UITV")
{ // Hier de toggle die de reactie op een opdr geeft
if (newState == "on")
noteReply(0, $wrapper.attr("data-opdr-key"), "OPDR");
else
removeReply();
if (newState == "on" && e.originalEvent) {
noteReply(0, $wrapper.attr("data-opdr-key"), "OPDR");
} else {
removeReply();
}
}
break;
}
@@ -711,7 +714,7 @@ $(function()
// Is het niet 1 van deze? Dan is er een specifiek icoontje geklikt en hoeven we hier niets te doen
if (e.target === e.currentTarget || $(e.target).is("span.name"))
{ // Click het 'zichtbaarheid'-icoon aan als die zichtbaar & enabled is
$(this).find("[data-toggle-type=1]:not(.hidden, .disabled)").trigger("click");
$(this).find("[data-toggle-type=1]:not(.hidden, .disabled)").trigger("click", true);
}
});