Visually emphasize pending/declined events from other user's calendars
This commit is contained in:
parent
d9f69d35c7
commit
59b64ae7cd
4 changed files with 41 additions and 13 deletions
|
@ -674,6 +674,11 @@ class kolab_calendar extends kolab_storage_folder_api
|
||||||
$record['calendar'] = $this->id;
|
$record['calendar'] = $this->id;
|
||||||
$record['links'] = $this->get_links($record['uid']);
|
$record['links'] = $this->get_links($record['uid']);
|
||||||
|
|
||||||
|
if ($this->get_namespace() == 'other') {
|
||||||
|
$record['className'] = 'fc-event-ns-other';
|
||||||
|
$record = kolab_driver::add_partstat_class($record, array('NEEDS-ACTION','DECLINED'), $this->get_owner());
|
||||||
|
}
|
||||||
|
|
||||||
return kolab_driver::to_rcube_event($record);
|
return kolab_driver::to_rcube_event($record);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1421,6 +1421,30 @@ class kolab_driver extends calendar_driver
|
||||||
return $record;
|
return $record;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set CSS class according to the event's attendde partstat
|
||||||
|
*/
|
||||||
|
public static function add_partstat_class($event, $partstats, $user = null)
|
||||||
|
{
|
||||||
|
// set classes according to PARTSTAT
|
||||||
|
if (is_array($event['attendees'])) {
|
||||||
|
$user_emails = libcalendaring::get_instance()->get_user_emails($user);
|
||||||
|
$partstat = 'UNKNOWN';
|
||||||
|
foreach ($event['attendees'] as $attendee) {
|
||||||
|
if (in_array($attendee['email'], $user_emails)) {
|
||||||
|
$partstat = $attendee['status'];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (in_array($partstat, $partstats)) {
|
||||||
|
$event['className'] = trim($event['className'] . ' fc-invitation-' . strtolower($partstat));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $event;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provide a list of revisions for the given event
|
* Provide a list of revisions for the given event
|
||||||
*
|
*
|
||||||
|
|
|
@ -276,21 +276,11 @@ class kolab_invitation_calendar
|
||||||
private function _mod_event($event)
|
private function _mod_event($event)
|
||||||
{
|
{
|
||||||
// set classes according to PARTSTAT
|
// set classes according to PARTSTAT
|
||||||
if (is_array($event['attendees'])) {
|
$event = kolab_driver::add_partstat_class($event, $this->partstats);
|
||||||
$user_emails = $this->cal->get_user_emails();
|
|
||||||
$partstat = 'UNKNOWN';
|
|
||||||
foreach ($event['attendees'] as $attendee) {
|
|
||||||
if (in_array($attendee['email'], $user_emails)) {
|
|
||||||
$partstat = $attendee['status'];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (in_array($partstat, $this->partstats)) {
|
if (strpos($event['className'], 'fc-invitation-') !== false) {
|
||||||
$event['className'] = 'fc-invitation-' . strtolower($partstat);
|
|
||||||
$event['calendar'] = $this->id;
|
$event['calendar'] = $this->id;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
return $event;
|
return $event;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1883,6 +1883,15 @@ a.dropdown-link:after {
|
||||||
border: 1px dashed #c00 !important;
|
border: 1px dashed #c00 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.fc-event-vert.fc-event-ns-other.fc-invitation-declined,
|
||||||
|
.fc-event-hori.fc-event-ns-other.fc-invitation-declined {
|
||||||
|
opacity: 0.7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fc-event-ns-other.fc-invitation-declined .fc-event-title {
|
||||||
|
text-decoration: line-through;
|
||||||
|
}
|
||||||
|
|
||||||
.fc-event-vert.fc-invitation-tentative .fc-event-head,
|
.fc-event-vert.fc-invitation-tentative .fc-event-head,
|
||||||
.fc-event-vert.fc-invitation-declined .fc-event-head,
|
.fc-event-vert.fc-invitation-declined .fc-event-head,
|
||||||
.fc-event-vert.fc-invitation-needs-action .fc-event-head {
|
.fc-event-vert.fc-invitation-needs-action .fc-event-head {
|
||||||
|
|
Loading…
Add table
Reference in a new issue