diff --git a/.gitignore b/.gitignore index 35dda7d..6ed92b8 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ convention.log *.sql *.sqlite3 etc +bengelsystem_konfiguration.php diff --git a/README.md b/README.md index 5105165..71f4132 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,4 @@ # Bengelsystem Bengelsystem is a platform to schedule shifts of volunteers primarily for jugglig conventions. Helpers register at the platform and choose shifts. The admin of the website can add new tasks and shifts. + +Das Bengelsystem ist Datenbanksystem, um Helfer - primär auf Jonglierconventions zu organiseren. Helfer registrieren sich und wählen ihre Schichten aus. Ein Admin auf den Seiten kann neue Dienste und Schichten anlegen etc. diff --git a/bengelsystem_konfiguration.php.template b/bengelsystem_konfiguration.php.template new file mode 100644 index 0000000..1492318 --- /dev/null +++ b/bengelsystem_konfiguration.php.template @@ -0,0 +1,31 @@ + diff --git a/html/Admin.php b/html/Admin.php index cf41d60..15e34dd 100644 --- a/html/Admin.php +++ b/html/Admin.php @@ -1,7 +1,7 @@ - Admin Drop am See + Admin <?php echo EVENTNAME ?> @@ -30,22 +30,17 @@ DatenbankAufDeutsch(); $AliasHelferID = 0; -//echo "AliasHelfer=$AliasHelferID
"; if (isset($_SESSION["AliasHelferID"])) { $AliasHelferID = $_SESSION["AliasHelferID"]; } -//echo "AliasHelfer=$AliasHelferID
"; - -if (isset($_POST["AliasHelfer"])) { - $AliasHelferID = $_POST["AliasHelfer"]; - //echo "post
"; +if (isset($_POST["AliasHelferID"])) { + $AliasHelferID = $_POST["AliasHelferID"]; } if ($AliasHelferID != 0) { $_SESSION["AliasHelferID"] = $AliasHelferID; } -//echo "AliasHelfer=$AliasHelferID
"; $zeilen = Helferdaten($HelferID); foreach ($zeilen as $zeile) { @@ -58,30 +53,43 @@ foreach ($zeilen as $zeile) {
- - + - - + - + - + - + - - -
  Admin HelferDB + +   + Admin HelferDB
- Dienste und Schichten verwalten + + + Dienste und Schichten verwalten +
Seite zur Helfer selbst-Registrierung
- Helfer per Link einladen + Helfer per Link einladen
- Helferübersicht + + + Helferübersicht und als Admin ändern +
Helfer als Admin ändern:
+ Helfer als Admin ändern: + +
Helferdaten ändern + + + Helferdaten ändern +
Schichten Anzeigen/Löschen + + + Schichten Anzeigen/Löschen +
Schichten Hinzufügen + + + Schichten Hinzufügen +
Admin Kalenderansicht
Ausdrucke
Ausdruck Schichten
-

Dienst: z.B. Badgekontrolle Eingang A. Schicht: ein Dienst zu einer bestimmten Zeit zB 9-12 Uhr +

+ + Dienst: z.B. Badgekontrolle Eingang A. Schicht: ein Dienst zu einer bestimmten Zeit zB 9-12 Uhr

- + diff --git a/html/AdminAlleSchichten.php b/html/AdminAlleSchichten.php index a196b50..82d7138 100644 --- a/html/AdminAlleSchichten.php +++ b/html/AdminAlleSchichten.php @@ -1,7 +1,7 @@ - Helfer Drop am See Alle Schichten - - + Helfer <?php echo EVENTNAME ?> Alle Schichten - - + + + - + +" . EVENTNAME . ""; ?>
Helfer wählen: '; $zeilen = HelferListe(); foreach ($zeilen as $zeile) { if ($AliasHelferID != $zeile['HelferID']) { @@ -105,12 +105,13 @@ function HelferAuswahlButton($db_link, $AliasHelferID) echo ''; } -if (isset($_POST['AliasHelfer'])) { - $AliasHelferID = $_POST['AliasHelfer']; +if (isset($_POST['AliasHelferID'])) { + $AliasHelferID = $_POST['AliasHelferID']; } elseif (isset($_SESSION["AliasHelferID"])) { $AliasHelferID = $_SESSION["AliasHelferID"]; } else { HelferAuswahlButton($db_link, $AliasHelferID); + echo "

Erst Helfer auswählen

"; exit; } HelferAuswahlButton($db_link, $AliasHelferID); @@ -140,15 +141,10 @@ foreach ($zeilen as $zeile) { /////////////////////////////////////////////////////////// if (isset($_POST['plusschicht'])) { $messages = []; - $SchichtId = $_POST['plusschicht']; - - // Eingaben überprüfen: - - // if(!preg_match('/^[a-zA-Z]+[a-zA-Z0-9._]+$/', $HelferName)) { - // $messages[] = 'Bitte prüfen Sie die eingegebenen Namen'; - // } - - + $SchichtID = $_POST['plusschicht']; + // Nutzer hat hier zuletzt etwas geändert und wir klappen das deshalb auf, + // indem wir unten target=active setzen + $_SESSION["SchichtIdAktiv"] = $SchichtID; if (empty($messages)) { // Helfer Schicht zuweisen $db_erg = HelferSchichtZuweisen($AliasHelferID, $SchichtId, $AdminID); @@ -196,8 +192,9 @@ if (isset($_POST['minusschicht'])) { // Zusammenfassung Eigener Schichten $zeile = SchichtenSummeEinesHelfers($AliasHelferID); - echo '
'; - echo " Dienstplan von $HelferName (Zusammenfassung)
"; + //"Dienstplan von" + echo '
'; + echo '' . "Dienstplan von $HelferName: "; echo $zeile['Anzahl']; echo " Schichten insgesamt "; echo $zeile['Dauer'] / 3600; @@ -236,94 +233,24 @@ if ($addschicht == '0') { //echo "InfoAlleSchichtID ".$InfoAlleSchichtID; if ($addschicht != '0') { - //$db_erg = AlleSchichten($db_link,$dienstsort); - //$db_erg = AlleSchichtenImZeitbereich($db_link,"2023-05-18 00:00:00","2023-05-19 00:00:00"); - if ($ZeitBereich == 1) { // Alle - $db_erg = AlleSchichtenImZeitbereich("2000-05-18 00:00:00", "2200-05-19 00:00:00", -1); - } - if ($ZeitBereich == 2) { // Davor - $db_erg = AlleSchichtenImZeitbereich("2000-05-18 00:00:00", "2023-05-18 00:00:00", -1); - } - if ($ZeitBereich == 3) { // Do - $db_erg = AlleSchichtenImZeitbereich("2023-05-18 00:00:00", "2023-05-19 00:00:00", -1); - } - if ($ZeitBereich == 4) { // Fr - $db_erg = AlleSchichtenImZeitbereich("2023-05-19 00:00:00", "2023-05-20 00:00:00", -1); - } - if ($ZeitBereich == 5) { // Sa - $db_erg = AlleSchichtenImZeitbereich("2023-05-20 00:00:00", "2023-05-21 00:00:00", -1); - } - if ($ZeitBereich == 6) { // So - $db_erg = AlleSchichtenImZeitbereich("2023-05-21 00:00:00", "2023-05-22 00:00:00", -1); - } - if ($ZeitBereich == 7) { // Danach - $db_erg = AlleSchichtenImZeitbereich("2023-05-22 00:00:00", "2223-05-22 00:00:00", -1); - } + echo ''; + require('_zeitbereich.php'); + $Bereich = AusgabeZeitbereichZeile($start_date, $ZeitBereich, $TageNamenDeutsch, "AdminAlleSchichten.php"); + $MeinVon = $Bereich['MeinVon']; + $MeinBis = $Bereich['MeinBis']; + $db_erg = AlleSchichtenImZeitbereich($MeinVon, $MeinBis, -1); + // fuer Anzahlanzeige in Ueberschrift $iAlleSchichtenCount = AlleSchichtenCount(); $iBelegteSchichtenCount = AlleBelegteSchichtenCount(); - + echo '
'; //echo "

"; - echo ''; - echo ""; - echo ""; - echo ""; - - /* - if ($dienstsort=='1') - { - echo ""; - } - else - { - echo ""; - } - */ - if ($ZeitBereich == 1) { - echo ""; - } else { - echo ""; - } - if ($ZeitBereich == 2) { - echo ""; - } else { - echo ""; - } - if ($ZeitBereich == 3) { - echo ""; - } else { - echo ""; - } - if ($ZeitBereich == 4) { - echo ""; - } else { - echo ""; - } - if ($ZeitBereich == 5) { - echo ""; - } else { - echo ""; - } - if ($ZeitBereich == 6) { - echo ""; - } else { - echo ""; - } - if ($ZeitBereich == 7) { - echo ""; - } else { - echo ""; - } - //echo ""; - //echo ""; - //echo ""; - //echo ""; - //echo ""; - //echo ""; + echo '
" . "Alle Schichten der Con (" . $iBelegteSchichtenCount . "/" . $iAlleSchichtenCount . ")
". "Dienst" . "". "Von" . "" . "Alle" . "" . "Alle" . "" . "Davor" . "" . "Davor" . "" . "Do" . "" . "Do" . "" . "Fr" . "" . "Fr" . "" . "Sa" . "" . "Sa" . "" . "So" . "" . "So" . "" . "Danach" . "" . "Danach" . "". "Davor" . "". "Do" . "". "Fr" . "". "Sa" . "". "So" . "". "Danach" . "
'; + echo ""; + echo ""; echo ""; - echo ""; $OldTag = ""; $OldWas = ""; @@ -332,7 +259,7 @@ if ($addschicht != '0') { //print_r($MeineDienste); echo '
Alle Schichten der Con (" . $iBelegteSchichtenCount . "/" . $iAlleSchichtenCount . ")
'; - echo ''; + echo '
'; foreach ($MeineDienste as $zeile) { if ($dienstsort == '1') { @@ -348,7 +275,8 @@ if ($addschicht != '0') { $Was = $zeile['Was']; if ($Was != $OldWas) { - echo ""; /* @@ -381,9 +309,12 @@ if ($addschicht != '0') { $regtext = 'Meine!'; } else { // dummy-style, um SchichtID unsichtbar im Tag anzuzeigen - $rowstyle = 'style="dummy:' . $zeile['SchichtID'] . '"'; + $rowstyle = 'dbinfo="SchichtID:' . $zeile['SchichtID'] . ';helferlvl:' . $HelferLevel . '" '; $regtext = ''; } + if ($_SESSION["SchichtIdAktiv"] == $zeile['SchichtID']) { + $rowstyle = $rowstyle . " target='active' "; // dont collapse when the user did something + } echo ''; @@ -398,17 +329,16 @@ if ($addschicht != '0') { echo "" . $zeile['Soll'] . ""; // buttons sind in der selben Zelle echo ""; - //echo ""; + echo "   $regtext" . ""; echo "\n"; } echo "
"; + // + in becomes - when rows are opened + echo "
+ "; echo $Was; echo "
" . "" . ""; - echo "" . "   $regtext" . "$regtext
"; } ?> - - + + - + diff --git a/html/AdminDienste.php b/html/AdminDienste.php index 652fa36..c5e3b41 100644 --- a/html/AdminDienste.php +++ b/html/AdminDienste.php @@ -1,7 +1,7 @@ - Admin Drop am See + Admin <?php echo EVENTNAME ?> - + - +
add($Temp2); + $Bis = $Temp->format('Y-m-d H:i:s'); + } + NewSchicht($DienstID, $Von, $Bis, $Soll, $Dauer, $HelferName); + $SchichtID = LastInsertId($db_link); + //echo "+".$SchichtID."+"; } @@ -97,6 +124,7 @@ if (isset($_POST['DeleteSchicht'])) { if (!DeleteSchicht($SchichtID, false)) { echo "Erst Helfer aus Schicht austragen
"; } + $SchichtID = 0; } @@ -104,8 +132,9 @@ if (isset($_POST['DeleteSchicht'])) { if (isset($_POST['ShowSchicht'])) { $SchichtID = $_POST['SchichtSearch']; } -if (isset($_POST['SchichtSearch'])) { +if (isset($_POST['SchichtSearch']) && !isset($_POST['NewSchicht']) && !isset($_POST['DeleteSchicht'])) { $SchichtID = $_POST['SchichtSearch']; + echo "SchichtSearch
"; } if (isset($_POST['ShowSchichten'])) { @@ -118,7 +147,9 @@ if (isset($_POST['DienstSearch'])) { } - +if ($NewDienstID != 0) { + $DienstID = $NewDienstID; +} // Dienste Anzeigen //////////////////////////////////////////////////////// @@ -126,7 +157,7 @@ if (isset($_POST['DienstSearch'])) { ?>
- +
Dienst - +
+ - - - + - - +
Was
Wo
+ Wo
Info
+ Info
Leiter
- + Leiter
+ "; @@ -200,10 +236,10 @@ echo "

Gruppe
+ Gruppe
HelferLevel
@@ -235,15 +271,18 @@ echo "

-

- +

+ + + +

- +
Schicht - +
+ + + + - + + -
Von
- + +
Dauer
+
Bis
- +
Bis
+
Soll
+ Anzahl Helfer (Soll)
-

- + > Endzeit von Dauer
+ > Anschlussschicht vorbereiten
+

+ + + +

diff --git a/html/AdminHelferUebersicht.php b/html/AdminHelferUebersicht.php index b07e510..bec5ddb 100644 --- a/html/AdminHelferUebersicht.php +++ b/html/AdminHelferUebersicht.php @@ -1,7 +1,7 @@ - Admin Drop am See + Admin <?php echo EVENTNAME ?> @@ -71,43 +71,51 @@ echo "

";
  Übersicht Helfer und Ihre Schichten
- +
"; + echo ""; + echo "$EinzelDienstStundenZeile\n "; +} + foreach ($db_erg as $zeile) { $HelferName = $zeile["Name"]; + $HelferLevel = $zeile["HelferLevel"]; $AliasHelferID = $zeile["AliasHelferID"]; - //echo $HelferName." ".$AliasHelferID."
"; - if ($HelferName != $OldHelferName) { - if ($EinzelDienstStunden != "") { - // Neue Ueberschrift mit Helfernamen + Stunden - echo "$HelferUeberschrift "; - echo ""; - $dauer = 0; - echo "$EinzelDienstStunden\n "; + if ($AliasHelferID != $OldAliasHelferID) { + if ($EinzelDienstStundenZeile != "") { + outputHelperInformation($HelferUeberschrift, $OldAliasHelferID, $dauer, $EinzelDienstStundenZeile); } - $EinzelDienstStunden = ""; - $HelferUeberschrift = ""; + $EinzelDienstStundenZeile .= ""; $dauer = $dauer + (int)$zeile["Dauer"]; } -echo "$EinzelDienstStunden"; +if ($EinzelDienstStundenZeile != "") { + outputHelperInformation($HelferUeberschrift, $OldAliasHelferID, $dauer, $EinzelDienstStundenZeile); +} echo "
$dauer Stunden
"; + echo "
\n"; + echo "  "; + echo "
"; + echo "
"; + echo "
$dauer Stunden
"; - echo "
\n"; - echo "  "; - echo "
"; - echo "
"; - echo "
" . $HelferName; + $dauer = 0; + $EinzelDienstStundenZeile = ""; + $HelferUeberschrift = "
$HelferName (Lvl:$HelferLevel)
"; $OldHelferName = $HelferName; $OldAliasHelferID = $AliasHelferID; $i += 1; } - $EinzelDienstStunden .= "
" . (int)$zeile["Dauer"] . ""; - $EinzelDienstStunden .= $zeile["Was"]; - $EinzelDienstStunden .= "
" . (int)$zeile["Dauer"] . ""; + $EinzelDienstStundenZeile .= $zeile["Was"]; + $EinzelDienstStundenZeile .= "
"; diff --git a/html/AdminMeineSchichten.php b/html/AdminMeineSchichten.php index 62ce9a4..7ee08f2 100644 --- a/html/AdminMeineSchichten.php +++ b/html/AdminMeineSchichten.php @@ -1,7 +1,7 @@ - Admin Drop am See - Schichten editieren + Admin <?php echo EVENTNAME ?> - Schichten editieren @@ -23,7 +23,9 @@ if ($AdminStatus != 1) { -

Admin: Schichten editieren

+

Admin: Schichten editieren - +" . EVENTNAME . ""; ?> +

Helfer wählen:
'; $zeilen = HelferListe(); foreach ($zeilen as $zeile) { if ($AliasHelferID != $zeile['HelferID']) { @@ -97,8 +99,8 @@ function HelferAuswahlButton($db_link, $AliasHelferID) -if (isset($_POST['AliasHelfer'])) { - $AliasHelferID = $_POST['AliasHelfer']; +if (isset($_POST['AliasHelferID'])) { + $AliasHelferID = $_POST['AliasHelferID']; echo "AliasHelfer: $AliasHelferID
"; } elseif (isset($_SESSION["AliasHelferID"])) { $AliasHelferID = $_SESSION["AliasHelferID"]; @@ -207,7 +209,7 @@ $schichten = AlleSchichtenEinesHelfers($AliasHelferID); $iSQLCount = count($schichten); //$iSQLCount = 3; -echo ''; +echo '
'; echo ""; echo ""; @@ -238,7 +240,7 @@ echo "

"; $iAlleSchichtenCount = AlleSchichtenCount(); $iBelegteSchichtenCount = AlleBelegteSchichtenCount(); -echo '
'; +echo '
'; echo ""; echo ""; echo ""; diff --git a/html/AdminUserdaten.php b/html/AdminUserdaten.php index 879e622..b22e210 100644 --- a/html/AdminUserdaten.php +++ b/html/AdminUserdaten.php @@ -1,7 +1,7 @@ Helfer wählen: '; $zeilen = HelferListe(); foreach ($zeilen as $zeile) { if ($AliasHelferID != $zeile['HelferID']) { @@ -26,8 +26,8 @@ function HelferAuswahlButton($db_link, $AliasHelferID) echo ''; } -if (isset($_POST['AliasHelfer'])) { - $AliasHelferID = $_POST['AliasHelfer']; +if (isset($_POST['AliasHelferID'])) { + $AliasHelferID = $_POST['AliasHelferID']; } elseif (isset($_SESSION["AliasHelferID"])) { $AliasHelferID = $_SESSION["AliasHelferID"]; } else { @@ -39,16 +39,14 @@ HelferAuswahlButton($db_link, $AliasHelferID); $_SESSION["AliasHelferID"] = $AliasHelferID; $AdminID = $_SESSION["AdminID"]; -echo "Admin=$AdminID
"; -echo "Helfer=$HelferID
"; -echo "Alias=$AliasHelferID
"; +//debug output: echo "Admin=$AdminID
"; echo "Helfer=$HelferID
"; echo "Alias=$AliasHelferID
"; ?> - Drop am See Helferdaten ändern + <?php echo EVENTNAME ?> Helferdaten ändern @@ -78,6 +76,7 @@ if (isset($_POST['change'])) { $HelferName = $_POST['helfer-name']; $HelferEmail = $_POST['helfer-email']; $HelferHandy = $_POST['helfer-handy']; + $HelferLevel = $_POST['helfer-level']; $HelferNewPasswort = $_POST['helfer-newpasswort']; if ($_POST['IsAdmin']) { $HelferIsAdmin = 1; @@ -87,7 +86,11 @@ if (isset($_POST['change'])) { } if (empty($messages)) { // Helferdaten Ändern +<<<<<<< HEAD HelferdatenAendern($HelferName, $HelferEmail, $HelferHandy, $HelferNewPasswort, $AliasHelferID, $HelferIsAdmin, $HelferID); +======= + HelferdatenAendern($db_link, $HelferName, $HelferEmail, $HelferHandy, $HelferNewPasswort, $AliasHelferID, $HelferLevel, $HelferIsAdmin, $HelferID); +>>>>>>> main } else { // Fehlermeldungen ausgeben: echo '
    '; @@ -119,6 +122,7 @@ foreach ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { $HelferEmail = $zeile['Email']; $HelferHandy = $zeile['Handy']; $HelferIsAdmin = $zeile['Admin']; + $HelferLevel = $zeile['HelferLevel']; } ?> @@ -126,10 +130,10 @@ foreach ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { -
" . "Alle Schichten der Con (" . $iBelegteSchichtenCount . "/" . $iAlleSchichtenCount . ")
+
- +" . EVENTNAME . ""; ?> + + + -
Helferdaten
Name
@@ -155,11 +159,29 @@ foreach ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { Neues Helfer Passwort
Helferlevel
+ +
- +
- Helfer Drop am See Alle Schichten - + Helfer <?php echo EVENTNAME ?> Alle Schichten - - - + + + - + +" . EVENTNAME . ""; ?>

Alle Schichten / Schichten hinzufügen

- + '); } else { // Fehlermeldungen ausgeben: echo '
    '; @@ -145,17 +130,19 @@ if (isset($_POST['minusschicht'])) { $messages = []; $SchichtID = $_POST['minusschicht']; + // Nutzer hat hier zuletzt etwas geaenndert und wir klappen das deshalb auf: + $_SESSION["SchichtIdAktiv"] = $SchichtID; if (empty($messages)) { // Helfer aus Schicht entfernen $db_erg = HelferVonSchichtLoeschen_SchichtID($HelferID, $SchichtID); } else { - // Fehlermeldungen ausgeben: - echo '
      '; + // Fehlermeldungen ausgeben: + echo '
        '; foreach ($messages as $message) { echo '
      • ' . htmlspecialchars($message) . '
      • '; } - echo '
      '; + echo '
    '; } } @@ -168,7 +155,8 @@ if (isset($_POST['minusschicht'])) { // Zusammenfassung Eigener Schichten $zeile = SchichtenSummeEinesHelfers($HelferID); - echo '"; - - $dienste = GetDiensteChilds($zeile["DienstID"]); - foreach ($dienste as $zeile) { - echo ""; - } -} - -echo "
    '; + //"Mein Dienstplan" + echo '"; + + $db_erg2 = GetDiensteChilds($db_link, $zeile["DienstID"]); + while ($zeile = mysqli_fetch_array($db_erg2, MYSQLI_ASSOC)) { + echo ""; + } +} + +echo "
    '; echo '' . " Mein Dienstplan ("; echo $zeile['Anzahl']; echo " Schichten, "; @@ -205,90 +193,27 @@ if ($addschicht == '0') { echo "

    "; } -//echo "InfoAlleSchichtID ".$InfoAlleSchichtID; if ($addschicht != '0') { - //$db_erg = AlleSchichten($db_link,$dienstsort); - //$db_erg = AlleSchichtenImZeitbereich($db_link,"2023-05-18 00:00:00","2023-05-19 00:00:00",$HelferLevel); - if ($ZeitBereich == 1) { // Alle - $db_erg = AlleSchichtenImZeitbereich("2000-05-18 00:00:00", "2200-05-19 00:00:00", $HelferLevel); - } - if ($ZeitBereich == 2) { // Davor - $db_erg = AlleSchichtenImZeitbereich("2000-05-18 00:00:00", "2023-05-18 00:00:00", $HelferLevel); - } - if ($ZeitBereich == 3) { // Do - $db_erg = AlleSchichtenImZeitbereich("2023-05-18 00:00:00", "2023-05-19 00:00:00", $HelferLevel); - } - if ($ZeitBereich == 4) { // Fr - $db_erg = AlleSchichtenImZeitbereich("2023-05-19 00:00:00", "2023-05-20 00:00:00", $HelferLevel); - } - if ($ZeitBereich == 5) { // Sa - $db_erg = AlleSchichtenImZeitbereich("2023-05-20 00:00:00", "2023-05-21 00:00:00", $HelferLevel); - } - if ($ZeitBereich == 6) { // So - $db_erg = AlleSchichtenImZeitbereich("2023-05-21 00:00:00", "2023-05-22 00:00:00", $HelferLevel); - } - if ($ZeitBereich == 7) { // Danach - $db_erg = AlleSchichtenImZeitbereich("2023-05-22 00:00:00", "2223-05-22 00:00:00", $HelferLevel); - } + echo ''; + require('_zeitbereich.php'); + $Bereich = AusgabeZeitbereichZeile($start_date, $ZeitBereich, $TageNamenDeutsch, "AlleSchichten.php"); + $MeinVon = $Bereich['MeinVon']; + $MeinBis = $Bereich['MeinBis']; + $db_erg = AlleSchichtenImZeitbereich($MeinVon, $MeinBis, -1); + // fuer Anzahlanzeige in Ueberschrift $iAlleSchichtenCount = AlleSchichtenCount(); $iBelegteSchichtenCount = AlleBelegteSchichtenCount(); + echo '
    '; echo ""; - //echo "

    "; - echo ''; + // "Alle Schichten der Con" + echo '
    '; echo ""; - echo ""; + echo ""; - /* - if ($dienstsort=='1') - { - echo ""; - } - else - { - echo ""; - } - */ - echo ""; // Zeitbereich tr - if ($ZeitBereich == 1) { - echo ""; - } else { - echo ""; - } - if ($ZeitBereich == 2) { - echo ""; - } else { - echo ""; - } - if ($ZeitBereich == 3) { - echo ""; - } else { - echo ""; - } - if ($ZeitBereich == 4) { - echo ""; - } else { - echo ""; - } - if ($ZeitBereich == 5) { - echo ""; - } else { - echo ""; - } - if ($ZeitBereich == 6) { - echo ""; - } else { - echo ""; - } - if ($ZeitBereich == 7) { - echo ""; - } else { - echo ""; - } - - echo ""; //Zeitbereich tr + echo ""; $OldTag = ""; $OldWas = ""; @@ -297,7 +222,8 @@ if ($addschicht != '0') { //print_r($MeineDienste); echo '
    " . "Alle Schichten der Con (" . $iBelegteSchichtenCount . "/" . $iAlleSchichtenCount . ")
    Alle Schichten der Con (" . $iBelegteSchichtenCount . "/" . $iAlleSchichtenCount . ")
    ". "Dienst" . "". "Von" . "
    " . "Alle" . "" . "Alle" . "" . "Davor" . "" . "Davor" . "" . "Do" . "" . "Do" . "" . "Fr" . "" . "Fr" . "" . "Sa" . "" . "Sa" . "" . "So" . "" . "So" . "" . "Danach" . "" . "Danach" . "
    '; - echo ''; + // Tabelle mit allen Diensten und Schichten + echo '
    '; foreach ($MeineDienste as $zeile) { if ($dienstsort == '1') { $Tag = $zeile['Tag']; @@ -312,7 +238,8 @@ if ($addschicht != '0') { $Was = $zeile['Was']; if ($Was != $OldWas) { - echo ""; /* @@ -348,6 +275,9 @@ if ($addschicht != '0') { $rowstyle = 'dbinfo="SchichtID:' . $zeile['SchichtID'] . ';helferlvl:' . $HelferLevel . '" '; $regtext = ''; } + if ($_SESSION["SchichtIdAktiv"] == $zeile['SchichtID']) { + $rowstyle = $rowstyle . " target='active' "; // dont collapse when the user did something + } echo ''; @@ -362,17 +292,16 @@ if ($addschicht != '0') { echo "" . $zeile['Soll'] . ""; // buttons sind in der selben Zelle echo ""; - //echo ""; + echo "   $regtext" . ""; echo "\n"; } echo "
    "; + // + in becomes - when rows are opened + echo "
    + "; echo $Was; echo "
    " . "" . ""; - echo "" . "   $regtext" . "$regtext
    "; } ?> - - + + - + diff --git a/html/Ausdrucke-alles.php b/html/Ausdrucke-alles.php new file mode 100644 index 0000000..a022e81 --- /dev/null +++ b/html/Ausdrucke-alles.php @@ -0,0 +1,138 @@ + + + + + Admin <?php echo EVENTNAME ?> + + + + + + + + + + +
    + + + + + +
      Übersicht Dienst DAS 2023
    + +'; + +$db_erg = GetDiensteChilds($db_link, 0); +while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { + echo "
    "; + echo $zeile["Was"]; + echo "
    "; + echo $zeile["Was"]; + echo "
    "; + + + + +$db_erg = AlleSchichtenImZeitbereich($db_link, "2000-05-18 00:00:00", "2200-05-19 00:00:00"); + +$OldWas = ""; +echo "

    "; +?> + + + +"; + //echo '
      Übersicht Schichten der Dienste DAS 2023
    '; + echo '
    '; + echo ""; + $OldWas = $Was; + } + + echo ""; +} + +echo "
    "; + echo $Was; + echo "
    "; + echo $zeile["Ab"]; + echo ""; + echo $zeile["Bis"]; + echo ""; + + $db_erg2 = BeteiligteHelfer($db_link, $zeile["SchichtID"]); + while ($zeile = mysqli_fetch_array($db_erg2, MYSQLI_ASSOC)) { + echo $zeile["Name"]; + echo " "; + echo $zeile["Handy"]; + echo ","; + } + echo "
    "; + +$OldHelferName = ""; + +echo "

    "; +?> + + + +"; + //echo '
      Übersicht Helfer und Ihre Schichten DAS 2023
    '; + echo '
    '; + echo ""; + $OldHelferName = $HelferName; + } + + echo ""; +} + + +echo "
    "; + echo $HelferName; + echo "
    "; + echo (int)$zeile["Dauer"]; + echo ""; + echo $zeile["Was"]; + echo "
    "; + +?> + + + + + + + + diff --git a/html/Ausdrucke.php b/html/Ausdrucke.php index edabb5c..de20599 100644 --- a/html/Ausdrucke.php +++ b/html/Ausdrucke.php @@ -1,150 +1,68 @@ +'; + exit; +} +?> - Admin Drop am See - + Admin <?php echo EVENTNAME ?> + - + Die Ausdrucke sind noch im Aufbau. "Ausdrucke(alles)" versucht alles relevante aus der Datenbank auf einer Seite anzuzeigen, damit auch bei Ausfall der DB noch ein PDF/Ausdruck die Info hat. Ausdrucke Schichten(I) und (II) ist für Papier-Schichten für Teilnehmer mit Abreiss-Zettel gedacht und wurden von 2 Leuten zeitgleich für Tübingen geschrieben und muss noch vereinigt werden. +
    + +
    - - - - - - +
      Übersicht Dienst DAS 2023
    + + + + + + + +
      Ausdrucke HelferDB +
    Ausdrucke(alles)
    Ausdruck Schichten(I)
    Ausdruck Schichten(II)
    - - -'; - -$dienste = GetDiensteChilds(0); -foreach ($dienste as $zeile) { - echo "
    "; - echo $zeile["Was"]; - echo "
    "; - echo $zeile["Was"]; - echo "
    "; - - - - -$db_erg = AlleSchichtenImZeitbereich("2000-05-18 00:00:00", "2200-05-19 00:00:00"); - -$OldWas = ""; -echo "

    "; -?> - - - -"; - //echo '
      Übersicht Schichten der Dienste DAS 2023
    '; - echo '
    '; - echo ""; - $OldWas = $Was; - } - - echo ""; -} - -echo "
    "; - echo $Was; - echo "
    "; - echo $zeile["Ab"]; - echo ""; - echo $zeile["Bis"]; - echo ""; - - $helfer = BeteiligteHelfer($zeile["SchichtID"]); - foreach ($helfer as $zeile) { - echo $zeile["Name"]; - echo " "; - echo $zeile["Handy"]; - echo ","; - } - echo "
    "; - -$OldHelferName = ""; - -echo "

    "; -?> - - - -"; - //echo '
      Übersicht Helfer und Ihre Schichten DAS 2023
    '; - echo '
    '; - echo ""; - $OldHelferName = $HelferName; - } - - echo ""; -} - - -echo "
    "; - echo $HelferName; - echo "
    "; - echo (int)$zeile["Dauer"]; - echo ""; - echo $zeile["Was"]; - echo "
    "; - -?> - - - - - - + diff --git a/html/Bilder/PfeilRechts.jpeg b/html/Bilder/PfeilRechts.jpeg new file mode 100644 index 0000000..d632b7b Binary files /dev/null and b/html/Bilder/PfeilRechts.jpeg differ diff --git a/html/CreateHelfer.php b/html/CreateHelfer.php index 7ecb604..0de5de2 100644 --- a/html/CreateHelfer.php +++ b/html/CreateHelfer.php @@ -1,3 +1,11 @@ + @@ -12,18 +20,6 @@ -

    Hier können Sie sich selbst einen Account als Helfer anlegen.

    +

    Hier können Sie sich selbst einen Account als Helfer anlegen. Danach zum Login

    - +
    diff --git a/html/DecodeToken.php b/html/DecodeToken.php index 7001d19..075da75 100644 --- a/html/DecodeToken.php +++ b/html/DecodeToken.php @@ -1,10 +1,15 @@ + + + + + Helfer <?php echo EVENTNAME ?> + + + + + + + +
    +". $SchichtID . "
    "; + + $zeile = DetailSchicht($db_link, $InfoAlleSchichtID); + + $Was = $zeile['Was']; + $Wo = $zeile['Wo']; + $Dauer = $zeile['Dauer']; + $Leiter = $zeile['Name']; + $LeiterHandy = $zeile['Handy']; + $LeiterEmail = $zeile['Email']; + $Info = $zeile['Info']; + + + + // Beteiligte Helfer Holen + $db_erg = BeteiligteHelfer($db_link, $InfoAlleSchichtID); + + + $x = 0; + + while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { + $MitHelferID[$x] = $zeile['HelferID']; + $MitHelfer[$x] = $zeile['Name']; + $MitHelferHandy[$x] = $zeile['Handy']; + $x++; + } +} + + +$HelferID = $_SESSION["HelferID"]; +$AdminID = $_SESSION["AdminID"]; + +if (isset($_POST['HelferID'])) { + $HelferID = $_POST['HelferID']; +} +if (isset($_POST['ShowHelfer'])) { + $HelferID = $_POST['HelperSearch']; +} + +$_SESSION["HelferID"] = $HelferID; + + + + + + + + + + + + + + + + + + + + +?> + + + + +'; + + + + echo "
    "; + echo "\n"; + + + + echo "
    Helferdaten
    " . $Was . "
    "; + + //echo "


    "; + echo "Beschreibung:
    "; + echo $Info . "

    "; + echo "Ort:
    " . $Wo . "

    "; + echo "Dauer:
    " . $Dauer . "

    "; + echo "Ansprechparter:
    " . $Leiter . ", "; + echo $LeiterHandy . ", "; + echo $LeiterEmail . "

    "; + echo "Helfer der Schicht:
    "; + $x = 0; + $arrayLength = count($MitHelfer); +while ($x < $arrayLength) { + echo "ID:" . $MitHelferID[$x] . ", "; + echo $MitHelfer[$x] . ", "; + echo $MitHelferHandy[$x] . "
    "; + $x++; +} + + echo "

    "; + + + + + + + + + +mysqli_free_result($db_erg); + + +?> + +
    +
+ + + diff --git a/html/EmailZuToken.php b/html/EmailZuToken.php index 719b72d..9b822de 100644 --- a/html/EmailZuToken.php +++ b/html/EmailZuToken.php @@ -1,7 +1,7 @@ - Helfer Drop am See: Email Tokens generieren + Helfer <?php echo EVENTNAME ?>: Email Tokens generieren diff --git a/html/Info.php b/html/Info.php index 154ec8b..2aa3dbe 100644 --- a/html/Info.php +++ b/html/Info.php @@ -1,11 +1,16 @@ + - Helfer Drop am See Home + Helfer <?php echo EVENTNAME ?> Home - + diff --git a/html/Kalender-all.html b/html/Kalender-all.php similarity index 74% rename from html/Kalender-all.html rename to html/Kalender-all.php index e7d5f6c..a20a0e3 100644 --- a/html/Kalender-all.html +++ b/html/Kalender-all.php @@ -1,3 +1,11 @@ + @@ -7,6 +15,7 @@ + @@ -56,30 +65,30 @@ Filtern:
-
-
 
-
 
-
-
-
-
-
-
-
- -
-
-
-
- - - - - + + .filters_wrapper span { + font-weight: bold; + padding-left: 15px; + padding-right: 15px; + color: rgba(0,0,0,0.7); + } + .filters_wrapper label { + padding-left: 15px; + padding-right: 15px; + } +
  - Mehrtagesdienste anzeigen: - Einfärben: - Filtern: -
- Achtung: Ende Nachtdienste wird falsch angezeigt (immer Mitternacht) - Popup-Fenster zeigt richtige Zeiten +Mehrtagesdienste anzeigen: +Einfärben: +Filtern: +
+
@@ -133,29 +145,30 @@ function colorize (e){ //KS }); scheduler.config.full_day=false; + scheduler.config.readonly_form = true; scheduler.config.xml_date="%Y-%m-%d %H:%i"; // deprecated but needed for database format - scheduler.config.first_hour = 0; // only show from this hour on + scheduler.config.first_hour = 7; // only show from this hour on scheduler.config.last_hour = 24; // last hour scheduler.setLoadMode("day"); // dynamic loading loads only current day if needed scheduler.config.details_on_create=true; // ??? scheduler.config.details_on_dblclick=true; scheduler.i18n.setLocale("de"); // german scheduler.config.default_date="%l, %d %F"; // %l long day eg Montag, - //scheduler.config.readonly = true; // doesnt show lightbox if true so disabled + scheduler.config.readonly = true; // doesnt show lightbox if true so disabled scheduler.locale.labels.con_tab = "4-Tage" // for custom time ranges scheduler.locale.labels.prep_tab = "2-Tage" scheduler.attachEvent("onTemplatesReady",function(){ // for custom time ranges //Con timeslot - scheduler.date.con_start = function(date){return date;}; //new Date(202,5,16);}; // calculates start-day of range from current day + scheduler.date.con_start = function(date){return date;}; scheduler.templates.con_date = scheduler.templates.week_date; scheduler.templates.con_scale_date = scheduler.templates.week_scale_date; scheduler.date.add_con=function(date,inc){ return scheduler.date.add(date,inc*4,"day"); }//"next" gives you the next 4 days scheduler.date.get_con_end=function(date){ return scheduler.date.add(date,4,"day"); } //preparation phase 2 days - function setprep(){scheduler.setCurrentView(new Date(2023,4,16));} + function setprep(){scheduler.setCurrentView(new Date());} scheduler.date.prep_start = function(date){return date}; scheduler.templates.prep_date = scheduler.templates.week_date; scheduler.templates.prep_scale_date = scheduler.templates.week_scale_date; @@ -170,10 +183,10 @@ function colorize (e){ //KS }; scheduler.config.all_timed = "short"; // night events arent multi-day - events under 24h are shown - scheduler.config.lightbox.sections=[ - {name:"description", height:130, map_to:"text", type:"textarea" , focus:true}, - {name:"Dienstbeschreibung", height:90, type:"textarea", map_to:"Info" }, - {name:"Konakt", height:200, type:"textarea", map_to:"Kontakt" }, + scheduler.config.lightbox.sections=[ + {name:"description", height:130, map_to:"text", type:"textarea" , focus:true}, + {name:"Dienstbeschreibung", height:90, type:"textarea", map_to:"Info" }, + {name:"Kontakt", height:200, type:"textarea", map_to:"Kontakt" }, {name:"time", height:72, type:"time", map_to:"auto"} ]; @@ -182,7 +195,7 @@ function colorize (e){ //KS }; // actual init - scheduler.init('scheduler_here', new Date(2023,4,18), "con"); + scheduler.init('scheduler_here', new Date(), "con"); scheduler.load("data/api-helfer.php"); //https://docs.dhtmlx.com/scheduler/api__scheduler_createdataprocessor.html //var dp = scheduler.createDataProcessor("data/api.php"); // this would be for saving diff --git a/html/MeineSchichten.php b/html/MeineSchichten.php index 3d4e053..dab0f8b 100644 --- a/html/MeineSchichten.php +++ b/html/MeineSchichten.php @@ -1,35 +1,27 @@ + - Admin Drop am See + Meine Schichten <?php echo EVENTNAME ?> - + +" . EVENTNAME . ""; ?>
'; +echo ''; echo ""; echo ""; - echo ""; + echo ""; echo ""; - echo ""; + echo ""; echo ""; echo ""; echo ""; @@ -297,7 +289,7 @@ echo "

"; $iAlleSchichtenCount = AlleSchichtenCount(); $iBelegteSchichtenCount = AlleBelegteSchichtenCount(); -echo '
" . "Meine Schichten (" . $iSQLCount . " Schichten)" . "Meine Schichten (" . $iSQLCount . " Schichten) - " . EVENTNAME . "
Dienst" . "Von" . "" . "Bis" . "" . "Del" . "
'; +echo '
'; echo ""; echo ""; echo ""; diff --git a/html/ReadLog.php b/html/ReadLog.php index a102f7a..6ed3df2 100644 --- a/html/ReadLog.php +++ b/html/ReadLog.php @@ -1,3 +1,12 @@ + @@ -7,26 +16,18 @@ 0) { - echo ' - '; -} // print top of page if we are logged in and not redirecting echo " \n \n"; - echo '
' . "\n"; + echo '' . "\n"; + echo "" . EVENTNAME . "
"; echo '

Helferdaten - Log

'; echo '

Hier werden alle Aktionen, die einen Helfer betreffen aufgelistet

'; - echo '
" . '' . " Alle Schichten der Con (" . $iBelegteSchichtenCount . "/" . $iAlleSchichtenCount . ")
' . "\n"; + echo '
' . "\n"; //check for admin status $HelferID = $_SESSION["HelferID"]; $AdminID = $_SESSION["AdminID"]; - require 'SQL.php'; $db_link = mysqli_connect(MYSQL_HOST, MYSQL_BENUTZER, MYSQL_KENNWORT, MYSQL_DATENBANK); DatenbankAufDeutsch(); diff --git a/html/SQL.php b/html/SQL.php index 72bdae1..0f8b617 100644 --- a/html/SQL.php +++ b/html/SQL.php @@ -247,9 +247,9 @@ function HelferdatenAendern($HelferName, $HelferEmail, $HelferHandy, $HelferNewP //echo $sql; echo "
  • Passwort geändert
  • "; if ($AdminID != 0) { - error_log(date('Y-m-d H:i') . "(Admin $AdminID) Helferdaten update: Name: $HelferName (HelferID:$HelferID) Email: $HelferEmail Handy: $HelferHandy Passwort: neu gesetzt\n", 3, LOGFILE); + error_log(date('Y-m-d H:i') . "(Admin $AdminID) Helferdaten update: Name: $HelferName (HelferID:$HelferID) Email: $HelferEmail Handy: $HelferHandy HelferLevel: $HelferLevel Passwort: neu gesetzt\n", 3, LOGFILE); } else { - error_log(date('Y-m-d H:i') . "Helferdaten update: Name: $HelferName (HelferID:$HelferID) Email: $HelferEmail Handy: $HelferHandy Passwort: neu gesetzt\n", 3, LOGFILE); + error_log(date('Y-m-d H:i') . "Helferdaten update: Name: $HelferName (HelferID:$HelferID) Email: $HelferEmail Handy: $HelferHandy HelferLevel: $HelferLevel Passwort: neu gesetzt\n", 3, LOGFILE); } } @@ -303,6 +303,7 @@ function AlleBelegteSchichtenCount($HelferLevel = 1) // ok ok function AlleSchichtenImZeitbereich($Von, $Bis, $HelferLevel = 1) { + error_log("AlleSchichtenImZeitbereich Abfrage: $Von, $Bis, $HelferLevel"); // SchichtID, Was, Ab, Bis, Ist, Tag, Soll - Ist und Soll sind die HelferStunden $db = DB::getInstance(); diff --git a/html/TeilnehmerSchichtenAusdruck.php b/html/TeilnehmerSchichtenAusdruck.php new file mode 100644 index 0000000..b33eb2c --- /dev/null +++ b/html/TeilnehmerSchichtenAusdruck.php @@ -0,0 +1,268 @@ +'; + exit; +} +?> + + + + testAlle Helferschichten + + + + + + + + +
    +". $SchichtID . "
    "; + + $zeile = DetailSchicht($db_link, $InfoMeineSchichtID); + + $Was = $zeile['Was']; + $Wo = $zeile['Wo']; + $Dauer = $zeile['Dauer']; + $Leiter = $zeile['Name']; + $LeiterHandy = $zeile['Handy']; + $LeiterEmail = $zeile['Email']; + $Info = $zeile['Info']; +} + + +if (isset($_GET['InfoAlleSchichtID'])) { + $InfoAlleSchichtID = $_GET['InfoAlleSchichtID']; + unset($InfoMeineSchichtID); + //echo "". $SchichtID . "
    "; + + $zeile = DetailSchicht($db_link, $InfoAlleSchichtID); + + $Was = $zeile['Was']; + $Wo = $zeile['Wo']; + $Dauer = $zeile['Dauer']; + $Leiter = $zeile['Name']; + $LeiterHandy = $zeile['Handy']; + $LeiterEmail = $zeile['Email']; + $Info = $zeile['Info']; + + + + // Beteiligte Helfer Holen + $db_erg = BeteiligteHelfer($db_link, $InfoAlleSchichtID); + + + $x = 0; + + while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { + $MitHelferID[$x] = $zeile['HelferID']; + $MitHelfer[$x] = $zeile['Name']; + $MitHelferHandy[$x] = $zeile['Handy']; + $x++; + } +} + +if (isset($_GET['ZeitBereich'])) { + $ZeitBereich = $_GET['ZeitBereich']; +} else { + $ZeitBereich = 0; +} + + + +// Helferliste Anzeigen +//////////////////////////////////////////////////////// + +?> + + +'); + } else { + // Fehlermeldungen ausgeben: + echo '
      '; + foreach ($messages as $message) { + echo '
    • ' . htmlspecialchars($message) . '
    • '; + } + echo '
    '; + } +} + +if (isset($_POST['minusschicht'])) { +// Mich aus Schicht entfernen + $messages = []; + + $SchichtID = $_POST['minusschicht']; + + if (empty($messages)) { + // Helfer aus Schicht entfernen + $db_erg = HelferVonSchichtLoeschen_SchichtID($db_link, $HelferID, $SchichtID); + } else { + // Fehlermeldungen ausgeben: + echo '
      '; + foreach ($messages as $message) { + echo '
    • ' . htmlspecialchars($message) . '
    • '; + } + echo '
    '; + } +} + +/// Ausgabe auf Deutsch umstellen +///////////////////////////////////////////////////////////////////////// + + DatenbankAufDeutsch($db_link); + + +// Zusammenfassung Eigener Schichten + $db_erg = SchichtenSummeEinesHelfers($db_link, $HelferID); + $zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC); + +/// Schichten Auswahl +//////////////////////////////////////////////////////// + + +// fuer Anzahlanzeige in Ueberschrift +$iAlleSchichtenCount = AlleSchichtenCount($db_link); +$iBelegteSchichtenCount = AlleBelegteSchichtenCount($db_link); + + //echo "

    "; + echo '
    '; + echo ""; + echo ""; + + +require('_zeitbereich.php'); + +$Bereich = AusgabeZeitbereichZeile($start_date, $ZeitBereich, $TageNamenDeutsch, "TeilnehmerSchichtenAusdruck.php"); +$MeinVon = $Bereich['MeinVon']; +$MeinBis = $Bereich['MeinBis']; + +$db_erg = AlleSchichtenImZeitbereich($db_link, $MeinVon, $MeinBis, $HelferLevel); +//echo ""; // debug + +$OldTag = ""; +$OldWas = ""; +// um Zeilen mit von mir belegten Schichten hervorzuheben +$MeineDienste = SchichtIdArrayEinesHelfers($db_link, $HelferID); +//print_r($MeineDienste); + +echo "
    " . "Alle Schichten der Con ("; + echo $iBelegteSchichtenCount . "/" . $iAlleSchichtenCount . ")
    AlleSchichtenImZeitbereich(db_link,$Von,$Bis,$HelferLevel);
    \n"; + +// Table to print out the shifts for people to enter their name in. +// If a shift is already taken, the name is printed out. +// The table prints just one day, specified via Zeitbereich. The heading above wrote out the day. +// the table is sorted by shift type (Was) first and then by time (Ab). +// "Was" is printed in the middle together with two-letter day and time. +// the first and the 5th (last) column also contain two-letter day and time for people to tear off and take with them. +// the 2nd and 4th column are for the name. +// if the shift is already taken, the name is printed in, else the field is empty to write in. +// we iterate over all tasks (Was) and then over Ist and Soll for each task, +// filling one field for each Ist or Soll and filling in the name in Ist and leave it empty if it is Soll. +echo "\n"; +// $db_erg ist aus AlleSchichtenImZeitbereich +// und gibt zurueck Was, Ab, Bis, Ist, Tag, Soll - Ist und Soll sind die HelferStunden +$OldWas = ""; +while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { + $Tag = $zeile['Tag']; //this should be set above, because we only look at one day + $Ab = $zeile['Ab']; + $Bis = $zeile['Bis']; + $Ist = $zeile['Ist']; + $Soll = $zeile['Soll']; + $Was = $zeile['Was']; + $TagKurz = substr($Tag, 0, 2); + if (substr($Ab, 0, 2) == substr($Bis, 0, 2)) { + $Bis = substr($Bis, 2); + } // if start and end time are on the same day, we only print the end time + if ($Was != $OldWas) { + echo ""; + echo "\n"; + } + // get the people who are already signed up for this shift + $db_erg_helfer = BeteiligteHelfer($db_link, $zeile['SchichtID']); + // Wir geben zwei Helfer pro Zeile fuer die selbe Schicht aus + while ($Soll > 0) { + $Soll = $Soll - 1; + $HelferZeile = mysqli_fetch_array($db_erg_helfer, MYSQLI_ASSOC); + if (isset($HelferZeile['Name'])) { + $Helfername = $HelferZeile['Name']; + } else { + $Helfername = ''; + } + echo ""; + echo ""; + echo ""; + if ($Soll > 0) { // zweite Spalte nur ausgeben, wenn noch eine Schicht offen ist + $Soll = $Soll - 1; + $HelferZeile = mysqli_fetch_array($db_erg_helfer, MYSQLI_ASSOC); // get the next person + if (isset($HelferZeile['Name'])) { + $Helfername = $HelferZeile['Name']; + } else { + $Helfername = ''; + } + echo ""; + echo ""; + } else {//if there is no more shift to fill in, we fill the rest of the row with empty fields + echo ""; + } + $OldWas = $Was; + } +} +echo "
    $Was ($TagKurz)
    $Was
    $Ab - $Bis
    $Helfername$Was
    $Ab-$Bis
    $Helfername$Was
    $Ab-$Bis
    \n"; + + +// old table, remove later + +mysqli_free_result($db_erg); + + +?> + + +
    + + + diff --git a/html/TeilnehmerSchichtenAusdruck2.php b/html/TeilnehmerSchichtenAusdruck2.php new file mode 100644 index 0000000..d9b1991 --- /dev/null +++ b/html/TeilnehmerSchichtenAusdruck2.php @@ -0,0 +1,152 @@ +'; + exit; +} +?> + + + + testAlle Helferschichten 2 + + + + + + + + +
    + + +" . strftime('%A, %e. %B %Y', $unixtime + $day * 24 * 60 * 60) . ""; + $db_erg = GetDiensteForDay($db_link, 2, $datestring); + while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { + $db_erg2 = GetSchichtenForDienstForDay($db_link, $zeile["DienstId"], $datestring); + echo ""; + echo ""; + $schichten = 0; + $OldVon = 0; + $OldSoll = 0; + while ($zeile2 = mysqli_fetch_array($db_erg2, MYSQLI_ASSOC)) { + if ($zeile2["Von"] != $OldVon && $schichten != 0) { + while ($schichten < $OldSoll) { + $schichten++; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + $schichten = 0; + } + $schichten++; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + $OldVon = $zeile2["Von"]; + $OldBis = $zeile2["Bis"]; + $OldSoll = $zeile2["Soll"]; + if (empty($zeile2["Name"])) { + while ($schichten < $OldSoll) { + $schichten++; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + } + } + + echo "
    " . $zeile["Was"] . "
    " . $schichten . "/" . $OldSoll . " " . date('H:i', strtotime($OldVon)) . " - " . date('H:i', strtotime($OldBis)) . "" . strftime('%a %H:%M', strtotime($OldVon)) . " " . $zeile["Was"] . "
    " . $zeile["Wo"] . "
    " . $zeile["Info"] . "
    " . $schichten . "/" . $zeile2["Soll"] . " " . date('H:i', strtotime($zeile2["Von"])) . " - " . date('H:i', strtotime($zeile2["Bis"])) . "" . $zeile2["Name"] . " " . $zeile2["Handy"] . "" . strftime('%a %H:%M', strtotime($zeile2["Von"])) . " " . $zeile["Was"] . "
    " . $zeile["Wo"] . "
    " . $zeile["Info"] . "
    " . $schichten . "/" . $OldSoll . " " . date('H:i', strtotime($OldVon)) . " - " . date('H:i', strtotime($OldBis)) . "" . strftime('%a %H:%M', strtotime($OldVon)) . " " . $zeile["Was"] . "
    " . $zeile["Wo"] . "
    " . $zeile["Info"] . "
    "; + } +} + +$unixtime = strtotime('2023-09-15'); +for ($day = 0; $day < 3; $day++) { + $datestring = date('Y-m-d', $unixtime + $day * 24 * 60 * 60); + echo "

    " . strftime('%A, %e. %B %Y', $unixtime + $day * 24 * 60 * 60) . "

    "; + $db_erg = GetDiensteForDay($db_link, 1, $datestring); + while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { + $db_erg2 = GetSchichtenForDienstForDay($db_link, $zeile["DienstId"], $datestring); + echo ""; + echo ""; + $schichten = 0; + $OldVon = 0; + $OldSoll = 0; + while ($zeile2 = mysqli_fetch_array($db_erg2, MYSQLI_ASSOC)) { + if ($zeile2["Von"] != $OldVon && $schichten != 0) { + while ($schichten < $OldSoll) { + $schichten++; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + $schichten = 0; + } + $schichten++; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + $OldVon = $zeile2["Von"]; + $OldBis = $zeile2["Bis"]; + $OldSoll = $zeile2["Soll"]; + if (empty($zeile2["Name"])) { + while ($schichten < $OldSoll) { + $schichten++; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + } + } + + echo "
    " . $zeile["Was"] . "
    " . $schichten . "/" . $OldSoll . " " . date('H:i', strtotime($OldVon)) . " - " . date('H:i', strtotime($OldBis)) . "" . strftime('%a %H:%M', strtotime($OldVon)) . " " . $zeile["Was"] . "
    " . $zeile["Wo"] . "
    " . $zeile["Info"] . "
    " . $schichten . "/" . $zeile2["Soll"] . " " . date('H:i', strtotime($zeile2["Von"])) . " - " . date('H:i', strtotime($zeile2["Bis"])) . "" . $zeile2["Name"] . " " . $zeile2["Handy"] . "" . strftime('%a %H:%M', strtotime($zeile2["Von"])) . " " . $zeile["Was"] . "
    " . $zeile["Wo"] . "
    " . $zeile["Info"] . "
    " . $schichten . "/" . $OldSoll . " " . date('H:i', strtotime($OldVon)) . " - " . date('H:i', strtotime($OldBis)) . "" . strftime('%a %H:%M', strtotime($OldVon)) . " " . $zeile["Was"] . "
    " . $zeile["Wo"] . "
    " . $zeile["Info"] . "
    "; + } +} + +?> + + + diff --git a/html/UrlLogin.php b/html/UrlLogin.php index 11cc129..ac6e0da 100644 --- a/html/UrlLogin.php +++ b/html/UrlLogin.php @@ -1,8 +1,7 @@ - "; $foot = ""; +$db_link = ConnectDB(); -$db_link = mysqli_connect( - MYSQL_HOST, - MYSQL_BENUTZER, - MYSQL_KENNWORT, - MYSQL_DATENBANK -); // ist jetzt in _crypt.php, aber aus der anderen Datei, deshalb hier erst // nur auskommentiert // function Entschluessle($encrypted_data,$secret_verification,$secret_key){ diff --git a/html/Userdaten.php b/html/Userdaten.php index 30a4fc9..14f54f5 100644 --- a/html/Userdaten.php +++ b/html/Userdaten.php @@ -1,7 +1,16 @@ + - Drop am See Helferdaten ändern + <?php echo EVENTNAME ?> Helferdaten ändern @@ -11,24 +20,10 @@ + - + diff --git a/html/_login.php b/html/_login.php index 787f803..f84f199 100644 --- a/html/_login.php +++ b/html/_login.php @@ -1,4 +1,7 @@ + + + + Helfer <?php echo EVENTNAME ?> Home + + + + + + +
    @@ -67,6 +81,8 @@ if (!isset($_SESSION["HelferID"])) { + + \n"; // Zeitbereich tr + // iterate over all days plus "before" and "after" + // Wenn TAG_DAUER=4, dann sind die Werte 1-4 die Tage der Con + // ZeitBereichWerte = [-1, 0, 1, 2, 3, 4, 1000] + // -1: davor, 0: alle, 1-4: Tag 1-4, 1000: danach + foreach ($ZeitBereichWerte as &$EinZeitBereich) { + if ($EinZeitBereich > 0 && $EinZeitBereich <= TAGE_DAUER) { + $PlusTage = $EinZeitBereich - 1; + //TODO: only if locale DE + $day = $start_date->add(new DateInterval("P{$PlusTage}D")); + $Wochentag = $TageNamenDeutsch[date_format($day, 'w')]; + + $Text = "$Wochentag (Tag{$EinZeitBereich})"; + $Von = date_format($day, $format) . " 00:00:00"; + $Bis = date_format($day, $format) . " 23:59:59"; + } elseif ($EinZeitBereich == -1) { + $Text = 'Davor'; + $Von = "2000-01-01 00:00:00"; + $Bis = date_format($start_date, $format) . " 00:00:00"; + } elseif ($EinZeitBereich == 0) { + $Text = 'Alle' ; + $Von = "2000-01-01 00:00:00"; + $Bis = "3000-01-01 00:00:00"; + } elseif ($EinZeitBereich == 1000) { + $Text = 'Danach'; + $tage_dauer = TAGE_DAUER; + $day = $start_date->add(new DateInterval("P{$tage_dauer}D")); + $Von = date_format($day, $format) . " 00:00:00"; + $Bis = "3000-01-01 00:00:00"; + } + // highlight the selected time range + if ($EinZeitBereich == $ZeitBereich) { + $color = 'background-color:#0000FF; ' ; + $MeinVon = $Von; + $MeinBis = $Bis; + } else { + $color = ''; + } + // write the field for each day + echo "
    \n"; + } + echo ""; //Zeitbereich tr + return [ + 'MeinVon' => $MeinVon, + 'MeinBis' => $MeinBis + ]; +} diff --git a/html/index.php b/html/index.php index c1d6e72..382640f 100644 --- a/html/index.php +++ b/html/index.php @@ -1,7 +1,14 @@ + - Helfer Drop am See Home + Helfer <?php echo EVENTNAME ?> Home @@ -9,54 +16,38 @@ - - -
    -
    Helferdaten Helferdaten
    "; + echo "$Text" . "
    +
    - + + + + + + + @@ -88,31 +79,31 @@ foreach ($schichten as $zeile) { @@ -130,23 +121,12 @@ foreach ($schichten as $zeile) { - - - - - - - - +
      Drop am See 2023  
    Admin Menü
    Nächste Helferschichten: -
      +
        Fr 08:00 Leitung Halle //
      • So 12:00 Abbau
      • @@ -79,7 +70,7 @@ foreach ($schichten as $zeile) { } ?> -
      +
    Nächste Ereignisse: - -
      + +
      • Sa 20:00 Show im Milchwerk
      • So 15:00 Gaukelgames
      • -
      - +
    +
    Nächste Workshops: -
      +
      • Sa 14:00 8 Bälle für Anfänger
      • Sa 15:00 Devilstick Hubschrauber beidseitig
      • -
      +
    Wichtig: -
      +
      • Warnung vor Sturm ab 21 Uhr
      • -
      +
    Logs
    Admin
    Logout
    diff --git a/html/js/helferdb.js b/html/js/helferdb.js index f8630bf..3e011ee 100644 --- a/html/js/helferdb.js +++ b/html/js/helferdb.js @@ -8,6 +8,28 @@ function showPassword(id) } } +function setEndDate() +{ + // js Date .toISOString automatically converts to UTC marking the string by "Z" at the end + // This is not understood by the browser when setting the value of the string + // UTC is 1h off resulting in a 1h wrong time if the Z is removed + // so we add the "Z" here, then remove it in the end + // this works for my local firefox. There should be a check if there already is a Z + // because maybe browsers also convert to UTC for the internal value + // but I guess in the worst case we have ZZ at the end and the js autofill fails + var checkBox = document.getElementById("Schicht-Automatic-Bis"); + if (checkBox.checked == true) { + var start = new Date(document.getElementById("Schicht-Von").value + 'Z'); + var delta = new Date("0000-01-01T" + document.getElementById("Schicht-Dauer").value); + var end = new Date(start); + var endHours = start.getHours() + delta.getHours(); + end.setHours(endHours); + console.log("Schicht-Von: " + document.getElementById("Schicht-Von").value + 'Z' + " Schicht-Dauer: " + "0000-01-01T" + document.getElementById("Schicht-Dauer").value + "Schicht-Bis: " + end.toISOString().replace(/.000Z/,"")); + end.setMinutes(start.getMinutes() + delta.getMinutes()); + document.getElementById("Schicht-Bis").value = end.toISOString().replace(/.000Z/,""); + } +} + //// https://www.w3schools.com/howto/howto_js_collapsible.asp //var coll = document.getElementsByClassName("collapsible"); //var i; @@ -30,16 +52,21 @@ function collapse_table_rows() { $(document).ready( function () { - $('tr:not(.header)').hide(); - - $('tr.header').click( + // Unter-Zeilen in collapsible Tabellen verbergen + $('table.collapsible tr:not(.header)').hide(); + // Zeile mit dem target="active" (von PHP nach submit gesetzt) und dazugehoerige Zeilen anzeigen + $('table.collapsible tr[target="active"]').prevUntil('tr.header').addBack().nextUntil('tr.header').addBack().show(); + // id="active" als Anker auf letztes tr.header vor der target=active Seite setzen und dort hin springen + // damit der Nutzer nach Abschicken des Posts seine geoeffneten Optionen sieht + $('table.collapsible tr[target="active"]').prevAll('.header').first().attr('id', 'active'); + location.href = '#active'; + $('table.collapsible tr.header').click( function () { $(this).find('span').text( function (_, value) { return value == '-' ? '+' : '-' } ); - $(this).nextUntil('tr.header').slideToggle(100, function () {}); } ); @@ -50,6 +77,5 @@ function collapse_table_rows() function expand_all_table_rows() { - $('tr:not(.header)').hide(); // make all collapsed so that slideToggle doesnt close opened ones - $('tr:not(.header)').slideToggle(100, function () {}); + $('tr:not(.header)').show(); } diff --git a/html/konfiguration.php b/html/konfiguration.php index 41b6f6b..d3b4921 100644 --- a/html/konfiguration.php +++ b/html/konfiguration.php @@ -1,32 +1,7 @@