76 Commits

Author SHA1 Message Date
Tobias Herre ab235e2e07 Don't use absolute path for language switch 5 months ago
Tobias Herre b053ce21da Changes made by Luca - multi language support 5 months ago
Tobias Herre 6ece293ae7 Fixed bank account owner 11 months ago
Tobias Herre 44aeeae0db Ideenfoerderung -> Communitys und Engagement 1 year ago
Tobias Herre 3de875b138 Download after sent per mail 1 year ago
Tobias Herre 67d602af8d Currencies in PDF are displayed 1 year ago
Tobias Herre 70a1e04176 Routing number 1 year ago
Tobias Herre b80587ca54 Added imprint and privacey links 1 year ago
Tobias Herre d7132e1f0d Some additional hints added 1 year ago
Tobias Herre 712032e235 Open Links in new Window 1 year ago
Tobias Herre e82671d0f4 Renamed EU -> SEPA 1 year ago
root f449e09e2a Fixed spelling 1 year ago
root 788839a425 Fixed spelling 1 year ago
Tobias Herre dd2c48c2a5 removed ka.php in link to send one more reimburstment claim 1 year ago
Tobias Herre 70001610f1 Enabled jpg/png/tiff/gif uploads. 1 year ago
Tobias Herre 5c0e5ab2b8 Merge branch 'master' of https://srcsrv.wikimedia.de/tohe/wmdeit_kaform 1 year ago
Tobias Herre 5bdfadb80e Fix issue #11 part 2 1 year ago
Tobias Herre 809e888807 Fix issue #11 1 year ago
Tobias Herre c535d2a060 config for convert and pdftk 1 year ago
Tobias Herre db5991c0de Accepts and converts Jpegs 1 year ago
root e2513081f0 Convert cmd in config.php not ignored 1 year ago
Tobias Herre 147de59bac Fix: No mails w/o attachment, after upload of wrong files 1 year ago
Tobias Herre 5fe39a1cbf Allow to configure CC mailing 1 year ago
Tobias Herre 6ad54e1a3a Changed Kontaktperson example Sandro to generic person 1 year ago
Tobias Herre 305f4c9c48 Moved help-text #1 to top of form 1 year ago
Tobias Herre 87f1e9b0bf Fixx issue #5 1 year ago
Tobias Herre e5e4eccf8d Fix issue #4 1 year ago
Tobias Herre 5492dc24cd Fix issue #4 1 year ago
Tobias Herre e0b98b0cd1 Changed text for "Vorschuss erhalten" 1 year ago
Tobias Herre 6ad2e92bb8 Fixes issue #2 1 year ago
Tobias Herre 91961198c4 Some fixes regarding multi-lang and css 1 year ago
root 297b5ee5d0 Use always <?php instead of <? 1 year ago
Tobias Herre a16ef8a316 Responsive table 1 year ago
Tobias Herre 3d868cc774 Noew rthere is an index.php 1 year ago
Tobias Herre d24ae73419 Merge branch 'master' of https://srcsrv.wikimedia.de/tohe/wmdeit_kaform 1 year ago
Tobias Herre 2dc768173c uses master.scss 1 year ago
Tobias Herre 2e0c9d3194 Moved form into form.php 1 year ago
Sandro Halank 45f27e1ca6 fix 2 years ago
Sandro Halank 7e63637f19 fix 2 years ago
Sandro Halank 88f01e2a63 fix space 2 years ago
Sandro Halank 9d70eb73ad typo 2 years ago
Sandro Halank ef4ea9dfd3 fix 2 years ago
Sandro Halank 4b85be1bbc add translation for ka.php:29 2 years ago
Tobias Herre 37eba4283b fixed englishi/german messages in ka.php and messages.p 2 years ago
Sandro Halank bed8c8c542 fix 2 years ago
Sandro Halank 5e99e90269 add and fix infos 2 years ago
Sandro Halank b68e71a52e fix 2 years ago
Sandro Halank 804a02cec6 fxes 2 years ago
Sandro Halank 9d190223a0 fix 2 years ago
Sandro Halank 7a0ebf1a2c fix 2 years ago
Tobias Herre 84dc69ee81 Removed "this has to be tranlated 2 years ago
Tobias Herre b9cbeb2914 English translation complete 2 years ago
root b8e65e9c98 fixes to run on ubuntu with utf8 2 years ago
Tobias Herre 891b04e0dc lang en_us hard coded 2 years ago
Tobias Herre e12288a9b7 new message.po fiiles 2 years ago
Tobias Herre c9e2081d42 More translations added 2 years ago
Tobias Herre 9964249d49 More translatrions including h1.php and h2.php 2 years ago
Tobias Herre 8f8f9b1505 Language support (partial) 2 years ago
Tobias Herre 8f35208d33 Moved sned buttons to the right place 2 years ago
Sandro Halank ed493c4233 fix grammar 2 years ago
Sandro Halank d9aaedd624 add routing number info 2 years ago
Sandro Halank c841a02a5a add currency info 2 years ago
Sandro Halank 00d4f7a547 remove info 2 years ago
Tobias Herre bf07702a0b Global currency selection 2 years ago
Sandro Halank a3b05f21cf fix line break 2 years ago
Sandro Halank 6cae0d3adf „h2.php“ ändern 2 years ago
Sandro Halank ee74a9a9d3 „h2.php“ ändern 2 years ago
Tobias Herre a0bc4559ed isMailable works correct now 2 years ago
Tobias Herre 65427097ba Some refactoring and cleaning 2 years ago
Tobias Herre cf2b7f75e1 PDF generation works again 2 years ago
Tobias Herre 8478eb1f94 New (old) layout implmented 2 years ago
Tobias Herre 769eada180 list missing php-fileinfo module 2 years ago
Tobias Herre f6a48e67f2 Merge branch 'master' of https://srcsrv.wikimedia.de/tohe/wmdeit_kaform 2 years ago
Tobias Herre ca58eba355 Changed order of checks for empty fields 2 years ago
Tobias Herre 28a876cc36 Update 'README.md' 2 years ago
Tobias Herre 0f09df986b Re-enabled currency selection 2 years ago
  1. 5
      #kostenerstattung.html#
  2. 3
      README.md
  3. 1186
      Spyc.php
  4. 5
      TCPDF/composer.lock
  5. 6
      TCPDF/vendor/composer/ClassLoader.php
  6. 3
      TCPDF/vendor/composer/autoload_real.php
  7. 16
      config.sample.php
  8. 2
      delete.php
  9. 211
      form.php
  10. 15
      h1.php
  11. 55
      h2.php
  12. 133
      index.php
  13. 221
      ka.php
  14. 320
      kaform.js
  15. 212
      locale.yaml
  16. 179
      locale/en-US/LC_MESSAGES/messages.po
  17. 14
      locale/en-US/h1.php
  18. 46
      locale/en-US/h2.php
  19. 179
      locale/en_US/LC_MESSAGES/messages.po
  20. 14
      locale/en_US/h1.php
  21. 46
      locale/en_US/h2.php
  22. 163
      master.css
  23. 109
      master.scss
  24. 166
      messages.po
  25. 10
      mkm.sh
  26. 12
      scss/vars.scss
  27. 218
      submit.php
  28. 86
      upload.php

5
#kostenerstattung.html#

@ -317,7 +317,7 @@
<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="owner" lang="de">Kontoinhabende Person</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" />
@ -336,8 +336,7 @@ 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="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 kontoinhabende Person, Routing-Nummer (für Nicht-EU-Überweisungen)"></textarea>
<label class="paypal" for="accountnumber">PayPal account</label><input class="paypal" type="input" size="32" id="paypal" placeholder="paypal@example.com" />
</fieldset>

3
README.md

@ -1,4 +1,4 @@
# KAFreom
# Kostenerstattungsformular
## INSTALL
@ -10,6 +10,7 @@ Install the following programs and PHP modules:
* php-openssl
* php-ctype
* php-filter
* php-fileinfo
Copy **config.sample.php** to **config.php**, and edit **config.php** to your needs.

1186
Spyc.php
File diff suppressed because it is too large
View File

5
TCPDF/composer.lock

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "5726aa312f77aee905146d13d6be7179",
"content-hash": "677cb3d4da030c7eb3bf355a20d32026",
"packages": [],
"packages-dev": [],
"aliases": [],
@ -15,5 +15,6 @@
"platform": {
"php": ">=5.3.0"
},
"platform-dev": []
"platform-dev": [],
"plugin-api-version": "1.1.0"
}

6
TCPDF/vendor/composer/ClassLoader.php

@ -60,7 +60,7 @@ class ClassLoader
public function getPrefixes()
{
if (!empty($this->prefixesPsr0)) {
return call_user_func_array('array_merge', $this->prefixesPsr0);
return call_user_func_array('array_merge', array_values($this->prefixesPsr0));
}
return array();
@ -279,7 +279,7 @@ class ClassLoader
*/
public function setApcuPrefix($apcuPrefix)
{
$this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null;
$this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null;
}
/**
@ -377,7 +377,7 @@ class ClassLoader
$subPath = $class;
while (false !== $lastPos = strrpos($subPath, '\\')) {
$subPath = substr($subPath, 0, $lastPos);
$search = $subPath.'\\';
$search = $subPath . '\\';
if (isset($this->prefixDirsPsr4[$search])) {
$pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1);
foreach ($this->prefixDirsPsr4[$search] as $dir) {

3
TCPDF/vendor/composer/autoload_real.php

@ -13,6 +13,9 @@ class ComposerAutoloaderInitd1f3ddd5074c5b24424f0f0bd620bf26
}
}
/**
* @return \Composer\Autoload\ClassLoader
*/
public static function getLoader()
{
if (null !== self::$loader) {

16
config.sample.php

@ -1,13 +1,15 @@
<?php
$CONVERT_CMD = "/usr/local/bin/pdftk";
$CONVERT_CMD = "/usr/local/bin/convert";
$PDFTK_CMD = "/usr/local/bin/pdftk";
$mailHost = 'mailserver.example.com'; // Specify main and backup server
$mailPort = 587; // Set the SMTP port
$mailSMTPAuth = true; // Enable SMTP authentication
$mailUsername = 'mailuser'; // SMTP username
$mailPassword = 'mailpasswd'; // SMTP password
$mailSMTPSecure = 'tls'; // Enable encryption, 'ssl' also accepted
$mailHost = 'mailserver.example.com'; // Specify main and backup server
$mailPort = 587; // Set the SMTP port
$mailSMTPAuth = true; // Enable SMTP authentication
$mailUsername = 'mailuser'; // SMTP username
$mailPassword = 'mailpasswd'; // SMTP password
$mailSMTPSecure = 'tls'; // Enable encryption, 'ssl' also accepted
$mailDest = "someone@example.com";
$mailDestCC = "someone_cc@example.com"; // leave empty if no CC is required
$mailFrom = "someone@example.com";

2
delete.php

@ -6,6 +6,6 @@ if (!isset($_POST['id']))
unset( $_SESSION['files'][$_POST['id']] );
error_log("Delete Document $_POST[id]");
#error_log("Delete Document $_POST[id]");

211
form.php

@ -0,0 +1,211 @@
<h1>
<?php echo $localeYaml['mainheader'][$loc]?>
</h1>
<p>
<?php echo $localeYaml['mainheader_subtext_1'][$loc]?><BR>
<?php echo $localeYaml['mainheader_subtext_2'][$loc]?><BR><BR>
<?php
$ct = @file_get_contents( "./locale/$loc/h1.php");
if ($ct==false)
$ct = file_get_contents( "h1.php");
echo $ct;
?>
</p>
<form data-kube="kaform" name="theform" id="theform" action="submit.php" method="POST">
<fieldset> <legend><?php echo $localeYaml['form_1_header'][$loc]?></legend>
<div class="is-row">
<div class="is-col">
<input required type="input"
size="32" id="projectid" name="project"
placeholder="<?php echo $localeYaml['form_1_placeholder_1'][$loc]?>" />
</div>
</div>
<div class="is-row">
<div class="is-col">
<input required type="input" size="32"
` id="realname" name="realname" placeholder="<?php echo $localeYaml['form_1_placeholder_2'][$loc]?>" />
</div>
<div class="is-col">
<input type="input" size="32"
` id="wmdecontact" name="wmdecontact"
placeholder="<?= $localeYaml['form_1_placeholder_3'][$loc]?>" />
</div>
</div>
<div class="is-row">
<div class="is-col">
<input type="tel" size="32"
id="phone" name="phone"
placeholder="<?= $localeYaml['form_1_placeholder_4'][$loc]?>" />
</div>
<div class="is-col">
</div>
</div>
<div class="is-row">
<div class="is-col">
<input required type="email" size="32" id="email"
name="email" placeholder="<?= $localeYaml['form_1_placeholder_5'][$loc]?>" />
</div>
<div class="is-col">
</div>
</div>
<div class="is-row">
<div class="is-col">
<nav class="tabs" data-kube="tabs" data-equal="false">
<a href="#bank-eu" class="is-active"><?=$localeYaml['form_1_SEPA'][$loc]?></a>
<a href="#bank-noneu"><?=$localeYaml['form_1_noSEPA'][$loc]?></a>
</nav>
<section id="bank-eu">
<div class="is-row">
<div class="is-col">
<input type="input" size="32" name="sepa_owner" placeholder="<?=$localeYaml['form_1_SEPA_placeholder_1'][$loc]?>" />
</div>
<div class="is-col">
</div>
</div>
<div class="is-row">
<div class="is-col">
<input type="input" size="32" id="iban" name="iban" placeholder="<?=$localeYaml['form_1_SEPA_placeholder_2'][$loc]?>" />
</div>
<div class="is-col">
<input type="input" size="32" id="bic" name="bic" placeholder="<?=$localeYaml['form_1_SEPA_placeholder_3'][$loc]?>" />
</div>
</div>
<textarea id="comments" name="comments" style="resize:none;" cols="32" rows="4"
placeholder="<?=$localeYaml['form_1_SEPA_placeholder_4'][$loc]?>"></textarea >
</section>
<section id="bank-noneu">
<div class="is-row">
<div class="is-col">
<input type="input" size="32" name="non_sepa_owner" placeholder="<?=$localeYaml['form_1_noSEPA_placeholder_1'][$loc]?>" />
</div>
<div class="is-col">
<input type="input" size="32" id="n_bic" name="n_bic" placeholder="<?=$localeYaml['form_1_noSEPA_placeholder_2'][$loc]?>" />
</div>
</div>
<div class="is-row">
<div class="is-col">
<input type="input" size="32" id="n_iban" name="n_iban" placeholder="<?=$localeYaml['form_1_noSEPA_placeholder_3'][$loc]?>" />
</div>
<div class="is-col">
<input type="input" size="32" id="n_routing" name="n_routing" placeholder="<?=$localeYaml['form_1_noSEPA_placeholder_4'][$loc]?>" />
</div>
</div>
<input class="EU nonEU" type="input" size="32" id="n_bank" name="n_bankname" placeholder="<?=$localeYaml['form_1_noSEPA_placeholder_5'][$loc]?>" />
<textarea class="nonEU" name="n_bankaddress" id="n_bankaddress" style="resize:both;" cols="32" rows="4"
placeholder="<?=$localeYaml['form_1_noSEPA_placeholder_6'][$loc]?>"></textarea>
<br>
<textarea name="n_address" lang="de" class="nonEU" id="n_address" style="resize:both;" cols="32" rows="4"
placeholder="<?=$localeYaml['form_1_noSEPA_placeholder_7'][$loc]?>"></textarea>
<br>
<textarea id="n_comments" name="n_comments"
style="resize:both;" cols="32" rows="4"
placeholder="<?=$localeYaml['form_1_noSEPA_placeholder_8'][$loc]?>"></textarea>
</section>
</div> <!-- i-col -->
</div> <!-- is-row -->
</fieldset>
<fieldset id="fieldset2"> <legend><?=$localeYaml['form_2_header'][$loc]?></legend>
<div class="is-row">
<div class="is-col">
<?=$localeYaml['form_2_currency'][$loc]?>
</div>
<div class="is-col">
<select onchange="renumberTableRows()" name='currency' id="currency" >
<option value="EUR">EUR</option>
<option value="USD">USD</option>
<option value="CHF">CHF</option>
<option value="XBT">XBT</option>
</select>
</div>
<div class="is-col">
</div>
</div>
<table id="tabtab" class="is-responsive is-bordered is-striped">
<thead>
<tr>
<th><?=$localeYaml['form_2_table_1'][$loc]?></th>
<th><?=$localeYaml['form_2_table_2'][$loc]?></th>
<th><?=$localeYaml['form_2_table_3'][$loc]?></th>
<th><?=$localeYaml['form_2_table_4'][$loc]?></th>
<th><?=$localeYaml['form_2_table_5'][$loc]?></th>
<th><?=$localeYaml['form_2_table_6'][$loc]?></th>
<th><?=$localeYaml['form_2_table_7'][$loc]?></th>
</tr>
</thead>
<tbody id="tabbody">
</tbody>
</table>
<div class="is-col">
<button id="add_issue" type="button" onclick="addRow();"
class="button is-green"><?=$localeYaml['form_2_button'][$loc]?></button>
</div>
</fieldset>
<br>
<fieldset> <legend><?=$localeYaml['form_3_header'][$loc]?></legend>
<div class="is-row">
<div class="is-col valign="center"">
<?=$localeYaml['form_3_subtext_1'][$loc]?>
</div>
<div class="is-col">
<input input name="advance" id="advance" type="text" placeholder="0,00 EUR"/>
</div>
</div>
<div class="is-row">
<div class="is-col valign="center"">
<?=$localeYaml['form_3_subtext_2'][$loc]?>*
</div>
<div class="is-col">
<input id="agree" type="checkbox" />
</div>
</div>
<div class="is-row">
<div class="is-col">
<button type="button" onclick="downloadDocument(false);"
class="button is-orange"><?=$localeYaml['form_3_button_1'][$loc]?></button>
</div>
<div class="is-col">
<button type="button" onclick="downloadDocument(true);"
class="button is-green"><?=$localeYaml['form_3_button_2'][$loc]?></button>
</div>
</div>
</fieldset>
<input type="hidden" id="banktype" name="banktype"/>
<input type="hidden" id="sendmail" name="sendmail"/>
</form>
<?php

15
h1.php

@ -1,17 +1,14 @@
1. Bitte gib zunächst bei <b>Projekt/Zweck der Reise</b> den Namen des von
Wikimedia Deutschland geförderten Projektes/Veranstaltung an, in dessen Rahmen
die Kosten entstanden sind. Bitte rechne die Kosten für jedes geförderte
Projekt/jede Veranstaltung einzeln ab!
die Kosten entstanden sind. Bitte rechne die Kosten für jede Förderung einzeln ab!
<br><br>
2. Befülle das Feld <strong>Deine Ansprechperson bei Wikimedia</strong> mit deiner Kontaktperson
(Beispiel: „Sandro Halank/Ideenförderung“). Damit erleichterst du uns die Zuordnung.
(z. B. die Person, mit der du im Team Communitys und Engagement Kontakt hattest). Damit erleichterst du uns die Zuordnung.
<br><br>
3. Bitte gib jedes mal vollständig deine für die Kostenerstattung relevanten Daten in den
Abschnitten Deine Kontaktdaten sowie Auszahlungsweg an. Die Kontaktdaten benötigen wir für
eventuelle Rückfragen. Die Auszahlungsdaten helfen uns, die Erstattung korrekt durchzuführen.
Sollte das Geld auf ein Konto erstattet werden, welches nicht dir gehört, so gib hierfür eine Begründung an;
diese ist für unsere Buchhaltung essentiell.
3. Bitte gib stets vollständig deine für die Kostenerstattung relevanten Daten in den entsprechenden Feldern an.
Die Kontaktdaten benötigen wir für eventuelle Rückfragen. Die Auszahlungsdaten helfen uns,
die Erstattung korrekt durchzuführen. Sollte das Geld auf ein Konto erstattet werden,
welches nicht dir gehört, so gib hierfür eine Begründung an; diese ist für unsere Buchhaltung essentiell.
<br><br>
4. Die E-Mail-Adresse und die IBAN werden automatisch auf ein korrektes Format geprüft.
Gegebenenfalls wird eine Fehlermeldung angezeigt, wenn diese unvollständig oder fehlerhaft sind.

55
h2.php

@ -1,12 +1,47 @@
Wichtige Hinweise:
- Bitte verwende im Betragsfeld lediglich das Komma zur Trennung zwischen Währung und Dezimalstellen (Beispiel: 1200,00) ohne Währungssymbol.<br>
- Das Formular berechnet selbstständig die Gesamtsumme (nach einem weiteren Klick auf „Ausgabe hinzufügen“).
Die Abrechnung von <a href="https://de.wikipedia.org/wiki/Wikipedia:Wikimedia_Deutschland/FAQ_und_Hilfe_zur_Förderung#Verpflegung">Verpflegungsmehraufwand</a> erfolgt mittels Beleg, den du über dieses
<a href="https://www.wikimedia.de/extern/verpflegungsmehraufwand.html">Formular</a> erzeugen kannst. Bitte gib ihn in der entsprechenden eigenen Zeile (Pos.) als Ausgabenbeleg dazu an.<br>
- Durch die Software wird ein zusammengefügtes PDF aus Antrag und Anhängen erzeugt.<br>
- Nur wenn du für jede Position einen Beleg/Dokument angegeben hast, kannst du den Antrag auf Kostenerstattung direkt an das Team Ideenförderung senden. Andernfalls steht dir die Möglichkeit zur Verfügung, den Antrag herunterzuladen, später selbst weiter zu bearbeiten und an das Team Ideenförderung zu senden.<br>
<br>
Sollten Fehler oder Fragen auftreten, wende dich gern an community@wikimedia.de.
<br>
<b>Bitte rechne jedes geförderte Projekt bzw. Veranstaltung einzeln ab!</b><br />
1. Bitte gib zunächst im Feld <b>Währung</b> die Währung an, in der die Erstattung stattfinden soll.
Die ausgewählte Währung gilt für den gesamten Antrag auf Kostenerstattung.
Wir bitten dich, vorzugsweise Euro zu verwenden.
<br />
2. Bitte trage pro Zeile (Pos.) eine Ausgabe mit entsprechender Beschreibung ein und
füge einen Beleg als .pdf, .jpg, .png durch Klick auf das entsprechende Feld hinzu.
Fehlerhaft hochgeladene Dateien können mittels Klick auf das <b>x</b> entfernt werden.
Aus der Beschreibung sollte klar werden, ob es sich um Reise-/Transportkosten, Dienstleistung, Materialien,
Verpflegung usw. handelt. Bitte gib jeweils ein Belegdatum an.
<br />
3. Solltest du eine Ausgabe in einer Fremdwährung getätigt haben, so füge für die jeweilige Umrechnung
einen entsprechenden Umrechnungsbeleg zusätzlich an. Dieser ist für jede Position notwendig. Akzeptiert
werden folgende Umrechnungsbelege: Kartenabrechnungen (Kreditkarte oder EC-Karte), Bargeldtausch-Quittung,
<a target="_blank" href="https://sdw.ecb.europa.eu/curConverter.do">Währungsumrechner der Europäischen Zentralbank</a>.
Sollte die Währung nicht im Währungsumrechner der Europäischen Zentralbank vorhanden sein und auch kein
anderweitiger Umrechnungsbeleg vorliegen, so ist
<a target="_blank" href="https://www1.oanda.com/lang/de/currency/converter/">Oanda</a> verwendbar.
<br />
4. Solltest du einen Vorschuss von Wikimedia Deutschland für dieses Projekt/die Veranstaltung erhalten
haben, gib die Höhe dieses unter „3. Vorschuss und Sonstiges“ an.
<br />
5. Bitte bestätige die <b>Vollständig- und Richtigkeit</b> der Angaben mit einem Klick auf das Kästchen.
<br />
6. Klicke abschließend auf „Antrag elektronisch direkt an WMDE schicken“ zur direkten Weiterleitung an
Wikimedia Deutschland oder „Antrag herunterladen und später einreichen”, wenn du noch Änderungen vornehmen
möchtest.
<br /><br />
Wichtige Hinweise:<br />
Das Formular berechnet selbstständig die Gesamtsumme.<br>
Bitte hebe die Belege der einzelnen Positionen bis zum Erhalt der Kostenerstattung auf.<br>
Wenn du eine Kopie des Antrages auf Kostenerstattung benötigen solltest, dann kannst du diesen nach dem Absenden an WMDE als PDF-Datei herunterladen.
<br />
Die Abrechnung von <a target="_blank" href="https://de.wikipedia.org/wiki/Wikipedia:Wikimedia_Deutschland/FAQ_und_Hilfe_zur_Förderung#Verpflegung">Verpflegungsmehraufwand</a>
erfolgt mittels Beleg, den du über dieses <a target="_blank" href="https://www.wikimedia.de/extern/verpflegungsmehraufwand.html">Formular</a>
erzeugen kannst. Bitte gib ihn in der entsprechenden eigenen Zeile (Pos.) als Ausgabenbeleg dazu an.
<br />
Durch die Software wird ein zusammengefügtes PDF aus Antrag und Anhängen erzeugt.
<br />
Nur wenn du für jede Position einen Beleg/Dokument angegeben hast, kannst du den Antrag auf Kostenerstattung
direkt an Wikimedia Deutschland (WMDE) senden. Andernfalls steht dir die Möglichkeit zur Verfügung, den Antrag herunterzuladen, später selbst weiter zu bearbeiten und an das Team Communitys und Engagement oder deine Ansprechperson für diese Kostenerstattung zu senden.<br>
<br />
Sollten Fehler oder Fragen auftreten, wende dich gern an das Team Communitys und Engagement über <a href="mailto:community@wikimedia.de"> community@wikimedia.de</a> bzw. deine Ansprechperson für diese Kostenerstattung.</a>.

133
index.php

@ -0,0 +1,133 @@
<!doctype html>
<?php
// parse the locale.yaml file and get the variables
include "Spyc.php";
$localeYaml = Spyc::YAMLLoad('locale.yaml');
$lang=$_GET['lang'];
// optional code for reading the accept language header
/*
$acceptlang='de-DE';
// get the accept-language header
foreach (getallheaders() as $name => $value) {
if ($name == 'Accept-Language'){
// echo "$name $value";
$acceptlang = $value;
}
}
echo "$acceptlang";
print "oi $lang oi";
*/
if ( in_array ($lang, array('en-US'))){
$loc1 = "$lang".".utf8";
$loc = $lang;
}
else
$loc = "de-DE";
//$loc = "en-US";
//print "$loc $loc1";
$domain = "messages";
setlocale(LC_MESSAGES, $loc);
setlocale(LC_ALL, $loc);
$results = putenv("LC_ALL=$loc");
$results = putenv("LC_MESSAGES=$loc");
//$results = bindtextdomain($domain,"./locale");
?>
<html >
<head>
<title><?php echo $localeYaml['title'][$loc]?></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 text-centered">
<div id="container">
<img class="wmdelogo" alt="wikimedia logo" src="Wikimedia_Deutschland-Logo.svg"/>
<center>
<a class="languageSelect" href="?lang=de-DE"><?php echo $localeYaml['languageSelectDe'][$loc]?></a><br>
<a class="languageSelect" href="?lang=en-US"><?php echo $localeYaml['languageSelectEn'][$loc]?></a>
</center>
</div>
</div>
<div class="main-content">
<div class="is-row" style="border:0px solid blue">
<div class="is-col is-70">
<?php include "form.php" ?>
</div>
<div class="is-col is-30">
<?php
# $ct = @file_get_contents( "./locale/$loc/h1.php");
# if ($ct==false)
# $ct = file_get_contents( "h1.php");
# echo $ct;
?>
<?php
$ct = @file_get_contents( "./locale/$loc/h2.php");
if ($ct==false)
$ct = file_get_contents( "h2.php");
echo $ct;
?>
</div>
</div>
<?php echo $localeYaml['impressum'][$loc]?>: <a href="https://www.wikimedia.de/impressum/">https://www.wikimedia.de/impressum</a><br>
<?php echo $localeYaml['privacy'][$loc]?>: <a href="<?php echo $localeYaml['privacyLink'][$loc]?>"><?php echo $localeYaml['privacyLink'][$loc]?></a>
</div>
</div>
<script src="js/kube.min.js"></script>
<script src="kaform.js"></script>
<script src="addons/upload/kube.upload.min.js"></script>
<script src="addons/kube-addons.min.js"></script>
<script src="iban.js/iban.js"></script>
<script>
error_alert_projectid = "<?php echo $localeYaml['error_alert_projectid'][$loc]?>";
error_alert_realname = "<?php echo $localeYaml['error_alert_realname'][$loc]?>";
error_alert_email = "<?php echo $localeYaml['error_alert_email'][$loc]?>";
error_alert_iban = "<?php echo $localeYaml['error_alert_iban'][$loc]?>";
error_alert_bic = "<?php echo $localeYaml['error_alert_bic'][$loc]?>";
error_alert_paypal = "<?php echo $localeYaml['error_alert_paypal'][$loc]?>";
error_alert_expenses = "<?php echo $localeYaml['error_alert_expenses'][$loc]?>";
error_alert_agreement = "<?php echo $localeYaml['error_alert_agreement'][$loc]?>";
error_alert_ismailable = "<?php echo $localeYaml['error_alert_ismailable'][$loc]?>";
error_alert_date = "<?php echo $localeYaml['error_alert_date'][$loc]?>";
error_alert_description = "<?php echo $localeYaml['error_alert_description'][$loc]?>";
error_alert_sum = "<?php echo $localeYaml['error_alert_sum'][$loc]?>";
expenses_table_description_placeholder = "<?php echo $localeYaml['expenses_table_description_placeholder'][$loc]?>";
expenses_table_file_placeholder = "<?php echo $localeYaml['expenses_table_file_placeholder'][$loc]?>";
</script>
</body>
</html>

221
ka.php

@ -1,7 +1,29 @@
<!doctype html>
<?php
$lang=$_GET['lang'];
if ( in_array ($lang, array('en_US'))){
$loc = "$lang".".utf8";
$loc1 = $lang;
}
else
$loc = "de_DE";
$domain = "messages";
setlocale(LC_MESSAGES, $loc);
setlocale(LC_ALL, $loc);
$results = putenv("LC_ALL=$loc");
$results = putenv("LC_MESSAGES=$loc");
$results = bindtextdomain($domain,"./locale");
?>
<html >
<head>
<title>Kostenerstattungsforumlar</title>
<title>Kostenerstattungsformular</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
@ -15,16 +37,18 @@
</head>
<body>
<div class="page is-container">
<div class="main-sidebar">
<img alt="wikimedia logo" src="Wikimedia_Deutschland-Logo.svg"/>
</div>
<div class="main-content">
<h1>Antrag auf Kostenerstattung</h1>
<p>Du möchtest dir Kosten erstatten lassen, welche im Rahmen deines
Projektes entstanden sind?<BR>
Bitte fülle dieses Formular aus.
Pflichtfelder sind mit einem * gekennzeichnet.
<h1>
<?php echo _( "Antrag auf Kostenerstattung")?>
</h1>
<p>
<?php echo _("Du möchtest dir Kosten erstatten lassen, welche im Rahmen deines Projektes entstanden sind?")?><BR>
<?php echo _("Bitte fülle dieses Formular aus. Pflichtfelder sind mit einem * gekennzeichnet.")?>
</p>
<form data-kube="kaform" name="theform" id="theform" action="submit.php" method="POST">
@ -32,35 +56,24 @@
<div class="is-row">
<div class="is-col is-70">
<fieldset>
<legend>1. Erfasse deine Stammdaten</legend>
<legend><?php echo _("1. Erfasse deine Stammdaten")?></legend>
<div class="is-row">
<div class="is-col">
<input required type="input"
size="32" id="projectid" name="project"
placeholder="Projekt/Zweck der Reise*" />
placeholder="<?php echo _("Projekt/Zweck der Reise*")?>" />
</div>
</div>
<!-- <div class="is-row">
<div class="is-col">
<input required type="input"
size="32" id="nickname" name="nickname"
placeholder="Nickname*" />
</div>
<div class="is-col">
<input required type="input"
size="32" id="projectid" name="project"
placeholder="Projekt-ID*" />
</div>
</div>
--> <br>
<br>
<div class="is-row">
<div class="is-col">
<input required type="input" size="32"
` id="realname" name="realname" placeholder="Dein Realname (Vorname Nachname)*" />
` id="realname" name="realname" placeholder="<?php echo _("Dein Realname (Vorname Nachname)*")?>" />
</div>
<div class="is-col">
<input type="input" size="32"
` id="wmdecontact" name="wmdecontact" placeholder="Deine Ansprechperson bei Wikimedia" />
` id="wmdecontact" name="wmdecontact"
placeholder="<?= _("Deine Ansprechperson bei Wikimedia")?>" />
</div>
</div>
<br>
@ -70,7 +83,7 @@
<div class="is-col">
<input type="tel" size="32"
id="phone" name="phone"
placeholder="Deine Telefonnummer" />
placeholder="<?= _("Deine Telefonnummer")?>" />
</div>
<div class="is-col">
</div>
@ -81,7 +94,7 @@
<div class="is-row">
<div class="is-col">
<input required type="email" size="32" id="email"
name="email" placeholder="Deine E-Mail-Adresse*" />
name="email" placeholder="<?= _("Deine E-Mail-Adresse*")?>" />
</div>
<div class="is-col">
</div>
@ -92,8 +105,8 @@
<div class="is-col">
<nav class="tabs" data-kube="tabs" data-equal="false">
<a href="#bank-eu" class="is-active">Banküberweisung</a>
<a href="#bank-noneu">Banküberweisung (Non-EU)</a>
<a href="#bank-eu" class="is-active"><?=_("Banküberweisung")?></a>
<a href="#bank-noneu"><?=_("Banküberweisung (Non-EU)")?></a>
<!-- <a href="#bank-paypal">PayPal</a>
<a href="#bank-bar">Barauszahlung</a>
--> </nav>
@ -101,7 +114,7 @@
<section id="bank-eu">
<div class="is-row">
<div class="is-col">
<input type="input" size="32" name="Owner" placeholder="Kontoinhabende Person" />
<input type="input" size="32" name="Owner" placeholder="<?=_("Kontoinhabende Person")?>" />
</div>
<div class="is-col">
</div>
@ -110,20 +123,20 @@
<div class="is-row">
<div class="is-col">
<input type="input" size="32" id="iban" name="iban" placeholder="IBAN*" />
<input type="input" size="32" id="iban" name="iban" placeholder="<?=_("IBAN*")?>" />
</div>
<div class="is-col">
<input type="input" size="32" id="bic" name="bic" placeholder="BIC (wenn ausländische Bank)" />
<input type="input" size="32" id="bic" name="bic" placeholder="<?=_("BIC (wenn ausländische Bank)")?>" />
</div>
</div>
<br>
<!-- <input type="input" size="32" id="purpose" name="purpose" placeholder="Verwendungszweck" /> -->
<textarea id="comments" name="comments"
style="resize:both;" cols="32" rows="4" placeholder="Weitere Anmerkungen
z.B. intermediäre Bank,
Grund für abweichende Kontoinhbende Person"></textarea>
style="resize:both;" cols="32" rows="4"
placeholder="<?=_("Weitere Anmerkungen z.B. intermediäre Bank, Grund für abweichende Kontoinhbende Person")?>">
</textarea >
@ -134,7 +147,7 @@ Grund für abweichende Kontoinhbende Person"></textarea>
<section id="bank-noneu">
<div class="is-row">
<div class="is-col">
<input type="input" size="32" name="Owner" placeholder="Kontoinhabende Person" />
<input type="input" size="32" name="Owner" placeholder="<?=_("Kontoinhabende Person")?>" />
</div>
<div class="is-col">
</div>
@ -143,31 +156,33 @@ Grund für abweichende Kontoinhbende Person"></textarea>
<div class="is-row">
<div class="is-col">
<input type="input" size="32" id="n_iban" name="n_iban" placeholder="Kontonummer*" />
<input type="input" size="32" id="n_iban" name="n_iban" placeholder="<?=_("Kontonummer*")?>" />
</div>
<div class="is-col">
<input type="input" size="32" id="n_bic" name="n_bic" placeholder="BIC/SWIFT*" />
<input type="input" size="32" id="n_bic" name="n_bic" placeholder="<?=_("BIC/SWIFT*")?>" />
</div>
</div>
<br>
<input class="EU nonEU" type="input" size="32" id="n_bank" name="n_bankname" placeholder="Name der Bank*" />
<input class="EU nonEU" type="input" size="32" id="n_bank" name="n_bankname" placeholder="<?="Name der Bank*"?>" />
<br>
<textarea class="nonEU" name="n_bankaddress" id="n_bankaddress" style="resize:both;" cols="32" rows="4" placeholder="Adresse der Bank (Stra&szlig;e und Hausnummer/Postleitzahl/Land)"></textarea>
<textarea class="nonEU" name="n_bankaddress" id="n_bankaddress" style="resize:both;" cols="32" rows="4"
placeholder="<?=_("Adresse der Bank (Stra&szlig;e und Hausnummer/Postleitzahl/Land)")?>"></textarea>
<br>
<textarea name="n_address" lang="de" class="nonEU" id="n_address" style="resize:both;" cols="32" rows="4" placeholder="Deine Anschrift (Srta&szlig;e und Hausnummer/Postleitzahl/Land)
"></textarea>
<textarea name="n_address" lang="de" class="nonEU" id="n_address" style="resize:both;" cols="32" rows="4"
placeholder="<?=_("Deine Anschrift (Srta&szlig;e und Hausnummer/Postleitzahl/Land)")?>">
</textarea>
<br>
<!-- <input type="input" size="32" id="n_purpose" name="n_purpose" placeholder="Verwendungszweck" /> -->
<textarea id="n_comments" name="n_comments"
style="resize:both;" cols="32" rows="4" placeholder="Weitere Anmerkungen
z.B. intermediäre Bank,
Grund für abweichende kontoinhabende Person"></textarea>
style="resize:both;" cols="32" rows="4"
placeholder="<?=_("Weitere Anmerkungen z.B. intermediäre Bank,Grund für abweichende kontoinhabende Person")?>">
</textarea>
@ -189,8 +204,14 @@ Grund für abweichende kontoinhabende Person"></textarea>
</fieldset>
</div>
<div class="is-col ">
<?php include "h1.php"; ?>
<div class="is-col ">
<?php
$ct = @file_get_contents( "./locale/$loc1/h1.php");
if ($ct==false)
$ct = file_get_contents( "h1.php");
echo $ct;
?>
</div>
</div> <!-- is row -->
@ -199,74 +220,46 @@ Grund für abweichende kontoinhabende Person"></textarea>
<div class="is-row">
<div class="is-col is-70">
<fieldset id="fieldset2">
<legend>2. Erfasse deine Ausgaben</legend>
<div class="is-row">
<div class="is-col is-70">
<div class="is-row">
<div class="is-col is-60">
<input id="a_date" type="date" name="a_date" placeholder="Datum*"/>
<!-- <input id="a_type" type="text" name="type" placeholder="Auslagenart*"/> -->
</div>
<div class="is-col is-40">
</div>
</div>
<br>
<input id="a_description" type="text" name="description" placeholder="Beschreibung*"/>
<br>
<div class="is-row">
<div class="is-col">
<input id="a_amount" type="text" name="amount" placeholder="Betrag*"/>
</div>
<div class="is-col">
<select disabled id="a_currency" name="currency" >
<option value="EUR">EUR</option>
<option value="USD">USD</option>
<option value="CHF">CHF</option>
<option value="BTC">BTC</option>
</select>
<!-- <input id="a_currency" type="text" name="curreny" placeholder="Waehrung*"/> -->
</div>
<div class="is-col">
<button type="button" onclick="addTableRow();"
class="button is-green">Ausgabe hinzuf&uuml;gen</button>
</div>
</div>
<legend><?=_("2. Erfasse deine Ausgaben")?></legend>
<div class="is-col is-70">
<?=_("Währung:")?>
</div>
<div class="is-col is-20">
<select onchange="renumberTableRows()" id="currency" >
<option value="EUR">EUR</option>
<option value="USD">USD</option>
<option value="CHF">CHF</option>
<option value="XBT">XBT</option>
</select>
</div>
</div>
<div class="is-col is-30">
<div id="uploadfield" class="form-item">
</div>
</div>
</div>
<br>
<table id="tabtab" class="is-bordered is-striped">
<thead>
<tr>
<!-- <th>Auslagenart</th>-->
<th>Pos.</th>
<th>Datum</th>
<th>Beschreibung</th>
<th>Betrag</th>
<th>Belege</th>
<th>L&ouml;schen</th>
<th><?=_("Pos.")?></th>
<th><?=_("Datum")?></th>
<th><?=_("Beschreibung")?></th>
<th><?=_("Betrag")?></th>
<th><?=_("Währung")?></th>
<th><?=_("Belege")?></th>
<th><?=_("L&ouml;schen")?></th>
</tr>
</thead>
<tbody id="tabbody">
</tbody>
</table>
<div class="is-col">
<button id="add_issue" type="button" onclick="addRow();"
class="button is-green"><?=_("Ausgabe hinzuf&uuml;gen")?></button>
</div>
</fieldset>
<br>
<fieldset>
<legend>3. Vorschuss und Sonstiges</legend>
<legend><?=_("3. Vorschuss und Sonstiges")?></legend>
<div class="is-row">
<div class="is-col valign="center"">
Ich habe bereits einen Vorschuss erhalten in
H&ouml;he von:
<?=_("Ich habe bereits einen Vorschuss erhalten in H&ouml;he von:")?>
</div>
<div class="is-col">
<input input name="advance" id="advance" type="text" placeholder="0,00 EUR"/>
@ -276,29 +269,31 @@ Grund für abweichende kontoinhabende Person"></textarea>
<div class="is-row">
<div class="is-col valign="center"">
Ich versichere, dass ich alle Angaben
nach bestem Wissen und Gewissen gemacht habe:
<?=_("Hiermit bestätige ich die Vollständig- und Richtigkeit meiner Angaben:")?>*
</div>
<div class="is-col">
<input id="agree" type="checkbox" />
</div>
</div>
</fieldset>
</div>
<button type="button" onclick="downloadDocument(true);"
class="button is-green"><?=_("Antrag elektronisch direkt an WMDE schicken")?></button>
<button type="button" onclick="downloadDocument(false);"
class="button is-orange"><?=_("Antrag herunterladen und später einreichen")?></button>
</div>
<div class="is-col">
<?php include "h2.php"; ?>
<?php
$ct = @file_get_contents( "./locale/$loc1/h2.php");
if ($ct==false)
$ct = file_get_contents( "h2.php");
echo $ct;
?>
</div>
</div>
<button type="button" onclick="downloadDocument(true);"
class="button is-green">Antrag elektronisch direkt an WMDE schicken</button>
<button type="button" onclick="downloadDocument(false);"
class="button is-orange">Antrag herunterladen und später einreichen</button>
</div>
</div>
<input type="hidden" id="banktype" name="banktype"/>
@ -314,8 +309,8 @@ Grund für abweichende kontoinhabende Person"></textarea>
<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>
<script src="iban.js/iban.js"></script>
<script src="js/kaform.js"></script>
</div>
</div>

320
kaform.js

@ -1,21 +1,61 @@
var currentRowId=1;
var banktype = "bank-eu";
function renumberTableRows(){
var cur = document.getElementById("currency").value;
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++;
row.cells[4].innerHTML=cur;
}
return i;
}
function checkAllRows(){
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++;
//
var f=1
var v =row.cells[f].firstElementChild.value;
if ( !v ){ // Datum
row.cells[f].firstElementChild.focus();
showAlert(error_alert_date);
return false;
}
f=2;
v =row.cells[f].firstElementChild.value;
if ( !v ){ // Datum
row.cells[f].firstElementChild.focus();
showAlert(error_alert_description);
return false;
}
f=3;
v =row.cells[f].firstElementChild.value;
if ( !isFloat(v) ){ // Amount
row.cells[f].firstElementChild.focus();
showAlert(error_alert_sum);
return false;
}
}
return true;
}
function isMailable(){
var row_no=1;
var table = document.getElementById("tabbody");
for (var i = 0, row; row = table.rows[i]; i++) {
var pdfs = row.cells[4].innerHTML;
pdfs = row.cells[5].querySelector('input[name="file-count"]').value;
if (pdfs==0)
return false;
}
@ -23,6 +63,7 @@ function isMailable(){
}
function isFloat(val) {
var floatRegex = /^-?\d+(?:[.,]\d*?)?$/;
if (!floatRegex.test(val))
@ -35,20 +76,9 @@ function isFloat(val) {
}
function disableCurrency()
{
if (countRows()>0){
document.getElementById("a_currency").disabled=true;
}
else {
document.getElementById("a_currency").disabled=true;
}
}
function deleteTableRow(rowId){
var target = document.getElementById("upload-target"+rowId);
// this.message = app.message;
// var children = target.children;
@ -72,181 +102,116 @@ function deleteTableRow(rowId){
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;
return renumberTableRows();
}
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(){
function setTableRow(id)
{
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&uuml;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&uuml;ltigen Betrag ein!");
return;
}
a_amount = parseFloat(a_amount).toFixed(2);
var a_currency = document.getElementById("a_currency").value;
/* if (!a_currency.trim().length){
document.getElementById("a_currency").focus();
showAlert("Bitte gib eine W&auml;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;
}
element.setAttribute("id", "trow"+id);
var e
e = `<td>${a_date}
<input type="hidden" name="date[${currentRowId}]" value="${a_date}" /></td>`;
/* a_type = "Hello";*/
$node.append(element);
element.innerHTML=(e);
}
var e="<td></td>";
// 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>`;
function getUploadField(rid)
{
var e = $K.dom('#uploadfield');
var uf =`<div class="upload"
data-kube="upload"
data-type="file"
data-multiple="true"
data-target="#upload-target${rid}"
data-url="upload.php?row=${rid}" data-url-remove="delete.php"
data-progress="true"
data-size="40"
data-placeholder="` + expenses_table_file_placeholder + `">
</div>
<div id="upload-target${rid}" class="upload-target small"></div>
</div>
`;
return uf;
}
// 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>`;
function getRow(rid,num) {
var cur = document.getElementById("currency").value;
return ""
+ "<td data-label=\"Pos\">"
+ `${num}`
+"</td>"
+ "<td data-label=\"Datum\">"
+ `<input class="tab_input" name="date[${rid}]" value="" type="date" placeholder="Datum*"/>`
+ "</td>"
+ "<td data-label=\"Beschr.\">"
+ `<input class="tab_input" name="desc[${rid}]" type="text" placeholder="` + expenses_table_description_placeholder + `"/>`
+ "</td>"
+ "<td data-label=\"Betrag\">"
+ `<input class="tab_input" name="amount[${rid}] type="text" placeholder="0.00"/>`
+ "</td>"
+ "<td data-label=\"W&auml;hrung\" style=\"vertical-align: middle\">"
+ cur
// +
// `<select name="currency[${rid}]" >
// <option value="EUR">EUR</option>
// <option value="USD">USD</option>
// <option value="CHF">CHF</option>
// <option value="XBT">XBT</option>
// </select>`
+ "</td>"
+ "<td>"
+ getUploadField(rid)
+ "</td>"
+
`<td><span
onclick="deleteTableRow(${rid})"
class="close is-large">
</span>
</td>`;
// add column for num
e += `<td>${a_amount} EUR
<input type="hidden" name="amount[${currentRowId}]" value="${a_amount}" /></td>`;
}
var nextRid = 1
// 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>
*/
var ulfiles = children.length;
e += `<td>${ulfiles}</td>`;