188 lines
5.3 KiB
JavaScript
188 lines
5.3 KiB
JavaScript
/*
|
|
$Revision$
|
|
$Id$
|
|
*/
|
|
|
|
function VervangerItem(prs_key, prs_name, dept_name, prs_expire, rowIndex)
|
|
{
|
|
this.prs_key = prs_key;
|
|
this.prs_name = prs_name;
|
|
this.dept_name = dept_name;
|
|
this.prs_expire = prs_expire;
|
|
this.rowIndex = rowIndex;
|
|
|
|
this.row = null;
|
|
}
|
|
|
|
function PrsRow(prs_key, prs_text, lastRow)
|
|
{
|
|
this.prs_key = prs_key;
|
|
this.prs_text = prs_text;
|
|
this.lastRow = lastRow;
|
|
|
|
this.row = null;
|
|
}
|
|
|
|
// Array of currently selected items
|
|
var selectedItems = new Array();
|
|
var nrdeleted = 0; // aantal regels die tijdens invoer van vervangers zijn verwijderd
|
|
|
|
var prsRows = new Array();
|
|
|
|
var hook_url = "";
|
|
|
|
function AddItem(pprs_key, pprs_name, pdept_name, pprs_expire)
|
|
{
|
|
receiveInfo = false;
|
|
if (!isNaN(pprs_key) && pprs_key > 0) receiveInfo = true;
|
|
|
|
if (this.dis_desc == null) dis_desc = "";
|
|
|
|
table = document.getElementById("sel_items");
|
|
|
|
if (!receiveInfo && document.getElementById("person").value <= 0)
|
|
{
|
|
FcltMgr.alert(L("lcl_shared_choose_item_first"));
|
|
return;
|
|
}
|
|
|
|
if (!receiveInfo) {
|
|
prs_key = $("#person").val();
|
|
prs_name = $("#person_show").val();
|
|
dept_name = $("#dept").val();
|
|
prs_expire = $("#person_exp").val();
|
|
}
|
|
else {
|
|
prs_key = pprs_key;
|
|
prs_name = pprs_name;
|
|
dept_name = pdept_name;
|
|
prs_expire = pprs_expire;
|
|
}
|
|
|
|
var table = document.getElementById("sel_items")
|
|
var rows = document.getElementById('sel_items').getElementsByTagName('tr')
|
|
var tablelength = rows.length;
|
|
var rowIndex = rows[rows.length-1].rowIndex; // Pak de laatste rowIndex van de tabel
|
|
var next_rowIndex = ++rowIndex;
|
|
|
|
// Om het niet te gek te maken beperken we vooralsnog maar eens tot vijf FE vervangers max
|
|
if (tablelength - 1 >= 5) {
|
|
FcltMgr.alert(L("lcl_prs_substitute_max5"));
|
|
return;
|
|
}
|
|
|
|
var registerOK = RegisterItem(prs_key, prs_name, dept_name, prs_expire, next_rowIndex, true);
|
|
|
|
if (registerOK)
|
|
CreateRow(prs_key, prs_name, dept_name, prs_expire, next_rowIndex, true);
|
|
}
|
|
|
|
function setInnerText(innerObject, innerValue)
|
|
{
|
|
if (typeof innerObject.innerText != 'undefined')
|
|
innerObject.innerText = innerValue
|
|
else
|
|
innerObject.textContent = innerValue;
|
|
return innerObject;
|
|
}
|
|
|
|
function CreateRow(prs_key, prs_name, dept_name, prs_expire, rowIndex, editable)
|
|
{
|
|
// insert white line
|
|
table = document.getElementById("sel_items");
|
|
|
|
// insert data rows
|
|
tr = table.insertRow((rowIndex == -1) ? (-1) : (rowIndex));
|
|
var id_key = prs_key;
|
|
selectedItems[" " + id_key].row = tr;
|
|
|
|
// Create drop button
|
|
cell = tr.insertCell(-1);
|
|
cell.className = "result";
|
|
cell.align = "center";
|
|
cell.innerHTML = "<span OnClick=CancelOrder('"
|
|
+ id_key + "') style=cursor:pointer>" + I("fa-trash-alt") + "</span>";
|
|
|
|
// Create vervangers prs_name field
|
|
cell = tr.insertCell(-1);
|
|
cell.className = "result nowrap";
|
|
// 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
|
|
cell = setInnerText(cell, prs_name);
|
|
cell.title = prs_name;
|
|
cell.align = 'left';
|
|
|
|
// Create vervangers dept_name field
|
|
cell = tr.insertCell(-1);
|
|
cell.className = "result nowrap";
|
|
cell = setInnerText(cell, dept_name);
|
|
cell.title = dept_name;
|
|
cell.align = 'left';
|
|
|
|
// Create vervangers prs_expire field
|
|
cell = tr.insertCell(-1);
|
|
cell.className = "result nowrap";
|
|
cell = setInnerText(cell, (prs_expire ? toDateString(new Date(parseInt(prs_expire, 10))) : "") );
|
|
cell.align = 'left';
|
|
|
|
FcltMgr.resized();
|
|
}
|
|
|
|
function RegisterItem(prs_key, prs_name, dept_name, prs_expire, rowIndex, editable)
|
|
{
|
|
// Indien al in de lijst toegevoegd, dan melding geven en return
|
|
if (selectedItems[" " + prs_key] != null) {
|
|
FcltMgr.alert(L("lcl_prs_substitute_inlist"));
|
|
return false;
|
|
}
|
|
|
|
selectedItems[" " + prs_key] = new VervangerItem(prs_key, prs_name, dept_name, prs_expire, rowIndex);
|
|
return true;
|
|
}
|
|
|
|
function CancelOrder(id_key)
|
|
{
|
|
FcltMgr.confirm(L("lcl_prs_cancelSubstitute"), function() {
|
|
if (selectedItems[" " + id_key] != null)
|
|
{
|
|
tr = selectedItems[" " + id_key].row;
|
|
rowIndex = tr.rowIndex;
|
|
document.getElementById("sel_items").deleteRow(rowIndex);
|
|
FcltMgr.resized();
|
|
nrdeleted++;
|
|
selectedItems[" " + id_key] = null;
|
|
}
|
|
});
|
|
}
|
|
|
|
function SaveSubstitutes()
|
|
{
|
|
// Form substitutes_string of prs_keys
|
|
var substitutes_string = "";
|
|
var substitutes_date = "";
|
|
for (i in selectedItems)
|
|
{
|
|
if (selectedItems[i] != null)
|
|
{
|
|
prs_key = selectedItems[i].prs_key;
|
|
prs_exp = selectedItems[i].prs_expire;
|
|
if (!isNaN(prs_key) && prs_key > 0)
|
|
{
|
|
substitutes_string += prs_key + ",";
|
|
substitutes_date += (prs_exp ? prs_exp : "-1") + ","; // -1 voor geen datum!
|
|
}
|
|
}
|
|
}
|
|
|
|
substitutes_string = substitutes_string.substring(0, substitutes_string.length - 1);
|
|
substitutes_date = substitutes_date.substring(0, substitutes_date.length - 1);
|
|
document.forms.u2.substitutes_string.value = substitutes_string;
|
|
document.forms.u2.substitutes_date.value = substitutes_date;
|
|
|
|
window.document.u2.submit();
|
|
return true;
|
|
}
|
|
|
|
|
|
|