diff --git a/calendar/inc/class.calendar_ui.inc.php b/calendar/inc/class.calendar_ui.inc.php index f146332d76..10183541b6 100644 --- a/calendar/inc/class.calendar_ui.inc.php +++ b/calendar/inc/class.calendar_ui.inc.php @@ -447,6 +447,10 @@ class calendar_ui { $icons[] = html::image('calendar','alarm',lang('alarm')); } + if($event['participants'][$this->user][0] == 'U') + { + $icons[] = html::image('calendar','cnr-pending',lang('Needs action')); + } return $icons; } diff --git a/calendar/inc/class.calendar_uiviews.inc.php b/calendar/inc/class.calendar_uiviews.inc.php index f24209807a..4a496892ae 100644 --- a/calendar/inc/class.calendar_uiviews.inc.php +++ b/calendar/inc/class.calendar_uiviews.inc.php @@ -1175,6 +1175,30 @@ class calendar_uiviews extends calendar_ui $bodybgcolor1 = $this->brighter($headerbgcolor,$headerbgcolor == '#808080' ? 100 : 170); $bodybgcolor2 = $this->brighter($headerbgcolor,220); + // mark event as invitation, by NOT using category based backgrond color, but plain white + if ($event['participants'][$this->user][0] == 'U') + { + $bodybgcolor1 = $bodybgcolor2 = 'white'; + } + + // get status class of event: calEventAllAccepted, calEventAllAnswered or calEventSomeUnknown + $status_class = 'calEventAllAccepted'; + foreach($event['participants'] as $id => $status) + { + calendar_so::split_status($status,$quantity,$role); + + switch ($status) + { + case 'A': + break; + case 'U': + $status_class = 'calEventSomeUnknown'; + break 2; // break foreach + default: + $status_class = 'calEventAllAnswered'; + break; + } + } // seperate each participant types $part_array = array(); if ($this->allowEdit) @@ -1238,6 +1262,7 @@ class calendar_uiviews extends calendar_ui '&width='.$width.') repeat-y '.$bodybgcolor2), 'Small' => $small ? 'Small' : '', // to use in css class-names 'indent' => $indent."\t", + 'status_class' => $status_class, )); /* not used at the moment foreach(array( @@ -1260,7 +1285,7 @@ class calendar_uiviews extends calendar_ui $view_link = $GLOBALS['egw']->link('/index.php',array('menuaction'=>'calendar.calendar_uiforms.edit','cal_id'=>$event['id'],'date'=>$this->bo->date2string($event['start']))); - if ($event['recur_type']!= MCAL_RECUR_NONE) + if ($event['recur_type'] != MCAL_RECUR_NONE) { $view_link_confirm_abort = $GLOBALS['egw']->link('/index.php',array('menuaction'=>'calendar.calendar_uiforms.edit','cal_id'=>$event['id'],'date'=>$this->bo->date2string($event['start']),'exception'=>1)); $view_link_confirm_text=lang('do you want to edit serialevent als exception? - Ok = Edit Exception, Abort = Edit Serial'); @@ -1271,8 +1296,6 @@ class calendar_uiviews extends calendar_ui $popup = ($is_private || ! $this->allowEdit) ? '' : ' onclick="'.$this->popup($view_link).'; return false;"'; } //_debug_array($event); - //echo $event['id']."?
"; - if ($return_array) { @@ -1310,14 +1333,14 @@ class calendar_uiviews extends calendar_ui $draggableID = 'drag_'.$event['id'].'_O'.$event['owner'].'_C'.$owner; - $html = $indent.'
0,'Padding'=>0)). '>'."\n".$ie_fix.$html."\n". $indent."
"."\n"; // ATM we do not support whole day events or recurring events for dragdrop - if ( is_object($this->dragdrop) && + if (is_object($this->dragdrop) && $this->use_time_grid && $this->bo->check_perms(EGW_ACL_EDIT,$event) && !$event['whole_day_on_top'] && diff --git a/calendar/templates/default/app.css b/calendar/templates/default/app.css index db6c9c8ecb..6e882be6d4 100644 --- a/calendar/templates/default/app.css +++ b/calendar/templates/default/app.css @@ -199,7 +199,6 @@ e.g. the div with class calTimeGrid is generated by the timeGridWidget method of overflow: hidden; z-index: 20; border-width: 1px; - border-style: solid; border-radius: 6px; -moz-border-radius: 6px; /* set via inline style on runtime: @@ -213,9 +212,31 @@ e.g. the div with class calTimeGrid is generated by the timeGridWidget method of cursor: pointer; } -.calEventTooltip{ - border-width: 1px; +/** + * All participants accepted the invitation + */ +.calEventAllAccepted { border-style: solid; + border-width: 1px; +} + +/** + * All participants answered the invitation, but not all accepted + */ +.calEventAllAnswered { + border-style: dotted; + border-width: 2px; +} + +/** + * Some participants did NOT answer the invitation + */ +.calEventSomeUnknown { + border-style: dashed; + border-width: 1px; +} + +.calEventTooltip{ border-radius: 6px; -moz-border-radius: 6px; max-height: 400px; diff --git a/calendar/templates/default/event_widget.tpl b/calendar/templates/default/event_widget.tpl index 44e1ed19c7..a49f54ded9 100644 --- a/calendar/templates/default/event_widget.tpl +++ b/calendar/templates/default/event_widget.tpl @@ -13,7 +13,7 @@ -
+
{timespan}
{icons}
diff --git a/calendar/templates/default/images/cnr-pending.png b/calendar/templates/default/images/cnr-pending.png index b151e9681b..dffe0115e3 100755 Binary files a/calendar/templates/default/images/cnr-pending.png and b/calendar/templates/default/images/cnr-pending.png differ