Branch 'dev/kolab3' - plugins/calendar
Thomas Brüderli
bruederli at kolabsys.com
Wed May 16 18:59:16 CEST 2012
plugins/calendar/TODO | 3 ++-
plugins/calendar/drivers/kolab/SQL/mysql.sql | 5 ++++-
plugins/calendar/drivers/kolab/kolab_driver.php | 24 ++++++++++++++++--------
3 files changed, 22 insertions(+), 10 deletions(-)
New commits:
commit 394fb8f56dc4f4cb755f19acf3495c60db43489b
Author: Thomas Bruederli <bruederli at kolabsys.com>
Date: Wed May 16 18:58:57 2012 +0200
Store event alarm status by event uid + user id. Attention: database schema changed!
diff --git a/plugins/calendar/TODO b/plugins/calendar/TODO
index 35d5e0a..b1a08d7 100644
--- a/plugins/calendar/TODO
+++ b/plugins/calendar/TODO
@@ -13,7 +13,7 @@
+ View: 3.3: Display modes (agenda / day / week / month)
+ Day / Week / Month
+ List (Agenda) view
- - Add selection for date range
+ + Add selection for date range
- Individual days selection
+ Show list of calendars in a (hideable) drawer
+ View: 3.1: Folder list
@@ -39,6 +39,7 @@
+ Colors for calendars should be user-configurable
+ ICS parser/generator (http://code.google.com/p/qcal/)
+- Script to send event alarms by email (in cronjob)
- Export *with* attachments
- Remember last visited view
- Create/manage invdividual views
diff --git a/plugins/calendar/drivers/kolab/SQL/mysql.sql b/plugins/calendar/drivers/kolab/SQL/mysql.sql
index e64413a..7a93d0a 100644
--- a/plugins/calendar/drivers/kolab/SQL/mysql.sql
+++ b/plugins/calendar/drivers/kolab/SQL/mysql.sql
@@ -8,9 +8,12 @@
CREATE TABLE IF NOT EXISTS `kolab_alarms` (
`event_id` VARCHAR(255) NOT NULL,
+ `user_id` int(10) UNSIGNED NOT NULL,
`notifyat` DATETIME DEFAULT NULL,
`dismissed` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0',
- PRIMARY KEY(`event_id`)
+ PRIMARY KEY(`event_id`),
+ CONSTRAINT `fk_kolab_alarms_user_id` FOREIGN KEY (`user_id`)
+ REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE
) /*!40000 ENGINE=INNODB */;
CREATE TABLE IF NOT EXISTS `itipinvitations` (
diff --git a/plugins/calendar/drivers/kolab/kolab_driver.php b/plugins/calendar/drivers/kolab/kolab_driver.php
index 5d1906b..b97d2e1 100644
--- a/plugins/calendar/drivers/kolab/kolab_driver.php
+++ b/plugins/calendar/drivers/kolab/kolab_driver.php
@@ -786,11 +786,13 @@ class kolab_driver extends calendar_driver
if (!empty($events)) {
$event_ids = array_map(array($this->rc->db, 'quote'), array_keys($events));
$result = $this->rc->db->query(sprintf(
- "SELECT * FROM kolab_alarms
- WHERE event_id IN (%s)",
- join(',', $event_ids),
- $this->rc->db->now()
- ));
+ "SELECT * FROM kolab_alarms
+ WHERE event_id IN (%s) AND user_id=?",
+ join(',', $event_ids),
+ $this->rc->db->now()
+ ),
+ $this->rc->user->ID
+ );
while ($result && ($e = $this->rc->db->fetch_assoc($result))) {
$dbdata[$e['event_id']] = $e;
@@ -820,16 +822,22 @@ class kolab_driver extends calendar_driver
public function dismiss_alarm($event_id, $snooze = 0)
{
// delete old alarm entry
- $this->rc->db->query("DELETE FROM kolab_alarms WHERE event_id=?", $event_id);
+ $this->rc->db->query(
+ "DELETE FROM kolab_alarms
+ WHERE event_id=? AND user_id=?",
+ $event_id,
+ $this->rc->user->ID
+ );
// set new notifyat time or unset if not snoozed
$notifyat = $snooze > 0 ? date('Y-m-d H:i:s', time() + $snooze) : null;
$query = $this->rc->db->query(
"INSERT INTO kolab_alarms
- (event_id, dismissed, notifyat)
- VALUES(?, ?, ?)",
+ (event_id, user_id, dismissed, notifyat)
+ VALUES(?, ?, ?, ?)",
$event_id,
+ $this->rc->user->ID,
$snooze > 0 ? 0 : 1,
$notifyat
);
More information about the commits
mailing list