|
|
var currentRowId=1;
|
|
var banktype = "bank-eu";
|
|
|
|
function renumberTableRows(){
|
|
var row_no=1;
|
|
var table = document.getElementById("tabbody");
|
|
for (var i = 0, row; row = table.rows[i]; i++) {
|
|
// row.cells[0].innerHTML=row_no++;
|
|
}
|
|
return i;
|
|
}
|
|
|
|
|
|
function isFloat(val) {
|
|
var floatRegex = /^-?\d+(?:[.,]\d*?)?$/;
|
|
if (!floatRegex.test(val))
|
|
return false;
|
|
|
|
val = parseFloat(val);
|
|
if (isNaN(val))
|
|
return false;
|
|
return true;
|
|
}
|
|
|
|
|
|
function disableCurrency()
|
|
{
|
|
if (countRows()>0){
|
|
document.getElementById("a_currency").disabled=true;
|
|
}
|
|
else {
|
|
document.getElementById("a_currency").disabled=false;
|
|
}
|
|
|
|
}
|
|
|
|
function deleteTableRow(rowId){
|
|
|
|
|
|
var target = document.getElementById("upload-target"+rowId);
|
|
// this.message = app.message;
|
|
// var children = target.children;
|
|
|
|
// delete all uploaded elements
|
|
/* for (var i = 0; i < children.length; i++) {
|
|
var tmp = children[i].getAttribute("data-id");
|
|
alert ("DEL");
|
|
alert (tmp);
|
|
$K.ajax.post({
|
|
url: 'delete.php',
|
|
data: 'id='+tmp,
|
|
before: function(xhr) {},
|
|
success: function(response) {},
|
|
error: function(response) {}
|
|
});
|
|
}
|
|
*/
|
|
|
|
// delete the row from table
|
|
var element = document.getElementById("trow"+rowId);
|
|
|
|
element.parentNode.removeChild(element);
|
|
disableCurrency();
|
|
renumberTableRows();
|
|
// alert(rowId);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
function countRows(){
|
|
var ctr=0;
|
|
for (i=0; i<currentRowId; i++){
|
|
var element = document.getElementById("trow"+i);
|
|
if (element)
|
|
ctr++
|
|
}
|
|
return ctr;
|
|
}
|
|
|
|
|
|
function showAlert(text) {
|
|
|
|
$K.app.message.show( { message: `${text}`, position: 'centered', type: 'is-error' });
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
function reset2()
|
|
{
|
|
// document.getElementById("a_type").value="";
|
|
document.getElementById("a_description").value="";
|
|
document.getElementById("a_amount").value="";
|
|
setUploadField();
|
|
|
|
}
|
|
|
|
function addTableRow(){
|
|
|
|
var $node = $K.dom('#tabbody');
|
|
// create a new table row with id
|
|
var element = document.createElement('tr');
|
|
element.setAttribute("id", "trow"+currentRowId);
|
|
|
|
|
|
/* var a_type = document.getElementById("a_type").value;
|
|
if (!a_type.trim().length ) {
|
|
document.getElementById("a_type").focus();
|
|
showAlert("Bitte gib eine Auslagenart an!");
|
|
return;
|
|
}
|
|
*/
|
|
var a_date = document.getElementById("a_date").value;
|
|
if (!a_date.trim().length){
|
|
document.getElementById("a_date").focus();
|
|
showAlert("Bitte gib ein gültiges Datum an!");
|
|
return;
|
|
}
|
|
|
|
|
|
var a_description = document.getElementById("a_description").value;
|
|
if (!a_description.trim().length){
|
|
document.getElementById("a_description").focus();
|
|
showAlert("Bitte gib eine Beschreibung ein!");
|
|
return;
|
|
}
|
|
|
|
var a_amount = document.getElementById("a_amount").value;
|
|
if (!isFloat(a_amount)){
|
|
document.getElementById("a_amount").focus();
|
|
showAlert("Bitte gib einen gültigen Betrag ein!");
|
|
return;
|
|
}
|
|
|
|
|
|
var a_currency = document.getElementById("a_currency").value;
|
|
if (!a_currency.trim().length){
|
|
document.getElementById("a_currency").focus();
|
|
showAlert("Bitte gib eine Währung an!");
|
|
return;
|
|
}
|
|
|
|
var target = document.getElementById("upload-target"+currentRowId);
|
|
var children = target.children;
|
|
|
|
if (!children.length){
|
|
showAlert("Bitte lade mindestens einen Beleg hoch!");
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* a_type = "Hello";*/
|
|
|
|
var e="";
|
|
|
|
// add column for position no
|
|
// e += `<td>${a_type}
|
|
// <input type="hidden" name="type[${currentRowId}]" value="${a_type}" /></td>`;
|
|
|
|
// add coluemn for a_type (Auslagenart)
|
|
// e += `<td><textarea name="desc[${nextRowId}]" rows="2"></textarea> </td>`;
|
|
e += `<td>${a_date}
|
|
<input type="hidden" name="date[${currentRowId}]" value="${a_date}" /></td>`;
|
|
|
|
|
|
// add column for date
|
|
// e += `<td><input name="date[${nextRowId}]" type="date"/></td>`;
|
|
e += `<td>${a_description}
|
|
<input type="hidden" name="description[${currentRowId}]" value="${a_description}" /></td>`;
|
|
|
|
|
|
// add column for num
|
|
e += `<td>${a_amount}
|
|
<input type="hidden" name="amount[${currentRowId}]" value="${a_amount}" /></td>`;
|
|
|
|
|
|
|
|
// add column for file upload
|
|
/* e+= `
|
|
<td data-kube="">
|
|
<div class="form-item">
|
|
<div class="upload"
|
|
data-kube="upload"
|
|
data-type="file" data-multiple="true"
|
|
data-target="#upload-target${nextRowId}"
|
|
data-url="upload.php?row=${nextRowId}" data-url-remove="delete.php"
|
|
data-progress="true">
|
|
</div>
|
|
<div id="upload-target${nextRowId}" class="upload-target"></div>
|
|
</div>
|
|
</td>
|
|
*/
|
|
e += `<td>${a_currency}
|
|
<input type="hidden" name="currency[${currentRowId}]" value="${a_currency}" /></td>
|
|
</td>`;
|
|
|
|
// `;
|
|
// add delete bnutton
|
|
e +=
|
|
`<td><span
|
|
onclick="deleteTableRow(${currentRowId})"
|
|
class="close is-large">
|
|
</span></td>`;
|
|
|
|
|
|
$node.append(element);
|
|
element.innerHTML=(e);
|
|
// renumberTableRows();
|
|
currentRowId++;
|
|
reset2();
|
|
disableCurrency();
|
|
|
|
}
|
|
|
|
|
|
function setUploadField()
|
|
{
|
|
var e = $K.dom('#uploadfield');
|
|
var uf =`<div class="upload"
|
|
data-kube="upload"
|
|
data-type="file" data-multiple="true"
|
|
data-target="#upload-target${currentRowId}"
|
|
data-url="upload.php?row=${currentRowId}" data-url-remove="delete.php"
|
|
data-progress="true">Beleg hochladen
|
|
</div>
|
|
<div id="upload-target${currentRowId}" class="upload-target small"></div>
|
|
</div>
|
|
`;
|
|
document.getElementById("uploadfield").innerHTML=uf;
|
|
}
|
|
|
|
$K.add('module', 'kaform', {
|
|
init: function(app, context)
|
|
{
|
|
this.app = app;
|
|
this.message = app.message;
|
|
},
|
|
// catch event
|
|
onmessage: {
|
|
tabs: {
|
|
opened: function(sender)
|
|
{
|
|
console.log('Tab box is ',sender.getActiveBox().nodes[0]);
|
|
|
|
banktype = sender.getActiveBox().nodes[0].attributes.id.value;
|
|
|
|
console.log(banktype);
|
|
|
|
|
|
|
|
// console.log(sender);
|
|
// this.message.show({ message: 'My message' });
|
|
}
|
|
}
|
|
},
|
|
|
|
|
|
});
|
|
|
|
$K.init({
|
|
observer: true
|
|
});
|
|
|
|
|
|
// startup is here
|
|
|
|
|
|
|
|
// on startup clear session on server
|
|
$K.ajax.get({
|
|
url: 'clear.php',
|
|
data: '', // or key=value object
|
|
before: function(xhr) {},
|
|
success: function(response) {},
|
|
error: function(response) {}
|
|
});
|
|
|
|
setUploadField();
|
|
|
|
|
|
function check_field(fieldid,message){
|
|
var f = document.getElementById(fieldid).value;
|
|
if (! f.trim().length ) {
|
|
document.getElementById(fieldid).focus();
|
|
showAlert(message)
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
// add on table row
|
|
//addTableRow();
|
|
//
|
|
//
|
|
//
|
|
function downloadDocument()
|
|
{
|
|
/* if (!check_field("nickname", "Bitte gib deinen Nicknamen an!"))
|
|
return;
|
|
*/ if (!check_field("realname", "Bitte gib deinen Realnamen an!"))
|
|
return;
|
|
|
|
if (!check_field("email", "Bitte gib deinen E-Mail-Adresse an!"))
|
|
return;
|
|
if (!check_field("projectid", "Bitte gib idie Projekt-ID an!"))
|
|
return;
|
|
|
|
if (countRows()==0){
|
|
document.getElementById("a_description").focus();
|
|
showAlert("Bitte füge mind. eine Auslage hinzu!");
|
|
return;
|
|
}
|
|
|
|
if (banktype == "bank-eu"){
|
|
iban = document.getElementById('iban');
|
|
if (!IBAN.isValid(iban.value)){
|
|
document.getElementById("iban").focus();
|
|
showAlert("Bitte gib eine korrekte IBAN ein!");
|
|
return;
|
|
}
|
|
if (!document.getElementById('bic').value.trim().length){
|
|
document.getElementById("bic").focus();
|
|
showAlert("Bitte gib einen koreekte BIC an!");
|
|
return;
|
|
}
|
|
|
|
|
|
}
|
|
|
|
if (banktype == "bank-paypal"){
|
|
ii = document.getElementById('paypal');
|
|
if (!document.getElementById('paypal').value.trim().length){
|
|
document.getElementById("paypal").focus();
|
|
showAlert("Bitte gib einen PayPal Account an!");
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
document.getElementById('banktype').value=banktype;
|
|
document.getElementById("theform").submit();
|
|
}
|
|
|
|
|
|
/*
|
|
function checkIban()
|
|
{
|
|
iban = document.getElementById('iban');
|
|
if(IBAN.isValid(iban.value))
|
|
|
|
if( document.getElementById('eu').checked ) {
|
|
|
|
if(IBAN.isValid(iban.value))
|
|
{
|
|
if(iban.classList.contains('invalid')) iban.classList.remove('invalid');
|
|
iban.classList.add('valid');
|
|
}
|
|
else {
|
|
if(iban.classList.contains('valid')) iban.classList.remove('valid');
|
|
iban.classList.add('invalid');
|
|
}
|
|
} else {
|
|
if(iban.classList.contains('invalid')) iban.classList.remove('invalid');
|
|
if(iban.classList.contains('valid')) iban.classList.remove('valid');
|
|
}
|
|
}
|
|
*/
|
|
|
|
|
|
|