From e0baad13f091f29eea049eb571fbd2a62f03db77 Mon Sep 17 00:00:00 2001 From: Karsten Siegmund Date: Thu, 4 Jan 2024 15:09:06 +0100 Subject: [PATCH 1/6] DetailsSchichten format --- html/DetailsSchichten.php | 140 ++++++++++++++++++-------------------- 1 file changed, 67 insertions(+), 73 deletions(-) diff --git a/html/DetailsSchichten.php b/html/DetailsSchichten.php index dcfb2db..68b4a32 100644 --- a/html/DetailsSchichten.php +++ b/html/DetailsSchichten.php @@ -18,73 +18,68 @@ SESSION_START(); -require_once ('konfiguration.php'); +require_once('konfiguration.php'); //require_once ('SQL.php'); include 'SQL.php'; -$db_link = mysqli_connect ( - MYSQL_HOST, - MYSQL_BENUTZER, - MYSQL_KENNWORT, - MYSQL_DATENBANK - ); +$db_link = mysqli_connect( + MYSQL_HOST, + MYSQL_BENUTZER, + MYSQL_KENNWORT, + MYSQL_DATENBANK +); + + - - /// Detailinformation zu ausgewaehlten Schicht Holen //////////////////////////////////////////////////////// -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); +if (isset($_GET['InfoAlleSchichtID'])) { + $InfoAlleSchichtID = $_GET['InfoAlleSchichtID']; + unset($InfoMeineSchichtID); + //echo "". $SchichtID . "
"; - - $x=0; - - while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC)) - { - $MitHelferID[$x] = $zeile['HelferID']; - $MitHelfer[$x] = $zeile['Name']; - $MitHelferHandy[$x]= $zeile['Handy']; - $x++; - } - - + $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['HelferID'])) { + $HelferID = $_POST['HelferID']; +} +if (isset($_POST['ShowHelfer'])) { + $HelferID = $_POST['HelperSearch']; } - if(isset($_POST['ShowHelfer'])) { - $HelferID=$_POST['HelperSearch']; - } $_SESSION["HelferID"] = $HelferID; @@ -126,38 +121,37 @@ $_SESSION["HelferID"] = $HelferID; /// Alle Schichten Des Helfers Anzeigen //////////////////////////////////////////////////////// - + echo ''; - echo ""; - echo ""; + echo "\n"; - + 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 "\n"; - echo "
".$Was."
"; - + echo "" . $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 "

"; + + echo ""; @@ -167,7 +161,7 @@ echo ''; -mysqli_free_result( $db_erg ); +mysqli_free_result($db_erg); ?> From 9d7a1c41de8265748b735a3f95a89b60eab0e7d1 Mon Sep 17 00:00:00 2001 From: Karsten Siegmund Date: Fri, 5 Jan 2024 16:35:50 +0100 Subject: [PATCH 2/6] Fix eingeklappte Zeilen nach + - von User in der angeklickten Zeile ausklappen; lange Zeilen aufgeteilt; js schaut nur Tabellen des Typs "collapsible" an --- html/Admin.php | 49 ++++++++++++++++---- html/AlleSchichten.php | 69 ++++++++++++---------------- html/Ausdrucke.php | 2 +- html/TeilnehmerSchichtenAusdruck.php | 20 +++++--- html/js/helferdb.js | 16 ++++--- 5 files changed, 92 insertions(+), 64 deletions(-) diff --git a/html/Admin.php b/html/Admin.php index 96ebca3..4060853 100644 --- a/html/Admin.php +++ b/html/Admin.php @@ -53,30 +53,43 @@ while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
- - + - - + - + - + @@ -115,8 +140,12 @@ while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
  Admin HelferDB + +   + Admin HelferDB
- Dienste und Schichten verwalten + + + Dienste und Schichten verwalten +
Seite zur Helfer selbst-Registrierung
Helfer per Link einladen
- Helferübersicht (und als Admin ändern) + + + Helfer 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 +
Ausdrucke
-

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/AlleSchichten.php b/html/AlleSchichten.php index c3641cc..9cac228 100644 --- a/html/AlleSchichten.php +++ b/html/AlleSchichten.php @@ -2,19 +2,19 @@ Helfer Drop am See Alle Schichten - + - - - + + + - + - +

Alle Schichten / Schichten hinzufügen

- + '); } else { // Fehlermeldungen ausgeben: echo '
    '; @@ -145,6 +138,8 @@ 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 @@ -169,6 +164,7 @@ if (isset($_POST['minusschicht'])) { $db_erg = SchichtenSummeEinesHelfers($db_link, $HelferID); $zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC); + //"Mein Dienstplan" echo ' - +
    '; echo '' . " Mein Dienstplan ("; echo $zeile['Anzahl']; @@ -206,7 +202,6 @@ if ($addschicht == '0') { echo "

    "; } -//echo "InfoAlleSchichtID ".$InfoAlleSchichtID; if ($addschicht != '0') { //$db_erg = AlleSchichten($db_link,$dienstsort); @@ -237,21 +232,11 @@ if ($addschicht != '0') { $iBelegteSchichtenCount = AlleBelegteSchichtenCount($db_link); echo ""; - //echo "

    "; - echo ''; + // "Alle Schichten der Con" + echo '
    '; echo ""; - echo ""; + echo ""; - /* - if ($dienstsort=='1') - { - echo ""; - } - else - { - echo ""; - } - */ echo ""; // Zeitbereich tr if ($ZeitBereich == 1) { echo ""; @@ -298,7 +283,8 @@ if ($addschicht != '0') { //print_r($MeineDienste); echo '
    " . "Alle Schichten der Con (" . $iBelegteSchichtenCount . "/" . $iAlleSchichtenCount . ")
    Alle Schichten der Con (" . $iBelegteSchichtenCount . "/" . $iAlleSchichtenCount . ")
    ". "Dienst" . "". "Von" . "
    " . "Alle" . "
    '; - echo ''; + // Tabelle mit allen Diensten und Schichten + echo '
    '; while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { if ($dienstsort == '1') { $Tag = $zeile['Tag']; @@ -313,7 +299,8 @@ if ($addschicht != '0') { $Was = $zeile['Was']; if ($Was != $OldWas) { - echo ""; /* @@ -349,6 +336,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 ''; @@ -363,8 +353,7 @@ 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
    "; @@ -380,9 +369,9 @@ mysqli_free_result($db_erg); ?> - - + + - + diff --git a/html/Ausdrucke.php b/html/Ausdrucke.php index 239e45d..aeb8fc6 100644 --- a/html/Ausdrucke.php +++ b/html/Ausdrucke.php @@ -62,7 +62,7 @@ while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
    Ausdruck Schichten(I)
    Ausdruck Schichten(II)
    diff --git a/html/TeilnehmerSchichtenAusdruck.php b/html/TeilnehmerSchichtenAusdruck.php index 97c503e..79b3c77 100644 --- a/html/TeilnehmerSchichtenAusdruck.php +++ b/html/TeilnehmerSchichtenAusdruck.php @@ -94,7 +94,6 @@ if (isset($_GET['ZeitBereich'])) { ?> -

    "; echo ''; echo ""; - echo ""; + echo ""; echo "\n\n"; // Zeitbereich tr @@ -227,7 +227,9 @@ foreach ($ZeitBereichWerte as &$EinZeitBereich) { //$Text="$Text
    $MeinVon $MeinBis"; // debug time strings // write the field for each day - echo "\n"; + echo "\n"; } echo ""; //Zeitbereich tr @@ -242,13 +244,16 @@ $MeineDienste = SchichtIdArrayEinesHelfers($db_link, $HelferID); echo "
    " . "Alle Schichten der Con (" . $iBelegteSchichtenCount . "/" . $iAlleSchichtenCount . ")
    " . "Alle Schichten der Con ("; + echo $iBelegteSchichtenCount . "/" . $iAlleSchichtenCount . ")
    " . "$Text" . ""; + echo "$Text" . "
    \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. +// 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 namer. 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. +// 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 "
    next table
    \n"; echo "\n"; // $db_erg ist aus AlleSchichtenImZeitbereich @@ -269,7 +274,8 @@ while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { echo ""; echo "\n"; } - $db_erg_helfer = BeteiligteHelfer($db_link, $zeile['SchichtID']); // get the people who are already signed up for this shift + // 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; diff --git a/html/js/helferdb.js b/html/js/helferdb.js index f8630bf..a943637 100644 --- a/html/js/helferdb.js +++ b/html/js/helferdb.js @@ -30,16 +30,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 +55,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(); } From 3a06a728628423c90c773ccd9879e829aa92b739 Mon Sep 17 00:00:00 2001 From: Karsten Siegmund Date: Fri, 5 Jan 2024 17:03:59 +0100 Subject: [PATCH 3/6] collapsible --- html/AdminHelferUebersicht.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/html/AdminHelferUebersicht.php b/html/AdminHelferUebersicht.php index 4ade955..3c385e5 100644 --- a/html/AdminHelferUebersicht.php +++ b/html/AdminHelferUebersicht.php @@ -71,7 +71,7 @@ echo "

    $Was ($TagKurz)
    ";
      Übersicht Helfer und Ihre Schichten
    - +
    Date: Fri, 5 Jan 2024 17:11:08 +0100 Subject: [PATCH 4/6] collapsible --- html/AdminAlleSchichten.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/html/AdminAlleSchichten.php b/html/AdminAlleSchichten.php index 7571101..217fac9 100644 --- a/html/AdminAlleSchichten.php +++ b/html/AdminAlleSchichten.php @@ -197,7 +197,7 @@ if (isset($_POST['minusschicht'])) { $db_erg = SchichtenSummeEinesHelfers($db_link, $AliasHelferID); $zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC); - echo '
    '; + echo '
    '; echo " Dienstplan von $HelferName (Zusammenfassung)
    "; echo $zeile['Anzahl']; echo " Schichten insgesamt "; @@ -266,7 +266,7 @@ if ($addschicht != '0') { //echo "

    "; - echo ''; + echo '
    '; echo ""; echo ""; echo ""; @@ -333,7 +333,7 @@ if ($addschicht != '0') { //print_r($MeineDienste); echo '
    " . "Alle Schichten der Con (" . $iBelegteSchichtenCount . "/" . $iAlleSchichtenCount . ")
    '; - echo ''; + echo '
    '; while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { if ($dienstsort == '1') { From 9abd42cfa4e742d77b2fc24efee4da0ec9e90228 Mon Sep 17 00:00:00 2001 From: Karsten Siegmund Date: Fri, 5 Jan 2024 17:13:09 +0100 Subject: [PATCH 5/6] collapsible --- html/AdminAlleSchichten.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/html/AdminAlleSchichten.php b/html/AdminAlleSchichten.php index 7571101..217fac9 100644 --- a/html/AdminAlleSchichten.php +++ b/html/AdminAlleSchichten.php @@ -197,7 +197,7 @@ if (isset($_POST['minusschicht'])) { $db_erg = SchichtenSummeEinesHelfers($db_link, $AliasHelferID); $zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC); - echo '
    '; + echo '
    '; echo " Dienstplan von $HelferName (Zusammenfassung)
    "; echo $zeile['Anzahl']; echo " Schichten insgesamt "; @@ -266,7 +266,7 @@ if ($addschicht != '0') { //echo "

    "; - echo ''; + echo '
    '; echo ""; echo ""; echo ""; @@ -333,7 +333,7 @@ if ($addschicht != '0') { //print_r($MeineDienste); echo '
    " . "Alle Schichten der Con (" . $iBelegteSchichtenCount . "/" . $iAlleSchichtenCount . ")
    '; - echo ''; + echo '
    '; while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { if ($dienstsort == '1') { From 89108993953f40669b1f98fd6568406d9e57d838 Mon Sep 17 00:00:00 2001 From: Karsten Siegmund Date: Fri, 5 Jan 2024 17:59:04 +0100 Subject: [PATCH 6/6] =?UTF-8?q?braucht=20auch=20target=3Dactive=20f=C3=BCr?= =?UTF-8?q?=20Ausklappen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/AdminAlleSchichten.php | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/html/AdminAlleSchichten.php b/html/AdminAlleSchichten.php index 217fac9..92eee16 100644 --- a/html/AdminAlleSchichten.php +++ b/html/AdminAlleSchichten.php @@ -16,13 +16,13 @@ if ($AdminStatus != 1) { Helfer Drop am See Alle Schichten - - + - - + + + @@ -140,18 +140,13 @@ while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { /////////////////////////////////////////////////////////// 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($db_link, $AliasHelferID, $SchichtId, $AdminID); + $db_erg = HelferSchichtZuweisen($db_link, $AliasHelferID, $SchichtID, $AdminID); // Erfolg vermelden und Skript beenden, damit Formular nicht erneut ausgegeben wird $HelferName = ''; @@ -385,6 +380,9 @@ if ($addschicht != '0') { $rowstyle = 'style="dummy:' . $zeile['SchichtID'] . '"'; $regtext = ''; } + if ($_SESSION["SchichtIdAktiv"] == $zeile['SchichtID']) { + $rowstyle = $rowstyle . " target='active' "; // dont collapse when the user did something + } echo ''; @@ -399,7 +397,7 @@ if ($addschicht != '0') { echo "" . $zeile['Soll'] . ""; // buttons sind in der selben Zelle echo ""; + echo "   $regtext" . ""; //echo ""; echo "\n"; }
    " . "" . ""; - echo "" . "   $regtext" . "$regtext