From f2c6a3851d85a31d43057b5179c8b3216c23cb59 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Fri, 25 Jul 2014 14:08:41 +0200 Subject: [PATCH] More changes for Assignments tab (#1165) --- .../drivers/kolab/tasklist_kolab_driver.php | 16 +- plugins/tasklist/drivers/tasklist_driver.php | 1 + plugins/tasklist/localization/en_US.inc | 6 + .../skins/larry/images/attendee-status.png | Bin 0 -> 2919 bytes .../skins/larry/images/sendinvitation.png | Bin 0 -> 1273 bytes plugins/tasklist/skins/larry/tasklist.css | 59 ++++ .../skins/larry/templates/mainview.html | 13 + .../skins/larry/templates/taskedit.html | 2 +- plugins/tasklist/tasklist.js | 310 ++++++++++++------ plugins/tasklist/tasklist.php | 140 +++++++- plugins/tasklist/tasklist_ui.php | 24 +- 11 files changed, 458 insertions(+), 113 deletions(-) create mode 100644 plugins/tasklist/skins/larry/images/attendee-status.png create mode 100644 plugins/tasklist/skins/larry/images/sendinvitation.png diff --git a/plugins/tasklist/drivers/kolab/tasklist_kolab_driver.php b/plugins/tasklist/drivers/kolab/tasklist_kolab_driver.php index 1999a8e5..624bdd56 100644 --- a/plugins/tasklist/drivers/kolab/tasklist_kolab_driver.php +++ b/plugins/tasklist/drivers/kolab/tasklist_kolab_driver.php @@ -25,16 +25,17 @@ class tasklist_kolab_driver extends tasklist_driver { // features supported by the backend - public $alarms = false; + public $alarms = false; public $attachments = true; - public $undelete = false; // task undelete action + public $attendees = true; + public $undelete = false; // task undelete action public $alarm_types = array('DISPLAY','AUDIO'); private $rc; private $plugin; private $lists; private $folders = array(); - private $tasks = array(); + private $tasks = array(); /** @@ -772,6 +773,7 @@ class tasklist_kolab_driver extends tasklist_driver 'status' => $record['status'], 'parent_id' => $record['parent_id'], 'recurrence' => $record['recurrence'], + 'attendees' => $record['attendees'], ); // convert from DateTime to internal date format @@ -898,6 +900,14 @@ class tasklist_kolab_driver extends tasklist_driver unset($object['attachments']); } + // set current user as ORGANIZER + $identity = $this->rc->user->get_identity(); + if (empty($object['attendees']) && $identity['email']) { + $object['attendees'] = array(array('role' => 'ORGANIZER', 'name' => $identity['name'], 'email' => $identity['email'])); + } + + $object['_owner'] = $identity['email']; + unset($object['tempid'], $object['raw'], $object['list'], $object['flagged'], $object['tags']); return $object; } diff --git a/plugins/tasklist/drivers/tasklist_driver.php b/plugins/tasklist/drivers/tasklist_driver.php index eb7663e5..dd2e415f 100644 --- a/plugins/tasklist/drivers/tasklist_driver.php +++ b/plugins/tasklist/drivers/tasklist_driver.php @@ -72,6 +72,7 @@ abstract class tasklist_driver // features supported by the backend public $alarms = false; public $attachments = false; + public $attendees = false; public $undelete = false; // task undelete action public $sortable = false; public $alarm_types = array('DISPLAY'); diff --git a/plugins/tasklist/localization/en_US.inc b/plugins/tasklist/localization/en_US.inc index 7920c940..0b713774 100644 --- a/plugins/tasklist/localization/en_US.inc +++ b/plugins/tasklist/localization/en_US.inc @@ -132,3 +132,9 @@ $labels['itipdeclineevent'] = 'Do you want to decline your assignment to this ta $labels['declinedeleteconfirm'] = 'Do you also want to delete this declined task from your tasks list?'; $labels['itipcomment'] = 'Invitation/notification comment'; $labels['itipcommenttitle'] = 'This comment will be attached to the invitation/notification message sent to participants'; +$labels['itipsendsuccess'] = 'Invitation sent to participants.'; +$labels['errornotifying'] = 'Failed to send notifications to task participants'; + +$labels['andnmore'] = '$nr more...'; +$labels['delegatedto'] = 'Delegated to: '; +$labels['delegatedfrom'] = 'Delegated from: '; diff --git a/plugins/tasklist/skins/larry/images/attendee-status.png b/plugins/tasklist/skins/larry/images/attendee-status.png new file mode 100644 index 0000000000000000000000000000000000000000..59b44930d94931a6c15e59976b9489e183d20944 GIT binary patch literal 2919 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 lVBB4}#b(*ggA9yp49mZKQS{+GI~!COdAj +
+
+
+
+
diff --git a/plugins/tasklist/skins/larry/templates/taskedit.html b/plugins/tasklist/skins/larry/templates/taskedit.html index 599974e3..554028b3 100644 --- a/plugins/tasklist/skins/larry/templates/taskedit.html +++ b/plugins/tasklist/skins/larry/templates/taskedit.html @@ -98,5 +98,5 @@
-