Files
Facilitor/APPL/FAC/fac_stdmeldingfaq.js

164 lines
4.6 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(disc_key, stdm_key, vakgroep, stdmelding)
{
rowIndex++;
var table = $("#stdmeldingfaqtable>tbody")[0];
// Insert data rows
tr = table.insertRow(-1);
tr.myData = { disc_key: disc_key
, stdm_key: stdm_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 = vakgroep;
cell.align = "left";
cell.style.whiteSpace = "nowrap";
// Stdmelding omschrijving veld
cell = tr.insertCell(-1);
cell.className = "result";
cell.innerHTML = stdmelding;
cell.align = "left";
cell.style.whiteSpace = "nowrap";
// Data velden
cell = tr.insertCell(-1);
cell.className = "result";
cell.innerHTML = "<input type='hidden' id='disc" + rowIndex + "' name='disc" + rowIndex + "' value='" + disc_key + "'>"
+ "<input type='hidden' id='stdm" + rowIndex + "' name='stdm" + rowIndex + "' value='" + stdm_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_stdmelding"), function() {
var tr = $(img).closest("tr")[0];
if (tr.myData.disc_key != null) {
document.getElementById("stdmeldingfaqtable").deleteRow(tr.rowIndex);
FcltMgr.resized(window);
}
});
}
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()
{
if ($("select#disc_show").length)
{ // add multiselect disc records
$("#disc_show option:selected").each(function () {
fac_check_and_add($(this).val(), "", $(this).text(), "");
});
}
else
{ // single discipline is present
if ($("#disc").val() > 0)
{ // single discipline has a value
if ($("select#stdm_show").length)
{ // add multiselect disc + call combi records
$("#stdm_show option:selected").each(function () {
fac_check_and_add($("#disc").val(), $(this).val(), $("#disc_show").val(), $(this).text());
});
}
else if ($("input#stdm_show").length)
{ // single call is present
if ($("#stdm").val() > 0)
{ // add 1 disc + call combi record
fac_check_and_add($("#disc").val(), $("#stdm").val(), $("#disc_show").val(), $("#stdm_show").val());
}
else
{ // add 1 disc record without call
fac_check_and_add($("#disc").val(), "", $("#disc_show").val(), "");
}
}
}
}
}
function fac_check_and_add(disc_val, stdm_val, disc_show_val, stdm_show_val)
{
var exist = false;
$("#stdmeldingfaqtable tr").each(function(i, value)
{
if (this.myData
&& (disc_val == this.myData.disc_key)
&& (stdm_val == this.myData.stdm_key)
)
{
exist = true;
}
});
if (!exist)
{
CreateRow( disc_val
, stdm_val
, disc_show_val
, stdm_show_val
);
FcltMgr.resized(window);
}
}