General Actions:
Log-in
Wiki:
xwiki
▼
:
Document Index
»
Space:
Main
▼
:
Document Index
»
Page:
RecentChanges
Search
en
Page Actions:
Export
▼
:
Export as PDF
Export as RTF
Export as HTML
More actions
▼
:
Print preview
View Source
Wiki Home
»
Dashboard
»
Recent Changes
Wiki source code of
Recent Changes
Last modified by
Administrator
on 2010/03/02 20:29
Content
·
Comments
(0)
·
Attachments
(2)
·
History
·
Information
Show line numbers
{{velocity}} ## ## Recent changes. ## ## Optional parameters : ## ## Parameters which can be set in velocity before including this page or can be passed as HTTP parameters. ## Note that HTTP parameters supercede velocity set variables. ## ## - rcShowMinor (String set to "true" or "false"): show minor edits. ## - rcShowDiff (String set to "true" or "false"): show diff in items. ## - rcShowRss (String set to "true" or "false"): show RSS at the bottom of the list. ## - rcChangesNb (String set to a numerical value): number of recent changes to display. ## - rcSpace (List of string[s]): restrict recent changes retrieval to pages within the given space. ## - rcTag (List of string[s]): restrict recent changes retrieval to pages with the given tag. ## - rcAuthor (List of string[s]): restrict recent changes retrieval to pages with the given author. ## ## Parameters which can be set before including this page only. ## ## - rcDocumentNames (Collection): The list of recentlyChanged documents, to reuse a previous search query. ## $xwiki.jsx.use("Main.RecentChanges")## $xwiki.ssx.use("Main.RecentChanges")## #set($action = "$!request.getParameter('action')") ## ## Start execution timer ## #set($execStart = $util.getDate()) ## ## Go to diff URL service. ## #if($action == "goToDiffURL") #set($page = "$!request.getParameter('page')") #set($author = "$!request.getParameter('author')") #set($date = "$!request.getParameter('date')") #set($period = $xwiki.criteriaService.getPeriodFactory().createDayPeriod($date)) #set($criterion = $xwiki.criteriaService.getRevisionCriteriaFactory().createRevisionCriteria($author, $period)) #if("$!request.getParameter('rcShowMinor')" == "true") #set($discard = $criterion.setIncludeMinorVersions(true)) #end #set($diffDoc = $xwiki.getDocument($page)) #set($revisions = $diffDoc.getRevisions($criterion)) #set($rev1 = $listtool.get($revisions, 0)) #set($revMax = $revisions.size() - 1) #set($rev2 = $listtool.get($revisions, $revMax)) #if($rev2 != "1.1") #set($rev2 = $xwiki.getDocument($diffDoc, $rev2).getPreviousVersion()) #end $response.sendRedirect($diffDoc.getURL("view", "viewer=changes&rev1=${rev1}&rev2=${rev2}")) #end ## We have to use the HTML macro to avoid prints of multiple   on macro calls. {{html}} ## Manage minor edits. #setVariableFromRequest($rcShowMinor "rcShowMinor" false) ## Manage show diff in items. #setVariableFromRequest($rcShowDiff "rcShowDiff" true) ## Manage show RSS links. #setVariableFromRequest($rcShowRss "rcShowRss" true) ## Manage number of changes to display. #setVariableFromRequest($rcChangesNb "rcChangesNb" 30) ## Manage tag criterion #setVariableFromRequest($rcTag "rcTag" []) ## Manage space criterion #setVariableFromRequest($rcSpace "rcSpace" []) ## Manage author criterion #setVariableFromRequest($rcAuthor "rcAuthor" []) {{/html}} ## ## Create a string containing one or more ? given the number of values in the passed list. ## #macro(createQueryParameters $values $parameters) #foreach($value in $values) #if($parameters == "") #set($parameters = "?") #else #set($parameters = "${parameters}, ?") #end #end #end ## ## Retrieve recently changed documents. ## #set($criteria = $util.getHashMap()) #if("$!rcDocumentNames" == "") #if(!$xwiki.hasMinorEdit() || $rcShowMinor) #set ($hqlQuery = "where 1=1 order by doc.date desc") #else #set ($hqlQuery = ", XWikiRCSNodeInfo as ni where doc.id=ni.id.docId and ni.id.version2=1 #if(!$isAdvancedUser)and doc.author != 'superadmin'#end group by doc.space, doc.name order by max(ni.date) desc") #end ## Create space criterion. #if($rcSpace.size() > 0) #set($spaceParameters = "") #createQueryParameters($rcSpace $spaceParameters) #set($discard = $criteria.put("doc.space in (${spaceParameters})", $rcSpace)) #end ## Create tag criterion. #if("$!xwiki.getPlugin('tag')" != "" && $rcTag.size() > 0) #set($docsWithTag = $util.getArrayList()) #foreach($item in $rcTag) #set($discard = $docsWithTag.addAll($xwiki.tag.getDocumentsWithTag($item))) #end #set($docsWithTagParameters = "") #createQueryParameters($docsWithTag $docsWithTagParameters) #set($discard = $criteria.put("doc.fullName in (${docsWithTagParameters})", $docsWithTag)) #end #if($rcAuthor.size() > 0) #set($authorParameters = "") #createQueryParameters($rcAuthor $authorParameters) #set($discard = $criteria.put("doc.author in (${authorParameters})", $rcAuthor)) #end ## Exclude blacklisted spaces if displaying changes for a whole wiki #if($rcSpace.size() == 0) #set($blacklistedSpacesParameters = "") #createQueryParameters($blacklistedSpaces $blacklistedSpacesParameters) #set($discard = $criteria.put("doc.space not in (${blacklistedSpacesParameters})", $blacklistedSpaces)) #end #if($criteria.size() > 0) ## If any, loop over criterias to add them to the query, then perform the query. #set($values = $util.getArrayList()) #foreach($criterion in $criteria.keySet()) #if($criteria.get($criterion).size() > 0) #set($hqlQuery = $hqlQuery.replaceAll("where", "where ${criterion} and")) #set($discard = $values.addAll($criteria.get($criterion))) #end #end #set($rcDocumentNames = $xwiki.searchDocuments($hqlQuery, $rcChangesNb, 0, $values)) #else ## No query criterion, perform the query as is. #set($rcDocumentNames = $xwiki.searchDocuments($hqlQuery, $rcChangesNb, 0)) #end #end ## ## Prepare comments handling #set($commentsOrder = false) #if($xwiki.getWebPreferenceAsInt("commentsorder",1) == 0) #set($commentsOrder = true) #end ## ## Comment handling macro. ## Retreive page's last comment if any and ## overwrite variables if this comment is the last modification on the page. ## #macro(handleComment $rcDoc $rcType $rcDt $commentsOrder) ## Retrieve comments from last to first. #set($rcComments = $rcDoc.getComments($commentsOrder)) #if($rcComments.size() > 0) ## Retrieve last comment. #set($lastComment = $listtool.get($rcComments, 0)) #set($lastCommentDate = $lastComment.getProperty("date").getValue()) ## If the last modification on the page is the comment, overwrite values. ## We don't test compareTo() == 0 since the comment date and the save date may vary a little bit. #if($lastCommentDate.compareTo($rcDt.toDate()) > -1 && $lastCommentDate.compareTo($rcDt.toDate()) <= 1) #set($rcType = "comment") #end #end #end ## ## Attachments handling macro. ## Retrieve page's attachments and put those which upload matches the modification entry (author and timeframe) ## in the $rcAttachments List. ## #macro(handleAttachments $rcDoc $rcAuthor $rcDt) #set($attachments = $rcDoc.getAttachmentList()) #foreach($attachment in $attachments) #set($attachmentDt = $xwiki.jodatime.getDateTime($attachment.getDate().getTime())) #if($rcAuthor == $attachment.getAuthor() && $rcDt.getYear() == $attachmentDt.getYear() && $rcDt.getDayOfYear() == $attachmentDt.getDayOfYear()) #set($discard = $rcAttachments.add($attachment)) #end #end #end ## ## ## #macro(displayRcAuthor $author) #useravatar($author) <br/><span class="recentChangesAuthor"> #if($author == "XWikiGuest") Guest #else #set($userName = $xwiki.getUserName($author)) #if($userName == "") ## userName can be empty when the page has been saved without specifying the author. ## We're printing a non-breaking space to ensure xhtml validity (ie: avoid empty paragraph). #else $userName #end #end </span> #end #macro(displayRcVersion $version) #if($version == "1.1") <span class="rcVersion">(<span class="newVersion">$msg.get("xe.recentchanges.entry.new")</span>)</span> #end #end ## ## Display the recent changes list. ## #set($previousDt = $xwiki.jodatime.getDateTime(0)) #set($discard = $previousDate.setTime(0)) #set($previousAuthor = "") ## Get this very doc, useful when it is included from another one. #set($recentChangesDoc = $xwiki.getDocument("Main.RecentChanges")) {{html clean="false"}} <table class="recentChanges" summary="$msg.get('xe.recentchanges.summary')"> <tr class="recentChangesHeader"><th scope="col">$msg.get("xe.recentchanges.column.authoranddate")</th><th scope="col">$msg.get("xe.recentchanges.column.changes")</th></tr> #foreach ($rcDocName in $rcDocumentNames) #set($row = "") #set($rcAttachments = $util.arrayList) ## Verify user access level on the document #if ($xwiki.hasAccessLevel("view", $context.user, "${context.database}:${rcDocName}")) #set($rcDoc = $xwiki.getDocument($rcDocName)) #set($rcType = "page") #set($rcAuthor = $rcDoc.getAuthor()) ## TODO : check comments #set($rcDt = $xwiki.jodatime.getDateTime($rcDoc.getDate().getTime())) ## The handleComment macro overwrites rcType variable if the last modification is a comment. #handleComment($rcDoc $rcType $rcDt $commentsOrder) ## The handleAttachments macro put a list of attachments uploaded during the day by the author in $rcAttachments. #handleAttachments($rcDoc $rcAuthor $rcDt) #if($rcAuthor == $previousAuthor && $rcDt.getYear() == $previousDt.getYear() && $rcDt.getDayOfYear() == $previousDt.getDayOfYear()) ## Same day and author, continue in the same row. #else ## Different day or author, end previous row and start a new one. #if($velocityCount > 1)</ul></td></tr>#end ## close previous row if needed <tr><td class="recentChangesLeft">#displayRcAuthor($rcAuthor)<br/> <span class="recentChangesDate">$xwiki.formatDate($rcDt.toDate(), "MMMM d")</span></td> <td class="recentChangesRight"><ul class="xlist"> ## open next cell #end ## Compute a GUID for this modification with page name, modification date and author. #set($modGUID = "${rcDoc.fullName}_${xwiki.formatDate($rcDt.toDate(), 'yyyyMMdd')}_${rcAuthor}") ## Build the URL used to retreive the diff viewer URL #set($goToDiffURL = $recentChangesDoc.getURL("view", "xpage=plain&action=goToDiffURL&page=${rcDoc.getFullName()}&author=${rcAuthor}&date=${xwiki.formatDate($rcDt.toDate(), 'yyyyMMdd')}&rcShowMinor=${rcShowMinor}")) <li class="xitem xunderline xhighlight ${rcType}"> <div class="xitemcontainer"> #if($rcType == "comment") <div class="modifiedPage"><a href="$rcDoc.getURL()" title="$msg.get("xe.recentchanges.entry.comment.tooltip", [$xwiki.formatDate($rcDt.toDate(), "HH:mm")]) ">$xwiki.getXMLEncoded($rcDoc.getDisplayTitle())</a></div> #if($rcShowDiff) <div class="xshowonhover modifiedPageActions"><a class="ajax" href="$rcDoc.getURL("vire", "viewer=comments")" onclick="toggleClass(document.getElementById('$modGUID'), 'hidden'); toggleClass(document.getElementById('${modGUID}_comShow'), 'hidden'); toggleClass(document.getElementById('${modGUID}_comHide'), 'hidden'); return false;"><span id="${modGUID}_comShow">[+] $msg.get("xe.recentchanges.entry.comment.show")</span><span id="${modGUID}_comHide" class="hidden">[-] $msg.get("xe.recentchanges.entry.comment.hide")</span> $msg.get("xe.recentchanges.entry.comment")</a></div> <div class="commentContainer hidden" id="$modGUID"> <div class="commentQuote lQuo"> </div> <div class="commentQuote rQuo"> </div> <div class="comment"> {{/html}} $lastComment.get("comment") {{html clean="false"}} </div> ## Display discussion link, this link point to the comments anchor. <div class="commentAdd"><img src="$xwiki.getSkinFile("icons/silk/comment.gif")" alt="Reply icon" /> <a href="${rcDoc.getURL("view")}#Comments">$msg.get("xe.recentchanges.entry.comment.seediscussion")</a></div> </div> #end #else <div class="modifiedPage"><a href="$rcDoc.getURL()" title="$msg.get("xe.recentchanges.entry.page.tooltip", [$rcDoc.getVersion(), $xwiki.formatDate($rcDt.toDate())])">$xwiki.getXMLEncoded($rcDoc.getDisplayTitle())</a> #displayRcVersion($rcDoc.getVersion())</div> #if($rcShowDiff) <div class="xshowonhover modifiedPageActions"><a href="$goToDiffURL" title="$msg.get('xe.recentchanges.entry.page.seemodifications.title', [$rcDoc.fullName])">$msg.get("xe.recentchanges.entry.page.seemodifications")</a></div> ## If the author has uploaded attachments during the day in this page, display them. #if($rcAttachments.size() > 0) <div class="attachmentContainer" id="$modGUID"> <ul> #foreach($rcAttachment in $rcAttachments) <li class="attachment"><a href="$rcDoc.getAttachmentURL($rcAttachment.filename)">$rcAttachment.filename</a> #displayRcVersion($rcAttachment.getVersion())</li> #end </ul> </div> #end #end #end <div class="xspacer"> </div> </div> </li> #end #set($previousAuthor = $rcAuthor) #set($previousDt = $rcDt) #end ## Close last row if any. #if($rcDocumentNames.size() > 1)</ul></td></tr>#end </table> {{/html}} ## ## Rebuild URL query string ## Workaround until we fix $request.getQueryString() ## #set($queryString = "") #set($paramMap = $request.getParameterMap()) #foreach($key in $paramMap.keySet()) #foreach($value in $paramMap.get($key)) #set($queryString = "${queryString}&${key}=${value}") #end #end ## ## Provide links to display minor edits and RSS feed. ## #if($xwiki.hasMinorEdit()) {{html}} <p class="recentChangesMoreActions"> #if($rcShowMinor) <a href="$xwiki.getURL($tdoc.getFullName(), "view", $queryString.replaceAll('rcShowMinor=true', ''))"><img src="$xwiki.getSkinFile("icons/silk/zoom_out.gif")" alt="Hide minor icon"/>$msg.get("xe.recentchanges.hideminor")</a> #else <a href="$xwiki.getURL($tdoc.getFullName(), "view", "${queryString}&rcShowMinor=true")"><img src="$xwiki.getSkinFile("icons/silk/zoom_in.gif")" alt="Show minor icon"/>$msg.get("xe.recentchanges.showminor")</a> #end #if($rcShowRss) #set($rssURL = "") #set($parameters = 'xpage=plain&outputSyntax=plain') #if($rcTag.size() > 0) #set($parameters = "${parameters}&tag=$listtool.get($rcTag, 0)") #end #if($rcSpace.size() > 0) #set($parameters = "${parameters}&space=$listtool.get($rcSpace, 0)") #end #set($rssURL = $xwiki.getURL('Main.WebRss', 'view', $parameters)) <a href="${rssURL}"><img src="$xwiki.getSkinFile("icons/silk/feed.gif")" alt="RSS icon"/>$msg.get("xe.recentchanges.rssfeed")</a> #end </p> {{/html}} #end {{/velocity}}
My Recent Modifications
replaceAll('([|]|\
Navigation
Main
Activity
ApplicationResources_da
Dashboard
Dashboard
Filarkiv
Filarkiv
Generelle informationer
Kafka ELK
MessageSenderMacro
Prisliste for Print
RecentChanges
RecentMembers
RssFeeds
Spaces
Syntaks
Tags
WebHome
WebHome
Welcome
Welcome
Welcome
Welcome
Welcome
Welcome
Welcome
Welcome
Welcome
Welcome
Welcome
Welcome
Welcome
Welcome
Welcome
Welcome
WhatsNew
Samfundet
Dokumentation
WebHome