diff --git a/calendar/inc/class.calendar_ui.inc.php b/calendar/inc/class.calendar_ui.inc.php index f1afe77111..bb8b4b87bf 100644 --- a/calendar/inc/class.calendar_ui.inc.php +++ b/calendar/inc/class.calendar_ui.inc.php @@ -810,11 +810,7 @@ class calendar_ui $app = $matches[1]; $app_id = $matches[2]; $icons = array(); - if (($is_private = calendar_bo::integration_get_private($app,$app_id,$event))) - { - $icons[] = html::image('calendar','private'); - } - else + if(!($is_private = calendar_bo::integration_get_private($app,$app_id,$event))) { $icons = calendar_uiviews::integration_get_icons($app,$app_id,$event); } diff --git a/calendar/js/et2_widget_event.js b/calendar/js/et2_widget_event.js index 61112858ab..10591b1338 100644 --- a/calendar/js/et2_widget_event.js +++ b/calendar/js/et2_widget_event.js @@ -156,21 +156,26 @@ var et2_calendar_event = et2_valueWidget.extend([et2_IDetachedDOM], .attr('data-owner', event.owner) .attr('data-recur_type', event.recur_type) .attr('data-resize', event.whole_day ? 'WD' : '' + (event.recur_type ? 'S':'')) - .addClass(event.class) - .toggleClass('calendar_calEventPrivate', event.private) // Remove any category classes .removeClass(function(index, css) { return (css.match (/(^|\s)cat_\S+/g) || []).join(' '); }) + // Remove any status classes + .removeClass(function(index, css) { + return (css.match(/calendar_calEvent\S+/g) || []).join(' '); + }) // Remove any resize classes, the handles are gone due to empty() - .removeClass('ui-resizable'); + .removeClass('ui-resizable') + .addClass(event.class) + .toggleClass('calendar_calEventPrivate', event.private) if(event.category) { this.div.addClass('cat_' + event.category); } - this.div.css('border-color', this.div.css('background-color')); + this.div.css('border-color', this.title.css('background-color')); - this.div.toggleClass('calendar_calEventUnknown', event.participants[egw.user('account_id')] ? event.participants[egw.user('account_id')][0] == 'U' : false); + this.div.toggleClass('calendar_calEventUnknown', event.participants[egw.user('account_id')] ? event.participants[egw.user('account_id')][0] === 'U' : false); + this.div.addClass(this._status_class()); this.title.toggle(!event.whole_day_on_top); this.body.toggleClass('calendar_calEventBodySmall', event.whole_day_on_top || false); @@ -203,14 +208,18 @@ var et2_calendar_event = et2_valueWidget.extend([et2_IDetachedDOM], } this.body // Set background color to a lighter version of the header color - .css('background-color',jQuery.Color(this.div.css('background-color')).lightness("+=0.3")); + .css('background-color',jQuery.Color(this.title.css('background-color')).lightness("+=0.3")); this.set_statustext(this._tooltip()); }, - _tooltip: function() { + /** + * Examines the participants & returns CSS classname for status + * + * @returns {String} + */ + _status_class: function() { var status_class = 'calendar_calEventAllAccepted'; - status: for(var id in this.options.value.participants) { var status = this.options.value.participants[id]; @@ -226,12 +235,17 @@ var et2_calendar_event = et2_valueWidget.extend([et2_IDetachedDOM], break; case 'U': status_class = 'calendar_calEventSomeUnknown'; - break status; // break for + return status_class; // break for default: status_class = 'calendar_calEventAllAnswered'; break; } } + return status_class; + }, + + _tooltip: function() { + var border = this.div.css('border-color'); var bg_color = this.div.css('background-color'); var header_color = this.title.css('color'); @@ -250,7 +264,7 @@ var et2_calendar_event = et2_valueWidget.extend([et2_IDetachedDOM], var cat_label = cat.node.innerText; cat.destroy(); - return '