include changes from drop2024

This commit is contained in:
root 2025-05-18 18:17:08 +02:00
parent c4791af1a8
commit dc2f8df502
26 changed files with 858 additions and 277 deletions

View File

@ -57,7 +57,7 @@ while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
<button name="BackHelferdaten" value="1" onclick="window.location.href = 'index.php';">
<b>&larrhk;</b>
</button> &nbsp;
<b>Admin HelferDB <?php echo EVENTNAME; ?></b>
<b>Admin <?php echo EVENTNAME; ?></b>
</th>
<tr>
@ -71,23 +71,23 @@ while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
</td>
</tr>
<tr onclick="window.location.href='CreateHelfer.php';"> <td>
<img src="Bilder/More.jpeg" style="width:30px;height:30px;"><b>Seite zur Helfer selbst-Registrierung</b>
<img src="Bilder/More.jpeg" style="width:30px;height:30px;"><b>Seite zur selbst-Registrierung</b>
</td> </tr>
<tr onclick="window.location.href='EmailZuToken.php';"> <td>
<img src="Bilder/PfeilRechts.jpeg" style="width:30px;height:30px;"><b>Helfer per Link einladen</b>
<img src="Bilder/PfeilRechts.jpeg" style="width:30px;height:30px;"><b>persönliche Einladungslink(s) generieren</b>
</td> </tr>
<tr onclick="window.location.href='AdminHelferUebersicht.php';">
<td>
<a class="fallbacklink" href='AdminHelferUebersicht.php'>
<img src="Bilder/PfeilRechts.jpeg" style="width:30px;height:30px;">
<b>Helferübersicht und als Admin &auml;ndern</b>
<b>Helferübersicht und als Admin &auml;ndern <br>(Anm: dieses Menü soll die Punkte unterhalb ablösen)</b>
</a>
</td>
</tr>
<th>
<b>Helfer als Admin &auml;ndern:<b>
<b>Als Admin &auml;ndern:<b>
<form style="display:inline-block;" method=post>
<select style="height:33px;width:350px;font-size:20" name="AliasHelferID" id="AliasHelferID" onchange="submit()">
<?php
@ -118,7 +118,7 @@ if( !$selectedSet ) {
<td>
<img src="Bilder/dot.png" width="30px" height="2px">
<img src="Bilder/PfeilRechts.jpeg" style="width:30px;height:30px;">
<b> Helferdaten &auml;ndern</b>
<b> Personendaten &auml;ndern</b>
</td>
</tr>
<tr onclick="window.location.href='AdminMeineSchichten.php';">

View File

@ -0,0 +1,386 @@
<?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

@ -1,21 +1,17 @@
<?php
// Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden
// Login
// Die Seite hat Extra-Funktionen, wenn ein Admin sie aufruft
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>Helfer <?php echo EVENTNAME ?> Alle Schichten</title>
<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" />
@ -24,12 +20,15 @@ if ($AdminStatus != 1) {
<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 = 'Admin.php';"><b>&larrhk;</b></button>
<?php echo "<b>" . EVENTNAME . "</b>"; ?>
<div style="width: 100%;">
<?php
</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
////////////////////////////////////////////////////////
@ -37,12 +36,15 @@ if (isset($_POST['CloseInfo'])) {
unset($InfoMeineSchichtID);
unset($InfoAlleSchichtID);
}
if (isset($_POST['InfoMeineSchichtID'])) {
$InfoMeineSchichtID = $_POST['InfoMeineSchichtID'];
// 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, $InfoMeineSchichtID);
$zeile = DetailSchicht($db_link, $SchichtID);
$Was = $zeile['Was'];
$Wo = $zeile['Wo'];
@ -51,40 +53,42 @@ if (isset($_POST['InfoMeineSchichtID'])) {
$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++;
// }
//}
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 {
@ -97,32 +101,31 @@ function HelferAuswahlButton($db_link, $AliasHelferID)
$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>";
echo "<option value='" . $zeile['HelferID'] . "'>" . $zeile['Name'] . "</optionen>";
} else {
echo "<option value='" . $zeile['HelferID'] . "' selected='selected'>" . $zeile['Name'] . "</optionen>";
}
}
echo '</select></form>';
}
// Wenn es ein Admin ist HelferID AliasHelferID
if ($AdminStatus == 1){
if (isset($_POST['AliasHelferID'])) {
$AliasHelferID = $_POST['AliasHelferID'];
$HelferID = $_POST['AliasHelferID'];
} elseif (isset($_SESSION["AliasHelferID"])) {
$AliasHelferID = $_SESSION["AliasHelferID"];
} else {
HelferAuswahlButton($db_link, $AliasHelferID);
echo "<p>Erst Helfer auswählen</p>";
exit;
$HelferID = $_SESSION["AliasHelferID"];
// ansonsten bleibt es die HelferID des Admins
}
HelferAuswahlButton($db_link, $AliasHelferID);
HelferAuswahlButton($db_link, $HelferID);
$_SESSION["AliasHelferID"] = $AliasHelferID;
$AdminID = $_SESSION["AdminID"];
$db_erg = Helferdaten($db_link, $AliasHelferID);
while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
$HelferName = $zeile['Name'];
$_SESSION["AliasHelferID"] = $HelferID;
$AdminID = $_SESSION["AdminID"]; // wird beim Login gesetzt in SQL.php
}
$db_erg = Helferdaten($db_link, $HelferID);
while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
$HelferName = $zeile['Name'];
$HelferLevel = $zeile['HelferLevel'];
}
// Helferliste Anzeigen
////////////////////////////////////////////////////////
@ -130,9 +133,7 @@ while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
?>
<form method="post" action="AdminAlleSchichten.php#Info">
<form method="post" action="#action">
<?php
@ -147,13 +148,13 @@ if (isset($_POST['plusschicht'])) {
$_SESSION["SchichtIdAktiv"] = $SchichtID;
if (empty($messages)) {
// Helfer Schicht zuweisen
$db_erg = HelferSchichtZuweisen($db_link, $AliasHelferID, $SchichtID, $AdminID);
// 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);
// 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>';
@ -169,10 +170,12 @@ 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($db_link, $AliasHelferID, $SchichtID, $AdminID);
$db_erg = HelferVonSchichtLoeschen_SchichtID($db_link, $HelferID, $SchichtID, $AdminID);
} else {
// Fehlermeldungen ausgeben:
echo '<div class="error"><ul>';
@ -190,24 +193,25 @@ if (isset($_POST['minusschicht'])) {
// Zusammenfassung Eigener Schichten
$db_erg = SchichtenSummeEinesHelfers($db_link, $AliasHelferID);
$db_erg = SchichtenSummeEinesHelfers($db_link, $HelferID);
$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 insgesamt ";
echo " Schichten, ";
echo $zeile['Dauer'] / 3600;
echo " Stunden";
echo '</th></tr></table><br><br>';
echo " Stunden)";
echo '</th></tr></table>';
/// 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';
@ -231,39 +235,69 @@ if ($addschicht == '0') {
echo "<button name='addschicht' value='2'>Dienste</button></p>";
}
//echo "InfoAlleSchichtID ".$InfoAlleSchichtID;
// jeder soll sich alle HelferLevel anzeigen lassen koennen
$HelferLevelAnzeige = $HelferLevel;
if (isset($_POST['helfer-level-anzeige']))
{
$HelferLevelAnzeige = $_POST['helfer-level-anzeige'];
}
if ($addschicht != '0') {
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, "AdminAlleSchichten.php");
$Bereich = AusgabeZeitbereichZeile($start_date, $ZeitBereich, $TageNamenDeutsch, $_SERVER['PHP_SELF']);
$MeinVon = $Bereich['MeinVon'];
$MeinBis = $Bereich['MeinBis'];
$db_erg = AlleSchichtenImZeitbereich($db_link, $MeinVon, $MeinBis, -1);
$db_erg = AlleSchichtenImZeitbereich($db_link, $MeinVon, $MeinBis, $HelferLevelAnzeige);
// 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>";
//echo "<p><button name='addschicht' value='0'><b>&larrhk;</b></button></p>";
// "Alle Schichten der Con"
echo '<table class="commontable">';
echo "<tr class='header'>";
echo "<th colspan='7'>Alle Schichten der Con (" . $iBelegteSchichtenCount . "/" . $iAlleSchichtenCount . ")</th></tr>";
echo "<tr class='infoheader'>";
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; 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);
echo "<tr class='infoheader'><th colspan='5' >&nbsp;&nbsp; &rightarrow; Schichten $HelferLevelBeschreibung (Besetzt/Gesamt) (" . $iBelegteSchichtenCount . "/" . $iAlleSchichtenCount . ") $meine</th></tr>";
}
echo "</tr>";
$OldTag = "";
$OldWas = "";
// um Zeilen mit von mir belegten Schichten hervorzuheben
$MeineDienste = SchichtIdArrayEinesHelfers($db_link, $AliasHelferID);
$MeineDienste = SchichtIdArrayEinesHelfers($db_link, $HelferID);
//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') {
if ($dienstsort == '1') { // dienst-sort wird momentan nie gesetzt, also immer else-Teil ausgeführt
$Tag = $zeile['Tag'];
if ($Tag != $OldTag) {
@ -275,18 +309,27 @@ if ($addschicht != '0') {
} else {
$Was = $zeile['Was'];
if ($Was != $OldWas) {
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='7' style='width:100%'><span>+</span> ";
echo $Was;
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);
echo "$Was ($iBelegteSchichtenCount/$iAlleSchichtenCount) <!-- Abfrage $HelferLevel, $DienstID -->";
echo "</th>";
/*
echo "<th style='width:100px'>". "Von" . "</th>";
echo "<th style='width:130px'>". "Bis" . "</th>";
echo "<th style='width:90px'>". "Ist/Soll" . "</th>";
echo "<th style='width:90px'>". "Add" . "</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;
}
}
@ -307,13 +350,13 @@ if ($addschicht != '0') {
// Meine Schichten gruen einfaerben
if (in_array($zeile['SchichtID'], $MeineDienste)) {
$rowstyle = ' style="background-color:lightgreen" ';
$regtext = 'Meine!';
$regtext = '<br><center>Meine!</center>';
} else {
// dummy-style, um SchichtID unsichtbar im Tag anzuzeigen
$rowstyle = 'dbinfo="SchichtID:' . $zeile['SchichtID'] . ';helferlvl:' . $HelferLevel . '" ';
$regtext = '';
}
if ($_SESSION["SchichtIdAktiv"] == $zeile['SchichtID']) {
if (isset($_SESSION["SchichtIdAktiv"]) && $_SESSION["SchichtIdAktiv"] == $zeile['SchichtID']) {
$rowstyle = $rowstyle . " target='active' "; // dont collapse when the user did something
}
@ -328,9 +371,11 @@ if ($addschicht != '0') {
echo "<td>" . $Bis . "</td>";
echo "<td bgcolor='" . $Color . "'>" . $zeile['Ist'] . "/";
echo "" . $zeile['Soll'] . "</td>";
// buttons sind in der selben Zelle
echo "<td width='30px'>" . "<button width='20px' name='plusschicht' value='" . $zeile['SchichtID'] . "'>+</button>" . "";
echo "&nbsp;&nbsp;<button width='120px' name='minusschicht' value='" . $zeile['SchichtID'] . "'>&ndash;</button> $regtext" . "</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>";

View File

@ -62,7 +62,7 @@ if (isset($_POST['NewDienst'])) {
$Wo = $_POST['Dienst-Wo'];
$Info = $_POST['Dienst-Info'];
$Leiter = $_POST['Dienst-Leiter'];
$Gruppe = $_POST['Dienst-Gruppe'];
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);
@ -121,7 +121,7 @@ if (isset($_POST['NewSchicht'])) {
if (isset($_POST['DeleteSchicht'])) {
if (!DeleteSchicht($db_link, $SchichtID, false)) {
echo "Erst Helfer aus Schicht austragen<br>";
echo "Erst Schicht leeren<br>";
}
$SchichtID = 0;
}
@ -263,13 +263,13 @@ if (!isset($DienstID)) {
<tr><td style="border: 0px solid black;">HelferLevel</td></tr>
<tr><td style="border: 0px solid black;">
<select name="HelferLevel">
<option value="1" <?php if ($HelferLevel == 1) {
echo "selected";
};?> >Dauerhelfer</option>
<option value="2" <?php if ($HelferLevel == 2) {
echo "selected";
};?> >Teilnehmer</option>
<?php //todo: Name aus HelferLevel-Tabelle erhalten?>
<?php
$alleHelferLevel = alleHelferLevel($db_link);
foreach ($alleHelferLevel as $HelferLevelIteration => $HelferLevelBeschreibung) {
$selected = ($HelferLevelIteration == $HelferLevel) ? "selected" : "";
echo "<option value='$HelferLevelIteration' $selected>$HelferLevelBeschreibung</option>";
}
?>
</select>
</td></tr>
</table>
@ -345,7 +345,7 @@ echo "<p><noscript><button name='ShowSchicht' value='1'>Schicht Anzeigen</button
</td>
<tr>
</tr>
<td style="border: 0px solid black;">Anzahl Helfer (Soll)</td></tr><tr><td style="border: 0px solid black;">
<td style="border: 0px solid black;">Anzahl (Soll)</td></tr><tr><td style="border: 0px solid black;">
<input name="Schicht-Soll" type="number" min=1 value="<?php echo htmlspecialchars((int)$Soll ?? '')?>" required>
</td>
<tr>

View File

@ -73,55 +73,64 @@ echo "<br><br><table class='commontable' style='page-break-before:always'>";
</table>
<table class="commontable collapsible">
<?php
$db_erg = AlleHelferSchichtenUebersicht($db_link);
$dauer = 0;
$i = 0;
$OldAliasHelferID = "-1";
$EinzelDienstStundenZeile = ""; // Tabellenzeile mit EinzelDienstStunden
$HelferUeberschrift = "";
// Function to output helper information
function outputHelperInformation($HelferUeberschrift, $OldAliasHelferID, $dauer, $EinzelDienstStundenZeile)
function outputHelperInformation($HelferUeberschrift, $OldAliasHelferID, $dauer, $EinzelDienstStundenZeile,$HelferHandy)
{
echo "$HelferUeberschrift </th><th> <img style='vertical-align:middle;width:30px;height:30px;' src='Bilder/PfeilRechts.jpeg'> $dauer Stunden</th>";
echo "<th>$HelferHandy</th>";
echo "<th ><div style='display:table'><form style='display:table-cell' action='AdminAlleSchichten.php' method='post'>";
echo "<button width='120px' name='AliasHelferID' value='" . $OldAliasHelferID . "'>+</button></form>\n";
echo "&nbsp;&nbsp;";
echo "&nbsp;";
echo "<form style='display:table-cell' action='AdminMeineSchichten.php' method='post'>";
echo "<button width='120px' name='AliasHelferID' value='" . $OldAliasHelferID . "'>👁</button></form>";
echo "<button width='120px' name='AliasHelferID' value='" . $OldAliasHelferID . "'>&ndash;</button></form>";
echo "</div></th>";
echo "$EinzelDienstStundenZeile</td></tr>\n ";
}
while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
$HelferName = $zeile["Name"];
$HelferLevel = $zeile["HelferLevel"];
$AliasHelferID = $zeile["AliasHelferID"];
if ($AliasHelferID != $OldAliasHelferID) {
if ($EinzelDienstStundenZeile != "") {
outputHelperInformation($HelferUeberschrift, $OldAliasHelferID, $dauer, $EinzelDienstStundenZeile);
// Helferlevel holen, wir listen die Level nacheinander auf
$alleHelferLevel = alleHelferLevel($db_link);
asort($alleHelferLevel); // sort, jetzt sind dauerhelfer lvl1 oben, lvl2 danach
foreach ($alleHelferLevel as $HelferLevelIteration => $HelferLevelBeschreibung) {
echo "<tr class='header infoheader'><th colspan=4>$HelferLevelBeschreibung (Lvl: $HelferLevelIteration)</th></tr>";
$db_erg = AlleHelferSchichtenUebersicht($db_link, $HelferLevelIteration);
$dauer = 0;
$i = 0;
$OldAliasHelferID = "-1";
$EinzelDienstStundenZeile = ""; // Tabellenzeile mit EinzelDienstStunden
$HelferUeberschrift = "";
echo "<tr class='header infoheader'><th>Accountdaten</th><th>Schichten anzeigen</th><th>Handy</th><th>Schichten ändern</th></tr>";
while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
$HelferName = $zeile["Name"];
$HelferLevel = $zeile["HelferLevel"];
$AliasHelferID = $zeile["AliasHelferID"];
$HelferHandy = $zeile["Handy"];
if ($AliasHelferID != $OldAliasHelferID) {
if ($EinzelDienstStundenZeile != "") {
outputHelperInformation($HelferUeberschrift, $OldAliasHelferID, $dauer, $EinzelDienstStundenZeile,$HelferHandy);
}
$dauer = 0;
$EinzelDienstStundenZeile = "";
$HelferUeberschrift = " <tr class='header'> <th width='15%'> <form id='form_" . $AliasHelferID . "' method='post' action='AdminUserdaten.php'><input type='hidden' name='AliasHelferID' value='" . $AliasHelferID . "'/><div onclick=\"document.getElementById('form_" . $AliasHelferID . "').submit();\"/><img style='vertical-align:middle;width:30px;height:30px;' src='Bilder/PfeilRechts.jpeg'>&nbsp;$HelferName </div></form>";
$OldHelferName = $HelferName;
$OldAliasHelferID = $AliasHelferID;
$i += 1;
}
$dauer = 0;
$EinzelDienstStundenZeile = "";
$HelferUeberschrift = " <tr class='header'> <th width='15%'> <form id='form_" . $AliasHelferID . "' method='post' action='AdminUserdaten.php'><input type='hidden' name='AliasHelferID' value='" . $AliasHelferID . "'/><div onclick=\"document.getElementById('form_" . $AliasHelferID . "').submit();\"/><img style='vertical-align:middle;width:30px;height:30px;' src='Bilder/PfeilRechts.jpeg'>$HelferName (Lvl:$HelferLevel) </div></form>";
$OldHelferName = $HelferName;
$OldAliasHelferID = $AliasHelferID;
$i += 1;
$EinzelDienstStundenZeile .= "<tr><td style='width:100px'> " . (int)$zeile["Dauer"] . "</td><td>";
$EinzelDienstStundenZeile .= $zeile["Was"];
$EinzelDienstStundenZeile .= "</td></tr>";
$dauer = $dauer + (int)$zeile["Dauer"];
}
if ($EinzelDienstStundenZeile != "") {
outputHelperInformation($HelferUeberschrift, $OldAliasHelferID, $dauer, $EinzelDienstStundenZeile,$HelferHandy);
}
$EinzelDienstStundenZeile .= "<tr><td style='width:100px'> " . (int)$zeile["Dauer"] . "</td><td>";
$EinzelDienstStundenZeile .= $zeile["Was"];
$EinzelDienstStundenZeile .= "</td></tr>";
$dauer = $dauer + (int)$zeile["Dauer"];
}
if ($EinzelDienstStundenZeile != "") {
outputHelperInformation($HelferUeberschrift, $OldAliasHelferID, $dauer, $EinzelDienstStundenZeile);
}
echo "</table>";
?>
</div>

View File

@ -23,7 +23,7 @@ if ($AdminStatus != 1) {
<meta name="viewport" content="width=480" />
</head>
<body>
<div><button name="BackHelferdaten" value="1" onclick="window.location.href = 'Admin.php';"><b>&larrhk;</b></button> <h4 style="display: inline;">Admin: Schichten editieren -
<div><button name="BackHelferdaten" value="1" onclick="window.location.href = 'AdminHelferUebersicht.php';"><b>&larrhk;</b></button> <h4 style="display: inline;">Admin: Schichten editieren -
<?php echo "<b>" . EVENTNAME . "</b>"; ?>
</h4>
<div style="width: 100%;">

View File

@ -133,7 +133,7 @@ while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
<table class="commontable">
<tr>
<th><button name="BackHelferdaten" value="1" onclick="window.location.href = 'Admin.php';"><b>&larrhk;</b></button> Helferdaten</th>
<th><button name="BackHelferdaten" value="1" onclick="window.location.href = 'AdminHelferUebersicht.php';"><b>&larrhk;</b></button> Helferdaten</th>
<?php echo "<b>" . EVENTNAME . "</b>"; ?>
<form method="post">
<tr>
@ -165,16 +165,10 @@ while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
<tr><td>
<select name="helfer-level">
<?php
$db_erg = HelferLevel($db_link);
$selected = "";
while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
$HelferLevel = $zeile['HelferLevel'];
$HelferLevelBeschreibung = $zeile['HelferLevelBeschreibung'];
if ($HelferLevel == 1) {
$selected = " selected " ;
};
echo "<option value='$HelferLevel' $selected>$HelferLevelBeschreibung</option>";
$selected = "";
$alleHelferLevel = alleHelferLevel($db_link);
foreach ($alleHelferLevel as $HelferLevelIteration => $HelferLevelBeschreibung) {
$selected = ($HelferLevelIteration == $HelferLevel) ? "selected" : "";
echo "<option value='$HelferLevelIteration' $selected>$HelferLevelBeschreibung</option>";
}
?>
</select>

View File

@ -1,15 +1,16 @@
<?php
// Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden
// Login
require_once 'konfiguration.php';
SESSION_START();
require 'SQL.php';
$db_link = ConnectDB();
// zeigt login-Seite an, wenn keine Session besteht
require '_login.php';
?>
<!doctype html>
<html>
<head>
<title>Helfer <?php echo EVENTNAME ?> Alle Schichten</title>
<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" />
@ -17,14 +18,15 @@ require '_login.php';
<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 = 'index.php';"><b>&larrhk;</b></button>
<?php echo "<b>" . EVENTNAME . "</b>"; ?>
<h1> Alle Schichten / Schichten hinzuf&uuml;gen </h1>
<div style="width: 100%;">
<?php
</head>
<body>
<button name="BackHelferdaten" value="1" onclick="window.location.href = 'index.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
////////////////////////////////////////////////////////
@ -32,12 +34,14 @@ if (isset($_POST['CloseInfo'])) {
unset($InfoMeineSchichtID);
unset($InfoAlleSchichtID);
}
if (isset($_POST['InfoMeineSchichtID'])) {
$InfoMeineSchichtID = $_POST['InfoMeineSchichtID'];
unset($InfoAlleSchichtID);
//echo "<b>". $SchichtID . "</b><br>";
// wird nie gesetzt
//if (isset($_POST['InfoMeineSchichtID'])) {
function SchichtInfo($SchichtID, &$Was, &$Wo, &$Dauer, &$Leiter, &$LeiterHandy, &$LeiterEmail, &$Info)
{
$db_link = ConnectDB();
// $InfoMeineSchichtID = $_POST['InfoMeineSchichtID'];
$zeile = DetailSchicht($db_link, $InfoMeineSchichtID);
$zeile = DetailSchicht($db_link, $SchichtID);
$Was = $zeile['Was'];
$Wo = $zeile['Wo'];
@ -46,40 +50,42 @@ if (isset($_POST['InfoMeineSchichtID'])) {
$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++;
// }
//}
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 {
@ -165,11 +171,25 @@ if (isset($_POST['minusschicht'])) {
echo '</th></tr></table><br><br>';
/// Schichten Auswahl
////////////////////////////////////////////////////////
$addschicht = $_SESSION["addschicht"];
$dienstsort = $_SESSION["dienstsort"];
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
}
//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';
@ -194,13 +214,13 @@ if ($addschicht == '0') {
}
if ($addschicht != '0') {
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");
$MeinVon = $Bereich['MeinVon'];
$MeinBis = $Bereich['MeinBis'];
$db_erg = AlleSchichtenImZeitbereich($db_link, $MeinVon, $MeinBis, -1);
$db_erg = AlleSchichtenImZeitbereich($db_link, $MeinVon, $MeinBis, $HelferLevel);
// fuer Anzahlanzeige in Ueberschrift
$iAlleSchichtenCount = AlleSchichtenCount($db_link);
@ -210,10 +230,20 @@ if ($addschicht != '0') {
// "Alle Schichten der Con"
echo '<table class="commontable">';
echo "<tr class='header'>";
echo "<th colspan='7'>Alle Schichten der Con (" . $iBelegteSchichtenCount . "/" . $iAlleSchichtenCount . ")</th></tr>";
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 == $HelferLevel) {
$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>";
}
echo "</tr>";
$OldTag = "";
$OldWas = "";
@ -225,7 +255,7 @@ if ($addschicht != '0') {
// Tabelle mit allen Diensten und Schichten
echo '<table class="commontable collapsible">';
while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
if ($dienstsort == '1') {
if ($dienstsort == '1') { // dienst-sort wird momentan nie gesetzt, also immer else-Teil ausgeführt TODO
$Tag = $zeile['Tag'];
if ($Tag != $OldTag) {
@ -237,18 +267,27 @@ if ($addschicht != '0') {
} else {
$Was = $zeile['Was'];
if ($Was != $OldWas) {
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='7' style='width:100%'><span>+</span> ";
echo $Was;
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);
echo "$Was ($iBelegteSchichtenCount/$iAlleSchichtenCount) <!-- Abfrage $HelferLevel, $DienstID -->";
echo "</th>";
/*
echo "<th style='width:100px'>". "Von" . "</th>";
echo "<th style='width:130px'>". "Bis" . "</th>";
echo "<th style='width:90px'>". "Ist/Soll" . "</th>";
echo "<th style='width:90px'>". "Add" . "</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;
}
}
@ -269,13 +308,13 @@ if ($addschicht != '0') {
// Meine Schichten gruen einfaerben
if (in_array($zeile['SchichtID'], $MeineDienste)) {
$rowstyle = ' style="background-color:lightgreen" ';
$regtext = 'Meine!';
$regtext = '<br><center>Meine!</center>';
} else {
// dummy-style, um SchichtID unsichtbar im Tag anzuzeigen
$rowstyle = 'dbinfo="SchichtID:' . $zeile['SchichtID'] . ';helferlvl:' . $HelferLevel . '" ';
$regtext = '';
}
if ($_SESSION["SchichtIdAktiv"] == $zeile['SchichtID']) {
if (isset($_SESSION["SchichtIdAktiv"]) && $_SESSION["SchichtIdAktiv"] == $zeile['SchichtID']) {
$rowstyle = $rowstyle . " target='active' "; // dont collapse when the user did something
}
@ -290,9 +329,11 @@ if ($addschicht != '0') {
echo "<td>" . $Bis . "</td>";
echo "<td bgcolor='" . $Color . "'>" . $zeile['Ist'] . "/";
echo "" . $zeile['Soll'] . "</td>";
// buttons sind in der selben Zelle
echo "<td width='30px'>" . "<button width='20px' name='plusschicht' value='" . $zeile['SchichtID'] . "'>+</button>" . "";
echo "&nbsp;&nbsp;<button width='120px' name='minusschicht' value='" . $zeile['SchichtID'] . "'>&ndash;</button> $regtext" . "</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>";

View File

@ -100,7 +100,11 @@ echo "<br><br><table class='commontable' style='page-break-before:always'>";
<th><button name="BackHelferdaten" value="1" onclick="window.location.href = 'Admin.php';"><b>&larrhk;</b></button> &nbsp; <b>Übersicht Helfer und Ihre Schichten DAS 2023</b></th>
</tr>
<?php
$db_erg = AlleHelferSchichtenUebersicht($db_link);
$alleHelferLevel = alleHelferLevel($db_link);
foreach ($alleHelferLevel as $HelferLevelIteration => $HelferLevelBeschreibung) {
if ($HelferLevelIteration == 2) {echo "Teilnehmer nicht anzeigen";continue;}
echo "<tr class='header infoheader'><th colspan=3>$HelferLevelBeschreibung</th>";
$db_erg = AlleHelferSchichtenUebersicht($db_link, $HelferLevelIteration);
while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
$HelferName = $zeile["Name"];
@ -120,7 +124,7 @@ while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
echo $zeile["Was"];
echo "</td></tr>";
}
}
echo "</table>";

View File

@ -53,7 +53,7 @@ while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
<div style="width: 100%;">
<table class="commontable">
<th><button name="BackHelferdaten" value="1" onclick="window.location.href = 'Admin.php';"><b>&larrhk;</b></button> &nbsp; <b>Ausdrucke HelferDB</b>
<th><button name="BackHelferdaten" value="1" onclick="window.location.href = 'Admin.php';"><b>&larrhk;</b></button> &nbsp; <b>Ausdrucke</b>
</th>
<tr onclick="window.location.href='Ausdrucke-alles.php';">
<td > <img src="Bilder/More.jpeg" style="width:30px;height:30px;"> <b>Ausdrucke(alles)</b> </td>

View File

@ -70,7 +70,7 @@ if (isset($_POST['sent'])) {
//echo "InserId = ".$insertID;
// Erfolg vermelden und Skript beenden, damit Formular nicht erneut ausgegeben wird
echo "Helfer mit Emailadresse " . $HelferEmail . " Angelegt.<br><br>";
echo "Account mit Emailadresse " . $HelferEmail . " Angelegt.<br><br>";
$HelferName = '';
$HelferEmail = '';
$HelferHandy = '';
@ -79,7 +79,7 @@ if (isset($_POST['sent'])) {
//die('<div class="Helfer wurde angelegt.</div>');
} else {
echo "Helfer konnte nicht Angelegt werden, möglichweise exisistiert die Emailadresse " . $HelferEmail . " bereits.<br><br>";
echo "Account konnte nicht Angelegt werden, möglichweise exisistiert die Emailadresse " . $HelferEmail . " bereits.<br><br>";
}
} else {
// Fehlermeldungen ausgeben:
@ -133,7 +133,7 @@ if (isset($_POST['sent'])) {
</tr>
<tr><td>Helferlevel </td></tr>
<tr><td>
<select name="helfer-level">
<select hidden name="helfer-level">
<?php
$db_erg = HelferLevel($db_link);
$selected = "";

View File

@ -10,7 +10,7 @@ require '_login.php';
<!doctype html>
<html>
<head>
<title>Helfer <?php echo EVENTNAME ?></title>
<title><?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)"/>

View File

@ -59,7 +59,7 @@ if (isset($_POST['email-cc'])) {
$email_text = "
Lieber Teilnehmer,
trage dich bitte mit folgendem Link für eine Stunde pro Person als Helfer bei uns ein.Wir verschicken eine Mail pro Emailaddresse, also bitte für alle, die mit dieser Emailaddresse angemeldet sind.
trage dich bitte mit folgendem Link für eine Stunde pro Person bei uns ein.Wir verschicken eine Mail pro Emailaddresse, also bitte für alle, die mit dieser Emailaddresse angemeldet sind.
Danke für deine Mithilfe!
@ -84,7 +84,7 @@ if (isset($_POST['sendmail'])) {
?>
<!doctype html>
<head>
<title>Helfer <?php echo EVENTNAME ?>: Email Tokens generieren</title>
<title><?php echo EVENTNAME ?>: Email Tokens generieren</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)"/>
@ -162,7 +162,7 @@ if (isset($_POST['email-liste'])) {
foreach ($email_array as $email) {
$email = trim($email);
$encrypted_data = encode_string($secret_key, $email, $level, $secret_verification);
$token_url = "$urlprefix?token=$encrypted_data";
$token_url = "$urlprefix/UrlLogin.php?token=$encrypted_data";
// Ausgabe des verschluesselten Textes in der URL
$decrypted_data = decode_string($secret_key, urldecode($encrypted_data), $secret_verification);
$email_subst_text = str_replace('XXtokenXX', $token_url, $email_text);

View File

@ -7,7 +7,7 @@ SESSION_START();
<!doctype html>
<html>
<head>
<title>Helfer <?php echo EVENTNAME ?> Home</title>
<title><?php echo EVENTNAME ?> Home</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 http-equiv="Refresh" content="0; url=<?php echo INFORMATIONS_URL;?>" />

View File

@ -9,7 +9,7 @@ require '_zeitbereich.php';
<!DOCTYPE html>
<html>
<head>
<title> Helferdienste </title>
<title> Dienste </title>
<meta charset="utf-8">
<!--meta name="viewport" content="width=device-width, initial-scale=1 ,user-scalable=1"-->
<script src="scheduler/codebase/dhtmlxscheduler.js"></script>
@ -147,7 +147,7 @@ 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 = 7; // only show from this hour on
scheduler.config.first_hour = 0; // 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; // ???

View File

@ -9,7 +9,7 @@ require '_zeitbereich.php';
<!DOCTYPE html>
<html>
<head>
<title> Helferdienste </title>
<title> Dienste </title>
<meta charset="utf-8">
<!--meta name="viewport" content="width=device-width, initial-scale=1 ,user-scalable=1"-->
<script src="scheduler/codebase/dhtmlxscheduler.js"></script>
@ -191,7 +191,7 @@ function colorize (e){ //KS
];
scheduler.templates.tooltip_text = function(start,end,event) {
return "<b>Helfer:</b> <pre>"+event.Name+"</pre><br/></b> ";
return "<pre>"+event.Name+"</pre><br/></b> ";
};
// actual init

View File

@ -10,7 +10,7 @@ require '_login.php';
<!doctype html>
<html>
<head>
<title>Helfer - Logs </title>
<title> Logs </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)"/>

View File

@ -65,11 +65,12 @@ function HelferLogin($db_link, $HelferEmail, $HelferPasswort, $HelferStatus)
if (password_verify($HelferPasswort, $zeile['Passwort'])) {
$_SESSION["HelferID"] = $zeile['HelferID'];
$_SESSION["HelferName"] = $zeile['Name'];
//TODO: das sollte nur gesetzt werden, wenn der Helfer Admin ist
$_SESSION["AdminID"] = $zeile['HelferID'];
$_SESSION["AdminStatus"] = $zeile['Admin'];
$_SESSION["HelferLevel"] = $zeile['HelferLevel'];
return 1;
$_SESSION["HelferEmail"] = $HelferEmail;
// wird gerade immer gesetzt, kann also in dual admin/helfer Seiten fuer alle verwendet werden
$_SESSION["AdminID"] = $zeile['HelferID'];
$_SESSION["AdminStatus"] = $zeile['Admin'];
$_SESSION["HelferLevel"] = $zeile['HelferLevel'];
return 1;
} else {
echo "Falsches Passwort<br>";
return 0;
@ -141,7 +142,7 @@ function HelferdatenAendern($db_link, $HelferName, $HelferEmail, $HelferHandy, $
if ($HelferIsAdmin == -1) {
$sql = "UPDATE Helfer SET Name='" . $HelferName . "',Email='" . $HelferEmail . "',Handy='" . $HelferHandy . "',HelferLevel='$HelferLevel',Passwort='" . $PasswortHash . "' Where HelferId=" . $HelferID;
} else {
$sql = "UPDATE Helfer SET Name='$HelferName',Email='$HelferEmail',Handy='$HelferHandy',$HelferLevel='$HelferLevel',Passwort='$PasswortHash',Admin=$HelferIsAdmin Where HelferId=" . $HelferID;
$sql = "UPDATE Helfer SET Name='$HelferName',Email='$HelferEmail',Handy='$HelferHandy',HelferLevel='$HelferLevel',Passwort='$PasswortHash',Admin=$HelferIsAdmin Where HelferId=" . $HelferID;
}
//echo $sql;
$db_erg = mysqli_query($db_link, $sql);
@ -189,11 +190,18 @@ function AlleSchichten($db_link, $Sort, $HelferLevel = 1)
return $db_erg;
}
function AlleSchichtenCount($db_link, $HelferLevel = 1)
function AlleSchichtenCount($db_link, $HelferLevel = -1, $DienstID = -1)
{
$nurDienst = "";
if ($DienstID != -1) {
$nurDienst = " and Dienst.DienstID = $DienstID";
}
$nurHelferLevel = "";
if ($HelferLevel != -1) {
$nurHelferLevel = " and HelferLevel = $HelferLevel ";
}
//$sql = "select SUM(Soll) As Anzahl from SchichtUebersicht where HelferLevel=$HelferLevel";
$sql = "select Sum(Soll) as Anzahl, HelferLevel from SchichtUebersicht,Dienst Where SchichtUebersicht.DienstID=Dienst.DienstID and HelferLevel=$HelferLevel";
$sql = "select Sum(Soll) as Anzahl, HelferLevel from SchichtUebersicht,Dienst Where SchichtUebersicht.DienstID=Dienst.DienstID $nurHelferLevel $nurDienst";
$db_erg = mysqli_query($db_link, $sql);
@ -209,11 +217,19 @@ function AlleSchichtenCount($db_link, $HelferLevel = 1)
}
function AlleBelegteSchichtenCount($db_link, $HelferLevel = 1)
function AlleBelegteSchichtenCount($db_link, $HelferLevel = -1, $DienstID = -1)
{
$nurDienst = "";
if ($DienstID != -1) {
$nurDienst = " and Dienst.DienstID = $DienstID";
}
$nurHelferLevel = "";
if ($HelferLevel != -1) {
$nurHelferLevel = " and HelferLevel = $HelferLevel ";
}
$sql = "select Count(HelferID) As Anzahl from EinzelSchicht,Schicht,Dienst Where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID=Dienst.DienstID and HelferLevel=$HelferLevel";
$sql = "select Count(HelferID) As Anzahl from EinzelSchicht,Schicht,Dienst Where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID=Dienst.DienstID $nurHelferLevel $nurDienst";
$db_erg = mysqli_query($db_link, $sql);
@ -230,7 +246,7 @@ function AlleBelegteSchichtenCount($db_link, $HelferLevel = 1)
function AlleSchichtenImZeitbereich($db_link, $Von, $Bis, $HelferLevel = 1)
{
error_log("AlleSchichtenImZeitbereich Abfrage: $Von, $Bis, $HelferLevel");
//debug only error_log("AlleSchichtenImZeitbereich Abfrage: $Von, $Bis, $HelferLevel");
// SchichtID, Was, Ab, Bis, Ist, Tag, Soll - Ist und Soll sind die HelferStunden
$Von = mysqli_real_escape_string($db_link, $Von);
$Bis = mysqli_real_escape_string($db_link, $Bis);
@ -240,8 +256,8 @@ function AlleSchichtenImZeitbereich($db_link, $Von, $Bis, $HelferLevel = 1)
$sql_helferlevel = "";
}
$sql = "select SchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis,C AS Ist,DATE_FORMAT(Von,'%W %d %M') As Tag, Soll from Dienst,SchichtUebersicht where Von >= '" . $Von . "' and Von <'" . $Bis . "' and Dienst.DienstID=SchichtUebersicht.DienstID $sql_helferlevel order by Was,Von";
error_log("AlleSchichtenImZeitbereich sql " . $sql);
$sql = "select SchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis,C AS Ist,DATE_FORMAT(Von,'%W %d %M') As Tag, Soll, Dienst.DienstID from Dienst,SchichtUebersicht where Von >= '" . $Von . "' and Von <'" . $Bis . "' and Dienst.DienstID=SchichtUebersicht.DienstID $sql_helferlevel order by Was,Von";
// debug only error_log("AlleSchichtenImZeitbereich sql " . $sql);
$db_erg = mysqli_query($db_link, $sql);
if (! $db_erg) {
@ -391,6 +407,8 @@ function LogSchichtEingabe($db_link, $HelferID, $SchichtId, $EinzelSchichtId, $A
echo "HelferSchichtZuweisen: Es wurden mehr als eine Zeile zurueckgegeben\n <br>";
// Fehler geht ins normale Error-Management, nicht ins Logfile
error_log(date('Y-m-d H:i') . " HelferSchichtZuweisen: Es wurden mehr als eine Zeile zurueckgegben.\n", 0);
error_log(date('Y-m-d H:i') . "sql query: XXX $sql XXX sql query end");
error_log(date('Y-m-d H:i') . mysqli_fetch_assoc($db_erg));
} elseif (mysqli_num_rows($db_erg) == 1) {
$row = mysqli_fetch_assoc($db_erg);
$Von = $row["Von"];
@ -420,7 +438,8 @@ function HelferSchichtZuweisen($db_link, $HelferID, $SchichtId, $AdminID = 0)
if (mysqli_num_rows($db_erg) > 0) {
echo "HelferSchichtZuweisen: Schicht existiert bereits!";
return false;
// abgeschaltet, damit mehrfacheintraege fuer Familien moeglich sind
//return false;
}
// Helfer Schicht zuweisen
@ -752,11 +771,30 @@ function DeleteSchicht($db_link, $SchichtID, $Rekursiv)
}
function AlleHelferSchichtenUebersicht($db_link)
function AlleHelferSchichtenUebersicht($db_link, $HelferLevel)
{
$sql = "select Helfer.HelferID as AliasHelferID,Helfer.HelferLevel,Name,Email,Handy,Was,SUM(Dauer)/10000 as Dauer from Helfer,EinzelSchicht INNER JOIN Schicht INNER JOIN Dienst where Helfer.HelferID=EinzelSchicht.HelferID and EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID=Dienst.DienstID group by Helfer.HelferID,Was";
$sql = $sql . " UNION ALL ";
$sql = $sql . "select Helfer.HelferID as AliasHelferID,Helfer.HelferLevel,Name,Email,Handy,'-' as Was,0 as Dauer from Helfer,EinzelSchicht where not exists(select 1 from EinzelSchicht where Helfer.HelferID=EinzelSchicht.HelferID)";
$sql = "
SELECT
Helfer.HelferID AS AliasHelferID, -- Alias für HelferID
Helfer.HelferLevel,
Name,
Email,
Handy,
Was,
COALESCE(SUM(Dauer)/10000, 0) AS Dauer
FROM
Helfer
LEFT JOIN
EinzelSchicht ON Helfer.HelferID = EinzelSchicht.HelferID
LEFT JOIN
Schicht ON EinzelSchicht.SchichtID = Schicht.SchichtID
LEFT JOIN
Dienst ON Schicht.DienstID = Dienst.DienstID
WHERE Helfer.HelferLevel = $HelferLevel
GROUP BY
Helfer.HelferID,
Was";
$db_erg = mysqli_query($db_link, $sql);
if (! $db_erg) {
echo "AlleHelferSchichtenUebersicht ungueltige Abfrage";
@ -801,6 +839,21 @@ function HelferLevel($db_link)
}
return $db_erg;
}
function alleHelferLevel($db_link)
{
$alleHelferLevel = array();
$db_erg = HelferLevel($db_link);
while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
$HelferLevel = $zeile['HelferLevel'];
$HelferLevelBeschreibung = $zeile['HelferLevelBeschreibung'];
$alleHelferLevel[$HelferLevel] = $HelferLevelBeschreibung;
};
return $alleHelferLevel;
}
// TODO: als Array zurueckgeben (CreateHelfer anpassen)
// TODO:
//function HelferLevel($db_link){

View File

@ -15,7 +15,7 @@ if ($AdminStatus != 1) {
<!doctype html>
<html>
<head>
<title>testAlle Helferschichten</title>
<title>Alle Helferschichten</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" />
@ -180,7 +180,7 @@ require('_zeitbereich.php');
$Bereich = AusgabeZeitbereichZeile($start_date, $ZeitBereich, $TageNamenDeutsch, "TeilnehmerSchichtenAusdruck.php");
$MeinVon = $Bereich['MeinVon'];
$MeinBis = $Bereich['MeinBis'];
$HelferLevel=2; // nur Teilnehmer in TeilnehmerSchichtenAusdruck
$db_erg = AlleSchichtenImZeitbereich($db_link, $MeinVon, $MeinBis, $HelferLevel);
//echo "<tr><th class=header> AlleSchichtenImZeitbereich(db_link,$Von,$Bis,$HelferLevel);</th></tr>"; // debug
@ -234,7 +234,7 @@ while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
}
echo "<tr><td>$Was <br>$Ab - $Bis </td>";
echo "<td>$Helfername</td>";
echo "<td>$Was <br>$Ab-$Bis</td>";
echo "<td><b>$Was </b><br>$Ab-$Bis</td>"; // Mittlere Spalte fett, weil links und rechts Abrisse
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

View File

@ -15,7 +15,7 @@ if ($AdminStatus != 1) {
<!doctype html>
<html>
<head>
<title>testAlle Helferschichten 2</title>
<title>Alle Schichten 2</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)"/>
<link rel="stylesheet" href="css/style_print.css" media="print"/>

View File

@ -76,7 +76,7 @@ if ($success == 1 && $email != "") {
error_log("2email: " . $HelferEmail . ",level: " . $helfer_level . ",success: " . $success);
// Helfer Anlegen, wenn er nicht existiert
if (! HelferIstVorhanden($db_link, $HelferEmail)) {
error_log("Helfer " . $HelferEmail . " nicht vorhanden, lege an");
error_log($HelferEmail . " nicht vorhanden, lege an");
error_log("CreateHelfer(db_link,$HelferName,$HelferEmail, $HelferHandy,$HelferPasswort,$HelferLevel);");
$db_erg = CreateHelfer($db_link, $HelferName, $HelferEmail, $HelferHandy, $HelferPasswort, $HelferLevel);
}

View File

@ -10,7 +10,7 @@ require '_login.php';
<!doctype html>
<html>
<head>
<title><?php echo EVENTNAME ?> Helferdaten ändern</title>
<title><?php echo EVENTNAME ?> Persönliche Daten ändern</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)"/>
@ -47,7 +47,7 @@ if (isset($_POST['change'])) {
$HelferNewPasswort = $_POST['helfer-newpasswort'];
if (empty($messages)) {
// Helferdaten Ändern
HelferdatenAendern($db_link, $HelferName, $HelferEmail, $HelferHandy, $HelferNewPasswort, $HelferID, $HelferLevel);
HelferdatenAendern($db_link, $HelferName, $HelferEmail, $HelferHandy, $HelferNewPasswort, $HelferID);
} else {
// Fehlermeldungen ausgeben:
echo '<div class="error"><ul>';

40
html/_functions.php Normal file
View File

@ -0,0 +1,40 @@
<?php
require_once 'konfiguration.php';
function HelferAuswahlButton($db_link, $AliasHelferID)
{
echo '<b>Helfer w&auml;hlen:<b>';
echo '<form style="display:inline-block;" method=post>';
echo '<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'];
}

View File

@ -45,7 +45,7 @@ if (!isset($_SESSION["HelferID"])) {
<!doctype html>
<html lang=de>
<head>
<title>Helfer <?php echo EVENTNAME ?> Home</title>
<title><?php echo EVENTNAME ?> Home</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>
@ -100,6 +100,7 @@ if (!isset($_SESSION["HelferID"])) {
$HelferID = $_SESSION["HelferID"];
$HelferName = $_SESSION["HelferName"];
$HelferEmail = $_SESSION["HelferEmail"];
$AdminID = $_SESSION["AdminID"];
//TODO vereinheitlichen. index.php verwendet HelferIsAdmin
$HelferIsAdmin = $AdminStatus = $_SESSION["AdminStatus"];

View File

@ -35,6 +35,10 @@ font-size: inherit ;
color: white;
}
/*.infoheader th, .infoheader td, .infoheader tr{*/
.infoheader th{
background-color: #9090AF;
}
#selected th {
padding-top: 12px;

View File

@ -9,7 +9,7 @@ require '_login.php';
<!doctype html>
<html lang=de>
<head>
<title>Helfer <?php echo EVENTNAME ?> Home</title>
<title><?php echo EVENTNAME ?> Home</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></script>
@ -36,7 +36,11 @@ require '_login.php';
<td > <img src="Bilder/PfeilRechts2.jpeg" style="width:30px;height:30px;">
<b>
<?php
echo "Helfer $HelferName";
echo "$HelferName";
if($HelferName == $HelferEmail)
{
echo "<b style='color:red'> <--- bitte hier clicken und Email zu Namen ändern</b>";
}
if ($HelferIsAdmin) {
echo " (Admin)";
}
@ -55,7 +59,7 @@ if ($HelferIsAdmin) {
?>
<tr onclick="window.location.href='MeineSchichten.php';">
<td>
<img src="Bilder/PfeilRechts2.jpeg" style="width:30px;height:30px;"> <b>Nächste Helferschichten:</b>
<img src="Bilder/PfeilRechts2.jpeg" style="width:30px;height:30px;"> <b>Meine nächsten Schichten</b>
<ul style="display: block; list-style-type: none; margin-left: 20px;margin-top: 0px;margin-bottom: 0px">
<?php