summaryrefslogtreecommitdiffstats
path: root/application
diff options
context:
space:
mode:
authorBjörn Geiger2011-09-28 17:46:30 +0200
committerBjörn Geiger2011-09-28 17:46:30 +0200
commitf456c9d319af638ed01a429e9b0b3f7b2bde5c40 (patch)
treecba9088703b16537933bdba27a3aac13129821ce /application
parentverschiedene Korrekturen (diff)
parentbugfix (diff)
downloadpoolctrl-f456c9d319af638ed01a429e9b0b3f7b2bde5c40.tar.gz
poolctrl-f456c9d319af638ed01a429e9b0b3f7b2bde5c40.tar.xz
poolctrl-f456c9d319af638ed01a429e9b0b3f7b2bde5c40.zip
Merge branch 'master' of git.openslx.org:lsfks/projekte/poolctrl
Diffstat (limited to 'application')
-rwxr-xr-xapplication/controllers/EventController.php92
-rwxr-xr-xapplication/views/scripts/event/index.phtml158
2 files changed, 225 insertions, 25 deletions
diff --git a/application/controllers/EventController.php b/application/controllers/EventController.php
index ab24d63..6e67617 100755
--- a/application/controllers/EventController.php
+++ b/application/controllers/EventController.php
@@ -638,6 +638,50 @@ class EventController extends Zend_Controller_Action
$this->eventMapper->save($event); //save the event with the new data
}
}
+
+ public function eventmoveallAction() {
+ if(!$this->acl->checkRight('eo')) {
+ $this->_redirect('/');
+ }
+ $this->_helper->layout->disableLayout();
+ $this->_helper->viewRenderer->setNoRender();
+
+ $event = new Application_Model_Event();
+
+ $eventTitle = $this->getRequest()->getParam('eventTitle');
+ $evmindelta = $this->getRequest()->getParam('evmindelta');
+ $evdaydelta = $this->getRequest()->getParam('evdaydelta');
+ $poolID = $this->getRequest()->getParam('poolID');
+
+ if ($eventTitle!=null) {
+
+ $events = $this->eventMapper->findBy(array("title" => $eventTitle));
+ if ($events[0]->getPbs_membershipID() != $this->userIDsNamespace['membershipID']) {
+ if (!$this->acl->checkRight('edo')) {
+ $this->_redirect('/');
+ }
+ }
+ try {
+ foreach($events as $event) {
+ //1min = 60sec, 1d = 86400sec
+ $eventStart = date('Y-m-d H:i:s', intval(strtotime($event->getStart())) + intval($evmindelta*60) + intval($evdaydelta*86400));
+ $eventEnd = date('Y-m-d H:i:s', intval(strtotime($event->getEnd())) + intval($evmindelta*60) + intval($evdaydelta*86400));
+ $event->setStart($eventStart);
+ $event->setEnd($eventEnd);
+ $event->setPbs_poolID($poolID);
+ $this->eventMapper->save($event); //save the event with the new data
+ }
+ } catch (Zend_Exception $e) {
+ echo "Caught exception: " . get_class($e) . "<br/>";
+ echo "Message: " . $e->getMessage() . "<br/>";
+ return;
+ }
+ $this->_redirect('/event/');
+ } else {
+ $this->_redirect('/event/');
+ return;
+ }
+ }
public function eventresizeAction() {
if(!$this->acl->checkRight('eo')) {
@@ -651,20 +695,58 @@ class EventController extends Zend_Controller_Action
$evid = $this->getRequest()->getParam('evid');
$evend = $this->getRequest()->getParam('evend');
$poolID = $this->getRequest()->getParam('poolID');
- if($poolID != null); {
-
- }
- var_dump(date('Y-m-d H:i:s', strtotime(substr($evend, 0, 24))));
+ //var_dump(date('Y-m-d H:i:s', strtotime(substr($evend, 0, 24))));
if ($evid!=null) {
$this->eventMapper->find($evid,$event); //locate the event in the DB
$event->setEnd(date('Y-m-d H:i:s', strtotime(substr($evend, 0, 24))));
- $event->setPoolID($poolID);
+ $event->setPbs_poolID($poolID);
$this->eventMapper->save($event); //save the event with the new data
}
}
+
+ public function eventresizeallAction() {
+ if(!$this->acl->checkRight('eo')) {
+ $this->_redirect('/');
+ }
+ $this->_helper->layout->disableLayout();
+ $this->_helper->viewRenderer->setNoRender();
+
+ $event = new Application_Model_Event();
+
+ $eventTitle = $this->getRequest()->getParam('eventTitle');
+ $evmindelta = $this->getRequest()->getParam('evmindelta');
+ $poolID = $this->getRequest()->getParam('poolID');
+
+ if ($eventTitle!=null) {
+
+ $events = $this->eventMapper->findBy(array("title" => $eventTitle));
+ if ($events[0]->getPbs_membershipID() != $this->userIDsNamespace['membershipID']) {
+ if (!$this->acl->checkRight('edo')) {
+ $this->_redirect('/');
+ }
+ }
+ try {
+ foreach($events as $event) {
+ $eventEnd = date('Y-m-d H:i:s', intval(strtotime($event->getEnd())) + intval($evmindelta*60));
+ $event->setEnd($eventEnd);
+ $event->setPbs_poolID($poolID);
+ $this->eventMapper->save($event); //save the event with the new data
+ }
+ } catch (Zend_Exception $e) {
+ echo "Caught exception: " . get_class($e) . "<br/>";
+ echo "Message: " . $e->getMessage() . "<br/>";
+ return;
+ }
+ $this->_redirect('/event/');
+ } else {
+ $this->_redirect('/event/');
+ return;
+ }
+ }
+
public function eventlistAction() {
if(!$this->acl->checkRight('eo')) {
diff --git a/application/views/scripts/event/index.phtml b/application/views/scripts/event/index.phtml
index 3c9fc2b..2861059 100755
--- a/application/views/scripts/event/index.phtml
+++ b/application/views/scripts/event/index.phtml
@@ -21,6 +21,7 @@ var selectedDate = null;
// dblclick
var clickTmp = true;
+var evClick = false;
// overlapping
var isDroppable = true;
@@ -30,6 +31,9 @@ var overlappEnd;
// poolSelectVal
var poolIDtmp;
+// dayClick
+var dayClick = false;
+
// change border color of an event
function eventSelected(event) {
@@ -200,13 +204,52 @@ var poolIDtmp;
slotMinutes: 30,
defaultEventMinutes: 20,
- dayClick: function( date, allDay, jsEvent, view ) {
+ /*dayClick: function( date, allDay, jsEvent, view ) {
+
selectedDate = date;
- },
+ dayClick = true;
+ $('#calendar').fullCalendar( 'unselect' );
+
+ if($("#poolselectbox option:selected").val() == 'default') {
+ $( "#noPoolSelectedDialog" ).dialog('open');
+ } else if ($.get("/event/checkright/rightShortcut/ec") && evClick == false) {
+ $(function() {
+ $( "#eventAddDialog" ).dialog({
+ autoOpen: false,
+ width: 600,
+ modal: true,
+ title: "Add Event from " + date,
+ buttons: {
+ "Cancel": function() {
+ dayClick = false;
+ $(this).dialog("close");
+ $('#calendar').fullCalendar( 'unselect' );
+ },
+ "OK": function() {
+ $(this).dialog("close");
+ self.location="/event/add/evstart/" + date + "/poolID/" + $("#poolselectbox option:selected").val();
+ }
+ },
+ open: function () {
+ $(".ui-dialog-titlebar-close").hide();
+ //$(this).parents(".ui-dialog:first").find(".ui-dialog-titlebar").addClass("ui-state-error");
+ }
+ });
+ });
+ $( "#eventAddDialog" ).dialog('open');
+ } else if (evClick == false) {
+ dayClick = false;
+ $('#calendar').fullCalendar( 'unselect' );
+ $( "#errorRightsDialog" ).dialog('open');
+ }
+ else $('#calendar').fullCalendar( 'unselect' );
+
+ //self.location="/event/add/evstart/" + date + "/poolID/" + $("#poolselectbox option:selected").val();
+ },*/
eventMouseover: function( event, jsEvent, view ) {
- overlappStart = event.start;
- overlppEnd = event.end;
+ //overlappStart = event.start;
+ //overlppEnd = event.end;
},
eventMouseout: function( event, jsEvent, view ) {
@@ -214,19 +257,49 @@ var poolIDtmp;
eventClick: function( event, jsEvent, view ) {
+ $('#calendar').fullCalendar( 'unselect' );
+ evClick = true;
+
if(clickTmp) {
clickTmp = false;
setTimeout(function() {clickTmp = true;} , 300);
+ setTimeout(function() {evClick = false;} , 300);
$(this).qtip("destroy");
eventSelected(event);
- } else {
- // this is the dblclick
- $(this).qtip("destroy");
- if(event.immediate == 0 && $.get("/event/checkright/rightShortcut/er")) {
- self.location = "/event/edit/eventID/" + event.id + "/poolID/" + $("#poolselectbox option:selected").val();
- } else {
- $( "#errorRightsDialog" ).dialog('open');
- }
+ // non immediate event case
+ } else if (event.immediate == 0 && $.get("/event/checkright/rightShortcut/er")) {
+ // 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 + "/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();
+ //$(this).parents(".ui-dialog:first").find(".ui-dialog-titlebar").addClass("ui-state-error");
+ }
+ });
+ });
+ $( "#eventEditWdhDialog" ).dialog('open');
+ } else self.location = "/event/edit/eventID/" + event.id + "/poolID/" + $("#poolselectbox option:selected").val();
+ } else if (!$.get("/event/checkright/rightShortcut/er")) {
+ $( "#errorRightsDialog" ).dialog('open');
}
},
@@ -234,7 +307,7 @@ var poolIDtmp;
if($("#poolselectbox option:selected").val() == 'default') {
$( "#noPoolSelectedDialog" ).dialog('open');
- } else if ($.get("/event/checkright/rightShortcut/ec")) {
+ } else if ($.get("/event/checkright/rightShortcut/ec") && evClick == false) {
$(function() {
$( "#eventAddDialog" ).dialog({
autoOpen: false,
@@ -258,15 +331,17 @@ var poolIDtmp;
});
});
$( "#eventAddDialog" ).dialog('open');
- } else {
+ } else if (!$.get("/event/checkright/rightShortcut/ec") && evClick == false) {
$('#calendar').fullCalendar( 'unselect' );
$( "#errorRightsDialog" ).dialog('open');
}
},
eventResize: function( event, dayDelta, minuteDelta, revertFunc ) {
+
$(this).qtip("destroy");
if($.get("/event/checkright/rightShortcut/er")) {
+ if(event.repeat == 0) {
$(function() {
$( "#defaultDialog" ).dialog({
autoOpen: false,
@@ -291,15 +366,43 @@ var poolIDtmp;
});
$( "#defaultDialog" ).dialog('open');
$(this).qtip("destroy");
- } else {
+ } 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() {
+ $(this).dialog("close");
+ $.post("/event/eventresize/evid/" + event.id + "/evend/" + event.end + "/poolID/" + $("#poolselectbox option:selected").val());
+ },
+ "Resize all Events": function() {
+ $(this).dialog("close");
+ self.location="/event/eventresizeall/eventTitle/" + event.title + "/evmindelta/" + minuteDelta + "/poolID/" + $("#poolselectbox option:selected").val();
+ }
+ },
+ open: function () {
+ $(".ui-dialog-titlebar-close").hide();
+ //$(this).parents(".ui-dialog:first").find(".ui-dialog-titlebar").addClass("ui-state-error");
+ }
+ });
+ });
+ $( "#eventResizeWdhDialog" ).dialog('open');
+ }
+ }
+ else {
revertFunc();
$( "#errorRightsDialog" ).dialog('open');
}
},
eventDrop: function( event, dayDelta, minuteDelta, allDay, revertFunc ) {
-
- //alert(event.start - minuteDelta);
if(event.repeat == 0 && isDroppable && event.immediate == 0 && $.get("/event/checkright/rightShortcut/er")) {
$(function() {
@@ -335,15 +438,16 @@ var poolIDtmp;
title: 'Move ' + event.title,
buttons: {
"Cancel": function() {
- $(this).dialog("close");
- revertFunc();
+ $(this).dialog("close");
+ revertFunc();
},
"Move just this Event": function() {
$(this).dialog("close");
- $.post("/event/eventmove/evid/" + event.id + "/evstart/" + event.start + "/evend/" + event.end);
+ $.post("/event/eventmove/evid/" + event.id + "/evstart/" + event.start + "/evend/" + event.end);
},
"Move all Events": function() {
$(this).dialog("close");
+ self.location="/event/eventmoveall/eventTitle/" + event.title + "/evmindelta/" + minuteDelta + "/evdaydelta/" + dayDelta + "/poolID/" + $("#poolselectbox option:selected").val();
}
},
open: function () {
@@ -588,6 +692,13 @@ var poolIDtmp;
selected one?</p>
</div>
+<!-- resize wdhEvent -->
+<div id="eventResizeWdhDialog" style="display: none">
+<p>This is a Wdh-Event!</p>
+<p>Do you want to resize any event occurring this event or just the
+selected one?</p>
+</div>
+
<!-- move wdhEvent -->
<div id="eventMoveWdhDialog" style="display: none">
<p>This is a Wdh-Event!</p>
@@ -595,6 +706,13 @@ selected one?</p>
selected one?</p>
</div>
+<!-- edit wdhEvent -->
+<div id="eventEditWdhDialog" style="display: none">
+<p>This is a Wdh-Event!</p>
+<p>Do you want to edit any event occurring this event or just the
+selected one?</p>
+</div>
+
<!-- eventDelete -->
<div id="eventDeleteDialog" style="display: none">
<p>Are you sure to delete this Event?</p>