From 1af4938ab247e68c3b73183ffc114ec06739a9da Mon Sep 17 00:00:00 2001 From: kindlm Date: Thu, 29 Sep 2016 17:51:36 +0200 Subject: [PATCH] Ampelsystem: New attribute "verpflichtend" - New attributes "verpflichtend"(mandatory) and "buttontext" in the ampelsystem - Verpflichtende Ampeln are shown as div-popup on the CIS every time the page refreshes till the notification is confirmed. - Text of the confirm-button is changeable (fallback to default-phrase) - Only the notifications of the current semester are shown by default ("show all" as button) --- cis/ampel.php | 68 +++++++- cis/index.php | 16 +- cis/private/tools/ampelleiteruebersicht.php | 36 +++- cis/private/tools/ampelverwaltung.php | 175 ++++++++++++++------ include/ampel.class.php | 73 ++++++-- include/sprache.class.php | 6 +- locale/de-AT/tools.php | 3 + locale/en-US/tools.php | 3 + system/dbupdate_3.2.php | 14 +- vilesci/stammdaten/ampel_details.php | 64 +++++-- vilesci/stammdaten/ampel_uebersicht.php | 2 + 11 files changed, 366 insertions(+), 94 deletions(-) diff --git a/cis/ampel.php b/cis/ampel.php index eeca6f603..27b4571d2 100755 --- a/cis/ampel.php +++ b/cis/ampel.php @@ -7,7 +7,20 @@ require_once('../include/phrasen.class.php'); $sprache = getSprache(); $p = new phrasen($sprache); +?> + + +loadUserAmpel($user); $rot=0; $gelb=0; + $verpflichtend = false; $datum = new datum(); foreach($ampel->result as $row) { @@ -23,16 +37,19 @@ if(is_user_logged_in()) $vlz = "-".$row->vorlaufzeit." day"; $ts_vorlaufzeit = strtotime($vlz, $ts_deadline); $ts_now = $datum->mktime_fromdate(date('Y-m-d')); - if($ts_deadline < $ts_now) { $rot++; + if ($row->verpflichtend == 't') + $verpflichtend = true; } else { if($ts_vorlaufzeit<=$ts_now && $ts_now<=$ts_deadline) { $gelb++; + if ($row->verpflichtend == 't') + $verpflichtend = true; } } } @@ -41,12 +58,53 @@ if(is_user_logged_in()) if($rot>0 || $gelb>0) { - echo ''; - if($rot>0 && $gelb==0) + // Wenn es eine verpflichtende Ampel gibt, das Pupup im CIS anzeigen + if ($verpflichtend == true) + { + echo ' '; + + echo ' '; + } + if($rot>0) echo ''.$p->t("tools/ampelsystem").'  |  '; - if($gelb>0 && $rot==0) + elseif($gelb>0) echo ''.$p->t("tools/ampelsystem").'  |  '; - echo ' '; } } else diff --git a/cis/index.php b/cis/index.php index ec8d08160..4d6453788 100644 --- a/cis/index.php +++ b/cis/index.php @@ -159,7 +159,7 @@ function loadampel() - +
@@ -192,12 +192,14 @@ function loadampel()
- - + + + +
diff --git a/cis/private/tools/ampelleiteruebersicht.php b/cis/private/tools/ampelleiteruebersicht.php index f7a9ee7ad..2e6d1f326 100755 --- a/cis/private/tools/ampelleiteruebersicht.php +++ b/cis/private/tools/ampelleiteruebersicht.php @@ -99,6 +99,25 @@ if(isset($_POST['ampel_id'])) else $ampel_id = ''; +if (isset($_GET['ampel_benutzer_bestaetigt_id']) && isset($_GET['delete'])) +{ + if ($rechte->isBerechtigt('admin', null, 'suid')) + { + $delete_bestaetigung = new ampel(); + if($delete_bestaetigung->deleteAmpelBenutzer($_GET['ampel_benutzer_bestaetigt_id'])) + { + echo 'Ampelbestaetigung erfolgreich geloescht'; + } + else + { + $action='new'; + echo ''.$delete_bestaetigung->errormsg.''; + } + } +} + + +echo '

'.($p->t('tools/ampelsystem')).'

'; echo '
'; echo $p->t('global/organisationseinheit').': + +
'; + else + echo ''; + + } echo ''; } echo ''; diff --git a/cis/private/tools/ampelverwaltung.php b/cis/private/tools/ampelverwaltung.php index d83c01765..b8132c55d 100755 --- a/cis/private/tools/ampelverwaltung.php +++ b/cis/private/tools/ampelverwaltung.php @@ -25,11 +25,14 @@ require_once('../../../include/phrasen.class.php'); require_once('../../../include/benutzerfunktion.class.php'); require_once('../../../include/organisationseinheit.class.php'); require_once('../../../include/benutzerberechtigung.class.php'); +require_once('../../../include/studiensemester.class.php'); $user = get_uid(); $sprache = getSprache(); $p = new phrasen($sprache); +$show = (isset($_GET['show'])?$_GET['show']:'aktuell'); + //Leiter OEs holen $benutzerfunktion = new benutzerfunktion(); $benutzerfunktion->getBenutzerFunktionen('Leitung', '', '', $user); @@ -54,6 +57,8 @@ if($rechte->isBerechtigt('basis/ampeluebersicht')) array_unique($oes); +$studiensemester = new studiensemester(); +$ss_akt = $studiensemester->getakt(); echo ' @@ -73,7 +78,8 @@ echo ' @@ -86,6 +92,10 @@ if(count($oes)!=0) echo '

'.$p->t('tools/dasAmpelsystemIstEinErinnerungsystem').'

'; +if ($show == 'aktuell') + echo '

'.$p->t('tools/ampelAlleAnzeigen').'

'; +else + echo '

'.$p->t('tools/ampelNurAktuellesStudiensemester').'

'; $datum_obj = new datum(); @@ -126,78 +136,135 @@ if($type=='bestaetigen' && is_numeric($ampel_id)) echo $message; $ampel = new ampel(); -$ampel->loadUserAmpel($user, true, true); +$ampel->loadUserAmpel($user, false, true); echo ' - + '; +$beginn = new studiensemester($ss_akt); foreach($ampel->result as $row) { - $ts_deadline = $datum_obj->mktime_fromdate($row->deadline); - $vlz = "-".$row->vorlaufzeit." day"; - $ts_vorlaufzeit = strtotime($vlz, $ts_deadline); - $ts_now = $datum_obj->mktime_fromdate(date('Y-m-d')); - - if($ts_vorlaufzeit<=$ts_now && $ts_now<=$ts_deadline) - $ampelstatus='gelb'; - elseif($ts_now>$ts_deadline) - $ampelstatus='rot'; - elseif($ts_now<$ts_deadline && $ts_vorlaufzeit>=$ts_now) - $ampelstatus='gruen'; - - if($bestaetigt = $ampel->isBestaetigt($user,$row->ampel_id)) - $ampelstatus=''; - - echo ''; - echo ''; + echo ''; + + echo ''; + $beschreibung = $row->beschreibung[$sprache]; + if($beschreibung=='' && isset($row->beschreibung[DEFAULT_LANGUAGE])) + $beschreibung = $row->beschreibung[DEFAULT_LANGUAGE]; + echo ''; + echo ''; + + // echo ""; + // echo ""; + // echo ""; + echo ''; } - echo $status; + elseif ($show == 'alle') + { + $ts_deadline = $datum_obj->mktime_fromdate($row->deadline); + $vlz = "-".$row->vorlaufzeit." day"; + $ts_vorlaufzeit = strtotime($vlz, $ts_deadline); + $ts_now = $datum_obj->mktime_fromdate(date('Y-m-d')); - echo ''; + if($ts_vorlaufzeit<=$ts_now && $ts_now<=$ts_deadline) + $ampelstatus='gelb'; + elseif($ts_now>$ts_deadline) + $ampelstatus='rot'; + elseif($ts_now<$ts_deadline && $ts_vorlaufzeit>=$ts_now) + $ampelstatus='gruen'; + + if($bestaetigt = $ampel->isBestaetigt($user,$row->ampel_id)) + $ampelstatus=''; + + echo ''; + echo ''; + + echo ''; + $beschreibung = $row->beschreibung[$sprache]; + if($beschreibung=='' && isset($row->beschreibung[DEFAULT_LANGUAGE])) + $beschreibung = $row->beschreibung[DEFAULT_LANGUAGE]; + echo ''; + echo ''; - echo ''; - $beschreibung = $row->beschreibung[$sprache]; - if($beschreibung=='' && isset($row->beschreibung[DEFAULT_LANGUAGE])) - $beschreibung = $row->beschreibung[DEFAULT_LANGUAGE]; - echo ''; - echo ''; - -// echo ""; -// echo ""; -// echo ""; - echo ''; + // echo ""; + // echo ""; + // echo ""; + echo ''; + } } echo '
'.$p->t('tools/ampelErledigt').' '.$p->t('tools/ampelBeschreibung').' '.$p->t('tools/ampelDeadline').'
'; - switch($ampelstatus) + //Nur Ampeln laden, die im aktuellen Studiensemester liegen + if ($show == 'aktuell' && $row->deadline>=$beginn->start) { - case 'rot': - $status= ''; - break; - case 'gelb': - $status= ''; - break; - case 'gruen': - $status= ''; - break; - default: - $status= ''; - break; + $ts_deadline = $datum_obj->mktime_fromdate($row->deadline); + $vlz = "-".$row->vorlaufzeit." day"; + $ts_vorlaufzeit = strtotime($vlz, $ts_deadline); + $ts_now = $datum_obj->mktime_fromdate(date('Y-m-d')); + + if($ts_vorlaufzeit<=$ts_now && $ts_now<=$ts_deadline) + $ampelstatus='gelb'; + elseif($ts_now>$ts_deadline) + $ampelstatus='rot'; + elseif($ts_now<$ts_deadline && $ts_vorlaufzeit>=$ts_now) + $ampelstatus='gruen'; + + if($bestaetigt = $ampel->isBestaetigt($user,$row->ampel_id)) + $ampelstatus=''; + + echo '
'; + switch($ampelstatus) + { + case 'rot': + $status= ''; + break; + case 'gelb': + $status= ''; + break; + case 'gruen': + $status= ''; + break; + default: + $status= ''; + break; + } + echo $status; + + echo ''; + if(!$bestaetigt) + echo '
'; + else + echo ''; + echo '
verpflichtend=='t'?'style="background-color: #EF8A88"':'').'>'.$beschreibung.''.$datum_obj->formatDatum($row->deadline,'d.m.Y').'".date('d.m.Y',$ts_now)."".date('d.m.Y',$ts_vorlaufzeit)."".date('d.m.Y',$ts_deadline)."
'; - if(!$bestaetigt) - //echo ''.$p->t('tools/ampelBestaetigen').''; - echo ''; - else - //echo $p->t('tools/ampelBestaetigt'); - //echo ''; - echo ''; - echo '
'; + switch($ampelstatus) + { + case 'rot': + $status= ''; + break; + case 'gelb': + $status= ''; + break; + case 'gruen': + $status= ''; + break; + default: + $status= ''; + break; + } + echo $status; + + echo ''; + if(!$bestaetigt) + echo '
'; + else + echo ''; + echo '
verpflichtend=='t'?'style="background-color: #EF8A88"':'').'>'.$beschreibung.''.$datum_obj->formatDatum($row->deadline,'d.m.Y').''.$beschreibung.''.$datum_obj->formatDatum($row->deadline,'d.m.Y').'".date('d.m.Y',$ts_now)."".date('d.m.Y',$ts_vorlaufzeit)."".date('d.m.Y',$ts_deadline)."
".date('d.m.Y',$ts_now)."".date('d.m.Y',$ts_vorlaufzeit)."".date('d.m.Y',$ts_deadline)."
'; diff --git a/include/ampel.class.php b/include/ampel.class.php index 964a5c418..7473cca87 100755 --- a/include/ampel.class.php +++ b/include/ampel.class.php @@ -38,6 +38,8 @@ class ampel extends basis_db public $vorlaufzeit; // smallint public $verfallszeit; // smallint public $email; // boolean + public $verpflichtend; // boolean + public $buttontext; // varchar(64)[] public $insertamum; // timestamp public $insertvon; // varchar(32) public $updateamum; // timestamp @@ -74,8 +76,9 @@ class ampel extends basis_db $sprache = new sprache(); $beschreibung = $sprache->getSprachQuery('beschreibung'); + $buttontext = $sprache->getSprachQuery('buttontext'); - $qry = "SELECT *,".$beschreibung." FROM public.tbl_ampel WHERE ampel_id=".$this->db_add_param($ampel_id, FHC_INTEGER); + $qry = "SELECT *,".$beschreibung.", ".$buttontext." FROM public.tbl_ampel WHERE ampel_id=".$this->db_add_param($ampel_id, FHC_INTEGER); if($result = $this->db_query($qry)) { @@ -89,6 +92,8 @@ class ampel extends basis_db $this->vorlaufzeit = $row->vorlaufzeit; $this->verfallszeit = $row->verfallszeit; $this->email = $row->email; + $this->verpflichtend = $row->verpflichtend; + $this->buttontext = $sprache->parseSprachResult('buttontext', $row); $this->insertamum = $row->insertamum; $this->insertvon = $row->insertvon; $this->updateamum = $row->updateamum; @@ -117,8 +122,9 @@ class ampel extends basis_db { $sprache = new sprache(); $beschreibung = $sprache->getSprachQuery('beschreibung'); + $buttontext = $sprache->getSprachQuery('buttontext'); - $qry = "SELECT *,".$beschreibung." FROM public.tbl_ampel"; + $qry = "SELECT *,".$beschreibung.", ".$buttontext." FROM public.tbl_ampel"; if($aktiv) { $qry .= " WHERE (NOW()>(deadline-(vorlaufzeit || ' days')::interval)::date)"; @@ -140,6 +146,8 @@ class ampel extends basis_db $obj->vorlaufzeit = $row->vorlaufzeit; $obj->verfallszeit = $row->verfallszeit; $obj->email = $this->db_parse_bool($row->email); + $obj->verpflichtend = $this->db_parse_bool($row->verpflichtend); + $obj->buttontext = $sprache->parseSprachResult('buttontext', $row); $obj->insertamum = $row->insertamum; $obj->insertvon = $row->insertvon; @@ -212,20 +220,21 @@ class ampel extends basis_db /** * Laedt alle aktuellen Ampeln eines Users - * @param $user - * @param $zukuenftige_anzeigen + * @param string $user User, dessen Ampeln geladen werden sollen + * @param boolean $zukuenftige_anzeigen Default false * wenn true, werden alle zukuenftigen Ampeln geladen * wenn false, werden nur die Ampeln geladen die innerhalb der vorlaufzeit liegen - * @param $bestaetigt + * @param boolean $bestaetigt Default false * wenn true, werden alle Ampeln geladen - * wenn false, werden nur die Ampeln geladen die noch nicht bestaetigt wurden + * wenn false, werden nur die Ampeln geladen die noch NICHT bestaetigt wurden */ public function loadUserAmpel($user, $zukuenftige_anzeigen=false, $bestaetigt=false) { $sprache = new sprache(); $beschreibung = $sprache->getSprachQuery('beschreibung'); + $buttontext = $sprache->getSprachQuery('buttontext'); - $qry = "SELECT *,".$beschreibung." FROM public.tbl_ampel WHERE deadline+verfallszeit>now()"; + $qry = "SELECT *,".$beschreibung.", ".$buttontext." FROM public.tbl_ampel WHERE deadline+verfallszeit>now()"; if(!$zukuenftige_anzeigen) $qry.=" AND deadline-vorlaufzeitdb_query($qry)) { while($row = $this->db_fetch_object($result)) @@ -254,6 +263,8 @@ class ampel extends basis_db $obj->vorlaufzeit = $row->vorlaufzeit; $obj->verfallszeit = $row->verfallszeit; $obj->email = $row->email; + $obj->verpflichtend = $row->verpflichtend; + $obj->buttontext = $sprache->parseSprachResult('buttontext', $row); $obj->insertamum = $row->insertamum; $obj->insertvon = $row->insertvon; @@ -315,19 +326,28 @@ class ampel extends basis_db $idx = sprache::$index_arr[$key]; $qry.=" beschreibung[$idx],"; } + foreach($this->buttontext as $key=>$value) + { + $idx = sprache::$index_arr[$key]; + $qry.=" buttontext[$idx],"; + } $qry.=" benutzer_select, deadline, - vorlaufzeit, verfallszeit, email, insertamum, insertvon , updateamum, updatevon) VALUES(". + vorlaufzeit, verfallszeit, email, verpflichtend, insertamum, insertvon , updateamum, updatevon) VALUES(". $this->db_add_param($this->kurzbz).','; reset($this->beschreibung); foreach($this->beschreibung as $key=>$value) $qry.=$this->db_add_param($value).','; + reset($this->buttontext); + foreach($this->buttontext as $key=>$value) + $qry.=$this->db_add_param($value).','; $qry .= $this->db_add_param($this->benutzer_select).','. $this->db_add_param($this->deadline).','. $this->db_add_param($this->vorlaufzeit).','. $this->db_add_param($this->verfallszeit).','. $this->db_add_param($this->email, FHC_BOOLEAN).','. + $this->db_add_param($this->verpflichtend, FHC_BOOLEAN).','. $this->db_add_param($this->insertamum).','. $this->db_add_param($this->insertvon).','. $this->db_add_param($this->updateamum).','. @@ -343,12 +363,19 @@ class ampel extends basis_db $idx = sprache::$index_arr[$key]; $qry.=' beschreibung['.$idx.'] = '.$this->db_add_param($value).','; } + reset($this->buttontext); + foreach($this->buttontext as $key=>$value) + { + $idx = sprache::$index_arr[$key]; + $qry.=' buttontext['.$idx.'] = '.$this->db_add_param($value).','; + } $qry.= ' benutzer_select = '.$this->db_add_param($this->benutzer_select).','. ' deadline = '.$this->db_add_param($this->deadline).','. ' vorlaufzeit = '.$this->db_add_param($this->vorlaufzeit).','. ' verfallszeit = '.$this->db_add_param($this->verfallszeit).','. ' email = '.$this->db_add_param($this->email, FHC_BOOLEAN).','. + ' verpflichtend = '.$this->db_add_param($this->verpflichtend, FHC_BOOLEAN).','. ' updateamum ='.$this->db_add_param($this->updateamum).','. ' updatevon ='.$this->db_add_param($this->updatevon). ' WHERE ampel_id='.$this->db_add_param($this->ampel_id, FHC_INTEGER).';'; @@ -414,6 +441,29 @@ class ampel extends basis_db } } + /** + * Loescht eine Bestaetigung einer Ampel + + * @param $ampel_id + */ + public function deleteAmpelBenutzer($ampel_benutzer_bestaetigt_id) + { + if(!is_numeric($ampel_benutzer_bestaetigt_id)) + { + $this->errormsg='ID ist ungueltig'; + return false; + } + $qry = "DELETE FROM public.tbl_ampel_benutzer_bestaetigt WHERE ampel_benutzer_bestaetigt_id=".$this->db_add_param($ampel_benutzer_bestaetigt_id); + + if($this->db_query($qry)) + return true; + else + { + $this->errormsg = 'Fehler beim Loeschen der Bestaetigung'; + return false; + } + } + /** * Bestaetigt die Ampel eines Users * @param $user @@ -446,6 +496,7 @@ class ampel extends basis_db { $sprache = new sprache(); $beschreibung = $sprache->getSprachQuery('beschreibung'); + $buttontext = $sprache->getSprachQuery('buttontext'); if(!is_numeric($ampel_id) && $ampel_id!='') { @@ -454,7 +505,7 @@ class ampel extends basis_db } // Ampeln holen - $qry = "SELECT *,".$beschreibung." FROM public.tbl_ampel"; + $qry = "SELECT *,".$beschreibung.", ".$buttontext." FROM public.tbl_ampel"; if($ampel_id!='') $qry.=" WHERE ampel_id=".$this->db_add_param($ampel_id, FHC_INTEGER); @@ -500,6 +551,8 @@ class ampel extends basis_db $obj->vorlaufzeit = $row->vorlaufzeit; $obj->verfallszeit = $row->verfallszeit; $obj->email = $row->email; + $obj->verpflichtend = $row->verpflichtend; + $obj->buttontext = $sprache->parseSprachResult('buttontext', $row); $obj->insertamum = $row->insertamum; $obj->insertvon = $row->insertvon; diff --git a/include/sprache.class.php b/include/sprache.class.php index 74d866161..4bcc57212 100644 --- a/include/sprache.class.php +++ b/include/sprache.class.php @@ -85,15 +85,17 @@ class sprache extends basis_db /** * * Lädt alle verfügbaren Sprachen + * @param boolean $content Default:null Ist die Sprache relevant fuer die Sprachauswahl + * @param string $order Default:sprache Spalte, nach der die Ergebnisse sortiert werden * @return true bei Erfolg, false wenn ein Fehler aufgetreten ist. */ - public function getAll($content=null) + public function getAll($content=null, $order='sprache') { $qry = "SELECT *,".$this->getSprachQuery('bezeichnung')." FROM public.tbl_sprache"; if(!is_null($content)) $qry.= " WHERE content=".$this->db_add_param($content, FHC_BOOLEAN); - $qry.=" ORDER BY sprache"; + $qry.=" ORDER BY ".$order; if(!$this->db_query($qry)) { diff --git a/locale/de-AT/tools.php b/locale/de-AT/tools.php index afbbb25ea..e312051e8 100755 --- a/locale/de-AT/tools.php +++ b/locale/de-AT/tools.php @@ -49,6 +49,8 @@ $this->phrasen['tools/ampelBereitsBestaetigt']='Diese Ampel wurde bereits bestä $this->phrasen['tools/dasAmpelsystemIstEinErinnerungsystem']='Das Ampelsystem ist ein ERINNERUNGS- und BESTÄTIGUNGSSYSTEM, welches Sie auf ausstehende Aufgaben aufmerksam machen soll.'; $this->phrasen['tools/waehlenSieEineOEoderAmpel']='Bitte wählen Sie ein Organisationseinheit und/oder eine Ampel aus dem Dropdown'; $this->phrasen['tools/uebersichtLeitung']='Ampel-Übersicht für LeiterInnen'; +$this->phrasen['tools/ampelAlleAnzeigen']='Alle anzeigen'; +$this->phrasen['tools/ampelNurAktuellesStudiensemester']='Nur aktuelles Studiensemester anzeigen'; //Software fuer Lehre -> Softgrid $this->phrasen['tools/applikationsliste']='Applikationsliste'; @@ -76,4 +78,5 @@ $this->phrasen['tools/esWurdenKeineErgebnisseGefunden']='Es wurden keine Ergebni //Partnerhochschulen $this->phrasen['tools/partnerhochschulenUebersicht']='Übersicht der Partnerhochschulen'; $this->phrasen['tools/partnerhochschulenKeinEintrag']='Für diesen Studiengang ist keine Partnerhochschule zugeordnet'; +$this->phrasen['tools/partnerhochschulenEinleitung']='Sollten Sie an einer Partnerhochschule studieren wollen, die sich nicht auf dieser Liste befindet, kontaktieren Sie bitte das Center for International Relations (CIR).'; ?> diff --git a/locale/en-US/tools.php b/locale/en-US/tools.php index ce65ed007..832c9a97e 100755 --- a/locale/en-US/tools.php +++ b/locale/en-US/tools.php @@ -49,6 +49,8 @@ $this->phrasen['tools/ampelBereitsBestaetigt']='This notification has already be $this->phrasen['tools/dasAmpelsystemIstEinErinnerungsystem']='The notification system is a REMINDER and CONFIRMATION SYSTEM that is provided to remind you of outstanding tasks.'; $this->phrasen['tools/waehlenSieEineOEoderAmpel']='Please select an organizational unit and/or a notification from the drop down menu.'; $this->phrasen['tools/uebersichtLeitung']='Overview of notifications for Heads of Departments'; +$this->phrasen['tools/alleAnzeigen']='Show all'; +$this->phrasen['tools/nurAktuellesStudiensemester']='Show current semester only'; //Software fuer Lehre -> Softgrid $this->phrasen['tools/applikationsliste']='List of Applications'; @@ -76,4 +78,5 @@ $this->phrasen['tools/esWurdenKeineErgebnisseGefunden']='Your search did not ret //Partnerhochschulen $this->phrasen['tools/partnerhochschulenUebersicht']='Partner Universities'; $this->phrasen['tools/partnerhochschulenKeinEintrag']='No entry found'; +$this->phrasen['tools/partnerhochschulenEinleitung']='In case you would like to study at a partner university that isn´t listed - please contact the Center for International Relations (CIR).'; ?> diff --git a/system/dbupdate_3.2.php b/system/dbupdate_3.2.php index 9afc38257..44b5bcaab 100755 --- a/system/dbupdate_3.2.php +++ b/system/dbupdate_3.2.php @@ -1193,6 +1193,18 @@ if(!$result = @$db->db_query("SELECT studienplan_id FROM public.tbl_bewerbungste echo '
Neue Spalte studienplan_id in Tabelle public.tbl_bewerbungstermine hinzugefügt
'; } +// Attribute verpflichtend und buttontext in public.tbl_ampel +if(!$result = @$db->db_query("SELECT verpflichtend FROM public.tbl_ampel LIMIT 1")) +{ + $qry = "ALTER TABLE public.tbl_ampel ADD COLUMN verpflichtend boolean NOT NULL DEFAULT FALSE; + ALTER TABLE public.tbl_ampel ADD COLUMN buttontext varchar(64)[];"; + + if(!$db->db_query($qry)) + echo 'public.tbl_ampel '.$db->db_last_error().'
'; + else + echo '
Neue Spalten "verpflichtend" und "buttontext" in Tabelle public.tbl_ampel hinzugefügt
'; +} + // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

Pruefe Tabellen und Attribute!

'; @@ -1344,7 +1356,7 @@ $tabellen=array( "lehre.tbl_zeugnisnote" => array("lehrveranstaltung_id","student_uid","studiensemester_kurzbz","note","uebernahmedatum","benotungsdatum","bemerkung","updateamum","updatevon","insertamum","insertvon","ext_id","punkte"), "public.tbl_adresse" => array("adresse_id","person_id","name","strasse","plz","ort","gemeinde","nation","typ","heimatadresse","zustelladresse","firma_id","updateamum","updatevon","insertamum","insertvon","ext_id"), "public.tbl_akte" => array("akte_id","person_id","dokument_kurzbz","uid","inhalt","mimetype","erstelltam","gedruckt","titel","bezeichnung","updateamum","updatevon","insertamum","insertvon","ext_id","dms_id","nachgereicht","anmerkung","titel_intern","anmerkung_intern"), - "public.tbl_ampel" => array("ampel_id","kurzbz","beschreibung","benutzer_select","deadline","vorlaufzeit","verfallszeit","insertamum","insertvon","updateamum","updatevon","email"), + "public.tbl_ampel" => array("ampel_id","kurzbz","beschreibung","benutzer_select","deadline","vorlaufzeit","verfallszeit","insertamum","insertvon","updateamum","updatevon","email","verpflichtend"), "public.tbl_ampel_benutzer_bestaetigt" => array("ampel_benutzer_bestaetigt_id","ampel_id","uid","insertamum","insertvon"), "public.tbl_aufmerksamdurch" => array("aufmerksamdurch_kurzbz","beschreibung","ext_id","bezeichnung", "aktiv"), "public.tbl_aufnahmeschluessel" => array("aufnahmeschluessel"), diff --git a/vilesci/stammdaten/ampel_details.php b/vilesci/stammdaten/ampel_details.php index b42cd660f..a7d02704b 100755 --- a/vilesci/stammdaten/ampel_details.php +++ b/vilesci/stammdaten/ampel_details.php @@ -34,7 +34,7 @@ $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen($user); if(!$rechte->isBerechtigt('basis/ampel')) - die('Sie haben keine Berechtigung fuer diese Seite'); + die($rechte->errormsg); $datum_obj = new datum(); ?> @@ -44,6 +44,18 @@ $datum_obj = new datum(); Ampel - Details + + + @@ -55,7 +67,8 @@ $datum_obj = new datum(); if($action=='save') { $kurzbz = (isset($_POST['kurzbz'])?$_POST['kurzbz']:die('Kurzbz fehlt')); - + $beschreibung = ''; + $buttontext = ''; foreach ($_POST as $key=>$value) { if(mb_strstr($key,'beschreibung')) @@ -63,12 +76,18 @@ $datum_obj = new datum(); $idx = mb_substr($key, mb_strlen('beschreibung')); $beschreibung[$idx] = $value; } + elseif(mb_strstr($key,'buttontext')) + { + $idx = mb_substr($key, mb_strlen('buttontext')); + $buttontext[$idx] = $value; + } } $benutzer_select = (isset($_POST['benutzer_select'])?$_POST['benutzer_select']:die('Benutzer_select fehlt')); $deadline = (isset($_POST['deadline'])?$_POST['deadline']:die('Deadline fehlt')); $vorlaufzeit = (isset($_POST['vorlaufzeit'])?$_POST['vorlaufzeit']:die('Vorlaufzeit fehlt')); $verfallszeit = (isset($_POST['verfallszeit'])?$_POST['verfallszeit']:die('verfallszeit fehlt')); $email = isset($_POST['email']); + $verpflichtend = isset($_POST['verpflichtend']); $new = (isset($_POST['new'])?$_POST['new']:'true'); if($new=='true') { @@ -91,6 +110,8 @@ $datum_obj = new datum(); $ampel->vorlaufzeit = $vorlaufzeit; $ampel->verfallszeit = $verfallszeit; $ampel->email = $email; + $ampel->verpflichtend = $verpflichtend; + $ampel->buttontext = $buttontext; $ampel->updateamum = date('Y-m-d H:i:s'); $ampel->updatevon = $user; @@ -140,46 +161,63 @@ $datum_obj = new datum(); - - + + - + - + - + - + + + + + + + + + + + + + + + + + + '; + $sprache = new sprache(); - $sprache->getAll(); + $sprache->getAll(null, 'index'); foreach($sprache->result as $lang) { echo ' - + + '; } echo ' - - - +
KurzbzKurzbz (64) Deadline
Benutzer Select Vorlaufzeit (in Tagen)
Verfallszeit (in Tagen)
Erinnerung per Email db_parse_bool($ampel->email)?'checked':'').'>
Verpflichtenddb_parse_bool($ampel->verpflichtend)?'checked':'').'>
 
 Beschreibung Buttonbeschriftung (64) 
Beschreibung '.$lang->sprache.''.$lang->sprache.'
'; diff --git a/vilesci/stammdaten/ampel_uebersicht.php b/vilesci/stammdaten/ampel_uebersicht.php index feef9c311..2cdbfdc2d 100755 --- a/vilesci/stammdaten/ampel_uebersicht.php +++ b/vilesci/stammdaten/ampel_uebersicht.php @@ -93,6 +93,7 @@ echo ' + @@ -106,6 +107,7 @@ foreach($ampel->result as $row) echo ''; echo ''; echo ''; + echo ''; echo ''; echo ''; echo '';
Deadline Vorlaufzeit VerfallszeitVerpflichtend Aktion
',$datum_obj->formatDatum($row->deadline,'d.m.Y'),'',$row->vorlaufzeit,'',$row->verfallszeit,'',($row->verpflichtend=='t'?'Ja':'Nein'),'bearbeitenkopierenentfernen