## --------------------------------------------------------------------------- ## See the NOTICE file distributed with this work for additional ## information regarding copyright ownership. ## ## This is free software; you can redistribute it and/or modify it ## under the terms of the GNU Lesser General Public License as ## published by the Free Software Foundation; either version 2.1 of ## the License, or (at your option) any later version. ## ## This software is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ## Lesser General Public License for more details. ## ## You should have received a copy of the GNU Lesser General Public ## License along with this software; if not, write to the Free ## Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ## 02110-1301 USA, or see the FSF site: http://www.fsf.org. ## --------------------------------------------------------------------------- ### ### Document history table ### ### Displays a paged list of document versions, with the possiblity to view a version, compare two ### versions, delete one or a range of versions, restore a version as the current document. ### ## ## Settings, compute what versions should be displayed. ## #if ($xcontext.action == 'edit') #set ($viewer = 'editor=history') #else #set ($viewer = 'viewer=history') #end #set ($minorVersions = (!$xwiki.hasMinorEdit()) || ("$!request.showminor" == 'true')) ## Revision criteria. The following requests for all versions, filtered by the minorVersions option. #set ($criteria = $xwiki.criteriaService.revisionCriteriaFactory.createRevisionCriteria('', $minorVersions)) #set ($totalVersions = $tdoc.getRevisionsCount($criteria)) #if ($totalVersions == 0) #warning ($services.localization.render('core.viewers.history.empty')) #else #set ($paginationParameters = {'url' : "?${viewer}&showminor=${minorVersions}", 'totalItems' : $totalVersions, 'defaultItemsPerPage' : 20, 'position': 'top'}) #pagination ($paginationParameters) ## Since we're displaying revisions starting from the last one, we need to mirror the range inside ## the total versions range. #set ($startAt = $totalVersions - ${paginationParameters.firstItem}) #set ($endAt = 0 - ${paginationParameters.itemsPerPage}) #set ($range = $xwiki.criteriaService.rangeFactory.createRange($startAt, $endAt)) ## Reuse the old object, just add the range. $criteria.setRange($range) #set ($versions = $tdoc.getRevisions($criteria)) #set ($discard = $collectiontool.reverseModifiable($versions)) #if ("$tdoc.realLocale" != '') #set ($lang = "&language=${tdoc.realLocale}") #else #set ($lang = '') #end ## #set ($documentExtensions = $services.extension.xar.getInstalledExtensions($doc.getDocumentReferenceWithLocale())) #set ($displayCompare = $totalVersions > 1 || ($totalVersions == 1 && $documentExtensions.size() > 0)) ## Pagination style $xwiki.ssfx.use('uicomponents/pagination/pagination.css', true)## ## ## Preamble, output some HTML. ##
## ## #set ($formname = 'historyform') $xwiki.jsfx.use('uicomponents/viewers/history.js', true)
## CSRF prevention ## Print the table header #if ($displayCompare) #end ## Might be disabled in certain wikis. #if($xwiki.hasEditComment()) #end ## Editors see the Revert button. Admins see the Revert and Delete buttons. #if ($hasEdit) #end ## ## Display, loop over the extracted revisions and print them in the table. ## #if (!$documentExtensions.isEmpty()) #foreach ($documentExtension in $documentExtensions) #set ($version = "xar:$documentExtension.id.id/$documentExtension.id.version") #if ($displayCompare) #end #set ($_versionURL = $tdoc.getURL('view', $escapetool.url({'rev' : $version}))) #if ($hasEdit || $hasAdmin) #set ($_rollbackURL = $tdoc.getURL('rollback', "form_token=$!{services.csrf.getToken()}&rev=${escapetool.url($version)}$lang")) #end #if ($hasAdmin) #end #end #end #foreach ($version in $versions) #set ($revinfo = $tdoc.getRevisionInfo($version)) #if ($tdoc.getRCSVersion() == $version) #else #end #if ($displayCompare) #end #if ($xwiki.hasEditComment()) #end #if ($hasEdit || $hasAdmin) #if ($tdoc.getRCSVersion()==$version) #else #end #end #if ($hasAdmin) #end #end ## foreach ## ## Footer, print some more HTML. ##
$services.localization.render('core.viewers.history.summary', [$escapetool.xml($doc.displayTitle), $versions.get($mathtool.sub($versions.size(), 1)), $versions.get(0)])
$services.localization.render('core.viewers.history.from') $services.localization.render('core.viewers.history.to')$services.localization.render('core.viewers.history.version') $services.localization.render('core.viewers.history.author') $services.localization.render('core.viewers.history.date')$services.localization.render('core.viewers.history.comment') $services.localization.render('core.viewers.history.actions')
$services.localization.render('core.viewers.history.extension.label', ["", '', "", $escapetool.xml($documentExtension.name), $escapetool.xml($documentExtension.id.version), ''])
$version $xwiki.getUserName($revinfo.author) $xwiki.formatDate($revinfo.date)$!{escapetool.xml($revinfo.comment)}$services.localization.render('core.viewers.history.currentVersion')
## Print the page navigation links, if needed. ## Since the history can be viewed both in edit and view mode, and these modes use a different parameter name, detect ## and set the right parameter here. #if ($xcontext.action == 'view') #set ($viewer = 'viewer=history') #else #set ($viewer = 'editor=history') #end #set ($discard = $paginationParameters.put('position', 'bottom')) #pagination ($paginationParameters)
#if ($displayCompare) #if ($hasAdmin) #end #end #if ($xwiki.hasMinorEdit()) #if ("$!request.showminor" != 'true') #else #end #end
#end ## versions.size