Index: RecentActivity.xml =================================================================== --- RecentActivity.xml (revision 32702) +++ RecentActivity.xml (working copy) @@ -357,6 +357,7 @@ } .activityList .attachment { + margin: 0; padding: 3px 0 0; } /** <end> **/ @@ -777,6 +778,16 @@ #end #end #** + * Check if the document version exists + *# +#macro(isDocumentVersionValid $event) + #set($isDocumentVersionValid = false) + #set($pageDoc = $xwiki.getDocument($event.page)) + #if($xwiki.getDocument($pageDoc, $event.version)) + #set($isDocumentVersionValid = true) + #end +#end +#** * Check if the current page event list entry is expandable (there are at least 2 events for the current page) or not. *# #macro(isPageEntryExpandable) @@ -866,6 +877,17 @@ #end #end #** + * Get comment content + *# +#macro(getCommentContent $event $commentContent) + #set($commentContent = '') + #isDocumentVersionValid($event) + #if($isDocumentVersionValid) + #set($pageDocRevision = $xwiki.getDocument($xwiki.getDocument($event.page), $event.version)) + #set($commentContent = $!pageDocRevision.getObject('XWiki.XWikiComments', $util.parseInt($event.param2)).getProperty('comment').value) + #end +#end +#** * Remove duplicated 'update' and 'addAttachment' events for the current page entry * NOTE: each time an event != 'update' (like 'addAttachment, updateComment' ...) is fired, an extra 'update' event is fired too (for backward compatibility reasons) *# @@ -920,7 +942,6 @@ #end #end ## - ## ## Build the clean event list ## --------------------------------------------------------------- #if(!$isConsecutiveUpdateEvent && !($isCreateOrDeleteRelatedEvent && $event.type != 'create' && $event.type != 'delete') && !$isAnnotationUpdateRelatedEvent && !$isUpdateOrAddAttachmentRelatedEvent && $newList.size() < $aSubEntries) @@ -996,11 +1017,10 @@ * Display comment *# #macro(displayComment $event) - #set($pageDoc = $xwiki.getDocument($event.page)) - #if($xwiki.getDocument($pageDoc, $event.version)) - #set($pageDocRevision = $xwiki.getDocument($pageDoc, $event.version)) + #getCommentContent($event $commentContent) + #if("$!commentContent" != '') <div class="comment"> - $!pageDocRevision.getObject('XWiki.XWikiComments', $util.parseInt($event.getParam2())).getProperty('comment').value + $!commentContent </div> #end #end @@ -1008,9 +1028,9 @@ * Display annotation *# #macro(displayAnnotation $event) - #set($pageDoc = $xwiki.getDocument($event.page)) - #if($xwiki.getDocument($pageDoc, $event.version)) - #set($pageDocRevision = $xwiki.getDocument($pageDoc, $event.version)) + #isDocumentVersionValid($event) + #if($isDocumentVersionValid) + #set($pageDocRevision = $xwiki.getDocument($xwiki.getDocument($event.page), $event.version)) <div class="annotated">$pageDocRevision.getObject('AnnotationCode.AnnotationClass', $util.parseInt($event.param2)).getProperty('selection').value</div> <div class="annotation">$pageDocRevision.getObject('AnnotationCode.AnnotationClass', $util.parseInt($event.param2)).getProperty('annotation').value</div> #end @@ -1028,6 +1048,9 @@ <img class="activityActionAvatar" src="$xwiki.getSkinFile($activityActionsMap.get($eventType), true)" alt="$msg.get("xe.activity.action.${eventType}", [$relatedEventsNo])" title="$msg.get("xe.activity.action.${eventType}", [$relatedEventsNo])" /> </span> #end +#** + * Display the summary (avatars with action icon) for the current entry + *# #macro(displayActivityListItemSummary) <div class="activitySummary"> #foreach($event in $events) @@ -1036,9 +1059,11 @@ #end </div> #end -#macro(displayEventContent) +#** + * Check if the current subentry is expandable + *# +#macro(isEventEntryExpandable $event) #set($isEventEntryExpandable = false) - #isAttachmentEvent($event) #if($isAnnotationEvent) #set($annotationObj = $xwiki.getDocument($event.page).getObject('AnnotationCode.AnnotationClass', $util.parseInt($event.param2))) #set($selection = $annotationObj.getProperty('selection').value) @@ -1046,27 +1071,41 @@ #if("$!selection" != '' && "$!annotation" != '') #set($isEventEntryExpandable = true) #end - #end - <li class="activityItem #if($isAttachmentEvent || ($isCommentEvent && $event.type != 'deleteComment') || $isEventEntryExpandable) collapsed #end"> - #if($isAttachmentEvent || ($isCommentEvent && $event.type != 'deleteComment')) + #elseif($isAttachmentEvent && "$!event.param2" != '') + #set($isEventEntryExpandable = true) + #elseif($isCommentEvent) + #getCommentContent($event $commentContent) + #if("$!commentContent" != '') #set($isEventEntryExpandable = true) #end + #end +#end +#** + * Display the content for the current event + *# +#macro(displayEventContent) + #set($isEventEntryExpandable = false) + #isAttachmentEvent($event) + #isEventEntryExpandable($event) + <li class="activityItem #if($isEventEntryExpandable) collapsed #end"> #displayActivityListItemHeader(false false $isEventEntryExpandable) - <div class="activityContent"> - #if($event.type == 'addAttachment') - #foreach($event in $xwiki.activitystream.getRelatedEvents($event)) - #isAttachmentEvent($event) - #if($isAttachmentEvent) - #displayAttachment($event) + #if($isEventEntryExpandable) + <div class="activityContent"> + #if($isAttachmentEvent) + #foreach($event in $xwiki.activitystream.getRelatedEvents($event)) + #isAttachmentEvent($event) + #if($isAttachmentEvent) + #displayAttachment($event) + #end #end #end - #end - #if($isCommentEvent && $event.type != 'deleteComment') - #displayComment($event) - #elseif($isAnnotationEvent && $isEventEntryExpandable) - #displayAnnotation($event) - #end - </div> + #if($isCommentEvent) + #displayComment($event) + #elseif($isAnnotationEvent && $isEventEntryExpandable) + #displayAnnotation($event) + #end + </div> + #end </li> #set($previousEventType = $event.type) #set($previousEventUser = $event.user)