From 09e430f08ab5390d005f746070c2197a7078c0dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Mon, 22 Oct 2012 14:09:23 +0000 Subject: [PATCH] Coodle Externe Teilnehmer --- cis/private/coodle/coodle_worker.php | 17 ++++- cis/private/coodle/termin.php | 105 +++++++++++++++++++++++---- include/coodle.class.php | 9 ++- locale/de-AT/coodle.php | 11 ++- 4 files changed, 118 insertions(+), 24 deletions(-) diff --git a/cis/private/coodle/coodle_worker.php b/cis/private/coodle/coodle_worker.php index cde4af8aa..44c697e3e 100644 --- a/cis/private/coodle/coodle_worker.php +++ b/cis/private/coodle/coodle_worker.php @@ -17,6 +17,11 @@ * * Authors: Andreas Oesterreicher */ +/** + * Worker für Coodle + * Speichert und Löscht die Termine und Ressourcen einer Coodle Umfrage + * Liefert "true" wenn der Vorgang OK war, sonst die Fehlermeldung + */ require_once('../../../config/cis.config.inc.php'); require_once('../../../include/functions.inc.php'); require_once('../../../include/ort.class.php'); @@ -46,6 +51,9 @@ switch($work) $typ=$_POST['typ']; else die('Typ Missing'); + + if(isset($_POST['bezeichnung'])) + $bezeichnung=$_POST['bezeichnung']; $coodle = new coodle(); if(!$coodle->load($coodle_id)) @@ -62,8 +70,11 @@ switch($work) { case 'Ort': $ort = $id; break; case 'Person': $uid = $id; break; - case 'Extern': $email = $id; $name=''; break; // TODO Name setzen - default: die('Ungueltiger Typ'); break; + case 'Extern': + $email = $id; + $name=$bezeichnung; + break; + default: die('Ungueltiger Typ:'.$typ); break; } if($coodle->RessourceExists($coodle_id, $uid, $ort, $email)) @@ -74,7 +85,7 @@ switch($work) $coodle->ort_kurzbz = $ort; $coodle->email = $email; $coodle->name = $name; - $coodle->zugangscode = ''; //TODO + $coodle->zugangscode = uniqid(); $coodle->insertamum = date('Y-m-d H:i:s'); $coodle->insertvon = $user; $coodle->updateamum = date('Y-m-d H:i:s'); diff --git a/cis/private/coodle/termin.php b/cis/private/coodle/termin.php index b5ac79702..9019739b7 100755 --- a/cis/private/coodle/termin.php +++ b/cis/private/coodle/termin.php @@ -24,6 +24,7 @@ require_once('../../../include/coodle.class.php'); require_once('../../../include/datum.class.php'); require_once('../../../include/benutzer.class.php'); require_once('../../../include/ort.class.php'); +require_once('../../../include/mail.class.php'); $uid = get_uid(); $sprache = getSprache(); @@ -43,8 +44,24 @@ if(!$coodle->load($coodle_id)) } $event_titel = $coodle->titel; +if($coodle->coodle_status_kurzbz == 'storniert' || $coodle->coodle_status_kurzbz == 'abgeschlossen') +{ + die('Diese Umfrage ist bereits beendet'); +} + + if(isset($_POST['action']) && $_POST['action']=='start') { + + echo ' + + + + + + +

'.$p->t('coodle/coodle').' - '.$p->t('coodle/termine').'

'; + // Start der Umfrage $coodle_termine = new coodle(); $coodle_termine->getTermine($coodle_id); @@ -54,11 +71,16 @@ if(isset($_POST['action']) && $_POST['action']=='start') $coodle_ressource->getRessourcen($coodle_id); if(count($coodle_ressource->result)>0) { + // Status aendern + $coodle->coodle_status_kurzbz='laufend'; + if(!$coodle->save(false)) + die('Fehler beim Setzen des Status:'. $coodle->errormsg); + foreach($coodle_ressource->result as $row) { if($row->uid!='') { - $benuzter = new benutzer(); + $benutzer = new benutzer(); if(!$benutzer->load($row->uid)) { echo "Fehler beim Laden des Benutzers ".$db->convert_html_chars($row->uid); @@ -70,18 +92,18 @@ if(isset($_POST['action']) && $_POST['action']=='start') else $anrede = "Sehr geehrter Herr "; - $anrede.= $benutzer->titelpre.' '.$benutzer->vorname.' '.$row->nachname.' '.$row->titelpre; + $anrede.= $benutzer->titelpre.' '.$benutzer->vorname.' '.$benutzer->nachname.' '.$benutzer->titelpost; // Interner Teilnehmer - $mail = $row->uid.'@'.DOMAIN; - $link = APP_ROOT.'cis/public/coodle.php?coodle_id='.$coodle_id.'&uid='.$row->uid; + $email = $row->uid.'@'.DOMAIN; + $link = APP_ROOT.'cis/public/coodle.php?coodle_id='.urlencode($coodle_id).'&uid='.urlencode($row->uid); } elseif($row->email!='') { // Externe Teilnehmer - $mail = $row->email; + $email = $row->email; $anrede='Sehr geehrte(r) Herr/Frau '.$row->name; - $link=APP_ROOT.'cis/public/coodle.php?coodle_id='.$coodle_id.'&zugangscode='.$row->zugangscode; + $link=APP_ROOT.'cis/public/coodle.php?coodle_id='.urlencode($coodle_id).'&zugangscode='.urlencode($row->zugangscode); } else { @@ -89,24 +111,26 @@ if(isset($_POST['action']) && $_POST['action']=='start') continue; } - $html.=$anrede.'
+ $html=$anrede.'
Sie wurden zu einer Terminumfrage zum Thema "'.$db->convert_html_chars($coodle->titel).'" eingeladen. Bitte folgen Sie dem Link um Ihre Terminwünsche bekannt zu geben. Link zur Terminumfrage '; - $text.=$anrede."\nSie wurden zu einer Terminumfrage zum Thema \"".$db->convert_html_chars($coodle->titel)."\" eingeladen. + $text=$anrede."\nSie wurden zu einer Terminumfrage zum Thema \"".$db->convert_html_chars($coodle->titel)."\" eingeladen. Bitte folgen Sie dem Link um Ihre Terminwünsche bekannt zu geben.\n $link"; - $mail = new mail($mail, 'no-reply@'.DOMAIN,'Termineinladung - '.$coodle->titel, $text); + $mail = new mail($email, 'no-reply@'.DOMAIN,'Termineinladung - '.$coodle->titel, $text); $mail->setHTMLContent($html); if($mail->send()) { - echo "Mail an $mail wurde versandt
"; + echo $p->t('coodle/mailVersandtAn',array($email))."
"; } } - exit(); + + echo '
'.$p->t('coodle/erfolgreichGestartet').''; + echo '

'.$p->t('coodle/zurueckZurUebersicht').''; } else { @@ -118,6 +142,8 @@ if(isset($_POST['action']) && $_POST['action']=='start') die($p->t('coodle/keineTermineVorhanden')); } + echo ''; + exit(); } echo ' @@ -187,7 +213,7 @@ echo ' #ressourcen { width: 150px; padding: 0 10px; - margin-top: 50px; + margin-top: 30px; border: 1px solid #ccc; background: #eee; text-align: left; @@ -232,7 +258,7 @@ echo ' { width: 150px; padding: 0 10px; - margin-top: 50px; + margin-top: 30px; border: 1px solid #ccc; background: #eee; text-align: left; @@ -339,10 +365,18 @@ echo ' // assign it the date that was reported copiedEventObject.start = date; copiedEventObject.allDay = allDay; - + // Datum konvertieren datum = $.fullCalendar.formatDate(date, "yyyy-MM-dd"); - uhrzeit = $.fullCalendar.formatDate(date, "HH:mm:ss"); + if(allDay) + { + uhrzeit = "08:00:00"; + copiedEventObject.start = datum+"T"+uhrzeit; + copiedEventObject.allDay=false; + } + else + uhrzeit = $.fullCalendar.formatDate(date, "HH:mm:ss"); + //alert("datum:"+datum+" uhrzeit:"+uhrzeit); // Termin Speichern @@ -380,6 +414,13 @@ echo ' datum = $.fullCalendar.formatDate(event.start,"yyyy-MM-dd") uhrzeit = $.fullCalendar.formatDate(event.start,"HH:mm:ss") + if(allDay) + { + uhrzeit = "08:00:00"; + event.start = datum+"T"+uhrzeit; + event.allDay=false; + $("#calendar").fullCalendar("renderEvent", event, true); + } // Verschiebung Speichern $.ajax({ type:"POST", @@ -474,13 +515,14 @@ echo '

'.$p->t('coodle/dragEvent').'

'.$db->convert_html_chars($coodle->titel).'

- '.$p->t('coodle/terminziehenBeschreibung').' + '.$p->t('coodle/terminZiehenBeschreibung').'

'.$p->t('coodle/ressourcen').'

+

'.$p->t('coodle/ressourcenBeschreibung').' +

'.$p->t('coodle/externePersonhinzu').' +

+ +

+

'.$p->t('coodle/umfrageStarten').'

diff --git a/include/coodle.class.php b/include/coodle.class.php index 975649870..cbed8306c 100755 --- a/include/coodle.class.php +++ b/include/coodle.class.php @@ -394,11 +394,12 @@ class coodle extends basis_db return false; } - $qry = "SELECT campus.tbl_coodle.* + $qry = "SELECT distinct campus.tbl_coodle.* FROM campus.tbl_coodle LEFT JOIN campus.tbl_coodle_ressource USING(coodle_id) - WHERE uid =".$this->db_add_param($uid, FHC_STRING, false)." - OR ersteller_uid =".$this->db_add_param($uid, FHC_STRING, false)." + WHERE + (uid =".$this->db_add_param($uid, FHC_STRING, false)." + OR ersteller_uid =".$this->db_add_param($uid, FHC_STRING, false).") AND endedatum >= CURRENT_DATE"; if(!$this->db_query($qry)) @@ -689,7 +690,7 @@ class coodle extends basis_db else { $qry='UPDATE campus.tbl_coodle_termin SET'. - ' datum='.$this->db_add_param($this->datum, FHC_STRING, false). + ' datum='.$this->db_add_param($this->datum, FHC_STRING, false).','. ' uhrzeit='.$this->db_add_param($this->uhrzeit, FHC_STRING, false). ' WHERE coodle_termin_id='.$this->db_add_param($this->coodle_termin_id, FHC_INTEGER, false).';'; diff --git a/locale/de-AT/coodle.php b/locale/de-AT/coodle.php index 888bd3769..a677a1d2c 100755 --- a/locale/de-AT/coodle.php +++ b/locale/de-AT/coodle.php @@ -19,7 +19,7 @@ $this->phrasen['coodle/aktion']='Aktion'; $this->phrasen['coodle/neueUmfrage']='Neue Umfrage anlegen'; $this->phrasen['coodle/termine']='Termine verwalten'; $this->phrasen['coodle/dragEvent']='Termin'; -$this->phrasen['coodle/terminziehenBeschreibung']='Ziehen Sie den Termin an die gewünschte Position um Terminvorschläge zu setzen'; +$this->phrasen['coodle/terminZiehenBeschreibung']='Ziehen Sie den Termin an die gewünschte Position um Terminvorschläge zu setzen'; $this->phrasen['coodle/ressourcenBeschreibung']='Hier können Sie Räume und Personen zur Umfrage hinzufügen.

Tippen sie dazu den Namen in das Textfeld und wählen Sie den entsprechenden Eintrag aus.'; $this->phrasen['coodle/ressourcen']='Ressourcen'; $this->phrasen['coodle/weiterZurTerminauswahl']='Weiter zur Terminauswahl'; @@ -28,4 +28,13 @@ $this->phrasen['coodle/umfrageStarten']='Umfrage starten'; $this->phrasen['coodle/startBeschreibung']='Klicken Sie hier um die Teilnehmer zu Informieren und die Umfrage zu starten'; $this->phrasen['coodle/keineTermineVorhanden']='Es sind noch keine Termine für diese Umfrage vorhanden'; $this->phrasen['coodle/keineRessourcenVorhanden']='Es sind noch keine Teilnehmer zugeordnet'; +$this->phrasen['coodle/mailVersandtAn']='Mail wurde erfolgreich an %s versandt'; +$this->phrasen['coodle/erfolgreichGestartet']='Die Umfrage wurde erfolgreich gestartet'; +$this->phrasen['coodle/zurueckZurUebersicht']='Zurück zur Übersicht'; +$this->phrasen['coodle/externePersonhinzu']='Externe Person hinzufügen'; +$this->phrasen['coodle/Ressourcenhinzu']='Ressourcen hinzufügen'; +$this->phrasen['coodle/name']='Name'; +$this->phrasen['coodle/email']='E-Mail'; +$this->phrasen['coodle/externeBeschreibung']='Tragen Sie den Namen und die E-Mail Adresse der Person ein, die Sie zur Umfrage hinzufügen möchten.'; +$this->phrasen['coodle/externenHinzufuegen']='Hinzufügen'; ?>