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 current_view = null;
|
||||
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');
|
||||
|
||||
// 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]));
|
||||
}
|
||||
|
||||
if (event.sensitivity != 0) {
|
||||
var sensitivityclasses = { 0:'public', 1:'private', 2:'confidential' };
|
||||
if (event.sensitivity && event.sensitivity != 'public') {
|
||||
$('#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
|
||||
|
@ -1699,14 +1698,14 @@ function rcube_calendar_ui(settings)
|
|||
|
||||
var fc_event_render = function(event, element, view) {
|
||||
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);
|
||||
}
|
||||
if (view.name != 'month') {
|
||||
if (event.location) {
|
||||
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>');
|
||||
if (event.recurrence)
|
||||
element.find('div.fc-event-time').append('<i class="fc-icon-recurring"></i>');
|
||||
|
|
|
@ -53,7 +53,7 @@
|
|||
* 'categories' => 'Event category',
|
||||
* 'free_busy' => 'free|busy|outofoffice|tentative', // Show time as
|
||||
* '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)
|
||||
* 'attachments' => array( // List of attachments
|
||||
* 'name' => 'File name',
|
||||
|
|
|
@ -42,6 +42,7 @@ class database_driver extends calendar_driver
|
|||
private $calendars = array();
|
||||
private $calendar_ids = '';
|
||||
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 $db_events = 'events';
|
||||
|
@ -407,6 +408,7 @@ class database_driver extends calendar_driver
|
|||
$rrule = $event['recurrence'] ? libcalendaring::to_rrule($event['recurrence']) : '';
|
||||
$event['_recurrence'] = rtrim($rrule, ';');
|
||||
$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'])) {
|
||||
$event['all_day'] = $event['allday'] ? 1 : 0;
|
||||
|
@ -769,6 +771,7 @@ class database_driver extends calendar_driver
|
|||
private function _read_postprocess($event)
|
||||
{
|
||||
$free_busy_map = array_flip($this->free_busy_map);
|
||||
$sensitivity_map = array_flip($this->sensitivity_map);
|
||||
|
||||
$event['id'] = $event['event_id'];
|
||||
$event['start'] = new DateTime($event['start']);
|
||||
|
@ -776,6 +779,7 @@ class database_driver extends calendar_driver
|
|||
$event['allday'] = intval($event['all_day']);
|
||||
$event['changed'] = new DateTime($event['changed']);
|
||||
$event['free_busy'] = $free_busy_map[$event['free_busy']];
|
||||
$event['sensitivity'] = $sensitivity_map[$event['sensitivity']];
|
||||
$event['calendar'] = $event['calendar_id'];
|
||||
$event['recurrence_id'] = intval($event['recurrence_id']);
|
||||
|
||||
|
|
|
@ -38,7 +38,6 @@ class kolab_calendar
|
|||
private $events = array();
|
||||
private $imap_folder = 'INBOX/Calendar';
|
||||
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;
|
||||
}
|
||||
|
||||
$sensitivity_map = array_flip($this->sensitivity_map);
|
||||
$record['sensitivity'] = intval($sensitivity_map[$record['sensitivity']]);
|
||||
|
||||
// Roundcube only supports one category assignment
|
||||
if (is_array($record['categories']))
|
||||
$record['categories'] = $record['categories'][0];
|
||||
|
@ -613,9 +609,6 @@ class kolab_calendar
|
|||
unset($event['attachments']);
|
||||
}
|
||||
|
||||
// translate sensitivity property
|
||||
$event['sensitivity'] = $this->sensitivity_map[$event['sensitivity']];
|
||||
|
||||
// set current user as ORGANIZER
|
||||
$identity = $this->cal->rc->user->get_identity();
|
||||
if (empty($event['attendees']) && $identity['email'])
|
||||
|
|
|
@ -333,9 +333,9 @@ class calendar_ui
|
|||
{
|
||||
$attrib['name'] = 'sensitivity';
|
||||
$select = new html_select($attrib);
|
||||
$select->add($this->cal->gettext('public'), '0');
|
||||
$select->add($this->cal->gettext('private'), '1');
|
||||
$select->add($this->cal->gettext('confidential'), '2');
|
||||
$select->add($this->cal->gettext('public'), 'public');
|
||||
$select->add($this->cal->gettext('private'), 'private');
|
||||
$select->add($this->cal->gettext('confidential'), 'confidential');
|
||||
return $select->show(null);
|
||||
}
|
||||
|
||||
|
|
|
@ -253,8 +253,7 @@ class libvcalendar
|
|||
|
||||
case 'CLASS':
|
||||
case 'X-CALENDARSERVER-ACCESS':
|
||||
$sensitivity_map = array('PUBLIC' => 0, 'PRIVATE' => 1, 'CONFIDENTIAL' => 2);
|
||||
$event['sensitivity'] = $sensitivity_map[$attr['value']];
|
||||
$event['sensitivity'] = strtolower($attr['value']);
|
||||
break;
|
||||
|
||||
case 'X-MICROSOFT-CDO-BUSYSTATUS':
|
||||
|
@ -433,10 +432,10 @@ class libvcalendar
|
|||
}
|
||||
}
|
||||
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) {
|
||||
$vevent .= "CLASS:" . ($event['sensitivity'] == 2 ? 'CONFIDENTIAL' : 'PRIVATE') . self::EOL;
|
||||
if (!empty($event['sensitivity']) && $event['sensitivity'] != 'public') {
|
||||
$vevent .= "CLASS:" . strtoupper($event['sensitivity']) . self::EOL;
|
||||
}
|
||||
if ($event['alarms']) {
|
||||
list($trigger, $action) = explode(':', $event['alarms']);
|
||||
|
|
Loading…
Add table
Reference in a new issue