Change internal representation of event sensitivity values to strings
This commit is contained in:
parent
c2d97dfe36
commit
a21fc44ed4
6 changed files with 17 additions and 22 deletions
|
@ -51,7 +51,7 @@ function rcube_calendar_ui(settings)
|
||||||
var freebusy_data = {};
|
var freebusy_data = {};
|
||||||
var current_view = null;
|
var current_view = null;
|
||||||
var exec_deferred = bw.ie6 ? 5 : 1;
|
var exec_deferred = bw.ie6 ? 5 : 1;
|
||||||
var sensitivitylabels = { 0:rcmail.gettext('public','calendar'), 1:rcmail.gettext('private','calendar'), 2:rcmail.gettext('confidential','calendar') };
|
var sensitivitylabels = { 'public':rcmail.gettext('public','calendar'), 'private':rcmail.gettext('private','calendar'), 'confidential':rcmail.gettext('confidential','calendar') };
|
||||||
var ui_loading = rcmail.set_busy(true, 'loading');
|
var ui_loading = rcmail.set_busy(true, 'loading');
|
||||||
|
|
||||||
// general datepicker settings
|
// general datepicker settings
|
||||||
|
@ -314,10 +314,9 @@ function rcube_calendar_ui(settings)
|
||||||
$('#event-priority').show().children('.event-text').html(Q(event.priority+' '+priolabels[event.priority]));
|
$('#event-priority').show().children('.event-text').html(Q(event.priority+' '+priolabels[event.priority]));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (event.sensitivity != 0) {
|
if (event.sensitivity && event.sensitivity != 'public') {
|
||||||
var sensitivityclasses = { 0:'public', 1:'private', 2:'confidential' };
|
|
||||||
$('#event-sensitivity').show().children('.event-text').html(Q(sensitivitylabels[event.sensitivity]));
|
$('#event-sensitivity').show().children('.event-text').html(Q(sensitivitylabels[event.sensitivity]));
|
||||||
$dialog.addClass('sensitivity-'+sensitivityclasses[event.sensitivity]);
|
$dialog.addClass('sensitivity-'+event.sensitivity);
|
||||||
}
|
}
|
||||||
|
|
||||||
// create attachments list
|
// create attachments list
|
||||||
|
@ -1699,14 +1698,14 @@ function rcube_calendar_ui(settings)
|
||||||
|
|
||||||
var fc_event_render = function(event, element, view) {
|
var fc_event_render = function(event, element, view) {
|
||||||
if (view.name != 'list' && view.name != 'table') {
|
if (view.name != 'list' && view.name != 'table') {
|
||||||
var prefix = event.sensitivity != 0 ? String(sensitivitylabels[event.sensitivity]).toUpperCase()+': ' : '';
|
var prefix = event.sensitivity && event.sensitivity != 'public' ? String(sensitivitylabels[event.sensitivity]).toUpperCase()+': ' : '';
|
||||||
element.attr('title', prefix + event.title);
|
element.attr('title', prefix + event.title);
|
||||||
}
|
}
|
||||||
if (view.name != 'month') {
|
if (view.name != 'month') {
|
||||||
if (event.location) {
|
if (event.location) {
|
||||||
element.find('div.fc-event-title').after('<div class="fc-event-location">@ ' + Q(event.location) + '</div>');
|
element.find('div.fc-event-title').after('<div class="fc-event-location">@ ' + Q(event.location) + '</div>');
|
||||||
}
|
}
|
||||||
if (event.sensitivity != 0)
|
if (event.sensitivity && event.sensitivity != 'public')
|
||||||
element.find('div.fc-event-time').append('<i class="fc-icon-sensitive"></i>');
|
element.find('div.fc-event-time').append('<i class="fc-icon-sensitive"></i>');
|
||||||
if (event.recurrence)
|
if (event.recurrence)
|
||||||
element.find('div.fc-event-time').append('<i class="fc-icon-recurring"></i>');
|
element.find('div.fc-event-time').append('<i class="fc-icon-recurring"></i>');
|
||||||
|
|
|
@ -53,7 +53,7 @@
|
||||||
* 'categories' => 'Event category',
|
* 'categories' => 'Event category',
|
||||||
* 'free_busy' => 'free|busy|outofoffice|tentative', // Show time as
|
* 'free_busy' => 'free|busy|outofoffice|tentative', // Show time as
|
||||||
* 'priority' => 0-9, // Event priority (0=undefined, 1=highest, 9=lowest)
|
* 'priority' => 0-9, // Event priority (0=undefined, 1=highest, 9=lowest)
|
||||||
* 'sensitivity' => 0|1|2, // Event sensitivity (0=public, 1=private, 2=confidential)
|
* 'sensitivity' => 'public|private|confidential', // Event sensitivity
|
||||||
* 'alarms' => '-15M:DISPLAY', // Reminder settings inspired by valarm definition (e.g. display alert 15 minutes before event)
|
* 'alarms' => '-15M:DISPLAY', // Reminder settings inspired by valarm definition (e.g. display alert 15 minutes before event)
|
||||||
* 'attachments' => array( // List of attachments
|
* 'attachments' => array( // List of attachments
|
||||||
* 'name' => 'File name',
|
* 'name' => 'File name',
|
||||||
|
|
|
@ -42,6 +42,7 @@ class database_driver extends calendar_driver
|
||||||
private $calendars = array();
|
private $calendars = array();
|
||||||
private $calendar_ids = '';
|
private $calendar_ids = '';
|
||||||
private $free_busy_map = array('free' => 0, 'busy' => 1, 'out-of-office' => 2, 'outofoffice' => 2, 'tentative' => 3);
|
private $free_busy_map = array('free' => 0, 'busy' => 1, 'out-of-office' => 2, 'outofoffice' => 2, 'tentative' => 3);
|
||||||
|
private $sensitivity_map = array('public' => 0, 'private' => 1, 'confidential' => 2);
|
||||||
private $server_timezone;
|
private $server_timezone;
|
||||||
|
|
||||||
private $db_events = 'events';
|
private $db_events = 'events';
|
||||||
|
@ -407,6 +408,7 @@ class database_driver extends calendar_driver
|
||||||
$rrule = $event['recurrence'] ? libcalendaring::to_rrule($event['recurrence']) : '';
|
$rrule = $event['recurrence'] ? libcalendaring::to_rrule($event['recurrence']) : '';
|
||||||
$event['_recurrence'] = rtrim($rrule, ';');
|
$event['_recurrence'] = rtrim($rrule, ';');
|
||||||
$event['free_busy'] = intval($this->free_busy_map[strtolower($event['free_busy'])]);
|
$event['free_busy'] = intval($this->free_busy_map[strtolower($event['free_busy'])]);
|
||||||
|
$event['sensitivity'] = intval($this->sensitivity_map[strtolower($event['sensitivity'])]);
|
||||||
|
|
||||||
if (isset($event['allday'])) {
|
if (isset($event['allday'])) {
|
||||||
$event['all_day'] = $event['allday'] ? 1 : 0;
|
$event['all_day'] = $event['allday'] ? 1 : 0;
|
||||||
|
@ -769,6 +771,7 @@ class database_driver extends calendar_driver
|
||||||
private function _read_postprocess($event)
|
private function _read_postprocess($event)
|
||||||
{
|
{
|
||||||
$free_busy_map = array_flip($this->free_busy_map);
|
$free_busy_map = array_flip($this->free_busy_map);
|
||||||
|
$sensitivity_map = array_flip($this->sensitivity_map);
|
||||||
|
|
||||||
$event['id'] = $event['event_id'];
|
$event['id'] = $event['event_id'];
|
||||||
$event['start'] = new DateTime($event['start']);
|
$event['start'] = new DateTime($event['start']);
|
||||||
|
@ -776,6 +779,7 @@ class database_driver extends calendar_driver
|
||||||
$event['allday'] = intval($event['all_day']);
|
$event['allday'] = intval($event['all_day']);
|
||||||
$event['changed'] = new DateTime($event['changed']);
|
$event['changed'] = new DateTime($event['changed']);
|
||||||
$event['free_busy'] = $free_busy_map[$event['free_busy']];
|
$event['free_busy'] = $free_busy_map[$event['free_busy']];
|
||||||
|
$event['sensitivity'] = $sensitivity_map[$event['sensitivity']];
|
||||||
$event['calendar'] = $event['calendar_id'];
|
$event['calendar'] = $event['calendar_id'];
|
||||||
$event['recurrence_id'] = intval($event['recurrence_id']);
|
$event['recurrence_id'] = intval($event['recurrence_id']);
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,6 @@ class kolab_calendar
|
||||||
private $events = array();
|
private $events = array();
|
||||||
private $imap_folder = 'INBOX/Calendar';
|
private $imap_folder = 'INBOX/Calendar';
|
||||||
private $search_fields = array('title', 'description', 'location', 'attendees');
|
private $search_fields = array('title', 'description', 'location', 'attendees');
|
||||||
private $sensitivity_map = array('public', 'private', 'confidential');
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -557,9 +556,6 @@ class kolab_calendar
|
||||||
$record['attachments'] = $attachments;
|
$record['attachments'] = $attachments;
|
||||||
}
|
}
|
||||||
|
|
||||||
$sensitivity_map = array_flip($this->sensitivity_map);
|
|
||||||
$record['sensitivity'] = intval($sensitivity_map[$record['sensitivity']]);
|
|
||||||
|
|
||||||
// Roundcube only supports one category assignment
|
// Roundcube only supports one category assignment
|
||||||
if (is_array($record['categories']))
|
if (is_array($record['categories']))
|
||||||
$record['categories'] = $record['categories'][0];
|
$record['categories'] = $record['categories'][0];
|
||||||
|
@ -613,9 +609,6 @@ class kolab_calendar
|
||||||
unset($event['attachments']);
|
unset($event['attachments']);
|
||||||
}
|
}
|
||||||
|
|
||||||
// translate sensitivity property
|
|
||||||
$event['sensitivity'] = $this->sensitivity_map[$event['sensitivity']];
|
|
||||||
|
|
||||||
// set current user as ORGANIZER
|
// set current user as ORGANIZER
|
||||||
$identity = $this->cal->rc->user->get_identity();
|
$identity = $this->cal->rc->user->get_identity();
|
||||||
if (empty($event['attendees']) && $identity['email'])
|
if (empty($event['attendees']) && $identity['email'])
|
||||||
|
|
|
@ -333,9 +333,9 @@ class calendar_ui
|
||||||
{
|
{
|
||||||
$attrib['name'] = 'sensitivity';
|
$attrib['name'] = 'sensitivity';
|
||||||
$select = new html_select($attrib);
|
$select = new html_select($attrib);
|
||||||
$select->add($this->cal->gettext('public'), '0');
|
$select->add($this->cal->gettext('public'), 'public');
|
||||||
$select->add($this->cal->gettext('private'), '1');
|
$select->add($this->cal->gettext('private'), 'private');
|
||||||
$select->add($this->cal->gettext('confidential'), '2');
|
$select->add($this->cal->gettext('confidential'), 'confidential');
|
||||||
return $select->show(null);
|
return $select->show(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -253,8 +253,7 @@ class libvcalendar
|
||||||
|
|
||||||
case 'CLASS':
|
case 'CLASS':
|
||||||
case 'X-CALENDARSERVER-ACCESS':
|
case 'X-CALENDARSERVER-ACCESS':
|
||||||
$sensitivity_map = array('PUBLIC' => 0, 'PRIVATE' => 1, 'CONFIDENTIAL' => 2);
|
$event['sensitivity'] = strtolower($attr['value']);
|
||||||
$event['sensitivity'] = $sensitivity_map[$attr['value']];
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'X-MICROSOFT-CDO-BUSYSTATUS':
|
case 'X-MICROSOFT-CDO-BUSYSTATUS':
|
||||||
|
@ -433,10 +432,10 @@ class libvcalendar
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!empty($event['categories'])) {
|
if (!empty($event['categories'])) {
|
||||||
$vevent .= "CATEGORIES:" . self::escape(strtoupper($event['categories'])) . self::EOL;
|
$vevent .= "CATEGORIES:" . self::escape($event['categories']) . self::EOL;
|
||||||
}
|
}
|
||||||
if ($event['sensitivity'] > 0) {
|
if (!empty($event['sensitivity']) && $event['sensitivity'] != 'public') {
|
||||||
$vevent .= "CLASS:" . ($event['sensitivity'] == 2 ? 'CONFIDENTIAL' : 'PRIVATE') . self::EOL;
|
$vevent .= "CLASS:" . strtoupper($event['sensitivity']) . self::EOL;
|
||||||
}
|
}
|
||||||
if ($event['alarms']) {
|
if ($event['alarms']) {
|
||||||
list($trigger, $action) = explode(':', $event['alarms']);
|
list($trigger, $action) = explode(':', $event['alarms']);
|
||||||
|
|
Loading…
Add table
Reference in a new issue