mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 12:19:28 +00:00
d9caf746a1
- Inaktive und WaWi-Einträge ausgblenden - Kopie-Anmerkung verkürzt - Inaktive OE Kennzeichnen - Link ins CIS-Profil - Shortcut zum einfügen von Datum und Kürzel - "Mitarbeiter" ist default bei Benutzersuche - GUI-Verbesserungen bei Rollenvergleich
2042 lines
61 KiB
PHP
2042 lines
61 KiB
PHP
<?php
|
|
/* Copyright (C) 2006 Technikum-Wien
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as
|
|
* published by the Free Software Foundation; either version 2 of the
|
|
* License, or (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
*
|
|
* Authors: Christian Paminger < christian.paminger@technikum-wien.at >
|
|
* Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >
|
|
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
|
|
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
|
|
* Manfred Kindl <manfred.kindl@technikum-wien.at>
|
|
*/
|
|
/**
|
|
* Detailseite zum Zuweisen von Berechtigungen zu Benutzern
|
|
*/
|
|
require_once('../../config/vilesci.config.inc.php');
|
|
require_once('../../include/globals.inc.php');
|
|
require_once('../../include/functions.inc.php');
|
|
require_once('../../include/studiengang.class.php');
|
|
require_once('../../include/fachbereich.class.php');
|
|
require_once('../../include/benutzerberechtigung.class.php');
|
|
require_once('../../include/benutzerfunktion.class.php');
|
|
require_once('../../include/berechtigung.class.php');
|
|
require_once('../../include/studiensemester.class.php');
|
|
require_once('../../include/person.class.php');
|
|
require_once('../../include/benutzer.class.php');
|
|
require_once('../../include/funktion.class.php');
|
|
require_once('../../include/wawi_kostenstelle.class.php');
|
|
require_once('../../include/log.class.php');
|
|
require_once('../../include/mitarbeiter.class.php');
|
|
require_once('../../include/datum.class.php');
|
|
|
|
/*
|
|
* TODOs
|
|
*
|
|
|
|
Checkbox-Range
|
|
Mehrfach-Löschen
|
|
|
|
|
|
Wawi und kostenstelle ausblenden
|
|
Checkbox markieren bei (doppel)klick auf Zeile
|
|
|
|
----------------------
|
|
|
|
Nach übertragen gleich zu Person springen
|
|
Bug in Kopieren - Verdoppelt alle Einträge
|
|
Sortierreihenfolge. OE wird anscheinend nicht sortiert
|
|
ART prüfen auf schreibweise
|
|
BEschreibungstexte bestehender Rechte
|
|
|
|
*/
|
|
$user = get_uid();
|
|
$datum = new datum();
|
|
|
|
$rechte = new benutzerberechtigung();
|
|
$rechte->getBerechtigungen($user);
|
|
|
|
if (!$db = new basis_db())
|
|
die('Fehler beim öffnen der Datenbankverbindung');
|
|
|
|
if(!$rechte->isBerechtigt('basis/berechtigung'))
|
|
die($rechte->errormsg);
|
|
|
|
$mitarbeiter = new mitarbeiter($user);
|
|
$userKuerzel = $user;
|
|
if ($mitarbeiter->kurzbz != '')
|
|
{
|
|
$userKuerzel = $mitarbeiter->kurzbz;
|
|
}
|
|
|
|
//$reloadstr = ''; // neuladen der liste im oberen frame
|
|
$htmlstr = '';
|
|
$errorstr = '';
|
|
$successstr = '';
|
|
$sel = '';
|
|
$chk = '';
|
|
$oe_arr = array();
|
|
$rolle_arr = array();
|
|
$berechtigung_arr = array();
|
|
$st_arr = array();
|
|
$berechtigung_user_arr = array();
|
|
|
|
$benutzerberechtigung_id = '';
|
|
$art = '';
|
|
$oe_kurzbz = '';
|
|
$studiengang_kurzbz = '';
|
|
$berechtigung_kurzbz = '';
|
|
$uid = '';
|
|
$studiensemester_kz = '';
|
|
$start = '';
|
|
$ende = '';
|
|
$neu = false;
|
|
$negativ = false;
|
|
$filter=(isset($_GET['filter'])?$_GET['filter']:'alle');
|
|
|
|
if(isset($_POST['delete']) && $_POST['delete'] != '')
|
|
{
|
|
if(!$rechte->isBerechtigt('basis/berechtigung', null, 'suid'))
|
|
die($rechte->errormsg);
|
|
|
|
$benutzerberechtigung_id = $_POST['delete'];
|
|
|
|
$ber = new benutzerberechtigung();
|
|
if(!$ber->delete($benutzerberechtigung_id))
|
|
{
|
|
$errorstr .= 'Datensatz konnte nicht gelöscht werden!';
|
|
}
|
|
else
|
|
{
|
|
//Log schreiben
|
|
$log = new log();
|
|
|
|
$logdata = var_export((array) $ber, true);
|
|
$log->new = true;
|
|
$log->sql = $logdata;
|
|
$log->sqlundo = 'Kein Undo vorhanden';
|
|
$log->executetime = date('Y-m-d H:i:s');
|
|
$log->mitarbeiter_uid = $user;
|
|
$log->beschreibung = 'Berechtigung gelöscht';
|
|
|
|
if(!$log->save())
|
|
{
|
|
$errorstr .= "<span style='color: red'><b>Fehler beim schreiben des Log-Eintrags</b></span><br>";
|
|
}
|
|
}
|
|
|
|
//$reloadstr .= "<script type='text/javascript'>";
|
|
//$reloadstr .= " parent.uebersicht.location.href='benutzerberechtigung_uebersicht.php';";
|
|
//$reloadstr .= "</script>";
|
|
|
|
}
|
|
|
|
if(isset($_POST['delete_multi']) && $_POST['delete_multi'] != '')
|
|
{
|
|
if(!$rechte->isBerechtigt('basis/berechtigung', null, 'suid'))
|
|
die($rechte->errormsg);
|
|
|
|
if (isset($_POST['dataset']))
|
|
{
|
|
$i = 0;
|
|
foreach ($_POST['dataset'] AS $benutzerberechtigung_id => $value)
|
|
{
|
|
// Nur markierte Rechte kopieren
|
|
if (!isset($value['check']))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
$ber = new benutzerberechtigung();
|
|
if(!$ber->delete($benutzerberechtigung_id))
|
|
{
|
|
$errorstr .= 'Datensatz konnte nicht gelöscht werden!';
|
|
}
|
|
else
|
|
{
|
|
$i ++;
|
|
//Log schreiben
|
|
$log = new log();
|
|
|
|
$logdata = var_export((array) $ber, true);
|
|
$log->new = true;
|
|
$log->sql = $logdata;
|
|
$log->sqlundo = 'Kein Undo vorhanden';
|
|
$log->executetime = date('Y-m-d H:i:s');
|
|
$log->mitarbeiter_uid = $user;
|
|
$log->beschreibung = 'Berechtigung gelöscht';
|
|
|
|
if(!$log->save())
|
|
{
|
|
$errorstr .= "<span style='color: red'><b>Fehler beim schreiben des Log-Eintrags</b></span><br>";
|
|
}
|
|
}
|
|
}
|
|
if ($errorstr == '')
|
|
{
|
|
$successstr .= "<span style='color: green'><b>".$i." Rechte erfolgreich gelöscht</b></span><br>";
|
|
}
|
|
}
|
|
|
|
|
|
|
|
//$reloadstr .= "<script type='text/javascript'>";
|
|
//$reloadstr .= " parent.uebersicht.location.href='benutzerberechtigung_uebersicht.php';";
|
|
//$reloadstr .= "</script>";
|
|
|
|
}
|
|
|
|
if(isset($_POST['uebertragen']) && $_POST['uebertragen_nach'] != '')
|
|
{
|
|
//echo '<pre>', var_dump($_POST), '</pre>';exit();
|
|
if($rechte->isBerechtigt('basis/berechtigung', null, 'suid'))
|
|
{
|
|
$mitarbeiter = new mitarbeiter($_POST['uid']);
|
|
$uidVon = $_POST['uid'];
|
|
if ($mitarbeiter->kurzbz != '')
|
|
{
|
|
$uidVon = $mitarbeiter->kurzbz;
|
|
}
|
|
|
|
$copyTo = $_POST['uebertragen_nach'];
|
|
|
|
if (isset($_POST['dataset']))
|
|
{
|
|
$i = 0;
|
|
foreach ($_POST['dataset'] AS $key => $value)
|
|
{
|
|
// Nur markierte Rechte kopieren
|
|
if (!isset($value['check']))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
$rolle_kurzbz = (isset($value['rolle_kurzbz']) ? $value['rolle_kurzbz'] : '');
|
|
$berechtigung_kurzbz = (isset($value['berechtigung_kurzbz']) ? $value['berechtigung_kurzbz'] : '');
|
|
$art = (isset($value['art']) ? $value['art'] : '');
|
|
$oe_kurzbz = (isset($value['oe_kurzbz']) ? $value['oe_kurzbz'] : '');
|
|
$kostenstelle_id = (isset($value['kostenstelle_id']) ? $value['kostenstelle_id'] : '');
|
|
$start = (isset($value['start']) ? $value['start'] : '');
|
|
$ende = (isset($value['ende']) ? $value['ende'] : '');
|
|
$anmerkung = (isset($value['anmerkung']) ? $value['anmerkung'] : '');
|
|
|
|
$funktion_kurzbz = (isset($value['funktion_kurzbz']) ? $value['funktion_kurzbz'] : '');
|
|
$studiensemester_kurzbz = null;
|
|
|
|
$ber = new benutzerberechtigung();
|
|
$ber->insertamum = date('Y-m-d H:i:s');
|
|
$ber->insertvon = $user;
|
|
$ber->new = true;
|
|
|
|
if (isset($value['negativ']))
|
|
$ber->negativ = true;
|
|
else
|
|
$ber->negativ = false;
|
|
|
|
$ber->art = $art;
|
|
$ber->oe_kurzbz = $oe_kurzbz;
|
|
$ber->berechtigung_kurzbz = $berechtigung_kurzbz;
|
|
$ber->rolle_kurzbz = $rolle_kurzbz;
|
|
$ber->uid = $copyTo;
|
|
$ber->funktion_kurzbz = $funktion_kurzbz;
|
|
$ber->studiensemester_kurzbz = $studiensemester_kurzbz;
|
|
$ber->start = date('Y-m-d');
|
|
$ber->ende = $ende;
|
|
$ber->updateamum = date('Y-m-d H:i:s');
|
|
$ber->updatevon = $user;
|
|
$ber->kostenstelle_id = $kostenstelle_id;
|
|
$ber->anmerkung = 'Kp '.$uidVon.($anmerkung != '' ? ': '.$anmerkung : '');
|
|
|
|
if(!$ber->save())
|
|
{
|
|
$errorstr .= "Datensatz konnte nicht gespeichert werden!".$ber->errormsg;
|
|
}
|
|
else
|
|
{
|
|
$i ++;
|
|
//Log schreiben
|
|
$log = new log();
|
|
|
|
$logdata = var_export((array) $ber, true);
|
|
$log->new = true;
|
|
$log->sql = $logdata;
|
|
$log->sqlundo = 'Kein Undo vorhanden';
|
|
$log->executetime = date('Y-m-d H:i:s');
|
|
$log->mitarbeiter_uid = $user;
|
|
$log->beschreibung = 'Berechtigung übertragen von '.$uidVon.' nach '.$copyTo;
|
|
|
|
if(!$log->save())
|
|
{
|
|
$errorstr .= "<span style='color: red'><b>Fehler beim schreiben des Log-Eintrags</b></span><br>";
|
|
}
|
|
}
|
|
}
|
|
if ($errorstr == '')
|
|
{
|
|
$successstr .= "<span style='color: green'><b>".$i." Rechte erfolgreich kopiert</b></span><br>";
|
|
echo "<script>window.location.href='".$_SERVER['PHP_SELF']."?uid=$copyTo'</script>";
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$errorstr.= $rechte->errormsg;
|
|
}
|
|
}
|
|
|
|
if(isset($_POST['setDate_multi']) && $_POST['setDate_multi'] != '')
|
|
{
|
|
if(!$rechte->isBerechtigt('basis/berechtigung', null, 'suid'))
|
|
die($rechte->errormsg);
|
|
|
|
if (isset($_POST['dataset']))
|
|
{
|
|
$i = 0;
|
|
foreach ($_POST['dataset'] AS $benutzerberechtigung_id => $value)
|
|
{
|
|
// Nur markierte Einträge bearbeiten
|
|
if (!isset($value['check']))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
$ber = new benutzerberechtigung();
|
|
if(!$ber->load($benutzerberechtigung_id))
|
|
{
|
|
die('Fehler beim Laden der Berechtigung');
|
|
}
|
|
|
|
$ber->ende = date('Y-m-d',strtotime("-1 days"));
|
|
$ber->updateamum = date('Y-m-d H:i:s');
|
|
$ber->updatevon = $user;
|
|
|
|
if(!$ber->save())
|
|
{
|
|
$errorstr .= "Das Ende-Datum des Datensatzes mit der ID ".$benutzerberechtigung_id." konnte nicht gespeichert werden!".$ber->errormsg;
|
|
}
|
|
else
|
|
{
|
|
$i ++;
|
|
//Log schreiben
|
|
$log = new log();
|
|
|
|
$logdata = var_export((array) $ber, true);
|
|
$log->new = true;
|
|
$log->sql = $logdata;
|
|
$log->sqlundo = 'Kein Undo vorhanden';
|
|
$log->executetime = date('Y-m-d H:i:s');
|
|
$log->mitarbeiter_uid = $user;
|
|
$log->beschreibung = 'Berechtigung für '.$uid.' beendet';
|
|
|
|
if(!$log->save())
|
|
{
|
|
$errorstr .= "<span style='color: red'><b>Fehler beim schreiben des Log-Eintrags</b></span><br>";
|
|
}
|
|
}
|
|
}
|
|
if ($errorstr == '')
|
|
{
|
|
$successstr .= "<span style='color: green'><b>Ende-Datum bei ".$i." Rechten erfolgreich beendet</b></span><br>";
|
|
}
|
|
}
|
|
|
|
|
|
|
|
//$reloadstr .= "<script type='text/javascript'>";
|
|
//$reloadstr .= " parent.uebersicht.location.href='benutzerberechtigung_uebersicht.php';";
|
|
//$reloadstr .= "</script>";
|
|
|
|
}
|
|
|
|
if(isset($_POST['save_anmerkung_multi']) && $_POST['anmerkung_multi'] != '')
|
|
{
|
|
if(!$rechte->isBerechtigt('basis/berechtigung', null, 'su'))
|
|
die($rechte->errormsg);
|
|
|
|
$anmerkungNeu = $_POST['anmerkung_multi'];
|
|
|
|
if (isset($_POST['dataset']))
|
|
{
|
|
$i = 0;
|
|
foreach ($_POST['dataset'] AS $benutzerberechtigung_id => $value)
|
|
{
|
|
// Nur markierte Einträge bearbeiten
|
|
if (!isset($value['check']))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
$ber = new benutzerberechtigung();
|
|
if(!$ber->load($benutzerberechtigung_id))
|
|
{
|
|
die('Fehler beim Laden der Berechtigung');
|
|
}
|
|
|
|
// Bestehende Anmerkungen belassen und neue Ergänzen
|
|
if ($ber->anmerkung != '')
|
|
{
|
|
$ber->anmerkung = $ber->anmerkung.'; '.$anmerkungNeu;
|
|
}
|
|
else
|
|
{
|
|
$ber->anmerkung = $anmerkungNeu;
|
|
}
|
|
|
|
// Wenn Anmerkung länger als 256 Zeichen ist (DB-Beschränkung), String kürzen und Warnung ausgeben
|
|
if (strlen($ber->anmerkung) > 256)
|
|
{
|
|
$ber->anmerkung = cutString($ber->anmerkung, 256, '...');
|
|
$errorstr .= "<span style='color: red'><b>Die Anmerkung bei der ID ".$benutzerberechtigung_id." übersteigt die maximale Länge von 256 Zeichen und wurde nicht vollständig gespeichert</b></span><br>";
|
|
}
|
|
|
|
$ber->updateamum = date('Y-m-d H:i:s');
|
|
$ber->updatevon = $user;
|
|
|
|
if(!$ber->save())
|
|
{
|
|
$errorstr .= "Die Anmerkung des Datensatzes mit der ID ".$benutzerberechtigung_id." konnte nicht gespeichert werden!".$ber->errormsg;
|
|
}
|
|
else
|
|
{
|
|
$i ++;
|
|
//Log schreiben
|
|
$log = new log();
|
|
|
|
$logdata = var_export((array) $ber, true);
|
|
$log->new = true;
|
|
$log->sql = $logdata;
|
|
$log->sqlundo = 'Kein Undo vorhanden';
|
|
$log->executetime = date('Y-m-d H:i:s');
|
|
$log->mitarbeiter_uid = $user;
|
|
$log->beschreibung = 'Anmerkung bearbeitet';
|
|
|
|
if(!$log->save())
|
|
{
|
|
$errorstr .= "<span style='color: red'><b>Fehler beim schreiben des Log-Eintrags</b></span><br>";
|
|
}
|
|
}
|
|
}
|
|
if ($i > 0)
|
|
{
|
|
$successstr .= "<span style='color: green'><b>Anmerkung bei ".$i." Einträgen erfolgreich gespeichert</b></span><br>";
|
|
}
|
|
}
|
|
|
|
|
|
|
|
//$reloadstr .= "<script type='text/javascript'>";
|
|
//$reloadstr .= " parent.uebersicht.location.href='benutzerberechtigung_uebersicht.php';";
|
|
//$reloadstr .= "</script>";
|
|
|
|
}
|
|
|
|
if(isset($_POST['schick']))
|
|
{
|
|
if($rechte->isBerechtigt('basis/berechtigung', null, 'suid'))
|
|
{
|
|
if (isset($_POST['dataset']))
|
|
{
|
|
foreach ($_POST['dataset'] AS $benutzerberechtigung_id => $value)
|
|
{
|
|
$rolle_kurzbz = (isset($value['rolle_kurzbz']) ? $value['rolle_kurzbz'] : '');
|
|
$berechtigung_kurzbz = (isset($value['berechtigung_kurzbz']) ? $value['berechtigung_kurzbz'] : '');
|
|
$art = (isset($value['art']) ? $value['art'] : '');
|
|
$oe_kurzbz = (isset($value['oe_kurzbz']) ? $value['oe_kurzbz'] : '');
|
|
//echo '<pre>', var_dump($oe_kurzbz), '</pre>';
|
|
$kostenstelle_id = (isset($value['kostenstelle_id']) ? $value['kostenstelle_id'] : '');
|
|
$start = (isset($value['start']) ? $value['start'] : '');
|
|
$ende = (isset($value['ende']) ? $value['ende'] : '');
|
|
$uid = $_POST['uid'];
|
|
$anmerkung = (isset($value['anmerkung']) ? $value['anmerkung'] : '');
|
|
|
|
$funktion_kurzbz = (isset($_POST['funktion_kurzbz']) ? $_POST['funktion_kurzbz'] : '');
|
|
$studiensemester_kurzbz = null;
|
|
|
|
$ber = new benutzerberechtigung();
|
|
if (isset($_POST['neu']))
|
|
{
|
|
$ber->insertamum = date('Y-m-d H:i:s');
|
|
$ber->insertvon = $user;
|
|
$ber->new = true;
|
|
}
|
|
else
|
|
{
|
|
if(!$ber->load($benutzerberechtigung_id))
|
|
{
|
|
die('Fehler beim Laden der Berechtigung');
|
|
}
|
|
//Nur bei geänderten Datensätzen das Updatedatum setzen
|
|
if ($ber->berechtigung_kurzbz != $berechtigung_kurzbz
|
|
|| $ber->art != $art
|
|
|| $ber->oe_kurzbz != $oe_kurzbz
|
|
|| $ber->rolle_kurzbz != $rolle_kurzbz
|
|
|| $ber->uid != $uid
|
|
|| $ber->funktion_kurzbz != $funktion_kurzbz
|
|
|| $ber->studiensemester_kurzbz != $studiensemester_kurzbz
|
|
|| $ber->start != $start
|
|
|| $ber->ende != $ende
|
|
|| $ber->kostenstelle_id != $kostenstelle_id
|
|
|| $ber->anmerkung != $anmerkung
|
|
|| $ber->negativ != isset($value['negativ'])
|
|
)
|
|
{
|
|
$ber->updateamum = date('Y-m-d H:i:s');
|
|
$ber->updatevon = $user;
|
|
}
|
|
}
|
|
if (isset($value['negativ']))
|
|
$ber->negativ = true;
|
|
else
|
|
$ber->negativ = false;
|
|
|
|
$ber->benutzerberechtigung_id = $benutzerberechtigung_id;
|
|
$ber->art = $art;
|
|
$ber->oe_kurzbz = $oe_kurzbz;
|
|
$ber->berechtigung_kurzbz = $berechtigung_kurzbz;
|
|
$ber->rolle_kurzbz = $rolle_kurzbz;
|
|
$ber->uid = $uid;
|
|
$ber->funktion_kurzbz = $funktion_kurzbz;
|
|
$ber->studiensemester_kurzbz = $studiensemester_kurzbz;
|
|
$ber->start = $start;
|
|
$ber->ende = $ende;
|
|
$ber->kostenstelle_id = $kostenstelle_id;
|
|
$ber->anmerkung = $anmerkung;
|
|
|
|
if(!$ber->save())
|
|
{
|
|
if (!$ber->new)
|
|
$errorstr .= "Datensatz konnte nicht upgedatet werden!".$ber->errormsg;
|
|
else
|
|
$errorstr .= "Datensatz konnte nicht gespeichert werden!".$ber->errormsg;
|
|
}
|
|
else
|
|
{
|
|
//Log schreiben
|
|
$log = new log();
|
|
|
|
$logdata = var_export((array) $ber, true);
|
|
$log->new = true;
|
|
$log->sql = $logdata;
|
|
$log->sqlundo = 'Kein Undo vorhanden';
|
|
$log->executetime = date('Y-m-d H:i:s');
|
|
$log->mitarbeiter_uid = $user;
|
|
if (isset($_POST['neu']))
|
|
$log->beschreibung = 'Neue Berechtigung für '.$uid.' angelegt';
|
|
else
|
|
$log->beschreibung = 'Berechtigung für '.$uid.' aktualisiert';
|
|
|
|
if(!$log->save())
|
|
{
|
|
$errorstr .= "<span style='color: red'><b>Fehler beim schreiben des Log-Eintrags</b></span><br>";
|
|
}
|
|
}
|
|
}
|
|
if ($errorstr == '')
|
|
{
|
|
$successstr .= "<span style='color: green'><b>Änderungen erfolgreich gespeichert</b></span><br>";
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$errorstr.='Fehler beim Speichern: '.$rechte->errormsg;
|
|
}
|
|
}
|
|
|
|
if(isset($_POST['copy']) && $_POST['copy'] != '')
|
|
{
|
|
if($rechte->isBerechtigt('basis/berechtigung', null, 'suid'))
|
|
{
|
|
$ber = new benutzerberechtigung();
|
|
if(!$ber->load($_POST['copy']))
|
|
die('Fehler beim Laden der Berechtigung');
|
|
|
|
$ber->new = true;
|
|
$ber->insertamum = date('Y-m-d H:i:s');
|
|
$ber->insertvon = $user;
|
|
|
|
if(!$ber->save())
|
|
{
|
|
if (!$ber->new)
|
|
$errorstr .= "Datensatz konnte nicht upgedatet werden!".$ber->errormsg;
|
|
else
|
|
$errorstr .= "Datensatz konnte nicht gespeichert werden!".$ber->errormsg;
|
|
}
|
|
else
|
|
{
|
|
//Log schreiben
|
|
$log = new log();
|
|
|
|
$logdata = var_export((array) $ber, true);
|
|
$log->new = true;
|
|
$log->sql = $logdata;
|
|
$log->sqlundo = 'Kein Undo vorhanden';
|
|
$log->executetime = date('Y-m-d H:i:s');
|
|
$log->mitarbeiter_uid = $user;
|
|
$log->beschreibung = 'Berechtigung für '.$uid.' kopiert';
|
|
|
|
if(!$log->save())
|
|
{
|
|
$errorstr .= "<span style='color: red'><b>Fehler beim schreiben des Log-Eintrags</b></span><br>";
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$errorstr.='Fehler beim Speichern: '.$rechte->errormsg;
|
|
}
|
|
}
|
|
|
|
if (!$b = new berechtigung())
|
|
die($b->errormsg);
|
|
|
|
$b->getRollen('rolle_kurzbz');
|
|
foreach($b->result as $berechtigung)
|
|
{
|
|
$rolle_arr[$berechtigung->rolle_kurzbz] = $berechtigung->beschreibung;
|
|
}
|
|
|
|
$b->getBerechtigungen();
|
|
foreach($b->result as $berechtigung)
|
|
{
|
|
$berechtigung_arr[$berechtigung->berechtigung_kurzbz] = $berechtigung->beschreibung;
|
|
$berechtigung_beschreibung_arr[] = $berechtigung->beschreibung;
|
|
}
|
|
|
|
$st = new studiensemester();
|
|
$st->getAll();
|
|
foreach($st->studiensemester as $studiensemester)
|
|
{
|
|
$st_arr[] = $studiensemester->studiensemester_kurzbz;
|
|
}
|
|
|
|
$oe = new organisationseinheit();
|
|
$oe->getAll();
|
|
foreach ($oe->result AS $row)
|
|
{
|
|
$oe_arr[$row->oe_kurzbz]['bezeichnung'] = $row->organisationseinheittyp_kurzbz.' '.$row->bezeichnung;
|
|
$oe_arr[$row->oe_kurzbz]['aktiv'] = $row->aktiv;
|
|
}
|
|
|
|
$kostenstelle = new wawi_kostenstelle();
|
|
$kostenstelle->getAll();
|
|
foreach ($kostenstelle->result AS $row)
|
|
{
|
|
$kst_arr[$row->kostenstelle_id]['bezeichnung'] = $row->bezeichnung;
|
|
$kst_arr[$row->kostenstelle_id]['aktiv'] = $row->aktiv;
|
|
}
|
|
|
|
if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz']))
|
|
{
|
|
$uid='';
|
|
$funktion_kurzbz='';
|
|
$rights = new benutzerberechtigung();
|
|
if(isset($_REQUEST['uid']) && $_REQUEST['uid']!='')
|
|
{
|
|
$uid = $_REQUEST['uid'];
|
|
|
|
$bn = new benutzerberechtigung();
|
|
$bn->getBerechtigungen($uid);
|
|
foreach($bn->berechtigungen as $berechtigung)
|
|
{
|
|
$berechtigung_user_arr[] = $berechtigung->berechtigung_kurzbz;
|
|
}
|
|
$ben = new benutzer();
|
|
if (!$ben->load($uid))
|
|
die('Benutzer existiert nicht');
|
|
|
|
$rights->loadBenutzerRollen($uid);
|
|
$name = new benutzer();
|
|
$name->load($uid);
|
|
|
|
$htmlstr .= "Berechtigungen von <b>".$name->nachname." ".$name->vorname." (".$uid.")</b> <a href='".CIS_ROOT."cis/private/profile/index.php?uid=".$uid."' target='_blank'>Zum CIS-Profil</a>";
|
|
|
|
$message = '';
|
|
$class = '';
|
|
$messageString = '';
|
|
if ($errorstr != '' || $successstr != '')
|
|
{
|
|
if ($successstr != '')
|
|
{
|
|
$class = 'class="alert alert-success"';
|
|
$message = $successstr;
|
|
$messageString .= ' <div '.$class.'>'.$message.'</div>';
|
|
}
|
|
if ($errorstr != '')
|
|
{
|
|
$class = 'class="alert alert-danger"';
|
|
$message = $errorstr;
|
|
$messageString .= ' <div '.$class.'>'.$message.'</div>';
|
|
}
|
|
}
|
|
$htmlstr .= ' <div id="msgbox">'.$messageString.'</div>';
|
|
|
|
$i = 0;
|
|
|
|
// Zusätzlich jede Funktion mit einer gültigen Berechtigung anzeigen
|
|
$benutzerfunktion = new benutzerfunktion();
|
|
$benutzerfunktion->getBenutzerFunktionByUid($uid,null,'now()','now()');
|
|
$bnfkt = array();
|
|
foreach ($benutzerfunktion->result as $recht)
|
|
{
|
|
$bnfkt[] = $recht->funktion_kurzbz;
|
|
}
|
|
$bnfkt = array_unique($bnfkt); // Um doppelte Funktionen zB mehrere Assistenzfunktionen zu entfernen
|
|
if($benutzerfunktion!='')
|
|
{
|
|
foreach($bnfkt as $recht)
|
|
{
|
|
$rechte_funktion = new benutzerberechtigung();
|
|
$rechte_funktion->loadBenutzerRollen(null, $recht);
|
|
$funktionsrecht = $rechte_funktion->berechtigungen; // Hat die Funktion ein Recht?
|
|
$anzahlFunktionsrechte = count($funktionsrecht);
|
|
$funktion_bezeichnung = new funktion();
|
|
$funktion_bezeichnung->load($recht);
|
|
if(!empty($funktionsrecht))
|
|
{
|
|
$i++;
|
|
if ($i==1)
|
|
{
|
|
$htmlstr .= "<p>Geerbte Berechtigungen aus Funktion(en): ";
|
|
}
|
|
if ($i > 1)
|
|
{
|
|
$htmlstr .= "</a>, ";
|
|
}
|
|
|
|
$htmlstr .= "<a href='benutzerberechtigung_details.php?funktion_kurzbz=$funktion_bezeichnung->funktion_kurzbz' target='_blank'>";
|
|
$htmlstr .= $funktion_bezeichnung->beschreibung;
|
|
$htmlstr .= " (".$anzahlFunktionsrechte.")";
|
|
}
|
|
}
|
|
if(isset($funktionsrecht))
|
|
{
|
|
$htmlstr .= '</a></p>';
|
|
}
|
|
}
|
|
if (count($bn) > 0)
|
|
{
|
|
$htmlstr .= "<p><a href='benutzerberechtigung_detailliste.php?uid=$uid' target='_blank'>Rechte Detailaufschlüsselung</a></p>";
|
|
}
|
|
}
|
|
elseif(isset($_REQUEST['funktion_kurzbz']) && $_REQUEST['funktion_kurzbz']!='')
|
|
{
|
|
$funktion_kurzbz = $_REQUEST['funktion_kurzbz'];
|
|
|
|
$funktion = new funktion();
|
|
if(!$funktion->load($funktion_kurzbz))
|
|
die('Funktion existiert nicht');
|
|
|
|
$rights->loadBenutzerRollen(null, $funktion_kurzbz);
|
|
$htmlstr .= "Berechtigungen der Funktion <b>".$funktion->beschreibung."</b>";
|
|
}
|
|
|
|
//$htmlstr .= "Berechtigungen von <b>".$name->nachname." ".$name->vorname." (".$uid.")".$funktion_kurzbz."</b>";
|
|
/*$htmlstr .= ' Filter:
|
|
<a href="benutzerberechtigung_details.php?filter=alle&uid='.$uid.'&funktion_kurzbz='.$funktion_kurzbz.'" '.($filter=='alle'?'style="font-weight:bold"':'').'>Alle</a>
|
|
| <a href="benutzerberechtigung_details.php?filter=wawi&uid='.$uid.'&funktion_kurzbz='.$funktion_kurzbz.'" '.($filter=='wawi'?'style="font-weight:bold"':'').'>nur WaWi</a>
|
|
| <a href="benutzerberechtigung_details.php?filter=ohnewawi&uid='.$uid.'&funktion_kurzbz='.$funktion_kurzbz.'" '.($filter=='ohnewawi'?'style="font-weight:bold"':'').'>ohne WaWi</a>
|
|
|
|
';*/
|
|
|
|
////////////////
|
|
// Neue Berechtigung einfügen
|
|
////////////////
|
|
|
|
$htmlstr .= "<table>";
|
|
$htmlstr .= "<thead><tr></tr>";
|
|
$htmlstr .= "<tr>
|
|
<th></th>
|
|
<th>Rolle</th>
|
|
<th>Berechtigung</th>
|
|
<th>Art</th>
|
|
<th>Organisationseinheit</th>
|
|
<th>Kostenstelle</th>
|
|
<th>Neg</th>
|
|
<th>Gültig ab</th>
|
|
<th>Gültig bis</th>
|
|
<th>Anmerkung</th>
|
|
<th></th>
|
|
</tr></thead><tbody>";
|
|
|
|
$htmlstr .= "<tr id='neu'>";
|
|
$htmlstr .= "<form id='formNeuesRecht' action='benutzerberechtigung_details.php?uid=".$uid."&funktion_kurzbz=".$funktion_kurzbz."' method='POST' name='berechtigung_neu'>";
|
|
$htmlstr .= "<input type='hidden' name='neu' value='1'>";
|
|
$htmlstr .= "<input type='hidden' name='schick' value='1'>";
|
|
$htmlstr .= "<input type='hidden' name='benutzerberechtigung_id' value=''>";
|
|
$htmlstr .= "<input type='hidden' name='uid' value='".$uid."'>";
|
|
$htmlstr .= "<input type='hidden' name='funktion_kurzbz' value='".$funktion_kurzbz."'>";
|
|
|
|
$htmlstr .= "<td>Neu: </td>";
|
|
//Rolle
|
|
$htmlstr .= " <td><select name='dataset[0][rolle_kurzbz]' id='rolle_kurzbz_neu'>";
|
|
$htmlstr .= " <option value=''> </option>";
|
|
foreach ($rolle_arr AS $key => $value)
|
|
{
|
|
$htmlstr .= " <option value='".$key."'
|
|
title='".$value."'>".$key."</option>";
|
|
}
|
|
$htmlstr .= " </select></td>";
|
|
|
|
//Berechtigung_kurzbz
|
|
$htmlstr .= " <td>";
|
|
$htmlstr .= " <input type='text' placeholder='Berechtigung' id='berechtigung_neu_autocomplete' class='berechtigung_autocomplete' name='dataset[0][berechtigung_kurzbz]'>";
|
|
$htmlstr .= " </td>";
|
|
|
|
//Art
|
|
$htmlstr .= " <td>";
|
|
$htmlstr .= " <input id='art_neu' type='text' name='dataset[0][art]' value='' size='5' maxlength='5' placeholder='suid' style='text-transform: lowercase;'>";
|
|
$htmlstr .= " </td>";
|
|
|
|
//Organisationseinheit
|
|
if($funktion_kurzbz != '')
|
|
{
|
|
$htmlstr .= " <td class='oe_column'>OE aus MA-Funktion</td>";
|
|
}
|
|
else
|
|
{
|
|
$htmlstr .= " <td class='oe_column' style='width: 300px'>";
|
|
$htmlstr .= " <input type='hidden' name='dataset[0][oe_kurzbz]' value=''>";
|
|
$htmlstr .= " <input type='text' placeholder='Organisationseinheit' id='oe_kurzbz_neu_autocomplete' class='oe_kurzbz_autocomplete' style='width: 100%'>";
|
|
$htmlstr .= " </td>";
|
|
}
|
|
|
|
//Kostenstelle
|
|
$htmlstr .= " <td class='ks_column' style='width: 300px'>";
|
|
$htmlstr .= " <input type='hidden' name='dataset[0][kostenstelle_id]' value=''>";
|
|
$htmlstr .= " <input type='text' placeholder='Kostenstelle' id='kostenstelle_autocomplete_neu' class='kostenstelle_autocomplete' style='width: 100%'>";
|
|
$htmlstr .= " </td>";
|
|
|
|
/*
|
|
$htmlstr .= " <td class='ks_column'><select id='kostenstelle_neu' name='dataset[0][kostenstelle_id]' style='width: 200px;'>";
|
|
$htmlstr .= " <option value=''> </option>";
|
|
|
|
foreach ($kostenstelle->result as $kst)
|
|
{
|
|
if(!$kst->aktiv)
|
|
$class='class="inactive"';
|
|
else
|
|
$class='';
|
|
|
|
$htmlstr .= " <option value='".$kst->kostenstelle_id."' ".$class.">".$kst->bezeichnung.'</option>';
|
|
}
|
|
$htmlstr .= " </select></td>";*/
|
|
|
|
//Negativ
|
|
$htmlstr .= " <td align='center'><input type='checkbox' name='dataset[0][negativ]'></td>";
|
|
|
|
//Start
|
|
$htmlstr .= " <td nowrap><input class='datepicker_datum' type='text' name='dataset[0][start]' value='".date('Y-m-d')."' size='10' maxlength='10'></td>";
|
|
|
|
//Ende
|
|
$htmlstr .= " <td nowrap><input class='datepicker_datum' type='text' name='dataset[0][ende]' value='' size='10' maxlength='10'></td>";
|
|
|
|
//Anmerkung
|
|
$htmlstr .= " <td><input id='anmerkung_neu' type='text' name='dataset[0][anmerkung]' value='' size='100' maxlength='256'></td>";
|
|
|
|
//$htmlstr .= " <td><input type='submit' name='schick' value='Neu anlegen' onclick='return validateNewData()'></td>";
|
|
$htmlstr .= "</form>";
|
|
$htmlstr .= " </tr></tbody></table>";
|
|
|
|
$htmlstr .= " <br/>";
|
|
|
|
////////////////
|
|
// Tabelle für bestehende Berechtigungen
|
|
////////////////
|
|
|
|
$htmlstr .= "<div class='pull-left' style='font-size: small' id='anzahl'></div><div class='pull-right' style='font-size: smaller'>STRG+ALT+T fügt Datum ein</div>";
|
|
$htmlstr .= "<form id='formRechte' action='benutzerberechtigung_details.php?uid=".$uid."&funktion_kurzbz=".$funktion_kurzbz."' method='POST'>";
|
|
|
|
$htmlstr .= "<input type='hidden' name='uid' value='".$uid."'>";
|
|
$htmlstr .= "<input type='hidden' name='funktion_kurzbz' value='".$funktion_kurzbz."'>";
|
|
/*$htmlstr .= " <table style='width: 100%; white-space: nowrap; margin-bottom: -8px;'>
|
|
<tr>
|
|
<td style='width: 33.3%; padding-left: 10px;'>
|
|
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
";*/
|
|
$htmlstr .= "<table id='t1' class='tablesorter'>";
|
|
$htmlstr .= "<thead>";
|
|
$htmlstr .= "<tr>
|
|
<th style='width: 30px'><a href='#' data-toggle='checkboxes' data-action='toggle' id='toggle_t1'><img src='../../skin/images/checkbox_toggle.png' name='toggle'></a>
|
|
<a href='#' data-toggle='checkboxes' data-action='uncheck' id='uncheck_t1'><img src='../../skin/images/checkbox_uncheck.png' name='toggle'></a></th>
|
|
<th style='width: 100px'>Rolle</th>
|
|
<th style='width: 100px'>Berechtigung</th>
|
|
<th style='width: 30px'>Art</th>
|
|
<th class='oe_column'>Organisationseinheit</th>
|
|
<th class='ks_column'>Kostenstelle</th>
|
|
|
|
<th style='width: 30px'>Neg</th>
|
|
<th>Gültig ab</th>
|
|
<th>Gültig bis</th>
|
|
<th>Anmerkung</th>
|
|
<th style='width: 30px'>Info</th>
|
|
<th></th>
|
|
|
|
</tr></thead><tbody>";
|
|
|
|
$countInaktiveUndWawi = 0;
|
|
foreach($rights->berechtigungen as $b)
|
|
{
|
|
switch($filter)
|
|
{
|
|
case 'alle'; break;
|
|
case 'wawi';
|
|
if(!mb_strstr($b->berechtigung_kurzbz,'wawi'))
|
|
continue 2;
|
|
break;
|
|
case 'ohnewawi';
|
|
if(mb_strstr($b->berechtigung_kurzbz,'wawi'))
|
|
continue 2;
|
|
break;
|
|
default: break;
|
|
}
|
|
|
|
$heute = strtotime(date('Y-m-d'));
|
|
if ($b->ende!='' && strtotime($b->ende) < $heute)
|
|
{
|
|
$titel="ccc";
|
|
$style = 'style="border-left: 10px solid tomato; border-right: 10px solid transparent; text-align: center; vertical-align: middle; background-color: #d0d7e0;"';
|
|
$inaktiv_class = 'inaktiv';
|
|
$data = 'rot';
|
|
}
|
|
elseif ($b->start!='' && strtotime($b->start) > $heute)
|
|
{
|
|
$titel="bbb";
|
|
$style = 'style="border-left: 10px solid gold; border-right: 10px solid transparent; text-align: center; vertical-align: middle"';
|
|
$inaktiv_class = '';
|
|
$data = 'gelb';
|
|
}
|
|
else
|
|
{
|
|
$titel="aaa";
|
|
$style = 'style="border-left: 10px solid LightGreen; border-right: 10px solid transparent; text-align: center; vertical-align: middle"';
|
|
$inaktiv_class = '';
|
|
$data = 'gruen';
|
|
}
|
|
// Inaktive Elemente sowie WaWi-Rechte ausblenden
|
|
if ($b->ende!='' && strtotime($b->ende) < $heute || $b->rolle_kurzbz == 'wawi' || substr($b->berechtigung_kurzbz, 0, 4) == 'wawi')
|
|
{
|
|
$htmlstr .= " <tr class='row_berechtigung ausgeblendet' id='".$b->benutzerberechtigung_id."'>";
|
|
$countInaktiveUndWawi++;
|
|
}
|
|
else
|
|
{
|
|
$htmlstr .= " <tr class='row_berechtigung' id='".$b->benutzerberechtigung_id."'>";
|
|
}
|
|
|
|
// Auswahlcheckbox
|
|
$htmlstr .= " <td $style class='auswahlcheckboxen' name='td_$b->benutzerberechtigung_id' data-".$data."='".$data."'>";
|
|
$htmlstr .= " <span style='display: none'>".$titel."</span>";
|
|
$htmlstr .= " <input type='checkbox' class='auswahlcheckbox $inaktiv_class' name='dataset[$b->benutzerberechtigung_id][check]'>";
|
|
$htmlstr .= " </td>";
|
|
|
|
//Rolle
|
|
$htmlstr .= " <td style='padding: 1px; white-space: nowrap'>";
|
|
$htmlstr .= " <select class='rolle_select $inaktiv_class'
|
|
name='dataset[$b->benutzerberechtigung_id][rolle_kurzbz]'
|
|
title='".(isset($rolle_arr[$b->rolle_kurzbz])?$rolle_arr[$b->rolle_kurzbz]:"")."'
|
|
data-toggle='tooltip'
|
|
data-html='true'
|
|
data-placement='auto'>";
|
|
$htmlstr .= " <option value='' name=''> </option>";
|
|
foreach ($rolle_arr AS $key => $value)
|
|
{
|
|
if ($b->rolle_kurzbz == $key)
|
|
{
|
|
$sel = " selected='selected'";
|
|
}
|
|
else
|
|
$sel = "";
|
|
$htmlstr .= "<option value='".$key."'
|
|
id='".$key."'
|
|
".$sel."
|
|
title='".$value."'>".$key."</option>";
|
|
}
|
|
$htmlstr .= " </select>";
|
|
if ($b->rolle_kurzbz != '')
|
|
{
|
|
$htmlstr .= " <a href='berechtigungrolle.php?rolle_kurzbz=".$b->rolle_kurzbz."'
|
|
target='_blank'
|
|
style='color: unset'><span class='glyphicon glyphicon-share'></span></a>";
|
|
}
|
|
$htmlstr.="</td>";
|
|
|
|
//Berechtigung
|
|
$htmlstr .= " <td name='td_$b->benutzerberechtigung_id'>";
|
|
$htmlstr .= " <span style='display: none'>".$b->berechtigung_kurzbz."</span>";
|
|
$htmlstr .= " <input type='text'
|
|
class='berechtigung_autocomplete $inaktiv_class'
|
|
name='dataset[$b->benutzerberechtigung_id][berechtigung_kurzbz]'
|
|
value='".$b->berechtigung_kurzbz."'
|
|
title='".($b->berechtigung_kurzbz != '' ? $berechtigung_arr[$b->berechtigung_kurzbz] : '')."'
|
|
data-toggle='tooltip'
|
|
data-html='true'
|
|
data-placement='auto'>";
|
|
$htmlstr .= " </td>";
|
|
|
|
//Art
|
|
$htmlstr .= " <td name='td_$b->benutzerberechtigung_id'>";
|
|
$htmlstr .= " <span style='display: none'>".$b->art."</span>";
|
|
$htmlstr .= " <input type='text' class='suid_input $inaktiv_class' name='dataset[$b->benutzerberechtigung_id][art]' value='".$b->art."' size='4' maxlength='4' style='text-transform: lowercase;'>";
|
|
$htmlstr .= " </td>";
|
|
|
|
//Organisationseinheit
|
|
if($funktion_kurzbz != '')
|
|
{
|
|
$htmlstr .= " <td class='oe_column' name='td_$b->benutzerberechtigung_id'>OE aus MA-Funktion</td>";
|
|
}
|
|
else
|
|
{
|
|
$htmlstr .= " <td class='oe_column'>";
|
|
$htmlstr .= " <span style='display: none'>".($b->oe_kurzbz != '' ? $oe_arr[$b->oe_kurzbz]['bezeichnung'] : '')."</span>";
|
|
$htmlstr .= " <input type='hidden' name='dataset[$b->benutzerberechtigung_id][oe_kurzbz]' value='$b->oe_kurzbz'>";
|
|
$style = isset($oe_arr[$b->oe_kurzbz]) && $oe_arr[$b->oe_kurzbz]['aktiv'] == false? 'style="text-decoration: line-through"' : '';
|
|
$htmlstr .= " <input $style type='text' class='oe_kurzbz_autocomplete $inaktiv_class' value='".($b->oe_kurzbz != '' ? $oe_arr[$b->oe_kurzbz]['bezeichnung'] : '')."'>";
|
|
$htmlstr .= " </td>";
|
|
}
|
|
|
|
//Kostenstelle
|
|
$htmlstr .= " <td class='ks_column'>";
|
|
$htmlstr .= " <span style='display: none'>".$b->kostenstelle_id."</span>";
|
|
$htmlstr .= " <input type='hidden' name='dataset[$b->benutzerberechtigung_id][kostenstelle_id]' value='$b->kostenstelle_id'>";
|
|
$style = isset($kst_arr[$b->kostenstelle_id]) && $kst_arr[$b->kostenstelle_id]['aktiv'] == false ? 'style="text-decoration: line-through"' : '';
|
|
$htmlstr .= " <input $style type='text' class='kostenstelle_autocomplete $inaktiv_class' value='".($b->kostenstelle_id != '' ? $kst_arr[$b->kostenstelle_id]['bezeichnung'] : '')."'>";
|
|
$htmlstr .= " </td>";
|
|
|
|
|
|
|
|
/*$htmlstr .= " <select name='dataset[$b->benutzerberechtigung_id][kostenstelle_id]' style='width: 200px;'>";
|
|
$htmlstr .= " <option value=''> </option>";
|
|
|
|
foreach ($kostenstelle->result as $kst)
|
|
{
|
|
if ($b->kostenstelle_id == $kst->kostenstelle_id)
|
|
$sel = " selected";
|
|
else
|
|
$sel = "";
|
|
if(!$kst->aktiv)
|
|
$class='class="inactive"';
|
|
else
|
|
$class='';
|
|
|
|
$htmlstr .= " <option value='".$kst->kostenstelle_id."' ".$sel." ".$class.">".$kst->bezeichnung.'</option>';
|
|
}
|
|
$htmlstr .= " </select></td>";*/
|
|
|
|
//Negativ-Checkbox
|
|
$htmlstr .= " <td align='center'>";
|
|
$htmlstr .= " <input type='checkbox' class='$inaktiv_class' name='dataset[$b->benutzerberechtigung_id][negativ]' ".($b->negativ?'checked="checked"':'').">";
|
|
$htmlstr .= " </td>";
|
|
|
|
//Gültig ab
|
|
$htmlstr .= " <td style='white-space: nowrap; width: 9rem'>";
|
|
$htmlstr .= " <span style='display: none'>".$b->start."</span>";
|
|
$htmlstr .= " <input class='datepicker_datum $inaktiv_class' type='text' name='dataset[$b->benutzerberechtigung_id][start]' value='".$b->start."' size='10' maxlength='10'>";
|
|
$htmlstr .= " </td>";
|
|
|
|
// Gültig bis
|
|
$htmlstr .= " <td style='white-space: nowrap; width: 9rem'>";
|
|
$htmlstr .= " <span style='display: none'>".$b->ende."</span>";
|
|
$htmlstr .= " <input class='datepicker_datum $inaktiv_class' type='text' name='dataset[$b->benutzerberechtigung_id][ende]' value='".$b->ende."' size='10' maxlength='10'>";
|
|
$htmlstr .= " </td>";
|
|
|
|
//Anmerkung
|
|
$htmlstr .= " <td>";
|
|
$htmlstr .= " <input
|
|
type='text'
|
|
name='dataset[$b->benutzerberechtigung_id][anmerkung]'
|
|
class='input_anmerkung $inaktiv_class'
|
|
value='".$b->anmerkung."'
|
|
title='".$db->convert_html_chars(mb_eregi_replace('\r'," ",$b->anmerkung))."'
|
|
data-toggle='tooltip'
|
|
data-html='true'
|
|
data-placement='auto'
|
|
size='50'
|
|
maxlength='256'>";
|
|
$htmlstr .= " </td>";
|
|
|
|
//Info
|
|
$htmlstr .= " <td align='center' name='td_$b->benutzerberechtigung_id'>
|
|
<span
|
|
class='glyphicon glyphicon-info-sign'
|
|
title='Angelegt von ".$b->insertvon." am ".$b->insertamum."<br>Zuletzt geaendert von ".$b->updatevon." am ".$b->updateamum."'
|
|
data-toggle='tooltip'
|
|
data-html='true'
|
|
data-placement='auto'>
|
|
</span></td>";
|
|
|
|
$htmlstr .= " <td style='white-space: nowrap; width: 5rem'>";
|
|
$htmlstr .= " <button type='submit'
|
|
name='copy'
|
|
value='$b->benutzerberechtigung_id'
|
|
id='copy_$b->benutzerberechtigung_id'
|
|
style='margin-right: 5px; border:none'
|
|
title='Duplizieren'
|
|
data-toggle='tooltip'
|
|
data-html='true'
|
|
data-placement='auto'><span class='glyphicon glyphicon-duplicate'></span></button>";
|
|
$htmlstr .= " <button type='submit'
|
|
name='delete'
|
|
value='$b->benutzerberechtigung_id'
|
|
id='delete_$b->benutzerberechtigung_id'
|
|
style='border:none'
|
|
title='Löschen'
|
|
data-toggle='tooltip'
|
|
data-html='true'
|
|
data-placement='auto'><span class='glyphicon glyphicon-remove'></span></button>";
|
|
$htmlstr .= " </td>";
|
|
$htmlstr .= " </tr>";
|
|
}
|
|
$htmlstr .= "</tbody></table>";
|
|
|
|
//Button zum einblenden ausgeblendeter Zeilen
|
|
if ($countInaktiveUndWawi > 0)
|
|
{
|
|
$htmlstr .= "<button type='button' class='btn btn-default' onclick='show_hidden()'>Inaktive und WaWi anzeigen</button>";
|
|
}
|
|
|
|
// Speichern und Aktions-Bereich
|
|
$htmlstr .= '<div id="bottomArea" >
|
|
<div class="input-group">
|
|
<button id="ButtonNeu" type="button" class="btn btn-default" name="schick" onclick="return submitNeuesRecht()" style="margin-bottom: 10px">Neues Recht speichern</button>
|
|
<button id="ButtonSpeichern" type="submit" class="btn btn-default" name="schick" onclick="return validateSpeichern()" style="margin-bottom: 10px">Änderungen Speichern</button>
|
|
<div class="form-inline multi-options" style="">
|
|
<div class="input-group" style="width: 180px;">
|
|
<input type="text" id="input_uebertragen_nach" name="uebertragen_nach" class="form-control benutzer_autocomplete" placeholder="Zu UID übertragen" disabled>
|
|
<div class="input-group-btn">
|
|
<button class="btn btn-default" type="submit" id="button_uebertragen" name="uebertragen" onclick="return validateUebertragen()" disabled>
|
|
<i class="glyphicon glyphicon-transfer" style="line-height: unset"></i>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<button type="submit" id="button_mehrfachbeenden" name="setDate_multi" value="setDate_multi" class="btn btn-default" onclick="return validateBeenden()" disabled>Ende setzen</button>
|
|
<button type="submit" id="button_mehrfachloeschen" name="delete_multi" value="delete_multi" class="btn btn-warning" onclick="return validateDeleteMulti()" disabled>Markierte löschen</button>
|
|
</div>
|
|
<div class="form-inline multi-options" style="">
|
|
<div class="input-group" style="width: 180px;">
|
|
<input type="text" id="input_anmerkung_multi" maxlength="256" name="anmerkung_multi" class="form-control" placeholder="Mehrfach-Anmerkung" style="width: 390px;" disabled>
|
|
<div class="input-group-btn">
|
|
<button class="btn btn-default" type="submit" id="button_anmerkung_multi" name="save_anmerkung_multi" onclick="return validateAnmerkungMulti()" disabled>
|
|
<i class="glyphicon glyphicon-ok" style="line-height: unset"></i>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>';
|
|
$htmlstr .= "</form>";
|
|
$htmlstr .= "<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>";
|
|
}
|
|
|
|
?>
|
|
|
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
|
<html>
|
|
<head>
|
|
<title>Berechtigung - Details</title>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
|
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
|
|
<link href="../../skin/tablesort.css" rel="stylesheet" type="text/css"/>
|
|
<link href="../../skin/jquery-ui-1.9.2.custom.min.css" rel="stylesheet" type="text/css">
|
|
<link rel="stylesheet" type="text/css" href="../../vendor/twbs/bootstrap3/dist/css/bootstrap.min.css">
|
|
<script type="text/javascript" src="../../include/tiny_mce/tiny_mce.js"></script>
|
|
<script src="../../include/js/mailcheck.js"></script>
|
|
<script src="../../include/js/datecheck.js"></script>
|
|
<!-- <script type="text/javascript" src="../../vendor/jquery/jquery1/jquery-1.12.4.min.js"></script>-->
|
|
<!-- <script type="text/javascript" src="../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>-->
|
|
<!-- <script type="text/javascript" src="../../vendor/components/jqueryui/jquery-ui.min.js"></script>-->
|
|
<?php
|
|
include('../../include/meta/jquery.php');
|
|
include('../../include/meta/jquery-tablesorter.php');
|
|
?>
|
|
<!-- <script type="text/javascript" src="../../include/js/jquery.ui.datepicker.translation.js"></script>-->
|
|
<script type="text/javascript" src="../../vendor/components/jqueryui/jquery-ui.min.js"></script>
|
|
<script type="text/javascript">
|
|
////////////////////////
|
|
/* Checkboxes Script manuell eingefügt und bearbeitet, damit die Range-Funktion auch in mehrspaltigem Layout funktioniert. */
|
|
////////////////////////
|
|
'use strict';
|
|
|
|
(function ($) {
|
|
|
|
/**
|
|
* Create a new checkbox context.
|
|
*
|
|
* @param {Object} context DOM context.
|
|
*/
|
|
var Checkboxes = function (context) {
|
|
this.$context = context;
|
|
};
|
|
|
|
/**
|
|
* Check all checkboxes in context.
|
|
*/
|
|
Checkboxes.prototype.check = function () {
|
|
this.$context.find(':checkbox')
|
|
.filter(':not(:disabled)')
|
|
.filter(':visible')
|
|
.prop('checked', true);
|
|
};
|
|
|
|
/**
|
|
* Uncheck all checkboxes in context.
|
|
*/
|
|
Checkboxes.prototype.uncheck = function () {
|
|
this.$context.find(':checkbox:visible')
|
|
.filter(':not(:disabled)')
|
|
.prop('checked', false);
|
|
};
|
|
|
|
/**
|
|
* Toggle the state of all checkboxes in context.
|
|
*/
|
|
Checkboxes.prototype.toggle = function () {
|
|
this.$context.find(':checkbox:visible')
|
|
.filter(':not(:disabled)')
|
|
.each(function () {
|
|
var $checkbox = $(this);
|
|
$checkbox.prop('checked', !$checkbox.is(':checked'));
|
|
});
|
|
};
|
|
|
|
/**
|
|
* Set the maximum number of checkboxes that can be checked.
|
|
*
|
|
* @param {Number} max The maximum number of checkbox allowed to be checked.
|
|
*/
|
|
Checkboxes.prototype.max = function (max) {
|
|
if (max > 0) {
|
|
// Enable max.
|
|
var instance = this;
|
|
this.$context.on('click.checkboxes.max', ':checkbox', function () {
|
|
if (instance.$context.find(':checked').length === max) {
|
|
instance.$context.find(':checkbox:not(:checked)').prop('disabled', true);
|
|
} else {
|
|
instance.$context.find(':checkbox:not(:checked)').prop('disabled', false);
|
|
}
|
|
});
|
|
} else {
|
|
// Disable max.
|
|
this.$context.off('click.checkboxes.max');
|
|
}
|
|
};
|
|
|
|
/**
|
|
* Enable or disable range selection.
|
|
*
|
|
* @param {Boolean} enable Indicate is range selection has to be enabled.
|
|
*/
|
|
Checkboxes.prototype.range = function (enable, selector) {
|
|
if (enable) {
|
|
var instance = this;
|
|
|
|
if (!selector) selector = ':checkbox'
|
|
|
|
this.$context.on('click.checkboxes.range', selector, function (event) {
|
|
var $checkbox = $(event.target);
|
|
|
|
if (event.shiftKey && instance.$last) {
|
|
var $checkboxes = instance.$context.find(selector + ':visible');
|
|
var from = $checkboxes.index(instance.$last);
|
|
var to = $checkboxes.index($checkbox);
|
|
var start = Math.min(from, to);
|
|
var end = Math.max(from, to) + 1;
|
|
|
|
$checkboxes.slice(start, end)
|
|
.filter(':not(:disabled)')
|
|
.prop('checked', $checkbox.prop('checked'));
|
|
}
|
|
instance.$last = $checkbox;
|
|
});
|
|
} else {
|
|
this.$context.off('click.checkboxes.range');
|
|
}
|
|
};
|
|
|
|
///////////////////////////////
|
|
/* Checkboxes jQuery plugin. */
|
|
///////////////////////////////
|
|
|
|
// Keep old Checkboxes jQuery plugin, if any, to no override it.
|
|
var old = $.fn.checkboxes;
|
|
|
|
/**
|
|
* Checkboxes jQuery plugin.
|
|
*
|
|
* @param {String} method Method to invoke.
|
|
*
|
|
* @return {Object} jQuery object.
|
|
*/
|
|
$.fn.checkboxes = function (method) {
|
|
// Get extra arguments as method arguments.
|
|
var methodArgs = Array.prototype.slice.call(arguments, 1);
|
|
|
|
return this.each(function () {
|
|
var $this = $(this);
|
|
|
|
// Check if we already have an instance.
|
|
var instance = $this.data('checkboxes');
|
|
if (!instance) {
|
|
$this.data('checkboxes', (instance = new Checkboxes($this, typeof method === 'object' && method)));
|
|
}
|
|
|
|
// Check if we need to invoke a public method.
|
|
if (typeof method === 'string' && instance[method]) {
|
|
instance[method].apply(instance, methodArgs);
|
|
}
|
|
});
|
|
};
|
|
|
|
// Store a constructor reference.
|
|
$.fn.checkboxes.Constructor = Checkboxes;
|
|
|
|
|
|
////////////////////////////////////
|
|
/* Checkboxes jQuery no conflict. */
|
|
////////////////////////////////////
|
|
|
|
/**
|
|
* No conflictive Checkboxes jQuery plugin.
|
|
*/
|
|
$.fn.checkboxes.noConflict = function () {
|
|
$.fn.checkboxes = old;
|
|
return this;
|
|
};
|
|
|
|
|
|
//////////////////////////
|
|
/* Checkboxes data-api. */
|
|
//////////////////////////
|
|
|
|
/**
|
|
* Handle data-api click.
|
|
*
|
|
* @param {Object} event Click event.
|
|
*/
|
|
var dataApiClickHandler = function (event) {
|
|
var el = $(event.target);
|
|
var href = el.attr('href');
|
|
var $context = $(el.data('context') || (href && href.replace(/.*(?=#[^\s]+$)/, '')));
|
|
var action = el.data('action');
|
|
|
|
if ($context && action) {
|
|
if (!el.is(':checkbox')) {
|
|
event.preventDefault();
|
|
}
|
|
$context.checkboxes(action);
|
|
}
|
|
};
|
|
|
|
/**
|
|
* Handle data-api DOM ready.
|
|
*/
|
|
var dataApiDomReadyHandler = function () {
|
|
$('[data-toggle^=checkboxes]').each(function () {
|
|
var el = $(this),
|
|
actions = el.data();
|
|
delete actions.toggle;
|
|
for (var action in actions) {
|
|
el.checkboxes(action, actions[action]);
|
|
}
|
|
});
|
|
};
|
|
|
|
// Register data-api listeners.
|
|
$(document).on('click.checkboxes.data-api', '[data-toggle^=checkboxes]', dataApiClickHandler);
|
|
$(document).on('ready.checkboxes.data-api', dataApiDomReadyHandler);
|
|
|
|
})(window.jQuery);
|
|
|
|
</script>
|
|
<style type="text/css">
|
|
|
|
<?php if(1==2): ?>
|
|
th.oe_column,
|
|
td.oe_column,
|
|
th.ks_column,
|
|
td.ks_column
|
|
{
|
|
display: none;
|
|
}
|
|
<?php endif; ?>
|
|
|
|
button
|
|
{
|
|
border: 1px solid gray;
|
|
}
|
|
#t1 tbody input, #t1 tbody select
|
|
{
|
|
margin: 0 4px;
|
|
background-color: #E9E9ED !important;
|
|
/*border: none;*/
|
|
}
|
|
#t1 tbody input[type=submit]
|
|
{
|
|
padding: 1px 4px;
|
|
}
|
|
#t1 tbody input[type=submit]:hover
|
|
{
|
|
background-color: #E9E9ED;
|
|
}
|
|
.berechtigung_autocomplete
|
|
{
|
|
width: 200px;
|
|
}
|
|
.oe_kurzbz_autocomplete
|
|
{
|
|
width: 95%;
|
|
}
|
|
.kostenstelle_autocomplete
|
|
{
|
|
width: 95%;
|
|
}
|
|
.input_anmerkung
|
|
{
|
|
width: 95%;
|
|
}
|
|
th
|
|
{
|
|
text-align: left;
|
|
padding-left: 5px;
|
|
font-weight: normal;
|
|
}
|
|
#bottomArea
|
|
{
|
|
/*width: 250px;*/
|
|
/*border-top-left-radius: 10px;*/
|
|
/*border-top-right-radius: 10px;*/
|
|
text-align: center;
|
|
position: fixed;
|
|
bottom: 0px;
|
|
right: 0px;
|
|
padding: 10px;
|
|
background-color: rgba(238,238,238,0.9);
|
|
border-top: 1px solid #999;
|
|
border-left: 1px solid #999;
|
|
/*border-right: 1px solid #999;*/
|
|
margin-left: auto;
|
|
display: block ruby;
|
|
border-top-left-radius: 4px;
|
|
}
|
|
#msgbox
|
|
{
|
|
width: max-content;
|
|
text-align: center;
|
|
position: absolute;
|
|
top: 0px;
|
|
padding: 10px;
|
|
margin-left: auto;
|
|
margin-right: auto;
|
|
left: 0;
|
|
right: 0;
|
|
}
|
|
.ui-tooltip
|
|
{
|
|
padding:8px;
|
|
position:absolute;
|
|
max-width:300px;
|
|
opacity: 1 !important;
|
|
box-shadow: unset;
|
|
border-radius: unset !important;
|
|
background: black;
|
|
color: white;
|
|
border: 4px solid black;
|
|
}
|
|
td button
|
|
{
|
|
background-color: transparent;
|
|
}
|
|
.inaktiv
|
|
{
|
|
border: 1px dotted gray;
|
|
color: gray;
|
|
}
|
|
.tablesorter-filter
|
|
{
|
|
background-color: #f3f3f3 !important;
|
|
}
|
|
.ausgeblendet
|
|
{
|
|
display: none;
|
|
}
|
|
/*.multi-options*/
|
|
/*{*/
|
|
/* display: none;*/
|
|
/*}*/
|
|
</style>
|
|
<script type="text/javascript">
|
|
$.tablesorter.addParser({
|
|
id: "customDate",
|
|
is: function(s) {
|
|
//return false;
|
|
//use the above line if you don\'t want table sorter to auto detected this parser
|
|
// match dd.mm.yyyy e.g. 01.01.2001 as regex
|
|
//return /\d{1,4}-\d{1,2}-\d{1,2} \d{1,2}:\d{1,2} .*/.test(s);
|
|
return /\d{1,2}.\d{1,2}.\d{1,4} \d{1,2}:\d{1,2} .*/.test(s);
|
|
},
|
|
// replace regex-wildcards and return new date
|
|
format: function(s) {
|
|
s = s.replace(/\-/g," ");
|
|
s = s.replace(/:/g," ");
|
|
s = s.replace(/\./g," ");
|
|
s = s.split(" ");
|
|
return $.tablesorter.formatFloat(new Date(s[2], s[1]-1, s[0], s[3], s[4]).getTime());
|
|
},
|
|
type: "numeric"
|
|
});
|
|
$(document).ready(function()
|
|
{
|
|
// $("[data-toggle=\"popover\"]").popover();
|
|
// $("[data-toggle=\"popover\"]").popover({html:true});
|
|
$("[data-toggle='tooltip']").tooltip({
|
|
show: {
|
|
effect:'toggle',
|
|
delay:0
|
|
},
|
|
content: function () {
|
|
return $(this).prop("title");
|
|
},
|
|
hide: {
|
|
effect:'toggle',
|
|
delay:0
|
|
}
|
|
});
|
|
$( ".datepicker_datum" ).datepicker({
|
|
changeMonth: true,
|
|
changeYear: true,
|
|
dateFormat: 'yy-mm-dd',
|
|
showOn: "focus"
|
|
/*buttonImage: "../../skin/images/date_edit.png",
|
|
buttonImageOnly: true,
|
|
buttonText: "Select date"*/
|
|
});
|
|
|
|
$("#t1").tablesorter(
|
|
{
|
|
sortList: [[0,0],[1,0],[2,0],[4,0]],
|
|
widgets: ["filter"],
|
|
headers: {0:{sorter:false},6:{sorter:false, filter:false},10:{sorter:false, filter:false},11:{sorter:false, filter:false}},
|
|
widgetOptions : { filter_functions : {
|
|
// Add select menu to this column
|
|
0 : {
|
|
"Aktive" : function(e, n, f, i, $r, c, data) { return /a/.test(e); },
|
|
"Wartende" : function(e, n, f, i, $r, c, data) { return /b/.test(e); },
|
|
"Inaktive" : function(e, n, f, i, $r, c, data) { return /c/.test(e); }
|
|
}
|
|
}},
|
|
// Um die Werte im Dropdown sortieren zu können
|
|
textExtraction: function(node) {
|
|
// Check if option selected is set
|
|
if ($(node).find('option:selected').text() != "") {
|
|
return $(node).find('option:selected').text();
|
|
}
|
|
// Otherwise return text
|
|
else return $(node).text();
|
|
}
|
|
});
|
|
$("#t2").tablesorter(
|
|
{
|
|
sortList: [[0,1]],
|
|
widgets: ["filter"],
|
|
headers: { 0: { sorter: "customDate"}},
|
|
widgetOptions : {}
|
|
});
|
|
//document.berechtigung_neu.rolle_kurzbz.focus();
|
|
|
|
// Breite des Autocompletes korrigieren um das Springen zu verhindern
|
|
$.extend($.ui.autocomplete.prototype.options, {
|
|
open: function(event, ui) {
|
|
$(this).autocomplete("widget").css({
|
|
"width": ($(".ui-menu-item").width()+ 20 + "px"),
|
|
"padding-left": "5px"
|
|
});
|
|
}
|
|
});
|
|
|
|
$(".berechtigung_autocomplete").autocomplete({
|
|
source: "benutzerberechtigung_autocomplete.php?autocomplete=berechtigung",
|
|
minLength:2,
|
|
response: function(event, ui)
|
|
{
|
|
if (!ui.content.length)
|
|
{
|
|
var noResult = { value:"",label:"Keine Ergebnisse" };
|
|
ui.content.push(noResult);
|
|
}
|
|
else
|
|
{//Value und Label fuer die Anzeige setzen
|
|
for (i in ui.content) {
|
|
ui.content[i].value = ui.content[i].berechtigung_kurzbz;
|
|
ui.content[i].label = ui.content[i].berechtigung_kurzbz + " - " + ui.content[i].beschreibung;
|
|
}
|
|
}
|
|
},
|
|
select: function(event, ui)
|
|
{
|
|
//Ausgewaehlte Ressource zuweisen und Textfeld wieder leeren
|
|
$(this).val(ui.item.berechtigung_kurzbz);
|
|
}
|
|
});
|
|
|
|
$(".oe_kurzbz_autocomplete").autocomplete({
|
|
source: "benutzerberechtigung_autocomplete.php?autocomplete=oe_kurzbz",
|
|
minLength:2,
|
|
response: function(event, ui)
|
|
{
|
|
if (!ui.content.length)
|
|
{
|
|
var noResult = { value:"",label:"Keine Ergebnisse" };
|
|
ui.content.push(noResult);
|
|
}
|
|
else
|
|
{
|
|
//Value und Label fuer die Anzeige setzen
|
|
for (i in ui.content) {
|
|
ui.content[i].value = ui.content[i].organisationseinheittyp_kurzbz + " " + ui.content[i].bezeichnung;
|
|
ui.content[i].label = ui.content[i].organisationseinheittyp_kurzbz + " " + ui.content[i].bezeichnung;
|
|
}
|
|
}
|
|
},
|
|
select: function(event, ui)
|
|
{
|
|
$(this).siblings('input:hidden').val(ui.item.oe_kurzbz);
|
|
}
|
|
});
|
|
$(".oe_kurzbz_autocomplete").on( "input", function() {
|
|
if ($(this).val() == '')
|
|
{
|
|
$(this).siblings('input:hidden').val('');
|
|
}
|
|
});
|
|
|
|
$(".benutzer_autocomplete").autocomplete({
|
|
source: "benutzerberechtigung_autocomplete.php?autocomplete=benutzer",
|
|
minLength:2,
|
|
response: function(event, ui)
|
|
{
|
|
if (!ui.content.length)
|
|
{
|
|
var noResult = { value:"",label:"Keine Ergebnisse" };
|
|
ui.content.push(noResult);
|
|
}
|
|
else
|
|
{
|
|
//Value und Label fuer die Anzeige setzen
|
|
for(i in ui.content)
|
|
{
|
|
ui.content[i].value=ui.content[i].uid;
|
|
ui.content[i].label=ui.content[i].nachname+" "+ui.content[i].vorname;
|
|
}
|
|
}
|
|
},
|
|
select: function(event, ui)
|
|
{
|
|
$(this).val(ui.item.uid);
|
|
},
|
|
position: { my : "left bottom", at: "left top" }
|
|
});
|
|
|
|
$(".kostenstelle_autocomplete").autocomplete({
|
|
source: "benutzerberechtigung_autocomplete.php?autocomplete=kostenstelle",
|
|
minLength:2,
|
|
response: function(event, ui)
|
|
{
|
|
if (!ui.content.length)
|
|
{
|
|
var noResult = { value:"",label:"Keine Ergebnisse" };
|
|
ui.content.push(noResult);
|
|
}
|
|
else
|
|
{
|
|
//Value und Label fuer die Anzeige setzen
|
|
for (i in ui.content) {
|
|
ui.content[i].value = ui.content[i].bezeichnung;
|
|
ui.content[i].label = ui.content[i].bezeichnung;
|
|
}
|
|
}
|
|
},
|
|
select: function(event, ui)
|
|
{
|
|
$(this).siblings('input:hidden').val(ui.item.kostenstelle_id);
|
|
}
|
|
});
|
|
$(".kostenstelle_autocomplete").on( "input", function() {
|
|
if ($(this).val() == '')
|
|
{
|
|
$(this).siblings('input:hidden').val('');
|
|
}
|
|
});
|
|
|
|
$("#toggle_t1").on('click', function(e) {
|
|
$(".auswahlcheckboxen").checkboxes('toggle');
|
|
e.preventDefault();
|
|
});
|
|
|
|
$("#uncheck_t1").on('click', function(e) {
|
|
$(".auswahlcheckboxen").checkboxes('uncheck');
|
|
e.preventDefault();
|
|
});
|
|
|
|
$("#t1").checkboxes("range", true, ".auswahlcheckboxen :checkbox");
|
|
|
|
var aktiv = $('td.auswahlcheckboxen[data-gruen]').length + $('td.auswahlcheckboxen[data-gelb]').length;
|
|
var inaktiv = $('td.auswahlcheckboxen[data-rot]').length;
|
|
|
|
$("#anzahl").html(aktiv + inaktiv + " Einträge (" + aktiv + " Aktive, " + inaktiv + " Inaktive (ausgeblendet))");
|
|
|
|
/*$('.checkbox').each(function ()
|
|
{
|
|
$("#t1").checkboxes('range', true);
|
|
});*/
|
|
|
|
$("#uncheck_t1").on('click', function(e)
|
|
{
|
|
$(".auswahlcheckboxen").checkboxes('uncheck');
|
|
e.preventDefault();
|
|
});
|
|
|
|
// Wenn eine Auswahlcheckbox angeklickt wird, Zusatzoptionen anzeigen
|
|
$(".auswahlcheckbox").change(function() {
|
|
if ($(".auswahlcheckbox:checked").length > 0)
|
|
{
|
|
// Aktiviere Inputs, wenn mindestens eine Checkbox ausgewählt ist
|
|
$(".multi-options input[type=text]").prop('disabled', false);
|
|
$(".multi-options").find("button").prop('disabled', false);
|
|
}
|
|
else
|
|
{
|
|
// Deaktiviere Inputs, wenn keine Checkbox ausgewählt ist
|
|
$(".multi-options input[type=text]").prop('disabled', true);
|
|
$(".multi-options").find("button").prop('disabled', true);
|
|
}
|
|
});
|
|
|
|
// Wenn etwas ins Neu-Formular eingegeben wird, nur den Neu-Speicherbutton aktivieren, sonst den anderen
|
|
$("#neu :input").on( "input", function() {
|
|
var filled = false;
|
|
|
|
$("#formNeuesRecht :input").each(function() {
|
|
if ($(this).val().trim() !== '') {
|
|
filled = true;
|
|
return false; // Brechen Sie die each-Schleife ab, wenn ein gefülltes Feld gefunden wurde
|
|
}
|
|
});
|
|
|
|
// Aktualisieren Sie den Status des Buttons basierend auf den Änderungen in den Feldern
|
|
$("#ButtonSpeichern").prop("disabled", !filled);
|
|
$("#ButtonNeu").prop("disabled", filled);
|
|
|
|
// Aktualisieren Sie die Variable, um den Status zu speichern
|
|
isButtonDisabled = !filled;
|
|
});
|
|
|
|
// Wenn etwas ins Rechte-Formular eingegeben wird, nur den Speicherbutton aktivieren, sonst den anderen
|
|
$("#formRechte :input").on( "input", function() {
|
|
var filled = false;
|
|
|
|
$("#formNeuesRecht :input").each(function() {
|
|
if ($(this).val().trim() !== '') {
|
|
filled = true;
|
|
return false; // Brechen Sie die each-Schleife ab, wenn ein gefülltes Feld gefunden wurde
|
|
}
|
|
});
|
|
|
|
// Aktualisieren Sie den Status des Buttons basierend auf den Änderungen in den Feldern
|
|
$("#ButtonNeu").prop("disabled", !filled);
|
|
$("#ButtonSpeichern").prop("disabled", filled);
|
|
|
|
// Aktualisieren Sie die Variable, um den Status zu speichern
|
|
isButtonDisabled = !filled;
|
|
});
|
|
|
|
$('input[type="text"]').on('keydown', function(e){
|
|
if(e.ctrlKey && e.altKey && e.keyCode == 84){ // Wenn Strg + Alt + T gedrückt wird
|
|
e.preventDefault();
|
|
insertDatumAtCursor(this);
|
|
}
|
|
});
|
|
|
|
function insertDatumAtCursor(input){
|
|
var startPos = input.selectionStart;
|
|
var endPos = input.selectionEnd;
|
|
var currentDate = getCurrentDateAndUser();
|
|
var text = $(input).val();
|
|
var newText = text.substring(0, startPos) + currentDate + text.substring(endPos, text.length);
|
|
$(input).val(newText);
|
|
$(input).prop('selectionStart', startPos + currentDate.length);
|
|
$(input).prop('selectionEnd', startPos + currentDate.length);
|
|
}
|
|
|
|
function getCurrentDateAndUser()
|
|
{
|
|
var today = new Date();
|
|
var dd = String(today.getDate()).padStart(2, '0');
|
|
var mm = String(today.getMonth() + 1).padStart(2, '0'); // Januar ist 0!
|
|
var yyyy = today.getFullYear();
|
|
return dd + '.' + mm + '.' + yyyy+ ' <?php echo $userKuerzel; ?>: ';
|
|
}
|
|
|
|
//if (typeof $("#filterTableDataset").checkboxes === 'function')
|
|
// $("#filterTableDataset").checkboxes("range", true);
|
|
//$("input.auswahlcheckbox").checkboxes('range', true); //Wählt ALLE Checkboxen. Funktioniert nicht mit anderem selector
|
|
|
|
window.setTimeout(function()
|
|
{
|
|
$(".alert-success").fadeTo(500, 0).slideUp(500, function(){
|
|
$(this).remove();
|
|
});
|
|
}, 1500);
|
|
});
|
|
|
|
function validateUebertragen()
|
|
{
|
|
if($('input.auswahlcheckbox:checked').length == 0)
|
|
{
|
|
alert('Bitte mindestens eine Berechtigung auswählen');
|
|
return false;
|
|
}
|
|
else if($('#input_uebertragen_nach').val() == '')
|
|
{
|
|
alert('Bitte eine UID angeben');
|
|
return false;
|
|
}
|
|
else
|
|
return true;
|
|
}
|
|
|
|
function validateAnmerkungMulti()
|
|
{
|
|
if($('input.auswahlcheckbox:checked').length == 0)
|
|
{
|
|
alert('Bitte mindestens eine Berechtigung auswählen');
|
|
return false;
|
|
}
|
|
else if($('#input_anmerkung_multi').val() == '')
|
|
{
|
|
alert('Bitte Text eingeben, der als Anmerkung hinzugefügt werden soll');
|
|
return false;
|
|
}
|
|
else
|
|
return true;
|
|
}
|
|
|
|
function validateBeenden()
|
|
{
|
|
if($('input.auswahlcheckbox:checked').length == 0)
|
|
{
|
|
alert('Bitte mindestens eine Berechtigung auswählen');
|
|
return false;
|
|
}
|
|
else
|
|
return true;
|
|
}
|
|
|
|
function validateDeleteMulti()
|
|
{
|
|
if($('input.auswahlcheckbox:checked').length == 0)
|
|
{
|
|
alert('Bitte mindestens einen Eintrag auswählen');
|
|
return false;
|
|
}
|
|
else
|
|
{
|
|
if(confirm("Markierte Einträge löschen?"))
|
|
return true;
|
|
return false;
|
|
}
|
|
}
|
|
|
|
function validateNewData()
|
|
{
|
|
if($('#rolle_kurzbz_neu').val() != '' && $('#berechtigung_neu_autocomplete').val() != '')
|
|
{
|
|
alert('Rolle und Berechtigung darf nicht gleichzeitig gesetzt sein')
|
|
return false;
|
|
}
|
|
else if($('#rolle_kurzbz_neu').val() == '' && $('#berechtigung_neu_autocomplete').val() == '')
|
|
{
|
|
alert('Es muss entweder eine Rolle oder ein Recht ausgewählt sein')
|
|
return false;
|
|
}
|
|
else if ($('#art_neu').val() == '')
|
|
{
|
|
alert('Art darf nicht leer sein')
|
|
return false;
|
|
}
|
|
else if ($('#art_neu').val() != '')
|
|
{
|
|
var eingabe = $('#art_neu').val().toLowerCase();
|
|
var erlaubt = ['s', 'su', 'sui', 'suid'];
|
|
|
|
if (erlaubt.includes(eingabe))
|
|
{
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
alert('Erlaubte Werte für Art sind s, su, sui, suid');
|
|
return false;
|
|
}
|
|
}
|
|
else
|
|
return true;
|
|
}
|
|
|
|
function validateSpeichern()
|
|
{
|
|
var ok = true;
|
|
$('#t1 input.berechtigung_autocomplete').each(function ()
|
|
{
|
|
var select = $(this).parent().parent().find('.rolle_select').find(":selected").text().trim();
|
|
var input = $(this).val().trim();
|
|
|
|
if(input != '' && select != '')
|
|
{
|
|
alert('Rolle und Berechtigung dürfen nicht gleichzeitig gesetzt sein');
|
|
ok = false;
|
|
}
|
|
else if(input == '' && select == '')
|
|
{
|
|
alert('Rolle und Berechtigung dürfen nicht beide leer sein');
|
|
ok = false;
|
|
}
|
|
});
|
|
|
|
if (ok == true)
|
|
{
|
|
return true;
|
|
}
|
|
else
|
|
return false;
|
|
}
|
|
|
|
function confdel()
|
|
{
|
|
if(confirm("Diesen Datensatz wirklich löschen?"))
|
|
return true;
|
|
return false;
|
|
}
|
|
|
|
function markier(id)
|
|
{
|
|
for (var i = 0; i < document.getElementsByName(id).length; i++)
|
|
{
|
|
document.getElementsByName(id)[i].style.background = "#FC988D";
|
|
}
|
|
}
|
|
|
|
function unmarkier(id)
|
|
{
|
|
document.getElementById(id).style.background = "#eeeeee";
|
|
}
|
|
|
|
function checkdate(feld)
|
|
{
|
|
if ((feld.value != "") && (!dateCheck(feld)))
|
|
{
|
|
//document.studiengangform.schick.disabled = true;
|
|
feld.className = "input_error";
|
|
return false;
|
|
}
|
|
else
|
|
{
|
|
if(feld.value != "")
|
|
feld.value = dateCheck(feld);
|
|
|
|
feld.className = "input_ok";
|
|
return true;
|
|
}
|
|
}
|
|
|
|
function checkrequired(id)
|
|
{
|
|
if(document.getElementById(id).value == "")
|
|
{
|
|
document.getElementById(id).style.border = "solid red 2px";
|
|
return false;
|
|
}
|
|
else
|
|
{
|
|
document.getElementById(id).style.border = "";
|
|
return true;
|
|
}
|
|
}
|
|
function setnull(id)
|
|
{
|
|
document.getElementById(id).selectedIndex=0;
|
|
}
|
|
function disable(id)
|
|
{
|
|
document.getElementById(id).disabled = true;
|
|
//document.getElementById("art_"+id).value="";
|
|
}
|
|
function enable(id)
|
|
{
|
|
document.getElementById(id).disabled = false;
|
|
}
|
|
function validateArt(id)
|
|
{
|
|
var eingabe, c, erlaubt = 'suid', laenge;
|
|
eingabe = document.getElementById(id).value;
|
|
eingabe = eingabe.toLowerCase();
|
|
laenge = eingabe.length;
|
|
if (eingabe == '')
|
|
{
|
|
alert('Geben Sie bitte einen Wert bei "Art" ein!');
|
|
return false;
|
|
}
|
|
for (c = 0; c < laenge; c++)
|
|
{
|
|
d = eingabe.charAt(c);
|
|
if (erlaubt.indexOf(d) == -1)
|
|
{
|
|
alert ('Erlaubte Werte sind s,u,i,d');
|
|
document.getElementById(id).style.border = "solid red 2px";
|
|
return false;
|
|
}
|
|
else
|
|
document.getElementById(id).style.border = "";
|
|
}
|
|
}
|
|
function show_hidden()
|
|
{
|
|
$("tr.ausgeblendet:hidden").each(function()
|
|
{
|
|
$(this).fadeIn(1000);
|
|
});
|
|
}
|
|
|
|
function submitNeuesRecht()
|
|
{
|
|
if (validateNewData())
|
|
{
|
|
var form = document.getElementById("formNeuesRecht");
|
|
form.submit();
|
|
}
|
|
}
|
|
</script>
|
|
</head>
|
|
<body style="background-color:#eeeeee;">
|
|
|
|
<?php
|
|
echo $htmlstr;
|
|
//echo $reloadstr; Auskommentiert weils nervt
|
|
?>
|
|
|
|
</body>
|
|
</html>
|