switch everything w variable to prepare + many more fixes

This commit is contained in:
root 2025-06-18 13:37:52 +02:00
parent 8a53f6a895
commit 0c67fbea29
13 changed files with 615 additions and 1445 deletions

View File

@ -11,7 +11,7 @@ if ($AdminStatus != 1) {
echo '<!doctype html><head><meta http-equiv="Refresh" content="0; URL=index.php" /></head></html>';
exit;
}
?>
$header=<<<HEADER
<!doctype html>
<html>
<head>
@ -23,8 +23,7 @@ if ($AdminStatus != 1) {
<meta name="viewport" content="width=480" />
</head>
<body>
<?php
HEADER; //<?nop this bracket is just here for vim syntax highlighting
DatenbankAufDeutsch($db_link);
@ -36,18 +35,18 @@ if (isset($_SESSION["AliasHelferID"])) {
if (isset($_POST["AliasHelferID"])) {
$AliasHelferID = $_POST["AliasHelferID"];
header("Location: " . $_SERVER['PHP_SELF']);
}
if ($AliasHelferID != 0) {
$_SESSION["AliasHelferID"] = $AliasHelferID;
}
echo $header; // muss nach redirect-headern fuer POST ausgegeben werden
$db_erg = Helferdaten($db_link, $HelferID);
while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
$HelferName = $zeile['Name'];
$HelferIsAdmin = $zeile['Admin'];
}
?>
<div style="width: 100%;">
@ -100,7 +99,7 @@ while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
$selectedSet = true;
}
}
if( ! isset($selectedSet) and ! $selectedSet) {
if( ! isset($selectedSet) or ! $selectedSet) {
echo "<option value='none' selected='selected'>Bitte auswählen</optionen>";
}

View File

@ -1,386 +0,0 @@
<?php
// Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden
require_once 'konfiguration.php';
SESSION_START();
require 'SQL.php';
$db_link = ConnectDB();
// zeigt login-Seite an, wenn keine Session besteht
require '_login.php';
if ($AdminStatus != 1) {
//Seite nur fuer Admins. Weiter zu index.php und exit, wenn kein Admin
echo '<!doctype html><head><meta http-equiv="Refresh" content="0; URL=index.php" /></head></html>';
exit;
}
?>
<!doctype html>
<html>
<head>
<title><?php echo EVENTNAME ?> Alle Schichten</title>
<link rel="stylesheet" href="css/style_desktop.css" media="screen and (min-width:781px)"/>
<link rel="stylesheet" href="css/style_mobile.css" media="screen and (max-width:780px)"/>
<meta name="viewport" content="width=480" />
<script src="js/jquery-3.7.1.min.js" type="text/javascript"></script>
<script src="js/helferdb.js" type="text/javascript"></script>
<script> collapse_table_rows();
</script>
</head>
<body>
<button name="BackHelferdaten" value="1" onclick="window.location.href = 'AdminHelferUebersicht.php';">
<b>&larrhk;</b>
</button>
<?php echo "<b>" . EVENTNAME . "</b>"; ?>
<h1> Alle Schichten / Schichten hinzuf&uuml;gen </h1>
<div style="width: 100%;">
<?php
/// Detailinformation zu ausgewaehlten Schicht Holen
////////////////////////////////////////////////////////
if (isset($_POST['CloseInfo'])) {
unset($InfoMeineSchichtID);
unset($InfoAlleSchichtID);
}
// wird nie gesetzt
//if (isset($_POST['InfoMeineSchichtID'])) {
function SchichtInfo($SchichtID, &$Was, &$Wo, &$Dauer, &$Leiter, &$LeiterHandy, &$LeiterEmail, &$Info)
{
$db_link = ConnectDB();
// $InfoMeineSchichtID = $_POST['InfoMeineSchichtID'];
unset($InfoAlleSchichtID);
//echo "<b>". $SchichtID . "</b><br>";
$zeile = DetailSchicht($db_link, $SchichtID);
$Was = $zeile['Was'];
$Wo = $zeile['Wo'];
$Dauer = $zeile['Dauer'];
$Leiter = $zeile['Name'];
$LeiterHandy = $zeile['Handy'];
$LeiterEmail = $zeile['Email'];
$Info = $zeile['Info'];
$db_link->close();
}
// wird nur mit anderer Datei DetailsSchichten.php verwendet, nicht hier
//if (isset($_GET['InfoAlleSchichtID'])) {
// $InfoAlleSchichtID = $_GET['InfoAlleSchichtID'];
// unset($InfoMeineSchichtID);
// //echo "<b>". $SchichtID . "</b><br>";
//
// $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++;
// }
//}
// Auswahl Tag oberhalb der Dienstetabelle
if (isset($_GET['ZeitBereich'])) {
$ZeitBereich = $_GET['ZeitBereich'];
} else {
$ZeitBereich = 0;
}
function HelferAuswahlButton($db_link, $AliasHelferID)
{
echo '<b>Helfer w&auml;hlen:<b> <form style="display:inline-block;" method=post><select style="height:33px;width:350px;" name="AliasHelferID" id="AliasHelferID" onchange="submit()">';
$db_erg = HelferListe($db_link);
while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
if ($AliasHelferID != $zeile['HelferID']) {
echo "<option value='" . $zeile['HelferID'] . "'>" . $zeile['Name'] . "</optionen>";
} else {
echo "<option value='" . $zeile['HelferID'] . "' selected='selected'>" . $zeile['Name'] . "</optionen>";
}
}
echo '</select></form>';
}
if (isset($_POST['AliasHelferID'])) {
$AliasHelferID = $_POST['AliasHelferID'];
} elseif (isset($_SESSION["AliasHelferID"])) {
$AliasHelferID = $_SESSION["AliasHelferID"];
} else {
HelferAuswahlButton($db_link, $AliasHelferID);
echo "<p>Erst Helfer auswählen</p>";
exit;
}
HelferAuswahlButton($db_link, $AliasHelferID);
$_SESSION["AliasHelferID"] = $AliasHelferID;
$AdminID = $_SESSION["AdminID"];
$db_erg = Helferdaten($db_link, $AliasHelferID);
while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
$HelferName = $zeile['Name'];
$AliasHelferLevel = $zeile['HelferLevel'];
}
// Helferliste Anzeigen
////////////////////////////////////////////////////////
?>
<form method="post" action="#Info">
<?php
// Neu Schicht fuer Helfer Eintragen
///////////////////////////////////////////////////////////
if (isset($_POST['plusschicht'])) {
$messages = [];
$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);
// Erfolg vermelden und Skript beenden, damit Formular nicht erneut ausgegeben wird
$HelferName = '';
$HelferEmail = '';
$HelferHandy = '';
} else {
// Fehlermeldungen ausgeben:
echo '<div class="error"><ul>';
foreach ($messages as $message) {
echo '<li>' . htmlspecialchars($message) . '</li>';
}
echo '</ul></div>';
}
}
if (isset($_POST['minusschicht'])) {
// Mich aus Schicht entfernen
$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($db_link, $AliasHelferID, $SchichtID, $AdminID);
} else {
// Fehlermeldungen ausgeben:
echo '<div class="error"><ul>';
foreach ($messages as $message) {
echo '<li>' . htmlspecialchars($message) . '</li>';
}
echo '</ul></div>';
}
}
/// Ausgabe auf Deutsch umstellen
/////////////////////////////////////////////////////////////////////////
DatenbankAufDeutsch($db_link);
// Zusammenfassung Eigener Schichten
$db_erg = SchichtenSummeEinesHelfers($db_link, $AliasHelferID);
$zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC);
//"Dienstplan von"
echo '<table class="commontable"><tr class="header"><th onclick="window.location.href=\'AdminMeineSchichten.php\'">';
echo '<img src="Bilder/PfeilRechts2.png" style="width:30px;height:30px;align:middle;">' . "Dienstplan von $HelferName: ";
echo $zeile['Anzahl'];
echo " Schichten, ";
echo $zeile['Dauer'] / 3600;
echo " Stunden)";
echo '</th></tr></table><br><br>';
/// Schichten Auswahl
////////////////////////////////////////////////////////
$addschicht = $_SESSION["addschicht"];
$dienstsort = $_SESSION["dienstsort"];
//addschicht und dienst-sort sollten wohl nach Diensten bzw Tagen sortieren
//addschicht wird gerade nie gesetzt, dienst-sort damit auch nicht
if (isset($_POST['addschicht']) && $_POST['addschicht'] == '1') {
$addschicht = '1';
$dienstsort = '1';
}
if (isset($_POST['addschicht']) && $_POST['addschicht'] == '2') {
$addschicht = '2';
$dienstsort = '2';
}
if (isset($_POST['addschicht']) && $_POST['addschicht'] == '0') {
$addschicht = '0';
}
$_SESSION["addschicht"] = $addschicht;
$_SESSION["dienstsort"] = $dienstsort;
//echo "<br>Detail=".$addschicht."<br>";
if ($addschicht == '0') {
echo "<p><b>Schichten Hinzufügen geordnet nach</b>";
echo "<button name='addschicht' value='1'>Tage</button>";
echo "<button name='addschicht' value='2'>Dienste</button></p>";
}
if ($addschicht != '0') { // addschicht soll Darstellung nach Tagen oder Diensten sortieren, macht es aber nicht
echo '<table class="commontable">';
require('_zeitbereich.php');
$Bereich = AusgabeZeitbereichZeile($start_date, $ZeitBereich, $TageNamenDeutsch, $_SERVER['PHP_SELF']);
$MeinVon = $Bereich['MeinVon'];
$MeinBis = $Bereich['MeinBis'];
$db_erg = AlleSchichtenImZeitbereich($db_link, $MeinVon, $MeinBis, $AliasHelferLevel);
// fuer Anzahlanzeige in Ueberschrift
$iAlleSchichtenCount = AlleSchichtenCount($db_link);
$iBelegteSchichtenCount = AlleBelegteSchichtenCount($db_link);
echo '</table>';
echo "<button type='button' onclick='expand_all_table_rows();'>Alles Ausklappen</button>";
// "Alle Schichten der Con"
echo '<table class="commontable">';
echo "<tr class='infoheader'>";
echo "<th colspan='5'>Alle Schichten der Con (Besetzt/Gesamt) " . $iBelegteSchichtenCount . "/" . $iAlleSchichtenCount . "</th></tr>";
$alleHelferLevel = alleHelferLevel($db_link);
foreach ($alleHelferLevel as $HelferLevelIteration => $HelferLevelBeschreibung) {
$meine = "";
if ($HelferLevelIteration == $AliasHelferLevel) {
$meine = " &leftarrow; mein Level, Schichten werden unten angezeigt";
}
$iAlleSchichtenCount = AlleSchichtenCount($db_link, $HelferLevelIteration);
$iBelegteSchichtenCount = AlleBelegteSchichtenCount($db_link, $HelferLevelIteration);
echo "<tr class='infoheader'><th colspan='5' >&nbsp;&nbsp; &rightarrow; Schichten $HelferLevelBeschreibung (Besetzt/Gesamt) (" . $iBelegteSchichtenCount . "/" . $iAlleSchichtenCount . ") $meine</th></tr>";
}
$OldTag = "";
$OldWas = "";
// um Zeilen mit von mir belegten Schichten hervorzuheben
$MeineDienste = SchichtIdArrayEinesHelfers($db_link, $AliasHelferID);
//print_r($MeineDienste);
echo '</table>';
// Tabelle mit allen Diensten und Schichten
echo '<table class="commontable collapsible">';
while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
if ($dienstsort == '1') { // dienst-sort wird momentan nie gesetzt, also immer else-Teil ausgeführt
$Tag = $zeile['Tag'];
if ($Tag != $OldTag) {
echo "<tr class='header'><th colspan='5' >";
echo $Tag;
echo "</th></tr>";
$OldTag = $Tag;
}
} else {
$Was = $zeile['Was'];
if ($Was != $OldWas) { // Header ausgeben, wenn der Dienst nicht mehr der selbe ist
// + in <span> becomes - when rows are opened
echo "<tr class='header'><th colspan='5' style='width:100%'><span>+</span> ";
$SchichtID = $zeile['SchichtID'];
$DienstID = $zeile['DienstID'];
$iAlleSchichtenCount = AlleSchichtenCount($db_link, $AliasHelferLevel, $DienstID);
$iBelegteSchichtenCount = AlleBelegteSchichtenCount($db_link, $AliasHelferLevel, $DienstID);
echo "$Was ($iBelegteSchichtenCount/$iAlleSchichtenCount) <!-- Abfrage $AliasHelferLevel, $DienstID -->";
echo "</th>";
echo "</tr>";
SchichtInfo($SchichtID, $InfoWas, $InfoWo, $InfoDauer, $Leiter, $LeiterHandy, $LeiterEmail, $Info);
if (true) {
echo "<tr><td colspan=5 style='background:lightblue'>";
echo "<b>Beschreibung:</b> $Info <br><br>";
echo "<b>Ort:</b> $InfoWo <br>";
//echo "<b>Dauer:</b> $InfoDauer<br>"; // verschieden je nach Einzelschicht
echo "<b>Ansprechparter:</b>" . $Leiter . ", ";
echo $LeiterHandy . ", ";
echo "$LeiterEmail";
echo "</td></td></tr>\n";
}
$OldWas = $Was;
}
}
$Color = "red";
if ($zeile['Ist'] > 0) {
$Color = "yellow";
}
if ($zeile['Ist'] >= $zeile['Soll']) {
$Color = "green";
}
$Von = $zeile['Ab'];
$Bis = $zeile['Bis'];
if (substr($Von, 0, 2) == substr($Bis, 0, 2)) {
$Bis = substr($Bis, 2);
}
$Von = substr($Von, 2);
// Meine Schichten gruen einfaerben
if (in_array($zeile['SchichtID'], $MeineDienste)) {
$rowstyle = ' style="background-color:lightgreen" ';
$regtext = '<br><center>Meine!</center>';
} else {
// dummy-style, um SchichtID unsichtbar im Tag anzuzeigen
$rowstyle = 'dbinfo="SchichtID:' . $zeile['SchichtID'] . ';helferlvl:' . $HelferLevel . '" ';
$regtext = '';
}
if (isset($_SESSION["SchichtIdAktiv"]) && $_SESSION["SchichtIdAktiv"] == $zeile['SchichtID']) {
$rowstyle = $rowstyle . " target='active' "; // dont collapse when the user did something
}
echo '<tr ' . $rowstyle . 'onclick="window.location.href=\'DetailsSchichten.php?InfoAlleSchichtID=' . $zeile['SchichtID'] . '#Info\';" >';
if ($dienstsort == '1') {
echo "<td>" . $zeile['Was'] . "</td>";
} else {
echo "<td>" . $zeile['Tag'] . "</td>";
}
echo "<td>" . $Von . "</td>";
echo "<td>" . $Bis . "</td>";
echo "<td bgcolor='" . $Color . "'>" . $zeile['Ist'] . "/";
echo "" . $zeile['Soll'] . "</td>";
// durch space:nowrap wird ein Umbruch zwischen den Buttons verhindert
// in Kombi mit width:1% wird immer der minimale Platz für die Spalte belegt
// width:200px oder max-width:200px hat zu viel weissem Platz rechts und enge links gefuehrt
echo "<td style='width:10%;white-space:nowrap'><button name='plusschicht' value='" . $zeile['SchichtID'] . "'>+</button>";
echo "&nbsp;&nbsp;<button name='minusschicht' value='" . $zeile['SchichtID'] . "'>&ndash;</button> $regtext" . "</td>";
echo "</tr>\n";
}
echo "</table>";
}
mysqli_free_result($db_erg);
?>
</form>
</div>
</body>
</html>

View File

@ -7,6 +7,58 @@ require 'SQL.php';
$db_link = ConnectDB();
// zeigt login-Seite an, wenn keine Session besteht
require '_login.php';
// POST vor HTML Ausgabe
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// Neu Schicht fuer Helfer Eintragen
///////////////////////////////////////////////////////////
$messages = [];
if (isset($_POST['plusschicht'])) {
$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
// wenn es ein Admin ist, die AdminID übergeben, ansonsten 0
// TODO: immer AdminID angeben, die Funktionen in SQL testen, ob HelferID==AdminID
$db_erg = HelferSchichtZuweisen($db_link, $HelferID, $SchichtID, $AdminStatus == 1 ? $AdminID : 0);
$HelferName = '';
$HelferEmail = '';
$HelferHandy = '';
} else {
// Fehlermeldungen ausgeben:
echo '<div class="error"><ul>';
foreach ($messages as $message) {
echo '<li>' . htmlspecialchars($message) . '</li>';
}
echo '</ul></div>';
exit;
}
}
if (isset($_POST['minusschicht'])) {
// Mich aus Schicht entfernen
$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($db_link, $HelferID, $SchichtID, $AdminID);
} else {
// Fehlermeldungen ausgeben:
echo '<div class="error"><ul>';
foreach ($messages as $message) {
echo '<li>' . htmlspecialchars($message) . '</li>';
}
echo '</ul></div>';
exit;
}
}
header("Location: " . $_SERVER['PHP_SELF']);
}
?>
<!doctype html>
<html>
@ -15,16 +67,16 @@ require '_login.php';
<link rel="stylesheet" href="css/style_desktop.css" media="screen and (min-width:781px)"/>
<link rel="stylesheet" href="css/style_mobile.css" media="screen and (max-width:780px)"/>
<meta name="viewport" content="width=480" />
<script src="<?php echo JQUERY ?>" type="text/javascript"></script>
<script src="js/helferdb.js" type="text/javascript"></script>
<script> collapse_table_rows();
</script>
</head>
<body>
<button name="BackHelferdaten" value="1" onclick="window.location.href = 'AdminHelferUebersicht.php';">
<a href="AdminHelferUebersicht.php">
<button name="BackHelferdaten">
<b>&larrhk;</b>
</button>
</button></a>
<?php echo "<b>" . EVENTNAME . "</b>"; ?>
<h1> Alle Schichten / Schichten hinzuf&uuml;gen </h1>
<div style="width: 100%;">
@ -32,20 +84,15 @@ require '_login.php';
/// Detailinformation zu ausgewaehlten Schicht Holen
////////////////////////////////////////////////////////
if (isset($_POST['CloseInfo'])) {
unset($InfoMeineSchichtID);
unset($InfoAlleSchichtID);
}
// wird nie gesetzt
//if (isset($_POST['InfoMeineSchichtID'])) {
function SchichtInfo($SchichtID, &$Was, &$Wo, &$Dauer, &$Leiter, &$LeiterHandy, &$LeiterEmail, &$Info)
function SchichtInfo($SchichtID, &$Was, &$Wo, &$Dauer, &$Leiter, &$LeiterHandy, &$LeiterEmail, &$Info)
{
$db_link = ConnectDB();
// $InfoMeineSchichtID = $_POST['InfoMeineSchichtID'];
unset($InfoAlleSchichtID);
$db_link = ConnectDB();
$zeile = DetailSchicht($db_link, $SchichtID);
if(!isset($zeile['Was'])){
//error_log("Zeile not set in Schichtinfo");
//error_log("called with: SchichtID $SchichtID $Was, $Wo, $Dauer, $Leiter, $LeiterHandy etc");
// Das ist vermutlich kein Fehler mehr, wenn wir den selben Account mehrfach auf die selbe Schicht lassen für Familien etc
}
$Was = $zeile['Was'];
$Wo = $zeile['Wo'];
$Dauer = $zeile['Dauer'];
@ -53,41 +100,10 @@ if (isset($_POST['CloseInfo'])) {
$LeiterHandy = $zeile['Handy'];
$LeiterEmail = $zeile['Email'];
$Info = $zeile['Info'];
$db_link->close();
$db_link->close();
return;
}
// wird nur mit anderer Datei DetailsSchichten.php verwendet, nicht hier
//if (isset($_GET['InfoAlleSchichtID'])) {
// $InfoAlleSchichtID = $_GET['InfoAlleSchichtID'];
// unset($InfoMeineSchichtID);
// //echo "<b>". $SchichtID . "</b><br>";
//
// $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++;
// }
//}
// Auswahl Tag oberhalb der Dienstetabelle
if (isset($_GET['ZeitBereich'])) {
$ZeitBereich = $_GET['ZeitBereich'];
@ -135,63 +151,6 @@ if (isset($_POST['AliasHelferID'])) {
<form method="post" action="#action">
<?php
// Neu Schicht fuer Helfer Eintragen
///////////////////////////////////////////////////////////
if (isset($_POST['plusschicht'])) {
$messages = [];
$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
// wenn es ein Admin ist, die AdminID übergeben, ansonsten 0
// TODO: immer AdminID angeben, die Funktionen in SQL testen, ob HelferID==AdminID
$db_erg = HelferSchichtZuweisen($db_link, $HelferID, $SchichtID, $AdminStatus == 1 ? $AdminID : 0);
$HelferName = '';
$HelferEmail = '';
$HelferHandy = '';
} else {
// Fehlermeldungen ausgeben:
echo '<div class="error"><ul>';
foreach ($messages as $message) {
echo '<li>' . htmlspecialchars($message) . '</li>';
}
echo '</ul></div>';
}
}
if (isset($_POST['minusschicht'])) {
// Mich aus Schicht entfernen
$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($db_link, $HelferID, $SchichtID, $AdminID);
} else {
// Fehlermeldungen ausgeben:
echo '<div class="error"><ul>';
foreach ($messages as $message) {
echo '<li>' . htmlspecialchars($message) . '</li>';
}
echo '</ul></div>';
}
}
/// Ausgabe auf Deutsch umstellen
/////////////////////////////////////////////////////////////////////////
DatenbankAufDeutsch($db_link);
// Zusammenfassung Eigener Schichten
$db_erg = SchichtenSummeEinesHelfers($db_link, $HelferID);
$zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC);
@ -206,6 +165,7 @@ if (isset($_POST['minusschicht'])) {
echo '</th></tr></table>';
/// Schichten Auswahl
////////////////////////////////////////////////////////
// wird hier gegen Fehler gesetzt. bitte zu Ende implementieren
$addschicht = $_SESSION["addschicht"] ?? null;
$dienstsort = $_SESSION["dienstsort"] ?? null;
@ -295,9 +255,8 @@ if ($addschicht != '0') { // addschicht soll Darstellung nach Tagen oder Dienste
echo '</table>';
// Tabelle mit allen Diensten und Schichten
echo '<table class="commontable collapsible">';
while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
if ($dienstsort == '1') { // dienst-sort wird momentan nie gesetzt, also immer else-Teil ausgeführt
if ($dienstsort == '1') { // dienst-sort wird momentan nie gesetzt, also immer else-Teil ausgeführt TODO
$Tag = $zeile['Tag'];
if ($Tag != $OldTag) {
@ -314,8 +273,8 @@ if ($addschicht != '0') { // addschicht soll Darstellung nach Tagen oder Dienste
echo "<tr class='header'><th colspan='5' style='width:100%'><span>+</span> ";
$SchichtID = $zeile['SchichtID'];
$DienstID = $zeile['DienstID'];
$iAlleSchichtenCount = AlleSchichtenCount($db_link, $HelferLevel, $DienstID);
$iBelegteSchichtenCount = AlleBelegteSchichtenCount($db_link, $HelferLevel, $DienstID);
$iAlleSchichtenCount = AlleSchichtenCount($db_link, $HelferLevelAnzeige, $DienstID);
$iBelegteSchichtenCount = AlleBelegteSchichtenCount($db_link, $HelferLevelAnzeige, $DienstID);
echo "$Was ($iBelegteSchichtenCount/$iAlleSchichtenCount) <!-- Abfrage $HelferLevel, $DienstID -->";
echo "</th>";
echo "</tr>";

View File

@ -11,23 +11,9 @@ if ($AdminStatus != 1) {
echo '<!doctype html><head><meta http-equiv="Refresh" content="0; URL=index.php" /></head></html>';
exit;
}
?>
<!doctype html>
<html>
<head>
<title>Admin <?php echo EVENTNAME ?></title>
<link rel="stylesheet" href="css/style_desktop.css" media="screen and (min-width:781px)"/>
<link rel="stylesheet" href="css/style_mobile.css" media="screen and (max-width:780px)"/>
<script src="js/helferdb.js" type="text/javascript"></script>
<meta name="viewport" content="width=480" />
</head>
<body onload="setEndDate();">
<div style="width: 100%;">
<?php
DatenbankAufDeutsch($db_link);
$message="";
isset($_SESSION["DienstID"]) && $DienstID = $_SESSION["DienstID"];
$NewDienstID = 0;
isset($_SESSION["SchichtID"]) && $SchichtID = $_SESSION["SchichtID"];
@ -37,14 +23,10 @@ $HelferID = $_SESSION["HelferID"];
$AdminID = $_SESSION["AdminID"];
if (isset($_POST['HelferID'])) {
// AdminStatus = 1
$HelferID = $_POST['HelferID'];
$_SESSION["HelferID"] = $HelferID;
}
if (isset($_POST['ShowHelfer'])) {
$HelferID = $_POST['HelperSearch'];
}
$_SESSION["HelferID"] = $HelferID;
if (isset($_POST['ChangeDienst'])) {
@ -53,8 +35,9 @@ if (isset($_POST['ChangeDienst'])) {
$Info = $_POST['Dienst-Info'];
$Leiter = $_POST['Dienst-Leiter'];
$Gruppe = $_POST['Dienst-Gruppe'];
$HelferLevel = $_POST['HelferLevel'];
$HelferLevel = $_POST['HelferLevel'];
ChangeDienst($db_link, $DienstID, $Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLevel);
header("Location: " . $_SERVER['PHP_SELF']); exit;
}
if (isset($_POST['NewDienst'])) {
@ -65,13 +48,14 @@ if (isset($_POST['NewDienst'])) {
if (isset($_POST['Dienst-Gruppe'])){$Gruppe = $_POST['Dienst-Gruppe'];}else{$Gruppe=82;}//TODO: 82 ist root-dienst
$HelferLevel = $_POST['HelferLevel'];
NewDienst($db_link, $DienstID, $Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLevel);
$NewDienstID = LastInsertId($db_link);
$_SESSION["DienstID"] = LastInsertId($db_link);
header("Location: " . $_SERVER['PHP_SELF']); exit;
}
if (isset($_POST['DeleteDienst'])) {
if (!DeleteDienst($db_link, $DienstID, false)) {
echo "Erst Schichten des Dienstes Löschen!";
$message .= "Erst Schichten des Dienstes Löschen!";
}
}
@ -83,8 +67,9 @@ if (isset($_POST['ChangeSchicht'])) {
$Dauer = $_POST['Schicht-Dauer'];
ChangeSchicht($db_link, $SchichtID, $Von, $Bis, $Soll, $Dauer);
header("Location: " . $_SERVER['PHP_SELF']); exit;
}
// keine Idee, wie man hierfuer einen GET reload macht
if (isset($_POST['Schicht-Automatic-Bis'])) {
$AutomaticBis = 1;
} else {
@ -97,8 +82,6 @@ if (isset($_POST['Schicht-Anschlussschicht'])) {
$Anschlussschicht = 0;
}
if (isset($_POST['NewSchicht'])) {
$Von = $_POST['Schicht-Von'];
$Bis = $_POST['Schicht-Bis'];
@ -107,33 +90,28 @@ if (isset($_POST['NewSchicht'])) {
if ($AutomaticBis) {
$Temp = new DateTime($Von);
//$Temp2 = DateInterval::createFromDateString('3600 seconds');
$Temp2 = DateInterval::createFromDateString($Dauer[0] . $Dauer[1] . ' hours ' . $Dauer[3] . $Dauer[4] . ' minutes');
$Temp = $Temp->add($Temp2);
$Bis = $Temp->format('Y-m-d H:i:s');
}
NewSchicht($db_link, $DienstID, $Von, $Bis, $Soll, $Dauer, $HelferName);
$SchichtID = LastInsertId($db_link);
//echo "+".$SchichtID."+";
$_SESSION["SchichtID"] = LastInsertId($db_link);
}
if (isset($_POST['DeleteSchicht'])) {
if (!DeleteSchicht($db_link, $SchichtID, false)) {
echo "Erst Schicht leeren<br>";
$message .= "Erst Schicht leeren<br>";
}
$SchichtID = 0;
}
if (isset($_POST['ShowSchicht'])) {
$SchichtID = $_POST['SchichtSearch'];
}
if (isset($_POST['SchichtSearch']) && !isset($_POST['NewSchicht']) && !isset($_POST['DeleteSchicht'])) {
$SchichtID = $_POST['SchichtSearch'];
echo "SchichtSearch<br>";
$message .= "SchichtSearch<br>";
}
if (isset($_POST['ShowSchichten'])) {
@ -145,7 +123,6 @@ if (isset($_POST['DienstSearch'])) {
$SchichtID = 0;
}
if ($NewDienstID != 0) {
$DienstID = $NewDienstID;
}
@ -154,13 +131,26 @@ if ($NewDienstID != 0) {
////////////////////////////////////////////////////////
?>
<!doctype html>
<html>
<head>
<title>Admin <?php echo EVENTNAME ?></title>
<link rel="stylesheet" href="css/style_desktop.css" media="screen and (min-width:781px)"/>
<link rel="stylesheet" href="css/style_mobile.css" media="screen and (max-width:780px)"/>
<script src="js/helferdb.js" type="text/javascript"></script>
<meta name="viewport" content="width=480" />
</head>
<body onload="setEndDate();">
<div style="width: 100%;">
<?php echo $message; ?>
<button class=back name="BackHelferdaten" value="1" onclick="window.location.href = 'Admin.php';"><b>&larrhk;</b></button>
<form method="post">
<form method="post" action="<?= htmlspecialchars($_SERVER['PHP_SELF']) ?>">
<table border="0" class='commontable'>
<tr><th> Dienst</th><th><select name="DienstSearch" id="DienstSearch" onchange="submit()">
<?php
$db_erg = GetDienste($db_link);
$Was = "";
@ -185,6 +175,7 @@ while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
$HelferLevel = $zeile['HelferLevel'];
}
}
mysqli_free_result($db_erg);
if( ! isset($selectedset) or ! $selectedset ) {
echo "<option value='none' selected='selected'>Bitte auswählen</option>";
}
@ -204,9 +195,6 @@ if (!isset($DienstID)) {
}
?>
<table border="0" class="commontable">
<tr>
<td style="border: 0px solid black;">Was</td></tr><tr><td style="border: 0px solid black;">
@ -225,38 +213,36 @@ if (!isset($DienstID)) {
</tr>
<tr>
<td style="border: 0px solid black;">Leiter</td></tr><tr><td style="border: 0px solid black;">
<?php
echo "<select name='Dienst-Leiter'>";
$db_erg = HelferListe($db_link);
while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
if ($zeile['HelferID'] != $Leiter) {
echo "<option value='" . $zeile['HelferID'] . "'>" . $zeile['Name'] . "</option>";
} else {
echo "<option value='" . $zeile['HelferID'] . "' selected='selected'>" . $zeile['Name'] . "</option>";
}
}
mysqli_free_result($db_erg);
echo "</select>";
?>
</td>
</tr>
<tr>
<td style="border: 0px solid black;">Gruppe</td></tr><tr><td style="border: 0px solid black;">
<!-- <input name="Dienst-Leiter" type="text" value="<?php echo htmlspecialchars($Leiter ?? '')?>" > -->
<?php
echo "<select name='Dienst-Leiter'>";
$db_erg = HelferListe($db_link);
while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
if ($zeile['HelferID'] != $Leiter) {
echo "<option value='" . $zeile['HelferID'] . "'>" . $zeile['Name'] . "</option>";
} else {
echo "<option value='" . $zeile['HelferID'] . "' selected='selected'>" . $zeile['Name'] . "</option>";
}
}
echo "</select>";
?>
</td>
</tr>
<tr>
<td style="border: 0px solid black;">Gruppe</td></tr><tr><td style="border: 0px solid black;">
<?php
//echo "#####".$Gruppe."#####";
echo "<select name='Dienst-Gruppe'>";
$db_erg = GetDiensteChilds($db_link, 0);
while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
if ($zeile['DienstID'] != $Gruppe) {
echo "<option value='" . $zeile['DienstID'] . "'>" . $zeile['Was'] . "</option>";
} else {
echo "<option value='" . $zeile['DienstID'] . "' selected='selected'>" . $zeile['Was'] . "</option>";
}
}
echo "</select>";
?>
<?php
echo "<select name='Dienst-Gruppe'>";
$db_erg = GetDiensteChilds($db_link, 0);
while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
if ($zeile['DienstID'] != $Gruppe) {
echo "<option value='" . $zeile['DienstID'] . "'>" . $zeile['Was'] . "</option>";
} else {
echo "<option value='" . $zeile['DienstID'] . "' selected='selected'>" . $zeile['Was'] . "</option>";
}
}
echo "</select>";
?>
</td>
</td>
</tr>
@ -264,7 +250,7 @@ if (!isset($DienstID)) {
<tr><td style="border: 0px solid black;">
<select name="HelferLevel">
<?php
$alleHelferLevel = alleHelferLevel($db_link);
$alleHelferLevel = alleHelferLevel($db_link);
foreach ($alleHelferLevel as $HelferLevelIteration => $HelferLevelBeschreibung) {
$selected = ($HelferLevelIteration == $HelferLevel) ? "selected" : "";
echo "<option value='$HelferLevelIteration' $selected>$HelferLevelBeschreibung</option>";
@ -273,7 +259,6 @@ foreach ($alleHelferLevel as $HelferLevelIteration => $HelferLevelBeschreibung)
</select>
</td></tr>
</table>
<p>
<button name="NewDienst" value="1">Dienst anlegen</button>
<button name="ChangeDienst" value="1">Ändern</button>
@ -281,17 +266,11 @@ foreach ($alleHelferLevel as $HelferLevelIteration => $HelferLevelBeschreibung)
</p>
</form>
<form method="post">
<form method="post" action="<?= htmlspecialchars($_SERVER['PHP_SELF']) ?>">
<table border="0" class='commontable'>
<tr><th>Schicht</th><th><select name="SchichtSearch" id="SchichtSearch" onchange="submit()">
<?php
$Soll = 1;
$db_erg = GetSchichtenEinesDienstes($db_link, $DienstID);
@ -315,33 +294,31 @@ while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
}
}
}
mysqli_free_result($db_erg);
echo "</select>";
echo "</th></tr>";
echo " </table>";
echo "<p><noscript><button name='ShowSchicht' value='1'>Schicht Anzeigen</button></noscript>";
//echo "<button name='DeleteSchicht' value='1'>Schicht löschen</button>";
?>
<!-- <table border="0" style="border: 0px solid black;"> -->
<table border="0" class='commontable'">
<table border="0" class='commontable'>
<tr>
<td style="border: 0px solid black;">Von</td></tr><tr><td style="border: 0px solid black;">
<input id="Schicht-Von" name="Schicht-Von" type="datetime-local" onKeyUp="setEndDate()" value="<?php echo htmlspecialchars($Von ?? '')?>" required>
<input id="Schicht-Von" name="Schicht-Von" type="datetime-local"
onKeyUp="setEndDate()" value="<?php echo htmlspecialchars($Von ?? '')?>" required>
</td>
<tr>
<tr>
<td style="border: 0px solid black;">Dauer</td></tr><tr><td style="border: 0px solid black;">
<input id="Schicht-Dauer" name="Schicht-Dauer" type="time" onChange="setEndDate()" value="<?php echo htmlspecialchars($Dauer ?? '01:00')?>" required>
<input id="Schicht-Dauer" name="Schicht-Dauer" type="time" onChange="setEndDate()"
value="<?php echo htmlspecialchars($Dauer ?? '01:00')?>" required>
</td>
<tr>
</tr>
<tr>
</tr>
<td style="border: 0px solid black;">Bis </td></tr><tr><td style="border: 0px solid black;">
<input id="Schicht-Bis" name="Schicht-Bis" type="datetime-local" value="<?php echo htmlspecialchars($Bis ?? '')?>" required>
<input id="Schicht-Bis" name="Schicht-Bis" type="datetime-local"
value="<?php echo htmlspecialchars($Bis ?? '')?>" required>
</td>
<tr>
</tr>
@ -350,19 +327,16 @@ echo "<p><noscript><button name='ShowSchicht' value='1'>Schicht Anzeigen</button
</td>
<tr>
</tr>
</table>
<input style="width:unset" width=20 id="Schicht-Automatic-Bis"
name="Schicht-Automatic-Bis" type="checkbox" onclick="setEndDate()"
<?php if ($AutomaticBis) { echo "checked"; } ?>
> Endzeit von Dauer<br>
</table>
<input style="width:unset" width=20 id="Schicht-Automatic-Bis" name="Schicht-Automatic-Bis" type="checkbox" onclick="setEndDate()" <?php
if ($AutomaticBis) {
echo "checked";
}
?> > Endzeit von Dauer<br>
<input style="width:unset" width=20 id="Schicht-Anschlussschicht" name="Schicht-Anschlussschicht" type="checkbox" <?php
if ($Anschlussschicht) {
echo "checked";
}
?> > Anschlussschicht vorbereiten<br>
<input style="width:unset" width=20 id="Schicht-Anschlussschicht" name="Schicht-Anschlussschicht" type="checkbox"
<?php if ($Anschlussschicht) { echo "checked"; } ?>
>
Anschlussschicht vorbereiten<br>
<p>
<button name="NewSchicht" value="1">Schicht anlegen</button>
<button name="ChangeSchicht" value="1">Ändern</button>
@ -376,8 +350,6 @@ echo "<p><noscript><button name='ShowSchicht' value='1'>Schicht Anzeigen</button
<?php
mysqli_free_result($db_erg);
$_SESSION["DienstID"] = $DienstID;
$_SESSION["SchichtID"] = $SchichtID;

View File

@ -1,11 +1,64 @@
<?php
// Login
// User Seite, TODO code mit AdminAlleSchichten.php consolidieren
require_once 'konfiguration.php';
SESSION_START();
require 'SQL.php';
$db_link = ConnectDB();
// zeigt login-Seite an, wenn keine Session besteht
require '_login.php';
// POST vor HTML Ausgabe
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// Neu Schicht fuer Helfer Eintragen
///////////////////////////////////////////////////////////
$messages = [];
if (isset($_POST['plusschicht'])) {
$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
// wenn es ein Admin ist, die AdminID übergeben, ansonsten 0
// TODO: immer AdminID angeben, die Funktionen in SQL testen, ob HelferID==AdminID
$db_erg = HelferSchichtZuweisen($db_link, $HelferID, $SchichtID);
$HelferName = '';
$HelferEmail = '';
$HelferHandy = '';
} else {
// Fehlermeldungen ausgeben:
echo '<div class="error"><ul>';
foreach ($messages as $message) {
echo '<li>' . htmlspecialchars($message) . '</li>';
}
echo '</ul></div>';
exit;
}
}
if (isset($_POST['minusschicht'])) {
// Mich aus Schicht entfernen
$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($db_link, $HelferID, $SchichtID);
} else {
// Fehlermeldungen ausgeben:
echo '<div class="error"><ul>';
foreach ($messages as $message) {
echo '<li>' . htmlspecialchars($message) . '</li>';
}
echo '</ul></div>';
exit;
}
}
header("Location: " . $_SERVER['PHP_SELF']);
}
?>
<!doctype html>
<html>
@ -20,9 +73,10 @@ require '_login.php';
</script>
</head>
<body>
<button name="BackHelferdaten" value="1" onclick="window.location.href = 'index.php';">
<a href="index.php">
<button name="BackHelferdaten">
<b>&larrhk;</b>
</button>
</button></a>
<?php echo "<b>" . EVENTNAME . "</b>"; ?>
<h1> Alle Schichten / Schichten hinzuf&uuml;gen </h1>
<div style="width: 100%;">
@ -30,10 +84,6 @@ require '_login.php';
/// Detailinformation zu ausgewaehlten Schicht Holen
////////////////////////////////////////////////////////
if (isset($_POST['CloseInfo'])) {
unset($InfoMeineSchichtID);
unset($InfoAlleSchichtID);
}
function SchichtInfo($SchichtID, &$Was, &$Wo, &$Dauer, &$Leiter, &$LeiterHandy, &$LeiterEmail, &$Info)
{
$db_link = ConnectDB();
@ -69,61 +119,8 @@ if (isset($_GET['ZeitBereich'])) {
?>
<form method="post" action="AlleSchichten.php">
<form method="post" action="#action">
<?php
// Neu Schicht fuer Helfer Eintragen
///////////////////////////////////////////////////////////
if (isset($_POST['plusschicht'])) {
$messages = [];
$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, $HelferID, $SchichtID);
$HelferName = '';
$HelferEmail = '';
$HelferHandy = '';
} else {
// Fehlermeldungen ausgeben:
echo '<div class="error"><ul>';
foreach ($messages as $message) {
echo '<li>' . htmlspecialchars($message) . '</li>';
}
echo '</ul></div>';
}
}
if (isset($_POST['minusschicht'])) {
// Mich aus Schicht entfernen
$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($db_link, $HelferID, $SchichtID);
} else {
// Fehlermeldungen ausgeben:
echo '<div class="error"><ul>';
foreach ($messages as $message) {
echo '<li>' . htmlspecialchars($message) . '</li>';
}
echo '</ul></div>';
}
}
/// Ausgabe auf Deutsch umstellen
/////////////////////////////////////////////////////////////////////////
DatenbankAufDeutsch($db_link);
// Zusammenfassung Eigener Schichten
$db_erg = SchichtenSummeEinesHelfers($db_link, $HelferID);
$zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC);
@ -135,24 +132,12 @@ if (isset($_POST['minusschicht'])) {
echo " Schichten, ";
echo $zeile['Dauer'] / 3600;
echo " Stunden)";
echo '</th></tr></table><br><br>';
echo '</th></tr></table>';
/// Schichten Auswahl
////////////////////////////////////////////////////////
if (isset($_SESSION["addschicht"]))
{
$addschicht = $_SESSION["addschicht"];
} else
{
$addschicht = -1; // wird hier gegen Fehler gesetzt. bitte zu Ende implementieren
}
if (isset($_SESSION["dienstort"]))
{
$dienstsort = $_SESSION["dienstsort"];
} else
{
$dienstsort = -1; // wird hier gegen Fehler gesetzt. bitte zu Ende implementieren
}
// wird hier gegen Fehler gesetzt. bitte zu Ende implementieren
$addschicht = $_SESSION["addschicht"] ?? null;
$dienstsort = $_SESSION["dienstsort"] ?? null;
//addschicht und dienst-sort sollten wohl nach Diensten bzw Tagen sortieren
@ -180,11 +165,26 @@ if ($addschicht == '0') {
echo "<button name='addschicht' value='2'>Dienste</button></p>";
}
// jeder soll sich alle HelferLevel anzeigen lassen koennen
$HelferLevelAnzeige = $HelferLevel;
if (isset($_POST['helfer-level-anzeige']))
{
$HelferLevelAnzeige = $_POST['helfer-level-anzeige'];
}
echo '<select style="width:200px" name="helfer-level-anzeige" onchange="submit()">';
$alleHelferLevel = alleHelferLevel($db_link);
foreach ($alleHelferLevel as $HelferLevelIteration => $HelferLevelBeschreibung) {
$selected = ($HelferLevelIteration == $HelferLevelAnzeige) ? "selected" : "" ;
echo "<option value='$HelferLevelIteration' $selected>$HelferLevelBeschreibung</option>";
}
echo '</select>';
if ($addschicht != '0') { // addschicht soll Darstellung nach Tagen oder Diensten sortieren, macht es aber nicht
echo '<table class="commontable">';
require('_zeitbereich.php');
$Bereich = AusgabeZeitbereichZeile($start_date, $ZeitBereich, $TageNamenDeutsch, "AlleSchichten.php");
$Bereich = AusgabeZeitbereichZeile($start_date, $ZeitBereich, $TageNamenDeutsch, $_SERVER['PHP_SELF']);
$MeinVon = $Bereich['MeinVon'];
$MeinBis = $Bereich['MeinBis'];
$db_erg = AlleSchichtenImZeitbereich($db_link, $MeinVon, $MeinBis, $HelferLevel);
@ -201,10 +201,14 @@ if ($addschicht != '0') { // addschicht soll Darstellung nach Tagen oder Dienste
echo "<th colspan='5'>Alle Schichten der Con (Besetzt/Gesamt) " . $iBelegteSchichtenCount . "/" . $iAlleSchichtenCount . "</th></tr>";
$alleHelferLevel = alleHelferLevel($db_link);
// Summe Ausgabe alle Dienste pro Helferlevel
foreach ($alleHelferLevel as $HelferLevelIteration => $HelferLevelBeschreibung) {
$meine = "";
if ($HelferLevelIteration == $HelferLevel) {
$meine = " &leftarrow; mein Level, Schichten werden unten angezeigt";
$meine = "&leftarrow; Schichten für mich zum eintragen";
} else { $meine = "Eintragen hier nur nach Rücksprache mit Orga";}
if ($HelferLevelIteration == $HelferLevelAnzeige) {
$meine = "$meine - Schichten werden gerade unten angezeigt";
}
$iAlleSchichtenCount = AlleSchichtenCount($db_link, $HelferLevelIteration);
$iBelegteSchichtenCount = AlleBelegteSchichtenCount($db_link, $HelferLevelIteration);

View File

@ -4,7 +4,12 @@ require_once 'konfiguration.php';
SESSION_START();
require 'SQL.php';
$db_link = ConnectDB();
// Das hier wird über eine Art Token den Zugriff auf CreateHelfer erlauben
// Jedes Token ist mit einem Helferlevel verknüpft, in dem dann Helfer angelegt
$typeSecret = $_GET['invite_code'] ?? '';
if (empty($typeSecret)) {
die("Fehlender Zugangscode.");
}
?>
<!doctype html>
<html>

View File

@ -6,6 +6,9 @@ require 'SQL.php';
$db_link = ConnectDB();
require '_login.php';
$HelferID = $_SESSION["HelferID"];
$AdminID = $_SESSION["AdminID"];
?>
<!doctype html>
<html>
@ -52,44 +55,11 @@ if (isset($_GET['InfoAlleSchichtID'])) {
$x++;
}
}
$HelferID = $_SESSION["HelferID"];
$AdminID = $_SESSION["AdminID"];
if (isset($_POST['HelferID'])) {
$HelferID = $_POST['HelferID'];
}
if (isset($_POST['ShowHelfer'])) {
$HelferID = $_POST['HelperSearch'];
}
$_SESSION["HelferID"] = $HelferID;
?>
<form method="post" action="DetailsSchichten.php#Info">
<!--form method="post" action="DetailsSchichten.php#Info"-->
<?php
@ -99,30 +69,28 @@ $_SESSION["HelferID"] = $HelferID;
/// Ausgabe auf Deutsch umstellen
/////////////////////////////////////////////////////////////////////////
DatenbankAufDeutsch($db_link);
DatenbankAufDeutsch($db_link);
/// Alle Schichten Des Helfers Anzeigen
////////////////////////////////////////////////////////
$back=$_SERVER['HTTP_REFERER'];
echo '<table class="commontable">';
echo "<th>" . $Was . "</th>";
echo "<tr><td>";
echo "<th>" . $Was . "</th>";
echo "<tr><td>";
//echo "<p><button name='Del' value='CloseInfo'><b>&larrhk;</b></button><br>";
echo "<b>Beschreibung:</b><br>";
echo $Info . "<br><br>";
echo "<b>Ort:</b><br>" . $Wo . "<br><br>";
echo "<b>Dauer:</b><br>" . $Dauer . "<br><br>";
echo "<b>Ansprechparter:</b><br>" . $Leiter . ", ";
echo $LeiterHandy . ", ";
echo $LeiterEmail . "<br><br>";
echo "<b>Helfer der Schicht:</b><br>";
$x = 0;
$arrayLength = count($MitHelfer);
echo "<p><a href='$back'> <button name='Back' value='CloseInfo'><b>&larrhk;</b></button></a><br>";
echo "<b>Beschreibung:</b><br>";
echo $Info . "<br><br>";
echo "<b>Ort:</b><br>" . $Wo . "<br><br>";
echo "<b>Dauer:</b><br>" . $Dauer . "<br><br>";
echo "<b>Ansprechparter:</b><br>" . $Leiter . ", ";
echo $LeiterHandy . ", ";
echo $LeiterEmail . "<br><br>";
echo "<b>Helfer der Schicht:</b><br>";
$x = 0;
$arrayLength = count($MitHelfer);
while ($x < $arrayLength) {
echo "ID:" . $MitHelferID[$x] . ", ";
echo $MitHelfer[$x] . ", ";
@ -149,7 +117,7 @@ mysqli_free_result($db_erg);
?>
</form>
<!--/form-->
</div>
</body>

View File

@ -6,11 +6,12 @@ require 'SQL.php';
$db_link = ConnectDB();
require '_login.php';
?>
$eventname = EVENTNAME; // as var for heredoc
$header = <<< HEADER
<!doctype html>
<html>
<head>
<title>Meine Schichten <?php echo EVENTNAME ?></title>
<title>Meine Schichten $eventname </title>
<link rel="stylesheet" href="css/style_desktop.css" media="screen and (min-width:781px)"/>
<link rel="stylesheet" href="css/style_mobile.css" media="screen and (max-width:780px)"/>
@ -18,9 +19,9 @@ require '_login.php';
</head>
<body>
<button name="BackHelferdaten" value="1" onclick="window.location.href = 'index.php';"><b>&larrhk;</b></button>
<?php echo "<b>" . EVENTNAME . "</b>"; ?>
<b>$eventname</b>
<div style="width: 100%;">
<?php
HEADER;
/// Detailinformation zu ausgewaehlten Schicht Holen
////////////////////////////////////////////////////////
@ -31,7 +32,6 @@ if (isset($_POST['CloseInfo'])) {
if (isset($_POST['InfoMeineSchichtID'])) {
$InfoMeineSchichtID = $_POST['InfoMeineSchichtID'];
unset($InfoAlleSchichtID);
//echo "<b>". $SchichtID . "</b><br>";
$zeile = DetailSchicht($db_link, $InfoMeineSchichtID);
@ -48,7 +48,6 @@ if (isset($_POST['InfoMeineSchichtID'])) {
if (isset($_GET['InfoAlleSchichtID'])) {
$InfoAlleSchichtID = $_GET['InfoAlleSchichtID'];
unset($InfoMeineSchichtID);
//echo "<b>". $SchichtID . "</b><br>";
$zeile = DetailSchicht($db_link, $InfoAlleSchichtID);
@ -76,99 +75,9 @@ if (isset($_GET['InfoAlleSchichtID'])) {
}
}
/// Logout
////////////////////////////////////////////////////////
if (isset($_POST['logout'])) {
unset($_SESSION["HelferID"]);
//$_POST['login'] = 1;
}
/// Login
////////////////////////////////////////////////////////
if (isset($_POST['login'])) {
$messages = [];
// Eingaben überprüfen:
//if(!preg_match('/^[a-zA-Z]+[a-zA-Z0-9._]+$/', $HelferName)) {
// $messages[] = 'Bitte prüfen Sie die eingegebenen Namen';
//}
$HelferName = $_POST['helfer-name'];
$HelferEmail = $_POST['helfer-email'];
$HelferPasswort = $_POST['helfer-passwort'];
if (empty($messages)) {
HelferLogin($db_link, $HelferEmail, $HelferPasswort, 0);
} else {
// Fehlermeldungen ausgeben:
echo '<div class="error"><ul>';
foreach ($messages as $message) {
echo '<li>' . htmlspecialchars($message) . '</li>';
}
echo '</ul></div>';
}
}
if (!isset($_SESSION["HelferID"])) {
?>
<form method="post" action="#Info">
<fieldset>
<legend>Login</legend>
<table border="0" style="border: 0px solid black;">
<tr>
<td style="border: 0px solid black;">Email</td></tr><tr><td style="border: 0px solid black;">
<input name="helfer-email" type="text" value="<?php echo htmlspecialchars($HelferEmail ?? '')?>" required>
</td>
<tr>
<tr>
<td style="border: 0px solid black;">Passwort</td></tr><tr><td style="border: 0px solid black;">
<input name="helfer-passwort" type="password" value="<?php echo htmlspecialchars($HelferHandy ?? '')?>" required>
</td>
<tr>
</table>
</fieldset>
<p><button name="login" value="1">Login</button></p>
</form>
<?php
exit;
}
$HelferID = $_SESSION["HelferID"];
$AdminID = $_SESSION["AdminID"];
if (isset($_POST['HelferID'])) {
$HelferID = $_POST['HelferID'];
}
if (isset($_POST['ShowHelfer'])) {
$HelferID = $_POST['HelperSearch'];
}
$_SESSION["HelferID"] = $HelferID;
/// Schicht Löschen
////////////////////////////////////////////////////////
@ -176,78 +85,21 @@ if (isset($_POST['Del'])) {
$messages = [];
$EinzelSchichtID = $_POST['Del'];
// Eingaben überprüfen:
//if(!preg_match('/^[a-zA-Z]+[a-zA-Z0-9._]+$/', $HelferName)) {
// $messages[] = 'Bitte prüfen Sie die eingegebenen Namen';
//}
if (empty($messages)) {
$db_erg = HelferVonSchichtLoeschen($db_link, $HelferID, $EinzelSchichtID);
} else {
// Fehlermeldungen ausgeben:
echo '<div class="error"><ul>';
foreach ($messages as $message) {
echo '<li>' . htmlspecialchars($message) . '</li>';
}
echo '</ul></div>';
}
$db_erg = HelferVonSchichtLoeschen($db_link, $HelferID, $EinzelSchichtID);
header("Location: " . $_SERVER['PHP_SELF']);
}
// Helferliste Anzeigen
////////////////////////////////////////////////////////
?>
<form method="post" action="MeineSchichten.php#Info">
<?php
// Neu Schicht fuer Helfer Eintragen
///////////////////////////////////////////////////////////
if (isset($_POST['sent'])) {
$messages = [];
$SchichtId = $_POST['sent'];
// Eingaben überprüfen:
// if(!preg_match('/^[a-zA-Z]+[a-zA-Z0-9._]+$/', $HelferName)) {
// $messages[] = 'Bitte prüfen Sie die eingegebenen Namen';
// }
if (empty($messages)) {
// Helfer Schicht zuweisen
$db_erg = HelferSchichtZuweisen($db_link, $HelferID, $SchichtId);
// Erfolg vermelden und Skript beenden, damit Formular nicht erneut ausgegeben wird
$HelferName = '';
$HelferEmail = '';
$HelferHandy = '';
//die('<div class="Helfer wurde angelegt.</div>');
} else {
// Fehlermeldungen ausgeben:
echo '<div class="error"><ul>';
foreach ($messages as $message) {
echo '<li>' . htmlspecialchars($message) . '</li>';
}
echo '</ul></div>';
}
// Helfer Schicht zuweisen
$db_erg = HelferSchichtZuweisen($db_link, $HelferID, $SchichtId);
header("Location: " . $_SERVER['PHP_SELF']);
}
/// Ausgabe auf Deutsch umstellen
/////////////////////////////////////////////////////////////////////////
DatenbankAufDeutsch($db_link);
/// Alle Schichten Des Helfers Anzeigen
////////////////////////////////////////////////////////
@ -261,9 +113,10 @@ if (! $db_erg) {
}
$iSQLCount = mysqli_num_rows($db_erg);
//$iSQLCount = 3;
echo $header;
echo '<form method="post" action="MeineSchichten.php#Info">';
echo '<table class="commontable">';
echo '<table class="commontable">';
echo "<thead>";
echo "<tr>";
@ -276,8 +129,6 @@ echo '<table class="commontable">';
echo "</tr>";
echo "</thead>";
while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
//echo '<tr title="Details anzeigen" onclick="parent.DetailsSchichten.location.href=\'DetailsSchichten.php?InfoAlleSchichtID='.$zeile['SchichtID'].'#Info\';" >';
echo '<tr title="Details anzeigen" onclick="window.location.href=\'DetailsSchichten.php?InfoAlleSchichtID=' . $zeile['SchichtID'] . '#Info\';" >';
@ -303,11 +154,8 @@ echo "</table>";
mysqli_free_result($db_erg);
?>
</form>
</div>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -28,7 +28,7 @@ if ($AdminStatus != 1) {
<?php
setlocale(LC_ALL, 'de_DE.UTF-8') or die("Locale not installed");
setlocale(LC_ALL, 'de_DE.UTF-8') or die("Locale de_DE.UTF-8 not installed");
$unixtime = strtotime('2023-09-15');
for ($day = 0; $day < 3; $day++) {

View File

@ -6,7 +6,7 @@ require 'SQL.php';
$db_link = ConnectDB();
require '_login.php';
?>
$header= <<< HEADER
<!doctype html>
<html>
<head>
@ -17,8 +17,7 @@ require '_login.php';
<meta name="viewport" content="width=480" />
</head>
<body>
<?php
HEADER; //<? vim syntax-highlight-fix
$HelferID = $_SESSION["HelferID"];
@ -28,19 +27,13 @@ $AdminID = $_SESSION["AdminID"];
/// Helferdaten Aendern
////////////////////////////////////////////////////////
$messages = [];
if (isset($_POST['change'])) {
$messages = [];
// Eingaben überprüfen:
if (strlen($_POST['helfer-newpasswort']) < 8 and $_POST['helfer-newpasswort'] != "") {
$messages[] = 'Neues Passwort zu kurz';
}
//if(!preg_match('/^[a-zA-Z]+[a-zA-Z0-9._]+$/', $HelferName)) {
// $messages[] = 'Bitte prüfen Sie die eingegebenen Namen';
//}
$HelferName = $_POST['helfer-name'];
$HelferEmail = $_POST['helfer-email'];
$HelferHandy = $_POST['helfer-handy'];
@ -48,19 +41,19 @@ if (isset($_POST['change'])) {
if (empty($messages)) {
// Helferdaten Ändern
HelferdatenAendern($db_link, $HelferName, $HelferEmail, $HelferHandy, $HelferNewPasswort, $HelferID);
} else {
header("Location: " . $_SERVER['PHP_SELF']); // reload as GET
exit;
}
} else {
echo $header;
// Fehlermeldungen ausgeben:
echo '<div class="error"><ul>';
foreach ($messages as $message) {
echo '<li>' . htmlspecialchars($message) . '</li>';
}
echo '</ul></div>';
}
}
////////////////////////////////////////////////////////////////
// Helferdate holen
///////////////////////////////////////////////////////////////
@ -74,43 +67,8 @@ while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
$HelferHandy = $zeile['Handy'];
}
/// Logout
////////////////////////////////////////////////////////
if (isset($_POST['logout'])) {
unset($_SESSION["HelferID"]);
//$_POST['login'] = 1;
}
/// Login
////////////////////////////////////////////////////////
if (isset($_POST['login'])) {
$messages = [];
// Eingaben überprüfen:
//if(!preg_match('/^[a-zA-Z]+[a-zA-Z0-9._]+$/', $HelferName)) {
// $messages[] = 'Bitte prüfen Sie die eingegebenen Namen';
//}
$HelferName = $_POST['helfer-name'];
$HelferEmail = $_POST['helfer-email'];
$HelferPasswort = $_POST['helfer-passwort'];
if (empty($messages)) {
HelferLogin($db_link, $HelferEmail, $HelferPasswort, 0);
} else {
// Fehlermeldungen ausgeben:
echo '<div class="error"><ul>';
foreach ($messages as $message) {
echo '<li>' . htmlspecialchars($message) . '</li>';
}
echo '</ul></div>';
}
}
?>
<table class="commontable">
<tr>
<th><button name="BackHelferdaten" value="1" onclick="window.location.href = 'index.php';"><b>&larrhk;</b></button> Helferdaten <?php echo EVENTNAME; ?></th>
@ -142,15 +100,15 @@ if($HelferName == $HelferEmail) {$isHidden="display: none";}
$emailandpass = <<<emailandpass
<tr style="$isHidden">
<td>Email (gleichzeitig Username - nicht ändern, wenn Login-Link gültig bleiben soll)</td></tr><tr style="$isHidden"><td>
<td>Loginname (Email). Achtung, danach login nur noch mit neuem Namen möglich!</td></tr><tr style="$isHidden"><td>
<input name="helfer-email" type="email " value="$HelferEmailHTML" required style="$isHidden">
</td>
</tr>
<tr style="$isHidden">
<!-- wird vom Code nicht abgefragt <tr style="$isHidden">
<td>Altes Helfer Passwort </td></tr><tr style="$isHidden"><td>
<input name="helfer-passwort" type="password" value="" style="$isHidden">
</td>
</tr>
</tr-->
<tr style="$isHidden">
<td>Neues Helfer Passwort</td></tr><tr style="$isHidden"><td>
<input name="helfer-newpasswort" type="text" value="" style="$isHidden">

View File

@ -22,9 +22,6 @@ if (isset($_POST['login'])) {
// $messages[] = 'Bitte prüfen Sie die eingegebenen Namen';
//}
//if (isset ($_POST['helfer-name'])) {
// $HelferName = $_POST['helfer-name'];
//} // delete - login shouldnt provide this
$HelferEmail = $_POST['helfer-email'];
$HelferPasswort = $_POST['helfer-passwort'];

View File

@ -5,6 +5,11 @@ SESSION_START();
require 'SQL.php';
$db_link = ConnectDB();
require '_login.php';
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// POST only in _login.php
header("Location: " . $_SERVER['PHP_SELF']);
exit;
}
?>
<!doctype html>
<html lang=de>