- Umfragestart ohne Terminwahl verhindern
- Coodle FreeBusy einbinden
- Coodle Zusagen als iCal abonnieren
This commit is contained in:
Manfred Kindl
2019-10-21 18:19:57 +02:00
parent 58ec6f8f31
commit 49be024ca9
4 changed files with 194 additions and 10 deletions
+18
View File
@@ -314,6 +314,24 @@ switch($work)
echo $coodletermin->errormsg;
break;
case 'countTermine':
if(isset($_POST['coodle_id']))
$coodle_id = $_POST['coodle_id'];
else
die('CoodleID fehlt');
$coodle = new coodle();
if ($coodle->getTermine($coodle_id))
{
echo count($coodle->result);
}
else
{
echo $coodle->errormsg;
}
break;
default:
die('Invalid Work Parameter');
}
+40 -9
View File
@@ -76,11 +76,12 @@ if(isset($_POST['action']) && $_POST['action']=='start')
// Start der Umfrage
$coodle_termine = new coodle();
$coodle_termine->getTermine($coodle_id);
if(count($coodle_termine->result)>0)
// Die Terminoption "keine Auswahl wird immer benötigt. Deshalb > 1
if(count($coodle_termine->result) > 1)
{
$coodle_ressource = new coodle();
$coodle_ressource->getRessourcen($coodle_id);
if(count($coodle_ressource->result)>0)
if(count($coodle_ressource->result) > 0)
{
// Status aendern
$coodle->coodle_status_kurzbz='laufend';
@@ -135,16 +136,18 @@ if(isset($_POST['action']) && $_POST['action']=='start')
Bitte folgen Sie dem Link, um Ihre Terminwünsche bekannt zu geben:
<a href="'.$link.'">Link zur Terminumfrage</a>
<br><br>
'.($coodle->beschreibung != '' ? '
Beschreibung:<br><br>
'.$coodle->beschreibung.'<br><br>
'.$coodle->beschreibung.'<br><br>' : '').'
'.nl2br($sign);
$text=$anrede."!\n\nSie wurden zu einer Terminumfrage zum Thema \"".$db->convert_html_chars($coodle->titel)."\" eingeladen.\n
Bitte folgen Sie dem Link, um Ihre Terminwünsche bekannt zu geben:\n
$link\n\n
".($coodle->beschreibung != "" ? "
Beschreibung:\n\n
".strip_tags($coodle->beschreibung)."
\n\n
\n\n" : "")."
$sign";
$mail = new mail($email, $von,'Terminumfrage - '.$coodle->titel, $text);
@@ -317,7 +320,6 @@ echo '<html>
</style>
<script type="text/javascript">
$(document).ready(function()
{
// Coodle Termin initialisieren
@@ -342,7 +344,6 @@ echo '<html>
});
});
// Kalender Initialisieren
$("#calendar").fullCalendar(
{
@@ -568,6 +569,35 @@ echo '<html>
}
}
});
$("#umfrageStartenSubmitButton").click(function(e)
{
e.preventDefault(); // avoid to execute the actual submit of the form.
var form = $(this).parents("form:first");
formdata = form.serialize();
formdata += (formdata!=="")? "&work=countTermine&coodle_id='.$coodle_id.'":"";
$.ajax({
type: "POST",
url:"coodle_worker.php",
data: formdata,
success: function(data)
{
if (parseInt(data) > 1)
{
form.submit();
}
else
{
alert("Bitte ziehen Sie mindestens einen Termin in den Kalender");
}
},
error: function(data)
{
alert("Error: "+data);
}
});
});
});
@@ -847,7 +877,8 @@ echo '
}
</script>
<p>
'.$p->t('coodle/ressourcenBeschreibung').'
'.$p->t('coodle/ressourcenBeschreibung');
echo '
<br><br><a href="#" onclick="showExterne(); return false;">'.$p->t('coodle/externePersonhinzu').'</a>
</div> <!-- RessourcenInput -->
<div id="externePersonen" style="display: none">
@@ -864,10 +895,10 @@ echo '
</div>
<div id="fertig">
<h4>'.$p->t('coodle/umfrageStarten').'</h4>
<form action="'.$_SERVER['PHP_SELF'].'" method="POST">
<form id="umfrageStartenForm" action="'.$_SERVER['PHP_SELF'].'" method="POST">
<input type="hidden" name="action" value="start" />
<input type="hidden" name="coodle_id" value="'.$db->convert_html_chars($coodle_id).'" />
<input type="submit" value="'.$p->t('coodle/umfrageStarten').'" />
<input id="umfrageStartenSubmitButton" type="submit" value="'.$p->t('coodle/umfrageStarten').'"/>
</form>
<p>
'.$p->t('coodle/startBeschreibung').'
+135
View File
@@ -0,0 +1,135 @@
<?php
/* Copyright (C) 2012 FH Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>
*/
/**
* Dieses Script liefert die iCal Informationen für die vorreservierten Coodle Termine
*
* Aufruf: http://www.example.com/cis/public/ical_coodle.php/[uid]
*/
require_once('../../config/cis.config.inc.php');
require_once('../../include/benutzer.class.php');
require_once('../../include/functions.inc.php');
require_once('../../include/coodle.class.php');
require_once('../../include/ical.class.php');
$uid = mb_substr($_SERVER['PATH_INFO'],1);
$bn = new benutzer();
if(!$bn->load($uid))
die('User invalid');
header("Content-Type: text/calendar; charset=UTF-8");
echo "BEGIN:VCALENDAR\n";
echo "VERSION:2.0\n";
echo "PRODID:-//FH TECHNIKUM WIEN//EN\n";
//echo "METHOD:PUBLISH\n";
//echo 'ORGANIZER;CN=',$bn->vorname,' ',$bn->nachname,':mailto:',$uid,'@',DOMAIN,"\n";
//echo 'DTSTAMP;TZID=Europe/Vienna:',date('Ymd', mktime(date('H'),date('i'),date('s'),date('m'),date('d')-5,date('Y'))),'T',date('Hms'),"\n";
echo 'DTSTART;TZID=Europe/Vienna:',date('Ymd', mktime(0,0,0,date('m'),date('d')-5,date('Y'))),"T000000\n";
echo 'DTEND;TZID=Europe/Vienna:',date('Ymd', mktime(0,0,0,date('m'),date('d')+30,date('Y'))),"T000000\n";
echo "BEGIN:VTIMEZONE
TZID:Europe/Vienna
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
DTSTART:19810329T020000
TZNAME:GMT+02:00
TZOFFSETTO:+0200
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
DTSTART:19961027T030000
TZNAME:GMT+01:00
TZOFFSETTO:+0100
END:STANDARD
END:VTIMEZONE\n";
//echo 'URL:',APP_ROOT,'cis/public/ical_coodle.php/',$uid,"\n";
echo "BEGIN:VEVENT";
// Alle Umfragen holen an denen der User beteiligt ist
$umfragen = new coodle();
$umfragen->getCoodleFromUser($uid);
$i = 0;
foreach($umfragen->result as $umfrage)
{
if($umfrage->coodle_status_kurzbz=='laufend')
{
// Bei laufenden Umfragen werden alle angekreuzten Vorschlaege zur FreeBusy hinzugefuegt
$ressource = new coodle();
if($ressource_id = $ressource->RessourceExists($umfrage->coodle_id, $uid))
{
// Terminvorschlaege laden die angekreuzt wurden
$termine = new coodle();
$termine->getRessourceTermin($umfrage->coodle_id, $ressource_id);
foreach($termine->result as $termin)
{
//Start und Ende berechnen
$date = new DateTime($termin->datum.' '.$termin->uhrzeit);
$dtstart = $date->format('Ymd\THis');
$interval =new DateInterval('PT'.$umfrage->dauer.'M');
$date->add($interval);
$uhrzeit_ende = $date->format('H:i:s');
$dtende = $date->format('Ymd\THis');
if ($i > 0)
{
echo "\nBEGIN:VEVENT";
}
echo "\nUID:Coodle_Terminoption".$dtstart."_".$dtende."";
echo "\nSUMMARY:Coodle Terminoption";
echo "\nDTSTART;TZID=Europe/Vienna:$dtstart";
echo "\nDTEND;TZID=Europe/Vienna:$dtende";
echo "\nTRANSP:OPAQUE";
echo "\nEND:VEVENT";
$i++;
}
}
}
// Bei abgeschlossene Umfragen wird ein iCal File mitgeschickt,
// deshalb müssen diese Termine nicht berücksichtigt werden
/*elseif($umfrage->coodle_status_kurzbz=='abgeschlossen')
{
// Bei abgeschlossenen Umfragen wird nur mehr der ausgewaehlte Termin zur FreeBusy hinzugefuegt
$termin = new coodle();
$coodle_termin_id=$termin->getTerminAuswahl($umfrage->coodle_id);
if($termin->loadTermin($coodle_termin_id))
{
//Start und Ende berechnen
$date = new DateTime($termin->datum.' '.$termin->uhrzeit);
$dtstart = $date->format('Ymd\THis');
$interval =new DateInterval('PT'.$umfrage->dauer.'M');
$date->add($interval);
$uhrzeit_ende = $date->format('H:i:s');
$dtende = $date->format('Ymd\THis');
echo "\nBEGIN:VEVENT";
echo "\nSUMMARY:Coodle Terminzusage";
echo "\nDTSTART;TZID=Europe/Vienna: $dtstart";
echo "\nDTEND;TZID=Europe/Vienna: $dtende";
echo "\nTRANSP:OPAQUE";
echo "\nEND:VEVENT";
}
}*/
// stornierte Umfragen werden nicht beruecksichtigt
}
echo "\nEND:VCALENDAR";
?>
+1 -1
View File
@@ -1117,7 +1117,7 @@ class coodle extends basis_db
return false;
}
$qry ="UPDATE campus.tbl_coodle_Termin set auswahl='false'
$qry ="UPDATE campus.tbl_coodle_termin set auswahl='false'
WHERE coodle_id=".$this->db_add_param($coodle_id, FHC_INTEGER, false).';';
if($result=$this->db_query($qry))