Files
Facilitor/APPL/INS/ins_onderdelen.js
Maykel Geerdink f7c128523f VNOG#85909: Verbeteren werking van onderdelen in objectbeheer.
svn path=/Website/trunk/; revision=67006
2024-11-12 15:51:34 +00:00

162 lines
4.9 KiB
JavaScript

/*
$Revision$
$Id$
File: ins_onderdelen.js
*/
var rowIndex = -1;
function CreateRow(deel_key, deel_name, srtdeel_name, srtgroep_name, disc_name)
{
rowIndex++;
var table = $("#deel_desctable>tbody")[0];
// Insert data rows
tr = table.insertRow(-1);
tr.setAttribute("deel_key", deel_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
// Deel omschrijving veld
cell = tr.insertCell(-1);
cell.className = "result";
cell.innerHTML = deel_name + "<input type='hidden' id='deel" + rowIndex + "' name='deel" + rowIndex + "' value='" + deel_key + "'>";
cell.align = "left";
cell.style.whiteSpace = "nowrap";
// disc omschrijving veld
cell = tr.insertCell(-1);
cell.className = "result";
cell.innerHTML = disc_name;
cell.align = "left";
cell.style.whiteSpace = "nowrap";
// srtgroep_name omschrijving veld
cell = tr.insertCell(-1);
cell.className = "result";
cell.innerHTML = srtgroep_name;
cell.align = 'left';
cell.style.whiteSpace = "nowrap";
// srtdeel omschrijving veld
cell = tr.insertCell(-1);
cell.className = "result";
cell.innerHTML = srtdeel_name;
cell.align = "left";
cell.style.whiteSpace = "nowrap";
document.getElementById("nrRows").value = parseInt(rowIndex) + 1;
}
function delRow(img)
{
// Verwijder het aangeklikte object uit de lijst (de regel)
var tr = $(img).closest("tr")[0];
if (tr.getAttribute("deel_key") != null)
{
document.getElementById("deel_desctable").deleteRow(tr.rowIndex);
}
}
function ins_submit()
{
document.forms.u2.submit();
}
function ins_cancel()
{
FcltMgr.closeDetail(window, { cancel: true });
}
async function ins_add()
{
if (!await validateForm("u2"))
return false;
if ($("#deel_key").val() > 0)
{ // Check of het object al in de lijst staat
var exist = false;
$("tr[deel_key]").each(function(i)
{
if ($("#deel_key").val() == $(this).attr("deel_key"))
exist = true;
});
if (!exist)
{ // Object staat nog niet in de lijst.
CreateRow($("#deel_key").val(),
$("#deel_key_show").val(),
$("#srtdeel_show").val(),
$("#srtgroep_show").val(),
$("#disc_show").val());
FcltMgr.resized(window);
}
//else => Het object staat al in de lijst.
}
}
function onChangeDiscipline()
{
//sgSrtgroep.setValue($("#stdm").val(), $("#stdm_show").val(), true, true, null, true);
// Regel hierboven werkt niet goed omdat CheckExist een get call veroorzaakt om te kijken of waarde bestaat.
// In de tussentijd verstoort CheckJustOne dit process met een $.getJSON()
// Dus gewoon Groep leegmaken
sgSrtgroep.setValue(-1, "", true, false, null, true);
sgSrtgroep.CheckJustOne();
$("#srtdeelmulti").empty();
}
function callback_ins_info(data, textStatus, jqXHR)
{ // Zet de discipline indien niet ingevuld
// setValue(key, txt, doonChange, checkExist, extraParam, lastTry)
if ($("#disc").val() == -1)
sgDisc.setValue(data.disc_key, data.disc_omschr, false /*doonChange*/, true /*checkExist*/);
if ($("#srtgroep").val() == -1)
sgSrtgroep.setValue(data.srtgroep_key, data.srtgroep_omschr, false /*doonChange*/, true /*checkExist*/);
if ($("#srtdeel").val() == -1)
sgSrtdeel.setValue(data.srtdeel_key, data.srtdeel_omschr, false /*doonChange*/, true /*checkExist*/);
}
function onChangeSrtgroep(srtgroep_key)
{ // Zet de discipline indien niet ingevuld.
if (srtgroep_key > 0 && $("#disc").val() <= 0 && typeof sgDisc != "undefined")
{
$.getJSON("../Shared/get_ins_info.asp",
{ srtgroep_key: srtgroep_key },
callback_ins_info);
}
sgSrtdeel.setValue(-1, "", true, false, null, true);
sgSrtdeel.CheckJustOne();
sgDeel.setValue(-1, "", true, false, null, true);
sgDeel.CheckJustOne();
}
function onChangeSrtdeel(srtdeel_key)
{
if (srtdeel_key > 0 && ($("#srtgroep").val() <= 0 && typeof sgSrtgroep != "undefined"))
{
$.getJSON("../Shared/get_ins_info.asp",
{ srtdeel_key: srtdeel_key },
callback_ins_info);
}
sgDeel.setValue(-1, "", true, false, null, true);
sgDeel.CheckJustOne();
}
function onChangeDeel(deel_key)
{
if (deel_key > 0 && ($("#srtdeel").val() <= 0 && typeof sgSrtdeel != "undefined"))
{
$.getJSON("../Shared/get_ins_info.asp",
{ deel_key: deel_key },
callback_ins_info);
}
}