Permalink
Cannot retrieve contributors at this time
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
timerec3public/ma-data-editor.php.old
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
549 lines (524 sloc)
25.4 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php session_start(); ?> | |
<!DOCTYPE html> | |
<html> | |
<head> | |
<meta charset="utf-8"> | |
<title>timerec | Mitarbeiter bearbeiten</title> | |
<link rel="stylesheet" type="text/css" href="style.css"> | |
<link rel="stylesheet" href="DatePickerX.min.css"> | |
<script src="DatePickerX.js"></script> | |
<script> | |
var open; | |
var firsttime = true; | |
function opentab(tab){ | |
if(firsttime){ | |
open = tab; | |
firsttime = false; | |
} | |
document.getElementById(open.value).style.display = 'none'; | |
open.style = 'background-color: none'; | |
document.getElementById(tab.value).style.display = 'block'; | |
tab.style = 'background-color: rgb(219, 233, 0)'; | |
open = tab; | |
} | |
function toggleReadOnly(id){ | |
var element = document.getElementById(id); | |
if(element.getAttribute('readonly')){ | |
element.removeAttribute('readonly'); | |
}else{ | |
element.setAttribute('readonly', 'true'); | |
} | |
} | |
function setname(){ | |
var nachname = document.getElementById('nachnamespan'); | |
var vorname = document.getElementById('vornamespan'); | |
var nachnamefeld = document.getElementById('nachnamefeld'); | |
var vornamefeld = document.getElementById('vornamefeld'); | |
nachname.innerHTML = nachnamefeld.value; | |
vorname.innerHTML = vornamefeld.value; | |
} | |
function loadrfidnames(){ | |
var button = document.getElementById("transponderbutton"); | |
var select = document.getElementById("transponder"); | |
button.innerHTML = "-"; | |
var stop = false; | |
//das alles nur, um die ersten paar zugewiesenen Transponder auf dem Button sehen zu können | |
for(i=0; i < select.childNodes.length; i++){ | |
if(select.childNodes[i].selected){ | |
button.innerHTML = button.innerHTML + select.childNodes[i].innerHTML + "; "; | |
if(button.innerHTML.length >= 24){ | |
button.innerHTML = button.innerHTML.slice(1, -2); | |
button.innerHTML = button.innerHTML + "[...]"; | |
stop = true; | |
break; | |
} | |
} | |
} | |
if(stop == false && button.innerHTML.length >= 2){ | |
button.innerHTML = button.innerHTML.slice(1, -2); | |
} | |
} | |
function checkmaID(maid){ | |
var xhr = new XMLHttpRequest(); | |
var result = document.getElementById('checkresult'); | |
var inputfield = document.getElementById('persnr'); | |
xhr.open('GET', 'checkmaid.php?check=' + maid); | |
xhr.onload = function() { | |
if (xhr.status === 200) { | |
var text = xhr.responseText.slice(1); | |
var state = xhr.responseText.slice(0, 1); | |
if(state == 1){ | |
result.className = 'light-green'; | |
result.innerHTML = text; | |
inputfield.setCustomValidity(''); | |
}else{ | |
result.className = 'red'; | |
result.innerHTML = text; | |
inputfield.setCustomValidity('schon belegt'); | |
} | |
} | |
else { | |
console.log(xhr.status); | |
} | |
}; | |
xhr.send(); | |
} | |
function maneu(){ | |
document.getElementById('maneu').innerHTML = 'hinzufügen'; | |
document.getElementsByName('selectaz')[0].style.display = 'none'; | |
document.getElementById('maneubutton').style.display = 'none'; | |
document.getElementById('ldap-button').style.display = 'inline-block'; | |
document.getElementById('nachnamefeld').placeholder = 'Name eingeben, dann Enter ⟶'; | |
document.getElementById('nachnamefeld').setAttribute("onKeyPress", 'document.getElementById("searchterm").value = this.value; onEnter(event)'); | |
document.getElementById('persnr').removeAttribute('readonly'); | |
document.getElementById('persnrhelp').style.display = 'none'; | |
for(input of document.getElementsByTagName('input')){ | |
if(input.type != 'checkbox'){ | |
input.value = ''; | |
}else{ | |
input.removeAttribute('checked'); | |
} | |
} | |
for(select of document.getElementsByTagName('select')){ | |
for(option of select){ | |
if(option.id != 'noUnselect'){ | |
option.removeAttribute('selected'); | |
} | |
} | |
} | |
document.getElementById('switchtonew').value = 'yes'; | |
var heute = new Date().toISOString(); | |
document.getElementById('delaydate').value = heute.slice(0, 10); | |
loadrfidnames(); | |
setname(); | |
} | |
function jumpToError(form){ | |
for(child of form.getElementsByTagName('input')){ | |
if(!child.checkValidity()) break; | |
} | |
var el = child; | |
var cls = "reiter"; | |
while((el = el.parentElement) && !el.classList.contains(cls)); | |
for(tabbutton of document.getElementById('reiterleiste').childNodes){ | |
if(tabbutton.value == el.id){ | |
opentab(tabbutton); | |
break; | |
} | |
} | |
return false; | |
} | |
function onEnter(event){ | |
var code = 0; | |
code = event.keyCode; | |
if (code==13) document.getElementById('ldap').submit(); | |
} | |
document.addEventListener("DOMContentLoaded", function(event) { | |
opentab(document.getElementById('first')); | |
loadrfidnames(); | |
setname(); | |
for(input of document.querySelectorAll('[type="date"]')){ | |
input.DatePickerX.init({ | |
// options here | |
format : 'yyyy-mm-dd', | |
weekDayLabels : ['Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa', 'So'], | |
shortMonthLabels : ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'], | |
singleMonthLabels: ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'], | |
todayButtonLabel : 'Heute', | |
clearButton: true, | |
clearButtonLabel: 'Leeren' | |
}); | |
} | |
}); | |
</script> | |
</head> | |
<body> | |
<?php | |
//session_start(); | |
//generic stuff | |
//session_start 1. zeile! | |
if(!$_SESSION['userid']){ | |
session_destroy(); | |
include('login.php'); | |
exit; | |
} | |
if(!$_SESSION['userarray']['admin']){ | |
echo "<h3>keine Rechte, diese Seite einzusehen!</h3>"; | |
exit; | |
} | |
include('dbconnect.php'); | |
//submit | |
if(isset($_POST['persnr'])){ | |
$fail = false; | |
$weiter = false; | |
if($_POST['deletedate'] == ''){ | |
//dirty Hack um bei leerem Datum ''+NULL+'' (ergibt NULL) einzufügen statt '', was dann zu 0000-00-00 wird und Fehler verursacht | |
$_POST['deletedate'] = '\'+NULL+\''; | |
} | |
$dbc->query("start transaction;"); | |
//same for insert or update | |
//az_data | |
if(!$fail){ | |
if($_POST['new'] === 'no'){ | |
//bei bestehendem MA: check, ob änderungen im AZ gemacht wurden | |
$getolddata = $dbc->query("select * from az_data where maID = '$_POST[persnr]' order by datum_ab desc, azdID desc limit 1;"); | |
$olddata = $getolddata->fetch_assoc(); | |
foreach($olddata as $index=>$old){ | |
//fix comparison issue: convert 0 to empty | |
if($old === '0'){ | |
$olddata[$index] = ''; | |
} | |
} | |
if($olddata['mon'] != $_POST['mon'] || | |
$olddata['die'] != $_POST['die'] || | |
$olddata['mit'] != $_POST['mit'] || | |
$olddata['don'] != $_POST['don'] || | |
$olddata['fre'] != $_POST['fre'] || | |
$olddata['sam'] != $_POST['sam'] || | |
$olddata['son'] != $_POST['son'] || | |
$olddata['azstart'] != $_POST['azstart'].":00" || | |
$olddata['azende'] != $_POST['azende'].":00" || | |
$olddata['kz1start'] != $_POST['kz1start'].":00" || | |
$olddata['kz1ende'] != $_POST['kz1ende'].":00" || | |
$olddata['kz2start'] != $_POST['kz2start'].":00" || | |
$olddata['kz2ende'] != $_POST['kz2ende'].":00" || | |
$olddata['pause'] != $_POST['pause'].":00" || | |
$olddata['pauseab'] != $_POST['pauseab'].":00" || | |
$olddata['wochenarbeit'] != $_POST['wochenarbeit'] || | |
$olddata['jahresurlaub'] != $_POST['jahresanspruch'] | |
){ | |
//nur neue AZ zeile einfügen, wenn änderungen gemacht wurden | |
$weiter = true; | |
}elseif($olddata['datum_ab'] != $_POST['delaydate']){ | |
//keine daten geändert, nur das gültigkeitsdatum? -> bestehende zeile updaten statt neuschreiben | |
//-> verschiebung auf späteres Datum möglich | |
//bsp: falsch eingetragen ab 01.01. -> änderung auf 02.01. -> bei neuer zeile würde keine änderung eintreten, | |
// da die erste zeile am 01.01. wirkt. | |
$updatedate = "update az_data set datum_ab = '$_POST[delaydate]' where azdID = '$olddata[azdID]';"; | |
//echo $updatedate."<br>"; | |
$dbc->query($updatedate); | |
if($dbc->error){ | |
$fail = true; | |
echo "<h3 class='red'>UPDATE ERROR @ az_data datum_ab: ".$dbc->error."</h3>"; | |
$dbc->query('rollback;'); | |
} | |
} | |
}else{ | |
//bei neuem MA: immer neue AZ Zeile erzeugen | |
$weiter = true; | |
} | |
if($weiter){ | |
$insert = "insert into az_data values | |
(NULL, '$_POST[delaydate]', '$_POST[persnr]', '$_POST[mon]', '$_POST[die]', '$_POST[mit]', | |
'$_POST[don]', '$_POST[fre]', '$_POST[sam]', '$_POST[son]', '$_POST[azstart]', | |
'$_POST[azende]', '$_POST[kz1start]', '$_POST[kz1ende]', '$_POST[kz2start]', '$_POST[kz2ende]', | |
'$_POST[pause]', '$_POST[pauseab]', '$_POST[wochenarbeit]', '$_POST[jahresanspruch]');"; | |
//echo $insert."<br>"; | |
$dbc->query($insert); | |
if($dbc->error){ | |
$fail = true; | |
echo "<h3 class='red'>INSERT ERROR @ az_data: ".$dbc->error."</h3>"; | |
$dbc->query('rollback;'); | |
} | |
} | |
} | |
//transponder | |
if(!$fail){ | |
$rfidlist = ""; | |
if(!empty($_POST['rfid'])){ | |
foreach($_POST['rfid'] as $rfid){ | |
$rfidlist .= "rfid = '$rfid' or "; | |
} | |
$rfidlist = substr($rfidlist, 0, -4); | |
$settransponder = "update transponder set maID='$_POST[persnr]' where maID is NULL and ($rfidlist);"; | |
//echo $settransponder."<br>"; | |
$dbc->query($settransponder); | |
if($dbc->error){ | |
$fail = true; | |
echo "<h3 class='red'>INSERT ERROR @ transponder: ".$dbc->error."</h3>"; | |
$dbc->query('rollback;'); | |
} | |
} | |
} | |
if($_POST['new'] === 'yes'){ | |
//new MA | |
//mitarbeiter | |
if(!$fail){ | |
$insert = "insert into mitarbeiter values | |
('$_POST[persnr]', '$_POST[nachname]', '$_POST[vorname]', | |
'$_POST[ag]', '$_POST[email]', '$_POST[gleitzeit]', '$_POST[userid]', | |
'$_POST[admin]', '$_POST[deletedate]');"; | |
//echo $insert."<br>"; | |
$dbc->query($insert); | |
if($dbc->error){ | |
$fail = true; | |
echo "<h3 class='red'>INSERT ERROR @ mitarbeiter: ".$dbc->error."</h3>"; | |
$dbc->query('rollback;'); | |
} | |
} | |
//urlaub | |
if(!$fail){ | |
if($_POST['restanspruch'] == ''){ | |
$restanspruch = $_POST['jahresanspruch']; | |
}else{ | |
$restanspruch = $_POST['restanspruch']; | |
} | |
$insert = "insert into urlaub values | |
(NULL, '$_POST[persnr]', year(curdate()), '$restanspruch')"; | |
//echo $insert."<br>"; | |
$dbc->query($insert); | |
if($dbc->error){ | |
$fail = true; | |
echo "<h3 class='red'>INSERT ERROR @ urlaub: ".$dbc->error."</h3>"; | |
$dbc->query('rollback;'); | |
} | |
} | |
}else{ | |
//update MA | |
//mitarbeiter | |
if(!$fail){ | |
$update = "update mitarbeiter set | |
nachname='$_POST[nachname]', vorname='$_POST[vorname]', | |
agID='$_POST[ag]', email='$_POST[email]', gleitzeit='$_POST[gleitzeit]', | |
admin='$_POST[admin]', ausgeschieden='$_POST[deletedate]' | |
where maID = '$_POST[persnr]';"; | |
echo $update."<br>"; | |
$dbc->query($update); | |
if($dbc->error){ | |
$fail = true; | |
echo "<h3 class='red'>UPDATE ERROR @ mitarbeiter: ".$dbc->error."</h3>"; | |
$dbc->query('rollback;'); | |
} | |
} | |
//urlaub | |
if(!$fail){ | |
if($_POST['restanspruch'] != ''){ | |
$update = "update urlaub set tage='$_POST[restanspruch]' where maID = '$_POST[persnr]' and jahr = year(curdate());"; | |
//echo $update."<br>"; | |
$dbc->query($update); | |
if($dbc->error){ | |
$fail = true; | |
echo "<h3 class='red'>INSERT ERROR @ urlaub: ".$dbc->error."</h3>"; | |
$dbc->query('rollback;'); | |
} | |
} | |
} | |
} | |
if(!$fail){ | |
$dbc->query("commit;"); | |
$_SESSION['matoload'] = $_POST['persnr']; | |
//header('Location: ma-data-editor.php?success=true'); | |
echo "<script>window.location = 'ma-data-editor.php?success=true'</script>"; //header funktionierte irgendwie nicht | |
exit; | |
}else{ | |
$dbc->query("rollback;"); | |
} | |
} | |
if($_GET['success'] === 'true'){ | |
echo "<h3 class='light-green'>Erfolgreich gespeichert!</h3>"; | |
$matoload = $_SESSION['matoload']; | |
unset($_SESSION['matoload']); | |
} | |
if(empty($matoload)) $matoload = $_SESSION['infoarray']['maID']; //wenn gerade submitted wurde, wird statt dem SESSION infoarray MA der neu angelegte geladen | |
//infoarray nochmal frisch holen, damit nach Änderungen direkt alles angezeigt wird. | |
$getactualinfoarray = $dbc->query("select * from mitarbeiter where maID = ".$matoload.";"); | |
$infoarray = $getactualinfoarray->fetch_assoc(); | |
//$infoarray = $_SESSION['infoarray']; | |
$maID = $infoarray['maID']; | |
$nachname = $infoarray['nachname']; | |
$vorname = $infoarray['vorname']; | |
$uid = $infoarray['userid']; | |
$getallag = $dbc->query('select ag_ID, name from ag order by name;'); | |
foreach($getallag as $ag){ | |
$aglist[] = $ag; | |
} | |
//AZ Data Selection | |
if($_POST['selectaz']){ | |
$dataselect = "and azdID = ".$_POST['selectaz']; | |
}else{ | |
$dataselect = ""; | |
} | |
$getazdata = $dbc->query("select * from az_data | |
where maID = '$maID' $dataselect | |
order by datum_ab desc, azdID desc limit 1;"); | |
$azdata = $getazdata->fetch_assoc(); | |
//routine für befüllen aus LDAP | |
if(isset($_POST['ldapresult']) && !$_POST['abort']){ | |
$ldap_data = explode(";", $_POST['ldapresult']); | |
$nachname = $ldap_data[0]; | |
$vorname = $ldap_data[1]; | |
$uid = $ldap_data[2]; | |
$mailaddr = $ldap_data[3]; //redundant? uid -> mailaddr | |
} | |
//debug | |
//print_r($_POST); | |
?> | |
<div id='content'> | |
<a href="index.php?ma=<?= $maID ?>"><button><< Menü</button></a> | |
<button id='maneubutton' class='topline' onclick='maneu()'>neuen Mitarbeiter anlegen</button> | |
<select form='selectaz' name='selectaz' class='select inputheight' onchange='this.form.submit();'> | |
<?php | |
$getazlist = $dbc->query("select azdID, date_format(datum_ab, '%d.%m.%Y') as datum_ab from az_data where maID = $maID order by datum_ab desc, azdID desc;"); | |
foreach($getazlist as $azentry){ | |
$selected = $azdata['azdID'] == $azentry['azdID'] ? "selected" : ""; | |
echo "<option $selected value='$azentry[azdID]'>($azentry[azdID]) $azentry[datum_ab]</option>"; | |
} | |
?> | |
</select> | |
<form id='selectaz' action='#' method='post'></form> | |
<form id='ldap' action='ldap.php' method='post'><input id='searchterm' type='hidden' name='search'></form> | |
<form id='centered_form' action='#' method='post' onkeypress='return event.keyCode != 13;'> | |
<input id='switchtonew' type='hidden' name='new' value='no'> | |
<h3>Mitarbeiter <span id='maneu'>bearbeiten</span> [ <span id='nachnamespan'></span>, <span id='vornamespan'></span> ]</h3> | |
<div id='reiterleiste'> | |
<button type='button' id='first' onclick='opentab(this)' form='' value='allgemein'>Allgemein</button> ⟶ | |
<button type='button' onclick='opentab(this)' form='' value='gleitzeit'>Gleitzeit</button> ⟶ | |
<button type='button' onclick='opentab(this)' form='' value='urlaub'>Urlaub</button> ⟶ | |
<button type='button' onclick='opentab(this)' form='' value='fertig'>Fertigstellen</button> | |
</div> | |
<div id='reiter'> | |
<div id='allgemein' class='reiter'> | |
<table> | |
<tr><th class='rechts'>UserID <span class='help' title='Der Benutzer kann zwar ohne UserID angelegt werden; ist dann allerdings nicht in der Lage, sich einzuloggen.'>(?)</span></th><td class='links'><input name='userid' id='useridfeld' value='<?= $uid ?>' type='text' required readonly placeholder='wird aus LDAP gelesen'></td></tr> | |
<tr><th class='rechts'>Nachname</th><td class='links'><input required onkeyup='setname()' name='nachname' value="<?= $nachname ?>" id='nachnamefeld' type='text'></td> | |
<td class='rechts'><button id='ldap-button' style='display: none' form='ldap' onclick='document.getElementById("searchterm").value = document.getElementById("nachnamefeld").value' type='submit' tabindex='-1'>LDAP-Suche</button></td></tr> | |
<tr><th class='rechts'>Vorname</th><td class='links'><input required onkeyup='setname()' name='vorname' value='<?= $vorname ?>' id='vornamefeld' type='text'></td></tr> | |
<tr><th class='rechts'>Personalnummer <span id='persnrhelp' class='help' title="Kann nicht nachträglich geändert werden, da Mitarbeiter anhand dieser Nummer im System verwaltet werden. Bei einer Änderung würden alle Verbindungen (Gesteckte Zeiten uvm.) verloren gehen.">(?)</span></th><td class='links'> | |
<input readonly required onkeyup='checkmaID(this.value);' id='persnr' name='persnr' value='<?= $maID ?>' type='number' pattern='[0-9]'><span id='checkresult'></span></td></tr> | |
<tr><th class='rechts'>AG</th><td class='links'><select name='ag' class='auswahl' size=1 onmousedown='this.size=10' onblur='this.size=1'> | |
<?php | |
echo "<option value=''> - </option>"; | |
foreach($aglist as $ag){ | |
$selected = $ag['ag_ID'] == $infoarray['agID'] ? 'selected' : ''; | |
echo "<option $selected value='$ag[ag_ID]'>$ag[name]</option>"; | |
} | |
?> | |
</select></td></tr> | |
<tr><th class='rechts'>Admin?</th><td class='links'><input class='hackbox' <?php echo $infoarray['admin'] ? 'checked' : '' ?> name='admin' id='admin' type='checkbox' value='1'><label for='admin'></label></td></tr> | |
<tr><th class='rechts'>deaktivieren ab <span class='help' title='Der Mitarbeiter wird am eingestellten Tag aus dem System entfernt. Es gehen dabei keine Daten verloren, er wird lediglich ausgeblendet.'>(?)</span></th> | |
<td class='links'><input name='deletedate' value="<?= $infoarray['ausgeschieden']?>" type='date' title='JJJJ-MM-DD' pattern='(?:19|20)[0-9]{2}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-9])|(?:(?!02)(?:0[1-9]|1[0-2])-(?:30))|(?:(?:0[13578]|1[02])-31))'></td> | |
</tr> | |
</table> | |
</div> | |
<div id='gleitzeit' class='reiter'> | |
<table> | |
<tr><th class='rechts'>Gleitzeit?</th><td class='links'><input class='hackbox' id='gleitzeitbox' onchange='document.getElementById("transponder").required=this.checked' <?php echo $infoarray['gleitzeit'] ? 'checked' : '' ?> name='gleitzeit' type='checkbox' value='1'><label for='gleitzeitbox'></label></td></tr> | |
<tr><td colspan=3><span class='trenner optional'>Gleitzeitoptionen</span></td></tr> | |
<tr><th class='rechts'>Arbeitstage</th><td class='links'> | |
<table><tr> | |
<th>Mo</th><th>Di</th><th>Mi</th><th>Do</th><th>Fr</th><th>Sa</th><th>So</th> | |
</tr><tr> | |
<td><input class='checkbox' id='mon' type='checkbox' name='mon' <?php echo $azdata['mon'] ? 'checked' : ''?> value='1'><label for='mon'></label></td> | |
<td><input class='checkbox' id='die' type='checkbox' name='die' <?php echo $azdata['die'] ? 'checked' : ''?> value='1'><label for='die'></label></td> | |
<td><input class='checkbox' id='mit' type='checkbox' name='mit' <?php echo $azdata['mit'] ? 'checked' : ''?> value='1'><label for='mit'></label></td> | |
<td><input class='checkbox' id='don' type='checkbox' name='don' <?php echo $azdata['don'] ? 'checked' : ''?> value='1'><label for='don'></label></td> | |
<td><input class='checkbox' id='fre' type='checkbox' name='fre' <?php echo $azdata['fre'] ? 'checked' : ''?> value='1'><label for='fre'></label></td> | |
<td><input class='checkbox' id='sam' type='checkbox' name='sam' <?php echo $azdata['sam'] ? 'checked' : ''?> value='1'><label for='sam'></label></td> | |
<td><input class='checkbox' id='son' type='checkbox' name='son' <?php echo $azdata['son'] ? 'checked' : ''?> value='1'><label for='son'></label></td> | |
</tr></table> | |
</td></tr> | |
<tr><th class='rechts'>Arbeitszeit</th><td class='links'><input name='azstart' type='time' pattern='(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9])' title='HH:MM' value='<?= substr($azdata["azstart"], 0, 5) ?>'></td><td class='links'> ⟶ <input name='azende' type='time' pattern='(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9])' title='HH:MM' value='<?= substr($azdata["azende"],0,5) ?>'></td></tr> | |
<tr><th class='rechts'>Kernzeit Vormittag</th><td class='links'><input name='kz1start' type='time' pattern='(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9])' title='HH:MM' value='<?= substr($azdata["kz1start"],0,5) ?>'></td><td class='links'> ⟶ <input name='kz1ende' type='time' pattern='(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9])' title='HH:MM' value='<?= substr($azdata["kz1ende"],0,5) ?>'></td></tr> | |
<tr><th class='rechts'>Kernzeit Nachmittag</th><td class='links'><input name='kz2start' type='time' pattern='(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9])' title='HH:MM' value='<?= substr($azdata["kz2start"],0,5) ?>'></td><td class='links'> ⟶ <input name='kz2ende' type='time' pattern='(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9])' title='HH:MM' value='<?= substr($azdata["kz2ende"],0,5) ?>'></td></tr> | |
<tr><th class='rechts'>Pausenlänge</th><td class='links'><input name='pause' type='time' pattern='(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9])' title='HH:MM' value='<?= substr($azdata["pause"],0,5) ?>'></td></tr> | |
<tr><th class='rechts'>Pause nach max.</th><td class='links'><input name='pauseab' type='time' pattern='(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9])' title='HH:MM' value='<?= substr($azdata["pauseab"],0,5) ?>'></td></tr> | |
<tr><th class='rechts'>Wochenarbeit</th><td class='links'><input name='wochenarbeit' type='number' value='<?= $azdata["wochenarbeit"] ?>' class='rechts'></td><td class='links'>min.</td></tr> | |
<tr><th class='rechts'>Transponder</th><td class='links'><div style='display: inline-block' id='transponderbutton' title='anklicken zum ändern' onclick="document.getElementById('transponder').className='auswahl nachoben'; document.getElementById('transponder').focus(); this.style='display: none'">.</div> | |
<select id='transponder' multiple size=10 onblur='loadrfidnames(); this.className="auswahl nachoben versteckt"; document.getElementById("transponderbutton").style="display: inline-block"' class='auswahl nachoben versteckt' name='rfid[]'> | |
<?php | |
if($_POST['ldapresult']){ | |
$onlyunused = 'where maID is NULL'; | |
$selectempty = 'selected'; | |
}else{ | |
$onlyunused = ''; | |
$selectempty = ''; | |
} | |
echo "<option id='noUnselect' $selectempty value=''> - </option>"; | |
$gettransponders = $dbc->query("select * from transponder $onlyunused order by name;"); | |
foreach($gettransponders as $transponder){ | |
$selected = $transponder['maID'] == $maID ? 'selected' : ''; | |
echo "<option $selected value='$transponder[rfid]'>$transponder[name]</option>"; | |
} | |
?> | |
</select> | |
</td></tr> | |
</table> | |
</div> | |
<div id='urlaub' class='reiter'> | |
<table> | |
<tr><th class='rechts'>Jahresanspruch</th><td class='links'><input name='jahresanspruch' value='<?= $azdata["jahresurlaub"]?>' type='number' class='rechts'> Tage</td></tr> | |
<tr><th class='rechts'>eMail-Ordner</th><td class='links'><select class='select' name='email'> | |
<?php | |
$urlaub = [ | |
"urlaub_ak", | |
"urlaub_lm", | |
"urlaub_nz" | |
]; | |
if($_POST['ldapresult'] && !$_POST['abort']){ | |
$noUnselect = 'noUnselect'; | |
}else{ | |
$noUnselect = ''; | |
} | |
foreach($urlaub as $auswahl){ | |
//email ordner automatisch anhand des nachnamens festlegen | |
$letters = range(substr($auswahl,-2,1), substr($auswahl,-1,1)); | |
echo "<script>console.log('".substr($auswahl,-2,1)."----".strtolower($nachname[0])."');</script>"; | |
if(in_array(strtolower($nachname[0]), $letters)){ | |
$selected = "selected"; | |
}else{ | |
$selected = ""; | |
} | |
echo "<option id='$noUnselect' $selected value='$auswahl'>$auswahl</option>"; | |
} | |
?> | |
</select> | |
</td></tr> | |
<tr><td colspan=2><span class='trenner optional'>optional: Urlaub für das laufende Jahr anpassen</span></td></tr> | |
<tr><th class='rechts'>Resturlaub</th><td class='links'><input name='restanspruch' type='number' class='rechts'> Tage</td></tr> | |
</table> | |
</div> | |
<div id='fertig' class='reiter'> | |
<table> | |
<tr><th class='rechts'><input class='checkbox' id='delaybox' onchange="toggleReadOnly(this.value)" value='delaydate' type='checkbox'><label for='delaybox'></label> Einstellungen gültig ab</th> | |
<td class='links'><input readonly='true' id='delaydate' name='delaydate' value='<?= $azdata["datum_ab"] ?>' type='date' title='JJJJ-MM-DD' pattern='(?:19|20)[0-9]{2}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-9])|(?:(?!02)(?:0[1-9]|1[0-2])-(?:30))|(?:(?:0[13578]|1[02])-31))'></td></tr> | |
<tr><th class='rechts'></th><td class='links'><button type='submit' onclick="if(!this.form.checkValidity()){return jumpToError(this.form);}; return confirm('Alle Daten korrekt?');">Speichern</button></td></tr> | |
</table> | |
</div> | |
</div> | |
</form> | |
</div> | |
</body> | |
<?php | |
if($_POST['ldapresult'] && !$_POST['abort']){ | |
echo "<script> | |
maneu(); | |
document.getElementById('useridfeld').value = '$uid'; | |
document.getElementById('nachnamefeld').value = '$nachname'; | |
document.getElementById('vornamefeld').value = '$vorname'; | |
</script>"; | |
}elseif($_POST['abort']){ | |
echo "<script> | |
maneu(); | |
</script>"; | |
} | |
?> | |
</html> |