Coodle Anlegen von Terminvorschlaegen

This commit is contained in:
Andreas Österreicher
2012-10-17 06:16:24 +00:00
parent 238c361403
commit 1eab4042d7
3 changed files with 209 additions and 27 deletions
+37
View File
@@ -131,6 +131,43 @@ switch($work)
echo 'Ressource nicht gefunden';
}
break;
case 'addTermin':
if(isset($_POST['datum']))
$datum = $_POST['datum'];
else
die('Datum fehlt');
if(isset($_POST['uhrzeit']))
$uhrzeit = $_POST['uhrzeit'];
else
die('Uhrzeit fehlt');
if(isset($_POST['coodle_id']))
$coodle_id = $_POST['coodle_id'];
else
die('CoodleID fehlt');
$coodle = new coodle();
if(!$coodle->load($coodle_id))
die('Fehler: '.$coodle->errormsg);
if($coodle->ersteller_uid!=$user)
die('Diese Aktion ist nur durch den Ersteller der Umfrage möglich');
$coodletermin = new coodle();
$coodletermin->datum = $datum;
$coodletermin->uhrzeit = $uhrzeit;
$coodletermin->coodle_id = $coodle_id;
if($coodletermin->saveTermin(true))
echo $coodletermin->coodle_termin_id;
else
echo $this->errormsg;
break;
default:
die('Invalid Work Parameter');
}
+67 -27
View File
@@ -30,6 +30,19 @@ $sprache = getSprache();
$p = new phrasen($sprache);
$datum_obj = new datum();
if(!isset($_GET['coodle_id']))
die($p->t('global/fehlerBeiDerParameteruebergabe'));
$coodle_id = $_GET['coodle_id'];
$db = new basis_db();
$coodle = new coodle();
if(!$coodle->load($coodle_id))
{
die($p->t($coodle->errormsg));
}
$event_titel = $coodle->titel;
echo '<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
@@ -209,9 +222,9 @@ echo '<html>
droppable: true, // this allows things to be dropped onto the calendar !!!
drop: function(date, allDay)
{
// this function is called when something is dropped
// Event wird auf Kalender gezogen
// retrieve the dropped elements stored Event Object
// gedropptes Event holen
var originalEventObject = $(this).data("eventObject");
// we need to copy it, so that multiple events dont have a reference to the same object
@@ -221,16 +234,35 @@ echo '<html>
copiedEventObject.start = date;
copiedEventObject.allDay = allDay;
// render the event on the calendar
// the last `true` argument determines if the event "sticks" (http://arshaw.com/fullcalendar/docs/event_rendering/renderEvent/)
$("#calendar").fullCalendar("renderEvent", copiedEventObject, true);
// is the "remove after drop" checkbox checked?
//if ($("#drop-remove").is(":checked")) {
// if so, remove the element from the "Draggable Events" list
//$(this).remove();
//}
// Datum konvertieren
datum = $.fullCalendar.formatDate(date, "yyyy-MM-dd");
uhrzeit = $.fullCalendar.formatDate(date, "hh:mm:ss");
//alert("datum:"+datum+" uhrzeit:"+uhrzeit);
// Termin Speichern
$.ajax({
type:"POST",
url:"coodle_worker.php",
data:{
"work": "addTermin",
"datum": datum,
"uhrzeit": uhrzeit,
"coodle_id": "'.$coodle_id.'"
},
success: function(data)
{
if(isNaN(data))
alert("ERROR:"+data)
else
{
copiedEventObject.id=data;
// render the event on the calendar
// the last `true` argument determines if the event "sticks" (http://arshaw.com/fullcalendar/docs/event_rendering/renderEvent/)
$("#calendar").fullCalendar("renderEvent", copiedEventObject, true);
}
},
error: function() { alert("error"); }
});
},
eventDrop: function(event, dayDelta, minuteDelta, allDay, revertFunc, jsEvent, ui, view)
{
@@ -277,18 +309,6 @@ echo '<html>
<h1>'.$p->t('coodle/coodle').' - '.$p->t('coodle/termine').'</h1>';
if(!isset($_GET['coodle_id']))
die($p->t('global/fehlerBeiDerParameteruebergabe'));
$coodle_id = $_GET['coodle_id'];
$db = new basis_db();
$coodle = new coodle();
if(!$coodle->load($coodle_id))
{
die($p->t($coodle->errormsg));
}
//echo '<h2>'.$coodle->titel.'</h2>';
//echo $coodle->beschreibung;
@@ -455,13 +475,15 @@ echo '
$(item).parent().remove();
}';
echo '
$(document).ready(function()
{';
// Bereits zugeteilte Ressourcen laden
if(!$coodle->getRessourcen($coodle_id))
die('Fehler:'.$coodle->errormsg);
echo '
$(document).ready(function()
{';
foreach($coodle->result as $row)
{
echo "\n\t";
@@ -493,6 +515,24 @@ foreach($coodle->result as $row)
}
echo 'addRessourceToContent("'.$db->convert_html_chars($id).'", "'.$db->convert_html_chars($typ).'", "'.$db->convert_html_chars($bezeichnung).'");';
}
// Bereits eingetragene Terminvorschlaege laden
$coodletermin = new coodle();
if(!$coodletermin->getTermine($coodle_id))
die('Fehler:'.$coodletermin->errormsg);
foreach($coodletermin->result as $row)
{
echo '
var eventObject =
{
id: "'.$db->convert_html_chars($row->coodle_termin_id).'",
title: "'.$db->convert_html_chars($event_titel).'",
start: "'.$db->convert_html_chars($row->datum).'T'.$db->convert_html_chars($row->uhrzeit).'",
allDay: false
};
$("#calendar").fullCalendar("renderEvent", eventObject, true);
';
}
echo '
});';
+105
View File
@@ -551,5 +551,110 @@ class coodle extends basis_db
return false;
}
}
/**
* Prueft die Termindaten vor dem Speichern
*/
public function validateTermin()
{
return true;
}
/**
* Speichert einen Termin
* @param new
* @return boolean
*/
public function saveTermin($new)
{
if(is_null($new))
$new = $this->new;
//Variablen pruefen
if(!$this->validateTermin())
return false;
if($new)
{
//Neuen Datensatz einfuegen
$qry='BEGIN;INSERT INTO campus.tbl_coodle_termin(coodle_id, datum, uhrzeit, auswahl) VALUES('.
$this->db_add_param($this->coodle_id).', '.
$this->db_add_param($this->datum).', '.
$this->db_add_param($this->uhrzeit).', false);';
}
else
{
$qry='UPDATE campus.tbl_coodle_termin SET'.
' datum='.$this->db_add_param($this->datum).
' uhrzeit='.$this->db_add_param($this->uhrzeit).
' WHERE coodle_termin_id='.$this->db_add_param($this->coodle_termin_id);
}
if($this->db_query($qry))
{
if($new)
{
//naechste ID aus der Sequence holen
$qry="SELECT currval('campus.seq_coodle_termin_coodle_termin_id') as id;";
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
$this->coodle_termin_id = $row->id;
$this->db_query('COMMIT');
}
else
{
$this->db_query('ROLLBACK');
$this->errormsg = "Fehler beim Auslesen der Sequence";
return false;
}
}
else
{
$this->db_query('ROLLBACK');
$this->errormsg = 'Fehler beim Auslesen der Sequence';
return false;
}
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern des Datensatzes';
return false;
}
}
/**
* Laedt die Terminvorschlaege zu einer Umfrage
* @param $coodle_id
* @return boolean
*/
public function getTermine($coodle_id)
{
$qry = "SELECT * FROM campus.tbl_coodle_termin WHERE coodle_id=".$this->db_add_param($coodle_id);
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
$obj = new coodle();
$obj->coodle_termin_id = $row->coodle_termin_id;
$obj->coodle_id = $row->coodle_id;
$obj->datum = $row->datum;
$obj->uhrzeit = $row->uhrzeit;
$obj->auswahl = $this->db_parse_bool($row->auswahl);
$this->result[] = $obj;
}
return true;
}
else
{
$this->errormsg ='Fehler beim Laden der Daten';
return false;
}
}
}
?>