summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjörn Geiger2011-10-27 13:03:31 +0200
committerBjörn Geiger2011-10-27 13:03:31 +0200
commit65d2bc38fb0d3a304a4728b71c65e60969b0d2ec (patch)
tree4468d58bf0cbbb3310c30c2fc2e8f5a077535654
parentchmod (diff)
downloadpoolctrl-65d2bc38fb0d3a304a4728b71c65e60969b0d2ec.tar.gz
poolctrl-65d2bc38fb0d3a304a4728b71c65e60969b0d2ec.tar.xz
poolctrl-65d2bc38fb0d3a304a4728b71c65e60969b0d2ec.zip
Edit Formular korrigiert
-rwxr-xr-xapplication/controllers/EventController.php2
-rwxr-xr-xapplication/forms/EventEdit.php2
-rwxr-xr-xapplication/models/EventMapper.php2
-rwxr-xr-xapplication/views/scripts/event/add.phtml4
-rwxr-xr-xapplication/views/scripts/event/edit.phtml17
-rwxr-xr-xlibrary/Poolctrl/Validate/EventOverlapping.php41
6 files changed, 48 insertions, 20 deletions
diff --git a/application/controllers/EventController.php b/application/controllers/EventController.php
index 910a5a0..5984a6a 100755
--- a/application/controllers/EventController.php
+++ b/application/controllers/EventController.php
@@ -468,7 +468,7 @@ class EventController extends Zend_Controller_Action
if($event->getRepeat() == 1 && !isset($params['wdh'])) {
$event->setRepeat(2);
} else {
- $overlappingEvents = $this->eventMapper->getOverlappingEvents(date('Y-m-d H:i:s', strtotime($event->getStart())), date('Y-m-d H:i:s', strtotime($event->getEnd())), $event->getPbs_PoolID());
+ $overlappingEvents = $this->eventMapper->getOverlappingEvents(date('Y-m-d H:i:s', strtotime($event->getStart())), date('Y-m-d H:i:s', strtotime($event->getEnd())), $event->getPbs_PoolID(), $event);
if(count($overlappingEvents) > 0 ) {
$overlapping = 1;
}
diff --git a/application/forms/EventEdit.php b/application/forms/EventEdit.php
index 1c1e592..840ecca 100755
--- a/application/forms/EventEdit.php
+++ b/application/forms/EventEdit.php
@@ -164,7 +164,7 @@ class Application_Form_EventEdit extends Zend_Form
array('StringLength', false, array(0, 19)),
array('Date', false, array('format' => 'mm/dd/yyyy h:i a')),
array('DateGreaterThan', false, array('element' => 'End', 'compare' => 'Start', 'min' => $this->getElement('start')->getValue())),
- array('EventOverlapping', false, array('poolID' => $this->params['pbs_poolID'], 'start' => $this->getElement('start')->getValue())),
+ array('EventOverlapping', false, array('poolID' => $this->params['pbs_poolID'], 'start' => $this->getElement('start')->getValue(), 'eventID' => $this->params['eventID'])),
),
'required' => false,
'label' => 'End:',
diff --git a/application/models/EventMapper.php b/application/models/EventMapper.php
index 70f0b99..b228ebf 100755
--- a/application/models/EventMapper.php
+++ b/application/models/EventMapper.php
@@ -433,7 +433,7 @@ class Application_Model_EventMapper
return $return;
}
- public function getOverlappingEvents($start, $end, $poolID, Application_Model_Event $event = null, $repeat = false) {
+ public function getOverlappingEvents($start, $end, $poolID, Application_Model_Event $event = null, $repeat = false) {
$db = Zend_Db_Table::getDefaultAdapter();
$return = array();
if($event != null) {
diff --git a/application/views/scripts/event/add.phtml b/application/views/scripts/event/add.phtml
index 0e05ea4..43fd4c2 100755
--- a/application/views/scripts/event/add.phtml
+++ b/application/views/scripts/event/add.phtml
@@ -32,7 +32,9 @@ if(isset($this->params['add'])) {
$("#start").datetimepicker({
onSelect: function (selectedDateTime){
var start = $(this).datetimepicker('getDate');
+ var end = $('#end').datetimepicker("getDate");
$('#end').datetimepicker('option', 'minDate', new Date(start.getTime()));
+ $('#end').datetimepicker('setDate', end);
},
dateFormat: "mm/dd/yy",
timeFormat: "hh:mm tt",
@@ -41,7 +43,9 @@ if(isset($this->params['add'])) {
$("#end").datetimepicker({
onSelect: function (selectedDateTime){
var end = $(this).datetimepicker('getDate');
+ var start = $('#start').datetimepicker('getDate');
$('#start').datetimepicker('option', 'maxDate', new Date(end.getTime()) );
+ $('#start').datetimepicker('setDate', start);
},
dateFormat: "mm/dd/yy",
timeFormat: "hh:mm tt",
diff --git a/application/views/scripts/event/edit.phtml b/application/views/scripts/event/edit.phtml
index 673682f..c6a69f9 100755
--- a/application/views/scripts/event/edit.phtml
+++ b/application/views/scripts/event/edit.phtml
@@ -15,32 +15,27 @@ $ids = implode(", ", $bootosIDs);
echo "bootosIDs = new Array(" . $ids . ");\n";
echo "</script>";
echo $this->editForm;
-echo '<script type="text/javascript">
+?>
+<script type="text/javascript">
bootosfieldChanged("pbs_bootosID", bootosIDs);
$(function() {
$("#start").datetimepicker({
- onSelect: function (selectedDateTime){
- var start = $(this).datetimepicker("getDate");
- $("#end").datetimepicker("option", "minDate", new Date(start.getTime()));
- },
+ minDate: new Date(),
dateFormat: "mm/dd/yy",
timeFormat: "hh:mm tt",
ampm: true
});
$("#end").datetimepicker({
- onSelect: function (selectedDateTime){
- var end = $(this).datetimepicker("getDate");
- $("#start").datetimepicker("option", "maxDate", new Date(end.getTime()) );
- },
+ minDate: new Date(),
dateFormat: "mm/dd/yy",
timeFormat: "hh:mm tt",
ampm: true
});
$("#repeatdate").datetimepicker({
+ minDate: new Date(),
dateFormat: "mm/dd/yy",
timeFormat: "hh:mm tt",
ampm: true
});
});
- </script>';
-?> \ No newline at end of file
+</script>
diff --git a/library/Poolctrl/Validate/EventOverlapping.php b/library/Poolctrl/Validate/EventOverlapping.php
index fb632af..fc1e0d5 100755
--- a/library/Poolctrl/Validate/EventOverlapping.php
+++ b/library/Poolctrl/Validate/EventOverlapping.php
@@ -10,7 +10,8 @@ class Poolctrl_Validate_EventOverlapping extends Zend_Validate_Abstract
);
protected $_start;
- protected $_repeat;
+ protected $_eventMapper;
+ protected $_event;
protected $_poolID;
public function __construct($option)
@@ -20,22 +21,27 @@ class Poolctrl_Validate_EventOverlapping extends Zend_Validate_Abstract
}
if (is_array($option)) {
+ $this->_eventMapper = new Application_Model_EventMapper();
if (array_key_exists('start', $option)) {
$_start = strtotime($option['start']);
+ $this->_setStart($_start);
} else {
require_once 'Zend/Validate/Exception.php';
throw new Zend_Validate_Exception("Missing option 'start'");
}
if (array_key_exists('poolID', $option)) {
$_poolID = $option['poolID'];
+ $this->_setPoolID($_poolID);
} else {
require_once 'Zend/Validate/Exception.php';
throw new Zend_Validate_Exception("Missing option 'poolID'");
}
+ if (array_key_exists('eventID', $option)) {
+ $_eventID = $option['eventID'];
+ $this->_event = new Application_Model_Event();
+ $this->_eventMapper->find($_eventID, $this->_event);
+ }
}
-
- $this->_setStart($_start);
- $this->_setPoolID($_poolID);
}
public function _getStart()
@@ -58,11 +64,34 @@ class Poolctrl_Validate_EventOverlapping extends Zend_Validate_Abstract
$this->_poolID = $_poolID;
}
+ public function _getEvent()
+ {
+ return $this->_event;
+ }
+
+ public function _setEvent(Application_Model_Event $_event)
+ {
+ $this->_event = $_event;
+ }
+
+ public function _getEventMapper()
+ {
+ return $this->_eventMapper;
+ }
+
+ public function _setEventMapper(Application_Model_EventMapper $_eventMapper)
+ {
+ $this->_eventMapper = $_eventMapper;
+ }
+
public function isValid($value)
{
$this->_setValue(strtotime($value));
- $eventMapper = new Application_Model_EventMapper();
- $overlappingEvents = $eventMapper->getOverlappingEvents(date('Y-m-d H:i:s', $this->_start), date('Y-m-d H:i:s', $this->_value), $this->_poolID);
+ if(is_object($this->_event)) {
+ $overlappingEvents = $this->_eventMapper->getOverlappingEvents(date('Y-m-d H:i:s', $this->_start), date('Y-m-d H:i:s', $this->_value), $this->_poolID, $this->_event);
+ } else {
+ $overlappingEvents = $this->_eventMapper->getOverlappingEvents(date('Y-m-d H:i:s', $this->_start), date('Y-m-d H:i:s', $this->_value), $this->_poolID);
+ }
if (count($overlappingEvents) > 0) {
$this->_error(self::EVENT_OVERLAPPING);