Merge branch 'main' into Change_SQL_queries_to_PDO_rebased

This commit is contained in:
Florian Pesth 2024-03-17 16:02:42 +01:00
commit db12e4de62
32 changed files with 1454 additions and 732 deletions

1
.gitignore vendored
View File

@ -5,3 +5,4 @@ convention.log
*.sql
*.sqlite3
etc
bengelsystem_konfiguration.php

View File

@ -1,2 +1,4 @@
# Bengelsystem
Bengelsystem is a platform to schedule shifts of volunteers primarily for jugglig conventions. Helpers register at the platform and choose shifts. The admin of the website can add new tasks and shifts.
Das Bengelsystem ist Datenbanksystem, um Helfer - primär auf Jonglierconventions zu organiseren. Helfer registrieren sich und wählen ihre Schichten aus. Ein Admin auf den Seiten kann neue Dienste und Schichten anlegen etc.

View File

@ -0,0 +1,31 @@
<?php
define('MYSQL_HOST', 'localhost');
define('MYSQL_BENUTZER', 'bengel'); // database user name
define('MYSQL_KENNWORT', '');
define('MYSQL_DATENBANK', 'bengelsystem');
define('LOGFILE', "/var/log/jonglierconvention/meinetollejonglierconvention.log");
define('EVENTNAME', "Meine tolle Jonglierconvention");
define('INFORMATIONS_URL', "https://meine-tolle-jonglierconvention.de");
define('SECRET_KEY', "irgendwasZufaelliges"); // emails, see below
define('SECRET_VERIFICATION', "irgendwasanderes,egalwas"); // emails, see below
define('URLPREFIX', "https://https://meine-tolle-jonglierconvention.de/Bengelsystem/"); // our servername
define('TAGE_DAUER', 4);
date_default_timezone_set('Europe/Berlin');
setlocale(LC_TIME, "de_DE.UTF-8");
$start_date = new DateTimeImmutable("2023-05-18");
// das hier setzen, um mehr als eine Instanz der des Bengelsystems mit separaten Accounts laufen zu lassen
//session_save_path("/var/lib/php/sessions");
// Geheimer Schlüssel für die Verschlüsselung von Tokens
// das ist das Passwort, mit dem sich aus den Tokens auch wieder der Username/Email extrahieren lässt
$secret_key = SECRET_KEY;
// Geheimes Wort, das an die Email angehaengt wird, um zu ueberpruefen, dass die Addresse nicht abgeschnitten ist
// das Wort darf kein "|" enthalten, das wird als Trenner verwendet
$secret_verification = SECRET_VERIFICATION;
// urlprefix: https Addresse des php Scripts, das die Tokens empfaengt und einen Account anlegt
$urlprefix = URLPREFIX;
?>

View File

@ -1,7 +1,7 @@
<?php
// Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden
SESSION_START();
require_once 'konfiguration.php';
SESSION_START();
require 'SQL.php';
$db_link = ConnectDB();
require '_login.php';
@ -15,7 +15,7 @@ if ($AdminStatus != 1) {
<!doctype html>
<html>
<head>
<title>Admin Drop am See</title>
<title>Admin <?php echo EVENTNAME ?></title>
<link rel="stylesheet" href="css/style_common.css"/>
<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)"/>
@ -30,22 +30,17 @@ DatenbankAufDeutsch();
$AliasHelferID = 0;
//echo "AliasHelfer=$AliasHelferID <br>";
if (isset($_SESSION["AliasHelferID"])) {
$AliasHelferID = $_SESSION["AliasHelferID"];
}
//echo "AliasHelfer=$AliasHelferID <br>";
if (isset($_POST["AliasHelfer"])) {
$AliasHelferID = $_POST["AliasHelfer"];
//echo "post<br>";
if (isset($_POST["AliasHelferID"])) {
$AliasHelferID = $_POST["AliasHelferID"];
}
if ($AliasHelferID != 0) {
$_SESSION["AliasHelferID"] = $AliasHelferID;
}
//echo "AliasHelfer=$AliasHelferID <br>";
$zeilen = Helferdaten($HelferID);
foreach ($zeilen as $zeile) {
@ -58,14 +53,21 @@ foreach ($zeilen as $zeile) {
<div style="width: 100%;">
<table class="commontable">
<th><button name="BackHelferdaten" value="1" onclick="window.location.href = 'index.php';"><b>&larrhk;</b></button> &nbsp; <b>Admin HelferDB</b>
<th>
<button name="BackHelferdaten" value="1" onclick="window.location.href = 'index.php';">
<b>&larrhk;</b>
</button> &nbsp;
<b>Admin HelferDB <?php echo EVENTNAME; ?></b>
</th>
<tr>
<tr onclick="window.location.href='AdminDienste.php';">
<td>
<a class="fallbacklink" href='AdminDienste.php'><img src="Bilder/PfeilRunter.jpeg" style="width:30px;height:30px;"><b> Dienste und Schichten verwalten</b></a>
<a class="fallbacklink" href='AdminDienste.php'>
<img src="Bilder/PfeilRechts.jpeg" style="width:30px;height:30px;">
<b> Dienste und Schichten verwalten</b>
</a>
</td>
</tr>
<tr onclick="window.location.href='CreateHelfer.php';"> <td>
@ -73,15 +75,21 @@ foreach ($zeilen as $zeile) {
</td> </tr>
<tr onclick="window.location.href='EmailZuToken.php';"> <td>
<img src="Bilder/PfeilRunter.jpeg" style="width:30px;height:30px;"><b>Helfer per Link einladen</b>
<img src="Bilder/PfeilRechts.jpeg" style="width:30px;height:30px;"><b>Helfer per Link einladen</b>
</td> </tr>
<tr onclick="window.location.href='AdminHelferUebersicht.php';">
<td>
<a class="fallbacklink" href='AdminHelferUebersicht.php'><img src="Bilder/PfeilRunter.jpeg" style="width:30px;height:30px;"><b>Helfer&uuml;bersicht</b></a>
<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>
</a>
</td>
</tr>
<th><b>Helfer als Admin &auml;ndern:<b> <form style="display:inline-block;" method=post><select style="height:33px;width:350px;font-size:20" name="AliasHelfer" id="AliasHelfer" onchange="submit()">
<th>
<b>Helfer 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
$zeilen = HelferListe();
foreach ($zeilen as $zeile) {
@ -103,28 +111,41 @@ foreach ($zeilen as $zeile) {
- inner table for indent-->
<tr onclick="window.location.href='AdminUserdaten.php';">
<!--td class="invis"></td-->
<td><img src="Bilder/dot.png" width="30px" height="2px"><img src="Bilder/PfeilRunter.jpeg" style="width:30px;height:30px;"><b> Helferdaten &auml;ndern</b></td>
<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>
</td>
</tr>
<tr onclick="window.location.href='AdminMeineSchichten.php';">
<td><img src="Bilder/dot.png" width="30px" height="2px"><img src="Bilder/PfeilRunter.jpeg" style="width:30px;height:30px;"><b> Schichten Anzeigen/Löschen</b></td>
<td>
<img src="Bilder/dot.png" width="30px" height="2px">
<img src="Bilder/PfeilRechts.jpeg" style="width:30px;height:30px;">
<b>Schichten Anzeigen/Löschen</b>
</td>
</tr>
<tr onclick="window.location.href='AdminAlleSchichten.php';">
<td><img src="Bilder/dot.png" width="30px" height="2px"><img src="Bilder/PfeilRunter.jpeg" style="width:30px;height:30px;"><b> Schichten Hinzufügen</b></td>
<td>
<img src="Bilder/dot.png" width="30px" height="2px">
<img src="Bilder/PfeilRechts.jpeg" style="width:30px;height:30px;">
<b> Schichten Hinzufügen</b>
</td>
</tr>
<!--</table></td> </tr> inner table for indent end-->
<!--<tr><th>Weiteres</th></tr>-->
<tr onclick="window.location.href='Kalender-all.html';">
<tr onclick="window.location.href='Kalender-all.php';">
<td><img src="Bilder/More.jpeg" style="width:30px;height:30px"><b> Admin Kalenderansicht</b> </td>
</tr>
<tr onclick="window.location.href='Ausdrucke.php';">
<td > <img src="Bilder/More.jpeg" style="width:30px;height:30px;"> <b>Ausdrucke</b> </td>
</tr>
<tr onclick="window.location.href='TeilnehmerSchichtenAusdruck.php';">
<td > <img src="Bilder/More.jpeg" style="width:30px;height:30px;"> <b>Ausdruck Schichten</b> </td>
</tr>
</table>
<p> <img src="Bilder/Info.jpeg" width="25px" height="25px"> Dienst: z.B. Badgekontrolle Eingang A. Schicht: ein Dienst zu einer bestimmten Zeit zB 9-12 Uhr
<p>
<img src="Bilder/Info.jpeg" width="25px" height="25px">
Dienst: z.B. Badgekontrolle Eingang A. Schicht: ein Dienst zu einer bestimmten Zeit zB 9-12 Uhr
</p>
<button class=back name="BackHelferdaten" value="1" onclick="window.location.href = 'index.php';"><b>&larrhk;</b></button>
<button class=back name="BackHelferdaten" value="1" onclick="window.location.href = 'index.php';">
<b>&larrhk;</b>
</button>
</body>
</html>

View File

@ -1,7 +1,7 @@
<?php
// Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden
SESSION_START();
require_once 'konfiguration.php';
SESSION_START();
require 'SQL.php';
$db_link = ConnectDB();
require '_login.php';
@ -15,12 +15,11 @@ if ($AdminStatus != 1) {
<!doctype html>
<html>
<head>
<title>Helfer Drop am See Alle Schichten</title>
<title>Helfer <?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();
@ -28,6 +27,7 @@ if ($AdminStatus != 1) {
</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
@ -88,12 +88,12 @@ if (isset($_GET['InfoAlleSchichtID'])) {
if (isset($_GET['ZeitBereich'])) {
$ZeitBereich = $_GET['ZeitBereich'];
} else {
$ZeitBereich = 1;
$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="AliasHelfer" id="AliasHelfer" onchange="submit()">';
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()">';
$zeilen = HelferListe();
foreach ($zeilen as $zeile) {
if ($AliasHelferID != $zeile['HelferID']) {
@ -105,12 +105,13 @@ function HelferAuswahlButton($db_link, $AliasHelferID)
echo '</select></form>';
}
if (isset($_POST['AliasHelfer'])) {
$AliasHelferID = $_POST['AliasHelfer'];
if (isset($_POST['AliasHelferID'])) {
$AliasHelferID = $_POST['AliasHelferID'];
} elseif (isset($_SESSION["AliasHelferID"])) {
$AliasHelferID = $_SESSION["AliasHelferID"];
} else {
HelferAuswahlButton($db_link, $AliasHelferID);
echo "<p>Erst Helfer auswählen</p>";
exit;
}
HelferAuswahlButton($db_link, $AliasHelferID);
@ -140,15 +141,10 @@ foreach ($zeilen as $zeile) {
///////////////////////////////////////////////////////////
if (isset($_POST['plusschicht'])) {
$messages = [];
$SchichtId = $_POST['plusschicht'];
// Eingaben überprüfen:
// if(!preg_match('/^[a-zA-Z]+[a-zA-Z0-9._]+$/', $HelferName)) {
// $messages[] = 'Bitte prüfen Sie die eingegebenen Namen';
// }
$SchichtID = $_POST['plusschicht'];
// Nutzer hat hier zuletzt etwas geändert und wir klappen das deshalb auf,
// indem wir unten target=active setzen
$_SESSION["SchichtIdAktiv"] = $SchichtID;
if (empty($messages)) {
// Helfer Schicht zuweisen
$db_erg = HelferSchichtZuweisen($AliasHelferID, $SchichtId, $AdminID);
@ -196,8 +192,9 @@ if (isset($_POST['minusschicht'])) {
// Zusammenfassung Eigener Schichten
$zeile = SchichtenSummeEinesHelfers($AliasHelferID);
echo '<table id="customers"><tr class="header"><th onclick="window.location.href=\'AdminMeineSchichten.php\'">';
echo " Dienstplan von $HelferName (Zusammenfassung)<br>";
//"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 $zeile['Dauer'] / 3600;
@ -236,94 +233,24 @@ if ($addschicht == '0') {
//echo "InfoAlleSchichtID ".$InfoAlleSchichtID;
if ($addschicht != '0') {
//$db_erg = AlleSchichten($db_link,$dienstsort);
//$db_erg = AlleSchichtenImZeitbereich($db_link,"2023-05-18 00:00:00","2023-05-19 00:00:00");
if ($ZeitBereich == 1) { // Alle
$db_erg = AlleSchichtenImZeitbereich("2000-05-18 00:00:00", "2200-05-19 00:00:00", -1);
}
if ($ZeitBereich == 2) { // Davor
$db_erg = AlleSchichtenImZeitbereich("2000-05-18 00:00:00", "2023-05-18 00:00:00", -1);
}
if ($ZeitBereich == 3) { // Do
$db_erg = AlleSchichtenImZeitbereich("2023-05-18 00:00:00", "2023-05-19 00:00:00", -1);
}
if ($ZeitBereich == 4) { // Fr
$db_erg = AlleSchichtenImZeitbereich("2023-05-19 00:00:00", "2023-05-20 00:00:00", -1);
}
if ($ZeitBereich == 5) { // Sa
$db_erg = AlleSchichtenImZeitbereich("2023-05-20 00:00:00", "2023-05-21 00:00:00", -1);
}
if ($ZeitBereich == 6) { // So
$db_erg = AlleSchichtenImZeitbereich("2023-05-21 00:00:00", "2023-05-22 00:00:00", -1);
}
if ($ZeitBereich == 7) { // Danach
$db_erg = AlleSchichtenImZeitbereich("2023-05-22 00:00:00", "2223-05-22 00:00:00", -1);
}
echo '<table class="commontable">';
require('_zeitbereich.php');
$Bereich = AusgabeZeitbereichZeile($start_date, $ZeitBereich, $TageNamenDeutsch, "AdminAlleSchichten.php");
$MeinVon = $Bereich['MeinVon'];
$MeinBis = $Bereich['MeinBis'];
$db_erg = AlleSchichtenImZeitbereich($MeinVon, $MeinBis, -1);
// fuer Anzahlanzeige in Ueberschrift
$iAlleSchichtenCount = AlleSchichtenCount();
$iBelegteSchichtenCount = AlleBelegteSchichtenCount();
echo '</table>';
//echo "<p><button name='addschicht' value='0'><b>&larrhk;</b></button></p>";
echo '<table id="customers">';
echo "<thead>";
echo "<tr>";
echo "</tr><th colspan='7'>" . "Alle Schichten der Con (" . $iBelegteSchichtenCount . "/" . $iAlleSchichtenCount . ")</th></tr>";
/*
if ($dienstsort=='1')
{
echo "<th>". "Dienst" . "</th>";
}
else
{
echo "<th>". "Von" . "</th>";
}
*/
if ($ZeitBereich == 1) {
echo "<th style='width:100px; background-color:#0000FF' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=1\"'>" . "Alle" . "</th>";
} else {
echo "<th style='width:100px' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=1\"'>" . "Alle" . "</th>";
}
if ($ZeitBereich == 2) {
echo "<th style='width:100px; background-color:#0000FF' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=2\"'>" . "Davor" . "</th>";
} else {
echo "<th style='width:100px' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=2\"'>" . "Davor" . "</th>";
}
if ($ZeitBereich == 3) {
echo "<th style='width:50px; background-color:#0000FF' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=3\"'>" . "Do" . "</th>";
} else {
echo "<th style='width:50px' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=3\"'>" . "Do" . "</th>";
}
if ($ZeitBereich == 4) {
echo "<th style='width:50px; background-color:#0000FF' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=4\"'>" . "Fr" . "</th>";
} else {
echo "<th style='width:50px' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=4\"'>" . "Fr" . "</th>";
}
if ($ZeitBereich == 5) {
echo "<th style='width:50px; background-color:#0000FF' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=5\"'>" . "Sa" . "</th>";
} else {
echo "<th style='width:50px' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=5\"'>" . "Sa" . "</th>";
}
if ($ZeitBereich == 6) {
echo "<th style='width:50px; background-color:#0000FF' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=6\"'>" . "So" . "</th>";
} else {
echo "<th style='width:50px' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=6\"'>" . "So" . "</th>";
}
if ($ZeitBereich == 7) {
echo "<th style='width:100px; background-color:#0000FF' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=7\"'>" . "Danach" . "</th>";
} else {
echo "<th style='width:100px' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=7\"'>" . "Danach" . "</th>";
}
//echo "<th style='width:100px' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=2\"'>". "Davor" . "</th>";
//echo "<th style='width:50px'>". "Do" . "</th>";
//echo "<th style='width:50px'>". "Fr" . "</th>";
//echo "<th style='width:50px'>". "Sa" . "</th>";
//echo "<th style='width:50px'>". "So" . "</th>";
//echo "<th style='width:100px'>". "Danach" . "</th>";
echo '<table class="commontable">';
echo "<tr class='header'>";
echo "<th colspan='7'>Alle Schichten der Con (" . $iBelegteSchichtenCount . "/" . $iAlleSchichtenCount . ")</th></tr>";
echo "</tr>";
echo "</thead>";
$OldTag = "";
$OldWas = "";
@ -332,7 +259,7 @@ if ($addschicht != '0') {
//print_r($MeineDienste);
echo '</table>';
echo '<table id="customers">';
echo '<table class="commontable collapsible">';
foreach ($MeineDienste as $zeile) {
if ($dienstsort == '1') {
@ -348,7 +275,8 @@ if ($addschicht != '0') {
$Was = $zeile['Was'];
if ($Was != $OldWas) {
echo "<tr class='header'><th colspan='7' style='width:100%'>";
// + in <span> becomes - when rows are opened
echo "<tr class='header'><th colspan='7' style='width:100%'><span>+</span> ";
echo $Was;
echo "</th>";
/*
@ -381,9 +309,12 @@ if ($addschicht != '0') {
$regtext = 'Meine!';
} else {
// dummy-style, um SchichtID unsichtbar im Tag anzuzeigen
$rowstyle = 'style="dummy:' . $zeile['SchichtID'] . '"';
$rowstyle = 'dbinfo="SchichtID:' . $zeile['SchichtID'] . ';helferlvl:' . $HelferLevel . '" ';
$regtext = '';
}
if ($_SESSION["SchichtIdAktiv"] == $zeile['SchichtID']) {
$rowstyle = $rowstyle . " target='active' "; // dont collapse when the user did something
}
echo '<tr ' . $rowstyle . 'onclick="window.location.href=\'DetailsSchichten.php?InfoAlleSchichtID=' . $zeile['SchichtID'] . '#Info\';" >';
@ -398,8 +329,7 @@ if ($addschicht != '0') {
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>";
//echo "<td>$regtext</td>";
echo "&nbsp;&nbsp;<button width='120px' name='minusschicht' value='" . $zeile['SchichtID'] . "'>&ndash;</button> $regtext" . "</td>";
echo "</tr>\n";
}
echo "</table>";

View File

@ -1,7 +1,7 @@
<?php
// Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden
SESSION_START();
require_once 'konfiguration.php';
SESSION_START();
require 'SQL.php';
$db_link = ConnectDB();
require '_login.php';
@ -15,14 +15,14 @@ if ($AdminStatus != 1) {
<!doctype html>
<html>
<head>
<title>Admin Drop am See</title>
<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>
<body onload="setEndDate();">
<div style="width: 100%;">
<?php
@ -30,6 +30,7 @@ if ($AdminStatus != 1) {
DatenbankAufDeutsch();
$DienstID = $_SESSION["DienstID"];
$NewDienstID = 0;
$SchichtID = $_SESSION["SchichtID"];
@ -65,6 +66,7 @@ if (isset($_POST['NewDienst'])) {
$Gruppe = $_POST['Dienst-Gruppe'];
$HelferLevel = $_POST['HelferLevel'];
NewDienst($DienstID, $Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLevel);
$NewDienstID = LastInsertId();
}
@ -79,17 +81,42 @@ if (isset($_POST['ChangeSchicht'])) {
$Von = $_POST['Schicht-Von'];
$Bis = $_POST['Schicht-Bis'];
$Soll = $_POST['Schicht-Soll'];
$Dauer = $_POST['Schicht-Dauer'];
ChangeSchicht($SchichtID, $Von, $Bis, $Soll);
ChangeSchicht($SchichtID, $Von, $Bis, $Soll, $Dauer);
}
if (isset($_POST['Schicht-Automatic-Bis'])) {
$AutomaticBis = 1;
} else {
$AutomaticBis = 0;
}
if (isset($_POST['Schicht-Anschlussschicht'])) {
$Anschlussschicht = 1;
} else {
$Anschlussschicht = 0;
}
if (isset($_POST['NewSchicht'])) {
$Von = $_POST['Schicht-Von'];
$Bis = $_POST['Schicht-Bis'];
$Soll = $_POST['Schicht-Soll'];
$Dauer = $_POST['Schicht-Dauer'];
NewSchicht($DienstID, $Von, $Bis, $Soll);
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($DienstID, $Von, $Bis, $Soll, $Dauer, $HelferName);
$SchichtID = LastInsertId($db_link);
//echo "+".$SchichtID."+";
}
@ -97,6 +124,7 @@ if (isset($_POST['DeleteSchicht'])) {
if (!DeleteSchicht($SchichtID, false)) {
echo "Erst Helfer aus Schicht austragen<br>";
}
$SchichtID = 0;
}
@ -104,8 +132,9 @@ if (isset($_POST['DeleteSchicht'])) {
if (isset($_POST['ShowSchicht'])) {
$SchichtID = $_POST['SchichtSearch'];
}
if (isset($_POST['SchichtSearch'])) {
if (isset($_POST['SchichtSearch']) && !isset($_POST['NewSchicht']) && !isset($_POST['DeleteSchicht'])) {
$SchichtID = $_POST['SchichtSearch'];
echo "SchichtSearch<br>";
}
if (isset($_POST['ShowSchichten'])) {
@ -118,7 +147,9 @@ if (isset($_POST['DienstSearch'])) {
}
if ($NewDienstID != 0) {
$DienstID = $NewDienstID;
}
// Dienste Anzeigen
////////////////////////////////////////////////////////
@ -126,7 +157,7 @@ if (isset($_POST['DienstSearch'])) {
?>
<button class=back name="BackHelferdaten" value="1" onclick="window.location.href = 'Admin.php';"><b>&larrhk;</b></button>
<form method="post">
<table border="0" id='customers'>
<table border="0" class='commontable'>
<tr><th> Dienst</th><th><select name="DienstSearch" id="DienstSearch" onchange="submit()">
<?php
@ -145,6 +176,7 @@ foreach ($zeilen as $zeile){
echo "<option value='" . $zeile['DienstID'] . "'>" . $zeile['Was'] . "</option>";
} else {
echo "<option value='" . $zeile['DienstID'] . "' selected='selected'>" . $zeile['Was'] . "</option>";
$Was = $zeile['Was'];
$Wo = $zeile['Wo'];
$Info = $zeile['Info'];
@ -163,12 +195,16 @@ echo "<p><noscript><button name='ShowSchichten' value='1'>Schichten Anzeigen</bu
// Aktueller Dienst und dessen Schichten Anzeigen
////////////////////////////////////////////////////////
if (!isset($DienstID)) {
echo "<img src='Bilder/Attention_Sign.svg' width='20px'> Bitte erst Dienst Auswählen </body></html>";
exit;
}
?>
<table border="0" id="customers">
<table border="0" class="commontable">
<tr>
<td style="border: 0px solid black;">Was</td></tr><tr><td style="border: 0px solid black;">
<input name="Dienst-Was" type="text" value="<?php echo htmlspecialchars($Was ?? '')?>">
@ -235,15 +271,18 @@ echo "<p><noscript><button name='ShowSchichten' value='1'>Schichten Anzeigen</bu
</td></tr>
</table>
<p><button name="ChangeDienst" value="1">Ändern</button><button name="NewDienst" value="1">Neue</button><button name='DeleteDienst' value='1'>Löschen</button></p>
<p>
<button name="NewDienst" value="1">Dienst anlegen</button>
<button name="ChangeDienst" value="1">Ändern</button>
<button name='DeleteDienst' value='1'>Löschen</button>
</p>
</form>
<form method="post">
<table border="0" id='customers'">
<table border="0" class='commontable'>
<tr><th>Schicht</th><th><select name="SchichtSearch" id="SchichtSearch" onchange="submit()">
@ -252,6 +291,7 @@ echo "<p><noscript><button name='ShowSchichten' value='1'>Schichten Anzeigen</bu
$Soll = 1;
$schichten = GetSchichtenEinesDienstes($DienstID);
echo "+" . $SchichtID . "+";
foreach ($schichten as $zeile) {
if ($SchichtID == 0) {
@ -261,9 +301,14 @@ foreach ($schichten as $zeile) {
echo "<option value='" . $zeile['SchichtID'] . "'>" . $zeile['TagVon'] . "</option>";
} else {
echo "<option value='" . $zeile['SchichtID'] . "' selected='selected'>" . $zeile['TagVon'] . "</option>";
if (isset($_POST['NewSchicht']) && $Anschlussschicht) {
$Von = $Bis;
} else {
$Von = $zeile['Von'];
$Bis = $zeile['Bis'];
$Soll = (int)$zeile['Soll'];
$Dauer = $zeile['Dauer'];
}
}
}
@ -277,28 +322,48 @@ echo "<p><noscript><button name='ShowSchicht' value='1'>Schicht Anzeigen</button
<!-- <table border="0" style="border: 0px solid black;"> -->
<table border="0" id='customers'">
<table border="0" class='commontable'">
<tr>
<td style="border: 0px solid black;">Von</td></tr><tr><td style="border: 0px solid black;">
<input name="Schicht-Von" type="datetime-local" 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>
</td>
<tr>
</tr>
<td style="border: 0px solid black;">Bis</td></tr><tr><td style="border: 0px solid black;">
<input name="Schicht-Bis" type="datetime-local" value="<?php echo htmlspecialchars($Bis ?? '')?>" required>
<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>
</td>
<tr>
</tr>
<td style="border: 0px solid black;">Soll</td></tr><tr><td style="border: 0px solid black;">
<td style="border: 0px solid black;">Anzahl Helfer (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>
</tr>
</table>
<p><button name="ChangeSchicht" value="1">Ändern</button><button name="NewSchicht" value="1">Neue</button><button name='DeleteSchicht' value='1'>Löschen</button></p>
<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>
<p>
<button name="NewSchicht" value="1">Schicht anlegen</button>
<button name="ChangeSchicht" value="1">Ändern</button>
<button name='DeleteSchicht' value='1'>Löschen</button>
</p>
</form>
<button class=back name="BackHelferdaten" value="1" onclick="window.location.href = 'Admin.php';"><b><b>&larrhk;</b></b></button>

View File

@ -1,7 +1,7 @@
<?php
// Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden
SESSION_START();
require_once 'konfiguration.php';
SESSION_START();
require 'SQL.php';
$db_link = ConnectDB();
require '_login.php';
@ -15,7 +15,7 @@ if ($AdminStatus != 1) {
<!doctype html>
<html>
<head>
<title>Admin Drop am See</title>
<title>Admin <?php echo EVENTNAME ?></title>
<link rel="stylesheet" href="css/style_common.css"/>
<link rel="stylesheet" href="css/style_desktop.css" media="screen and (min-width:781px)"/>
@ -71,43 +71,51 @@ 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>&Uuml;bersicht Helfer und Ihre Schichten</b></th>
</tr>
</table>
<table class="commontable">
<table class="commontable collapsible">
<?php
$db_erg = AlleHelferSchichtenUebersicht();
$dauer = 0;
$i = 0;
$OldHelferName = "";
$EinzelDienstStunden = "";
$OldAliasHelferID = "-1";
$EinzelDienstStundenZeile = ""; // Tabellenzeile mit EinzelDienstStunden
$HelferUeberschrift = "";
foreach ($db_erg as $zeile) {
$HelferName = $zeile["Name"];
$AliasHelferID = $zeile["AliasHelferID"];
//echo $HelferName." ".$AliasHelferID."<br>";
if ($HelferName != $OldHelferName) {
if ($EinzelDienstStunden != "") {
// Neue Ueberschrift mit Helfernamen + Stunden
echo "$HelferUeberschrift </th><th> <img style='width:30px;height:30px;' src='Bilder/PfeilRunter.jpeg'> $dauer Stunden</th>";
// Function to output helper information
function outputHelperInformation($HelferUeberschrift, $OldAliasHelferID, $dauer, $EinzelDienstStundenZeile)
{
echo "$HelferUeberschrift </th><th> <img style='vertical-align:middle;width:30px;height:30px;' src='Bilder/PfeilRechts.jpeg'> $dauer Stunden</th>";
echo "<th ><div style='display:table'><form style='display:table-cell' action='AdminAlleSchichten.php' method='post'>";
echo "<button width='120px' name='AliasHelfer' value='" . $OldAliasHelferID . "'>+</button></form>\n";
echo "<button width='120px' name='AliasHelferID' value='" . $OldAliasHelferID . "'>+</button></form>\n";
echo "&nbsp;&nbsp;";
echo "<form style='display:table-cell' action='AdminMeineSchichten.php' method='post'>";
echo "<button width='120px' name='AliasHelfer' value='" . $OldAliasHelferID . "'>&ndash;</button></form>";
echo "<button width='120px' name='AliasHelferID' value='" . $OldAliasHelferID . "'>&ndash;</button></form>";
echo "</div></th>";
$dauer = 0;
echo "$EinzelDienstStunden</td></tr>\n ";
echo "$EinzelDienstStundenZeile</td></tr>\n ";
}
foreach ($db_erg as $zeile) {
$HelferName = $zeile["Name"];
$HelferLevel = $zeile["HelferLevel"];
$AliasHelferID = $zeile["AliasHelferID"];
if ($AliasHelferID != $OldAliasHelferID) {
if ($EinzelDienstStundenZeile != "") {
outputHelperInformation($HelferUeberschrift, $OldAliasHelferID, $dauer, $EinzelDienstStundenZeile);
}
$EinzelDienstStunden = "";
$HelferUeberschrift = "<tr class='header'><th width='15%'>" . $HelferName;
$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;
}
$EinzelDienstStunden .= "<tr><td style='width:100px'> " . (int)$zeile["Dauer"] . "</td><td>";
$EinzelDienstStunden .= $zeile["Was"];
$EinzelDienstStunden .= "</td></tr>";
$EinzelDienstStundenZeile .= "<tr><td style='width:100px'> " . (int)$zeile["Dauer"] . "</td><td>";
$EinzelDienstStundenZeile .= $zeile["Was"];
$EinzelDienstStundenZeile .= "</td></tr>";
$dauer = $dauer + (int)$zeile["Dauer"];
}
echo "$EinzelDienstStunden";
if ($EinzelDienstStundenZeile != "") {
outputHelperInformation($HelferUeberschrift, $OldAliasHelferID, $dauer, $EinzelDienstStundenZeile);
}
echo "</table>";

View File

@ -1,7 +1,7 @@
<?php
// Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden
SESSION_START();
require_once 'konfiguration.php';
SESSION_START();
require 'SQL.php';
$db_link = ConnectDB();
require '_login.php';
@ -15,7 +15,7 @@ if ($AdminStatus != 1) {
<!doctype html>
<html>
<head>
<title>Admin Drop am See - Schichten editieren</title>
<title>Admin <?php echo EVENTNAME ?> - Schichten editieren</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)"/>
@ -23,7 +23,9 @@ 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</h4>
<div><button name="BackHelferdaten" value="1" onclick="window.location.href = 'Admin.php';"><b>&larrhk;</b></button> <h4 style="display: inline;">Admin: Schichten editieren -
<?php echo "<b>" . EVENTNAME . "</b>"; ?>
</h4>
<div style="width: 100%;">
<?php
@ -83,7 +85,7 @@ if (isset($_GET['InfoAlleSchichtID'])) {
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="AliasHelfer" id="AliasHelfer" onchange="submit()">';
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()">';
$zeilen = HelferListe();
foreach ($zeilen as $zeile) {
if ($AliasHelferID != $zeile['HelferID']) {
@ -97,8 +99,8 @@ function HelferAuswahlButton($db_link, $AliasHelferID)
if (isset($_POST['AliasHelfer'])) {
$AliasHelferID = $_POST['AliasHelfer'];
if (isset($_POST['AliasHelferID'])) {
$AliasHelferID = $_POST['AliasHelferID'];
echo "AliasHelfer: $AliasHelferID<br>";
} elseif (isset($_SESSION["AliasHelferID"])) {
$AliasHelferID = $_SESSION["AliasHelferID"];
@ -207,7 +209,7 @@ $schichten = AlleSchichtenEinesHelfers($AliasHelferID);
$iSQLCount = count($schichten);
//$iSQLCount = 3;
echo '<table id="customers">';
echo '<table class="commontable">';
echo "<thead>";
echo "<tr>";
@ -238,7 +240,7 @@ echo "<br><br>";
$iAlleSchichtenCount = AlleSchichtenCount();
$iBelegteSchichtenCount = AlleBelegteSchichtenCount();
echo '<table id="customers" onclick="window.location.href=\'AdminAlleSchichten.php\'">';
echo '<table class="commontable" onclick="window.location.href=\'AdminAlleSchichten.php\'">';
echo "<tr>";
echo "<th>" . "Alle Schichten der Con (" . $iBelegteSchichtenCount . "/" . $iAlleSchichtenCount . ")</th>";
echo "</tr>";

View File

@ -1,7 +1,7 @@
<?php
// Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden
SESSION_START();
require_once 'konfiguration.php';
SESSION_START();
require 'SQL.php';
$db_link = ConnectDB();
require '_login.php';
@ -14,7 +14,7 @@ if ($AdminStatus != 1) {
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="AliasHelfer" id="AliasHelfer" onchange="submit()">';
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()">';
$zeilen = HelferListe();
foreach ($zeilen as $zeile) {
if ($AliasHelferID != $zeile['HelferID']) {
@ -26,8 +26,8 @@ function HelferAuswahlButton($db_link, $AliasHelferID)
echo '</select></form>';
}
if (isset($_POST['AliasHelfer'])) {
$AliasHelferID = $_POST['AliasHelfer'];
if (isset($_POST['AliasHelferID'])) {
$AliasHelferID = $_POST['AliasHelferID'];
} elseif (isset($_SESSION["AliasHelferID"])) {
$AliasHelferID = $_SESSION["AliasHelferID"];
} else {
@ -39,16 +39,14 @@ HelferAuswahlButton($db_link, $AliasHelferID);
$_SESSION["AliasHelferID"] = $AliasHelferID;
$AdminID = $_SESSION["AdminID"];
echo "Admin=$AdminID<br>";
echo "Helfer=$HelferID<br>";
echo "Alias=$AliasHelferID<br>";
//debug output: echo "Admin=$AdminID<br>"; echo "Helfer=$HelferID<br>"; echo "Alias=$AliasHelferID<br>";
?>
<!doctype html>
<html>
<head>
<title>Drop am See Helferdaten ändern</title>
<title><?php echo EVENTNAME ?> Helferdaten ä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)"/>
@ -78,6 +76,7 @@ if (isset($_POST['change'])) {
$HelferName = $_POST['helfer-name'];
$HelferEmail = $_POST['helfer-email'];
$HelferHandy = $_POST['helfer-handy'];
$HelferLevel = $_POST['helfer-level'];
$HelferNewPasswort = $_POST['helfer-newpasswort'];
if ($_POST['IsAdmin']) {
$HelferIsAdmin = 1;
@ -87,7 +86,11 @@ if (isset($_POST['change'])) {
}
if (empty($messages)) {
// Helferdaten Ändern
<<<<<<< HEAD
HelferdatenAendern($HelferName, $HelferEmail, $HelferHandy, $HelferNewPasswort, $AliasHelferID, $HelferIsAdmin, $HelferID);
=======
HelferdatenAendern($db_link, $HelferName, $HelferEmail, $HelferHandy, $HelferNewPasswort, $AliasHelferID, $HelferLevel, $HelferIsAdmin, $HelferID);
>>>>>>> main
} else {
// Fehlermeldungen ausgeben:
echo '<div class="error"><ul>';
@ -119,6 +122,7 @@ foreach ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
$HelferEmail = $zeile['Email'];
$HelferHandy = $zeile['Handy'];
$HelferIsAdmin = $zeile['Admin'];
$HelferLevel = $zeile['HelferLevel'];
}
?>
@ -126,10 +130,10 @@ foreach ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
<table id="customers">
<table class="commontable">
<tr>
<th><button name="BackHelferdaten" value="1" onclick="window.location.href = 'Admin.php';"><b>&larrhk;</b></button> Helferdaten</th>
</tr>
<?php echo "<b>" . EVENTNAME . "</b>"; ?>
<form method="post">
<tr>
<td>Name</td></tr><tr><td>
@ -156,10 +160,28 @@ foreach ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
<input name="helfer-newpasswort" type="text" value="<?php echo htmlspecialchars($HelferPasswort ?? '')?>" >
</td>
</tr>
<tr><td>Helferlevel </td></tr>
<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 = "";
}
?>
</select>
</td>
</tr>
</table>
<table id="customers">
<table class="commontable">
<col style="width:20px">
<tr>
<td><input type="checkbox" name="IsAdmin" value=1 align="right" <?php if ($HelferIsAdmin == 1) {

View File

@ -1,8 +1,15 @@
<?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();
require '_login.php';
?>
<!doctype html>
<html>
<head>
<title>Helfer Drop am See Alle Schichten</title>
<title>Helfer <?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" />
@ -15,26 +22,11 @@
</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
SESSION_START();
require_once 'konfiguration.php';
require 'SQL.php';
$db_link = mysqli_connect(
MYSQL_HOST,
MYSQL_BENUTZER,
MYSQL_KENNWORT,
MYSQL_DATENBANK
);
require '_login.php';
/// Detailinformation zu ausgewaehlten Schicht Holen
////////////////////////////////////////////////////////
if (isset($_POST['CloseInfo'])) {
@ -92,7 +84,7 @@ if (isset($_GET['InfoAlleSchichtID'])) {
if (isset($_GET['ZeitBereich'])) {
$ZeitBereich = $_GET['ZeitBereich'];
} else {
$ZeitBereich = 1;
$ZeitBereich = 0;
}
@ -103,7 +95,7 @@ if (isset($_GET['ZeitBereich'])) {
?>
<form method="post" action="AlleSchichten.php#Info">
<form method="post" action="AlleSchichten.php">
<?php
@ -112,24 +104,17 @@ if (isset($_GET['ZeitBereich'])) {
///////////////////////////////////////////////////////////
if (isset($_POST['plusschicht'])) {
$messages = [];
$SchichtId = $_POST['plusschicht'];
// Eingaben überprüfen:
// if(!preg_match('/^[a-zA-Z]+[a-zA-Z0-9._]+$/', $HelferName)) {
// $messages[] = 'Bitte prüfen Sie die eingegebenen Namen';
// }
$SchichtID = $_POST['plusschicht'];
// Nutzer hat hier zuletzt etwas geändert und wir klappen das deshalb auf,
// indem wir unten target=active setzen
$_SESSION["SchichtIdAktiv"] = $SchichtID;
if (empty($messages)) {
// Helfer Schicht zuweisen
$db_erg = HelferSchichtZuweisen($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>';
@ -145,6 +130,8 @@ if (isset($_POST['minusschicht'])) {
$messages = [];
$SchichtID = $_POST['minusschicht'];
// Nutzer hat hier zuletzt etwas geaenndert und wir klappen das deshalb auf:
$_SESSION["SchichtIdAktiv"] = $SchichtID;
if (empty($messages)) {
// Helfer aus Schicht entfernen
@ -168,6 +155,7 @@ if (isset($_POST['minusschicht'])) {
// Zusammenfassung Eigener Schichten
$zeile = SchichtenSummeEinesHelfers($HelferID);
//"Mein Dienstplan"
echo '<table class="commontable"><tr class="header"><th onclick="window.location.href=\'MeineSchichten.php\'">';
echo '<img src="Bilder/PfeilRechts2.png" style="width:30px;height:30px;align:middle;">' . " Mein Dienstplan (";
echo $zeile['Anzahl'];
@ -205,90 +193,27 @@ if ($addschicht == '0') {
echo "<button name='addschicht' value='2'>Dienste</button></p>";
}
//echo "InfoAlleSchichtID ".$InfoAlleSchichtID;
if ($addschicht != '0') {
//$db_erg = AlleSchichten($db_link,$dienstsort);
//$db_erg = AlleSchichtenImZeitbereich($db_link,"2023-05-18 00:00:00","2023-05-19 00:00:00",$HelferLevel);
if ($ZeitBereich == 1) { // Alle
$db_erg = AlleSchichtenImZeitbereich("2000-05-18 00:00:00", "2200-05-19 00:00:00", $HelferLevel);
}
if ($ZeitBereich == 2) { // Davor
$db_erg = AlleSchichtenImZeitbereich("2000-05-18 00:00:00", "2023-05-18 00:00:00", $HelferLevel);
}
if ($ZeitBereich == 3) { // Do
$db_erg = AlleSchichtenImZeitbereich("2023-05-18 00:00:00", "2023-05-19 00:00:00", $HelferLevel);
}
if ($ZeitBereich == 4) { // Fr
$db_erg = AlleSchichtenImZeitbereich("2023-05-19 00:00:00", "2023-05-20 00:00:00", $HelferLevel);
}
if ($ZeitBereich == 5) { // Sa
$db_erg = AlleSchichtenImZeitbereich("2023-05-20 00:00:00", "2023-05-21 00:00:00", $HelferLevel);
}
if ($ZeitBereich == 6) { // So
$db_erg = AlleSchichtenImZeitbereich("2023-05-21 00:00:00", "2023-05-22 00:00:00", $HelferLevel);
}
if ($ZeitBereich == 7) { // Danach
$db_erg = AlleSchichtenImZeitbereich("2023-05-22 00:00:00", "2223-05-22 00:00:00", $HelferLevel);
}
echo '<table class="commontable">';
require('_zeitbereich.php');
$Bereich = AusgabeZeitbereichZeile($start_date, $ZeitBereich, $TageNamenDeutsch, "AlleSchichten.php");
$MeinVon = $Bereich['MeinVon'];
$MeinBis = $Bereich['MeinBis'];
$db_erg = AlleSchichtenImZeitbereich($MeinVon, $MeinBis, -1);
// fuer Anzahlanzeige in Ueberschrift
$iAlleSchichtenCount = AlleSchichtenCount();
$iBelegteSchichtenCount = AlleBelegteSchichtenCount();
echo '</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>";
echo '<table id="customers">';
// "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 "<th colspan='7'>Alle Schichten der Con (" . $iBelegteSchichtenCount . "/" . $iAlleSchichtenCount . ")</th></tr>";
/*
if ($dienstsort=='1')
{
echo "<th>". "Dienst" . "</th>";
}
else
{
echo "<th>". "Von" . "</th>";
}
*/
echo "<tr class='header'>"; // Zeitbereich tr
if ($ZeitBereich == 1) {
echo "<th style='width:100px; background-color:#0000FF' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=1\"'>" . "Alle" . "</th>";
} else {
echo "<th style='width:100px' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=1\"'>" . "Alle" . "</th>";
}
if ($ZeitBereich == 2) {
echo "<th style='width:100px; background-color:#0000FF' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=2\"'>" . "Davor" . "</th>";
} else {
echo "<th style='width:100px' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=2\"'>" . "Davor" . "</th>";
}
if ($ZeitBereich == 3) {
echo "<th style='width:50px; background-color:#0000FF' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=3\"'>" . "Do" . "</th>";
} else {
echo "<th style='width:50px' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=3\"'>" . "Do" . "</th>";
}
if ($ZeitBereich == 4) {
echo "<th style='width:50px; background-color:#0000FF' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=4\"'>" . "Fr" . "</th>";
} else {
echo "<th style='width:50px' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=4\"'>" . "Fr" . "</th>";
}
if ($ZeitBereich == 5) {
echo "<th style='width:50px; background-color:#0000FF' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=5\"'>" . "Sa" . "</th>";
} else {
echo "<th style='width:50px' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=5\"'>" . "Sa" . "</th>";
}
if ($ZeitBereich == 6) {
echo "<th style='width:50px; background-color:#0000FF' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=6\"'>" . "So" . "</th>";
} else {
echo "<th style='width:50px' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=6\"'>" . "So" . "</th>";
}
if ($ZeitBereich == 7) {
echo "<th style='width:100px; background-color:#0000FF' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=7\"'>" . "Danach" . "</th>";
} else {
echo "<th style='width:100px' onclick='window.location.href=\"AlleSchichten.php?ZeitBereich=7\"'>" . "Danach" . "</th>";
}
echo "</tr>"; //Zeitbereich tr
echo "</tr>";
$OldTag = "";
$OldWas = "";
@ -297,7 +222,8 @@ if ($addschicht != '0') {
//print_r($MeineDienste);
echo '</table>';
echo '<table id="customers">';
// Tabelle mit allen Diensten und Schichten
echo '<table class="commontable collapsible">';
foreach ($MeineDienste as $zeile) {
if ($dienstsort == '1') {
$Tag = $zeile['Tag'];
@ -312,7 +238,8 @@ if ($addschicht != '0') {
$Was = $zeile['Was'];
if ($Was != $OldWas) {
echo "<tr class='header'><th colspan='7' style='width:100%'>";
// + in <span> becomes - when rows are opened
echo "<tr class='header'><th colspan='7' style='width:100%'><span>+</span> ";
echo $Was;
echo "</th>";
/*
@ -348,6 +275,9 @@ if ($addschicht != '0') {
$rowstyle = 'dbinfo="SchichtID:' . $zeile['SchichtID'] . ';helferlvl:' . $HelferLevel . '" ';
$regtext = '';
}
if ($_SESSION["SchichtIdAktiv"] == $zeile['SchichtID']) {
$rowstyle = $rowstyle . " target='active' "; // dont collapse when the user did something
}
echo '<tr ' . $rowstyle . 'onclick="window.location.href=\'DetailsSchichten.php?InfoAlleSchichtID=' . $zeile['SchichtID'] . '#Info\';" >';
@ -362,8 +292,7 @@ if ($addschicht != '0') {
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>";
//echo "<td>$regtext</td>";
echo "&nbsp;&nbsp;<button width='120px' name='minusschicht' value='" . $zeile['SchichtID'] . "'>&ndash;</button> $regtext" . "</td>";
echo "</tr>\n";
}
echo "</table>";

138
html/Ausdrucke-alles.php Normal file
View File

@ -0,0 +1,138 @@
<?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();
require '_login.php';
?>
<!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)"/>
<link rel="stylesheet" href="css/style_print.css" media="print"/>
<meta name="viewport" content="width=480" />
</head>
<body>
<div style="width: 100%;">
<table class="commontable" >
<tr>
<th><button name="BackHelferdaten" value="1" onclick="window.location.href = 'Admin.php';"><b>&larrhk;</b></button> &nbsp; <b>Übersicht Dienst DAS 2023</b></th>
</tr>
</table>
<?php
echo '<table class="commontable" >';
$db_erg = GetDiensteChilds($db_link, 0);
while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
echo "<tr><th>";
echo $zeile["Was"];
echo "</th></tr>";
$db_erg2 = GetDiensteChilds($db_link, $zeile["DienstID"]);
while ($zeile = mysqli_fetch_array($db_erg2, MYSQLI_ASSOC)) {
echo "<tr><td>";
echo $zeile["Was"];
echo "</td></tr>";
}
}
echo "</table>";
$db_erg = AlleSchichtenImZeitbereich($db_link, "2000-05-18 00:00:00", "2200-05-19 00:00:00");
$OldWas = "";
echo "<br><br><table class='commontable' style='page-break-before:always'>";
?>
<tr>
<th><button name="BackHelferdaten" value="1" onclick="window.location.href = 'Admin.php';"><b>&larrhk;</b></button> &nbsp; <b>Übersicht Schichten der Dienste DAS 2023</b></th>
</tr>
<?php
while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
$Was = $zeile["Was"];
if ($Was != $OldWas) {
echo "</table>";
//echo '<table class="commontable" style="page-break-before:always">';
echo '<table class="commontable">';
echo "<tr><th colspan=3>";
echo $Was;
echo "</th></tr>";
$OldWas = $Was;
}
echo "<tr><td style='width:100px'>";
echo $zeile["Ab"];
echo "</td><td style='width:100px'>";
echo $zeile["Bis"];
echo "</td><td>";
$db_erg2 = BeteiligteHelfer($db_link, $zeile["SchichtID"]);
while ($zeile = mysqli_fetch_array($db_erg2, MYSQLI_ASSOC)) {
echo $zeile["Name"];
echo " ";
echo $zeile["Handy"];
echo ",";
}
echo "</td></tr>";
}
echo "</table>";
$OldHelferName = "";
echo "<br><br><table class='commontable' style='page-break-before:always'>";
?>
<tr>
<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);
while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
$HelferName = $zeile["Name"];
if ($HelferName != $OldHelferName) {
echo "</table>";
//echo '<table class="commontable" style="page-break-before:always">';
echo '<table class="commontable">';
echo "<tr><th colspan=3>";
echo $HelferName;
echo "</th></tr>";
$OldHelferName = $HelferName;
}
echo "<tr><td style='width:100px'>";
echo (int)$zeile["Dauer"];
echo "</td><td>";
echo $zeile["Was"];
echo "</td></tr>";
}
echo "</table>";
?>
<?php
mysqli_free_result($db_erg);
?>
</body>
</html>

View File

@ -1,150 +1,68 @@
<?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();
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>Admin Drop am See</title>
<title>Admin <?php echo EVENTNAME ?></title>
<link rel="stylesheet" href="css/style_common.css"/>
<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"/>
<meta name="viewport" content="width=480" />
</head>
<body>
<img src="Bilder/Info.jpeg" width="30px"> Die Ausdrucke sind noch im Aufbau. "Ausdrucke(alles)" versucht alles relevante aus der Datenbank auf einer Seite anzuzeigen, damit auch bei Ausfall der DB noch ein PDF/Ausdruck die Info hat. Ausdrucke Schichten(I) und (II) ist für Papier-Schichten für Teilnehmer mit Abreiss-Zettel gedacht und wurden von 2 Leuten zeitgleich für Tübingen geschrieben und muss noch vereinigt werden.
<hr>
<?php
$AliasHelferID = 0;
if (isset($_SESSION["AliasHelferID"])) {
$AliasHelferID = $_SESSION["AliasHelferID"];
}
if (isset($_POST["AliasHelferID"])) {
$AliasHelferID = $_POST["AliasHelferID"];
}
if ($AliasHelferID != 0) {
$_SESSION["AliasHelferID"] = $AliasHelferID;
}
$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%;">
<?php
SESSION_START();
require_once 'konfiguration.php';
require 'SQL.php';
$db_link = mysqli_connect(
MYSQL_HOST,
MYSQL_BENUTZER,
MYSQL_KENNWORT,
MYSQL_DATENBANK
);
DatenbankAufDeutsch();
require '_login.php';
?>
<table id="customers" >
<tr>
<th><button name="BackHelferdaten" value="1" onclick="window.location.href = 'Admin.php';"><b>&larrhk;</b></button> &nbsp; <b>Übersicht Dienst DAS 2023</b></th>
<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>
<tr onclick="window.location.href='Ausdrucke-alles.php';">
<td > <img src="Bilder/More.jpeg" style="width:30px;height:30px;"> <b>Ausdrucke(alles)</b> </td>
</tr>
<tr onclick="window.location.href='TeilnehmerSchichtenAusdruck.php';">
<td > <img src="Bilder/More.jpeg" style="width:30px;height:30px;"> <b>Ausdruck Schichten(I)</b> </td> </tr>
<tr onclick="window.location.href='TeilnehmerSchichtenAusdruck2.php';">
<td > <img src="Bilder/More.jpeg" style="width:30px;height:30px;"> <b>Ausdruck Schichten(II)</b> </td> </tr>
</table>
<?php
echo '<table id="customers" >';
$dienste = GetDiensteChilds(0);
foreach ($dienste as $zeile) {
echo "<tr><th>";
echo $zeile["Was"];
echo "</th></tr>";
$dienste = GetDiensteChilds($zeile["DienstID"]);
foreach ($dienste as $zeile) {
echo "<tr><td>";
echo $zeile["Was"];
echo "</td></tr>";
}
}
echo "</table>";
$db_erg = AlleSchichtenImZeitbereich("2000-05-18 00:00:00", "2200-05-19 00:00:00");
$OldWas = "";
echo "<br><br><table id='customers' style='page-break-before:always'>";
?>
<tr>
<th><button name="BackHelferdaten" value="1" onclick="window.location.href = 'Admin.php';"><b>&larrhk;</b></button> &nbsp; <b>Übersicht Schichten der Dienste DAS 2023</b></th>
</tr>
<?php
while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
$Was = $zeile["Was"];
if ($Was != $OldWas) {
echo "</table>";
//echo '<table id="customers" style="page-break-before:always">';
echo '<table id="customers">';
echo "<tr><th colspan=3>";
echo $Was;
echo "</th></tr>";
$OldWas = $Was;
}
echo "<tr><td style='width:100px'>";
echo $zeile["Ab"];
echo "</td><td style='width:100px'>";
echo $zeile["Bis"];
echo "</td><td>";
$helfer = BeteiligteHelfer($zeile["SchichtID"]);
foreach ($helfer as $zeile) {
echo $zeile["Name"];
echo " ";
echo $zeile["Handy"];
echo ",";
}
echo "</td></tr>";
}
echo "</table>";
$OldHelferName = "";
echo "<br><br><table id='customers' style='page-break-before:always'>";
?>
<tr>
<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();
foreach ($db_erg as $zeile) {
$HelferName = $zeile["Name"];
if ($HelferName != $OldHelferName) {
echo "</table>";
//echo '<table id="customers" style="page-break-before:always">';
echo '<table id="customers">';
echo "<tr><th colspan=3>";
echo $HelferName;
echo "</th></tr>";
$OldHelferName = $HelferName;
}
echo "<tr><td style='width:100px'>";
echo (int)$zeile["Dauer"];
echo "</td><td>";
echo $zeile["Was"];
echo "</td></tr>";
}
echo "</table>";
?>
<?php
mysqli_free_result($db_erg);
?>
<button class=back name="BackHelferdaten" value="1" onclick="window.location.href = 'Admin.php';"><b>&larrhk;</b></button>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

View File

@ -1,3 +1,11 @@
<?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();
?>
<!doctype html>
<html>
<head>
@ -12,18 +20,6 @@
<body>
<?php
SESSION_START();
//$HelferID = $_SESSION["HelferId"];
require_once 'konfiguration.php';
require 'SQL.php';
$db_link = mysqli_connect(
MYSQL_HOST,
MYSQL_BENUTZER,
MYSQL_KENNWORT,
MYSQL_DATENBANK
);
if (isset($_POST['sent'])) {
$messages = [];
@ -98,10 +94,10 @@ if (isset($_POST['sent'])) {
?>
<p>Hier k&ouml;nnen Sie sich selbst einen Account als Helfer anlegen.</p>
<p>Hier k&ouml;nnen Sie sich selbst einen Account als Helfer anlegen. Danach zum <a href="index.php">Login</a></p>
<form method="post">
<table id="customers">
<table class="commontable">
<tr>
<th>Helferdaten</th>
</tr>

View File

@ -1,10 +1,15 @@
<?php
// Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden
require_once 'konfiguration.php';
SESSION_START();
?>
<!doctype html>
<html>
<head></head>
<body>
<?php
require_once 'konfiguration.php';
if (isset($_GET['token'])) {
// E-Mail-Adresse des Nutzers

156
html/DetailsSchichten.php Normal file
View File

@ -0,0 +1,156 @@
<?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();
require '_login.php';
?>
<!doctype html>
<html>
<head>
<title>Helfer <?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)"/>
<meta name="viewport" content="width=480" />
</head>
<body>
<div style="width: 100%;">
<?php
/// Detailinformation zu ausgewaehlten Schicht Holen
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++;
}
}
$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">
<?php
/// Ausgabe auf Deutsch umstellen
/////////////////////////////////////////////////////////////////////////
DatenbankAufDeutsch($db_link);
/// Alle Schichten Des Helfers Anzeigen
////////////////////////////////////////////////////////
echo '<table class="commontable">';
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);
while ($x < $arrayLength) {
echo "ID:" . $MitHelferID[$x] . ", ";
echo $MitHelfer[$x] . ", ";
echo $MitHelferHandy[$x] . "<br>";
$x++;
}
echo "</td></tr>\n";
echo "</table>";
mysqli_free_result($db_erg);
?>
</form>
</div>
</body>
</html>

View File

@ -1,7 +1,7 @@
<?php
// Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden
SESSION_START();
require_once 'konfiguration.php';
SESSION_START();
require 'SQL.php';
$db_link = ConnectDB();
require '_login.php';
@ -47,7 +47,7 @@ if (isset($_POST['helfer-status'])) {
// nicht sicher, wo so ein default-text herkommen sollte
// oder ob es tatsächlich einen geben sollte
$email_subject = "Drop am See beginnt bald!";
$email_subject = EVENTNAME . " beginnt bald!";
if (isset($_POST['email-subject'])) {
$email_subject = $_POST['email-subject'];
}
@ -68,7 +68,7 @@ XXtokenXX
Du kannst dich auch später wieder über den Link einloggen und die Schicht ändern.
Viele Grüße,
dein Drop am See Team
dein " . EVENTNAME . " Team
";
if (isset($_POST['email-text'])) {
@ -84,7 +84,7 @@ if (isset($_POST['sendmail'])) {
?>
<!doctype html>
<head>
<title>Helfer Drop am See: Email Tokens generieren</title>
<title>Helfer <?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)"/>

View File

@ -1,11 +1,16 @@
<?php
// Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden
require_once 'konfiguration.php';
SESSION_START();
?>
<!doctype html>
<html>
<head>
<title>Helfer Drop am See Home</title>
<title>Helfer <?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 require_once 'konfiguration.php';
echo INFORMATIONS_URL;?>" />
<meta http-equiv="Refresh" content="0; url=<?php echo INFORMATIONS_URL;?>" />
<meta name="viewport" content="width=480" />
</head>
<body>

View File

@ -1,3 +1,11 @@
<?php
require_once 'konfiguration.php';
SESSION_START();
require 'SQL.php';
$db_link = ConnectDB();
require '_login.php';
require '_zeitbereich.php';
?>
<!DOCTYPE html>
<html>
<head>
@ -7,6 +15,7 @@
<script src="scheduler/codebase/dhtmlxscheduler.js"></script>
<!--link href="scheduler/codebase/dhtmlxscheduler.css" rel="stylesheet" type="text/css" charset="utf-8"-->
<link href="scheduler/codebase/dhtmlxscheduler_contrast_black.css" rel="stylesheet" type="text/css" charset="utf-8">
<link rel="stylesheet" href="scheduler/samples/common/controls_styles.css">
<style>
html, body{
@ -24,23 +33,23 @@ border:none !important;
</style>
<!-- darkstyle
style type="text/css" >
.filters_wrapper {
.filters_wrapper {
background-color: black;
color: white;
font: 500 14px Roboto;
color: white;
font: 500 14px Roboto;
padding-left: 15px;
padding-right: 15px;
}
.filters_wrapper span {
}
.filters_wrapper span {
font-weight: bold;
padding-left: 15px;
padding-right: 15px;
color: rgba(0,0,0,0.7);
}
.filters_wrapper label {
color: rgba(0,0,0,0.7);
}
.filters_wrapper label {
padding-left: 15px;
padding-right: 15px;
}
}
</style-->
</head>
@ -56,28 +65,28 @@ Filtern: <input type="text" id="filterWrap">
</div>
<div id="scheduler_here" class="dhx_cal_container" style='width:100%; height:100%;'>
<div class="dhx_cal_navline">
<div class="dhx_cal_prev_button">&nbsp;</div>
<div class="dhx_cal_next_button">&nbsp;</div>
<div class="dhx_cal_today_button"></div>
<div class="dhx_cal_date"></div>
<div class="dhx_cal_tab" name="day_tab"></div>
<div class="dhx_cal_tab" name="week_tab"></div>
<div class="dhx_cal_tab" name="month_tab"></div>
<div class="dhx_cal_tab" data-tab="con" style="right:280px;"></div>
<div class="dhx_cal_tab" data-tab="prep" style="right:280px;" ></div>
<div class="dhx_cal_navline">
<div class="dhx_cal_prev_button">&nbsp;</div>
<div class="dhx_cal_next_button">&nbsp;</div>
<div class="dhx_cal_today_button"></div>
<div class="dhx_cal_date"></div>
<div class="dhx_cal_tab" name="day_tab"></div>
<div class="dhx_cal_tab" name="week_tab"></div>
<div class="dhx_cal_tab" name="month_tab"></div>
<div class="dhx_cal_tab" data-tab="con" style="right:280px;"></div>
<div class="dhx_cal_tab" data-tab="prep" style="right:280px;" ></div>
</div>
<div class="dhx_cal_header"></div>
<div class="dhx_cal_data"></div>
</div>
<script>
</div>
<div class="dhx_cal_header"></div>
<div class="dhx_cal_data"></div>
</div>
<script>
//https://docs.dhtmlx.com/scheduler/filtering.html
var filter = document.querySelector("#filterWrap");
filter.addEventListener("input", function(){
scheduler.setCurrentView();
})
})
scheduler.filter_month = scheduler.filter_day = scheduler.filter_week = scheduler.filter_con = scheduler.filter_prep = function(id, event) {
if(filter.value == ""){
return true;
@ -136,29 +145,30 @@ function colorize (e){ //KS
});
scheduler.config.full_day=false;
scheduler.config.readonly_form = true;
scheduler.config.xml_date="%Y-%m-%d %H:%i"; // deprecated but needed for database format
scheduler.config.first_hour = 0; // only show from this hour on
scheduler.config.first_hour = 7; // only show from this hour on
scheduler.config.last_hour = 24; // last hour
scheduler.setLoadMode("day"); // dynamic loading loads only current day if needed
scheduler.config.details_on_create=true; // ???
scheduler.config.details_on_dblclick=true;
scheduler.i18n.setLocale("de"); // german
scheduler.config.default_date="%l, %d %F"; // %l long day eg Montag,
//scheduler.config.readonly = true; // doesnt show lightbox if true so disabled
scheduler.config.readonly = true; // doesnt show lightbox if true so disabled
scheduler.locale.labels.con_tab = "4-Tage" // for custom time ranges
scheduler.locale.labels.prep_tab = "2-Tage"
scheduler.attachEvent("onTemplatesReady",function(){ // for custom time ranges
//Con timeslot
scheduler.date.con_start = function(date){return date;}; //new Date(202x,5,16);}; // calculates start-day of range from current day
scheduler.date.con_start = function(date){return date;};
scheduler.templates.con_date = scheduler.templates.week_date;
scheduler.templates.con_scale_date = scheduler.templates.week_scale_date;
scheduler.date.add_con=function(date,inc){ return scheduler.date.add(date,inc*4,"day"); }//"next" gives you the next 4 days
scheduler.date.get_con_end=function(date){ return scheduler.date.add(date,4,"day"); }
//preparation phase 2 days
function setprep(){scheduler.setCurrentView(new Date(2023,4,16));}
function setprep(){scheduler.setCurrentView(new Date(<?php echo KalenderDatum($start_date);?>));}
scheduler.date.prep_start = function(date){return date};
scheduler.templates.prep_date = scheduler.templates.week_date;
scheduler.templates.prep_scale_date = scheduler.templates.week_scale_date;
@ -176,7 +186,7 @@ function colorize (e){ //KS
scheduler.config.lightbox.sections=[
{name:"description", height:130, map_to:"text", type:"textarea" , focus:true},
{name:"Dienstbeschreibung", height:90, type:"textarea", map_to:"Info" },
{name:"Konakt", height:200, type:"textarea", map_to:"Kontakt" },
{name:"Kontakt", height:200, type:"textarea", map_to:"Kontakt" },
{name:"time", height:72, type:"time", map_to:"auto"}
];
@ -185,7 +195,7 @@ function colorize (e){ //KS
};
// actual init
scheduler.init('scheduler_here', new Date(2023,4,18), "con");
scheduler.init('scheduler_here', new Date(<?php echo KalenderDatum($start_date);?>), "con");
scheduler.load("data/api-full.php");
//https://docs.dhtmlx.com/scheduler/api__scheduler_createdataprocessor.html
//var dp = scheduler.createDataProcessor("data/api.php"); // this would be for saving

View File

@ -1,26 +1,38 @@
<?php
require_once 'konfiguration.php';
SESSION_START();
require 'SQL.php';
$db_link = ConnectDB();
require '_login.php';
require '_zeitbereich.php';
?>
<!DOCTYPE html>
<html>
<head>
<title> Helferdienste </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>
<!-- link href="scheduler/codebase/dhtmlxscheduler_contrast_black.css" rel="stylesheet" type="text/css" charset="utf-8"-->
<link href="scheduler/codebase/dhtmlxscheduler.css" rel="stylesheet" type="text/css" charset="utf-8">
<link rel="stylesheet" href="../scheduler/samples/common/controls_styles.css">
<style>
<title> Helferdienste </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>
<!--link href="scheduler/codebase/dhtmlxscheduler.css" rel="stylesheet" type="text/css" charset="utf-8"-->
<link href="scheduler/codebase/dhtmlxscheduler_contrast_black.css" rel="stylesheet" type="text/css" charset="utf-8">
<link rel="stylesheet" href="scheduler/samples/common/controls_styles.css">
<style>
html, body{
margin:0px;
padding:0px;
height:100%;
overflow:hidden;
}
html, body{
margin:0px;
padding:0px;
height:100%;
overflow:hidden;
}
.dhx_cal_event_line,.dhx_body,.dhx_cal_event .dhx_footer,.dhx_cal_event .dhx_header,.dhx_cal_event .dhx_title{
border:none !important;
border-radius:3px 3px 3px 3px !important;
}
.dhx_scale_holder {background-image: url('Bilder/calendar_lines1.png') !important; background-blend-mode:color-dodge;}
</style>
<!-- darkstyle
style type="text/css" >
</style>
<!-- darkstyle
style type="text/css" >
.filters_wrapper {
background-color: black;
color: white;
@ -38,18 +50,18 @@
padding-left: 15px;
padding-right: 15px;
}
</style-->
</style-->
</head>
<body>
<button name="BackHelferdaten" value="1" onclick="window.location.href = 'index.php';"><b>&larrhk;</b></button><br>
<div class="filters_wrapper" id="filters_wrapper">
&nbsp;
Mehrtagesdienste anzeigen: <input id="multidaycheck" class="sch_radio" type="checkbox" checked onchange="toggleMultiday(this)">
Einfärben: <input type="text" id="colorize"> <!--onchange="markEntries(this.value);" onpaste = "this.onchange();" onsubmit="markEntries(this.value);"-->
Filtern: <input type="text" id="filterWrap">
<br/>
Achtung: Ende Nachtdienste wird falsch angezeigt (immer Mitternacht) - Popup-Fenster zeigt richtige Zeiten
Mehrtagesdienste anzeigen: <input id="multidaycheck" class="sch_radio" type="checkbox" checked onchange="toggleMultiday(this)">
Einfärben: <input type="text" id="colorize"> <!--onchange="markEntries(this.value);" onpaste = "this.onchange();" onsubmit="markEntries(this.value);"-->
Filtern: <input type="text" id="filterWrap">
<br/>
<!--Achtung: Ende Nachtdienste wird falsch angezeigt (immer Mitternacht) - Popup-Fenster zeigt richtige Zeiten-->
</div>
<div id="scheduler_here" class="dhx_cal_container" style='width:100%; height:100%;'>
@ -133,29 +145,30 @@ function colorize (e){ //KS
});
scheduler.config.full_day=false;
scheduler.config.readonly_form = true;
scheduler.config.xml_date="%Y-%m-%d %H:%i"; // deprecated but needed for database format
scheduler.config.first_hour = 0; // only show from this hour on
scheduler.config.first_hour = 7; // only show from this hour on
scheduler.config.last_hour = 24; // last hour
scheduler.setLoadMode("day"); // dynamic loading loads only current day if needed
scheduler.config.details_on_create=true; // ???
scheduler.config.details_on_dblclick=true;
scheduler.i18n.setLocale("de"); // german
scheduler.config.default_date="%l, %d %F"; // %l long day eg Montag,
//scheduler.config.readonly = true; // doesnt show lightbox if true so disabled
scheduler.config.readonly = true; // doesnt show lightbox if true so disabled
scheduler.locale.labels.con_tab = "4-Tage" // for custom time ranges
scheduler.locale.labels.prep_tab = "2-Tage"
scheduler.attachEvent("onTemplatesReady",function(){ // for custom time ranges
//Con timeslot
scheduler.date.con_start = function(date){return date;}; //new Date(202,5,16);}; // calculates start-day of range from current day
scheduler.date.con_start = function(date){return date;};
scheduler.templates.con_date = scheduler.templates.week_date;
scheduler.templates.con_scale_date = scheduler.templates.week_scale_date;
scheduler.date.add_con=function(date,inc){ return scheduler.date.add(date,inc*4,"day"); }//"next" gives you the next 4 days
scheduler.date.get_con_end=function(date){ return scheduler.date.add(date,4,"day"); }
//preparation phase 2 days
function setprep(){scheduler.setCurrentView(new Date(2023,4,16));}
function setprep(){scheduler.setCurrentView(new Date(<?php echo KalenderDatum($start_date);?>));}
scheduler.date.prep_start = function(date){return date};
scheduler.templates.prep_date = scheduler.templates.week_date;
scheduler.templates.prep_scale_date = scheduler.templates.week_scale_date;
@ -173,7 +186,7 @@ function colorize (e){ //KS
scheduler.config.lightbox.sections=[
{name:"description", height:130, map_to:"text", type:"textarea" , focus:true},
{name:"Dienstbeschreibung", height:90, type:"textarea", map_to:"Info" },
{name:"Konakt", height:200, type:"textarea", map_to:"Kontakt" },
{name:"Kontakt", height:200, type:"textarea", map_to:"Kontakt" },
{name:"time", height:72, type:"time", map_to:"auto"}
];
@ -182,7 +195,7 @@ function colorize (e){ //KS
};
// actual init
scheduler.init('scheduler_here', new Date(2023,4,18), "con");
scheduler.init('scheduler_here', new Date(<?php echo KalenderDatum($start_date);?>), "con");
scheduler.load("data/api-helfer.php");
//https://docs.dhtmlx.com/scheduler/api__scheduler_createdataprocessor.html
//var dp = scheduler.createDataProcessor("data/api.php"); // this would be for saving

View File

@ -1,7 +1,16 @@
<?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();
require '_login.php';
?>
<!doctype html>
<html>
<head>
<title>Admin Drop am See</title>
<title>Meine Schichten <?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)"/>
@ -9,27 +18,10 @@
</head>
<body>
<button name="BackHelferdaten" value="1" onclick="window.location.href = 'index.php';"><b>&larrhk;</b></button>
<?php echo "<b>" . EVENTNAME . "</b>"; ?>
<div style="width: 100%;">
<?php
SESSION_START();
require_once 'konfiguration.php';
//require_once ('SQL.php');
require 'SQL.php';
$db_link = mysqli_connect(
MYSQL_HOST,
MYSQL_BENUTZER,
MYSQL_KENNWORT,
MYSQL_DATENBANK
);
/// Detailinformation zu ausgewaehlten Schicht Holen
////////////////////////////////////////////////////////
if (isset($_POST['CloseInfo'])) {
@ -266,13 +258,13 @@ $schichten = AlleSchichtenEinesHelfers($HelferID);
$iSQLCount = mysqli_num_rows($schichten);
//$iSQLCount = 3;
echo '<table id="customers">';
echo '<table class="commontable">';
echo "<thead>";
echo "<tr>";
echo "<th colspan=4>" . "Meine Schichten (" . $iSQLCount . " Schichten)</th>";
echo "<th colspan=4>" . "Meine Schichten (" . $iSQLCount . " Schichten) - " . EVENTNAME . "</th>";
echo "</tr><tr>";
echo "<th></th>";
echo "<th>Dienst</th>";
echo "<th style='width:180px'>" . "Von" . "</th>";
echo "<th style='width:180px'>" . "Bis" . "</th>";
echo "<th style='width:90px'>" . "Del" . "</th>";
@ -297,7 +289,7 @@ echo "<br><br>";
$iAlleSchichtenCount = AlleSchichtenCount();
$iBelegteSchichtenCount = AlleBelegteSchichtenCount();
echo '<table id="customers" onclick="window.location.href=\'AlleSchichten.php\'">';
echo '<table class="commontable" onclick="window.location.href=\'AlleSchichten.php\'">';
echo "<tr>";
echo "<th>" . '<img src="Bilder/PfeilRechts2.png" style="width:30px;height:30px;align:middle;">' . " Alle Schichten der Con (" . $iBelegteSchichtenCount . "/" . $iAlleSchichtenCount . ")</th>";
echo "</tr>";

View File

@ -1,3 +1,12 @@
<?php
// Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden
require_once 'konfiguration.php';
SESSION_START();
require_once 'SQL.php';
$db_link = ConnectDB();
require '_login.php';
?>
<!doctype html>
<html>
<head>
@ -7,26 +16,18 @@
<!--meta name="viewport" content="width=480" /-->
<?php
require_once 'konfiguration.php';
SESSION_START();
// if we are not logged in, we redirect in the header back to the main page
if (!isset($_SESSION["HelferID"]) || ! $_SESSION["HelferID"] > 0) {
echo ' <meta http-equiv="Refresh" content="0; URL=index.php" />
';
}
// print top of page if we are logged in and not redirecting
echo " </head> \n <body> \n";
echo '<button name="BackHelferdaten" value="1" onclick="window.location.href = \'index.php\';"><b>&larrhk;</b></button><br>' . "\n";
echo '<button name="BackHelferdaten" value="1" onclick="window.location.href = \'index.php\';"><b>&larrhk;</b></button>' . "\n";
echo "<b>" . EVENTNAME . "</b><br>";
echo '<H1> Helferdaten - Log </H1>';
echo '<p>Hier werden alle Aktionen, die einen Helfer betreffen aufgelistet</p>';
echo '<table id="customers">' . "\n";
echo '<table class="commontable">' . "\n";
//check for admin status
$HelferID = $_SESSION["HelferID"];
$AdminID = $_SESSION["AdminID"];
require 'SQL.php';
$db_link = mysqli_connect(MYSQL_HOST, MYSQL_BENUTZER, MYSQL_KENNWORT, MYSQL_DATENBANK);
DatenbankAufDeutsch();

View File

@ -247,9 +247,9 @@ function HelferdatenAendern($HelferName, $HelferEmail, $HelferHandy, $HelferNewP
//echo $sql;
echo "<li>Passwort geändert</li>";
if ($AdminID != 0) {
error_log(date('Y-m-d H:i') . "(Admin $AdminID) Helferdaten update: Name: $HelferName (HelferID:$HelferID) Email: $HelferEmail Handy: $HelferHandy Passwort: neu gesetzt\n", 3, LOGFILE);
error_log(date('Y-m-d H:i') . "(Admin $AdminID) Helferdaten update: Name: $HelferName (HelferID:$HelferID) Email: $HelferEmail Handy: $HelferHandy HelferLevel: $HelferLevel Passwort: neu gesetzt\n", 3, LOGFILE);
} else {
error_log(date('Y-m-d H:i') . "Helferdaten update: Name: $HelferName (HelferID:$HelferID) Email: $HelferEmail Handy: $HelferHandy Passwort: neu gesetzt\n", 3, LOGFILE);
error_log(date('Y-m-d H:i') . "Helferdaten update: Name: $HelferName (HelferID:$HelferID) Email: $HelferEmail Handy: $HelferHandy HelferLevel: $HelferLevel Passwort: neu gesetzt\n", 3, LOGFILE);
}
}
@ -303,6 +303,7 @@ function AlleBelegteSchichtenCount($HelferLevel = 1)
// ok ok
function AlleSchichtenImZeitbereich($Von, $Bis, $HelferLevel = 1)
{
error_log("AlleSchichtenImZeitbereich Abfrage: $Von, $Bis, $HelferLevel");
// SchichtID, Was, Ab, Bis, Ist, Tag, Soll - Ist und Soll sind die HelferStunden
$db = DB::getInstance();

View File

@ -0,0 +1,268 @@
<?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();
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>testAlle 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" />
</head>
<body>
<button name="BackHelferdaten" value="1" onclick="window.location.href = 'index.php';"><b>&larrhk;</b></button>
<!--h1> Alle Schichten Ausdruck</h1-->
<div style="width: 100%;">
<?php
/// Detailinformation zu ausgewaehlten Schicht Holen
////////////////////////////////////////////////////////
if (isset($_POST['CloseInfo'])) {
unset($InfoMeineSchichtID);
unset($InfoAlleSchichtID);
}
if (isset($_POST['InfoMeineSchichtID'])) {
$InfoMeineSchichtID = $_POST['InfoMeineSchichtID'];
unset($InfoAlleSchichtID);
//echo "<b>". $SchichtID . "</b><br>";
$zeile = DetailSchicht($db_link, $InfoMeineSchichtID);
$Was = $zeile['Was'];
$Wo = $zeile['Wo'];
$Dauer = $zeile['Dauer'];
$Leiter = $zeile['Name'];
$LeiterHandy = $zeile['Handy'];
$LeiterEmail = $zeile['Email'];
$Info = $zeile['Info'];
}
if (isset($_GET['InfoAlleSchichtID'])) {
$InfoAlleSchichtID = $_GET['InfoAlleSchichtID'];
unset($InfoMeineSchichtID);
//echo "<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['ZeitBereich'])) {
$ZeitBereich = $_GET['ZeitBereich'];
} else {
$ZeitBereich = 0;
}
// Helferliste Anzeigen
////////////////////////////////////////////////////////
?>
<?php
// Neu Schicht fuer Helfer Eintragen
///////////////////////////////////////////////////////////
if (isset($_POST['plusschicht'])) {
$messages = [];
$SchichtId = $_POST['plusschicht'];
// Eingaben überprüfen:
// if(!preg_match('/^[a-zA-Z]+[a-zA-Z0-9._]+$/', $HelferName)) {
// $messages[] = 'Bitte prüfen Sie die eingegebenen Namen';
// }
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>';
}
}
if (isset($_POST['minusschicht'])) {
// Mich aus Schicht entfernen
$messages = [];
$SchichtID = $_POST['minusschicht'];
if (empty($messages)) {
// Helfer aus Schicht entfernen
$db_erg = HelferVonSchichtLoeschen_SchichtID($db_link, $HelferID, $SchichtID);
} else {
// Fehlermeldungen ausgeben:
echo '<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);
/// Schichten Auswahl
////////////////////////////////////////////////////////
// fuer Anzahlanzeige in Ueberschrift
$iAlleSchichtenCount = AlleSchichtenCount($db_link);
$iBelegteSchichtenCount = AlleBelegteSchichtenCount($db_link);
//echo "<p><button name='addschicht' value='0'><b>&larrhk;</b></button></p>";
echo '<table class="commontable">';
echo "<tr class='header'>";
echo "<th colspan='7'>" . "Alle Schichten der Con (";
echo $iBelegteSchichtenCount . "/" . $iAlleSchichtenCount . ")</th></tr>";
require('_zeitbereich.php');
$Bereich = AusgabeZeitbereichZeile($start_date, $ZeitBereich, $TageNamenDeutsch, "TeilnehmerSchichtenAusdruck.php");
$MeinVon = $Bereich['MeinVon'];
$MeinBis = $Bereich['MeinBis'];
$db_erg = AlleSchichtenImZeitbereich($db_link, $MeinVon, $MeinBis, $HelferLevel);
//echo "<tr><th class=header> AlleSchichtenImZeitbereich(db_link,$Von,$Bis,$HelferLevel);</th></tr>"; // debug
$OldTag = "";
$OldWas = "";
// um Zeilen mit von mir belegten Schichten hervorzuheben
$MeineDienste = SchichtIdArrayEinesHelfers($db_link, $HelferID);
//print_r($MeineDienste);
echo "</table>\n";
// Table to print out the shifts for people to enter their name in.
// If a shift is already taken, the name is printed out.
// The table prints just one day, specified via Zeitbereich. The heading above wrote out the day.
// the table is sorted by shift type (Was) first and then by time (Ab).
// "Was" is printed in the middle together with two-letter day and time.
// the first and the 5th (last) column also contain two-letter day and time for people to tear off and take with them.
// the 2nd and 4th column are for the name.
// if the shift is already taken, the name is printed in, else the field is empty to write in.
// we iterate over all tasks (Was) and then over Ist and Soll for each task,
// filling one field for each Ist or Soll and filling in the name in Ist and leave it empty if it is Soll.
echo "<table class='commontable'>\n";
// $db_erg ist aus AlleSchichtenImZeitbereich
// und gibt zurueck Was, Ab, Bis, Ist, Tag, Soll - Ist und Soll sind die HelferStunden
$OldWas = "";
while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
$Tag = $zeile['Tag']; //this should be set above, because we only look at one day
$Ab = $zeile['Ab'];
$Bis = $zeile['Bis'];
$Ist = $zeile['Ist'];
$Soll = $zeile['Soll'];
$Was = $zeile['Was'];
$TagKurz = substr($Tag, 0, 2);
if (substr($Ab, 0, 2) == substr($Bis, 0, 2)) {
$Bis = substr($Bis, 2);
} // if start and end time are on the same day, we only print the end time
if ($Was != $OldWas) {
echo "<tr class='header'>";
echo "<th colspan=5 style='text-align:center'>$Was ($TagKurz)</th></tr>\n";
}
// get the people who are already signed up for this shift
$db_erg_helfer = BeteiligteHelfer($db_link, $zeile['SchichtID']);
// Wir geben zwei Helfer pro Zeile fuer die selbe Schicht aus
while ($Soll > 0) {
$Soll = $Soll - 1;
$HelferZeile = mysqli_fetch_array($db_erg_helfer, MYSQLI_ASSOC);
if (isset($HelferZeile['Name'])) {
$Helfername = $HelferZeile['Name'];
} else {
$Helfername = '';
}
echo "<tr><td>$Was <br>$Ab - $Bis </td>";
echo "<td>$Helfername</td>";
echo "<td>$Was <br>$Ab-$Bis</td>";
if ($Soll > 0) { // zweite Spalte nur ausgeben, wenn noch eine Schicht offen ist
$Soll = $Soll - 1;
$HelferZeile = mysqli_fetch_array($db_erg_helfer, MYSQLI_ASSOC); // get the next person
if (isset($HelferZeile['Name'])) {
$Helfername = $HelferZeile['Name'];
} else {
$Helfername = '';
}
echo "<td>$Helfername</td>";
echo "<td>$Was <br>$Ab-$Bis</td><tr>";
} else {//if there is no more shift to fill in, we fill the rest of the row with empty fields
echo "<td></td><td></td></tr>";
}
$OldWas = $Was;
}
}
echo "</table>\n";
// old table, remove later
mysqli_free_result($db_erg);
?>
<!--/form-->
</div>
</body>
</html>

View File

@ -0,0 +1,152 @@
<?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();
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>testAlle Helferschichten 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"/>
<meta name="viewport" content="width=480" />
</head>
<body>
<div style="width: 100%;">
<?php
setlocale(LC_ALL, 'de_DE.UTF-8') or die("Locale not installed");
$unixtime = strtotime('2023-09-15');
for ($day = 0; $day < 3; $day++) {
$datestring = date('Y-m-d', $unixtime + $day * 24 * 60 * 60);
echo "<h1>" . strftime('%A, %e. %B %Y', $unixtime + $day * 24 * 60 * 60) . "</h1>";
$db_erg = GetDiensteForDay($db_link, 2, $datestring);
while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
$db_erg2 = GetSchichtenForDienstForDay($db_link, $zeile["DienstId"], $datestring);
echo "<table id='customers'>";
echo "<tr><th colspan=3>" . $zeile["Was"] . "</th></tr>";
$schichten = 0;
$OldVon = 0;
$OldSoll = 0;
while ($zeile2 = mysqli_fetch_array($db_erg2, MYSQLI_ASSOC)) {
if ($zeile2["Von"] != $OldVon && $schichten != 0) {
while ($schichten < $OldSoll) {
$schichten++;
echo "<tr>";
echo "<td rowspan='3' style='width:0.1%; white-space:nowrap;' valign='top'><strong>" . $schichten . "/" . $OldSoll . "</strong> " . date('H:i', strtotime($OldVon)) . " - " . date('H:i', strtotime($OldBis)) . "</td>";
echo "<td rowspan='3' valign='top'></td>";
echo "<td width='50%'>" . strftime('%a %H:%M', strtotime($OldVon)) . " <strong>" . $zeile["Was"] . "</strong></td>";
echo "</tr>";
echo "<tr><td><i>" . $zeile["Wo"] . "</i></td></tr>";
echo "<tr><td>" . $zeile["Info"] . "</td></tr>";
echo "<tr height='10mm'></tr>";
}
$schichten = 0;
}
$schichten++;
echo "<tr>";
echo "<td rowspan='3' style='width:0.1%; white-space:nowrap;' valign='top'><strong>" . $schichten . "/" . $zeile2["Soll"] . "</strong> " . date('H:i', strtotime($zeile2["Von"])) . " - " . date('H:i', strtotime($zeile2["Bis"])) . "</td>";
echo "<td rowspan='3' valign='top'><strong>" . $zeile2["Name"] . "</strong> " . $zeile2["Handy"] . "</td>";
echo "<td width='50%'>" . strftime('%a %H:%M', strtotime($zeile2["Von"])) . " <strong>" . $zeile["Was"] . "</strong></td>";
echo "</tr>";
echo "<tr><td><i>" . $zeile["Wo"] . "</i></td></tr>";
echo "<tr><td>" . $zeile["Info"] . "</td></tr>";
echo "<tr height='10mm'></tr>";
$OldVon = $zeile2["Von"];
$OldBis = $zeile2["Bis"];
$OldSoll = $zeile2["Soll"];
if (empty($zeile2["Name"])) {
while ($schichten < $OldSoll) {
$schichten++;
echo "<tr>";
echo "<td rowspan='3' style='width:0.1%; white-space:nowrap;' valign='top'><strong>" . $schichten . "/" . $OldSoll . "</strong> " . date('H:i', strtotime($OldVon)) . " - " . date('H:i', strtotime($OldBis)) . "</td>";
echo "<td rowspan='3' valign='top'></td>";
echo "<td width='50%'>" . strftime('%a %H:%M', strtotime($OldVon)) . " <strong>" . $zeile["Was"] . "</strong></td>";
echo "</tr>";
echo "<tr><td><i>" . $zeile["Wo"] . "</i></td></tr>";
echo "<tr><td>" . $zeile["Info"] . "</td></tr>";
echo "<tr height='10mm'></tr>";
}
}
}
echo "</table>";
}
}
$unixtime = strtotime('2023-09-15');
for ($day = 0; $day < 3; $day++) {
$datestring = date('Y-m-d', $unixtime + $day * 24 * 60 * 60);
echo "<h1>" . strftime('%A, %e. %B %Y', $unixtime + $day * 24 * 60 * 60) . "</h1>";
$db_erg = GetDiensteForDay($db_link, 1, $datestring);
while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
$db_erg2 = GetSchichtenForDienstForDay($db_link, $zeile["DienstId"], $datestring);
echo "<table id='customers'>";
echo "<tr><th colspan=3>" . $zeile["Was"] . "</th></tr>";
$schichten = 0;
$OldVon = 0;
$OldSoll = 0;
while ($zeile2 = mysqli_fetch_array($db_erg2, MYSQLI_ASSOC)) {
if ($zeile2["Von"] != $OldVon && $schichten != 0) {
while ($schichten < $OldSoll) {
$schichten++;
echo "<tr>";
echo "<td rowspan='3' style='width:0.1%; white-space:nowrap;' valign='top'><strong>" . $schichten . "/" . $OldSoll . "</strong> " . date('H:i', strtotime($OldVon)) . " - " . date('H:i', strtotime($OldBis)) . "</td>";
echo "<td rowspan='3' valign='top'></td>";
echo "<td width='50%'>" . strftime('%a %H:%M', strtotime($OldVon)) . " <strong>" . $zeile["Was"] . "</strong></td>";
echo "</tr>";
echo "<tr><td><i>" . $zeile["Wo"] . "</i></td></tr>";
echo "<tr><td>" . $zeile["Info"] . "</td></tr>";
echo "<tr height='10mm'></tr>";
}
$schichten = 0;
}
$schichten++;
echo "<tr>";
echo "<td rowspan='3' style='width:0.1%; white-space:nowrap;' valign='top'><strong>" . $schichten . "/" . $zeile2["Soll"] . "</strong> " . date('H:i', strtotime($zeile2["Von"])) . " - " . date('H:i', strtotime($zeile2["Bis"])) . "</td>";
echo "<td rowspan='3' valign='top'><strong>" . $zeile2["Name"] . "</strong> " . $zeile2["Handy"] . "</td>";
echo "<td width='50%'>" . strftime('%a %H:%M', strtotime($zeile2["Von"])) . " <strong>" . $zeile["Was"] . "</strong></td>";
echo "</tr>";
echo "<tr><td><i>" . $zeile["Wo"] . "</i></td></tr>";
echo "<tr><td>" . $zeile["Info"] . "</td></tr>";
echo "<tr height='10mm'></tr>";
$OldVon = $zeile2["Von"];
$OldBis = $zeile2["Bis"];
$OldSoll = $zeile2["Soll"];
if (empty($zeile2["Name"])) {
while ($schichten < $OldSoll) {
$schichten++;
echo "<tr>";
echo "<td rowspan='3' style='width:0.1%; white-space:nowrap;' valign='top'><strong>" . $schichten . "/" . $OldSoll . "</strong> " . date('H:i', strtotime($OldVon)) . " - " . date('H:i', strtotime($OldBis)) . "</td>";
echo "<td rowspan='3' valign='top'></td>";
echo "<td width='50%'>" . strftime('%a %H:%M', strtotime($OldVon)) . " <strong>" . $zeile["Was"] . "</strong></td>";
echo "</tr>";
echo "<tr><td><i>" . $zeile["Wo"] . "</i></td></tr>";
echo "<tr><td>" . $zeile["Info"] . "</td></tr>";
echo "<tr height='10mm'></tr>";
}
}
}
echo "</table>";
}
}
?>
</body>
</html>

View File

@ -1,8 +1,7 @@
<?php
SESSION_START();
require_once 'konfiguration.php';
SESSION_START();
require 'SQL.php';
require '_crypt.php';
@ -10,13 +9,8 @@ require '_crypt.php';
$head = "<!doctype html>
<head></head> <body> ";
$foot = "</body></html>";
$db_link = ConnectDB();
$db_link = mysqli_connect(
MYSQL_HOST,
MYSQL_BENUTZER,
MYSQL_KENNWORT,
MYSQL_DATENBANK
);
// ist jetzt in _crypt.php, aber aus der anderen Datei, deshalb hier erst
// nur auskommentiert
// function Entschluessle($encrypted_data,$secret_verification,$secret_key){

View File

@ -1,7 +1,16 @@
<?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();
require '_login.php';
?>
<!doctype html>
<html>
<head>
<title>Drop am See Helferdaten ändern</title>
<title><?php echo EVENTNAME ?> Helferdaten ä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)"/>
@ -11,24 +20,10 @@
<?php
SESSION_START();
$HelferID = $_SESSION["HelferID"];
$AdminID = $_SESSION["AdminID"];
require_once 'konfiguration.php';
//require_once ('SQL.php');
require 'SQL.php';
$db_link = mysqli_connect(
MYSQL_HOST,
MYSQL_BENUTZER,
MYSQL_KENNWORT,
MYSQL_DATENBANK
);
/// Helferdaten Aendern
////////////////////////////////////////////////////////
@ -115,9 +110,9 @@ if (isset($_POST['login'])) {
<table id="customers">
<table class="commontable">
<tr>
<th><button name="BackHelferdaten" value="1" onclick="window.location.href = 'index.php';"><b>&larrhk;</b></button> Helferdaten</th>
<th><button name="BackHelferdaten" value="1" onclick="window.location.href = 'index.php';"><b>&larrhk;</b></button> Helferdaten <?php echo EVENTNAME; ?></th>
</tr>
<form method="post">
<tr>

View File

@ -1,4 +1,7 @@
<?php
require_once 'konfiguration.php';
require_once 'SQL.php';
/// Logout
////////////////////////////////////////////////////////
if (isset($_GET['logout']) || isset($_POST['logout'])) {
@ -39,6 +42,17 @@ if (isset($_POST['login'])) {
if (!isset($_SESSION["HelferID"])) {
?>
<!doctype html>
<html lang=de>
<head>
<title>Helfer <?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>
<meta name="viewport" content="width=480" />
<meta charset="utf-8">
</head>
<body>
<form method="post" action="#Info">
<fieldset>
@ -67,6 +81,8 @@ if (!isset($_SESSION["HelferID"])) {
</form>
</body>
</html>
<?php
exit;
}

70
html/_zeitbereich.php Normal file
View File

@ -0,0 +1,70 @@
<?php
function KalenderDatum($start_date)
{
$format = 'Y,m,d';
// the calender counts monts from 0 for whatever reason,
// so we have to subtract 1 from the month. Subtracting 1 month is not possible because it can wrap to december
$KalenderDatum = date_format($start_date, "Y");
$KalenerMonat = date_format($start_date, "m") - 1;
$KalenderDatum = "$KalenderDatum,$KalenerMonat," . date_format($start_date, "d");
return ($KalenderDatum );
}
function AusgabeZeitbereichZeile($start_date, $ZeitBereich, $TageNamenDeutsch, $SeitenName)
{
// SeitenName kann vom aufrufenden Script ueber pathinfo( __FILE__ )['filename'] gesetzt werden
// ZeitbereichWerte (array): -1 davor, 0 kein Limit, 1-N Tag N der Con, 1000: nach der Con
$ZeitBereichWerte = ZEITBEREICHWERTE;
$ZeitBereichFelder = count($ZeitBereichWerte);
$ZeitBereichFeldBreite = round(100 / $ZeitBereichFelder); // % width for style
$format = 'Y-m-d';
echo "\n<tr class='header'>\n"; // Zeitbereich tr
// iterate over all days plus "before" and "after"
// Wenn TAG_DAUER=4, dann sind die Werte 1-4 die Tage der Con
// ZeitBereichWerte = [-1, 0, 1, 2, 3, 4, 1000]
// -1: davor, 0: alle, 1-4: Tag 1-4, 1000: danach
foreach ($ZeitBereichWerte as &$EinZeitBereich) {
if ($EinZeitBereich > 0 && $EinZeitBereich <= TAGE_DAUER) {
$PlusTage = $EinZeitBereich - 1;
//TODO: only if locale DE
$day = $start_date->add(new DateInterval("P{$PlusTage}D"));
$Wochentag = $TageNamenDeutsch[date_format($day, 'w')];
$Text = "$Wochentag (Tag{$EinZeitBereich})";
$Von = date_format($day, $format) . " 00:00:00";
$Bis = date_format($day, $format) . " 23:59:59";
} elseif ($EinZeitBereich == -1) {
$Text = 'Davor';
$Von = "2000-01-01 00:00:00";
$Bis = date_format($start_date, $format) . " 00:00:00";
} elseif ($EinZeitBereich == 0) {
$Text = 'Alle' ;
$Von = "2000-01-01 00:00:00";
$Bis = "3000-01-01 00:00:00";
} elseif ($EinZeitBereich == 1000) {
$Text = 'Danach';
$tage_dauer = TAGE_DAUER;
$day = $start_date->add(new DateInterval("P{$tage_dauer}D"));
$Von = date_format($day, $format) . " 00:00:00";
$Bis = "3000-01-01 00:00:00";
}
// highlight the selected time range
if ($EinZeitBereich == $ZeitBereich) {
$color = 'background-color:#0000FF; ' ;
$MeinVon = $Von;
$MeinBis = $Bis;
} else {
$color = '';
}
// write the field for each day
echo "<th style='width:{$ZeitBereichFeldBreite}%; $color' ";
echo "onclick='window.location.href=\"{$SeitenName}?ZeitBereich={$EinZeitBereich}\";'>";
echo "$Text" . "</th>\n";
}
echo "</tr>"; //Zeitbereich tr
return [
'MeinVon' => $MeinVon,
'MeinBis' => $MeinBis
];
}

View File

@ -1,7 +1,14 @@
<?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';
require '_login.php';
?>
<!doctype html>
<html lang=de>
<head>
<title>Helfer Drop am See Home</title>
<title>Helfer <?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>
@ -9,49 +16,33 @@
<meta charset="utf-8">
</head>
<body>
<?php
SESSION_START();
require_once 'konfiguration.php';
require 'SQL.php';
$pdo = ConnectDB();
DatenbankAufDeutsch();
require '_login.php';
// wird von _login.php miterledigt
// TODO: hier wird HelferIsAdmin verwendet, woanders ist es AdminStatus
//$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%;">
<table id="customers" >
<table class="commontable" >
<tr onclick="window.location.href='Info.php';">
<th><img src="Bilder/Info.jpeg" style="width:30px;height:30px;"> &nbsp; <b>Drop am See 2023</b></th>
<th><img src="Bilder/Info.jpeg" style="width:30px;height:30px;"> &nbsp; <b><?php echo EVENTNAME ?></b></th>
</tr>
<tr onclick="window.location.href='Userdaten.php';">
<td > <img src="Bilder/PfeilRechts2.jpeg" style="width:30px;height:30px;">
<b>
<?php
echo "Helfer $HelferName";
if ($HelferIsAdmin) {
echo "Admin ";
} else {
echo "Helfer ";
echo " (Admin)";
}
echo $HelferName;
?>
</b> </td>
</tr>
<?php
if ($HelferIsAdmin) {
?>
<tr onclick="window.location.href='Admin.php';">
<td><img src="Bilder/PfeilRechts2.jpeg" style="width:30px;height:30px;"><b> Admin Menü</b></td>
</tr>
<?php
}
?>
<tr onclick="window.location.href='MeineSchichten.php';">
<td>
<img src="Bilder/PfeilRechts2.jpeg" style="width:30px;height:30px;"> <b>Nächste Helferschichten:</b>
@ -130,17 +121,6 @@ foreach ($schichten as $zeile) {
<td><img src="Bilder/PfeilRechts2.jpeg" style="width:30px;height:30px;"><b> Logs</b></td>
</tr>
<?php
if ($HelferIsAdmin) {
?>
<tr onclick="window.location.href='Admin.php';">
<td><img src="Bilder/PfeilRechts2.jpeg" style="width:30px;height:30px;"><b> Admin</b></td>
</tr>
<?php
}
?>
</tr>
<tr onclick="window.location.href='index.php?logout=1';">
<td><img src="Bilder/PfeilRechts2.jpeg" style="width:30px;height:30px;"><b> Logout</b></td>

View File

@ -8,6 +8,28 @@ function showPassword(id)
}
}
function setEndDate()
{
// js Date .toISOString automatically converts to UTC marking the string by "Z" at the end
// This is not understood by the browser when setting the value of the string
// UTC is 1h off resulting in a 1h wrong time if the Z is removed
// so we add the "Z" here, then remove it in the end
// this works for my local firefox. There should be a check if there already is a Z
// because maybe browsers also convert to UTC for the internal value
// but I guess in the worst case we have ZZ at the end and the js autofill fails
var checkBox = document.getElementById("Schicht-Automatic-Bis");
if (checkBox.checked == true) {
var start = new Date(document.getElementById("Schicht-Von").value + 'Z');
var delta = new Date("0000-01-01T" + document.getElementById("Schicht-Dauer").value);
var end = new Date(start);
var endHours = start.getHours() + delta.getHours();
end.setHours(endHours);
console.log("Schicht-Von: " + document.getElementById("Schicht-Von").value + 'Z' + " Schicht-Dauer: " + "0000-01-01T" + document.getElementById("Schicht-Dauer").value + "Schicht-Bis: " + end.toISOString().replace(/.000Z/,""));
end.setMinutes(start.getMinutes() + delta.getMinutes());
document.getElementById("Schicht-Bis").value = end.toISOString().replace(/.000Z/,"");
}
}
//// https://www.w3schools.com/howto/howto_js_collapsible.asp
//var coll = document.getElementsByClassName("collapsible");
//var i;
@ -30,16 +52,21 @@ function collapse_table_rows()
{
$(document).ready(
function () {
$('tr:not(.header)').hide();
$('tr.header').click(
// Unter-Zeilen in collapsible Tabellen verbergen
$('table.collapsible tr:not(.header)').hide();
// Zeile mit dem target="active" (von PHP nach submit gesetzt) und dazugehoerige Zeilen anzeigen
$('table.collapsible tr[target="active"]').prevUntil('tr.header').addBack().nextUntil('tr.header').addBack().show();
// id="active" als Anker auf letztes tr.header vor der target=active Seite setzen und dort hin springen
// damit der Nutzer nach Abschicken des Posts seine geoeffneten Optionen sieht
$('table.collapsible tr[target="active"]').prevAll('.header').first().attr('id', 'active');
location.href = '#active';
$('table.collapsible tr.header').click(
function () {
$(this).find('span').text(
function (_, value) {
return value == '-' ? '+' : '-'
}
);
$(this).nextUntil('tr.header').slideToggle(100, function () {});
}
);
@ -50,6 +77,5 @@ function collapse_table_rows()
function expand_all_table_rows()
{
$('tr:not(.header)').hide(); // make all collapsed so that slideToggle doesnt close opened ones
$('tr:not(.header)').slideToggle(100, function () {});
$('tr:not(.header)').show();
}

View File

@ -1,32 +1,7 @@
<?php
// datenbank-defines extern
require_once('../bengelsystem_konfiguration.php');
// die folgenden Zeilen ohne Kommentarzeichen nach ../etc/helferdb_konfiguration.php
// kopieren und an die eigene Datenbank anpassen
// define( 'MYSQL_HOST', 'localhost' );
// define( 'MYSQL_BENUTZER', 'benutzername_der_datenbank' );
// define( 'MYSQL_KENNWORT', 'passwort_des_db_nutzers' );
// define( 'MYSQL_DATENBANK', 'name_der_datenbank' );
// define( 'LOGFILE', "/pfad/zu/einer/www-schreibbaren/datei");
// define( VERANSTALTUNGSNAME, "dubbelcon");
// define( INFORMATIONS_URL, "http://drop-am-see.de/Gelaende");
// Geheimer Schlüssel für die Verschlüsselung von Tokens
// das ist das Passwort, mit dem sich aus den Tokens auch wieder der Username/Email extrahieren lässt
// $secret_key = "irgendwasZufaelliges";
// Geheimes Wort, das an die Email angehaengt wird, um zu ueberpruefen, dass die Addresse nicht abgeschnitten ist
// das Wort darf kein "|" enthalten, das wird als Trenner verwendet
// $secret_verification = "irgendwasanderes,istegalwas";
// urlprefix: https Addresse des php Scripts, das die Tokens empfaengt und einen Account anlegt
// volle URL, da sie u.a. per Email ersetzt wird
// $urlprefix="https://meinserver.de/2023dev/UrlLogin.php";
// create the file below from the template:
require_once __DIR__ . '/../bengelsystem_konfiguration.php';
// muss nicht angepasst werden // no changes needed
// Zeitbereich: -1 davor, 0 kein Limit, 1-N Tag N der Con, 1000: nach der Con