174 lines
6.9 KiB
PHP
174 lines
6.9 KiB
PHP
<?php
|
|
|
|
require_once 'konfiguration.php';
|
|
|
|
function PageHeader ($pagename, $eventname = EVENTNAME, $jquery = JQUERY){
|
|
$header = <<<HEADER
|
|
<!doctype html>
|
|
<html>
|
|
<head>
|
|
<title>$pagename $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)"/>
|
|
<meta name="viewport" content="width=480" />
|
|
<script src="$jquery" type="text/javascript"></script>
|
|
<script src="js/helferdb.js" type="text/javascript"></script>
|
|
<script> collapse_table_rows();</script>
|
|
</head>
|
|
<body>
|
|
HEADER; //<?vim this bracket is just here for vim syntax highlighting
|
|
return $header;
|
|
}
|
|
|
|
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
|
|
<div style="width: 100%;">
|
|
<table class="commontable">
|
|
<tr>
|
|
<th>
|
|
<a href='$backlink'> $backlinkTop
|
|
<button name="BackHelferdaten">
|
|
<b>↩</b>
|
|
</button>
|
|
</a>
|
|
<b>$pagename $eventname</b>
|
|
</th>
|
|
</tr>
|
|
</table>
|
|
TABLEHEAD; // <?vim
|
|
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ählen:<b>';
|
|
echo ' <form style="display:inline-block;" method=post>';
|
|
echo ' <select style="height:33px;width:350px;" name="AliasHelferID" id="AliasHelferID" onchange="submit()">';
|
|
$db_erg = HelferListe($db_link);
|
|
while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
|
|
if ($AliasHelferID != $zeile['HelferID']) {
|
|
echo "<option value='" . $zeile['HelferID'] . "'>" . $zeile['Name'] . "</optionen>";
|
|
} else {
|
|
echo "<option value='" . $zeile['HelferID'] . "' selected='selected'>" . $zeile['Name'] . "</optionen>";
|
|
}
|
|
}
|
|
echo '</select></form>';
|
|
}
|
|
|
|
function AlleSchichtenCheckPOST($db_link,$ZielHelferID,$AdminStatus,$AdminID) {
|
|
if (isset($_GET['helfer-level-anzeige'])) {
|
|
$_SESSION["HelferLevelAnzeige"] = $_GET['helfer-level-anzeige'];
|
|
}
|
|
|
|
// Wenn es ein Admin ist ZielHelferID AliasHelferID, sonst HelferID
|
|
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
|
// Neu Schicht fuer Helfer Eintragen
|
|
///////////////////////////////////////////////////////////
|
|
$messages = [];
|
|
if (isset($_POST['plusschicht'])) {
|
|
// Nutzer hat hier zuletzt etwas geändert und wir klappen das deshalb auf,
|
|
// indem wir unten target=active setzen
|
|
$_SESSION["SchichtIdAktiv"] = $SchichtID = $_POST['plusschicht'];
|
|
if (empty($messages)) {
|
|
// Helfer Schicht zuweisen
|
|
// wenn es ein Admin ist, die AdminID übergeben, ansonsten 0
|
|
// TODO: immer AdminID angeben, die Funktionen in SQL testen, ob ZielHelferID==AdminID
|
|
$db_erg = HelferSchichtZuweisen($db_link, $ZielHelferID, $SchichtID, $AdminStatus == 1 ? $AdminID : 0);
|
|
|
|
$HelferName = '';
|
|
$HelferEmail = '';
|
|
$HelferHandy = '';
|
|
} else {
|
|
// Fehlermeldungen ausgeben:
|
|
echo '<div class="error"><ul>';
|
|
foreach ($messages as $message) {
|
|
echo '<li>' . htmlspecialchars($message) . '</li>';
|
|
}
|
|
echo '</ul></div>';
|
|
exit;
|
|
}
|
|
}
|
|
// jeder soll sich alle HelferLevel anzeigen lassen koennen
|
|
if (isset($_POST['helfer-level-anzeige'])) {
|
|
$_SESSION["HelferLevelAnzeige"] = $_POST['helfer-level-anzeige'];
|
|
}
|
|
|
|
if (isset($_POST['minusschicht'])) {
|
|
// Mich aus Schicht entfernen
|
|
$messages = [];
|
|
// Nutzer hat hier zuletzt etwas geaendert und wir klappen das deshalb auf:
|
|
$_SESSION["SchichtIdAktiv"] = $SchichtID = $_POST['minusschicht'];
|
|
|
|
if (empty($messages)) {
|
|
// Helfer aus Schicht entfernen
|
|
$db_erg = HelferVonSchichtLoeschen_SchichtID($db_link, $ZielHelferID, $SchichtID, $AdminStatus == 1 ? $AdminID : 0);
|
|
} else {
|
|
// Fehlermeldungen ausgeben:
|
|
echo '<div class="error"><ul>';
|
|
foreach ($messages as $message) {
|
|
echo '<li>' . htmlspecialchars($message) . '</li>';
|
|
}
|
|
echo '</ul></div>';
|
|
exit;
|
|
}
|
|
}
|
|
// Wenn es ein Admin wird ZielHelferID AliasHelferID, sonst HelferID
|
|
if ($AdminStatus == 1 && isset($_POST['AliasHelferID'])){
|
|
$_SESSION["AliasHelferID"] = $AliasHelferID = $_POST['AliasHelferID'];
|
|
$db_erg = Helferdaten($db_link, $AliasHelferID);
|
|
while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
|
|
$AliasHelferName = $zeile['Name'];
|
|
}
|
|
$_SESSION["AliasHelferName"] = $AliasHelferName;
|
|
}
|
|
//$db_link->close();
|
|
header("Location: " . $_SERVER['PHP_SELF']);
|
|
}
|
|
}
|
|
|
|
function HelferLevelAuswahl($db_link,$HelferLevelAnzeige){
|
|
echo '<select style="width:200px" name="helfer-level-anzeige" onchange="submit()">';
|
|
$alleHelferLevel = alleHelferLevel($db_link);
|
|
foreach ($alleHelferLevel as $HelferLevelIteration => $HelferLevelBeschreibung) {
|
|
$selected = ($HelferLevelIteration == $HelferLevelAnzeige) ? "selected" : "" ;
|
|
echo "<option value='$HelferLevelIteration' $selected>$HelferLevelBeschreibung</option>";
|
|
}
|
|
echo '</select>';
|
|
return;
|
|
}
|
|
|