From 2ef2068c1c895c7f645ac12c1873a1659f62732e Mon Sep 17 00:00:00 2001 From: Chuck Hagenbuch Date: Mon, 31 Aug 2009 00:24:35 -0400 Subject: [PATCH] first shot at Quick Add feature. dieing somewhere in the js results at the moment --- kronolith/ajax.php | 12 ++++++++++++ kronolith/js/kronolith.js | 31 +++++++++++++++++++++++++++++++ kronolith/templates/index/index.inc | 5 +++-- 3 files changed, 46 insertions(+), 2 deletions(-) diff --git a/kronolith/ajax.php b/kronolith/ajax.php index 2b953b080..7326ea788 100644 --- a/kronolith/ajax.php +++ b/kronolith/ajax.php @@ -196,6 +196,18 @@ try { $result = saveEvent($event); break; + case 'QuickSaveEvent': + if (!($kronolith_driver = getDriver(Horde_Util::getFormData('cal')))) { + break; + } + $uids = $registry->calendar->quickAdd(Horde_Util::getFormData('text'), Horde_Util::getFormData('cal')); + if (!count($uids)) { + break; + } + $event = $kronolith_driver->getByUid($uids[0]); + $result = saveEvent($event); + break; + case 'UpdateEvent': if (!($kronolith_driver = getDriver(Horde_Util::getFormData('cal')))) { break; diff --git a/kronolith/js/kronolith.js b/kronolith/js/kronolith.js index b3d1df606..8669b2b01 100644 --- a/kronolith/js/kronolith.js +++ b/kronolith/js/kronolith.js @@ -1757,6 +1757,12 @@ KronolithCore = { e.stop(); return; + case 'kronolithQuickinsertSave': + $('kronolithQuickinsert').fade(); + this.quickSaveEvent(); + e.stop(); + return; + case 'kronolithEventDelete': var cal = $F('kronolithEventCalendar'), eventid = $F('kronolithEventId'); @@ -2072,6 +2078,31 @@ KronolithCore = { }.bind(this)); }, + quickSaveEvent: function() + { + var cal = $F('kronolithEventCalendar'), + text = $F('kronolithQuickinsertQ'), + viewDates = this.viewDates(this.date, this.view), + start = viewDates[0].dateString(), + end = viewDates[1].dateString(); + + this.startLoading(cal, start, end); + this.doAction('QuickSaveEvent', + $H({ text: text }) + .merge({ + 'view': this.view, + 'view_start': start, + 'view_end': end + }), + function(r) { + if (r.response.events && eventid) { + this._removeEvent(eventid, cal); + } + this._loadEventsCallback(r); + this._closeRedBox(); + }.bind(this)); + }, + _topTags: function(r) { if (!r.response.tags) { diff --git a/kronolith/templates/index/index.inc b/kronolith/templates/index/index.inc index e00bd1141..a1aed7b46 100644 --- a/kronolith/templates/index/index.inc +++ b/kronolith/templates/index/index.inc @@ -35,7 +35,7 @@
- + + +
@@ -129,7 +129,8 @@ require dirname(__FILE__) . '/agenda.inc'; -- 2.11.0