From 1099c5f6ef27975b1a9915e5ff163c8e3281f4e7 Mon Sep 17 00:00:00 2001 From: Jan Schneider Date: Tue, 17 Mar 2009 23:31:12 +0100 Subject: [PATCH] Implement UpdateEvent. Dragged events are stored in the backend now. --- kronolith/ajax.php | 31 +++++++++++++++++++++++++++++++ kronolith/js/src/kronolith.js | 5 ++++- 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/kronolith/ajax.php b/kronolith/ajax.php index 320ca821b..b69e4d236 100644 --- a/kronolith/ajax.php +++ b/kronolith/ajax.php @@ -129,6 +129,37 @@ case 'GetEvent': $result->event = $event; break; +case 'UpdateEvent': + if (!($kronolith_driver = getDriver($cal = Util::getFormData('cal')))) { + break; + } + $event = $kronolith_driver->getEvent(Util::getFormData('id')); + if (is_a($event, 'PEAR_Error')) { + $notification->push($event, 'horde.error'); + break; + } + if ($event) { + $notification->push(_("The requested event was not found."), 'horde.error'); + break; + } + $attributes = Horde_Serialize::unserialize(Util::getFormData('att'), Horde_Serialize::JSON); + foreach ($attributes as $attribute => $value) { + switch ($attribute) { + case 'start_date': + $start = new Horde_Date($value); + $event->start->year = $start->year; + $event->start->month = $start->month; + $event->start->mday = $start->mday; + $event->end = $event->start->add(array('min' => $event->durMin)); + break; + } + } + $result = $event->save(); + if (is_a($result, 'PEAR_Error')) { + $notification->push($result, 'horde.error'); + } + break; + case 'SaveCalPref': $result = true; break; diff --git a/kronolith/js/src/kronolith.js b/kronolith/js/src/kronolith.js index 30a9ea8cf..a7ba8e80e 100644 --- a/kronolith/js/src/kronolith.js +++ b/kronolith/js/src/kronolith.js @@ -402,8 +402,11 @@ KronolithCore = { } new Drop(cell, { onDrop: function(drop) { var el = DragDrop.Drags.drag.element; - this.doAction('UpdateEvent', { cal: el.readAttribute('calendar'), id: el.readAttribute('eventid'), att: $H({ start: drop.readAttribute('date') }).toJSON() }); drop.insert(el); + this.doAction('UpdateEvent', + { cal: el.readAttribute('calendar'), + id: el.readAttribute('eventid'), + att: $H({ start_date: drop.readAttribute('date') }).toJSON() }); }.bind(this) }); cell.down('.kronolithDay').setText(day.getDate()); cell = cell.next(); -- 2.11.0