Files
Facilitor/APPL/FAC/fac_algfaq.js
Maykel Geerdink ba5cea23ae FMHN#81597: filter geeft niet weer bij selecteren van terrein.
svn path=/Website/trunk/; revision=65879
2024-08-13 18:35:56 +00:00

223 lines
6.1 KiB
JavaScript

/*
$Revision$
$Id$
File: fac_stdmeldingfaq.js
*/
var rowIndex = -1;
var multiFAQ = true;
function onClickItem(tr)
{
// Wordt aangeroepen na één klik op een item
$(tr).toggleClass("selected");
}
function onDblClickItem(tr)
{
$(tr).closest("table").find("tr").removeClass("selected"); // Alle andere regels deselecteren
$(tr).addClass("selected");
window.parent.doSubmit();
}
function setMultiFAQ(aantal)
{
multiFAQ = (aantal != 1);
}
function CreateRow(loc_key, onr_key, scope, plaats)
{
rowIndex++;
var table = $("#algfaqtable>tbody")[0];
// Insert data rows
tr = table.insertRow(-1);
tr.myData = { loc_key: loc_key
, onr_key: onr_key
};
tr.value = rowIndex;
// Create drop button
cell = tr.insertCell(-1);
cell.className = "result";
cell.align = "center";
cell.innerHTML = "<span OnClick='delRow(this)' style='cursor:pointer'>" + I("fa-trash-alt") + "</span>";
// innerHTML opent een htmlparser die overbodige spaties en line breaks verwijderd in IE, daarom met innerText oplossen
// Input velden moeten wel met innerHTML of outerHTML anders wordt het text
// Vakgroep omschrijving veld
cell = tr.insertCell(-1);
cell.className = "result";
cell.innerHTML = scope;
cell.align = "left";
cell.style.whiteSpace = "nowrap";
// Stdmelding omschrijving veld
cell = tr.insertCell(-1);
cell.className = "result";
cell.innerHTML = plaats;
cell.align = "left";
cell.style.whiteSpace = "nowrap";
// Data velden
cell = tr.insertCell(-1);
cell.className = "result";
cell.innerHTML = "<input type='hidden' id='loc" + rowIndex + "' name='loc" + rowIndex + "' value='" + loc_key + "'>"
+ "<input type='hidden' id='onr" + rowIndex + "' name='onr" + rowIndex + "' value='" + onr_key + "'>";
cell.align = 'left';
document.getElementById("nrRows").value = parseInt(rowIndex) + 1;
}
function delRow(img)
{
// Verwijder de aangeklikte afdeling uit de lijst (de regel)
FcltMgr.confirm(L("lcl_faq_del_alg"), function() {
var tr = $(img).closest("tr")[0];
if (tr.myData.loc_key != null) {
document.getElementById("algfaqtable").deleteRow(tr.rowIndex);
}
});
}
function fac_submit()
{
var data = $("[name=u2]").serialize();
$.post($("form[name=u2]")[0].action,
data,
FcltCallbackAndThenAlways(fac_submit_callback),
"json");
return true; // disabled button ook
}
function fac_submit_callback(json)
{
if (json.success)
{
window.parent.FcltMgr.reload();
FcltMgr.closeDetail(window, json);
}
}
function fac_add()
{
var onr_key = -1;
var scope;
var plaats = $("#plaats").val();
var bttype;
var loc_selected = !!($("#locatie").is(":visible") && ($("#locatie option:selected").length || $("#locatiekey").val() > 0));
var geb_selected = !!($("#gebouw").is(":visible") && ($("#gebouw option:selected").length || $("#gebouwkey").val() > 0));
var ver_selected = !!($("#verdieping").is(":visible") && ($("#verdieping option:selected").length || $("#verdiepingkey").val() > 0));
var rui_selected = !!($("#ruimte").is(":visible") && ($("#ruimte option:selected").length || $("#ruimtekey").val() > 0));
if (rui_selected)
{
scope = "Ruimte";
onr_key = $("#ruimtekey").val();
if (sgRoom.isMulti())
{
if ($("#ruimte option:selected").length)
{
$("#ruimte option:selected").each(function () {
onr_key = $(this).val();
this_plaats = plaats + "-" + $(this).text();
fac_check_and_add($("#locatiekey").val(), onr_key, scope, this_plaats);
});
}
}
else
{
fac_check_and_add($("#locatiekey").val(), onr_key, scope, plaats);
}
}
else if (ver_selected)
{
scope = "Verdieping";
onr_key = $("#verdiepingkey").val();
if (sgFlr.isMulti())
{
$("#verdieping option:selected").each(function () {
onr_key = $(this).val();
this_plaats = plaats + "-" + $(this).text();
fac_check_and_add($("#locatiekey").val(), onr_key, scope, this_plaats);
});
}
else
{
fac_check_and_add($("#locatiekey").val(), onr_key, scope, plaats);
}
}
else if (geb_selected)
{
onr_key = $("#gebouwkey").val();
if (sgBld.isMulti())
{
$("#gebouw option:selected").each(function () {
onr_key = $(this).val();
this_plaats = plaats + "-" + $(this).text();
bttype = $(this)[0].getAttribute("extra");
if (bttype == "B")
scope = "Gebouw";
else
scope = "Terrein";
fac_check_and_add($("#locatiekey").val(), onr_key, scope, this_plaats);
});
}
else
{
bttype = $("#gebouwkey")[0].getAttribute("extra");
if (bttype == "B")
scope = "Gebouw";
else
scope = "Terrein";
fac_check_and_add($("#locatiekey").val(), onr_key, scope, plaats);
}
}
else if (loc_selected)
{
scope = "Locatie";
if (sgLoc.isMulti())
{
$("#locatie option:selected").each(function () {
plaats = $(this).text().split(" ")[0];
fac_check_and_add($(this).val(), onr_key, scope, plaats);
});
}
else
{
fac_check_and_add($("#locatiekey").val(), onr_key, scope, plaats);
}
}
}
function fac_check_and_add(loc_key, onr_key, scope, plaats)
{
if (loc_key > 0)
{
var exist = false;
$("#algfaqtable tr").each(function(i, value)
{
if (this.myData
&& (loc_key == this.myData.loc_key)
&& (onr_key == this.myData.onr_key)
)
{
exist = true;
}
});
if (!exist)
{
CreateRow( loc_key
, onr_key
, scope
, plaats
);
FcltMgr.resized(window);
}
}
}