@ -1,158 +0,0 @@ | |||
<!doctype html> | |||
<html> | |||
<head> | |||
<title>Kostenerstattungsforumlar</title> | |||
<meta charset="utf-8"> | |||
<meta name="viewport" content="width=device-width, initial-scale=1"> | |||
<!-- Kube CSS --> | |||
<link rel="stylesheet" href="kube/dist/css/kube.min.css"> | |||
<link rel="stylesheet" href="kube/dist/addons/kube-addons.min.css" /> | |||
</head> | |||
<body> | |||
<h1>Antrag auf Kostenerstattung</h1> | |||
<p>Bitte beachte beim Ausfüllen die | |||
<a href="https://www.wikimedia.de/wiki/ | |||
Gesch%C3%A4ftsordnung#Reisekostenordnung"> | |||
Reisekostenordnung</a>. | |||
</p> | |||
<h2>Bitte fülle die allgemeinen Daten für die Erstattung aus.</h2> | |||
<form method="POST"> | |||
<label>Dein Projekt / Zweck der Reise</label> | |||
<input type="text" name="projekt"/> | |||
</form> | |||
<h2>Bitte trage deine einzelnen Kostenpositionen ein.</h2> | |||
<span data-kube="datepicker" data-format="%F %d, %Y">July 10, 2018</span> | |||
<p> | |||
Bitte trage nur eine Ausgabe pro Zeile ein, lege den | |||
Originalbeleg dem Antrag bei und kennzeichne den Beleg | |||
mit der entsprechenden Zeilennummer. Aus der Beschreibung | |||
soll zu ersehen sein, ob es sich um Transport, Dienstleistung, | |||
Materialien, Verpflegung oder ähnliches handelt. | |||
</p> | |||
<input type="date"/> | |||
<br><br> | |||
<span data-kube="datepicker" data-format="%F %d, %Y">July 10, 2018</span> | |||
<br><br> | |||
<table class="is-bordered"> | |||
<thead> | |||
<tr> | |||
<th>Pos.</th> | |||
<th>Beschreibung</th> | |||
<th>Belegdatum</th> | |||
<th>Betrag</th> | |||
<th>Beleg</th> | |||
</tr> | |||
</thead> | |||
<tbody> | |||
<tr id="row0"> | |||
<td>1</td> | |||
<td> | |||
<textarea rows="2"> </textarea> | |||
<td style="overflow:visible;" > | |||
<input type="date"/> | |||
</td> | |||
<td style="overflow:visible;" > | |||
<input type="num"/> | |||
</td> | |||
<td style="overflow:visible;" > | |||
<div class="form-item"> | |||
<div class="upload" data-kube="upload" data-type="file" | |||
data-target="#my-upload-target" | |||
data-url="/upload/" data-url-remove="/upload-remove/"> | |||
</div> | |||
<div id="my-upload-target" class="upload-target"> | |||
<div class="upload-item" data-id="3746"> | |||
<span class="close"></span> | |||
<span>My file.txt <em>10 Kb</em></span> | |||
<input type="hidden" name="file-uploaded[]" value="3746"> | |||
</div> | |||
</div> | |||
</div> | |||
</td> | |||
</tr> | |||
</tbody> | |||
</table> | |||
<h3 data-kube="editable" placeholder="Enter text here...">hello world</h3> | |||
<div class="alert">Heho!</div> | |||
<div data-kube="tube"> | |||
Kube Data | |||
</div> | |||
<input type="text" data-kube="tube"/> | |||
<!-- Kube JS (optional if you are using Kube CSS only) --> | |||
<script src="kube/dist/js/kube.min.js"></script> | |||
<script src="kube/dist/addons/kube-addons.min.js"></script> | |||
<script> | |||
$K.add('module','tube', { | |||
init: function(app,context){ | |||
this.app = app; | |||
// getting context and the module element | |||
this.context = context; | |||
this.$element = context.getElement(); | |||
}, | |||
start: function() | |||
{ | |||
/* this.$element.on('keydown.kube.editable', this._hui.bind(this)); | |||
this.$element.on('paste.kube.editable', this._hui.bind(this)); | |||
this.$element.on('blur.kube.editable', this._hui.bind(this)); | |||
*/ | |||
this.$element.on('click', this._hui.bind(this)); | |||
this._build(); | |||
}, | |||
// public | |||
myMethod: function() | |||
{ | |||
}, | |||
_hui: function(e) | |||
{ | |||
alert(e); | |||
}, | |||
// private | |||
_build: function() | |||
{ | |||
}, | |||
onmessage: { | |||
alert: { | |||
closed: function(sender) | |||
{ | |||
alert(sender); | |||
// caught | |||
} | |||
} | |||
} | |||
}); | |||
$K.init(); | |||
</script> | |||
</body> | |||
</html> |
@ -1,4 +0,0 @@ | |||
<?php | |||
session_start(); | |||
$_SESSION['files']=array(); | |||
error_log("clear called\n"); |
@ -1,141 +0,0 @@ | |||
<!doctype html> | |||
<html lang="de"> | |||
<head> | |||
<title>Kostenerstattungsforumlar</title> | |||
<meta charset="utf-8"> | |||
<meta name="viewport" content="width=device-width, initial-scale=1"> | |||
<!-- Kube CSS --> | |||
<link rel="stylesheet" href="css/kube.min.css"> | |||
<link rel="stylesheet" href="addons/kube-addons.min.css" /> | |||
<link rel="stylesheet" href="master.css" /> | |||
</head> | |||
<body> | |||
<div class="page is-container"> | |||
<div class="main-sidebar">Sidebar</div> | |||
<div class="main-content"> | |||
<h1>Antrag auf Kostenerstattung</h1> | |||
<p>Bitte beachte beim Ausfüllen die | |||
<a href="https://www.wikimedia.de/wiki/ | |||
Gesch%C3%A4ftsordnung#Reisekostenordnung"> | |||
Reisekostenordnung</a>. | |||
</p> | |||
<h3>Bitte fülle die allgemeinen Daten für die Erstattung aus.</h3> | |||
<form action="submit.php" method="POST"> | |||
<fieldset> | |||
<legend>Dein Projekt / Zweck der Reise</legend> | |||
<input required type="input" | |||
size="32" id="projekt" name="project" | |||
placeholder="Projekt xy" /> | |||
</fieldset> | |||
<fieldset> | |||
<legend>Deine Ansprechperson bei Wikimedia</legend> | |||
<input required type="input" size="32" id="wmdecontact" | |||
name="wmdecontact" placeholder="John Doe" /> | |||
</fieldset> | |||
<fieldset> | |||
<legend>Deine Kontaktdaten</legend> | |||
<label for="realname" >Dein Realname</label> | |||
<input required type="input" size="32" | |||
name="realname" placeholder="Corinna Commonsuser" /> | |||
<label for="email">E-Mail-Adresse</label> | |||
<input required type="email" size="32" id="email" | |||
name="email" placeholder="name@example.org" /> | |||
<label for="phone" >Telefonnummer</label> | |||
<input required type="tel" size="32" "phone" name="phone" | |||
placeholder="0123-456789" /> | |||
</fieldset> | |||
<fieldset class="iblock" id="bankdetails"> | |||
<legend lang="de">Auszahlungsweg</legend> | |||
<legend lang="en">Payout method</legend> | |||
<input class="screen" type="radio" id="eu" name="bank" value="EU" checked> | |||
<label class="screen radio" for="eu" | |||
lang="de">EU-Banküberweisung</label> | |||
<label class="screen radio" for="eu" | |||
lang="en">EU bank transfer</label> | |||
<input class="screen" type="radio" id="noneu" name="bank" value="Non-EU"><label class="screen radio" for="noneu" lang="de">Non-EU-Banküberweisung</label><label class="screen radio" for="noneu" lang="en">Non EU bank transfer</label> | |||
<input class="screen" type="radio" id="paypal" name="bank" value="PayPal"><label class="screen radio" for="paypal">PayPal</label> | |||
<input class="screen" type="radio" id="bar" name="bank" value="Bar"><label class="screen radio" for="bar" lang="de">Bargeld</label><label class="screen radio" for="bar" lang="en">Cash</label> | |||
<label class="EU nonEU" for="owner" lang="de">Kontoinhaber</label><label class="EU nonEU" for="owner" lang="en">Bank account owner</label><input class="EU nonEU" type="input" size="32" id="ownerDe" name="Owner" placeholder="wenn abweichend vom Realnamen" lang="de" /><input class="EU nonEU" type="input" size="32" id="ownerEn" name="Owner" placeholder="if different from full legal name" lang="en" /> | |||
<label class="EU nonEU" for="iban" lang="de">IBAN</label><label class="EU nonEU" for="iban" lang="en">Bank account number</label><input class="EU nonEU" type="input" size="32" id="iban" name="IBAN" placeholder="DE0123…" /> | |||
<label class="EU nonEU" for="bic">BIC / SWIFT</label><input class="EU nonEU" type="input" size="32" id="bic" name="BIC" placeholder="LBMU…" /> | |||
<label class="EU nonEU" for="bank" lang="de">Name der Bank</label><label class="EU nonEU" for="bank" lang="en">Name of bank</label><input class="EU nonEU" type="input" size="32" id="bank" name="Bankname" placeholder="Banky McBankface" /> | |||
<label class="nonEU" for="bankaddress" lang="en">Bank address</label><textarea lang="en" class="nonEU" id="bankaddress" style="resize:both;" cols="32" rows="4" placeholder="Street and house number | |||
Postal code and city | |||
Country"></textarea> | |||
<label class="nonEU" for="address" lang="en">Your address</label><textarea lang="en" class="nonEU" id="address" style="resize:both;" cols="32" rows="4" placeholder="Street and house number | |||
Postal code and city | |||
Country"></textarea> | |||
<label class="EU nonEU" for="comments" lang="en">Further comments</label><textarea lang="en" class="EU nonEU" id="comments" style="resize:both;" cols="32" rows="4" placeholder="e.g. intermediary bank, | |||
reasons for differing account owner"></textarea> | |||
<label class="nonEU" for="bankaddress" lang="de">Bankanschrift</label><textarea lang="de" class="nonEU" id="bankaddress" style="resize:both;" cols="32" rows="4" placeholder="Straße und Hausnummer | |||
Postleitzahl und Ort | |||
Land"></textarea> | |||
<label class="nonEU" for="address" lang="de">Deine Anschrift</label><textarea lang="de" class="nonEU" id="address" style="resize:both;" cols="32" rows="4" placeholder="Straße und Hausnummer | |||
Postleitzahl und Ort | |||
Land"></textarea> | |||
<label class="EU nonEU" for="comments" lang="de">Weitere Anmerkungen</label><textarea lang="de" class="EU nonEU" id="comments" style="resize:both;" cols="32" rows="4" placeholder="z.B. intermdiäre Bank, | |||
Grund für abweichende Kontoinhaberin"></textarea> | |||
<label class="paypal" for="accountnumber">PayPal account</label><input class="paypal" type="input" size="32" id="paypal" placeholder="paypal@example.com" /> | |||
</fieldset> | |||
<label>Dein Projekt / Zweck der Reise</label> | |||
<input type="text" name="projekt"/> | |||
<h2>Bitte trage deine einzelnen Kostenpositionen ein.</h2> | |||
<p> | |||
Bitte trage nur eine Ausgabe pro Zeile ein, lege den | |||
Originalbeleg dem Antrag bei und kennzeichne den Beleg | |||
mit der entsprechenden Zeilennummer. Aus der Beschreibung | |||
soll zu ersehen sein, ob es sich um Transport, Dienstleistung, | |||
Materialien, Verpflegung oder ähnliches handelt. | |||
</p> | |||
<table id="tabtab" class="is-bordered"> | |||
<thead> | |||
<tr> | |||
<th>Pos.</th> | |||
<th>Beschreibung</th> | |||
<th>Belegdatum</th> | |||
<th>Betrag</th> | |||
<th>Beleg</th> | |||
</tr> | |||
</thead> | |||
<tbody id="tabbody"> | |||
</tbody> | |||
</table> | |||
<input type="submit"/> | |||
</form> | |||
<button onclick="addTableRow();" | |||
class="button">Position hinzufügen</button> | |||
<button onclick="submitTable();" | |||
class="button">Absenden</button> | |||
<!-- Kube JS (optional if you are using Kube CSS only) --> | |||
<script src="js/kube.min.js"></script> | |||
<script src="addons/upload/kube.upload.min.js"></script> | |||
<script src="addons/kube-addons.min.js"></script> | |||
<script src="kaform.js"></script> | |||
</div> | |||
</div> | |||
</body> | |||
</html> |
@ -1,225 +0,0 @@ | |||
var nextRowId=1; | |||
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++; | |||
} | |||
} | |||
function deleteTableRow(rowId){ | |||
var target = document.getElementById("upload-target"+rowId); | |||
var children = target.children; | |||
// delete all uploaded elements | |||
for (var i = 0; i < children.length; i++) { | |||
var tmp = children[i].getAttribute("data-id"); | |||
$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); | |||
renumberTableRows(); | |||
// alert(rowId); | |||
} | |||
function addTableRow(){ | |||
var $node = $K.dom('#tabbody'); | |||
// create a new table row with id | |||
var element = document.createElement('tr'); | |||
element.setAttribute("id", "trow"+nextRowId); | |||
var e=""; | |||
// add column for position no | |||
e += '<td></td>'; | |||
// add coluemn for description | |||
e += `<td><textarea name="desc[${nextRowId}]" rows="2"></textarea> </td>`; | |||
// add column for date | |||
e += `<td><input name="date[${nextRowId}]" type="date"/></td>`; | |||
// add column for num | |||
e += `<td><input name="amount[${nextRowId}]" type="num"/></td>`; | |||
// add column for file upload | |||
e+= ` | |||
<td data-kube=""> | |||
<form action=""> | |||
<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" data-url-remove="delete.php" | |||
data-progress="true"> | |||
</div> | |||
<div id="upload-target${nextRowId}" class="upload-target"></div> | |||
</div> | |||
</form> | |||
</td> | |||
`; | |||
// add delete bnutton | |||
e += | |||
`<td><span | |||
onclick="deleteTableRow(${nextRowId})" | |||
class="close is-large"> | |||
</span></td>`; | |||
$node.append(element); | |||
element.innerHTML=(e); | |||
renumberTableRows(); | |||
nextRowId++; | |||
} | |||
function submitTable(){ | |||
alert("submit"); | |||
var obj; | |||
var table = document.getElementById("tabbody"); | |||
for (var i = 0, row; row = table.rows[i]; i++) { | |||
console.log(row.cells[1]); | |||
// var n = row.cells[1].value; | |||
// alert(n); | |||
} | |||
} | |||
$K.add('module','kaform', { | |||
init: function(app,context){ | |||
this.app = app; | |||
// getting context and the module element | |||
this.context = context; | |||
this.$element = context.getElement(); | |||
}, | |||
hello: function(){ | |||
alert ("hello function of kaform"); | |||
}, | |||
start: function() | |||
{ | |||
/*this.$element.on('keydown.kube.editable', this._hui.bind(this)); | |||
this.$element.on('paste.kube.editable', this._hui.bind(this)); | |||
this.$element.on('blur.kube.editable', this._hui.bind(this)); | |||
*/ | |||
// alert(this.$element); | |||
// this.$element.on('click', this.addRow.bind(this)); | |||
this._build(); | |||
}, | |||
addRow: function() | |||
{ | |||
var $node = $K.dom('#tabbody'); | |||
// create a new table row with id | |||
var element = document.createElement('tr'); | |||
element.setAttribute("id", "trow"+nextRowId); | |||
var e=""; | |||
// add column for position no | |||
e += '<td></td>'; | |||
// add coluemn for description | |||
e += '<td><textarea rows="2"></textarea> </td>'; | |||
// add column for date | |||
e += '<td style="overflow:visible;"><input type="date"/></td>'; | |||
// add column for num | |||
e += '<td style="overflow:visible;"><input type="num"/></td>'; | |||
// add column for file upload | |||
e+= ` | |||
<td data-kube=""> | |||
<form action=""> | |||
<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" data-url-remove="delete.php" | |||
data-progress="true"> | |||
</div> | |||
<div id="upload-target${nextRowId}" class="upload-target"></div> | |||
</div> | |||
</form> | |||
</td> | |||
`; | |||
// add delete bnutton | |||
e += | |||
`<td><span | |||
onclick="deleteTableRow('trow${nextTableRow}'" | |||
class="close is-large"> | |||
</span></td>`; | |||
$node.append(element); | |||
element.innerHTML=(e); | |||
renumberTableRows(); | |||
nextRowId++; | |||
}, | |||
// private | |||
_build: function() | |||
{ | |||
}, | |||
onmessage: { | |||
alert: { | |||
closed: function(sender) | |||
{ | |||
alert(sender); | |||
// caught | |||
} | |||
} | |||
} | |||
}); | |||
// startup is here | |||
$K.init({ | |||
observer: true | |||
}); | |||
// 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) {} | |||
}); | |||
// add on table row | |||
addTableRow(); |
@ -1,41 +0,0 @@ | |||
/*body { | |||
margin: 2em; | |||
max-width: 80em; | |||
} | |||
*/ | |||
.main-sidebar { | |||
@include make-sidebar(440px); | |||
/* margin-right: 61px;*/ | |||
width:20em; | |||
@include for-mobile { | |||
margin-right: 0; | |||
} | |||
} | |||
.main-sidebar-secondary { | |||
@include make-sidebar(240px); | |||
margin-left: 16px; | |||
@include for-mobile { | |||
margin-left: 0; | |||
} | |||
} | |||
.main-content { | |||
/* @include make-content;*/ | |||
/* width: 100em;*/ | |||
max-width:100em; | |||
} | |||
/* | |||
#de:checked~header :lang(en) { display: none; } | |||
#en:checked~header :lang(de) { display: none; } | |||
#de:checked~div :lang(en) { display: none; } | |||
#en:checked~div :lang(de) { display: none; } | |||
#de:checked~main :lang(en) { display: none; } | |||
#en:checked~main :lang(de) { display: none; } | |||
*/ | |||
/*lang(en) {display: none;}*/ |
@ -1,12 +0,0 @@ | |||
<?php | |||
var_dump($_POST); | |||
convert_file | |||
echo "<br>"; | |||
foreach ($_POST['desc'] as $key => $val) { | |||
echo "$key -> $val<br>"; | |||
} |
@ -1,2 +0,0 @@ | |||
<?php | |||
phpinfo(); |