common header and consolidate (Admin|)AlleSchichten.php

This commit is contained in:
root 2025-07-07 19:44:54 +02:00
parent 22ca28520c
commit ec70210dbb
4 changed files with 83 additions and 139 deletions

View File

@ -7,6 +7,11 @@ require 'SQL.php';
$db_link = ConnectDB(); $db_link = ConnectDB();
// zeigt login-Seite an, wenn keine Session besteht // zeigt login-Seite an, wenn keine Session besteht
require '_login.php'; require '_login.php';
require_once '_functions.php';
$pagename = "Alle Schichten / Schichten hinzufügen"; // name of this page
$backlink = "AdminHelferUebersicht.php"; // back button in table header from table header
$header = PageHeader($pagename);
$tablehead = TableHeader($pagename,$backlink);
// POST vor HTML Ausgabe // POST vor HTML Ausgabe
if ($_SERVER['REQUEST_METHOD'] === 'POST') { if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// Neu Schicht fuer Helfer Eintragen // Neu Schicht fuer Helfer Eintragen
@ -46,7 +51,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if (empty($messages)) { if (empty($messages)) {
// Helfer aus Schicht entfernen // Helfer aus Schicht entfernen
$db_erg = HelferVonSchichtLoeschen_SchichtID($db_link, $HelferID, $SchichtID, $AdminID); $db_erg = HelferVonSchichtLoeschen_SchichtID($db_link, $HelferID, $SchichtID, $AdminStatus == 1 ? $AdminID : 0);
} else { } else {
// Fehlermeldungen ausgeben: // Fehlermeldungen ausgeben:
echo '<div class="error"><ul>'; echo '<div class="error"><ul>';
@ -58,21 +63,19 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
} }
} }
header("Location: " . $_SERVER['PHP_SELF']); header("Location: " . $_SERVER['PHP_SELF']);
// Wenn es ein Admin ist HelferID AliasHelferID
if ($AdminStatus == 1){
if (isset($_POST['AliasHelferID'])) {
$HelferID = $_POST['AliasHelferID'];
} elseif (isset($_SESSION["AliasHelferID"])) {
$HelferID = $_SESSION["AliasHelferID"];
// ansonsten bleibt es die HelferID des Admins
}
HelferAuswahlButton($db_link, $HelferID);
}
} }
echo $header;
?> ?>
<!doctype html>
<html>
<head>
<title><?php echo EVENTNAME ?> Alle Schichten</title>
<link rel="stylesheet" href="css/style_desktop.css" media="screen and (min-width:781px)"/>
<link rel="stylesheet" href="css/style_mobile.css" media="screen and (max-width:780px)"/>
<meta name="viewport" content="width=480" />
<script src="<?php echo JQUERY ?>" type="text/javascript"></script>
<script src="js/helferdb.js" type="text/javascript"></script>
<script> collapse_table_rows();
</script>
</head>
<body>
<a href="AdminHelferUebersicht.php"> <a href="AdminHelferUebersicht.php">
<button name="BackHelferdaten"> <button name="BackHelferdaten">
<b>&larrhk;</b> <b>&larrhk;</b>
@ -84,68 +87,8 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
/// Detailinformation zu ausgewaehlten Schicht Holen /// Detailinformation zu ausgewaehlten Schicht Holen
//////////////////////////////////////////////////////// ////////////////////////////////////////////////////////
function SchichtInfo($SchichtID, &$Was, &$Wo, &$Dauer, &$Leiter, &$LeiterHandy, &$LeiterEmail, &$Info)
{
$db_link = ConnectDB();
$zeile = DetailSchicht($db_link, $SchichtID);
if(!isset($zeile['Was'])){
//error_log("Zeile not set in Schichtinfo");
//error_log("called with: SchichtID $SchichtID $Was, $Wo, $Dauer, $Leiter, $LeiterHandy etc");
// Das ist vermutlich kein Fehler mehr, wenn wir den selben Account mehrfach auf die selbe Schicht lassen für Familien etc
}
$Was = $zeile['Was'];
$Wo = $zeile['Wo'];
$Dauer = $zeile['Dauer'];
$Leiter = $zeile['Name'];
$LeiterHandy = $zeile['Handy'];
$LeiterEmail = $zeile['Email'];
$Info = $zeile['Info'];
$db_link->close();
return;
}
// Auswahl Tag oberhalb der Dienstetabelle
if (isset($_GET['ZeitBereich'])) {
$ZeitBereich = $_GET['ZeitBereich'];
} else {
$ZeitBereich = 0;
}
function HelferAuswahlButton($db_link, $AliasHelferID)
{
echo '<b>Helfer w&auml;hlen:<b> <form style="display:inline-block;" method=post><select style="height:33px;width:350px;" name="AliasHelferID" id="AliasHelferID" onchange="submit()">';
$db_erg = HelferListe($db_link);
while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
if ($AliasHelferID != $zeile['HelferID']) {
echo "<option value='" . $zeile['HelferID'] . "'>" . $zeile['Name'] . "</optionen>";
} else {
echo "<option value='" . $zeile['HelferID'] . "' selected='selected'>" . $zeile['Name'] . "</optionen>";
}
}
echo '</select></form>';
}
// Wenn es ein Admin ist HelferID AliasHelferID
if ($AdminStatus == 1){
if (isset($_POST['AliasHelferID'])) {
$HelferID = $_POST['AliasHelferID'];
} elseif (isset($_SESSION["AliasHelferID"])) {
$HelferID = $_SESSION["AliasHelferID"];
// ansonsten bleibt es die HelferID des Admins
}
HelferAuswahlButton($db_link, $HelferID);
$_SESSION["AliasHelferID"] = $HelferID;
$AdminID = $_SESSION["AdminID"]; // wird beim Login gesetzt in SQL.php
}
$db_erg = Helferdaten($db_link, $HelferID);
while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
$HelferName = $zeile['Name'];
$HelferLevel = $zeile['HelferLevel'];
}
// Helferliste Anzeigen // Helferliste Anzeigen
//////////////////////////////////////////////////////// ////////////////////////////////////////////////////////
?> ?>
@ -155,7 +98,7 @@ if (isset($_POST['AliasHelferID'])) {
$db_erg = SchichtenSummeEinesHelfers($db_link, $HelferID); $db_erg = SchichtenSummeEinesHelfers($db_link, $HelferID);
$zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC); $zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC);
//"Dienstplan von" //"Dienstplan"
echo '<table class="commontable"><tr class="header"><th onclick="window.location.href=\'AdminMeineSchichten.php\'">'; 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 '<img src="Bilder/PfeilRechts2.png" style="width:30px;height:30px;align:middle;">' . "Dienstplan von $HelferName: ";
echo $zeile['Anzahl']; echo $zeile['Anzahl'];

View File

@ -7,6 +7,11 @@ require 'SQL.php';
$db_link = ConnectDB(); $db_link = ConnectDB();
// zeigt login-Seite an, wenn keine Session besteht // zeigt login-Seite an, wenn keine Session besteht
require '_login.php'; require '_login.php';
require_once '_functions.php';
$pagename = "Alle Schichten"; // name of this page
$backlink = "index.php"; // back button in table header from table header
$header = PageHeader($pagename);
$tablehead = TableHeader($pagename,$backlink);
// POST vor HTML Ausgabe // POST vor HTML Ausgabe
if ($_SERVER['REQUEST_METHOD'] === 'POST') { if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// Neu Schicht fuer Helfer Eintragen // Neu Schicht fuer Helfer Eintragen
@ -21,7 +26,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// Helfer Schicht zuweisen // Helfer Schicht zuweisen
// wenn es ein Admin ist, die AdminID übergeben, ansonsten 0 // wenn es ein Admin ist, die AdminID übergeben, ansonsten 0
// TODO: immer AdminID angeben, die Funktionen in SQL testen, ob HelferID==AdminID // TODO: immer AdminID angeben, die Funktionen in SQL testen, ob HelferID==AdminID
$db_erg = HelferSchichtZuweisen($db_link, $HelferID, $SchichtID); $db_erg = HelferSchichtZuweisen($db_link, $HelferID, $SchichtID, $AdminStatus == 1 ? $AdminID : 0);
$HelferName = ''; $HelferName = '';
$HelferEmail = ''; $HelferEmail = '';
@ -46,7 +51,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if (empty($messages)) { if (empty($messages)) {
// Helfer aus Schicht entfernen // Helfer aus Schicht entfernen
$db_erg = HelferVonSchichtLoeschen_SchichtID($db_link, $HelferID, $SchichtID); $db_erg = HelferVonSchichtLoeschen_SchichtID($db_link, $HelferID, $SchichtID, $AdminStatus == 1 ? $AdminID : 0);
} else { } else {
// Fehlermeldungen ausgeben: // Fehlermeldungen ausgeben:
echo '<div class="error"><ul>'; echo '<div class="error"><ul>';
@ -59,20 +64,8 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
} }
header("Location: " . $_SERVER['PHP_SELF']); header("Location: " . $_SERVER['PHP_SELF']);
} }
echo $header;
?> ?>
<!doctype html>
<html>
<head>
<title><?php echo EVENTNAME ?> Alle Schichten</title>
<link rel="stylesheet" href="css/style_desktop.css" media="screen and (min-width:781px)"/>
<link rel="stylesheet" href="css/style_mobile.css" media="screen and (max-width:780px)"/>
<meta name="viewport" content="width=480" />
<script src="<?php echo JQUERY ?>" type="text/javascript"></script>
<script src="js/helferdb.js" type="text/javascript"></script>
<script> collapse_table_rows();
</script>
</head>
<body>
<a href="index.php"> <a href="index.php">
<button name="BackHelferdaten"> <button name="BackHelferdaten">
<b>&larrhk;</b> <b>&larrhk;</b>
@ -84,35 +77,6 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
/// Detailinformation zu ausgewaehlten Schicht Holen /// Detailinformation zu ausgewaehlten Schicht Holen
//////////////////////////////////////////////////////// ////////////////////////////////////////////////////////
function SchichtInfo($SchichtID, &$Was, &$Wo, &$Dauer, &$Leiter, &$LeiterHandy, &$LeiterEmail, &$Info)
{
$db_link = ConnectDB();
$zeile = DetailSchicht($db_link, $SchichtID);
if(!isset($zeile['Was'])){
//error_log("Zeile not set in Schichtinfo");
//error_log("called with: SchichtID $SchichtID $Was, $Wo, $Dauer, $Leiter, $LeiterHandy etc");
// Das ist vermutlich kein Fehler mehr, wenn wir den selben Account mehrfach auf die selbe Schicht lassen für Familien etc
}
$Was = $zeile['Was'];
$Wo = $zeile['Wo'];
$Dauer = $zeile['Dauer'];
$Leiter = $zeile['Name'];
$LeiterHandy = $zeile['Handy'];
$LeiterEmail = $zeile['Email'];
$Info = $zeile['Info'];
$db_link->close();
return;
}
// Auswahl Tag oberhalb der Dienstetabelle
if (isset($_GET['ZeitBereich'])) {
$ZeitBereich = $_GET['ZeitBereich'];
} else {
$ZeitBereich = 0;
}
// Helferliste Anzeigen // Helferliste Anzeigen
//////////////////////////////////////////////////////// ////////////////////////////////////////////////////////
@ -125,7 +89,7 @@ if (isset($_GET['ZeitBereich'])) {
$db_erg = SchichtenSummeEinesHelfers($db_link, $HelferID); $db_erg = SchichtenSummeEinesHelfers($db_link, $HelferID);
$zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC); $zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC);
//"Mein Dienstplan" //"Dienstplan"
echo '<table class="commontable"><tr class="header"><th onclick="window.location.href=\'MeineSchichten.php\'">'; 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 '<img src="Bilder/PfeilRechts2.png" style="width:30px;height:30px;align:middle;">' . " Mein Dienstplan (";
echo $zeile['Anzahl']; echo $zeile['Anzahl'];

View File

@ -4,8 +4,11 @@ require_once 'konfiguration.php';
SESSION_START(); SESSION_START();
require 'SQL.php'; require 'SQL.php';
$db_link = ConnectDB(); $db_link = ConnectDB();
require '_login.php'; $pagename = "Einladungslinks generieren, optionaler Emailversand";
require '_crypt.php'; $backlink = "Admin.php";
require_once '_login.php';
require_once '_crypt.php';
require_once '_functions.php';
if ($AdminStatus != 1) { if ($AdminStatus != 1) {
//Seite nur fuer Admins. Weiter zu index.php und exit, wenn kein Admin //Seite nur fuer Admins. Weiter zu index.php und exit, wenn kein Admin
@ -93,26 +96,13 @@ if (isset($_POST['sendmail'])) {
$sendmail = $_POST['sendmail']; $sendmail = $_POST['sendmail'];
} }
echo PageHeader ($pagename);
?> echo TableHeader ($pagename, $backlink);
<!doctype html>
<head>
<title><?php echo EVENTNAME ?>: Email Tokens generieren</title>
<link rel="stylesheet" href="css/style_desktop.css" media="screen and (min-width:781px)"/>
<link rel="stylesheet" href="css/style_mobile.css" media="screen and (max-width:780px)"/>
<meta name="viewport" content="width=480" />
</head>
<body>
<?php
?> ?>
<button name="BackHelferdaten" value="1" onclick="window.location.href = 'Admin.php';"><b>&larrhk;</b></button>
<div style="width: 100%;"> <div style="width: 100%;">
<p> <p>
<h2> Emails mit Login-Link zur HelferDB generieren </h2>
Generiert Tokens (bzw URLs mit Token) aus einer Liste von Email-Addressen. <br> Generiert Tokens (bzw URLs mit Token) aus einer Liste von Email-Addressen. <br>
Bei Klick auf den generierten Link wird sofort ein Account zur Email angelegt. <br> Bei Klick auf den generierten Link wird sofort ein Account zur Email angelegt. <br>
Als Passwort wird das Token gesetzt. Man kann sich mit dem Link danach wieder in den selben Account einloggen. Als Passwort wird das Token gesetzt. Man kann sich mit dem Link danach wieder in den selben Account einloggen.

View File

@ -17,13 +17,20 @@ function PageHeader ($pagename, $eventname = EVENTNAME){
HEADER; //<?vim this bracket is just here for vim syntax highlighting HEADER; //<?vim this bracket is just here for vim syntax highlighting
return $header; return $header;
} }
function TableHeader ($pagename, $backlink, $eventname = EVENTNAME){
function TableHeader ($pagename, $backlink, $eventname = EVENTNAME, $backlinkTop=""){
// pagename: name of the page for display in title
// backlink: to what page does the "back" link at the top of the page point
// eventname: fill from constant EVENTNAME. Change needed only for special cases;
// backlinkTop: if there are several levels to go back until the top, need to
// present a way to jump to the top. Maybe better as an array and then
// presenting a path-like structure to allow jumping to any level above?
$tablehead = <<<TABLEHEAD $tablehead = <<<TABLEHEAD
<div style="width: 100%;"> <div style="width: 100%;">
<table class="commontable"> <table class="commontable">
<tr> <tr>
<th> <th>
<a href='$backlink'> <a href='$backlink'> $backlinkTop
<button name="BackHelferdaten"> <button name="BackHelferdaten">
<b>&larrhk;</b> <b>&larrhk;</b>
</button> &nbsp; </button> &nbsp;
@ -35,5 +42,45 @@ function TableHeader ($pagename, $backlink, $eventname = EVENTNAME){
TABLEHEAD; // <?vim TABLEHEAD; // <?vim
return $tablehead; return $tablehead;
} }
// Aus *AlleSchichten.php
function SchichtInfo($SchichtID, &$Was, &$Wo, &$Dauer, &$Leiter, &$LeiterHandy, &$LeiterEmail, &$Info)
{
$db_link = ConnectDB();
$zeile = DetailSchicht($db_link, $SchichtID);
if(!isset($zeile['Was'])){
//error_log("Zeile not set in Schichtinfo");
//error_log("called with: SchichtID $SchichtID $Was, $Wo, $Dauer, $Leiter, $LeiterHandy etc");
// Das ist vermutlich kein Fehler mehr, wenn wir den selben Account mehrfach auf die selbe Schicht lassen für Familien etc
}
$Was = $zeile['Was'];
$Wo = $zeile['Wo'];
$Dauer = $zeile['Dauer'];
$Leiter = $zeile['Name'];
$LeiterHandy = $zeile['Handy'];
$LeiterEmail = $zeile['Email'];
$Info = $zeile['Info'];
$db_link->close();
return;
}
// Auswahl Tag oberhalb der Dienstetabelle
if (isset($_GET['ZeitBereich'])) {
$ZeitBereich = $_GET['ZeitBereich'];
} else {
$ZeitBereich = 0;
}
function HelferAuswahlButton($db_link, $AliasHelferID)
{
echo '<b>Helfer w&auml;hlen:<b> <form style="display:inline-block;" method=post><select style="height:33px;width:350px;" name="AliasHelferID" id="AliasHelferID" onchange="submit()">';
$db_erg = HelferListe($db_link);
while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
if ($AliasHelferID != $zeile['HelferID']) {
echo "<option value='" . $zeile['HelferID'] . "'>" . $zeile['Name'] . "</optionen>";
} else {
echo "<option value='" . $zeile['HelferID'] . "' selected='selected'>" . $zeile['Name'] . "</optionen>";
}
}
echo '</select></form>';
}