From e316feb06189e2715e8fde8ec37c7ced80e52923 Mon Sep 17 00:00:00 2001 From: oesi Date: Wed, 24 Feb 2016 09:18:53 +0100 Subject: [PATCH 1/5] =?UTF-8?q?Berechtigungen=20f=C3=BCr=20die=20anzeige?= =?UTF-8?q?=20von=20Men=C3=BCpunkten=20im=20Vilesci=20korrigiert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/tw/vilesci_menu_main.inc.php | 69 ++--- .../personen/anwesenheitslisten_barcode.php | 36 ++- vilesci/personen/funktion_det.php | 98 +++--- vilesci/personen/lektor_uebersicht.php | 68 ++-- vilesci/personen/suche.php | 61 ++-- vilesci/personen/zeitwunsch.php | 29 +- vilesci/stammdaten/lv_wartung.php | 291 ------------------ 7 files changed, 178 insertions(+), 474 deletions(-) delete mode 100644 vilesci/stammdaten/lv_wartung.php diff --git a/include/tw/vilesci_menu_main.inc.php b/include/tw/vilesci_menu_main.inc.php index ca30dd336..d62eb22e6 100644 --- a/include/tw/vilesci_menu_main.inc.php +++ b/include/tw/vilesci_menu_main.inc.php @@ -48,21 +48,21 @@ $menu=array 'Incoming loeschen'=>array('name'=>'Incoming löschen', 'link'=>'lehre/incoming_delete.php', 'target'=>'main'), ), 'Raummitteilung'=>array('name'=>'Raummitteilung', 'link'=>'lehre/raummitteilung.php', 'target'=>'main'), - + 'Mitarbeiter'=>array ( 'name'=>'Mitarbeiter','permissions'=>array('admin','lv-plan','support'), - 'Übersicht'=>array('name'=>'Zeitwünsche', 'link'=>'personen/lektor_uebersicht.php', 'target'=>'main'), - 'Zeitsperren'=>array('name'=>'Zeitsperren', 'link'=>'personen/urlaubsverwaltung.php', 'target'=>'main'), + 'Übersicht'=>array('name'=>'Zeitwünsche', 'link'=>'personen/lektor_uebersicht.php', 'target'=>'main','permissions'=>array('mitarbeiter')), + 'Zeitsperren'=>array('name'=>'Zeitsperren', 'link'=>'personen/urlaubsverwaltung.php', 'target'=>'main','permissions'=>array('mitarbeiter/zeitsperre')), ), - + 'Vorrueckung'=> array ( - 'name'=>'Vorrueckung', 'permissions'=>array('admin','lv-plan','support'), - 'Lehreinheiten'=>array('name'=>'Lehreinheiten', 'link'=>'lehre/lehreinheiten_vorrueckung.php', 'target'=>'main'), - 'Studenten'=>array('name'=>'Studenten', 'link'=>'personen/student_vorrueckung.php', 'target'=>'main') + 'name'=>'Vorrueckung', 'permissions'=>array('lehre/vorrueckung','student/vorrueckung'), + 'Lehreinheiten'=>array('name'=>'Lehreinheiten', 'link'=>'lehre/lehreinheiten_vorrueckung.php', 'target'=>'main', 'permissions'=>array('lehre/vorrueckung'),), + 'Studenten'=>array('name'=>'Studenten', 'link'=>'personen/student_vorrueckung.php', 'target'=>'main','permissions'=>array('student/vorrueckung'),) ), - + ), 'Lehre'=> array ( @@ -71,10 +71,10 @@ $menu=array 'Gruppenverwaltung'=>array('name'=>'Gruppen', 'permissions'=>array('admin','lv-plan','support'), 'link'=>'stammdaten/lvbgruppenverwaltung.php', 'target'=>'main'), 'Lehrveranstaltung'=>array('name'=>'Lehrveranstaltung', 'link'=>'lehre/lehrveranstaltung_frameset.html', 'target'=>'main'), 'Studienordnung'=>array('name'=>'Studienordnung', 'link'=>'lehre/studienordnung.php', 'target'=>'_blank','permissions'=>array('lehre/studienordnung')), - + 'Moodle'=>array ( - 'name'=>'Moodle', 'permissions'=>array('admin','lv-plan','support','basis/moodle'), + 'name'=>'Moodle', 'permissions'=>array('basis/moodle'), 'Account'=>array('name'=>'Accountverwaltung', 'link'=>'moodle/account_verwaltung24.php', 'target'=>'main'), 'Kursverwaltung'=>array('name'=>'Kurs entfernen', 'link'=>'moodle/kurs_verwaltung24.php', 'target'=>'main'), 'Rollenzuteilung'=>array('name'=>'Rollenzuteilung', 'link'=>'moodle/rollenzuteilung24.php', 'target'=>'main'), @@ -106,13 +106,13 @@ $menu=array 'name'=>'Personen', 'opener'=>'true', 'hide'=>'true', 'image'=>'vilesci_personen.png', 'permissions'=>array('admin','lv-plan','support','mitarbeiter','basis/person'), 'link'=>'left.php?categorie=Personen', 'target'=>'nav', 'Suche'=>array('name'=>'Suche', 'link'=>'personen/suche.php', 'target'=>'main','permissions'=>array('admin','lv-plan','support','basis/person')), - 'Zusammenlegen'=>array('name'=>'Zusammenlegen', 'link'=>'stammdaten/personen_wartung.php', 'target'=>'main', 'permissions'=>array('admin','lv-plan','support')), + 'Zusammenlegen'=>array('name'=>'Zusammenlegen', 'link'=>'stammdaten/personen_wartung.php', 'target'=>'main', 'permissions'=>array('basis/person')), 'Wiederholer'=>array('name'=>'Stg-Wiederholer', 'link'=>'personen/wiederholer.php', 'target'=>'main', 'permissions'=>array('basis/person')), 'Gruppen'=>array ( - 'name'=>'Gruppen', 'permissions'=>array('admin','lv-plan','support'), - 'Übersicht'=>array('name'=>'Übersicht', 'link'=>'lehre/einheit_menu.php', 'target'=>'main'), - 'Neu'=>array('name'=>'Neu', 'link'=>'lehre/einheit_menu.php?newFrm=true', 'target'=>'main') + 'name'=>'Gruppen', 'permissions'=>array('lehre/gruppe'), + 'Übersicht'=>array('name'=>'Übersicht', 'link'=>'lehre/einheit_menu.php', 'target'=>'main','permissions'=>array('lehre/gruppe')), + 'Neu'=>array('name'=>'Neu', 'link'=>'lehre/einheit_menu.php?newFrm=true', 'target'=>'main','permissions'=>array('lehre/gruppe')) ), 'Benutzer'=>array ( @@ -126,12 +126,12 @@ $menu=array ( 'name'=>'Mitarbeiter','permissions'=>array('admin','mitarbeiter','support'), 'Übersicht'=>array('name'=>'Übersicht', 'link'=>'personen/lektor_uebersicht.php', 'target'=>'main'), - 'Zeitsperren'=>array('name'=>'Zeitsperren', 'link'=>'personen/urlaubsverwaltung.php', 'target'=>'main'), - 'Resturlaub'=>array('name'=>'Urlaub', 'link'=>'personen/resturlaub_frameset.html', 'target'=>'main') + 'Zeitsperren'=>array('name'=>'Zeitsperren', 'link'=>'personen/urlaubsverwaltung.php', 'target'=>'main','permissions'=>array('mitarbeiter/zeitsperre')), + 'Resturlaub'=>array('name'=>'Urlaub', 'link'=>'personen/resturlaub_frameset.html', 'target'=>'main','permissions'=>array('mitarbeiter/zeitsperre')) ), - 'Betriebsmittel'=>array('name'=>'Betriebsmittel', 'link'=>'stammdaten/betriebsmittel_frameset.php', 'target'=>'main','permissions'=>array('admin','lv-plan','support','basis/betriebsmittel')), - 'AnwesenheitslistenBarcode'=>array('name'=>'Anwesenheitslisten mit Barcodes', 'link'=>'personen/anwesenheitslisten_barcode.php', 'target'=>'main','permissions'=>array('admin','lv-plan','support','preinteressent')), - 'Preinteressenten'=>array('name'=>'Preinteressenten', 'link'=>'personen/preinteressent_frameset.html', 'target'=>'_blank','permissions'=>array('admin','lv-plan','support','preinteressent')), + 'Betriebsmittel'=>array('name'=>'Betriebsmittel', 'link'=>'stammdaten/betriebsmittel_frameset.php', 'target'=>'main','permissions'=>array('basis/betriebsmittel')), + 'AnwesenheitslistenBarcode'=>array('name'=>'Anwesenheitslisten mit Barcodes', 'link'=>'personen/anwesenheitslisten_barcode.php', 'target'=>'main','permissions'=>array('basis/person')), + 'Preinteressenten'=>array('name'=>'Preinteressenten', 'link'=>'personen/preinteressent_frameset.html', 'target'=>'_blank','permissions'=>array('admin','preinteressent')), 'Incoming'=>array('name'=>'Incoming', 'link'=>'personen/incoming_frameset.php', 'target'=>'_blank','permissions'=>array('inout/incoming')), 'Outgoing'=>array('name'=>'Outgoing', 'link'=>'personen/outgoing_frameset.php', 'target'=>'_blank','permissions'=>array('inout/outgoing')) ), @@ -141,7 +141,7 @@ $menu=array 'link'=>'left.php?categorie=Stammdaten', 'target'=>'nav', 'Betriebsmittel'=>array('name'=>'Betriebsmittel', 'link'=>'stammdaten/betriebsmittel_frameset.php', 'target'=>'main','permissions'=>array('basis/betriebsmittel')), 'Reihungstest'=>array('name'=>'Reihungstest', 'link'=>'stammdaten/reihungstestverwaltung.php', 'target'=>'main','permissions'=>array('admin','assistenz')), - + 'User'=>array ( 'name'=>'User', 'permissions'=>array('basis/variable','basis/berechtigung'), @@ -154,7 +154,7 @@ $menu=array 'name'=>'Personal', 'permissions'=>array('buchung/typen','vertrag/typen'), 'Buchungstypen'=>array('name'=>'Buchungstypen', 'link'=>'stammdaten/buchung_typ.php', 'target'=>'main','permissions'=>array('buchung/typen')), 'Vertragstypen'=>array('name'=>'Vertragstypen', 'link'=>'stammdaten/vertrag_typ.php', 'target'=>'main','permissions'=>array('vertrag/typen')) - ), + ), 'Studiengang'=>array('name'=>'Studiengang', 'link'=>'stammdaten/studiengang_frameset.html', 'target'=>'main','permissions'=>array('basis/studiengang')), 'Ort'=>array('name'=>'Ort (Raum)', 'link'=>'stammdaten/raum_frameset.html', 'target'=>'main','permissions'=>array('basis/ort')), 'Firmen'=>array('name'=>'Firmen', 'link'=>'stammdaten/firma_frameset.html', 'target'=>'main','permissions'=>array('basis/firma')), @@ -180,20 +180,19 @@ $menu=array ), 'Wartung'=> array ( - 'name'=>'Wartung', 'opener'=>'true', 'hide'=>'true', 'image'=>'vilesci_wartung.png', 'link'=>'left.php?categorie=Wartung', 'target'=>'nav', + 'name'=>'Wartung', 'opener'=>'true', 'hide'=>'true', 'image'=>'vilesci_wartung.png', 'link'=>'left.php?categorie=Wartung', 'target'=>'nav', - 'DokumenteZuteilung'=>array('name'=>'Dokumente Zuteilung', 'link'=>'stammdaten/studiengang_dokumente.php', 'target'=>'main', 'permissions'=>array('basis/studiengang')), + 'DokumenteZuteilung'=>array('name'=>'Dokumente Zuteilung', 'link'=>'stammdaten/studiengang_dokumente.php', 'target'=>'main', 'permissions'=>array('basis/studiengang')), 'Vorrueckung'=> array ( - 'name'=>'Vorrueckung', 'permissions'=>array('admin','lv-plan','support'), - 'Lehreinheiten'=>array('name'=>'Lehreinheiten', 'link'=>'lehre/lehreinheiten_vorrueckung.php', 'target'=>'main'), - 'Studenten'=>array('name'=>'Studenten', 'link'=>'personen/student_vorrueckung.php', 'target'=>'main') + 'name'=>'Vorrueckung', 'permissions'=>array('lehre/vorrueckung','student/vorrueckung'), + 'Lehreinheiten'=>array('name'=>'Lehreinheiten', 'link'=>'lehre/lehreinheiten_vorrueckung.php', 'target'=>'main','permissions'=>array('lehre/vorrueckung'),), + 'Studenten'=>array('name'=>'Studenten', 'link'=>'personen/student_vorrueckung.php', 'target'=>'main','permissions'=>array('student/vorrueckung'),) ), - 'LVWartung'=>array('name'=>'LVwartung', 'link'=>'stammdaten/lv_wartung.php', 'target'=>'main'), - 'Kreuzerllistekopieren'=>array('name'=>'Kreuzerllisten kopieren', 'link'=>CIS_ROOT.'cis/private/lehre/benotungstool/copy_uebung.php', 'target'=>'_blank'), - 'Firmenwartung'=>array('name'=>'Firmenwartung', 'link'=>'stammdaten/firma_zusammen_uebersicht.php', 'target'=>'main'), + 'Kreuzerllistekopieren'=>array('name'=>'Kreuzerllisten kopieren', 'link'=>CIS_ROOT.'cis/private/lehre/benotungstool/copy_uebung.php', 'target'=>'_blank','permissions'=>array('admin')), + 'Firmenwartung'=>array('name'=>'Firmenwartung', 'link'=>'stammdaten/firma_zusammen_uebersicht.php', 'target'=>'main','permissions'=>array('basis/firma')), 'checkStudenten'=>array('name'=>'CheckStudenten', 'link'=>'../system/checkStudenten.php', 'target'=>'main'), - 'StudienplanZuteilung'=>array('name'=>'Studienplan Zuteilung', 'link'=>'lehre/studienplan_zuteilung.php', 'target'=>'main'), + 'StudienplanZuteilung'=>array('name'=>'Studienplan Zuteilung', 'link'=>'lehre/studienplan_zuteilung.php', 'target'=>'main','permissions'=>array('assistenz')), ), 'Auswertung'=> array ( @@ -212,17 +211,17 @@ $menu=array 'link'=>'left.php?categorie=Inventar', 'target'=>'nav', 'Inventar'=> array ( - 'name'=>'Inventar', 'permissions'=>array('admin','wawi','support','wawi/inventar'), + 'name'=>'Inventar', 'permissions'=>array('admin','wawi','support','wawi/inventar'), 'Neu'=>array('name'=>'Neu', 'link'=>'inventar/inventar_pflege.php?vorlage=false', 'target'=>'main'), 'Suche'=>array('name'=>'Suche', 'link'=>'inventar/inventar.php', 'target'=>'main'), 'AfA'=>array('name'=>'AfA', 'link'=>'inventar/inventar_afa.php', 'target'=>'main'), 'Inventur'=>array('name'=>'Inventur', 'link'=>'inventar/inventar_inventur.php', 'target'=>'main'), 'Etiketten'=>array('name'=>'Etiketten', 'link'=>'inventar/etiketten.php', 'target'=>'main'), ) - ), + ), 'Admin'=> array ( - 'name'=>'Admin', 'opener'=>'true', 'hide'=>'true', 'permissions'=>array('admin','lv-plan','support'), 'image'=>'vilesci_admin.png', + 'name'=>'Admin', 'opener'=>'true', 'hide'=>'true', 'permissions'=>array('basis/cronjob'), 'image'=>'vilesci_admin.png', 'link'=>'left.php?categorie=Admin', 'target'=>'nav', 'Cronjobs'=>array('name'=>'Cronjobs', 'link'=>'stammdaten/cronjobverwaltung.php', 'target'=>'main','permissions'=>array('basis/cronjob')), ), @@ -231,7 +230,7 @@ $menu=array 'name'=>'SD-Tools', 'opener'=>'true', 'hide'=>'true', 'permissions'=>array('sdTools'), 'image'=>'vilesci_sdtools.png', 'link'=>'https://sdtools.technikum-wien.at', 'target'=>'_blank', ) - + ); require_once(dirname(__FILE__).'/../statistik.class.php'); @@ -253,7 +252,7 @@ if($addon_obj->loadAddons()) ); foreach($addon_obj->result as $row) - { + { $menu['Addons'][$row->kurzbz]=array('name'=>$row->addon_name, 'link'=>'../addons/'.$row->kurzbz.'/vilesci/index.php', 'target'=>'main'); } } diff --git a/vilesci/personen/anwesenheitslisten_barcode.php b/vilesci/personen/anwesenheitslisten_barcode.php index 34eb0d5b6..0d51ce051 100644 --- a/vilesci/personen/anwesenheitslisten_barcode.php +++ b/vilesci/personen/anwesenheitslisten_barcode.php @@ -17,13 +17,19 @@ * * Authors: Nikolaus Krondraf */ - require_once('../../config/vilesci.config.inc.php'); require_once('../../include/functions.inc.php'); require_once('../../include/studiengang.class.php'); require_once('../../include/stunde.class.php'); require_once('../../include/standort.class.php'); +require_once('../../include/benutzerberechtigung.class.php'); +$uid = get_uid(); +$rechte = new benutzerberechtigung(); +$rechte->getBerechtigungen($uid); +if(!$rechte->isBerechtigt('basis/person')) + die($rechte->errormsg); + $studiengang = new studiengang; $studiengang->getAll("typ, kurzbz"); $standort = new standort; @@ -38,25 +44,25 @@ $standort->getAllStandorteWithOrt(); - - + + @@ -111,7 +117,7 @@ $standort->getAllStandorteWithOrt(); - + @@ -170,7 +176,7 @@ $standort->getAllStandorteWithOrt(); diff --git a/vilesci/personen/funktion_det.php b/vilesci/personen/funktion_det.php index 11eba248b..d1c66d186 100644 --- a/vilesci/personen/funktion_det.php +++ b/vilesci/personen/funktion_det.php @@ -21,7 +21,7 @@ * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > */ - + /******************************************************************************* File: funktion_det.php Descr: Hier werden Personen aufgelistet, die zur in funktion.php ausgewählten @@ -35,6 +35,7 @@ require_once('../../include/person.class.php'); require_once('../../include/funktion.class.php'); require_once('../../include/benutzerfunktion.class.php'); require_once('../../include/fachbereich.class.php'); +require_once('../../include/benutzerberechtigung.class.php'); if (!$db = new basis_db()) die('Es konnte keine Verbindung zum Server aufgebaut werden.'); @@ -42,51 +43,58 @@ if (!$db = new basis_db()) // Datenbankverbindung herstellen $user=get_uid(); + +$rechte = new benutzerberechtigung(); +$rechte->getBerechtigungen($user); + +if(!$rechte->isBerechtigt('mitarbeiter',null,'suid')) + die($rechte->errormsg); + $type=''; if (isset($_POST['type'])) $type=$_POST['type']; if (isset($_GET['type'])) $type=$_GET['type']; - + if(isset($_GET['kurzbz'])) $funktion_kurzbz=$_GET['kurzbz']; if(isset($_GET['datumvon'])) $datumvon=$_GET['datumvon']; -else +else $datumvon=''; if(isset($_GET['datumbis'])) $datumbis=$_GET['datumbis']; -else +else $datumbis=''; // Neue Funktionszuweisung speichern if ($type=='new' || $type=='editsave') { //Einfügen in die Datenbank - + $funktion=new benutzerfunktion(); $funktion->uid=$_POST['uid']; $funktion->funktion_kurzbz=$_POST['kurzbz']; if (isset($_POST['oe_kurzbz']) && $_POST['oe_kurzbz']!=-1) { $funktion->oe_kurzbz=$_POST['oe_kurzbz']; - + if (isset($_POST['fb_kurzbz']) && $_POST['fb_kurzbz']!=-1) { $funktion->fachbereich_kurzbz=$_POST['fb_kurzbz']; - } + } else { $funktion->fachbereich_kurzbz=null; } - + $funktion->semester = (isset($_POST['semester'])?$_POST['semester']:''); $funktion->datum_von = $_POST['datumvon']; $funktion->datum_bis = $_POST['datumbis']; - + if($type=='editsave') { $funktion->new=false; @@ -94,21 +102,21 @@ if ($type=='new' || $type=='editsave') $funktion->updateamum=date('Y-m-d H:i:s'); $funktion->updatevon=$user; } - else + else { $funktion->new=true; $funktion->updateamum=date('Y-m-d H:i:s'); $funktion->updatevon=$user; $funktion->insertamum=date('Y-m-d H:i:s'); $funktion->insertvon=$user; - } - + } + if (!$funktion->save()) { echo "Fehler: ".$funktion->errormsg; } } - else + else echo "Studiengang muss angegeben werden"; } @@ -122,7 +130,7 @@ if ($type=='delete') { echo "Benutzer_funktion_id ist keine Zahl"; } - else + else { if (!$funktion->delete($bn_funktion_id)) { @@ -171,23 +179,23 @@ if (!$funktion->load($kurzbz)) if ($type!='edit') { // Personen holen - $qry = "SELECT + $qry = "SELECT tbl_organisationseinheit.bezeichnung as oebezeichnung, - tbl_organisationseinheit.organisationseinheittyp_kurzbz as oetyp, - tbl_benutzer.uid as uid, * - FROM - public.tbl_benutzerfunktion, - public.tbl_person, - public.tbl_benutzer, + tbl_organisationseinheit.organisationseinheittyp_kurzbz as oetyp, + tbl_benutzer.uid as uid, * + FROM + public.tbl_benutzerfunktion, + public.tbl_person, + public.tbl_benutzer, public.tbl_organisationseinheit - WHERE + WHERE funktion_kurzbz=".$db->db_add_param($kurzbz)." AND tbl_benutzerfunktion.uid=tbl_benutzer.uid AND tbl_benutzer.person_id=tbl_person.person_id AND tbl_benutzerfunktion.oe_kurzbz=tbl_organisationseinheit.oe_kurzbz"; if($result = $db->db_query($qry)) - { + { echo " @@ -200,10 +208,10 @@ if (!$funktion->load($kurzbz)) "; - $j=0; + $j=0; echo ''; while($row = $db->db_fetch_object($result)) - { + { $j++; echo ""; echo ""; @@ -219,21 +227,21 @@ if (!$funktion->load($kurzbz)) } echo ''; - } + } else { echo "Fehler: ". $db->db_last_error(); } } - + echo ' - +
NameAktion
".$row->nachname.", ".$row->vorname."

'; - + if ($type=='edit') { echo ''; @@ -241,8 +249,8 @@ if (!$funktion->load($kurzbz)) } else echo ''; - - echo ' + + echo ' @@ -261,13 +269,13 @@ if (!$funktion->load($kurzbz)) } echo ''; - + echo ''; - - + + $funktion = new funktion(); $funktion->load($funktion_kurzbz); - + if($funktion->fachbereich) { echo ' @@ -291,10 +299,10 @@ if (!$funktion->load($kurzbz)) '; } - + if($funktion->semester) { echo ' @@ -320,7 +328,7 @@ if (!$funktion->load($kurzbz)) '; } - + echo ''; echo ''; echo '
Organisationseinheit:
Datum Von:
Datum Bis:
'; - + echo ''; - + echo '

'; ?> diff --git a/vilesci/personen/lektor_uebersicht.php b/vilesci/personen/lektor_uebersicht.php index 305f9cee0..0a1f9b1cc 100644 --- a/vilesci/personen/lektor_uebersicht.php +++ b/vilesci/personen/lektor_uebersicht.php @@ -20,30 +20,21 @@ * Rudolf Hangl < rudolf.hangl@technikum-wien.at > * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > */ - require_once('../../config/vilesci.config.inc.php'); require_once('../../include/basis_db.class.php'); -include('../../include/functions.inc.php'); +require_once('../../include/functions.inc.php'); +require_once('../../include/benutzerberechtigung.class.php'); + +$user = get_uid(); +$rechte = new benutzerberechtigung(); +$rechte->getBerechtigungen($user); + +if(!$rechte->isBerechtigt('mitarbeiter')) + die($rechte->errormsg); if (!$db = new basis_db()) die('Es konnte keine Verbindung zum Server aufgebaut werden.'); - -if(isset($_GET['fix']) && isset($_GET['uid'])) -{ - $sql_query = "UPDATE public.tbl_mitarbeiter SET fixangestellt=". ($_GET['fix']=='t'?'false':'true') ." WHERE mitarbeiter_uid='".addslashes($_GET['uid'])."'"; - //echo $sql_query; - if(!($erg=$db->db_query($sql_query))) - die($db->db_last_error()); -} -if(isset($_GET['lek']) && isset($_GET['uid'])) -{ - $sql_query = "UPDATE public.tbl_mitarbeiter SET lektor=". ($_GET['lek']=='t'?'false':'true') ." WHERE mitarbeiter_uid='".addslashes($_GET['uid'])."'"; - //echo $sql_query; - if(!($erg=$db->db_query($sql_query))) - die($db->db_last_error()); - -} ?> @@ -52,43 +43,30 @@ if(isset($_GET['lek']) && isset($_GET['uid'])) -

Mitarbeiter Übersicht


- Bitte Suchbegriff eingeben: - + Bitte Suchbegriff eingeben: + - '; -if(!isset($_GET['searchstr'])) + '; +if(!isset($_GET['searchstr'])) exit; $qry = "SELECT vw_mitarbeiter.*, tbl_standort.kurzbz as standort_kurzbz FROM campus.vw_mitarbeiter LEFT JOIN public.tbl_standort USING(standort_id)"; if(!empty($searchstr)) - $qry.=" where nachname||' '||vorname ~* '".addslashes($searchstr)."' OR vorname||' '||nachname ~* '".addslashes($searchstr)."' OR uid ~* '".addslashes($searchstr)."' "; - if(isset($order)) - $qry .= " ORDER BY $order"; - else - $qry .= " ORDER BY nachname, vorname"; + $qry.=" where nachname||' '||vorname ~* '".$db->db_escape($searchstr)."' OR vorname||' '||nachname ~* '".$db->db_escape($searchstr)."' OR uid ~* '".$db->db_escape($searchstr)."' "; + $qry .= " ORDER BY nachname, vorname"; if($result = $db->db_query($qry)) { @@ -120,13 +98,12 @@ if(!isset($_GET['searchstr'])) echo "".$row->titelpre.""; echo "".$row->vorname.""; echo "".$row->nachname.""; - echo ""; - echo ""; - + echo "".($row->fixangestellt=='t'?'Ja':'Nein').""; + echo "".($row->lektor=='t'?'Ja':'Nein').""; echo "".$row->ort_kurzbz.""; echo "".$row->standort_kurzbz.""; echo "".$row->telefonklappe.""; - + $email=$row->uid.'@'.DOMAIN; echo "$email"; echo "Edit"; @@ -142,11 +119,6 @@ if(!isset($_GET['searchstr'])) } else echo "Fehler beim Laden der Mitarbeiter: ".$db->db_last_error(); - - if(isset($_GET['fix']) || isset($_GET['lek'])) //Zum Anker hüpfen - { - echo ""; - } ?> diff --git a/vilesci/personen/suche.php b/vilesci/personen/suche.php index 38108c24e..6c1ad5b35 100644 --- a/vilesci/personen/suche.php +++ b/vilesci/personen/suche.php @@ -22,7 +22,7 @@ */ require_once('../../config/vilesci.config.inc.php'); -require_once('../../include/basis_db.class.php'); +require_once('../../include/basis_db.class.php'); require_once('../../include/functions.inc.php'); require_once('../../include/studiengang.class.php'); require_once('../../include/person.class.php'); @@ -31,15 +31,22 @@ require_once('../../include/student.class.php'); require_once('../../include/prestudent.class.php'); require_once('../../include/datum.class.php'); require_once('../../include/authentication.class.php'); +require_once('../../include/benutzerberechtigung.class.php'); if (!$db = new basis_db()) die('Es konnte keine Verbindung zum Server aufgebaut werden.'); +$user=get_uid(); +$rechte = new benutzerberechtigung(); +$rechte->getBerechtigungen($user); +if(!$rechte->isBerechtigt('basis/person') && !$rechte->isBerechtigt('student/stammdaten') && !$rechte->isBerechtigt('mitarbeiter/stammdaten')) + die($rechte->errormsg); + if(isset($_GET['searchstr'])) $searchstr = $_GET['searchstr']; -else +else $searchstr = ''; - + $datum_obj = new datum(); echo ' @@ -52,7 +59,7 @@ echo '

Personensuche

'; - + $stg = new studiengang(); $stg->getAll('typ, kurzbz', false); @@ -61,7 +68,7 @@ foreach ($stg->result as $row) $stg_arr[$row->studiengang_kz]=$row->kuerzel; echo '
- Bitte Suchbegriff eingeben: + Bitte Suchbegriff eingeben:
'; @@ -70,18 +77,18 @@ if($searchstr!='') { $qry = "SELECT person_id FROM public.tbl_person WHERE person_id in( SELECT distinct person_id FROM public.tbl_person LEFT JOIN public.tbl_benutzer USING(person_id) WHERE - nachname ~* '".$db->db_escape($searchstr)."' OR + nachname ~* '".$db->db_escape($searchstr)."' OR vorname ~* '".$db->db_escape($searchstr)."' OR alias ~* '".$db->db_escape($searchstr)."' OR - COALESCE(nachname,'') || ' ' || COALESCE(vorname,'') = '".$db->db_escape($searchstr)."' OR - COALESCE(vorname,'') || ' ' || COALESCE(nachname,'') = '".$db->db_escape($searchstr)."' OR + COALESCE(nachname,'') || ' ' || COALESCE(vorname,'') = '".$db->db_escape($searchstr)."' OR + COALESCE(vorname,'') || ' ' || COALESCE(nachname,'') = '".$db->db_escape($searchstr)."' OR uid ~* '".$db->db_escape($searchstr)."' ) ORDER BY nachname, vorname;"; - + if($result = $db->db_query($qry)) - { + { $auth = new authentication(); - + echo $db->db_num_rows($result).' Person(en) gefunden

'; echo ''; echo ''; @@ -109,7 +116,7 @@ if($searchstr!='') echo ""; echo ""; echo ''; - + while($row = $db->db_fetch_object($result)) { $qry = "SELECT * FROM public.tbl_person WHERE person_id='$row->person_id'"; @@ -136,18 +143,18 @@ if($searchstr!='') echo ""; echo ""; echo ''; - + $content = ''; - $qry = "SELECT + $qry = "SELECT *, tbl_benutzer.updateamum as bnupdateamum, tbl_benutzer.updatevon as bnupdatevon, tbl_mitarbeiter.updateamum as mupdateamum, tbl_mitarbeiter.updatevon as mupdatevon - FROM public.tbl_mitarbeiter JOIN public.tbl_benutzer on(uid=mitarbeiter_uid) + FROM public.tbl_mitarbeiter JOIN public.tbl_benutzer on(uid=mitarbeiter_uid) WHERE person_id=".$db->db_add_param($row->person_id, FHC_INTEGER); if($result_mitarbeiter = $db->db_query($qry)) { if($db->db_num_rows($result_mitarbeiter)>0) { - + while($row_mitarbeiter = $db->db_fetch_object($result_mitarbeiter)) { $content.= ''; @@ -159,8 +166,8 @@ if($searchstr!='') $content.= ""; $content.= ""; $content.= ""; - - $content.= ""; //$content.= ""; //$content.= ""; - + $content.= ""; $content.= ""; $content.= ""; @@ -179,21 +186,21 @@ if($searchstr!='') } } } - + $qry = "SELECT *, tbl_benutzer.updateamum as bnupdateamum, tbl_benutzer.updatevon as bnupdatevon, tbl_student.updateamum as supdateamum, tbl_student.updatevon as supdatevon - FROM public.tbl_student JOIN public.tbl_benutzer ON(student_uid=uid) + FROM public.tbl_student JOIN public.tbl_benutzer ON(student_uid=uid) WHERE person_id=".$db->db_add_param($row->person_id, FHC_INTEGER); if($result_student = $db->db_query($qry)) { if($db->db_num_rows($result_student)) { - + while($row_student = $db->db_fetch_object($result_student)) { $student = new prestudent(); $student->getLastStatus($row_student->prestudent_id); - + $content.= ''; $content.= ''; $content.= ''; @@ -203,7 +210,7 @@ if($searchstr!='') $content.= ""; $content.= ""; $content.= ""; - + $content.= ""; //$content.= ""; //$content.= ""; - + $content.= ""; $content.= ""; $content.= ""; @@ -225,14 +232,14 @@ if($searchstr!='') } } } - + echo $content; } } } echo '
updateAmUmupdateVon
Mitarbeiter$row_mitarbeiter->uid".($row_mitarbeiter->aktiv=='t'?'Ja':'Nein').""; + + $content.= ""; if($auth->UserExternalExists($row_mitarbeiter->uid)) $content.="Ja"; else @@ -168,7 +175,7 @@ if($searchstr!='') $content.= "".($row_mitarbeiter->bnupdateamum!=''?date('d.m.Y H:i:s', $datum_obj->mktime_fromtimestamp($row_mitarbeiter->bnupdateamum)):'')."$row_mitarbeiter->bnupdatevon$row_mitarbeiter->telefonklappe$row_mitarbeiter->ort_kurzbz".($row_mitarbeiter->mupdateamum!=''?date('d.m.Y H:i:s', $datum_obj->mktime_fromtimestamp($row_mitarbeiter->mupdateamum)):'')."
$student->status_kurzbz$row_student->uid".($row_student->aktiv=='t'?'Ja':'Nein').""; if($auth->UserExternalExists($row_student->uid)) $content.="Ja"; @@ -212,7 +219,7 @@ if($searchstr!='') $content.= "".($row_student->bnupdateamum!=''?date('d.m.Y H:i:s', $datum_obj->mktime_fromtimestamp($row_student->bnupdateamum)):'')."$row_student->bnupdatevon
'; } - + } ?> diff --git a/vilesci/personen/zeitwunsch.php b/vilesci/personen/zeitwunsch.php index d67a62f67..4df8063f1 100644 --- a/vilesci/personen/zeitwunsch.php +++ b/vilesci/personen/zeitwunsch.php @@ -26,21 +26,20 @@ * POST statt GET - ist aber Geschmacksache * */ - require_once('../../config/vilesci.config.inc.php'); require_once('../../include/basis_db.class.php'); -include('../../include/functions.inc.php'); -include('../../include/globals.inc.php'); +require_once('../../include/functions.inc.php'); +require_once('../../include/globals.inc.php'); require_once('../../include/datum.class.php'); +require_once('../../include/benutzerberechtigung.class.php'); if (!$db = new basis_db()) die('Es konnte keine Verbindung zum Server aufgebaut werden.'); - if (isset($_GET['uid'])) { $uid=$_GET['uid']; -} +} else if (isset($_POST['uid'])) { $uid=$_POST['uid']; @@ -50,6 +49,12 @@ if (!isset($uid)) die( "uid nicht gesetzt"); } $uid_benutzer = get_uid(); + +$rechte = new benutzerberechtigung(); +$rechte->getBerechtigungen($uid_benutzer); +if(!$rechte->isBerechtigt('mitarbeiter')) + die($rechte->errormsg); + $datum_obj = new datum(); $updatevon = 0; @@ -68,20 +73,19 @@ $updatevon = 0; //echo $$var; $gewicht=$_POST[$var]; $stunde=$i+1; - $query="SELECT * FROM campus.tbl_zeitwunsch WHERE mitarbeiter_uid='".addslashes($uid)."' AND stunde='$stunde' AND tag='$t'"; + $query="SELECT * FROM campus.tbl_zeitwunsch WHERE mitarbeiter_uid=".$db->db_add_param($uid)." AND stunde=".$db->db_add_param($stunde, FHC_INTEGER)." AND tag=".$db->db_add_param($t, FHC_INTEGER); if(! $erg_wunsch=$db->db_query($query)) die($db->db_last_error()); $num_rows_wunsch=$db->db_num_rows($erg_wunsch); if ($num_rows_wunsch==0) { - $query="INSERT INTO campus.tbl_zeitwunsch (mitarbeiter_uid, stunde, tag, gewicht, updateamum, updatevon) VALUES ('$uid', '$stunde', '$t', '$gewicht', now(), '$uid_benutzer')"; + $query="INSERT INTO campus.tbl_zeitwunsch (mitarbeiter_uid, stunde, tag, gewicht, updateamum, updatevon) VALUES (".$db->db_add_param($uid).", ".$db->db_add_param($stunde).", ".$db->db_add_param($t).", ".$db->db_add_param($gewicht).", now(), ".$db->db_add_param($uid_benutzer).")"; if(!($erg=$db->db_query($query))) die($db->db_last_error()); } elseif ($num_rows_wunsch==1) { - $query="UPDATE campus.tbl_zeitwunsch SET gewicht=$gewicht, updateamum=now(), updatevon='$uid_benutzer' WHERE mitarbeiter_uid='$uid' AND stunde='$stunde' AND tag='$t'"; - //echo $query; + $query="UPDATE campus.tbl_zeitwunsch SET gewicht=".$db->db_add_param($gewicht).", updateamum=now(), updatevon=".$db->db_add_param($uid_benutzer)." WHERE mitarbeiter_uid=".$db->db_add_param($uid)." AND stunde=".$db->db_add_param($stunde)." AND tag=".$db->db_add_param($t); if(!($erg=$db->db_query($query))) die($db->db_last_error()); } @@ -90,7 +94,7 @@ $updatevon = 0; } } - if(!($erg=$db->db_query("SELECT * FROM campus.tbl_zeitwunsch WHERE mitarbeiter_uid='$uid'"))) + if(!($erg=$db->db_query("SELECT * FROM campus.tbl_zeitwunsch WHERE mitarbeiter_uid=".$db->db_add_param($uid)))) die($db->db_last_error()); $num_rows=$db->db_num_rows($erg); for ($i=0;$i<$num_rows;$i++) @@ -116,7 +120,7 @@ $updatevon = 0; // Personendaten - if(! $result=$db->db_query("SELECT * FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id) WHERE uid='$uid'")) + if(! $result=$db->db_query("SELECT * FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id) WHERE uid=".$db->db_add_param($uid))) die($db->db_last_error()); if ($db->db_num_rows($result)==1) $person=$db->db_fetch_object($result); @@ -166,7 +170,7 @@ $updatevon = 0; ?>
- Es sollten für jede Stunde die tatsächlich unterrichtet wird, mindestens das 3-fache an positiven Zeitwünschen angegeben werden.
Beispiel: Sie unterrichten 4 Stunden/Woche, dann sollten Sie mindestens 12 Stunden im Raster mit positiven Werten ausfüllen. -

Bei Problemen wenden Sie sich bitte an die Lehrveranstaltungsplanung.

 

diff --git a/vilesci/stammdaten/lv_wartung.php b/vilesci/stammdaten/lv_wartung.php deleted file mode 100644 index 014b4ba3e..000000000 --- a/vilesci/stammdaten/lv_wartung.php +++ /dev/null @@ -1,291 +0,0 @@ - - * Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at > - * Rudolf Hangl < rudolf.hangl@technikum-wien.at > - * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > - */ - -// ***************************************** -// * Script zum Zusammenlegen Doppelter LVs -// * Es werden zwei Listen mit LVs angezeigt -// * Links wird die LV markiert mit dem rechts -// * markierten zusammengelegt werden soll. -// * Die linke LV wird danach entfernt. -// ************************************ -//DB Verbindung herstellen - - require_once('../../config/vilesci.config.inc.php'); - require_once('../../include/lehrveranstaltung.class.php'); - require_once('../../include/studiengang.class.php'); - require_once('../../include/functions.inc.php'); - if (!$db = new basis_db()) - die('Es konnte keine Verbindung zum Server aufgebaut werden.'); - - -$msg=''; -$outp=''; -$smax=0; - -$s=new studiengang(); -$s->getAll('erhalter_kz,typ,kurzbzlang',false); -$studiengang=$s->result; -$user = get_uid(); - - -if (isset($_GET['stg_kz']) || isset($_POST['stg_kz'])) - $stg_kz=(isset($_GET['stg_kz'])?$_GET['stg_kz']:$_POST['stg_kz']); -else - $stg_kz=0; -if(!is_numeric($stg_kz)) - $stg_kz=0; - - -if (isset($_GET['semester']) || isset($_POST['semester'])) -{ - $semester=(isset($_GET['semester'])?$_GET['semester']:$_POST['semester']); - if($semester>(isset($_GET['max'])?$_GET['max']:$_POST['max'])) - $semester=(isset($_GET['max'])?$_GET['max']:$_POST['max']); -} -else - $semester=0; -if(!is_numeric($semester)) - $semester=0; - - -if (isset($_GET['order_1']) || isset($_POST['order_1'])) -{ - $order_1=(isset($_GET['order_1'])?$_GET['order_1']:$_POST['order_1']); -} -else -{ - $order_1='lehrveranstaltung_id'; -} -if (isset($_GET['order_2']) || isset($_POST['order_2'])) -{ - $order_2=(isset($_GET['order_2'])?$_GET['order_2']:$_POST['order_2']); -} -else -{ - $order_2='lehrveranstaltung_id'; -} -if (isset($_GET['radio_1']) || isset($_POST['radio_1'])) -{ - $radio_1=(isset($_GET['radio_1'])?$_GET['radio_1']:$_POST['radio_1']); -} -else -{ - $radio_1=-1; -} -if (isset($_GET['radio_2']) || isset($_POST['radio_2'])) -{ - $radio_2=(isset($_GET['radio_2'])?$_GET['radio_2']:$_POST['radio_2']); -} -else -{ - $radio_2=-1; -} - - - -$s=array(); -foreach ($studiengang as $stg) -{ - @$s[$stg->studiengang_kz]->max_sem=$stg->max_semester; - $s[$stg->studiengang_kz]->kurzbz=$stg->kurzbzlang; - $outp.= ''.$stg->kurzbzlang.' ('.strtoupper($stg->typ.$stg->kurzbz).') - '; - -} -$outp.= '
-- '; -for ($i=0;$i<=$s[$stg_kz]->max_sem;$i++) -{ - $outp.= ''.$i.' -- '; -} - -//Initialisierung der Variablen - -function kuerze($string) -{ - if(strlen($string)>40) - { - return substr($string,0,35)."..."; - } - else - { - return $string; - } -} - - - -if(isset($radio_1) && isset($radio_2) && $radio_1>=0 && $radio_2>=0) -{ - if($radio_1==$radio_2) - { - $msg="Die Datensaetze duerfen nicht die gleiche ID haben"; - } - else - { - $sql_query_upd1="BEGIN;"; - $sql_query_upd1.="UPDATE lehre.tbl_lehreinheit SET lehrveranstaltung_id='$radio_2' WHERE lehrveranstaltung_id='$radio_1';"; - $sql_query_upd1.="UPDATE lehre.tbl_zeugnisnote SET lehrveranstaltung_id='$radio_2' WHERE lehrveranstaltung_id='$radio_1';"; - $sql_query_upd1.="UPDATE campus.tbl_benutzerlvstudiensemester SET lehrveranstaltung_id='$radio_2' WHERE lehrveranstaltung_id='$radio_1';"; - $sql_query_upd1.="UPDATE campus.tbl_feedback SET lehrveranstaltung_id='$radio_2' WHERE lehrveranstaltung_id='$radio_1';"; - $sql_query_upd1.="UPDATE campus.tbl_lvgesamtnote SET lehrveranstaltung_id='$radio_2' WHERE lehrveranstaltung_id='$radio_1';"; - //updateamum vergleichen - jüngeres Datum gewinnt - $qry1="SELECT updateamum FROM campus.tbl_lvinfo WHERE lehrveranstaltung_id='$radio_1';"; - $qry2="SELECT updateamum FROM campus.tbl_lvinfo WHERE lehrveranstaltung_id='$radio_1';"; - if($result1=$db->db_query($qry1)) - { - if($result2=$db->db_query($qry2)) - { - if($row1 = $db->db_fetch_object($result1)) - { - if($row2 = $db->db_fetch_object($result2)) - { - if($row2->updateamum>$row1->updateamum) - { - //wenn lvinfo neuer als die bestehende, ersetzt sie diese - $sql_query_upd1.="DELETE FROM campus.tbl_lvinfo WHERE lehrveranstaltung_id='$radio_2';"; - $sql_query_upd1.="UPDATE campus.tbl_lvinfo SET lehrveranstaltung_id='$radio_2' WHERE lehrveranstaltung_id='$radio_1';"; - } - else - { - //wenn lvinfo älter als die bestehende, wird sie gelöscht - $sql_query_upd1.="DELETE FROM campus.tbl_lvinfo WHERE lehrveranstaltung_id='$radio_1';"; - } - } - } - } - } - $sql_query_upd1.="UPDATE campus.tbl_lvinfo SET lehrveranstaltung_id='$radio_2' WHERE lehrveranstaltung_id='$radio_1';"; - $sql_query_upd1.="UPDATE sync.tbl_synclehrveranstaltung SET lva_vilesci='$radio_2' WHERE lva_vilesci='$radio_1';"; - $sql_query_upd1.="DELETE FROM lehre.tbl_lehrveranstaltung WHERE lehrveranstaltung_id='$radio_1';"; - if($db->db_query($sql_query_upd1)) - { - $msg = "Daten Erfolgreich gespeichert
"; - $db->db_query("COMMIT;"); - $msg .= "
".mb_eregi_replace(';',';
',$sql_query_upd1)."COMMIT"; - } - else - { - $msg = "Die Änderung konnte nicht durchgeführt werden!"; - $db->db_query("ROLLBACK;"); - $msg .= "
".mb_eregi_replace(';',';
',$sql_query_upd1)."ROLLBACK"; - } - - - } -} -if((isset($radio_1) && !isset($radio_2))||(!isset($radio_1) && isset($radio_2)) || ($radio_1<0 || $radio_2<0)) -{ - $msg="Es muß je ein Radio-Button pro Tabelle angeklickt werden"; -} -?> - - - - - - -LV-Zusammenlegung - - - -

Zusammenlegen von Lehrveranstaltungen (kurzbz.' - '.$semester; ?>)

- -max_sem; -//aufruf -?> -
-

-
-"; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo "
Das wird gelöscht:"; - - //Tabelle 1 - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - - $lf = new lehrveranstaltung(); - $lf->getTab($stg_kz,$semester, $order_1); - $i=0; - foreach($lf->lehrveranstaltungen as $l) - { - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - $i++; - } - echo "
IDKurzbzBezeichnungECTSSS 
$l->lehrveranstaltung_id$l->kurzbz".kuerze($l->bezeichnung)."$l->ects$l->semesterstundenlehrveranstaltung_id)?'checked':'').">
"; - echo "
Das bleibt:"; - - //Tabelle 2 - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - - $lf = new lehrveranstaltung(); - $lf->getTab($stg_kz,$semester, $order_2); - $i=0; - foreach($lf->lehrveranstaltungen as $l) - { - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - $i++; - } - echo "
 IDKurzbzBezeichnungECTSSS
lehrveranstaltung_id)?'checked':'').">$l->lehrveranstaltung_id$l->kurzbz".kuerze($l->bezeichnung)."$l->ects$l->semesterstunden
"; - echo "
"; - echo ""; - -?> - - - - From c959b39443ff895cfc794c33ee671303b6ad568f Mon Sep 17 00:00:00 2001 From: oesi Date: Wed, 24 Feb 2016 16:26:03 +0100 Subject: [PATCH 2/5] Fehler behoben bei dem Personen ohne SVNR nicht mehr gespeichert werden konnten --- include/person.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/person.class.php b/include/person.class.php index d8ea01d53..ea845b13d 100644 --- a/include/person.class.php +++ b/include/person.class.php @@ -251,7 +251,7 @@ class person extends basis_db return false; } - if(mb_strlen($this->svnr) != 16 && mb_strlen($this->svnr) != 10) + if($this->svnr!='' && mb_strlen($this->svnr) != 16 && mb_strlen($this->svnr) != 10) { $this->errormsg = 'SVNR muss 10 oder 16 Zeichen lang sein'; return false; From abdf91e675ccd9a28ddd2d598ffab73296d1c601 Mon Sep 17 00:00:00 2001 From: oesi Date: Wed, 24 Feb 2016 16:44:52 +0100 Subject: [PATCH 3/5] =?UTF-8?q?-=20Infomail=20im=20Abgabetool=20an=20Zweit?= =?UTF-8?q?begutachter=20wird=20nun=20an=20UID@DOMAIN=20geschickt=20wenn?= =?UTF-8?q?=20vorhanden.=20Nur=20wenn=20der=20Zweitbegutachter=20kein=20Mi?= =?UTF-8?q?tarbeiter=20ist,=20wird=20die=20Private=20E-Mail=20Adresse=20be?= =?UTF-8?q?schickt=20-=20Fehler=20behoben=20bei=20dem=20das=20FIX-Hackerl?= =?UTF-8?q?=20bei=20Terminserien=20nicht=20immer=20korrekt=20=C3=BCbernomm?= =?UTF-8?q?en=20wurde?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vilesci/lehre/abgabe_assistenz_details.php | 281 ++++++++++-------- .../lehre/abgabe_assistenz_multitermin.php | 132 ++++---- 2 files changed, 223 insertions(+), 190 deletions(-) diff --git a/vilesci/lehre/abgabe_assistenz_details.php b/vilesci/lehre/abgabe_assistenz_details.php index cc6fd3fb7..e0b1beda2 100644 --- a/vilesci/lehre/abgabe_assistenz_details.php +++ b/vilesci/lehre/abgabe_assistenz_details.php @@ -20,10 +20,10 @@ * Rudolf Hangl < rudolf.hangl@technikum-wien.at > * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > */ - + /******************************************************************************************************* * abgabe_assistenz - * abgabe_assistenz ist die Assistenzoberfläche des Abgabesystems + * abgabe_assistenz ist die Assistenzoberfläche des Abgabesystems * für Diplom- und Bachelorarbeiten *******************************************************************************************************/ require_once('../../config/vilesci.config.inc.php'); @@ -61,7 +61,7 @@ if(isset($_GET['id']) && isset($_GET['uid']) && isset($_GET['pdfread'])) header('Content-Type: application/octet-stream'); header('Content-disposition: attachment; filename="'.$file.'"'); echo readfile($filename); - exit(); + exit(); } if (!$db = new basis_db()) @@ -85,8 +85,8 @@ if(!isset($_POST['uid'])) $kurzbz = ''; if($projektarbeit_id!='-1') { - $qry_stg="SELECT tbl_studiengang.* FROM public.tbl_studiengang - JOIN lehre.tbl_lehrveranstaltung USING(studiengang_kz) + $qry_stg="SELECT tbl_studiengang.* FROM public.tbl_studiengang + JOIN lehre.tbl_lehrveranstaltung USING(studiengang_kz) JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id) JOIN lehre.tbl_projektarbeit USING(lehreinheit_id) WHERE projektarbeit_id=".$db->db_add_param($projektarbeit_id, FHC_INTEGER); @@ -97,24 +97,24 @@ if(!isset($_POST['uid'])) $stgbez=$row_stg->bezeichnung; $stg_kz=$row_stg->studiengang_kz; } - else + else { echo "Fehler beim Laden des Studiengangs!
 "; exit; } } - else + else { echo "Studiengang konnte nicht gefunden werden!
 "; exit; } } - else + else { exit; } } -else +else { $uid = (isset($_POST['uid'])?$_POST['uid']:'-1'); $projektarbeit_id = (isset($_POST['projektarbeit_id'])?$_POST['projektarbeit_id']:'-1'); @@ -201,8 +201,8 @@ if(isset($_POST["schick"])) $row_std=$db->db_fetch_object($result_std); if($command=='insert') { - $qrychk="SELECT * FROM campus.tbl_paabgabe - WHERE projektarbeit_id=".$db->db_add_param($projektarbeit_id, FHC_INTEGER)." AND paabgabetyp_kurzbz=".$db->db_add_param($paabgabetyp_kurzbz)." + $qrychk="SELECT * FROM campus.tbl_paabgabe + WHERE projektarbeit_id=".$db->db_add_param($projektarbeit_id, FHC_INTEGER)." AND paabgabetyp_kurzbz=".$db->db_add_param($paabgabetyp_kurzbz)." AND fixtermin=".($fixtermin==1?'true':'false')." AND datum=".$db->db_add_param($datum)." AND kurzbz=".$db->db_add_param($kurzbz); if($result=$db->db_query($qrychk)) { @@ -210,32 +210,32 @@ if(isset($_POST["schick"])) { //Datensatz bereits vorhanden } - else + else { //neuer Termin - $qry="INSERT INTO campus.tbl_paabgabe (projektarbeit_id, paabgabetyp_kurzbz, - fixtermin, datum, kurzbz, abgabedatum, insertvon, insertamum, updatevon, updateamum) + $qry="INSERT INTO campus.tbl_paabgabe (projektarbeit_id, paabgabetyp_kurzbz, + fixtermin, datum, kurzbz, abgabedatum, insertvon, insertamum, updatevon, updateamum) VALUES (".$db->db_add_param($projektarbeit_id).", ". $db->db_add_param($paabgabetyp_kurzbz).", ".($fixtermin==1?'true':'false').", ". $db->db_add_param($datum).",". $db->db_add_param($kurzbz).", NULL, ". $db->db_add_param($user).", now(), NULL, NULL)"; - //echo $qry; + //echo $qry; if(!$result=$db->db_query($qry)) { - echo "Termin konnte nicht eingetragen werden!
"; + echo "Termin konnte nicht eingetragen werden!
"; } - else + else { $row=$db->db_fetch_object($result); - $qry_typ="SELECT bezeichnung FROM campus.tbl_paabgabetyp + $qry_typ="SELECT bezeichnung FROM campus.tbl_paabgabetyp WHERE paabgabetyp_kurzbz=".$db->db_add_param($paabgabetyp_kurzbz); if($result_typ=$db->db_query($qry_typ)) { $row_typ=$db->db_fetch_object($result_typ); } - else + else { $row_typ->bezeichnung=''; } @@ -247,20 +247,20 @@ if(isset($_POST["schick"])) $mail->setReplyTo($user."@".DOMAIN); if(!$mail->send()) { - echo "Fehler beim Versenden des Mails an den Studierenden!
"; + echo "Fehler beim Versenden des Mails an den Studierenden!
"; } else { echo "Mail verschickt an: ".trim($row_std->titelpre." ".$row_std->vorname." ".$row_std->nachname." ".$row_std->titelpost)."
"; } } - + //Mail an Erstbegutachter - $qry_betr="SELECT DISTINCT trim(COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(nachname,'')||' '||COALESCE(titelpost,'')) as first, - public.tbl_mitarbeiter.mitarbeiter_uid, anrede + $qry_betr="SELECT DISTINCT trim(COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(nachname,'')||' '||COALESCE(titelpost,'')) as first, + public.tbl_mitarbeiter.mitarbeiter_uid, anrede FROM public.tbl_person JOIN lehre.tbl_projektbetreuer ON(lehre.tbl_projektbetreuer.person_id=public.tbl_person.person_id) - LEFT JOIN public.tbl_benutzer ON(public.tbl_benutzer.person_id=public.tbl_person.person_id) - LEFT JOIN public.tbl_mitarbeiter ON(public.tbl_benutzer.uid=public.tbl_mitarbeiter.mitarbeiter_uid) + LEFT JOIN public.tbl_benutzer ON(public.tbl_benutzer.person_id=public.tbl_person.person_id) + LEFT JOIN public.tbl_mitarbeiter ON(public.tbl_benutzer.uid=public.tbl_mitarbeiter.mitarbeiter_uid) WHERE mitarbeiter_uid=".$db->db_add_param($erst); if(!$betr=$db->db_query($qry_betr)) { @@ -277,19 +277,19 @@ if(isset($_POST["schick"])) $mail->setReplyTo($user."@".DOMAIN); if(!$mail->send()) { - echo "Fehler beim Versenden des Mails an den (Erst-)Begutachter! ($row_betr->first)
"; + echo "Fehler beim Versenden des Mails an den (Erst-)Begutachter! ($row_betr->first)
"; } - else + else { echo "Mail verschickt an Erstbegutachter: ".$row_betr->first."
"; } } else { - echo "Fehler beim Versenden des Mails an den (Erst-)Begutachter(in)! ($row_betr->first ist kein Mitarbeiter)
 
"; + echo "Fehler beim Versenden des Mails an den (Erst-)Begutachter(in)! ($row_betr->first ist kein Mitarbeiter)
 
"; } } - else + else { echo "Erstbegutachter nicht gefunden. Kein Mail verschickt!
;"; } @@ -297,10 +297,13 @@ if(isset($_POST["schick"])) //Mail an Zweitbegutachter if($p2id!='') { - $qry_betr="SELECT DISTINCT trim(COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(nachname,'')||' '||COALESCE(titelpost,'')) as first, - anrede, kontakt - FROM public.tbl_person JOIN public.tbl_kontakt USING(person_id) - WHERE person_id=".$db->db_add_param($p2id, FHC_INTEGER)." AND kontakttyp='email' AND zustellung LIMIT 1"; + $qry_betr="SELECT DISTINCT trim(COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(nachname,'')||' '||COALESCE(titelpost,'')) as first, + anrede, kontakt, tbl_benutzer.uid + FROM + public.tbl_person + JOIN public.tbl_kontakt USING(person_id) + LEFT JOIN public.tbl_benutzer USING(person_id) + WHERE person_id=".$db->db_add_param($p2id, FHC_INTEGER)." AND kontakttyp='email' AND zustellung AND (tbl_benutzer.aktiv OR tbl_benutzer.aktiv is null) LIMIT 1"; if(!$betr=$db->db_query($qry_betr)) { echo "Fehler beim Laden des Zweitbegutachters!
"; @@ -309,19 +312,23 @@ if(isset($_POST["schick"])) { if($row_betr=$db->db_fetch_object($betr)) { - $mail = new mail($row_betr->kontakt, "no-reply@".DOMAIN, "Neuer Termin Bachelor-/Masterarbeitsbetreuung bei Studiengang $stgbez", + if($row_betr->uid!='') + $to = $row_betr->uid.'@'.DOMAIN; + else + $to = $row_betr->kontakt; + $mail = new mail($to, "no-reply@".DOMAIN, "Neuer Termin Bachelor-/Masterarbeitsbetreuung bei Studiengang $stgbez", "Sehr geehrte".($row_betr->anrede=="Herr"?"r":"")." ".$row_betr->anrede." ".$row_betr->first."!\n\nDer Studiengang $stgbez hat einen neuen Termin angelegt für Ihre Betreuung von ".($row_std->anrede=="Herr"?"Herrn":$row_std->anrede)." ".trim($row_std->titelpre." ".$row_std->vorname." ".$row_std->nachname." ".$row_std->titelpost).":\n".($fixtermin==1?'Fixer Termin':'Variabler Termin').", ".$datum_obj->formatDatum($datum,'d.m.Y').", ".$row_typ->bezeichnung.", ".$kurzbz."\n\nMfG\nDie Studiengangsassistenz\n\n--------------------------------------------------------------------------\nDies ist ein vom Bachelor-/Masterarbeitsabgabesystem generiertes Info-Mail\n--------------------------------------------------------------------------"); $mail->setReplyTo($user."@".DOMAIN); if(!$mail->send()) { - echo "Fehler beim Versenden des Mails an (Zweit-)Begutachter(in)! ($erst)
"; + echo "Fehler beim Versenden des Mails an (Zweit-)Begutachter(in)! ($erst)
"; } - else + else { - echo "Mail verschickt an Zweitbegutachter(in): ".$row_betr->first."
"; + echo "Mail verschickt an Zweitbegutachter(in): ".$row_betr->first.' '.$to."
"; } } - else + else { echo "Zweitbegutachter(in) nicht gefunden. Kein Mail verschickt! ($p2id)
"; } @@ -331,7 +338,7 @@ if(isset($_POST["schick"])) $command=''; } } - else + else { echo "Datenbank-Zugriffsfehler!"; } @@ -343,9 +350,9 @@ if(isset($_POST["schick"])) $qry_old="SELECT * FROM campus.tbl_paabgabe WHERE paabgabe_id=".$db->db_add_param($paabgabe_id, FHC_INTEGER); if(!$result_old=$db->db_query($qry_old)) { - echo "Termin konnte nicht gefunden werden!
 "; + echo "Termin konnte nicht gefunden werden!
 "; } - else + else { $row_old=$db->db_fetch_object($result_old); //Abgabetyp @@ -355,26 +362,26 @@ if(isset($_POST["schick"])) $row_told=$db->db_fetch_object($result_told); $obezeichnung=$row_told->bezeichnung; } - else + else { $obezeichnung=''; } //Termin updaten $qry="UPDATE campus.tbl_paabgabe SET - projektarbeit_id = ".$db->db_add_param($projektarbeit_id, FHC_INTEGER).", - paabgabetyp_kurzbz = ".$db->db_add_param($paabgabetyp_kurzbz).", - fixtermin = ".($fixtermin==1?'true':'false').", - datum = ".$db->db_add_param($datum).", - kurzbz = ".$db->db_add_param($kurzbz).", - updatevon = ".$db->db_add_param($user).", - updateamum = now() + projektarbeit_id = ".$db->db_add_param($projektarbeit_id, FHC_INTEGER).", + paabgabetyp_kurzbz = ".$db->db_add_param($paabgabetyp_kurzbz).", + fixtermin = ".($fixtermin==1?'true':'false').", + datum = ".$db->db_add_param($datum).", + kurzbz = ".$db->db_add_param($kurzbz).", + updatevon = ".$db->db_add_param($user).", + updateamum = now() WHERE paabgabe_id=".$db->db_add_param($paabgabe_id, FHC_INTEGER); - //echo $qry; + //echo $qry; if(!$result=$db->db_query($qry)) { - echo "Terminänderung konnte nicht eingetragen werden!
"; + echo "Terminänderung konnte nicht eingetragen werden!
"; } - else + else { //Abgabetyp $qry_told="SELECT bezeichnung FROM campus.tbl_paabgabetyp WHERE paabgabetyp_kurzbz=".$db->db_add_param($paabgabetyp_kurzbz); @@ -383,7 +390,7 @@ if(isset($_POST["schick"])) $row_typ=$db->db_fetch_object($result_told); $bezeichnung=$row_typ->bezeichnung; } - else + else { $bezeichnung=''; } @@ -395,20 +402,20 @@ if(isset($_POST["schick"])) $mail->setReplyTo($user."@".DOMAIN); if(!$mail->send()) { - echo "Fehler beim Versenden des Mails an den Studierenden!
"; + echo "Fehler beim Versenden des Mails an den Studierenden!
"; } else { echo "Mail verschickt an: ".trim($row_std->titelpre." ".$row_std->vorname." ".$row_std->nachname." ".$row_std->titelpost)."
"; } } - + //Mail an Erstbegutachter - $qry_betr="SELECT DISTINCT trim(COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(nachname,'')||' '||COALESCE(titelpost,'')) as first, - public.tbl_mitarbeiter.mitarbeiter_uid, anrede + $qry_betr="SELECT DISTINCT trim(COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(nachname,'')||' '||COALESCE(titelpost,'')) as first, + public.tbl_mitarbeiter.mitarbeiter_uid, anrede FROM public.tbl_person JOIN lehre.tbl_projektbetreuer ON(lehre.tbl_projektbetreuer.person_id=public.tbl_person.person_id) - LEFT JOIN public.tbl_benutzer ON(public.tbl_benutzer.person_id=public.tbl_person.person_id) - LEFT JOIN public.tbl_mitarbeiter ON(public.tbl_benutzer.uid=public.tbl_mitarbeiter.mitarbeiter_uid) + LEFT JOIN public.tbl_benutzer ON(public.tbl_benutzer.person_id=public.tbl_person.person_id) + LEFT JOIN public.tbl_mitarbeiter ON(public.tbl_benutzer.uid=public.tbl_mitarbeiter.mitarbeiter_uid) WHERE mitarbeiter_uid=".$db->db_add_param($erst); if(!$betr=$db->db_query($qry_betr)) { @@ -423,14 +430,14 @@ if(isset($_POST["schick"])) $mail->setReplyTo($user."@".DOMAIN); if(!$mail->send()) { - echo "Fehler beim Versenden des Mails an (Erst-)Begutachter(in)!
"; + echo "Fehler beim Versenden des Mails an (Erst-)Begutachter(in)!
"; } - else + else { echo "Mail verschickt an Erstbegutachter(in): ".$row_betr->first."
"; } } - else + else { echo "Erstbegutachter(in) nicht gefunden. Kein Mail verschickt!
"; } @@ -438,10 +445,18 @@ if(isset($_POST["schick"])) //Mail an Zweitbegutachter if($p2id!='') { - $qry_betr="SELECT DISTINCT trim(COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(nachname,'')||' '||COALESCE(titelpost,'')) as first, - anrede, kontakt - FROM public.tbl_person JOIN public.tbl_kontakt USING(person_id) - WHERE person_id=".$db->db_add_param($p2id, FHC_INTEGER)." AND kontakttyp='email' AND zustellung LIMIT 1"; + $qry_betr="SELECT DISTINCT trim(COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(nachname,'')||' '||COALESCE(titelpost,'')) as first, + anrede, kontakt, tbl_benutzer.uid + FROM + public.tbl_person + JOIN public.tbl_kontakt USING(person_id) + LEFT JOIN public.tbl_benutzer USING(person_id) + WHERE + person_id=".$db->db_add_param($p2id, FHC_INTEGER)." + AND kontakttyp='email' + AND zustellung + AND (tbl_benutzer.aktiv OR tbl_benutzer is null) + LIMIT 1"; if(!$betr=$db->db_query($qry_betr)) { echo "Fehler beim Laden von Zweitbegutachter(in)!
"; @@ -450,19 +465,23 @@ if(isset($_POST["schick"])) { if($row_betr=$db->db_fetch_object($betr)) { - $mail = new mail($row_betr->kontakt, "no-reply@".DOMAIN, "Terminänderung Bachelor-/Masterarbeitsbetreuung bei Studiengang $stgbez", + if($row_betr->uid!='') + $to = $row_betr->uid.'@'.DOMAIN; + else + $to = $row_betr->kontakt; + $mail = new mail($to, "no-reply@".DOMAIN, "Terminänderung Bachelor-/Masterarbeitsbetreuung bei Studiengang $stgbez", "Sehr geehrte".($row_betr->anrede=="Herr"?"r":"")." ".$row_betr->anrede." ".$row_betr->first."!\n\nDer Studiengang $stgbez hat einen Termin geändert für Ihre Betreuung von ".($row_std->anrede=="Herr"?"Herrn":$row_std->anrede)." ".trim($row_std->titelpre." ".$row_std->vorname." ".$row_std->nachname." ".$row_std->titelpost)."\nVon: ".($row_old->fixtermin=='t'?'Fixer Termin':'Variabler Termin').", ".$datum_obj->formatDatum($row_old->datum,'d.m.Y').", ".$obezeichnung.", ".$row_old->kurzbz."\nAuf: ".($fixtermin==1?'Fixer Termin':'Variabler Termin').", ".$datum_obj->formatDatum($datum,'d.m.Y').", ".$bezeichnung." ".$kurzbz."\n\nMfG\nDie Studiengangsassistenz\n\n--------------------------------------------------------------------------\nDies ist ein vom Bachelor-/Masterarbeitsabgabesystem generiertes Info-Mail\ncis->Mein CIS->Bachelor- und Masterarbeitsabgabe\n--------------------------------------------------------------------------"); $mail->setReplyTo($user."@".DOMAIN); if(!$mail->send()) { - echo "Fehler beim Versenden des Mails an (Zweit-)Begutachter(in)! ($erst)
"; + echo "Fehler beim Versenden des Mails an (Zweit-)Begutachter(in)! ($erst)
"; } - else + else { - echo "Mail verschickt an Zweitbegutachter(in): ".$row_betr->first."
"; + echo "Mail verschickt an Zweitbegutachter(in): ".$row_betr->first.' '.$to."
"; } } - else + else { echo "Zweitbegutachter(in) nicht gefunden. Kein Mail verschickt! ($p2id)
"; } @@ -474,7 +493,7 @@ if(isset($_POST["schick"])) } } } - else + else { echo "Datumseingabe ungültig!
 "; } @@ -489,9 +508,9 @@ if(isset($_POST["del"])) $qry_old="SELECT * FROM campus.tbl_paabgabe WHERE paabgabe_id=".$db->db_add_param($paabgabe_id); if(!$result_old=$db->db_query($qry_old)) { - echo "Termin konnte nicht gefunden werden!
 "; + echo "Termin konnte nicht gefunden werden!
 "; } - else + else { $row_old=$db->db_fetch_object($result_old); $qry_std="SELECT * FROM campus.vw_benutzer where uid=".$db->db_add_param($uid); @@ -507,7 +526,7 @@ if(isset($_POST["del"])) { echo "Fehler beim Löschen des Termins!
 "; } - else + else { //Mail an Studierenden if($row_old->paabgabetyp_kurzbz !='note') @@ -517,20 +536,20 @@ if(isset($_POST["del"])) $mail->setReplyTo($user."@".DOMAIN); if(!$mail->send()) { - echo "Fehler beim Versenden des Mails!
 "; + echo "Fehler beim Versenden des Mails!
 "; } else { echo "Mail verschickt an: ".trim($row_std->titelpre." ".$row_std->vorname." ".$row_std->nachname." ".$row_std->titelpost)."
"; } } - + //Mail an Erstbegutachter - $qry_betr="SELECT DISTINCT trim(COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(nachname,'')||' '||COALESCE(titelpost,'')) as first, - public.tbl_mitarbeiter.mitarbeiter_uid, anrede + $qry_betr="SELECT DISTINCT trim(COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(nachname,'')||' '||COALESCE(titelpost,'')) as first, + public.tbl_mitarbeiter.mitarbeiter_uid, anrede FROM public.tbl_person JOIN lehre.tbl_projektbetreuer ON(lehre.tbl_projektbetreuer.person_id=public.tbl_person.person_id) - LEFT JOIN public.tbl_benutzer ON(public.tbl_benutzer.person_id=public.tbl_person.person_id) - LEFT JOIN public.tbl_mitarbeiter ON(public.tbl_benutzer.uid=public.tbl_mitarbeiter.mitarbeiter_uid) + LEFT JOIN public.tbl_benutzer ON(public.tbl_benutzer.person_id=public.tbl_person.person_id) + LEFT JOIN public.tbl_mitarbeiter ON(public.tbl_benutzer.uid=public.tbl_mitarbeiter.mitarbeiter_uid) WHERE mitarbeiter_uid=".$db->db_add_param($erst); if(!$betr=$db->db_query($qry_betr)) { @@ -545,14 +564,14 @@ if(isset($_POST["del"])) $mail->setReplyTo($user."@".DOMAIN); if(!$mail->send()) { - echo "Fehler beim Versenden des Mails an den (Erst-)Begutachter(in)!
 "; + echo "Fehler beim Versenden des Mails an den (Erst-)Begutachter(in)!
 "; } - else + else { echo "Mail verschickt an: ".$row_betr->first."
"; } } - else + else { echo "Begutachter(in) nicht gefunden. Kein Mail verschickt!
 "; } @@ -560,10 +579,18 @@ if(isset($_POST["del"])) //Mail an Zweitbegutachter if($p2id!='') { - $qry_betr="SELECT DISTINCT trim(COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(nachname,'')||' '||COALESCE(titelpost,'')) as first, - anrede, kontakt - FROM public.tbl_person JOIN public.tbl_kontakt USING(person_id) - WHERE person_id=".$db->db_add_param($p2id, FHC_INTEGER)." AND kontakttyp='email' AND zustellung LIMIT 1"; + $qry_betr="SELECT DISTINCT trim(COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(nachname,'')||' '||COALESCE(titelpost,'')) as first, + anrede, kontakt, tbl_benutzer.uid + FROM + public.tbl_person + JOIN public.tbl_kontakt USING(person_id) + LEFT JOIN public.tbl_benutzer USING(person_id) + WHERE + person_id=".$db->db_add_param($p2id, FHC_INTEGER)." + AND kontakttyp='email' + AND zustellung + AND (tbl_benutzer.aktiv OR tbl_benutzer.aktiv is null) + LIMIT 1"; if(!$betr=$db->db_query($qry_betr)) { echo "Fehler beim Laden von Zweitbegutachter(in)!
 "; @@ -572,19 +599,23 @@ if(isset($_POST["del"])) { if($row_betr=$db->db_fetch_object($betr)) { - $mail = new mail($row_betr->kontakt, "no-reply@".DOMAIN, "Termin Bachelor-/Masterarbeitsbetreuung bei Studiengang $stgbez", + if($row_betr->uid!='') + $to = $row_betr->uid.'@'.DOMAIN; + else + $to = $row_betr->kontakt; + $mail = new mail($to, "no-reply@".DOMAIN, "Termin Bachelor-/Masterarbeitsbetreuung bei Studiengang $stgbez", "Sehr geehrte".($row_betr->anrede=="Herr"?"r":"")." ".$row_betr->anrede." ".$row_betr->first."!\n\nDer Studiengang $stgbez hat einen Termin entfernt für Ihre Betreuung von ".($row_std->anrede=="Herr"?"Herrn":$row_std->anrede)." ".trim($row_std->titelpre." ".$row_std->vorname." ".$row_std->nachname." ".$row_std->titelpost)."\n".$datum_obj->formatDatum($row_old->datum,'d.m.Y').", ".$row_old->kurzbz."\n\nMfG\nDie Studiengangsassistenz\n\n--------------------------------------------------------------------------\nDies ist ein vom Bachelor-/Masterarbeitsabgabesystem generiertes Info-Mail\ncis->Mein CIS->Bachelor- und Masterarbeitsabgabe\n--------------------------------------------------------------------------"); $mail->setReplyTo($user."@".DOMAIN); if(!$mail->send()) { - echo "Fehler beim Versenden des Mails an (Zweit-)Begutachter(in)! ($erst)
 "; + echo "Fehler beim Versenden des Mails an (Zweit-)Begutachter(in)! ($erst)
 "; } - else + else { - echo "Mail verschickt an Zweitbetreuer(in): ".$row_betr->first."
"; + echo "Mail verschickt an Zweitbetreuer(in): ".$row_betr->first.' '.$to."
"; } } - else + else { echo "Zweitbegutachter(in) nicht gefunden. Kein Mail verschickt! ($p2id)
 "; } @@ -594,7 +625,7 @@ if(isset($_POST["del"])) } } } - else + else { echo "Datumseingabe ungültig!
 "; } @@ -605,16 +636,16 @@ if(isset($_POST["enda"])) { //Abgabetermin mit akt. Datum speichern $qry="UPDATE campus.tbl_paabgabe SET - abgabedatum = now(), - updatevon = ".$db->db_add_param($user).", - updateamum = now() + abgabedatum = now(), + updatevon = ".$db->db_add_param($user).", + updateamum = now() WHERE paabgabe_id=".$db->db_add_param($paabgabe_id, FHC_INTEGER); - //echo $qry; + //echo $qry; if(!$result=$db->db_query($qry)) { - echo "Terminbestätigung konnte nicht eingetragen werden!
 "; + echo "Terminbestätigung konnte nicht eingetragen werden!
 "; } - else + else { echo "Endabgabe-Bestätigungsdatum wurde eingetragen."; } @@ -624,16 +655,16 @@ if(isset($_POST["note"])) { //Abgabetermin mit akt. Datum speichern $qry="UPDATE campus.tbl_paabgabe SET - abgabedatum = now(), - updatevon = ".$db->db_add_param($user).", - updateamum = now() + abgabedatum = now(), + updatevon = ".$db->db_add_param($user).", + updateamum = now() WHERE paabgabe_id=".$db->db_add_param($paabgabe_id, FHC_INTEGER); - //echo $qry; + //echo $qry; if(!$result=$db->db_query($qry)) { - echo "Terminbestätigung konnte nicht eingetragen werden!
 "; + echo "Terminbestätigung konnte nicht eingetragen werden!
 "; } - else + else { echo "Benotung-Bestätigungsdatum wurde eingetragen."; } @@ -685,14 +716,14 @@ $htmlstr .= "fixDatumAbgabetypKurzbeschreibun $bgcol='#FFFF00'; $fcol='#000000'; } - else + else { //"normaler" Termin - schwarz auf weiß $bgcol='#FFFFFF'; $fcol='#000000'; } } - else + else { if($row->abgabedatum>$row->datum) { @@ -700,7 +731,7 @@ $htmlstr .= "fixDatumAbgabetypKurzbeschreibun $bgcol='#EA7B7B'; $fcol='#FFFFFF'; } - else + else { //Abgabe vor Termin - schwarz auf grün $bgcol='#00FF00'; @@ -720,26 +751,26 @@ $htmlstr .= "fixDatumAbgabetypKurzbeschreibun { $htmlstr .= " "; } - else + else { $htmlstr .= " "; } - } + } $htmlstr .= " \n"; - $htmlstr .= " \n"; + $htmlstr .= " \n"; $htmlstr .= " ".($row->abgabedatum==''?' ':$datum_obj->formatDatum($row->abgabedatum,'d.m.Y'))."\n"; - + $htmlstr .= " "; - + if(!$row->abgabedatum) { $htmlstr .= " "; } - else + else { $htmlstr .= "        "; } - + if($row->paabgabetyp_kurzbz=='enda' && $row->abgabedatum==NULL) { $htmlstr .= " "; @@ -748,13 +779,13 @@ $htmlstr .= "fixDatumAbgabetypKurzbeschreibun { $htmlstr .= " "; } - else + else { if(file_exists(PAABGABE_PATH.$row->paabgabe_id.'_'.$uid.'.pdf')) { $htmlstr .= " PDF"; } - else + else { $htmlstr .= "     "; } @@ -762,15 +793,15 @@ $htmlstr .= "fixDatumAbgabetypKurzbeschreibun { $htmlstr .= " zusätzliche Daten"; } - else + else { $htmlstr .= "     "; } } $htmlstr .= " \n"; $htmlstr .= "\n"; - } - + } + //Eingabezeile für neuen Termin $htmlstr .= '
'."\n"; $htmlstr .= ''."\n"; @@ -793,11 +824,11 @@ $result_typ=$db->db_query($qry_typ); while ($result_typ && $row_typ=$db->db_fetch_object($result_typ)) { $htmlstr .= ' '; -} +} $htmlstr .= " \n"; -$htmlstr .= " \n"; -$htmlstr .= "  \n"; +$htmlstr .= " \n"; +$htmlstr .= "  \n"; $htmlstr .= " "; $htmlstr .= "\n"; @@ -805,5 +836,5 @@ $htmlstr .= "
\n"; $htmlstr .= "\n"; $htmlstr .= "\n"; -echo $htmlstr; +echo $htmlstr; ?> diff --git a/vilesci/lehre/abgabe_assistenz_multitermin.php b/vilesci/lehre/abgabe_assistenz_multitermin.php index 6cf09e0e9..73d0d7787 100644 --- a/vilesci/lehre/abgabe_assistenz_multitermin.php +++ b/vilesci/lehre/abgabe_assistenz_multitermin.php @@ -20,15 +20,15 @@ * Rudolf Hangl < rudolf.hangl@technikum-wien.at > * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > */ - + /******************************************************************************************************* * abgabe_assistenz - * abgabe_assistenz ist die Assistenzoberfläche des Abgabesystems + * abgabe_assistenz ist die Assistenzoberfläche des Abgabesystems * für Diplom- und Bachelorarbeiten *******************************************************************************************************/ require_once('../../config/vilesci.config.inc.php'); -require_once('../../include/basis_db.class.php'); +require_once('../../include/basis_db.class.php'); require_once('../../include/functions.inc.php'); require_once('../../include/studiengang.class.php'); require_once('../../include/datum.class.php'); @@ -37,7 +37,7 @@ require_once('../../include/mail.class.php'); if (!$db = new basis_db()) die('Es konnte keine Verbindung zum Server aufgebaut werden.'); - + $i=0; $zaehl=0; @@ -49,7 +49,7 @@ foreach($_POST as $key=>$value) $irgendwas.=substr($key, 3).";"; //echo $irgendwas."
"; $i++; - } + } } if($i==0 && !isset($_POST["schick"]) && !isset($_POST["plus"])) { @@ -79,13 +79,13 @@ if($result_stg=$db->db_query($qry_stg)) { $stgbez=$row_stg->bezeichnung; } - else + else { echo "Fehler beim Laden des Studiengangs!
 "; exit; } } -else +else { echo "Studiengang konnte nicht gefunden werden!
 "; exit; @@ -93,7 +93,7 @@ else if (!$user = get_uid()) die('Keine UID gefunden ! Zurück'); - + $datum_obj = new datum(); $error=''; @@ -122,15 +122,15 @@ for ($x=0;$xdb_add_param($termine[$j], FHC_INTEGER)." - AND paabgabetyp_kurzbz=".$db->db_add_param($paabgabetyp_kurzbz[$x])." - AND fixtermin=".($fixtermin[$x]==1?'true':'false')." - AND datum=".$db->db_add_param($datum[$x])." + $qrychk="SELECT * FROM campus.tbl_paabgabe + WHERE projektarbeit_id=".$db->db_add_param($termine[$j], FHC_INTEGER)." + AND paabgabetyp_kurzbz=".$db->db_add_param($paabgabetyp_kurzbz[$x])." + AND fixtermin=".($fixtermin[$x]==1?'true':'false')." + AND datum=".$db->db_add_param($datum[$x])." AND kurzbz=".$db->db_add_param($kurzbz[$x]); - //echo $qrychk; + if($result=$db->db_query($qrychk)) { if($db->db_num_rows($result)>0) { echo "Datensatz bereits vorhanden"; } - else + else { //echo "neuer Termin"; - $qry="INSERT INTO campus.tbl_paabgabe (projektarbeit_id, paabgabetyp_kurzbz, fixtermin, - datum, kurzbz, abgabedatum, insertvon, insertamum, updatevon, updateamum) + $qry="INSERT INTO campus.tbl_paabgabe (projektarbeit_id, paabgabetyp_kurzbz, fixtermin, + datum, kurzbz, abgabedatum, insertvon, insertamum, updatevon, updateamum) VALUES (".$db->db_add_param($termine[$j]).", ". $db->db_add_param($paabgabetyp_kurzbz[$x]).", ". ($fixtermin[$x]==1?'true':'false').", ". @@ -174,12 +174,12 @@ if(isset($_POST["schick"]) && $error=='') $db->db_add_param($kurzbz[$x]).", NULL, ". $db->db_add_param($user).", now(), NULL, NULL)"; - //echo $qry; + //echo $qry; if(!$result=$db->db_query($qry)) { - echo "Termin ($datum[$x], $kurzbz[$x]) konnte nicht eingetragen werden!
 "; + echo "Termin ($datum[$x], $kurzbz[$x]) konnte nicht eingetragen werden!
 "; } - else + else { $row=@$db->db_fetch_object($result); $qry_typ="SELECT bezeichnung FROM campus.tbl_paabgabetyp WHERE paabgabetyp_kurzbz=".$db->db_add_param($paabgabetyp_kurzbz[$x]); @@ -187,7 +187,7 @@ if(isset($_POST["schick"]) && $error=='') { $row_typ=$db->db_fetch_object($result_typ); } - else + else { $row_typ->bezeichnung=''; } @@ -199,7 +199,7 @@ if(isset($_POST["schick"]) && $error=='') } } } - } + } //Student zu projektarbeit_id suchen $qry_std="SELECT * FROM campus.vw_student WHERE uid IN(SELECT student_uid FROM lehre.tbl_projektarbeit WHERE projektarbeit_id=".$db->db_add_param($termine[$j]).")"; if($result_std=$db->db_query($qry_std)) @@ -213,21 +213,21 @@ if(isset($_POST["schick"]) && $error=='') $mail->setReplyTo($user."@".DOMAIN); if(!$mail->send()) { - echo "Fehler beim Versenden des Mails an Studierende(n) ($row->nachname)!
 
"; + echo "Fehler beim Versenden des Mails an Studierende(n) ($row->nachname)!
 
"; } - else + else { echo "Mail verschickt an Studierende(n): ".trim($row_std->titelpre." ".$row_std->vorname." ".$row_std->nachname." ".$row_std->titelpost)."
"; } } - + //Mail an EINEN Erstbegutachter oder Betreuer - $qry_betr="SELECT trim(COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(nachname,'')||' '||COALESCE(titelpost,'')) as first, - public.tbl_mitarbeiter.mitarbeiter_uid, anrede + $qry_betr="SELECT trim(COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(nachname,'')||' '||COALESCE(titelpost,'')) as first, + public.tbl_mitarbeiter.mitarbeiter_uid, anrede FROM public.tbl_person JOIN lehre.tbl_projektbetreuer ON(lehre.tbl_projektbetreuer.person_id=public.tbl_person.person_id) - LEFT JOIN public.tbl_benutzer ON(public.tbl_benutzer.person_id=public.tbl_person.person_id) - LEFT JOIN public.tbl_mitarbeiter ON(public.tbl_benutzer.uid=public.tbl_mitarbeiter.mitarbeiter_uid) - WHERE projektarbeit_id=".$db->db_add_param($termine[$j])." AND (tbl_benutzer.aktiv OR tbl_benutzer.aktiv IS NULL) + LEFT JOIN public.tbl_benutzer ON(public.tbl_benutzer.person_id=public.tbl_person.person_id) + LEFT JOIN public.tbl_mitarbeiter ON(public.tbl_benutzer.uid=public.tbl_mitarbeiter.mitarbeiter_uid) + WHERE projektarbeit_id=".$db->db_add_param($termine[$j])." AND (tbl_benutzer.aktiv OR tbl_benutzer.aktiv IS NULL) AND (tbl_projektbetreuer.betreuerart_kurzbz='Erstbegutachter' OR tbl_projektbetreuer.betreuerart_kurzbz='Betreuer')"; if(!$betr=$db->db_query($qry_betr)) { @@ -246,34 +246,34 @@ if(isset($_POST["schick"]) && $error=='') $mail->setReplyTo($user."@".DOMAIN); if(!$mail->send()) { - echo "Fehler beim Versenden des Mails an den (Erst-)Begutachter(in)! ($row_betr->first)
 
"; + echo "Fehler beim Versenden des Mails an den (Erst-)Begutachter(in)! ($row_betr->first)
 
"; } - else + else { echo "Mail verschickt an Erstbegutachter(in): ".$row_betr->first."
"; } } else { - echo "Fehler beim Versenden des Mails an den (Erst-)Begutachter(in)! ($row_betr->first ist kein Mitarbeiter)
 
"; + echo "Fehler beim Versenden des Mails an den (Erst-)Begutachter(in)! ($row_betr->first ist kein Mitarbeiter)
 
"; } } - else + else echo "Erstbegutachter(in) nicht gefunden. Kein Mail verschickt! (Diplomand: $row->nachname)
 "; } - else + else { - echo "Erstbegutachter(in) nicht gefunden. Kein Mail verschickt!
"; + echo "Erstbegutachter(in) nicht gefunden. Kein Mail verschickt!
"; } } //Mail an Zweitbegutachter - $qry_betr="SELECT trim(COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(nachname,'')||' '||COALESCE(titelpost,'')) as first, - public.tbl_mitarbeiter.mitarbeiter_uid, anrede, kontakt + $qry_betr="SELECT trim(COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(nachname,'')||' '||COALESCE(titelpost,'')) as first, + public.tbl_mitarbeiter.mitarbeiter_uid, anrede, kontakt FROM public.tbl_person JOIN lehre.tbl_projektbetreuer ON(lehre.tbl_projektbetreuer.person_id=public.tbl_person.person_id) JOIN public.tbl_kontakt ON(tbl_person.person_id=tbl_kontakt.person_id) - LEFT JOIN public.tbl_benutzer ON(public.tbl_benutzer.person_id=public.tbl_person.person_id) - LEFT JOIN public.tbl_mitarbeiter ON(public.tbl_benutzer.uid=public.tbl_mitarbeiter.mitarbeiter_uid) - WHERE projektarbeit_id=".$db->db_add_param($termine[$j])." AND (tbl_benutzer.aktiv OR tbl_benutzer.aktiv IS NULL) + LEFT JOIN public.tbl_benutzer ON(public.tbl_benutzer.person_id=public.tbl_person.person_id) + LEFT JOIN public.tbl_mitarbeiter ON(public.tbl_benutzer.uid=public.tbl_mitarbeiter.mitarbeiter_uid) + WHERE projektarbeit_id=".$db->db_add_param($termine[$j])." AND (tbl_benutzer.aktiv OR tbl_benutzer.aktiv IS NULL) AND (tbl_projektbetreuer.betreuerart_kurzbz='Zweitbegutachter') AND kontakttyp='email' AND zustellung LIMIT 1"; if(!$betr=$db->db_query($qry_betr)) { @@ -285,29 +285,31 @@ if(isset($_POST["schick"]) && $error=='') { if($row_betr=$db->db_fetch_object($betr)) { - - $mail = new mail($row_betr->kontakt, "no-reply@".DOMAIN, "Neuer Termin Bachelor-/Masterarbeitsbetreuung im Studiengang $stgbez", + if($row_betr->mitarbeiter_uid!='') + $to = $row_betr->mitarbeiter_uid.'@'.DOMAIN; + else + $to = $row_betr->kontakt; + $mail = new mail($to, "no-reply@".DOMAIN, "Neuer Termin Bachelor-/Masterarbeitsbetreuung im Studiengang $stgbez", "Sehr geehrte".($row_betr->anrede=="Herr"?"r":"")." ".$row_betr->anrede." ".$row_betr->first."!\n\nDer Studiengang $stgbez hat (einen) neue(n) Termin(e) angelegt für Ihre Betreuung von ".($row_std->anrede=="Herr"?"Herrn":$row_std->anrede)." ".trim($row_std->titelpre." ".$row_std->vorname." ".$row_std->nachname." ".$row_std->titelpost).":".$mailtermine_lk."\n\nMfG\nDie Studiengangsassistenz\n\n--------------------------------------------------------------------------\nDies ist ein vom Bachelor-/Masterarbeitsabgabesystem generiertes Info-Mail\n--------------------------------------------------------------------------"); $mail->setReplyTo($user."@".DOMAIN); if(!$mail->send()) { - echo "Fehler beim Versenden des Mails an den (Zweit-)Begutachter(in)! ($erst)
"; + echo "Fehler beim Versenden des Mails an den (Zweit-)Begutachter(in)! ($erst)
"; } - else + else { - echo "Mail verschickt an Zweitbetreuer(in): ".$row_betr->first."
"; + echo "Mail verschickt an Zweitbetreuer(in): ".$row_betr->first.' '.$to."
"; } } - else + else echo "Zweitbegutachter(in) nicht gefunden. Kein Mail verschickt!
"; } - else + else { echo "Zweitbegutachter(in) nicht gefunden. Kein Mail verschickt!
"; } - //} } - + } } exit(); @@ -348,13 +350,13 @@ $htmlstr=''; if(!isset($datum[$x])||empty($datum[$x])) { continue; - } + } $htmlstr .= "\n"; if(isset($fixtermin[$x])&&!empty($fixtermin[$x])) { $htmlstr .= ""; } - else + else { $htmlstr .= ""; } @@ -369,15 +371,15 @@ $htmlstr=''; { $htmlstr .= " "; } - else + else { $htmlstr .= " "; } - } + } $htmlstr .= " \n"; - $htmlstr .= " \n"; - $htmlstr .= "  \n"; - + $htmlstr .= " \n"; + $htmlstr .= "  \n"; + } //Eingabezeile für neuen Termin //$htmlstr .= "Abgabetermin:\n"; @@ -386,7 +388,7 @@ $htmlstr=''; $htmlstr .= ''; $htmlstr .= "\n"; $htmlstr .= ''; - $htmlstr .= ''; + $htmlstr .= ''; $htmlstr .= ""; $htmlstr .= " \n"; $htmlstr .= " \n"; - $htmlstr .= " \n"; + $htmlstr .= " \n"; $htmlstr .= " "; $htmlstr .= "    "; $htmlstr .= "\n"; $htmlstr .= "\n"; $htmlstr .= "\n"; $htmlstr .= "\n"; - + echo $htmlstr; echo ''; ?> From b001360d695bd2c61262957061158018219e9440 Mon Sep 17 00:00:00 2001 From: Andreas Moik Date: Thu, 25 Feb 2016 09:23:50 +0100 Subject: [PATCH 4/5] new meta-includes for angular, angular-tablesort, and ajax fe/be --- include/meta/angular-tablesorter.php | 35 +++ include/meta/angular.php | 31 +++ include/meta/js_utils.php | 101 ++++++++ include/meta/php_utils.php | 63 +++++ .../angular-tablesorter/tablesort.css | 23 ++ .../FHC-vendor/angular-tablesort/.gitignore | 2 + vendor/FHC-vendor/angular-tablesort/LICENSE | 21 ++ vendor/FHC-vendor/angular-tablesort/README.md | 119 +++++++++ .../FHC-vendor/angular-tablesort/bower.json | 10 + .../FHC-vendor/angular-tablesort/example.html | 152 ++++++++++++ vendor/FHC-vendor/angular-tablesort/index.js | 2 + .../angular-tablesort/js/angular-tablesort.js | 226 ++++++++++++++++++ .../FHC-vendor/angular-tablesort/package.json | 12 + .../angular-tablesort/tablesort.css | 56 +++++ 14 files changed, 853 insertions(+) create mode 100644 include/meta/angular-tablesorter.php create mode 100644 include/meta/angular.php create mode 100644 include/meta/js_utils.php create mode 100644 include/meta/php_utils.php create mode 100644 include/vendor_custom/angular-tablesorter/tablesort.css create mode 100644 vendor/FHC-vendor/angular-tablesort/.gitignore create mode 100644 vendor/FHC-vendor/angular-tablesort/LICENSE create mode 100644 vendor/FHC-vendor/angular-tablesort/README.md create mode 100644 vendor/FHC-vendor/angular-tablesort/bower.json create mode 100644 vendor/FHC-vendor/angular-tablesort/example.html create mode 100644 vendor/FHC-vendor/angular-tablesort/index.js create mode 100644 vendor/FHC-vendor/angular-tablesort/js/angular-tablesort.js create mode 100644 vendor/FHC-vendor/angular-tablesort/package.json create mode 100644 vendor/FHC-vendor/angular-tablesort/tablesort.css diff --git a/include/meta/angular-tablesorter.php b/include/meta/angular-tablesorter.php new file mode 100644 index 000000000..b0e36e2dc --- /dev/null +++ b/include/meta/angular-tablesorter.php @@ -0,0 +1,35 @@ + + */ +//require_once(dirname(__FILE__).'/config/vilesci.config.inc.php'); Muss vor dieser Datei eingebunden werden! + +$dr = DOC_ROOT; +$dr = str_replace($_SERVER["DOCUMENT_ROOT"], "", $dr); +if($dr=='') + $dr='/'; + +//Originaldateien des Herstellers +echo ''; + +echo ''; + +//Anpassungen +echo ''; + +?> diff --git a/include/meta/angular.php b/include/meta/angular.php new file mode 100644 index 000000000..d7f7655dc --- /dev/null +++ b/include/meta/angular.php @@ -0,0 +1,31 @@ + + */ +//require_once(dirname(__FILE__).'/config/vilesci.config.inc.php'); Muss vor dieser Datei eingebunden werden! + +$dr = DOC_ROOT; +$dr = str_replace($_SERVER["DOCUMENT_ROOT"], "", $dr); +if($dr=='') + $dr='/'; + +//Originaldateien des Herstellers +echo ''; + + +?> diff --git a/include/meta/js_utils.php b/include/meta/js_utils.php new file mode 100644 index 000000000..f2b2ef769 --- /dev/null +++ b/include/meta/js_utils.php @@ -0,0 +1,101 @@ + + */ + +require_once(dirname(__FILE__)."/jquery.php"); +echo ' +'; + +?> + + diff --git a/include/meta/php_utils.php b/include/meta/php_utils.php new file mode 100644 index 000000000..4f8ae2fb2 --- /dev/null +++ b/include/meta/php_utils.php @@ -0,0 +1,63 @@ + + */ + +require_once('../../config/vilesci.config.inc.php'); +require_once('../../include/functions.inc.php'); +require_once('../../include/datum.class.php'); +require_once('../../include/person.class.php'); +require_once('../../include/benutzer.class.php'); +require_once('../../include/benutzerberechtigung.class.php'); + + +function returnAJAX($success, $obj) +{ + //if there is an error + if(error_get_last()) + $ret = array( + "erfolg" => false, + ); + else if(!$success) + { + $ret = array( + "erfolg" => false, + "message" => $obj, + ); + } + //if we dont have a valid user + else if (!$getuid = get_uid()) + { + $ret = array( + "erfolg" => false, + ); + } + //if everything worked fine + else + { + $ret = array( + "erfolg" => true, + "user" => $getuid, + "info" => $obj, + ); + } + echo json_encode($ret); + if($ret["erfolg"] === false) + die(""); +} +?> diff --git a/include/vendor_custom/angular-tablesorter/tablesort.css b/include/vendor_custom/angular-tablesorter/tablesort.css new file mode 100644 index 000000000..bd49e8643 --- /dev/null +++ b/include/vendor_custom/angular-tablesorter/tablesort.css @@ -0,0 +1,23 @@ +/* tables */ +table { + background-color: #EFEFEF; + margin:10px 0pt 15px; + width: 100%; + text-align: left; +} +table thead tr th, table tfoot tr th { + border: 1px solid #FFF; + padding: 4px; + vertical-align: middle; +} +th[ts-criteria]{ + background-color: #DCE4EF; + cursor: pointer; +} +th.tablesort-asc,th.tablesort-desc{ + border-bottom: #000 2px solid; +} + +tbody tr:nth-child(2n){ + background-color: #D3D3D3; +} diff --git a/vendor/FHC-vendor/angular-tablesort/.gitignore b/vendor/FHC-vendor/angular-tablesort/.gitignore new file mode 100644 index 000000000..2db6e8241 --- /dev/null +++ b/vendor/FHC-vendor/angular-tablesort/.gitignore @@ -0,0 +1,2 @@ +.idea +bower_components \ No newline at end of file diff --git a/vendor/FHC-vendor/angular-tablesort/LICENSE b/vendor/FHC-vendor/angular-tablesort/LICENSE new file mode 100644 index 000000000..7627d9f60 --- /dev/null +++ b/vendor/FHC-vendor/angular-tablesort/LICENSE @@ -0,0 +1,21 @@ +The MIT License + +Copyright (c) 2013 Mattias Holmlund, http://www.holmlund.se/mattias + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/FHC-vendor/angular-tablesort/README.md b/vendor/FHC-vendor/angular-tablesort/README.md new file mode 100644 index 000000000..b556f977d --- /dev/null +++ b/vendor/FHC-vendor/angular-tablesort/README.md @@ -0,0 +1,119 @@ +AngularJS Tablesort +=================== + +Allow tables to be sorted by clicking their headings. + +Web site: [http://mattiash.github.io/angular-tablesort](http://mattiash.github.io/angular-tablesort) + +Background +---------- + +When you use jquery to build your web-pages, it is very easy to add sorting-functionality to your tables - include [tablesorter](http://tablesorter.com) and annotate your column headings slightly to tell it what type of data your table contains. + +The goal with this module is to make it just as easy to add sorting to AngularJS tables, but with proper use of angular features and not jquery. + +Click once on a heading to sort ascending, twice for descending. Use shift-click to sort on more than one column. + +Additionally, these directives also makes it easy to add a default row that is shown in empty tables to make +it explicit that the table is intentionally empty and not just broken. + +Installation +------------ + + bower install angular-tablesort + +or + + npm install angular-tablesort + + +Usage +----- + +Include the script in your markup + +```html + +``` + +Include the module in your app + +```js +angular.module('myApp', ['tableSort']); +``` + +The following code generates a table that can be sorted by clicking on the table headings: + +```html + + + + + + + + + + + + + + + + +
IdNamePriceQuantity
{{item.Name}}{{item.Price | currency}}{{item.Quantity}}
+``` + +The `ts-wrapper` attribute must be set on element that surrounds both the headings and the ng-repeat statement. + +The `ts-criteria` attribute tells tablesort which expression it should sort on when that element is clicked. Normally, the ts-criteria is the same as the expression that is shown in the column, but it doesn't have to be. The ts-criteria can also be filtered using the normal AngularJS filter syntax. Tablesort includes two filters parseInt and parseFloat that use the javascript functions of the same name, but any filter can be used. + +The `ts-default` attribute can be set on one or more columns to sort on them in ascending order by default. +To sort in descending order, set ts-default to "descending" + +The `ts-repeat` attribute must be set on the element with ng-repeat. + +```html + +``` + +Alternatively, `ts-repeat-start` and `ts-repeat-end` may be used to compliment the `ng-repeat-start` and `ng-repeat-end` directives. + +```html + + + {{ item.Name }} + + + {{ item.Description }} + +``` + +By default, the sorting will be done as the last operation in the ng-repeat expression. To override this behavior, use an explicit `tablesort` directive as part of your ng-repeat expression. E.g. + +```html + +``` + +This will first select the first 10 items in `items` and then sort them. Alternatively, you can insert an explicit tablesort in the pipe: + +```html + +``` + +This will first sort the rows according to your specification and then only show the first 10 rows. + +If the `ng-repeat` expression contains a `track by` statement (which is generally a good idea), that expression will +be used to provide a [stable](http://en.wikipedia.org/wiki/Sorting_algorithm#Stability) sort result. + +CSS +--- + +All table headings that can be sorted on is styled with css-class `tablesort-sortable`. The table headings that the table is currently sorted on is styled with `tablesort-asc` or `tablesort-desc` classes depending on the sort-direction. A stylesheet is included to show that it works, but you probably want to build your own. + +By default the content and look of the data for empty tables is controlled via css. It is inserted as one empty `` spanning +all columns and placed inside a `` with class `showIfLast` The `` is placed at the top of each table. +To disable this feature add the attribute `ts-hide-no-data` to the `ts-repeat` row: +```html + +``` diff --git a/vendor/FHC-vendor/angular-tablesort/bower.json b/vendor/FHC-vendor/angular-tablesort/bower.json new file mode 100644 index 000000000..eb88e7e85 --- /dev/null +++ b/vendor/FHC-vendor/angular-tablesort/bower.json @@ -0,0 +1,10 @@ +{ + "name": "angular-tablesort", + "description": "Sort AngularJS tables easily", + "version": "1.1.2", + "main": ["./js/angular-tablesort.js"], + "dependencies": { + "angular": "*" + }, + "ignore": [] +} diff --git a/vendor/FHC-vendor/angular-tablesort/example.html b/vendor/FHC-vendor/angular-tablesort/example.html new file mode 100644 index 000000000..ea563dd27 --- /dev/null +++ b/vendor/FHC-vendor/angular-tablesort/example.html @@ -0,0 +1,152 @@ + + + + + Angular Tablesort + + + + +
+
+

Angular Tablesort

+ + + + + + + + + + + + + + + + + + + +
SelectIdNamePriceQuantity
{{item.Id}}{{item.Name}}{{item.Price | currency}}{{item.Quantity}}
+ +

Angular Tablesort with tablesort filter and max 5 entries

+ + + + + + + + + + + + + + + + + + + +
SelectIdNamePriceQuantity
{{item.Id}}{{item.Name}}{{item.Price | currency}}{{item.Quantity}}
+ +

Angular Tablesort with Multi-Element ts-repeat-start & ts-repeat-end

+

Click Select to reveal item details.

+ + + + + + + + + + + + + + + + + + + + + + +
SelectIdNamePriceQuantity
{{item.Id}}{{item.Name}}{{item.Price | currency}}{{item.Quantity}}
{{item.Description}}
+ + + +

Empty table

+ + + + + + + + + + + + + + + + + + + +
SelectIdNamePriceQuantity
{{item.Id}}{{item.Name}}{{item.Price | currency}}{{item.Quantity}}
+ +

Empty table without "No data" row

+ + + + + + + + + + + + + + + + + + + +
SelectIdNamePriceQuantity
{{item.Id}}{{item.Name}}{{item.Price | currency}}{{item.Quantity}}
+
+
+
+ + + + + + diff --git a/vendor/FHC-vendor/angular-tablesort/index.js b/vendor/FHC-vendor/angular-tablesort/index.js new file mode 100644 index 000000000..1ecedb32c --- /dev/null +++ b/vendor/FHC-vendor/angular-tablesort/index.js @@ -0,0 +1,2 @@ +require('./js/angular-tablesort'); +module.exports = 'tableSort'; \ No newline at end of file diff --git a/vendor/FHC-vendor/angular-tablesort/js/angular-tablesort.js b/vendor/FHC-vendor/angular-tablesort/js/angular-tablesort.js new file mode 100644 index 000000000..c2a752d0a --- /dev/null +++ b/vendor/FHC-vendor/angular-tablesort/js/angular-tablesort.js @@ -0,0 +1,226 @@ +/* + angular-tablesort v1.1.2 + (c) 2013-2015 Mattias Holmlund, http://mattiash.github.io/angular-tablesort + License: MIT +*/ + +var tableSortModule = angular.module( 'tableSort', [] ); + +tableSortModule.directive('tsWrapper', ['$log', '$parse', function( $log, $parse ) { + 'use strict'; + return { + scope: true, + controller: ['$scope', function($scope) { + $scope.sortExpression = []; + $scope.headings = []; + + var parse_sortexpr = function( expr ) { + return [$parse( expr ), null, false]; + }; + + this.setSortField = function( sortexpr, element ) { + var i; + var expr = parse_sortexpr( sortexpr ); + if( $scope.sortExpression.length === 1 + && $scope.sortExpression[0][0] === expr[0] ) { + if( $scope.sortExpression[0][2] ) { + element.removeClass( "tablesort-desc" ); + element.addClass( "tablesort-asc" ); + $scope.sortExpression[0][2] = false; + } + else { + element.removeClass( "tablesort-asc" ); + element.addClass( "tablesort-desc" ); + $scope.sortExpression[0][2] = true; + } + } + else { + for( i=0; i<$scope.headings.length; i=i+1 ) { + $scope.headings[i] + .removeClass( "tablesort-desc" ) + .removeClass( "tablesort-asc" ); + } + element.addClass( "tablesort-asc" ); + $scope.sortExpression = [expr]; + } + }; + + this.addSortField = function( sortexpr, element ) { + var i; + var toggle_order = false; + var expr = parse_sortexpr( sortexpr ); + for( i=0; i<$scope.sortExpression.length; i=i+1 ) { + if( $scope.sortExpression[i][0] === expr[0] ) { + if( $scope.sortExpression[i][2] ) { + element.removeClass( "tablesort-desc" ); + element.addClass( "tablesort-asc" ); + $scope.sortExpression[i][2] = false; + } + else { + element.removeClass( "tablesort-asc" ); + element.addClass( "tablesort-desc" ); + $scope.sortExpression[i][2] = true; + } + toggle_order = true; + } + } + if( !toggle_order ) { + element.addClass( "tablesort-asc" ); + $scope.sortExpression.push( expr ); + } + }; + + this.setTrackBy = function( trackBy ) { + $scope.trackBy = trackBy; + }; + + this.registerHeading = function( headingelement ) { + $scope.headings.push( headingelement ); + }; + + $scope.sortFun = function( a, b ) { + var i, aval, bval, descending, filterFun; + for( i=0; i<$scope.sortExpression.length; i=i+1 ){ + aval = $scope.sortExpression[i][0](a); + bval = $scope.sortExpression[i][0](b); + filterFun = b[$scope.sortExpression[i][1]]; + if( filterFun ) { + aval = filterFun( aval ); + bval = filterFun( bval ); + } + if( aval === undefined || aval === null ) { + aval = ""; + } + if( bval === undefined || bval === null ) { + bval = ""; + } + descending = $scope.sortExpression[i][2]; + if( aval > bval ) { + return descending ? -1 : 1; + } + else if( aval < bval ) { + return descending ? 1 : -1; + } + } + + // All the sort fields were equal. If there is a "track by" expression, + // use that as a tiebreaker to make the sort result stable. + if( $scope.trackBy ) { + aval = a[$scope.trackBy]; + bval = b[$scope.trackBy]; + if( aval === undefined || aval === null ) { + aval = ""; + } + if( bval === undefined || bval === null ) { + bval = ""; + } + if( aval > bval ) { + return descending ? -1 : 1; + } + else if( aval < bval ) { + return descending ? 1 : -1; + } + } + return 0; + }; + }] + }; +}]); + +tableSortModule.directive('tsCriteria', function() { + return { + require: "^tsWrapper", + link: function(scope, element, attrs, tsWrapperCtrl) { + var clickingCallback = function(event) { + scope.$apply( function() { + if( event.shiftKey ) { + tsWrapperCtrl.addSortField(attrs.tsCriteria, element); + } + else { + tsWrapperCtrl.setSortField(attrs.tsCriteria, element); + } + } ); + }; + element.bind('click', clickingCallback); + element.addClass('tablesort-sortable'); + if( "tsDefault" in attrs && attrs.tsDefault !== "0" ) { + tsWrapperCtrl.addSortField( attrs.tsCriteria, element ); + if( attrs.tsDefault == "descending" ) { + tsWrapperCtrl.addSortField( attrs.tsCriteria, element ); + } + } + tsWrapperCtrl.registerHeading( element ); + } + }; +}); + +tableSortModule.directive("tsRepeat", ['$compile', function($compile) { + return { + terminal: true, + multiElement: true, + require: "^tsWrapper", + priority: 1000000, + link: function(scope, element, attrs, tsWrapperCtrl) { + var repeatAttrs = ["ng-repeat", "data-ng-repeat", "ng-repeat-start", "data-ng-repeat-start"]; + var ngRepeatDirective = repeatAttrs[0]; + var tsRepeatDirective = "ts-repeat"; + for (var i = 0; i < repeatAttrs.length; i++) { + if (angular.isDefined(element.attr(repeatAttrs[i]))) { + ngRepeatDirective = repeatAttrs[i]; + tsRepeatDirective = ngRepeatDirective.replace(/^(data-)?ng/, '$1ts'); + break; + } + } + + var repeatExpr = element.attr(ngRepeatDirective); + var trackBy = null; + var trackByMatch = repeatExpr.match(/\s+track\s+by\s+\S+?\.(\S+)/); + if( trackByMatch ) { + trackBy = trackByMatch[1]; + tsWrapperCtrl.setTrackBy(trackBy); + } + + if (repeatExpr.search(/tablesort/) != -1) { + repeatExpr = repeatExpr.replace(/tablesort/,"tablesortOrderBy:sortFun"); + } else { + repeatExpr = repeatExpr.replace(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(\s+track\s+by\s+[\s\S]+?)?\s*$/, + "$1 in $2 | tablesortOrderBy:sortFun$3"); + } + + if (angular.isUndefined(attrs.tsHideNoData)) { + var noDataRow = angular.element(element[0]).clone(); + noDataRow.removeAttr(ngRepeatDirective); + noDataRow.removeAttr(tsRepeatDirective); + noDataRow.addClass("showIfLast"); + noDataRow.children().remove(); + noDataRow.append(''); + noDataRow = $compile(noDataRow)(scope); + element.parent().prepend(noDataRow); + } + + angular.element(element[0]).attr(ngRepeatDirective, repeatExpr); + $compile(element, null, 1000000)(scope); + } + }; +}]); + +tableSortModule.filter( 'tablesortOrderBy', function(){ + return function(array, sortfun ) { + if(!array) return; + var arrayCopy = []; + for ( var i = 0; i < array.length; i++) { arrayCopy.push(array[i]); } + return arrayCopy.sort( sortfun ); + }; +} ); + +tableSortModule.filter( 'parseInt', function(){ + return function(input) { + return parseInt( input ) || null; + }; +} ); + +tableSortModule.filter( 'parseFloat', function(){ + return function(input) { + return parseFloat( input ) || null; + }; +} ); diff --git a/vendor/FHC-vendor/angular-tablesort/package.json b/vendor/FHC-vendor/angular-tablesort/package.json new file mode 100644 index 000000000..20a4ad16d --- /dev/null +++ b/vendor/FHC-vendor/angular-tablesort/package.json @@ -0,0 +1,12 @@ +{ + "name": "angular-tablesort", + "version": "1.1.2", + "description": "Sort angularjs tables easily", + "main": "index.js", + "repository": { + "type": "git", + "url": "https://github.com/mattiash/angular-tablesort.git" + }, + "license": "MIT", + "homepage": "https://github.com/mattiash/angular-tablesort" +} diff --git a/vendor/FHC-vendor/angular-tablesort/tablesort.css b/vendor/FHC-vendor/angular-tablesort/tablesort.css new file mode 100644 index 000000000..d6c11656c --- /dev/null +++ b/vendor/FHC-vendor/angular-tablesort/tablesort.css @@ -0,0 +1,56 @@ +th.tablesort-sortable { + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -o-user-select: none; + user-select: none; + cursor: pointer; +} + +table .tablesort-sortable:after{ + content:""; + float:right; + margin-top:7px; + visibility:hidden; + border-left:4px solid transparent; + border-right:4px solid transparent; + + border-top:none; + border-bottom:4px solid #000; +} + +table .tablesort-desc:after{ + border-top:4px solid #000; + border-bottom:none; +} + +table .tablesort-asc,table .tablesort-desc{ + background-color:rgba(141, 192, 219, 0.25); +} + +table .tablesort-sortable:hover:after, table .tablesort-asc:after, table .tablesort-desc:after { + visibility:visible; +} + +/* + * Styling for the table row shown in empty tables + */ + +/* The row is always added as the first row in a table + Hide it by default */ +.showIfLast { + display: none; +} + +/* Only show it if it is also the last row of the table. */ +.showIfLast:last-child { + display: table-row; +} + +.showIfLast td { + text-align: center; +} + +.showIfLast td:after { + content: "No data"; +} From 32fec96d4b3d1d623c9242fed8224dfb821b7f09 Mon Sep 17 00:00:00 2001 From: Gerald Raab Date: Thu, 25 Feb 2016 14:24:45 +0100 Subject: [PATCH 5/5] Identische Eintraege abfangen --- include/zeitaufzeichnung.class.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/include/zeitaufzeichnung.class.php b/include/zeitaufzeichnung.class.php index 6a93e5314..dcb270db5 100755 --- a/include/zeitaufzeichnung.class.php +++ b/include/zeitaufzeichnung.class.php @@ -134,8 +134,9 @@ class zeitaufzeichnung extends basis_db if(!$this->validate()) return false; + // check ob identischer eintrag existiert $check_qry = 'SELECT count(*) from campus.tbl_zeitaufzeichnung where uid='.$this->db_add_param($this->uid).' and start = '.$this->db_add_param($this->start).' and ende = '.$this->db_add_param($this->ende); - if($this->db_query($check_qry)) + if($this->db_query($check_qry) && $this->new) { if($row = $this->db_fetch_object()) { @@ -147,6 +148,7 @@ class zeitaufzeichnung extends basis_db } } + if($this->new) { //Neuen Datensatz einfuegen