Files
Facilitor/APPL/INS/ins_list.js
Peter Feij 413498318a 0-versie
svn path=/Website/trunk/; revision=6
2009-10-05 06:44:06 +00:00

206 lines
5.9 KiB
JavaScript

/*
$Revision: 1 $
$Modtime: 28-09-09 17:45 $
Status: 90%
*/
// FE functions
function insHistory(row)
{
$(row).addClass('dirty');
var cnt_key = row.ROWKEY;
var insData = eval('(' + row.ROWDATA + ')');
if (insData)
{
var insDeelDescr = insData.insDeelDescr;
var insKenmerkDeelKey = insData.insKenmerkDeelKey;
var insKenmerkKey = insData.insKenmerkKey;
var url = "Appl/INS/ins_history.asp?urole=" + urole
+ "&insdeelkey=" + cnt_key
+ "&inskenmerkdeelkey=" + insKenmerkDeelKey
+ "&inskenmerkkey=" + insKenmerkKey
+ "&insdeeldescr=" + insDeelDescr
+ "&consumption_reg=1";
FcltMgr.openDetail(url, insDeelDescr);
}
}
function insSave(rowArray)
{
var insKeyString = getKeyString(rowArray); // regels worden ook op dirty gezet
if (insKeyString != "")
{
$.post("ins_save_use.asp",
$("#inslist").serialize(),
function(data)
{
document.forms.inslist.submit();
});
}
}
function isGoodNumber(str, checkInteger)
{
var anum = /(^\d+$)|(^\d+\.\d*$)|(^\d*\.\d+$)/
if (checkInteger)
anum=/(^\d+$)/
return anum.test(str);
}
function checkEnter(e)
{ // e is event object passed from function invocation
e = event;
var characterCode = e.keyCode; // literal character code will be stored in this variable, character code is contained in IE's keyCode property
if (characterCode == 13) // if generated character code is equal to ascii 13 (if enter key)
return false;
else
return true;
}
function checkInput()
{
obj = event.srcElement;
new_val = obj.value;
sk_kenmerktype = obj.value1;
sk_lengte = parseInt(obj.value2, 10);
sk_nmin = parseInt(obj.value3, 10);
sk_nmax = parseInt(obj.value4, 10);
if (sk_kenmerktype == 'N')
{
if (new_val == "" ||
new_val >= 0 ||
(!isNaN(new_val) && isGoodNumber(new_val, true) && parseInt(new_val,10) >= 0))
{
i = obj.id.substring(3);
last_value = parseInt(document.all['last_val' + i].value,10);
if (new_val == "") new_val = last_value;
if (new_val < last_value)
{
alert(lcl_obj_value_to_low);
obj.focus();
inslist.action = 'javascript:0';
return false;
}
else if (!isNaN(sk_nmin) && new_val < sk_nmin)
{
alert(lcl_obj_value_below_nmin);
obj.focus();
inslist.action = 'javascript:0';
return false;
}
else if (!isNaN(sk_nmax) && new_val > sk_nmax)
{
alert(lcl_obj_value_below_nmax);
obj.focus();
inslist.action = 'javascript:0';
return false;
}
inslist.action = 'ins_search_list.asp';
return true;
}
alert(lcl_obj_bad_value);
obj.focus();
inslist.action = 'javascript:0';
return false;
}
else
{
// yet, only numerical kenmerktypes are supported
// alert(lcl_obj_only_num);
obj.value = "";
}
}
// FO en BO functions
function insLendOut(rowArray, isMulti)
{ // Uitlenen
insEdit(rowArray, isMulti, "LendOut");
}
function insReceive(rowArray, isMulti)
{ // Innemen
insEdit(rowArray, isMulti, "Receive");
}
function insEdit(rowArray, isMulti, mode)
{
var insKeyString = getKeyString(rowArray); // regels worden ook op dirty gezet
var nrAvailable = 0;
var nrLendout = 0;
for (var i = 0; i < rowArray.length; i++)
{
var insData = eval('(' + rowArray[i].ROWDATA + ')');
if (insData)
{
if (insData.insAvailable == 1)
++nrAvailable; // Geselecteerde aantal beschikbare/vrije objecten bijhouden
else
++nrLendout; // Geselecteerde aantal uitgegeven objecten bijhouden
}
}
switch(mode)
{
case "LendOut": { if (nrLendout > 0) // Er zijn uitgegeven objecten geselecteerd
{
alert(lcl_ins_not_all_available);
return; // Eerst selectie aanpassen
}
break;
}
case "Receive": { if (nrAvailable > 0) // Er zijn beschikbare/vrije objecten geselecteerd
{
alert(lcl_ins_not_all_lentout);
return; // Eerst selectie aanpassen
}
break;
}
default: { // Edit mode
break;
}
}
if (insKeyString != "")
{
if (fgraph)
{
var url = 'Appl/INS/ins_loader.asp?inskeystring=' + insKeyString
+ '&urole=' + urole;
}
else
{
var url = 'Appl/INS/ins_loader.asp?inskeystring=' + insKeyString
+ '&urole=' + urole
+ (mode && mode == "LendOut"? '&free=1' : '');
}
FcltMgr.openDetail(url, "lcl_object xx");
}
}
// Autorisatie kan heel complex zijn. Laat dat controleren door ins_loader.asp
function insDelete(rowArray, isMulti)
{
var insKeyString = getKeyString(rowArray); // regels worden ook op dirty gezet
// Multi indien insKeyString meerdere keys bevat
if (insKeyString != "")
{
// @@TODO: gebruik van showModalDialog is hier niet zo mooi. Deze geeft een extra popup scherm die geen functie heeft.
var sFeatures = "dialogHeight:260px;dialogWidth:600px;status=no;dialogHide=yes";
var url = "../INS/ins_loader.asp?doDelete=1&inskeystring=" + insKeyString + '&urole=' + urole + (isMulti? "&ismulti=1" : "");
var result = window.showModalDialog("../shared/ModalForm.asp", url, sFeatures);
if (!result)
return false; // cancel of niet voldoende rechten
$.post("ins_delete.asp",
{ inskeystring: insKeyString },
FcltCallback,
"json");
}
}