From b586ff9b45bdda18752c76e83914ee52fe70ad86 Mon Sep 17 00:00:00 2001 From: "Michael J. Rubinsky" Date: Sun, 8 Feb 2009 20:19:52 -0500 Subject: [PATCH] Move logic for dealing with event tags into the Kronolith_Event object. --- kronolith/add.php | 2 -- kronolith/lib/Driver.php | 12 ++++++++++++ kronolith/lib/Driver/kolab.php | 8 ++++++++ kronolith/lib/Driver/sql.php | 8 ++++++++ kronolith/lib/Views/Event.php | 4 +--- 5 files changed, 29 insertions(+), 5 deletions(-) diff --git a/kronolith/add.php b/kronolith/add.php index 35d3c2fa4..50e250074 100644 --- a/kronolith/add.php +++ b/kronolith/add.php @@ -50,8 +50,6 @@ if (!Util::getFormData('cancel')) { } } } - $tagger = Kronolith::getTagger(); - $tagger->tag($event->getUID(), Util::getFormData('tags'), 'event'); } } diff --git a/kronolith/lib/Driver.php b/kronolith/lib/Driver.php index ef3b7b0ac..587e545b6 100644 --- a/kronolith/lib/Driver.php +++ b/kronolith/lib/Driver.php @@ -365,6 +365,13 @@ class Kronolith_Event { var $private = false; /** + * An array of this event's tags in the form of ('tag1', 'tag2', ...) + * + * @var array + */ + var $tags = array(); + + /** * All the attendees of this event. * * This is an associative array where the keys are the email addresses @@ -483,6 +490,8 @@ class Kronolith_Event { if ($eventObject !== null) { $this->fromDriver($eventObject); + $tagger = Kronolith::getTagger(); + $this->tags = $tagger->getTags($this->getUID(), 'event'); } } @@ -1937,6 +1946,9 @@ class Kronolith_Event { } } + // Tags. + $this->tags = Util::getFormData('tags'); + $this->initialized = true; } diff --git a/kronolith/lib/Driver/kolab.php b/kronolith/lib/Driver/kolab.php index b97a2b937..071973114 100644 --- a/kronolith/lib/Driver/kolab.php +++ b/kronolith/lib/Driver/kolab.php @@ -1257,6 +1257,14 @@ class Kronolith_Driver_kolab_wrapper_new extends Kronolith_Driver_kolab_wrapper return $result; } + /* Deal with tags */ + $tagger = Kronolith::getTagger(); + if (!empty($edit)) { + $tagger->replaceTags($event->getUID(), $event->tags, 'event'); + } else { + $tagger->tag($event->getUID(), $event->tags, 'event'); + } + /* Notify about the changed event. */ $result = Kronolith::sendNotification($event, $edit ? 'edit' : 'add'); if (is_a($result, 'PEAR_Error')) { diff --git a/kronolith/lib/Driver/sql.php b/kronolith/lib/Driver/sql.php index 51c42f637..2cbcd0b1c 100644 --- a/kronolith/lib/Driver/sql.php +++ b/kronolith/lib/Driver/sql.php @@ -511,6 +511,10 @@ class Kronolith_Driver_sql extends Kronolith_Driver { $history->log('kronolith:' . $this->_calendar . ':' . $event->getUID(), array('action' => 'modify'), true); } + /* Update tags */ + $tagger = Kronolith::getTagger(); + $tagger->replaceTags($event->getUID(), $event->tags, 'event'); + /* Notify users about the changed event. */ $result = Kronolith::sendNotification($event, 'edit'); if (is_a($result, 'PEAR_Error')) { @@ -565,6 +569,10 @@ class Kronolith_Driver_sql extends Kronolith_Driver { $history = Horde_History::singleton(); $history->log('kronolith:' . $this->_calendar . ':' . $uid, array('action' => 'add'), true); + /* Deal with any tags */ + $tagger = Kronolith::getTagger(); + $tagger->tag($event->getUID(), $event->tags, 'event'); + /* Notify users about the new event. */ $result = Kronolith::sendNotification($event, 'add'); if (is_a($result, 'PEAR_Error')) { diff --git a/kronolith/lib/Views/Event.php b/kronolith/lib/Views/Event.php index 02a01555c..2a315a951 100644 --- a/kronolith/lib/Views/Event.php +++ b/kronolith/lib/Views/Event.php @@ -96,9 +96,7 @@ class Kronolith_View_Event { $timeFormat = $prefs->getValue('twentyFour') ? 'G:i' : 'g:ia'; // Tags - $tagger = Kronolith::getTagger(); - $tags = $tagger->getTags($this->event->getUID(), 'event'); - $tags = implode(', ', array_values($tags)); + $tags = implode(', ', $this->event->tags); echo '