summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjörn Geiger2011-11-15 15:05:03 +0100
committerBjörn Geiger2011-11-15 15:05:03 +0100
commit145695a16c62abbd99df4aed80a60e54d09d369b (patch)
tree4e45dbca8f0e7d2fa5bd6932da1fe9372a008b5f
parentMerge branch 'master' of git.openslx.org:lsfks/projekte/poolctrl (diff)
downloadpoolctrl-145695a16c62abbd99df4aed80a60e54d09d369b.tar.gz
poolctrl-145695a16c62abbd99df4aed80a60e54d09d369b.tar.xz
poolctrl-145695a16c62abbd99df4aed80a60e54d09d369b.zip
Code Cleaning und verschiedene kleine Korrekturen
-rwxr-xr-xapplication/controllers/AuthController.php12
-rwxr-xr-xapplication/controllers/EventController.php345
-rwxr-xr-xapplication/controllers/PersonController.php8
-rwxr-xr-xapplication/views/scripts/event/index.phtml871
-rw-r--r--library/Poolctrl/Pbs2Api.php113
-rwxr-xr-xpublic/media/js/calendar.js863
6 files changed, 977 insertions, 1235 deletions
diff --git a/application/controllers/AuthController.php b/application/controllers/AuthController.php
index b3f6bbf..bac4855 100755
--- a/application/controllers/AuthController.php
+++ b/application/controllers/AuthController.php
@@ -46,20 +46,22 @@ class AuthController extends Zend_Controller_Action
$loginForm = new Application_Form_Login($_POST);
if ($loginForm->isValid($_POST)) {
$membershipSession = new Zend_Session_Namespace('memberships');
- if($this->pbs2Api->login($loginForm->getValue('email'), $loginForm->getValue('password'), $membershipSession)) {
+ $error = "";
+ $personID = "";
+ $apikey = "";
+ if($this->pbs2Api->login($loginForm->getValue('email'), $loginForm->getValue('password'), $membershipSession, $error, $personID, $apikey)) {
+ $membershipNamespace = $membershipSession->getIterator();
$personSession = new Zend_Session_Namespace('persons');
- $this->pbs2Api->getPerson($personSession);
+ $this->pbs2Api->getPerson($personSession, $apikey);
$userSession = new Zend_Session_Namespace('userIDs');
- $userSession->personID = sprintf("%s", $login->personid);
+ $userSession->personID = sprintf("%s", $personID);
$authSession = new Zend_Session_Namespace('auth');
$authSession->storage = $loginForm->getValue('email');
$this->_helper->redirector('selectmembership', 'person');
- return;
} else {
- $error = sprintf("%s", $login->error);
if($error == "wrong email or password") {
$poolctrlNotifier = new Poolctrl_Notifier();
$this->view->notification = $poolctrlNotifier->notify('Wrong Email or Password', 'error');
diff --git a/application/controllers/EventController.php b/application/controllers/EventController.php
index 6ce76ba..29ffe71 100755
--- a/application/controllers/EventController.php
+++ b/application/controllers/EventController.php
@@ -10,6 +10,7 @@
* General information about OpenSLX can be found at http://openslx.org/
*/
+
class EventController extends Zend_Controller_Action
{
protected $eventMapper;
@@ -626,39 +627,14 @@ class EventController extends Zend_Controller_Action
$this->view->past = true;
}
-
- $enewstart = date('Y-m-d H:i:s', strtotime($e['start']) + $diff);
- $summertimeStart = intval(date('I', strtotime($e['start'])));
- if($summertimeStart) {
- if(!date('I', strtotime($enewstart))) {
- $enewstart = date('Y-m-d H:i:s', strtotime($enewstart) + 60 * 60);
- $summertimeStart = 0;
- }
- } else {
- if(date('I', strtotime($enewstart))) {
- $enewstart = date('Y-m-d H:i:s', strtotime($enewstart) - 60 * 60);
- $summertimeStart = 1;
- }
- }
+ $enewstart = date('Y-m-d H:i:s', $this->checkTimeChange(strtotime($e['start']), strtotime($e['start']) + $diff));
if(!isset($e['end'])) {
$e['end'] = date('Y-m-d H:i:s', strtotime($e['start']) + 300);
$e['endSet'] = true;
} else {
$e['endSet'] = false;
}
- $enewend = date('Y-m-d H:i:s', strtotime($e['end']) + $diff);
- $summertimeEnd = intval(date('I', strtotime($e['start'])));
- if($summertimeEnd) {
- if(!date('I', strtotime($enewend))) {
- $enewend = date('Y-m-d H:i:s', strtotime($enewend) + 60 * 60);
- $summertimeEnd = 0;
- }
- } else {
- if(date('I', strtotime($enewend))) {
- $enewend = date('Y-m-d H:i:s', strtotime($enewend) - 60 * 60);
- $summertimeEnd = 1;
- }
- }
+ $enewend = date('Y-m-d H:i:s', $this->checkTimeChange(strtotime($e['end']), strtotime($e['end']) + $diff));
$cfv = true;
$event = new Application_Model_Event($e);
$event->setID($e['eventID']);
@@ -813,20 +789,7 @@ class EventController extends Zend_Controller_Action
$event = new Application_Model_Event($e);
$event->setID($e['eventID']);
$enewstart = date('Y-m-d H:i:s', strtotime($e['start']));
- $enewend = date('Y-m-d H:i:s', strtotime($e['end']) + $diffDelta);
- $summertimeEnd = intval(date('I', strtotime($e['start'])));
- if($summertimeEnd) {
- if(!date('I', strtotime($enewend))) {
- $enewend = date('Y-m-d H:i:s', strtotime($enewend) + 60 * 60);
- $summertimeEnd = 0;
- }
- } else {
- if(date('I', strtotime($enewend))) {
- $enewend = date('Y-m-d H:i:s', strotitime($enewend) - 60 * 60);
- $summertimeEnd = 1;
- }
- }
-
+ $enewend = date('Y-m-d H:i:s', $this->checkTimeChange(strtotime($e['end']), strtotime($e['end']) + $diffDelta));
$cfv = true;
// overlap events
@@ -950,44 +913,20 @@ class EventController extends Zend_Controller_Action
$count = 1;
foreach($events as $event) {
if($event->getRunning() == 0 && $event->getRepeat() == 1) {
- $summertimeStart = intval(date('I', strtotime($event->getStart())));
//1min = 60sec, 1d = 86400sec
$oldStartTime = date('H:i', strtotime($event->getStart()));
$oldStartDate = date('d.m.Y', strtotime($event->getStart()));
- $evstartTime = intval(strtotime($event->getStart())) + intval($evmindelta*60) + intval($evdaydelta*86400);
+ $evstartTime = $this->checkTimeChange(strtotime($event->getStart()), strtotime($event->getStart()) + intval($evmindelta*60) + intval($evdaydelta*86400));
$newStartTime = date('H:i', $evstartTime);
$newStartDate = date('d.m.Y', $evstartTime);
- if($summertimeStart) {
- if(!date('I', $evstartTime)) {
- $evstartTime = $evstartTime + 60 * 60;
- $summertimeStart = 0;
- }
- } else {
- if(date('I', $evstartTime)) {
- $evstartTime = $evstartTime - 60 * 60;
- $summertimeStart = 1;
- }
- }
$eventStart = date('Y-m-d H:i:s', $evstartTime);
$event->setStart($eventStart);
if($event->getEnd()) {
- $summertimeEnd = intval(date('I', strtotime($event->getEnd())));
$oldEndTime = date('H:i', strtotime($event->getEnd()));
$oldEndDate = date('d.m.Y', strtotime($event->getEnd()));
- $evendTime = intval(strtotime($event->getEnd())) + intval($evmindelta*60) + intval($evdaydelta*86400);
+ $evendTime = $this->checkTimeChange(strtotime($event->getEnd()), strtotime($event->getEnd()) + intval($evmindelta*60) + intval($evdaydelta*86400));
$newEndTime = date('H:i', $evendTime);
$newEndDate = date('d.m.Y', $evendTime);
- if($summertimeEnd) {
- if(!date('I', $evendTime)) {
- $evendTime = $evendTime + 60 * 60;
- $summertimeEnd = 0;
- }
- } else {
- if(date('I', $evendTime)) {
- $evendTime = $evendTime - 60 * 60;
- $summertimeEnd = 1;
- }
- }
$eventEnd = date('Y-m-d H:i:s', $evendTime);
$event->setEnd($eventEnd);
}
@@ -1098,44 +1037,20 @@ class EventController extends Zend_Controller_Action
$count = 1;
foreach($events as $event) {
if($event->getRunning() == 0 && $event->getRepeat() == 1) {
- $summertimeStart = intval(date('I', strtotime($event->getStart())));
//1min = 60sec, 1d = 86400sec
$oldStartTime = date('H:i', strtotime($event->getStart()));
$oldStartDate = date('d.m.Y', strtotime($event->getStart()));
- $evstartTime = intval(strtotime($event->getStart())) + intval($evmindelta*60) + intval($evdaydelta*86400);
+ $evstartTime = $this->checkTimeChange(strtotime($event->getStart()), strtotime($event->getStart()) + intval($evmindelta*60) + intval($evdaydelta*86400));
$newStartTime = date('H:i', $evstartTime);
$newStartDate = date('d.m.Y', $evstartTime);
- if($summertimeStart) {
- if(!date('I', $evstartTime)) {
- $evstartTime = $evstartTime + 60 * 60;
- $summertimeStart = 0;
- }
- } else {
- if(date('I', $evstartTime)) {
- $evstartTime = $evstartTime - 60 * 60;
- $summertimeStart = 1;
- }
- }
$eventStart = date('Y-m-d H:i:s', $evstartTime);
$event->setStart($eventStart);
if($event->getEnd()) {
- $summertimeEnd = intval(date('I', strtotime($event->getEnd())));
$oldEndTime = date('H:i', strtotime($event->getEnd()));
$oldEndDate = date('d.m.Y', strtotime($event->getEnd()));
- $evendTime = intval(strtotime($event->getEnd())) + intval($evmindelta*60) + intval($evdaydelta*86400);
+ $evendTime = $this->checkTimeChange(strtotime($event->getEnd()), strtotime($event->getEnd()) + intval($evmindelta*60) + intval($evdaydelta*86400));
$newEndTime = date('H:i', $evendTime);
$newEndDate = date('d.m.Y', $evendTime);
- if($summertimeEnd) {
- if(!date('I', $evendTime)) {
- $evendTime = $evendTime + 60 * 60;
- $summertimeEnd = 0;
- }
- } else {
- if(date('I', $evendTime)) {
- $evendTime = $evendTime - 60 * 60;
- $summertimeEnd = 1;
- }
- }
$eventEnd = date('Y-m-d H:i:s', $evendTime);
$event->setEnd($eventEnd);
}
@@ -1260,19 +1175,7 @@ class EventController extends Zend_Controller_Action
$count = 1;
foreach($events as $event) {
if($event->getRunning() == 0 && $event->getRepeat() == 1) {
- $summertimeEnd = intval(date('I', strtotime($event->getEnd())));
- $evendTime = intval(strtotime($event->getEnd())) + intval($evmindelta*60);
- if($summertimeEnd) {
- if(!date('I', $evendTime)) {
- $evendTime = $evendTime + 60 * 60;
- $summertimeEnd = 0;
- }
- } else {
- if(date('I', $evendTime)) {
- $evendTime = $evendTime - 60 * 60;
- $summertimeEnd = 1;
- }
- }
+ $evendTime = $this->checkTimeChange(strtotime($event->getEnd()), strtotime($event->getEnd()) + intval($evmindelta*60));
$eventEnd = date('Y-m-d H:i:s', $evendTime);
$event->setPbs_poolID($poolID);
if($count == 1) {
@@ -1370,19 +1273,7 @@ class EventController extends Zend_Controller_Action
$count = 1;
foreach($events as $event) {
if($event->getRunning() == 0) {
- $summertimeEnd = intval(date('I', strtotime($event->getEnd())));
- $evendTime = intval(strtotime($event->getEnd())) + intval($evmindelta*60);
- if($summertimeEnd) {
- if(!date('I', $evendTime)) {
- $evendTime = $evendTime + 60 * 60;
- $summertimeEnd = 0;
- }
- } else {
- if(date('I', $evendTime)) {
- $evendTime = $evendTime - 60 * 60;
- $summertimeEnd = 1;
- }
- }
+ $evendTime = $this->checkTimeChange(strtotime($event->getEnd()), strtotime($event->getEnd()) + intval($evmindelta*60));
$eventEnd = date('Y-m-d H:i:s', $evendTime);
$event->setPbs_poolID($poolID);
if($count == 1) {
@@ -1995,10 +1886,6 @@ class EventController extends Zend_Controller_Action
$repeatendMapper = new Application_Model_RepeatendMapper();
$repeatend = new Application_Model_Repeatend();
$repeatendMapper->find($event->getRepeatend(), $repeatend);
- $summertimeStart = intval(date('I', strtotime($event->getStart())));
- if($event->getEnd()) {
- $summertimeEnd = intval(date('I', strtotime($event->getEnd())));
- }
$newEvent = clone $event;
$startDate = date('d.m.Y', strtotime($event->getStart()));
if($event->getEnd()) {
@@ -2014,40 +1901,18 @@ class EventController extends Zend_Controller_Action
$filterentriesID3 = $this->pbs2Api->addFilterentry($event->getPbs_filterID(), 11, strtotime($startDate), strtotime($endDate));
}
$onedaytime = 24 * 60 * 60;
- $newStartTime = strtotime($newEvent->getStart()) + $onedaytime;
+ $newStartTime = $this->checkTimeChange(strtotime($newEvent->getStart()), strtotime($newEvent->getStart()) + $onedaytime);
if($newEvent->getEnd()) {
- $newEndTime = strtotime($newEvent->getEnd()) + $onedaytime;
+ $newEndTime = $this->checkTimeChange(strtotime($newEvent->getEnd()), strtotime($newEvent->getEnd()) + $onedaytime);
}
if($repeatend->getTitle() == 'After') {
$repeatings = intval($newEvent->getRepeatings());
for($i = 0; $i < $repeatings; $i++) {
- if($summertimeStart) {
- if(!date('I', $newStartTime)) {
- $newStartTime = $newStartTime + 60 * 60;
- $summertimeStart = 0;
- }
- } else {
- if(date('I', $newStartTime)) {
- $newStartTime = $newStartTime - 60 * 60;
- $summertimeStart = 1;
- }
- }
$newEvent->setStart(date('Y-m-d H:i', $newStartTime));
- $newStartTime = $newStartTime + $onedaytime;
+ $newStartTime = $this->checkTimeChange($newStartTime, $newStartTime + $onedaytime);
if(isset($newEndTime)) {
- if($summertimeEnd) {
- if(!date('I', $newEndTime)) {
- $newEndTime = $newEndTime + 60 * 60;
- $summertimeEnd = 0;
- }
- } else {
- if(date('I', $newEndTime)) {
- $newEndTime = $newEndTime - 60 * 60;
- $summertimeEnd = 1;
- }
- }
$newEvent->setEnd(date('Y-m-d H:i', $newEndTime));
- $newEndTime = $newEndTime + $onedaytime;
+ $newEndTime = $this->checkTimeChange($newEndTime, $newEndTime + $onedaytime);
}
$events[$i + 1] = $newEvent;
if($newEvent->getCategory() != $shutdownCategory->getID()) {
@@ -2065,33 +1930,11 @@ class EventController extends Zend_Controller_Action
$repeatendtime = strtotime($newEvent->getRepeatdate());
$i = 1;
while($newStartTime <= $repeatendtime) {
- if($summertimeStart) {
- if(!date('I', $newStartTime)) {
- $newStartTime = $newStartTime + 60 * 60;
- $summertimeStart = 0;
- }
- } else {
- if(date('I', $newStartTime)) {
- $newStartTime = $newStartTime - 60 * 60;
- $summertimeStart = 1;
- }
- }
$newEvent->setStart(date('Y-m-d H:i', $newStartTime));
- $newStartTime = $newStartTime + $onedaytime;
+ $newStartTime = $this->checkTimeChange($newStartTime, $newStartTime + $onedaytime);
if(isset($newEndTime)) {
- if($summertimeEnd) {
- if(!date('I', $newEndTime)) {
- $newEndTime = $newEndTime + 60 * 60;
- $summertimeEnd = 0;
- }
- } else {
- if(date('I', $newEndTime)) {
- $newEndTime = $newEndTime - 60 * 60;
- $summertimeEnd = 1;
- }
- }
$newEvent->setEnd(date('Y-m-d H:i', $newEndTime));
- $newEndTime = $newEndTime + $onedaytime;
+ $newEndTime = $this->checkTimeChange($newEndTime, $newEndTime + $onedaytime);
}
$events[$i] = $newEvent;
if($newEvent->getCategory() != $shutdownCategory->getID()) {
@@ -2116,40 +1959,18 @@ class EventController extends Zend_Controller_Action
$filterentriesID3 = $this->pbs2Api->addFilterentry($newEvent->getPbs_filterID(), 10, $weekday, $weekday);
}
$oneweektime = 7 * 24 * 60 * 60;
- $newStartTime = strtotime($newEvent->getStart()) + $oneweektime;
+ $newStartTime = $this->checkTimeChange(strtotime($newEvent->getStart()), strtotime($newEvent->getStart()) + $oneweektime);
if($newEvent->getEnd()) {
- $newEndTime = strtotime($newEvent->getEnd()) + $oneweektime;
+ $newEndTime = $this->checkTimeChange(strtotime($newEvent->getStart()), strtotime($newEvent->getEnd()) + $oneweektime);
}
if($repeatend->getTitle() == 'After') {
$repeatings = intval($newEvent->getRepeatings());
for($i = 0; $i < $repeatings; $i++) {
- if($summertimeStart) {
- if(!date('I', $newStartTime)) {
- $newStartTime = $newStartTime + 60 * 60;
- $summertimeStart = 0;
- }
- } else {
- if(date('I', $newStartTime)) {
- $newStartTime = $newStartTime - 60 * 60;
- $summertimeStart = 1;
- }
- }
$newEvent->setStart(date('Y-m-d H:i', $newStartTime));
- $newStartTime = $newStartTime + $oneweektime;
+ $newStartTime = $this->checkTimeChange($newStartTime, $newStartTime + $oneweektime);
if(isset($newEndTime)) {
- if($summertimeEnd) {
- if(!date('I', $newEndTime)) {
- $newEndTime = $newEndTime + 60 * 60;
- $summertimeEnd = 0;
- }
- } else {
- if(date('I', $newEndTime)) {
- $newEndTime = $newEndTime - 60 * 60;
- $summertimeEnd = 1;
- }
- }
$newEvent->setEnd(date('Y-m-d H:i', $newEndTime));
- $newEndTime = $newEndTime + $oneweektime;
+ $newEndTime = $this->checkTimeChange($newEndTime, $newEndTime + $oneweektime);
}
$events[$i + 1] = $newEvent;
$newEvent = clone $newEvent;
@@ -2158,33 +1979,11 @@ class EventController extends Zend_Controller_Action
$repeatendtime = strtotime($newEvent->getRepeatdate());
$i = 1;
while($newStartTime <= $repeatendtime) {
- if($summertimeStart) {
- if(!date('I', $newStartTime)) {
- $newStartTime = $newStartTime + 60 * 60;
- $summertimeStart = 0;
- }
- } else {
- if(date('I', $newStartTime)) {
- $newStartTime = $newStartTime - 60 * 60;
- $summertimeStart = 1;
- }
- }
$newEvent->setStart(date('Y-m-d H:i', $newStartTime));
- $newStartTime = $newStartTime + $oneweektime;
+ $newStartTime = $this->checkTimeChange($newStartTime, $newStartTime + $oneweektime);
if(isset($newEndTime)) {
- if($summertimeEnd) {
- if(!date('I', $newEndTime)) {
- $newEndTime = $newEndTime + 60 * 60;
- $summertimeEnd = 0;
- }
- } else {
- if(date('I', $newEndTime)) {
- $newEndTime = $newEndTime - 60 * 60;
- $summertimeEnd = 1;
- }
- }
$newEvent->setEnd(date('Y-m-d H:i', $newEndTime));
- $newEndTime = $newEndTime + $oneweektime;
+ $newEndTime = $this->checkTimeChange($newEndTime, $newEndTime + $oneweektime);
}
$events[$i] = $newEvent;
$newEvent = clone $newEvent;
@@ -2199,40 +1998,18 @@ class EventController extends Zend_Controller_Action
$filterentriesID3 = $this->pbs2Api->addFilterentry($event->getPbs_filterID(), 11, strtotime($startDate), strtotime($endDate));
}
$twoweekstime = 14 * 24 * 60 * 60;
- $newStartTime = strtotime($newEvent->getStart()) + $twoweekstime;
+ $newStartTime = $this->checkTimeChange(strtotime($newEvent->getStart()), strtotime($newEvent->getStart()) + $twoweekstime);
if($newEvent->getEnd()) {
- $newEndTime = strtotime($newEvent->getEnd()) + $twoweekstime;
+ $newEndTime = $this->checkTimeChange(strtotime($newEvent->getEnd()), strtotime($newEvent->getEnd()) + $twoweekstime);
}
if($repeatend->getTitle() == 'After') {
$repeatings = intval($newEvent->getRepeatings());
for($i = 0; $i < $repeatings; $i++) {
- if($summertimeStart) {
- if(!date('I', $newStartTime)) {
- $newStartTime = $newStartTime + 60 * 60;
- $summertimeStart = 0;
- }
- } else {
- if(date('I', $newStartTime)) {
- $newStartTime = $newStartTime - 60 * 60;
- $summertimeStart = 1;
- }
- }
$newEvent->setStart(date('Y-m-d H:i', $newStartTime));
- $newStartTime = $newStartTime + $twoweekstime;
+ $newStartTime = $this->checkTimeChange($newStartTime, $newStartTime + $twoweekstime);
if(isset($newEndTime)) {
- if($summertimeEnd) {
- if(!date('I', $newEndTime)) {
- $newEndTime = $newEndTime + 60 * 60;
- $summertimeEnd = 0;
- }
- } else {
- if(date('I', $newEndTime)) {
- $newEndTime = $newEndTime - 60 * 60;
- $summertimeEnd = 1;
- }
- }
$newEvent->setEnd(date('Y-m-d H:i', $newEndTime));
- $newEndTime = $newEndTime + $twoweekstime;
+ $newEndTime = $this->checkTimeChange($newEndTime, $newEndTime + $twoweekstime);
}
$events[$i + 1] = $newEvent;
if($newEvent->getCategory() != $shutdownCategory->getID()) {
@@ -2250,33 +2027,11 @@ class EventController extends Zend_Controller_Action
$repeatendtime = strtotime($newEvent->getRepeatdate());
$i = 1;
while($newStartTime <= $repeatendtime) {
- if($summertimeStart) {
- if(!date('I', $newStartTime)) {
- $newStartTime = $newStartTime + 60 * 60;
- $summertimeStart = 0;
- }
- } else {
- if(date('I', $newStartTime)) {
- $newStartTime = $newStartTime - 60 * 60;
- $summertimeStart = 1;
- }
- }
$newEvent->setStart(date('Y-m-d H:i', $newStartTime));
- $newStartTime = $newStartTime + $twoweekstime;
+ $newStartTime = $this->checkTimeChange($newStartTime, $newStartTime + $twoweekstime);
if(isset($newEndTime)) {
- if($summertimeEnd) {
- if(!date('I', $newEndTime)) {
- $newEndTime = $newEndTime + 60 * 60;
- $summertimeEnd = 0;
- }
- } else {
- if(date('I', $newEndTime)) {
- $newEndTime = $newEndTime - 60 * 60;
- $summertimeEnd = 1;
- }
- }
$newEvent->setEnd(date('Y-m-d H:i', $newEndTime));
- $newEndTime = $newEndTime + $twoweekstime;
+ $newEndTime = $this->checkTimeChange($newEndTime, $newEndTime + $twoweekstime);
}
$events[$i] = $newEvent;
if($newEvent->getCategory() != $shutdownCategory->getID()) {
@@ -2506,39 +2261,11 @@ class EventController extends Zend_Controller_Action
if($event->getRunning() == 0 && $event->getRepeat() == 1) {
$event->setOptions($diff);
if(isset($diffStart)) {
- $summertimeStart = intval(date('I', strtotime($event->getStart())));
- $newSummertimeStart = intval(date('I', strtotime($event->getStart()) + $diffStart));
- if($summertimeStart) {
- if(!$newSummertimeStart) {
- $newStart = date('Y-m-d H:i:s', strtotime($event->getStart()) + $diffStart + 3600);
- } else {
- $newStart = date('Y-m-d H:i:s', strtotime($event->getStart()) + $diffStart);
- }
- } else {
- if($newSummertimeStart) {
- $newStart = date('Y-m-d H:i:s', strtotime($event->getStart()) + $diffStart - 3600);
- } else {
- $newStart = date('Y-m-d H:i:s', strtotime($event->getStart()) + $diffStart);
- }
- }
+ $newStart = date('Y-m-d H:i:s', $this->checkTimeChange(strtotime($event->getStart()), strtotime($event->getStart()) + $diffStart));
$event->setStart($newStart);
}
if(isset($diffEnd)) {
- $summertimeEnd = intval(date('I', strtotime($event->getEnd())));
- $newSummertimeEnd = intval(date('I', strtotime($event->getEnd()) + $diffEnd));
- if($summertimeEnd) {
- if(!$newSummertimeEnd) {
- $newEnd = date('Y-m-d H:i:s', strtotime($event->getEnd()) + $diffEnd + 3600);
- } else {
- $newEnd = date('Y-m-d H:i:s', strtotime($event->getEnd()) + $diffEnd);
- }
- } else {
- if($newSummertimeEnd) {
- $newEnd = date('Y-m-d H:i:s', strtotime($event->getEnd()) + $diffEnd - 3600);
- } else {
- $newEnd = date('Y-m-d H:i:s', strtotime($event->getEnd()) + $diffEnd);
- }
- }
+ $newEnd = date('Y-m-d H:i:s', $this->checkTimeChange(strtotime($event->getEnd()), strtotime($event->getEnd()) + $diffEnd));
$event->setEnd($newEnd);
}
}
@@ -2662,4 +2389,16 @@ class EventController extends Zend_Controller_Action
}
return $overlapping;
}
+
+ private function checkTimeChange($oldTime, $newTime) {
+ if(date('I', $oldTime)) {
+ if(!date('I', $newTime)) {
+ return $newTime + 3600;
+ }
+ } else {
+ if(date('I', $newTime)) {
+ return $newTime - 3600;
+ }
+ }
+ }
}
diff --git a/application/controllers/PersonController.php b/application/controllers/PersonController.php
index 72ef196..79bb92d 100755
--- a/application/controllers/PersonController.php
+++ b/application/controllers/PersonController.php
@@ -83,17 +83,13 @@ class PersonController extends Zend_Controller_Action
if($useGroupnamespace) {
$group = $groups[$groupID];
} else {
- $this->pbs2Api->getGroup($groupSession, $groupID);
+ $group = $this->pbs2Api->getGroup($groupSession, $groupID, $membership->getApikey());
}
$roleID = $membership->getRoleID();
if($useRolenamespace) {
$role = $roles[$roleID];
} else {
- $roleApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['getrole'] . $membership->getApikey(), 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', '');
- $roleXMLString = $roleApiResult['http-body'];
- if(strlen($roleXMLString) > 0) {
- $this->pbs2Api->getRole($roleSession, $roleID);
- }
+ $role = $this->pbs2Api->getRole($roleSession, $roleID, $membership->getApikey());
}
$apikeys[$group->getID()] = $membership->getApikey();
$this->groups[$group->getID()] = array (
diff --git a/application/views/scripts/event/index.phtml b/application/views/scripts/event/index.phtml
index f79dd6c..3fe0194 100755
--- a/application/views/scripts/event/index.phtml
+++ b/application/views/scripts/event/index.phtml
@@ -1,875 +1,8 @@
<h1>Pool Control</h1>
-
<div id='calendar'
style='margin: 3em 0; font-size: 13px'></div>
-
-<script type="text/javascript">
-
-$(document).ready(function() {iniCalendar();});
-
-/*
- * calendar variables
- */
-
-// eventSelect
-var eventColor = {ev:null, color:null};
-
-// keydown
-var selectedEvent = null;
-
-// dblclick
-var clickTmp = true;
-
-// poolSelectVal
-var poolIDtmp;
-
-//change border color of an event
-function eventSelected(event) {
- if (eventColor.ev != null){
- event.selected = false;
- selectedEvent = null;
- eventColor.ev.borderColor = eventColor.color;
- }
- event.selected = true;
- selectedEvent = event;
- eventColor.ev = event;
- eventColor.color = event.borderColor;
- event.borderColor = 'black';
- $('#calendar').fullCalendar("rerenderEvents");
- // show report button
- if($.get("/event/checkright/rightShortcut/er")){
- $('#eventReportButton').show();
- } else {
- $('#eventReportButton').hide();
- }
- // show edit button
- if($.get("/event/checkright/rightShortcut/ee")) {
- $('#editEvent').show();
- } else {
- $('#editEvent').hide();
- }
-}
-
-// change view to addEvent
- function addEvent() {
- if($("#poolselectbox option:selected").val() == 'defaultPool' || $("#poolselectbox option:selected").val() == 'noPool') {
- $("#noPoolSelectedDialog").dialog('open');
- } else {
- self.location="/event/add/";}
- }
-
- function setOpacity(type, value) {
- var events = $('#calendar').fullCalendar( 'clientEvents' , function(event) {
- if(event.category == type) {
- event.opacity = value;
- }
- return false;
- });
- $('#calendar').fullCalendar( 'rerenderEvents' );
- }
-
- function setPoolIDtmp() {
- poolIDtmp = $("#poolselectbox option:selected").val();
- }
-
-// fetch all poolevents of the selected #poolselectbox value
- function fetchPoolEvents() {
- poolID = $("#poolselectbox option:selected").val();
- $('#calendar').fullCalendar("removeEvents");
- $('#calendar').fullCalendar("removeEventSource", "/event/eventlist/poolID/" + poolIDtmp);
- $('#calendar').fullCalendar("addEventSource", "/event/eventlist/poolID/" + poolID);
- }
-
- $(window).load(function() {
- var formularOverlappVar = getOverlappingVar();
- if(formularOverlappVar == 1) {
- $( "#formularOverlappingDialog" ).dialog('open');}
- });
-
-/*
- * KEYDOWN FUNCTION
- * delete selected event by key del(8) OR entf(46)
- */
-
- $(document).keydown(function (e) {
- //delete selected event by key del(8) OR entf(46)
- if (e.keyCode == 8 || e.keyCode == 46 && selectedEvent.selected == true, $.get("/event/checkright/rightShortcut/ed")) {
- // check if the event is an wdhEvent
- if(selectedEvent.repeat == 0 || selectedEvent.repeat == 2) {
- // dialog for deleting selected event
- $(function() {
- $( "#eventDeleteDialog" ).dialog({
- autoOpen: false,
- width: 600,
- modal: true,
- title: "Delete " + selectedEvent.title,
- buttons: {
- "Cancel": function() {
- $(this).dialog("close");
- },
- "OK": function() {
- $(this).dialog("close");
- $.post("/event/delete/eventID/" + selectedEvent.id);
- $('#calendar').fullCalendar( 'removeEvents', selectedEvent.id );
- $('#calendar').fullCalendar( 'rerenderEvents' );
- }
- },
- open: function () {
- $(".ui-dialog-titlebar-close").hide();
- }
- });
- });
- $( "#eventDeleteDialog" ).dialog('open');
-
- // dialog for deleting selected wdhEvent
- } else if (selectedEvent.repeat == 1) {
- $(function() {
- $( "#eventDeleteWdhDialog" ).dialog({
- autoOpen: false,
- width: 600,
- modal: true,
- title: 'Delete ' + selectedEvent.title,
- buttons: {
- "Cancel": function() {
- $(this).dialog("close");
- },
- "Delete just this Event": function() {
- $(this).dialog("close");
- $.post("/event/delete/eventID/" + selectedEvent.id);
- $('#calendar').fullCalendar( 'removeEvents', selectedEvent.id );
- $('#calendar').fullCalendar( 'rerenderEvents' );
- },
- "Delete all Events": function() {
- $(this).dialog("close");
- self.location="/event/deleteall/eventTitle/" + selectedEvent.title;
- }
- },
- open: function () {
- $(".ui-dialog-titlebar-close").hide();
- }
- });
- });
- $( "#eventDeleteWdhDialog" ).dialog('open');}
- }
- });
-
-/*
- * initialize fullCalendar and all calendar-functions
- */
-
- function iniCalendar() {
-
- var calendar = $('#calendar').fullCalendar({
-
- // fullCalendar header
- header: {
- default: 'week',
- left: 'title',
- center: 'today prev,next',
- right: 'agendaWeek,agendaDay'
- },
-
- // set some default options
- editable: true,
- allDaySlot: false,
- selectable: true,
- selectHelper: true,
- currentTimeIndicator: true,
- allDay : false,
- defaultView: 'agendaWeek',
- slotMinutes: 15,
- defaultEventMinutes: 10,
-
- loading: function(bool) { if (bool) $('#progress').show(); else $('#progress').hide(); },
-
- eventClick: function( event, jsEvent, view ) {
-
- if(clickTmp) {
- clickTmp = false;
- setTimeout(function() {clickTmp = true;} , 300);
- $(this).qtip("destroy");
- eventSelected(event);
- } else if ($.get("/event/checkright/rightShortcut/ed")) {
- // this is the dblclick
- $(this).qtip("destroy");
- if(event.repeat == 1) {
- $(function() {
- $( "#eventEditWdhDialog" ).dialog({
- autoOpen: false,
- width: 600,
- modal: true,
- title: 'Edit ' + event.title,
- buttons: {
- "Cancel": function() {
- $(this).dialog("close");
- },
- "Edit just this Event": function() {
- $(this).dialog("close");
- self.location = "/event/edit/eventID/" + event.id + "/wdh/" + 0 + "/poolID/" + $("#poolselectbox option:selected").val();
- },
- "Edit all Events": function() {
- $(this).dialog("close");
- self.location = "/event/edit/eventID/" + event.id + "/wdh/" + 1 + "/poolID/" + $("#poolselectbox option:selected").val();
- }
- },
- open: function () {
- $(".ui-dialog-titlebar-close").hide();
- }
- });
- });
- $( "#eventEditWdhDialog" ).dialog('open');
- } else self.location = "/event/edit/eventID/" + event.id + "/wdh/" + 0 + "/poolID/" + $("#poolselectbox option:selected").val();
- } else if (!$.get("/event/checkright/rightShortcut/ee")) {
- $( "#errorRightsDialog" ).dialog('open');
- }
- },
-
- select: function( startDate, endDate, allDay, jsEvent, view ) {
-
- var currentDate = new Date();
-
- //initialize eventNotDroppableDialog Dialog
- $(function() {
- $( "#eventNotDroppableDialog" ).dialog({
- autoOpen: false,
- width: 820,
- modal: true,
- title: 'Adding of an Event at this position is not possible!',
- buttons: {
- "OK": function() {
- $(this).dialog("close");
- $('#calendar').fullCalendar( 'unselect' );
- }
- },
- open: function () {
- $("#accordion").accordion({clearStyle: true, collapsible: true, active: false, autoHeight: true });
- $(".ui-dialog-titlebar-close").hide();
- $(this).parents(".ui-dialog:first").find(".ui-dialog-titlebar").addClass("ui-state-error");
- }
- });
- });
- $.get("/event/checkright/rightShortcut/ec", function(right){
- $.get("/event/checkoverlapselect/poolID/" + $("#poolselectbox option:selected").val() + "/startDate/" + startDate + "/endDate/" + endDate, function(data){
-
- // get conflicts-HTML Element
- var cell = document.getElementById("conflicts");
- // get conflicts
- var returndata = jQuery.parseJSON(data);
-
-
- if($("#poolselectbox option:selected").val() == 'defaultPool' || $("#poolselectbox option:selected").val() == 'noPool') {
- $( "#noPoolSelectedDialog" ).dialog('open');
- } else if (right) {
- $(function() {
- $( "#eventAddDialog" ).dialog({
- autoOpen: false,
- width: 600,
- modal: true,
- title: "Add Event from " + startDate + " to " + endDate,
- buttons: {
- "Cancel": function() {
- $(this).dialog("close");
- $('#calendar').fullCalendar( 'unselect' );
- },
- "OK": function() {
- if(returndata == -1) {
- if(startDate > currentDate) {
- $(this).dialog("close");
- self.location="/event/add/evstart/" + startDate + "/evend/" + endDate + "/poolID/" + $("#poolselectbox option:selected").val();
- } else {
- $(this).dialog("close");
- $('#calendar').fullCalendar( 'unselect' );
- $( "#errorTimeDialog" ).dialog('open');
- }
- } else {
- $(this).dialog("close");
- cell.removeChild(cell.firstChild);
- $("#conflicts").append(returndata);
- $( "#eventNotDroppableDialog" ).dialog('open');
- }
- }
- },
- open: function () {
- $(".ui-dialog-titlebar-close").hide();
- }
- });
- });
- $( "#eventAddDialog" ).dialog('open');
- } else if (!right) {
- $('#calendar').fullCalendar( 'unselect' );
- $( "#errorRightsDialog" ).dialog('open');
- } else
- $('#calendar').fullCalendar( 'unselect' );
- });
- });
- },
-
- eventResize: function( event, dayDelta, minuteDelta, revertFunc ) {
-
- $.get("/event/checkoverlapresize/eventID/" + event.id + "/minuteDelta/" + minuteDelta + "/dayDelta/" + dayDelta + "/poolID/" + $("#poolselectbox option:selected").val(), function(data){
-
- // get conflicts-HTML Element
- var cell = document.getElementById("conflicts");
- var cfcell = document.getElementById("cfevents");
- // get conflicts
- var returndata = jQuery.parseJSON(data);
- // get conflict free events
- var cfevents = returndata.cfevents;
- var cfeventsString = $.toJSON(cfevents);
-
-
- //initialize eventNotDroppableDialog Dialog
- $(function() {
- $( "#eventNotDroppableDialog" ).dialog({
- autoOpen: false,
- width: 820,
- modal: true,
- title: 'Resizing of ' + event.title + ' is not possible!',
- buttons: {
- "Resize Conflict-Free Events": function() {
- $(this).dialog("close");
- self.location="/event/eventresizecf/evmindelta/" + minuteDelta + "/evdaydelta/" + dayDelta + "/poolID/" + $("#poolselectbox option:selected").val() + "/cfevents/" + cfeventsString;
- },
- "OK": function() {
- $(this).dialog("close");
- revertFunc();
- }
- },
- open: function () {
- $("#accordion").accordion({clearStyle: true, collapsible: true, active: false, autoHeight: true });
- $(".ui-dialog-titlebar-close").hide();
- $(this).parents(".ui-dialog:first").find(".ui-dialog-titlebar").addClass("ui-state-error");
- }
- });
- });
-
- //initialize eventNotDroppable Dialog2
- $(function() {
- $( "#eventNotDroppableDialog2" ).dialog({
- autoOpen: false,
- width: 820,
- modal: true,
- title: 'Dropping of ' + event.title + ' is not possible!',
- buttons: {
- "OK": function() {
- $(this).dialog("close");
- revertFunc();
- }
- },
- open: function () {
- $(".ui-dialog-titlebar-close").hide();
- $(this).parents(".ui-dialog:first").find(".ui-dialog-titlebar").addClass("ui-state-error");
- }
- });
- });
-
- if($.get("/event/checkright/rightShortcut/ee")) {
- if(event.repeat == 0 || event.repeat == 2) {
- $(function() {
- $( "#defaultDialog" ).dialog({
- autoOpen: false,
- width: 600,
- modal: true,
- title: "The End Date of " + event.title + " is now " + event.end,
- buttons: {
- "Cancel": function() {
- $(this).dialog("close");
- revertFunc();
- },
- "OK": function() {
- if(returndata.withoutrepeat == -1) {
- $(this).dialog("close");
- $.post("/event/eventresize/evid/" + event.id + "/evend/" + event.end + "/poolID/" + $("#poolselectbox option:selected").val());
- } else {
- $(this).dialog("close");
- $( "#eventNotDroppableDialog2" ).dialog('open');
- }
- }
- },
- open: function () {
- $(".ui-dialog-titlebar-close").hide();
- }
- });
- });
- $( "#defaultDialog" ).dialog('open');
- } else if (event.repeat == 1) {
- $(function() {
- $( "#eventResizeWdhDialog" ).dialog({
- autoOpen: false,
- width: 600,
- modal: true,
- title: 'Resize ' + event.title + ' (' + minuteDelta + ' minutes)',
- buttons: {
- "Cancel": function() {
- $(this).dialog("close");
- revertFunc();
- },
- "Resize just this Event": function() {
- if(returndata.withoutrepeat == -1) {
- $(this).dialog("close");
- $.post("/event/eventresize/evid/" + event.id + "/evend/" + event.end + "/poolID/" + $("#poolselectbox option:selected").val());
- event.repeat = 2;
- } else {
- $(this).dialog("close");
- $( "#eventNotDroppableDialog2" ).dialog('open');
- }
- },
- "Resize all Events": function() {
- if(returndata.withrepeat == -1) {
- $(this).dialog("close");
- self.location="/event/eventresizeall/eventTitle/" + event.title + "/evmindelta/" + minuteDelta + "/poolID/" + $("#poolselectbox option:selected").val();
- } else {
- $(this).dialog("close");
- cell.removeChild(cell.firstChild);
- cfcell.removeChild(cfcell.firstChild);
- $("#cfevents").append(returndata.cfplotwithrepeat);
- $("#conflicts").append(returndata.withrepeat);
- $( "#eventNotDroppableDialog" ).dialog('open');
- }
- }
- },
- open: function () {
- $(".ui-dialog-titlebar-close").hide();
- }
- });
- });
- $( "#eventResizeWdhDialog" ).dialog('open');
- }
- }
- else {
- revertFunc();
- $( "#errorRightsDialog" ).dialog('open');
- }
- });
- $(this).qtip("destroy");
- },
-
- eventDrop: function( event, dayDelta, minuteDelta, allDay, revertFunc ) {
-
- var currentDate = new Date();
-
- $.get("/event/checkoverlapdrop/poolID/" + $("#poolselectbox option:selected").val() + "/eventID/" + event.id + "/date/" + event.start, function(data){
-
- // get conflicts-HTML Element
- var cell = document.getElementById("conflicts");
- var cfcell = document.getElementById("cfevents");
- // get conflicts
- var returndata = jQuery.parseJSON(data);
- // get past
- var past = returndata.past;
- // get conflict free events with repeat
- var cfevents = returndata.cfevents;
- var cfeventsString = $.toJSON(cfevents);
-
- //initialize eventNotDroppable Dialog
- $(function() {
- $( "#eventNotDroppableDialog" ).dialog({
- autoOpen: false,
- width: 820,
- modal: true,
- title: 'Dropping of ' + event.title + ' is not possible!',
- buttons: {
- "Drop Conflict-Free Events": function() {
- $(this).dialog("close");
- self.location="/event/eventmovecf/evmindelta/" + minuteDelta + "/evdaydelta/" + dayDelta + "/poolID/" + $("#poolselectbox option:selected").val() + "/cfevents/" + cfeventsString;
- },
- "OK": function() {
- $(this).dialog("close");
- revertFunc();
- }
- },
- open: function () {
- $("#accordion").accordion({clearStyle: true, collapsible: true, active: false, autoHeight: true });
- $(".ui-dialog-titlebar-close").hide();
- $(this).parents(".ui-dialog:first").find(".ui-dialog-titlebar").addClass("ui-state-error");
- }
- });
- });
-
- //initialize eventNotDroppable Dialog2
- $(function() {
- $( "#eventNotDroppableDialog2" ).dialog({
- autoOpen: false,
- width: 820,
- modal: true,
- title: 'Dropping of ' + event.title + ' is not possible!',
- buttons: {
- "OK": function() {
- $(this).dialog("close");
- revertFunc();
- }
- },
- open: function () {
- $(".ui-dialog-titlebar-close").hide();
- $(this).parents(".ui-dialog:first").find(".ui-dialog-titlebar").addClass("ui-state-error");
- }
- });
- });
-
- if((event.repeat == 0 || event.repeat == 2) && $.get("/event/checkright/rightShortcut/ee")) {
- $(function() {
- $( "#defaultDialog" ).dialog({
- autoOpen: false,
- width: 600,
- modal: true,
- title: event.title + " was moved to " + event.start,
- buttons: {
- "Cancel": function() {
- $(this).dialog("close");
- revertFunc();
- },
- "OK": function() {
- if(returndata.withoutrepeat == -1) {
- if(event.start > currentDate) {
- $(this).dialog("close");
- $.post("/event/eventmove/evid/" + event.id + "/evstart/" + event.start + "/evend/" + event.end);
- } else {
- $(this).dialog("close");
- $( "#errorTimeDialog" ).dialog('open');
- revertFunc();
- }
- } else {
- $(this).dialog("close");
- $( "#eventNotDroppableDialog2" ).dialog('open');
- }
- }
- },
- open: function () {
- $(".ui-dialog-titlebar-close").hide();
- }
- });
- });
- $( "#defaultDialog" ).dialog('open');
- } else if (event.repeat == 1 && $.get("/event/checkright/rightShortcut/ee")) {
- $(function() {
- $( "#eventMoveWdhDialog" ).dialog({
- autoOpen: false,
- width: 600,
- modal: true,
- title: 'Move ' + event.title,
- buttons: {
- "Cancel": function() {
- $(this).dialog("close");
- revertFunc();
- },
- "Move just this Event": function() {
- if(returndata.withoutrepeat == -1) {
- if(event.start > currentDate) {
- $(this).dialog("close");
- $.post("/event/eventmove/evid/" + event.id + "/evstart/" + event.start + "/evend/" + event.end);
- } else {
- $(this).dialog("close");
- $( "#errorTimeDialog" ).dialog('open');
- revertFunc();
- }
- event.repeat = 2;
- } else {
- $(this).dialog("close");
- $( "#eventNotDroppableDialog2" ).dialog('open');
- }
- },
- "Move all Events": function() {
- if(returndata.withrepeat == -1) {
- if(event.start > currentDate && !past) {
- $(this).dialog("close");
- self.location="/event/eventmoveall/eventTitle/" + event.title + "/evmindelta/" + minuteDelta + "/evdaydelta/" + dayDelta + "/poolID/" + $("#poolselectbox option:selected").val();
- } else {
- $(this).dialog("close");
- $( "#errorTimeDialog" ).dialog('open');
- revertFunc();
- }
- } else {
- $(this).dialog("close");
- cell.removeChild(cell.firstChild);
- cfcell.removeChild(cfcell.firstChild);
- $("#cfevents").append(returndata.cfplotwithrepeat);
- $("#conflicts").append(returndata.withrepeat);
- $( "#eventNotDroppableDialog" ).dialog('open');
- }
- }
- },
- open: function () {
- $(".ui-dialog-titlebar-close").hide();
- }
- });
- });
- $( "#eventMoveWdhDialog" ).dialog('open');
- } else {
- revertFunc();
- $(this).qtip("destroy");
- }});
- $(this).qtip("destroy");
- },
-
- eventDragStart: function( event, jsEvent, ui, view ) {
- if(!$.get("/event/checkright/rightShortcut/ee")) {
- $( "#errorRightsDialog" ).dialog('open');
- }
- },
-
- eventRender: function(event, element, view) {
-
- var eventTmp = element.attr("id", "evID_" + event.id);
-
- // add running icons and handle editing of events
- if(event.running == 0) {
- // event will take place soon
- $(element).find('.fc-event-time').addClass("fc-event-time-0");
- } else if(event.running == 1) {
- // event is running
- $(element).find('.fc-event-time').addClass("fc-event-time-1");
- event.editable = false;
- element.resizable("destroy"); // jqeury resizing
- element.removeClass('fc-event-vert'); // css class
- } else if(event.running == 2) {
- // event successfully
- $(element).find('.fc-event-time').addClass("fc-event-time-2");
- event.editable = false;
- element.resizable("destroy"); // jqeury resizing
- element.removeClass('fc-event-vert'); // css class
- } else if(event.running == 3) {
- // event failed
- $(element).find('.fc-event-time').addClass("fc-event-time-3");
- event.editable = false;
- element.resizable("destroy"); // jqeury resizing
- element.removeClass('fc-event-vert'); // css class
- }
-
- // disable resizing if the event is a boot- or shutdown-event
- if(event.category == 'Boot' || event.category == 'Shutdown') {
- element.resizable(false); // calendar resizing
- element.resizable("destroy"); // jqeury resizing
- element.removeClass('fc-event-vert'); // css class
- }
-
- element.qtip({
- content:
- 'Title: ' + event.title + '<br/>' +
- 'Type: ' + event.category + '<br/>' +
- 'Note: ' + event.note + '<br/>' +
- 'Participants: ' + event.participants,
- show: 'mouseover',
- hide: 'mouseout'
- });
-
- if (view.name == 'agendaDay') {
- if(event.participants) {
- element.find('.fc-event-title').append(
- "<br/> Type: " + event.category +
- "<br/> Note: " + event.note +
- "<br/> Participants: " + event.participants +
- "<br/> Repeat: " + event.repeat);
- } else {
- element.find('.fc-event-title').append(
- "<br/> Type: " + event.category +
- "<br/> Note: " + event.note +
- "<br/> Participants: ALL" +
- "<br/> Repeat: " + event.repeat);
- }
- }
- }
- });
-
-
- /*
- * Button definitions
- */
-
- // EventType Buttons
- $('.fc-header-center').append('<span id="lecture" class="fc-button fc-state-default fc-corner-right fc-state-active"><span class="fc-button-inner"><span class="fc-button-content">Lecture</span><span class="fc-button-effect"><span></span></span></span></span>');
- $('.fc-header-center').append('<span id="maintenance" class="fc-button fc-state-default fc-corner-right fc-state-active"><span class="fc-button-inner"><span class="fc-button-content">Maintenance</span><span class="fc-button-effect"><span></span></span></span></span>');
- $('.fc-header-center').append('<span id="boot" class="fc-button fc-state-default fc-corner-right fc-state-active"><span class="fc-button-inner"><span class="fc-button-content">Boot</span><span class="fc-button-effect"><span></span></span></span></span>');
- $('.fc-header-center').append('<span id="shutdown" class="fc-button fc-state-default fc-corner-right fc-state-active"><span class="fc-button-inner"><span class="fc-button-content">Shutdown</span><span class="fc-button-effect"><span></span></span></span></span>');
-
- // PoolSelectBox
- $('.fc-header-left').append('<form name="PoolSelectForm"><select id="poolselectbox" name="PoolSelectbox" onclick="setPoolIDtmp()" onChange="fetchPoolEvents();"><option value="defaultPool" >Please choose a Pool</option></select></form>');
-
- // Add Button
- $('.fc-header-right').append('<span id="addEvent" class="fc-button fc-state-default fc-state-hover"><span class="fc-button-inner"><span class="fc-button-content">+</span><span class="fc-button-effect"><span></span></span></span></span>');
-
- // Edit Button
- $('.fc-header-right').append('<span id="editEvent" style=display:none class="fc-button fc-state-default fc-state-hover "><span class="fc-button-inner"><span class="fc-button-content"><IMG src="/media/img/edit.png"/></span><span class="fc-button-effect"><span></span></span></span>');
-
- // Report Button
- $('.fc-header-center').append('<span id="eventReportButton" style=display:none class="fc-button fc-state-default fc-state-hover"><span class="fc-button-inner"><span class="fc-button-content">Report</span><span class="fc-button-effect"><span></span></span></span></span>');
-
- // Change Button-Style
- $("#lecture").click(function(){
- if($("#poolselectbox option:selected").val() == 'defaultPool' || $("#poolselectbox option:selected").val() == 'noPool') {
- $( "#noPoolSelectedDialog" ).dialog('open');
- } else {
- if($(this).hasClass("fc-state-active")) {
- $(this).removeClass("fc-state-active");
- setOpacity('Lecture', '.5');
- } else {$(this).addClass("fc-state-active"); setOpacity('Lecture', '1');}
- }
- });
- $("#maintenance").click(function(){
- if($("#poolselectbox option:selected").val() == 'defaultPool' || $("#poolselectbox option:selected").val() == 'noPool') {
- $( "#noPoolSelectedDialog" ).dialog('open');
- } else {
- if($(this).hasClass("fc-state-active")) {
- $(this).removeClass("fc-state-active");
- setOpacity('Maintenance', '.5');
- } else {$(this).addClass("fc-state-active"); setOpacity('Maintenance', '1');}
- }
- });
- $("#boot").click(function(){
- if($("#poolselectbox option:selected").val() == 'defaultPool' || $("#poolselectbox option:selected").val() == 'noPool') {
- $( "#noPoolSelectedDialog" ).dialog('open');
- } else {
- if($(this).hasClass("fc-state-active")) {
- $(this).removeClass("fc-state-active");
- setOpacity('Boot', '.5');
- } else {$(this).addClass("fc-state-active"); setOpacity('Boot', '1');}
- }
- });
- $("#shutdown").click(function(){
- if($("#poolselectbox option:selected").val() == 'defaultPool' || $("#poolselectbox option:selected").val() == 'noPool') {
- $( "#noPoolSelectedDialog" ).dialog('open');
- } else {
- if($(this).hasClass("fc-state-active")) {
- $(this).removeClass("fc-state-active");
- setOpacity('Shutdown', '.5');
- } else {$(this).addClass("fc-state-active"); setOpacity('Shutdown', '1');}
- }
- });
-
- $("#addEvent").click(function(){
- addEvent();
- });
-
- $("#editEvent").click(function(){
- if(selectedEvent != null) {
- if(selectedEvent.repeat == 1) {
- $(function() {
- $( "#eventEditWdhDialog" ).dialog({
- autoOpen: false,
- width: 600,
- modal: true,
- title: 'Edit ' + selectedEvent.title,
- buttons: {
- "Cancel": function() {
- $(this).dialog("close");
- },
- "Edit just this Event": function() {
- $(this).dialog("close");
- self.location = "/event/edit/eventID/" + selectedEvent.id + "/wdh/" + 0 + "/poolID/" + $("#poolselectbox option:selected").val();
- },
- "Edit all Events": function() {
- $(this).dialog("close");
- self.location = "/event/edit/eventID/" + selectedEvent.id + "/wdh/" + 1 + "/poolID/" + $("#poolselectbox option:selected").val();
- }
- },
- open: function () {
- $(".ui-dialog-titlebar-close").hide();
- }
- });
- });
- $( "#eventEditWdhDialog" ).dialog('open');
- } else if ( selectedEvent.repeat == 0 || selectedEvent.repeat == 2 ) self.location = "/event/edit/eventID/" + selectedEvent.id + "/wdh/" + 0 + "/poolID/" + $("#poolselectbox option:selected").val();
- else if (!$.get("/event/checkright/rightShortcut/ee")) {
- $( "#errorRightsDialog" ).dialog('open');
- }
- }
- });
-
- $("#eventReportButton").click(function(){
- if(selectedEvent != null) {
- self.location="/event/showreports/eventID/" + selectedEvent.id;
- }
- });
-
- //fetch poollist from pbs database
- $.get("/event/getpoollist/", function(getpoollistresult){
- $("#poolselectbox").append(getpoollistresult);
- poolIDtmp = $("#poolselectbox option:selected").val();
- fetchPoolEvents();
- });
-
-}
-
-/*
- * Initialisation of Dialogs
- */
-
-// errorRights Dialog
- $(function() {
- $( "#errorRightsDialog" ).dialog({
- autoOpen: false,
- width: 600,
- modal: true,
- title: "ERROR",
- buttons: {
- "OK": function() {
- $(this).dialog("close");
- }
- },
- open: function () {
- $(".ui-dialog-titlebar-close").hide();
- $(this).parents(".ui-dialog:first").find(".ui-dialog-titlebar").addClass("ui-state-error");
- }
- });
- });
-
-// noPoolSelected Dialog
- $(function() {
- $( "#noPoolSelectedDialog" ).dialog({
- autoOpen: false,
- width: 600,
- modal: true,
- title: "ERROR",
- buttons: {
- "OK": function() {
- $(this).dialog("close");
- }
- },
- open: function () {
- $(".ui-dialog-titlebar-close").hide();
- $(this).parents(".ui-dialog:first").find(".ui-dialog-titlebar").addClass("ui-state-error");
- }
- });
- });
-
-// errorTime Dialog
- $(function() {
- $( "#errorTimeDialog" ).dialog({
- autoOpen: false,
- width: 600,
- modal: true,
- title: "ERROR",
- buttons: {
- "OK": function() {
- $(this).dialog("close");
- }
- },
- open: function () {
- $(".ui-dialog-titlebar-close").hide();
- $(this).parents(".ui-dialog:first").find(".ui-dialog-titlebar").addClass("ui-state-error");
- }
- });
- });
-
-// formularOverlappingDialog Dialog
- $(function() {
- $( "#formularOverlappingDialog" ).dialog({
- autoOpen: false,
- width: 600,
- modal: true,
- title: "ERROR",
- buttons: {
- "OK": function() {
- $(this).dialog("close");
- }
- },
- open: function () {
- $(".ui-dialog-titlebar-close").hide();
- $(this).parents(".ui-dialog:first").find(".ui-dialog-titlebar").addClass("ui-state-error");
- }
- });
- });
-
-</script>
+<script
+ type="text/javascript" src="/media/js/calendar.js"></script>
<!-- DIALOG WINDOWS -->
diff --git a/library/Poolctrl/Pbs2Api.php b/library/Poolctrl/Pbs2Api.php
index be868a3..4291182 100644
--- a/library/Poolctrl/Pbs2Api.php
+++ b/library/Poolctrl/Pbs2Api.php
@@ -22,33 +22,41 @@ class Poolctrl_Pbs2Api {
if(isset($this->userIDsNamespace['apikey'])) {
$this->acl = new Poolctrl_Acl($this->pbs2host, $this->config['pbs2']['checkright'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
}
- if(!$this->userIDsNamespace['membershipID'] !='') {
- $this->_helper->redirector('selectmembership', 'person');
- return;
- }
}
- private function runApi($host, $path, $data = null) {
- if($data) {
- $apiResult = PostToHost($host, $path . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $data);
+ private function runApi($host, $path, $data = null, $apikey = null) {
+ if(!isset($apikey) && isset($this->userIDsNamespace['apikey'])) {
+ $apikey = $this->userIDsNamespace['apikey'];
+ }
+ if(isset($apikey)) {
+ if($data) {
+ $apiResult = PostToHost($host, $path . $apikey, 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $data);
+ } else {
+ $apiResult = PostToHost($host, $path . $apikey, 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', '');
+ }
} else {
- $apiResult = PostToHost($host, $path . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', '');
+ if($data) {
+ $apiResult = PostToHost($host, $path, 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $data);
+ } else {
+ $apiResult = PostToHost($host, $path, 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', '');
+ }
}
- $xmlString = $bootOsApiResult['http-body'];
+ $xmlString = $apiResult['http-body'];
if(strlen($xmlString) > 0) {
$xml = new SimpleXMLElement($xmlString);
return $xml;
} else {
- return new SimpleXMLElement();
+ return null;
}
}
- public function getPool(&$poolist, $poolID = null) {
+ public function getPool(&$poollist, $poolID = null) {
if(isset($poolID)) {
$poolRequest = "poolid=" . $poolID;
$poolXML = $this->runApi($this->pbs2host, $this->config['pbs2']['getpools'], $poolRequest);
} else {
$poolXML = $this->runApi($this->pbs2host, $this->config['pbs2']['getpools']);
+
}
if(isset($poolXML)) {
foreach($poolXML->poollist->pool as $pool) {
@@ -135,25 +143,30 @@ class Poolctrl_Pbs2Api {
}
}
- public function getGroup(&$groupSession, $groupID) {
+ public function getGroup(&$groupSession, $groupID, $apikey = null) {
$grouprequest = "groupid=" . $groupID;
- $groupApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['getgroup'] . $membership->getApikey(), 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $grouprequest);
- $groupXMLString = $groupApiResult['http-body'];
- if(strlen($groupXMLString) > 0) {
- $groupXML = new SimpleXMLElement($groupXMLString);
+ if(isset($apikey)) {
+ $groupXML = $this->runApi($this->pbs2host, $this->config['pbs2']['getgroup'], $grouprequest, $apikey);
+ } else {
+ $groupXML = $this->runApi($this->pbs2host, $this->config['pbs2']['getgroup'], $grouprequest);
+ }
+ if(isset($groupXML)) {
$group = new Application_Model_Group();
$group->setID(sprintf("%s", $groupXML->group->id));
$group->setTitle(sprintf("%s", $groupXML->group->title));
$group->setDescription(sprintf("%s", $groupXML->group->description));
$groupSession->$groupID = $group;
+ return $group;
}
}
- public function getRole(&$roleSession, $roleID) {
- $roleApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['getrole'] . $membership->getApikey(), 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', '');
- $roleXMLString = $roleApiResult['http-body'];
- if(strlen($roleXMLString) > 0) {
- $roleXML = new SimpleXMLElement($roleXMLString);
+ public function getRole(&$roleSession, $roleID, $apikey = null) {
+ if(isset($apikey)) {
+ $roleXML = $this->runApi($this->pbs2host, $this->config['pbs2']['getrole'], null, $apikey);
+ } else {
+ $roleXML = $this->runApi($this->pbs2host, $this->config['pbs2']['getrole']);
+ }
+ if(isset($roleXML)) {
$role = new Application_Model_Role();
$role->setID(sprintf("%s", $roleXML->role->id));
$role->setGroupID(sprintf("%s", $roleXML->role->groupid));
@@ -161,14 +174,17 @@ class Poolctrl_Pbs2Api {
$role->setDescription(sprintf("%s", $roleXML->role->description));
$role->setInheritance(sprintf("%s", $roleXML->role->inheritance));
$roleSession->$roleID = $role;
+ return $role;
}
}
- public function getPerson(&$personSession) {
- $personApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['getperson'] . $apikey, 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', '');
- $personXMLString = $personApiResult['http-body'];
- if(strlen($personXMLString) > 0) {
- $personXML = new SimpleXMLElement($personXMLString);
+ public function getPerson(&$personSession, $apikey) {
+ if(isset($apikey)) {
+ $personXML = $this->runApi($this->pbs2host, $this->config['pbs2']['getperson'], null, $apikey);
+ } else {
+ $personXML = $this->runApi($this->pbs2host, $this->config['pbs2']['getperson']);
+ }
+ if(isset($personXML)) {
$person = new Application_Model_Person();
$person->setID(sprintf("%s", $personXML->person->id));
$person->setCity(sprintf("%s", $personXML->person->city));
@@ -183,21 +199,19 @@ class Poolctrl_Pbs2Api {
$person->setStreet(sprintf("%s", $personXML->person->street));
$person->setSuspend(sprintf("%s", $personXML->person->suspend));
$person->setTitle(sprintf("%s", $personXML->person->title));
- $personName = sprintf("%s", $login->personid);
+ $personName = sprintf("%s", $personXML->person->id);
$personSession->$personName = $person;
}
-
}
- public function login($email, $password, &$membershipSession) {
+ public function login($email, $password, &$membershipSession, &$error, &$personID, &$apikey) {
$loginquery = "email=" . $email . "&password=" . $password;
- $loginApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['login'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $loginquery);
- $loginXMLString = $loginApiResult['http-body'];
- if(strlen($loginXMLString) > 0) {
- $loginXML = new SimpleXMLElement($loginXMLString);
+ $loginXML = $this->runApi($this->pbs2host, $this->config['pbs2']['login'], $loginquery);
+ if(isset($loginXML)) {
$login = $loginXML->login;
$success = sprintf("%s", $login->success);
if ($success === "true") {
+ $personID = sprintf("%s", $login->personid);
$count = 0;
foreach($login->membershiplist->membership as $membershipXML)
{
@@ -217,6 +231,7 @@ class Poolctrl_Pbs2Api {
}
return true;
} else {
+ $error = sprintf("%s", $login->error);
return false;
}
} else {
@@ -229,9 +244,7 @@ class Poolctrl_Pbs2Api {
if(isset($configID)) {
$bootmenuquery .= "&configID=" . $configID;
}
- $bootmenuApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['addbootmenu'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $bootmenuquery);
- $bootmenuXMLString = $bootmenuApiResult['http-body'];
- $bootmenuXML = new SimpleXMLElement($bootmenuXMLString);
+ $bootmenuXML = $this->runApi($this->pbs2host, $this->config['pbs2']['addbootmenu'], $bootmenuquery);
$bootmenuID = sprintf("%s", $bootmenuXML->bootmenu->id);
return $bootmenuID;
}
@@ -241,20 +254,18 @@ class Poolctrl_Pbs2Api {
if(isset($configID)) {
$bootmenuquery .= "&configID=" . $configID;
}
- $bootmenuApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['changebootmenu'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $bootmenuquery);
- return $bootmenuApiResult;
+ $bootmenuXML = $this->runApi($this->pbs2host, $this->config['pbs2']['changebootmenu'], $bootmenuquery);
+ return $bootmenuXML;
}
public function deleteBootmenu($bootmenuID) {
- $bootmenuApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['deletebootmenu'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', "bootmenuid=" . $bootmenuID);
- return $bootmenuApiResult;
+ $bootmenuXML = $this->runApi($this->pbs2host, $this->config['pbs2']['deletebootmenu'], "bootmenuid=" . $bootmenuID);
+ return $bootmenuXML;
}
public function addFilter($eventTitle, $bootmenuID) {
$filterquery = "bootmenuID=" . $bootmenuID . "&title=Poolctrl-Filter for " . $event->getTitle() . "&description=This Filter was automatically created by the Poolctrl for Event " . $eventTitle . "&created= " . time() . "&priority=100";
- $filterApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['addfilter'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $filterquery);
- $filterXMLString = $filterApiResult['http-body'];
- $filterXML = new SimpleXMLElement($filterXMLString);
+ $filterXML = $this->runApi($this->pbs2host, $this->config['pbs2']['addfilter'], $filterquery);
$filterID = sprintf("%s", $filterXML->filter->id);
return $filterID;
}
@@ -264,26 +275,24 @@ class Poolctrl_Pbs2Api {
if(isset($bootmenuID)) {
"&bootmenuID=" . $bootmenuID;
}
- $filterApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['changefilter'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $filterQuerie);
- return $filterApiResult;
+ $filterXML = $this->runApi($this->pbs2host, $this->config['pbs2']['changefilter'], $filterQuerie);
+ return $filterXML;
}
public function deleteFilter($filterID) {
- $filterApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['deletefilter'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', "bootmenuid=" . $filterID);
- return $filterApiResult;
+ $filterXML = $this->runApi($this->pbs2host, $this->config['pbs2']['deletefilter'], "bootmenuid=" . $filterID);
+ return $filterXML;
}
public function addFilterentry($filterID, $filterType, $filterValue1, $filterValue2) {
- $filterentriesApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['addfilterentry'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $filterentriesquery);
- $filterentriesXMLString = $filterentriesApiResult['http-body'];
- $filterentriesXML = new SimpleXMLElement($filterentriesXMLString);
+ $filterentriesXML = $this->runApi($this->pbs2host, $this->config['pbs2']['addfilterentry'], $filterentriesquery);
$filterentriesID = sprintf("%s", $filterentriesXML->filterentry->id);
return $filterentriesID;
}
public function changeFilterentry($oldValue1, $oldValue2, $newValue1, $newValue2) {
$filterentriesQuerie = "filterid=" . $event->getPbs_filterID() . "&oldvalue1=" . $oldValue1 . "&oldvalue2=" . $oldValue2 . "&value1=" . $newValue1 . "&value2=" . $newValue2;
- $filterApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['changefilterentry'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $filterentriesQuerie);
- return $filterApiResult;
+ $filterentriesXML = $this->runApi($this->pbs2host, $this->config['pbs2']['changefilterentry'], $filterentriesQuerie);
+ return $filterentriesXML;
}
} \ No newline at end of file
diff --git a/public/media/js/calendar.js b/public/media/js/calendar.js
new file mode 100755
index 0000000..38b4bcb
--- /dev/null
+++ b/public/media/js/calendar.js
@@ -0,0 +1,863 @@
+$(document).ready(function() {iniCalendar();});
+
+/*
+ * calendar variables
+ */
+
+// eventSelect
+var eventColor = {ev:null, color:null};
+
+// keydown
+var selectedEvent = null;
+
+// dblclick
+var clickTmp = true;
+
+// poolSelectVal
+var poolIDtmp;
+
+// change border color of an event
+function eventSelected(event) {
+ if (eventColor.ev != null){
+ event.selected = false;
+ selectedEvent = null;
+ eventColor.ev.borderColor = eventColor.color;
+ }
+ event.selected = true;
+ selectedEvent = event;
+ eventColor.ev = event;
+ eventColor.color = event.borderColor;
+ event.borderColor = 'black';
+ $('#calendar').fullCalendar("rerenderEvents");
+ // show report button
+ if($.get("/event/checkright/rightShortcut/er")){
+ $('#eventReportButton').show();
+ } else {
+ $('#eventReportButton').hide();
+ }
+ // show edit button
+ if($.get("/event/checkright/rightShortcut/ee")) {
+ $('#editEvent').show();
+ } else {
+ $('#editEvent').hide();
+ }
+}
+
+// change view to addEvent
+ function addEvent() {
+ if($("#poolselectbox option:selected").val() == 'defaultPool' || $("#poolselectbox option:selected").val() == 'noPool') {
+ $("#noPoolSelectedDialog").dialog('open');
+ } else {
+ self.location="/event/add/";}
+ }
+
+ function setOpacity(type, value) {
+ var events = $('#calendar').fullCalendar( 'clientEvents' , function(event) {
+ if(event.category == type) {
+ event.opacity = value;
+ }
+ return false;
+ });
+ $('#calendar').fullCalendar( 'rerenderEvents' );
+ }
+
+ function setPoolIDtmp() {
+ poolIDtmp = $("#poolselectbox option:selected").val();
+ }
+
+// fetch all poolevents of the selected #poolselectbox value
+ function fetchPoolEvents() {
+ poolID = $("#poolselectbox option:selected").val();
+ $('#calendar').fullCalendar("removeEvents");
+ $('#calendar').fullCalendar("removeEventSource", "/event/eventlist/poolID/" + poolIDtmp);
+ $('#calendar').fullCalendar("addEventSource", "/event/eventlist/poolID/" + poolID);
+ }
+
+ $(window).load(function() {
+ var formularOverlappVar = getOverlappingVar();
+ if(formularOverlappVar == 1) {
+ $( "#formularOverlappingDialog" ).dialog('open');}
+ });
+
+/*
+ * KEYDOWN FUNCTION delete selected event by key del(8) OR entf(46)
+ */
+
+ $(document).keydown(function (e) {
+ // delete selected event by key del(8) OR entf(46)
+ if (e.keyCode == 8 || e.keyCode == 46 && selectedEvent.selected == true, $.get("/event/checkright/rightShortcut/ed")) {
+ // check if the event is an wdhEvent
+ if(selectedEvent.repeat == 0 || selectedEvent.repeat == 2) {
+ // dialog for deleting selected event
+ $(function() {
+ $( "#eventDeleteDialog" ).dialog({
+ autoOpen: false,
+ width: 600,
+ modal: true,
+ title: "Delete " + selectedEvent.title,
+ buttons: {
+ "Cancel": function() {
+ $(this).dialog("close");
+ },
+ "OK": function() {
+ $(this).dialog("close");
+ $.post("/event/delete/eventID/" + selectedEvent.id);
+ $('#calendar').fullCalendar( 'removeEvents', selectedEvent.id );
+ $('#calendar').fullCalendar( 'rerenderEvents' );
+ }
+ },
+ open: function () {
+ $(".ui-dialog-titlebar-close").hide();
+ }
+ });
+ });
+ $( "#eventDeleteDialog" ).dialog('open');
+
+ // dialog for deleting selected wdhEvent
+ } else if (selectedEvent.repeat == 1) {
+ $(function() {
+ $( "#eventDeleteWdhDialog" ).dialog({
+ autoOpen: false,
+ width: 600,
+ modal: true,
+ title: 'Delete ' + selectedEvent.title,
+ buttons: {
+ "Cancel": function() {
+ $(this).dialog("close");
+ },
+ "Delete just this Event": function() {
+ $(this).dialog("close");
+ $.post("/event/delete/eventID/" + selectedEvent.id);
+ $('#calendar').fullCalendar( 'removeEvents', selectedEvent.id );
+ $('#calendar').fullCalendar( 'rerenderEvents' );
+ },
+ "Delete all Events": function() {
+ $(this).dialog("close");
+ self.location="/event/deleteall/eventTitle/" + selectedEvent.title;
+ }
+ },
+ open: function () {
+ $(".ui-dialog-titlebar-close").hide();
+ }
+ });
+ });
+ $( "#eventDeleteWdhDialog" ).dialog('open');}
+ }
+ });
+
+/*
+ * initialize fullCalendar and all calendar-functions
+ */
+
+ function iniCalendar() {
+
+ var calendar = $('#calendar').fullCalendar({
+
+ // fullCalendar header
+ header: {
+ default: 'week',
+ left: 'title',
+ center: 'today prev,next',
+ right: 'agendaWeek,agendaDay'
+ },
+
+ // set some default options
+ editable: true,
+ allDaySlot: false,
+ selectable: true,
+ selectHelper: true,
+ currentTimeIndicator: true,
+ allDay : false,
+ defaultView: 'agendaWeek',
+ slotMinutes: 15,
+ defaultEventMinutes: 10,
+
+ loading: function(bool) { if (bool) $('#progress').show(); else $('#progress').hide(); },
+
+ eventClick: function( event, jsEvent, view ) {
+
+ if(clickTmp) {
+ clickTmp = false;
+ setTimeout(function() {clickTmp = true;} , 300);
+ $(this).qtip("destroy");
+ eventSelected(event);
+ } else if ($.get("/event/checkright/rightShortcut/ed")) {
+ // this is the dblclick
+ $(this).qtip("destroy");
+ if(event.repeat == 1) {
+ $(function() {
+ $( "#eventEditWdhDialog" ).dialog({
+ autoOpen: false,
+ width: 600,
+ modal: true,
+ title: 'Edit ' + event.title,
+ buttons: {
+ "Cancel": function() {
+ $(this).dialog("close");
+ },
+ "Edit just this Event": function() {
+ $(this).dialog("close");
+ self.location = "/event/edit/eventID/" + event.id + "/wdh/" + 0 + "/poolID/" + $("#poolselectbox option:selected").val();
+ },
+ "Edit all Events": function() {
+ $(this).dialog("close");
+ self.location = "/event/edit/eventID/" + event.id + "/wdh/" + 1 + "/poolID/" + $("#poolselectbox option:selected").val();
+ }
+ },
+ open: function () {
+ $(".ui-dialog-titlebar-close").hide();
+ }
+ });
+ });
+ $( "#eventEditWdhDialog" ).dialog('open');
+ } else self.location = "/event/edit/eventID/" + event.id + "/wdh/" + 0 + "/poolID/" + $("#poolselectbox option:selected").val();
+ } else if (!$.get("/event/checkright/rightShortcut/ee")) {
+ $( "#errorRightsDialog" ).dialog('open');
+ }
+ },
+
+ select: function( startDate, endDate, allDay, jsEvent, view ) {
+
+ var currentDate = new Date();
+
+ // initialize eventNotDroppableDialog Dialog
+ $(function() {
+ $( "#eventNotDroppableDialog" ).dialog({
+ autoOpen: false,
+ width: 820,
+ modal: true,
+ title: 'Adding of an Event at this position is not possible!',
+ buttons: {
+ "OK": function() {
+ $(this).dialog("close");
+ $('#calendar').fullCalendar( 'unselect' );
+ }
+ },
+ open: function () {
+ $("#accordion").accordion({clearStyle: true, collapsible: true, active: false, autoHeight: true });
+ $(".ui-dialog-titlebar-close").hide();
+ $(this).parents(".ui-dialog:first").find(".ui-dialog-titlebar").addClass("ui-state-error");
+ }
+ });
+ });
+ $.get("/event/checkright/rightShortcut/ec", function(right){
+ $.get("/event/checkoverlapselect/poolID/" + $("#poolselectbox option:selected").val() + "/startDate/" + startDate + "/endDate/" + endDate, function(data){
+
+ // get conflicts-HTML Element
+ var cell = document.getElementById("conflicts");
+ // get conflicts
+ var returndata = jQuery.parseJSON(data);
+
+
+ if($("#poolselectbox option:selected").val() == 'defaultPool' || $("#poolselectbox option:selected").val() == 'noPool') {
+ $( "#noPoolSelectedDialog" ).dialog('open');
+ } else if (right) {
+ $(function() {
+ $( "#eventAddDialog" ).dialog({
+ autoOpen: false,
+ width: 600,
+ modal: true,
+ title: "Add Event from " + startDate + " to " + endDate,
+ buttons: {
+ "Cancel": function() {
+ $(this).dialog("close");
+ $('#calendar').fullCalendar( 'unselect' );
+ },
+ "OK": function() {
+ if(returndata == -1) {
+ if(startDate > currentDate) {
+ $(this).dialog("close");
+ self.location="/event/add/evstart/" + startDate + "/evend/" + endDate + "/poolID/" + $("#poolselectbox option:selected").val();
+ } else {
+ $(this).dialog("close");
+ $('#calendar').fullCalendar( 'unselect' );
+ $( "#errorTimeDialog" ).dialog('open');
+ }
+ } else {
+ $(this).dialog("close");
+ cell.removeChild(cell.firstChild);
+ $("#conflicts").append(returndata);
+ $( "#eventNotDroppableDialog" ).dialog('open');
+ }
+ }
+ },
+ open: function () {
+ $(".ui-dialog-titlebar-close").hide();
+ }
+ });
+ });
+ $( "#eventAddDialog" ).dialog('open');
+ } else if (!right) {
+ $('#calendar').fullCalendar( 'unselect' );
+ $( "#errorRightsDialog" ).dialog('open');
+ } else
+ $('#calendar').fullCalendar( 'unselect' );
+ });
+ });
+ },
+
+ eventResize: function( event, dayDelta, minuteDelta, revertFunc ) {
+
+ $.get("/event/checkoverlapresize/eventID/" + event.id + "/minuteDelta/" + minuteDelta + "/dayDelta/" + dayDelta + "/poolID/" + $("#poolselectbox option:selected").val(), function(data){
+
+ // get conflicts-HTML Element
+ var cell = document.getElementById("conflicts");
+ var cfcell = document.getElementById("cfevents");
+ // get conflicts
+ var returndata = jQuery.parseJSON(data);
+ // get conflict free events
+ var cfevents = returndata.cfevents;
+ var cfeventsString = $.toJSON(cfevents);
+
+
+ // initialize eventNotDroppableDialog Dialog
+ $(function() {
+ $( "#eventNotDroppableDialog" ).dialog({
+ autoOpen: false,
+ width: 820,
+ modal: true,
+ title: 'Resizing of ' + event.title + ' is not possible!',
+ buttons: {
+ "Resize Conflict-Free Events": function() {
+ $(this).dialog("close");
+ self.location="/event/eventresizecf/evmindelta/" + minuteDelta + "/evdaydelta/" + dayDelta + "/poolID/" + $("#poolselectbox option:selected").val() + "/cfevents/" + cfeventsString;
+ },
+ "OK": function() {
+ $(this).dialog("close");
+ revertFunc();
+ }
+ },
+ open: function () {
+ $("#accordion").accordion({clearStyle: true, collapsible: true, active: false, autoHeight: true });
+ $(".ui-dialog-titlebar-close").hide();
+ $(this).parents(".ui-dialog:first").find(".ui-dialog-titlebar").addClass("ui-state-error");
+ }
+ });
+ });
+
+ // initialize eventNotDroppable Dialog2
+ $(function() {
+ $( "#eventNotDroppableDialog2" ).dialog({
+ autoOpen: false,
+ width: 820,
+ modal: true,
+ title: 'Dropping of ' + event.title + ' is not possible!',
+ buttons: {
+ "OK": function() {
+ $(this).dialog("close");
+ revertFunc();
+ }
+ },
+ open: function () {
+ $(".ui-dialog-titlebar-close").hide();
+ $(this).parents(".ui-dialog:first").find(".ui-dialog-titlebar").addClass("ui-state-error");
+ }
+ });
+ });
+
+ if($.get("/event/checkright/rightShortcut/ee")) {
+ if(event.repeat == 0 || event.repeat == 2) {
+ $(function() {
+ $( "#defaultDialog" ).dialog({
+ autoOpen: false,
+ width: 600,
+ modal: true,
+ title: "The End Date of " + event.title + " is now " + event.end,
+ buttons: {
+ "Cancel": function() {
+ $(this).dialog("close");
+ revertFunc();
+ },
+ "OK": function() {
+ if(returndata.withoutrepeat == -1) {
+ $(this).dialog("close");
+ $.post("/event/eventresize/evid/" + event.id + "/evend/" + event.end + "/poolID/" + $("#poolselectbox option:selected").val());
+ } else {
+ $(this).dialog("close");
+ $( "#eventNotDroppableDialog2" ).dialog('open');
+ }
+ }
+ },
+ open: function () {
+ $(".ui-dialog-titlebar-close").hide();
+ }
+ });
+ });
+ $( "#defaultDialog" ).dialog('open');
+ } else if (event.repeat == 1) {
+ $(function() {
+ $( "#eventResizeWdhDialog" ).dialog({
+ autoOpen: false,
+ width: 600,
+ modal: true,
+ title: 'Resize ' + event.title + ' (' + minuteDelta + ' minutes)',
+ buttons: {
+ "Cancel": function() {
+ $(this).dialog("close");
+ revertFunc();
+ },
+ "Resize just this Event": function() {
+ if(returndata.withoutrepeat == -1) {
+ $(this).dialog("close");
+ $.post("/event/eventresize/evid/" + event.id + "/evend/" + event.end + "/poolID/" + $("#poolselectbox option:selected").val());
+ event.repeat = 2;
+ } else {
+ $(this).dialog("close");
+ $( "#eventNotDroppableDialog2" ).dialog('open');
+ }
+ },
+ "Resize all Events": function() {
+ if(returndata.withrepeat == -1) {
+ $(this).dialog("close");
+ self.location="/event/eventresizeall/eventTitle/" + event.title + "/evmindelta/" + minuteDelta + "/poolID/" + $("#poolselectbox option:selected").val();
+ } else {
+ $(this).dialog("close");
+ cell.removeChild(cell.firstChild);
+ cfcell.removeChild(cfcell.firstChild);
+ $("#cfevents").append(returndata.cfplotwithrepeat);
+ $("#conflicts").append(returndata.withrepeat);
+ $( "#eventNotDroppableDialog" ).dialog('open');
+ }
+ }
+ },
+ open: function () {
+ $(".ui-dialog-titlebar-close").hide();
+ }
+ });
+ });
+ $( "#eventResizeWdhDialog" ).dialog('open');
+ }
+ }
+ else {
+ revertFunc();
+ $( "#errorRightsDialog" ).dialog('open');
+ }
+ });
+ $(this).qtip("destroy");
+ },
+
+ eventDrop: function( event, dayDelta, minuteDelta, allDay, revertFunc ) {
+
+ var currentDate = new Date();
+
+ $.get("/event/checkoverlapdrop/poolID/" + $("#poolselectbox option:selected").val() + "/eventID/" + event.id + "/date/" + event.start, function(data){
+
+ // get conflicts-HTML Element
+ var cell = document.getElementById("conflicts");
+ var cfcell = document.getElementById("cfevents");
+ // get conflicts
+ var returndata = jQuery.parseJSON(data);
+ // get past
+ var past = returndata.past;
+ // get conflict free events with repeat
+ var cfevents = returndata.cfevents;
+ var cfeventsString = $.toJSON(cfevents);
+
+ // initialize eventNotDroppable Dialog
+ $(function() {
+ $( "#eventNotDroppableDialog" ).dialog({
+ autoOpen: false,
+ width: 820,
+ modal: true,
+ title: 'Dropping of ' + event.title + ' is not possible!',
+ buttons: {
+ "Drop Conflict-Free Events": function() {
+ $(this).dialog("close");
+ self.location="/event/eventmovecf/evmindelta/" + minuteDelta + "/evdaydelta/" + dayDelta + "/poolID/" + $("#poolselectbox option:selected").val() + "/cfevents/" + cfeventsString;
+ },
+ "OK": function() {
+ $(this).dialog("close");
+ revertFunc();
+ }
+ },
+ open: function () {
+ $("#accordion").accordion({clearStyle: true, collapsible: true, active: false, autoHeight: true });
+ $(".ui-dialog-titlebar-close").hide();
+ $(this).parents(".ui-dialog:first").find(".ui-dialog-titlebar").addClass("ui-state-error");
+ }
+ });
+ });
+
+ // initialize eventNotDroppable Dialog2
+ $(function() {
+ $( "#eventNotDroppableDialog2" ).dialog({
+ autoOpen: false,
+ width: 820,
+ modal: true,
+ title: 'Dropping of ' + event.title + ' is not possible!',
+ buttons: {
+ "OK": function() {
+ $(this).dialog("close");
+ revertFunc();
+ }
+ },
+ open: function () {
+ $(".ui-dialog-titlebar-close").hide();
+ $(this).parents(".ui-dialog:first").find(".ui-dialog-titlebar").addClass("ui-state-error");
+ }
+ });
+ });
+
+ if((event.repeat == 0 || event.repeat == 2) && $.get("/event/checkright/rightShortcut/ee")) {
+ $(function() {
+ $( "#defaultDialog" ).dialog({
+ autoOpen: false,
+ width: 600,
+ modal: true,
+ title: event.title + " was moved to " + event.start,
+ buttons: {
+ "Cancel": function() {
+ $(this).dialog("close");
+ revertFunc();
+ },
+ "OK": function() {
+ if(returndata.withoutrepeat == -1) {
+ if(event.start > currentDate) {
+ $(this).dialog("close");
+ $.post("/event/eventmove/evid/" + event.id + "/evstart/" + event.start + "/evend/" + event.end);
+ } else {
+ $(this).dialog("close");
+ $( "#errorTimeDialog" ).dialog('open');
+ revertFunc();
+ }
+ } else {
+ $(this).dialog("close");
+ $( "#eventNotDroppableDialog2" ).dialog('open');
+ }
+ }
+ },
+ open: function () {
+ $(".ui-dialog-titlebar-close").hide();
+ }
+ });
+ });
+ $( "#defaultDialog" ).dialog('open');
+ } else if (event.repeat == 1 && $.get("/event/checkright/rightShortcut/ee")) {
+ $(function() {
+ $( "#eventMoveWdhDialog" ).dialog({
+ autoOpen: false,
+ width: 600,
+ modal: true,
+ title: 'Move ' + event.title,
+ buttons: {
+ "Cancel": function() {
+ $(this).dialog("close");
+ revertFunc();
+ },
+ "Move just this Event": function() {
+ if(returndata.withoutrepeat == -1) {
+ if(event.start > currentDate) {
+ $(this).dialog("close");
+ $.post("/event/eventmove/evid/" + event.id + "/evstart/" + event.start + "/evend/" + event.end);
+ } else {
+ $(this).dialog("close");
+ $( "#errorTimeDialog" ).dialog('open');
+ revertFunc();
+ }
+ event.repeat = 2;
+ } else {
+ $(this).dialog("close");
+ $( "#eventNotDroppableDialog2" ).dialog('open');
+ }
+ },
+ "Move all Events": function() {
+ if(returndata.withrepeat == -1) {
+ if(event.start > currentDate && !past) {
+ $(this).dialog("close");
+ self.location="/event/eventmoveall/eventTitle/" + event.title + "/evmindelta/" + minuteDelta + "/evdaydelta/" + dayDelta + "/poolID/" + $("#poolselectbox option:selected").val();
+ } else {
+ $(this).dialog("close");
+ $( "#errorTimeDialog" ).dialog('open');
+ revertFunc();
+ }
+ } else {
+ $(this).dialog("close");
+ cell.removeChild(cell.firstChild);
+ cfcell.removeChild(cfcell.firstChild);
+ $("#cfevents").append(returndata.cfplotwithrepeat);
+ $("#conflicts").append(returndata.withrepeat);
+ $( "#eventNotDroppableDialog" ).dialog('open');
+ }
+ }
+ },
+ open: function () {
+ $(".ui-dialog-titlebar-close").hide();
+ }
+ });
+ });
+ $( "#eventMoveWdhDialog" ).dialog('open');
+ } else {
+ revertFunc();
+ $(this).qtip("destroy");
+ }});
+ $(this).qtip("destroy");
+ },
+
+ eventDragStart: function( event, jsEvent, ui, view ) {
+ if(!$.get("/event/checkright/rightShortcut/ee")) {
+ $( "#errorRightsDialog" ).dialog('open');
+ }
+ },
+
+ eventRender: function(event, element, view) {
+
+ var eventTmp = element.attr("id", "evID_" + event.id);
+
+ // add running icons and handle editing of events
+ if(event.running == 0) {
+ // event will take place soon
+ $(element).find('.fc-event-time').addClass("fc-event-time-0");
+ } else if(event.running == 1) {
+ // event is running
+ $(element).find('.fc-event-time').addClass("fc-event-time-1");
+ event.editable = false;
+ element.resizable("destroy"); // jqeury resizing
+ element.removeClass('fc-event-vert'); // css class
+ } else if(event.running == 2) {
+ // event successfully
+ $(element).find('.fc-event-time').addClass("fc-event-time-2");
+ event.editable = false;
+ element.resizable("destroy"); // jqeury resizing
+ element.removeClass('fc-event-vert'); // css class
+ } else if(event.running == 3) {
+ // event failed
+ $(element).find('.fc-event-time').addClass("fc-event-time-3");
+ event.editable = false;
+ element.resizable("destroy"); // jqeury resizing
+ element.removeClass('fc-event-vert'); // css class
+ }
+
+ // disable resizing if the event is a boot- or
+ // shutdown-event
+ if(event.category == 'Boot' || event.category == 'Shutdown') {
+ element.resizable(false); // calendar resizing
+ element.resizable("destroy"); // jqeury resizing
+ element.removeClass('fc-event-vert'); // css class
+ }
+
+ element.qtip({
+ content:
+ 'Title: ' + event.title + '<br/>' +
+ 'Type: ' + event.category + '<br/>' +
+ 'Note: ' + event.note + '<br/>' +
+ 'Participants: ' + event.participants,
+ show: 'mouseover',
+ hide: 'mouseout'
+ });
+
+ if (view.name == 'agendaDay') {
+ if(event.participants) {
+ element.find('.fc-event-title').append(
+ "<br/> Type: " + event.category +
+ "<br/> Note: " + event.note +
+ "<br/> Participants: " + event.participants +
+ "<br/> Repeat: " + event.repeat);
+ } else {
+ element.find('.fc-event-title').append(
+ "<br/> Type: " + event.category +
+ "<br/> Note: " + event.note +
+ "<br/> Participants: ALL" +
+ "<br/> Repeat: " + event.repeat);
+ }
+ }
+ }
+ });
+
+
+ /*
+ * Button definitions
+ */
+
+ // EventType Buttons
+ $('.fc-header-center').append('<span id="lecture" class="fc-button fc-state-default fc-corner-right fc-state-active"><span class="fc-button-inner"><span class="fc-button-content">Lecture</span><span class="fc-button-effect"><span></span></span></span></span>');
+ $('.fc-header-center').append('<span id="maintenance" class="fc-button fc-state-default fc-corner-right fc-state-active"><span class="fc-button-inner"><span class="fc-button-content">Maintenance</span><span class="fc-button-effect"><span></span></span></span></span>');
+ $('.fc-header-center').append('<span id="boot" class="fc-button fc-state-default fc-corner-right fc-state-active"><span class="fc-button-inner"><span class="fc-button-content">Boot</span><span class="fc-button-effect"><span></span></span></span></span>');
+ $('.fc-header-center').append('<span id="shutdown" class="fc-button fc-state-default fc-corner-right fc-state-active"><span class="fc-button-inner"><span class="fc-button-content">Shutdown</span><span class="fc-button-effect"><span></span></span></span></span>');
+
+ // PoolSelectBox
+ $('.fc-header-left').append('<form name="PoolSelectForm"><select id="poolselectbox" name="PoolSelectbox" onclick="setPoolIDtmp()" onChange="fetchPoolEvents();"><option value="defaultPool" >Please choose a Pool</option></select></form>');
+
+ // Add Button
+ $('.fc-header-right').append('<span id="addEvent" class="fc-button fc-state-default fc-state-hover"><span class="fc-button-inner"><span class="fc-button-content">+</span><span class="fc-button-effect"><span></span></span></span></span>');
+
+ // Edit Button
+ $('.fc-header-right').append('<span id="editEvent" style=display:none class="fc-button fc-state-default fc-state-hover "><span class="fc-button-inner"><span class="fc-button-content"><IMG src="/media/img/edit.png"/></span><span class="fc-button-effect"><span></span></span></span>');
+
+ // Report Button
+ $('.fc-header-center').append('<span id="eventReportButton" style=display:none class="fc-button fc-state-default fc-state-hover"><span class="fc-button-inner"><span class="fc-button-content">Report</span><span class="fc-button-effect"><span></span></span></span></span>');
+
+ // Change Button-Style
+ $("#lecture").click(function(){
+ if($("#poolselectbox option:selected").val() == 'defaultPool' || $("#poolselectbox option:selected").val() == 'noPool') {
+ $( "#noPoolSelectedDialog" ).dialog('open');
+ } else {
+ if($(this).hasClass("fc-state-active")) {
+ $(this).removeClass("fc-state-active");
+ setOpacity('Lecture', '.5');
+ } else {$(this).addClass("fc-state-active"); setOpacity('Lecture', '1');}
+ }
+ });
+ $("#maintenance").click(function(){
+ if($("#poolselectbox option:selected").val() == 'defaultPool' || $("#poolselectbox option:selected").val() == 'noPool') {
+ $( "#noPoolSelectedDialog" ).dialog('open');
+ } else {
+ if($(this).hasClass("fc-state-active")) {
+ $(this).removeClass("fc-state-active");
+ setOpacity('Maintenance', '.5');
+ } else {$(this).addClass("fc-state-active"); setOpacity('Maintenance', '1');}
+ }
+ });
+ $("#boot").click(function(){
+ if($("#poolselectbox option:selected").val() == 'defaultPool' || $("#poolselectbox option:selected").val() == 'noPool') {
+ $( "#noPoolSelectedDialog" ).dialog('open');
+ } else {
+ if($(this).hasClass("fc-state-active")) {
+ $(this).removeClass("fc-state-active");
+ setOpacity('Boot', '.5');
+ } else {$(this).addClass("fc-state-active"); setOpacity('Boot', '1');}
+ }
+ });
+ $("#shutdown").click(function(){
+ if($("#poolselectbox option:selected").val() == 'defaultPool' || $("#poolselectbox option:selected").val() == 'noPool') {
+ $( "#noPoolSelectedDialog" ).dialog('open');
+ } else {
+ if($(this).hasClass("fc-state-active")) {
+ $(this).removeClass("fc-state-active");
+ setOpacity('Shutdown', '.5');
+ } else {$(this).addClass("fc-state-active"); setOpacity('Shutdown', '1');}
+ }
+ });
+
+ $("#addEvent").click(function(){
+ addEvent();
+ });
+
+ $("#editEvent").click(function(){
+ if(selectedEvent != null) {
+ if(selectedEvent.repeat == 1) {
+ $(function() {
+ $( "#eventEditWdhDialog" ).dialog({
+ autoOpen: false,
+ width: 600,
+ modal: true,
+ title: 'Edit ' + selectedEvent.title,
+ buttons: {
+ "Cancel": function() {
+ $(this).dialog("close");
+ },
+ "Edit just this Event": function() {
+ $(this).dialog("close");
+ self.location = "/event/edit/eventID/" + selectedEvent.id + "/wdh/" + 0 + "/poolID/" + $("#poolselectbox option:selected").val();
+ },
+ "Edit all Events": function() {
+ $(this).dialog("close");
+ self.location = "/event/edit/eventID/" + selectedEvent.id + "/wdh/" + 1 + "/poolID/" + $("#poolselectbox option:selected").val();
+ }
+ },
+ open: function () {
+ $(".ui-dialog-titlebar-close").hide();
+ }
+ });
+ });
+ $( "#eventEditWdhDialog" ).dialog('open');
+ } else if ( selectedEvent.repeat == 0 || selectedEvent.repeat == 2 ) self.location = "/event/edit/eventID/" + selectedEvent.id + "/wdh/" + 0 + "/poolID/" + $("#poolselectbox option:selected").val();
+ else if (!$.get("/event/checkright/rightShortcut/ee")) {
+ $( "#errorRightsDialog" ).dialog('open');
+ }
+ }
+ });
+
+ $("#eventReportButton").click(function(){
+ if(selectedEvent != null) {
+ self.location="/event/showreports/eventID/" + selectedEvent.id;
+ }
+ });
+
+ // fetch poollist from pbs database
+ $.get("/event/getpoollist/", function(getpoollistresult){
+ $("#poolselectbox").append(getpoollistresult);
+ poolIDtmp = $("#poolselectbox option:selected").val();
+ fetchPoolEvents();
+ });
+
+}
+
+/*
+ * Initialisation of Dialogs
+ */
+
+// errorRights Dialog
+ $(function() {
+ $( "#errorRightsDialog" ).dialog({
+ autoOpen: false,
+ width: 600,
+ modal: true,
+ title: "ERROR",
+ buttons: {
+ "OK": function() {
+ $(this).dialog("close");
+ }
+ },
+ open: function () {
+ $(".ui-dialog-titlebar-close").hide();
+ $(this).parents(".ui-dialog:first").find(".ui-dialog-titlebar").addClass("ui-state-error");
+ }
+ });
+ });
+
+// noPoolSelected Dialog
+ $(function() {
+ $( "#noPoolSelectedDialog" ).dialog({
+ autoOpen: false,
+ width: 600,
+ modal: true,
+ title: "ERROR",
+ buttons: {
+ "OK": function() {
+ $(this).dialog("close");
+ }
+ },
+ open: function () {
+ $(".ui-dialog-titlebar-close").hide();
+ $(this).parents(".ui-dialog:first").find(".ui-dialog-titlebar").addClass("ui-state-error");
+ }
+ });
+ });
+
+// errorTime Dialog
+ $(function() {
+ $( "#errorTimeDialog" ).dialog({
+ autoOpen: false,
+ width: 600,
+ modal: true,
+ title: "ERROR",
+ buttons: {
+ "OK": function() {
+ $(this).dialog("close");
+ }
+ },
+ open: function () {
+ $(".ui-dialog-titlebar-close").hide();
+ $(this).parents(".ui-dialog:first").find(".ui-dialog-titlebar").addClass("ui-state-error");
+ }
+ });
+ });
+
+// formularOverlappingDialog Dialog
+ $(function() {
+ $( "#formularOverlappingDialog" ).dialog({
+ autoOpen: false,
+ width: 600,
+ modal: true,
+ title: "ERROR",
+ buttons: {
+ "OK": function() {
+ $(this).dialog("close");
+ }
+ },
+ open: function () {
+ $(".ui-dialog-titlebar-close").hide();
+ $(this).parents(".ui-dialog:first").find(".ui-dialog-titlebar").addClass("ui-state-error");
+ }
+ });
+ }); \ No newline at end of file