Исходный код вики Wiki Diff
Редактировал(а) Dmitriy Rybakov 05.08.2025, 13:07
Последние авторы
| author | version | line-number | content |
|---|---|---|---|
| 1 | {{velocity}} | ||
| 2 | #set ($discard = $xwiki.ssx.use($doc.fullName)) | ||
| 3 | #if ($request.source) | ||
| 4 | #set ($diffTool = $xwiki.parseGroovyFromPage("Admin.WikiDiffGroovy")) | ||
| 5 | #set ($discard = $diffTool.setContext($context, $xwiki)) | ||
| 6 | #set ($oldURL = $request.source) | ||
| 7 | #set ($newURL = $request.target) | ||
| 8 | #set ($oldContents = $diffTool.getZipContent($oldURL)) | ||
| 9 | #if ($newURL && $newURL != '') | ||
| 10 | #set ($newContents = $diffTool.getZipContent($newURL)) | ||
| 11 | #end | ||
| 12 | #set ($missingTargetDocList = []) | ||
| 13 | #foreach ($key in $oldContents.keySet()) | ||
| 14 | #if ($key != 'package.xml') | ||
| 15 | #set ($oldDoc = $diffTool.getDocument($oldContents.get($key))) | ||
| 16 | #if (!$oldDoc.getObject('XWiki.XWikiPreferences') && !$oldDoc.getObject('XWiki.XWikiGroups')) | ||
| 17 | #set ($oldContent = $diffTool.getXML($oldDoc)) | ||
| 18 | #if ($newContents) | ||
| 19 | #set ($newContent = $diffTool.getXMLFromString($newContents.get($key))) | ||
| 20 | #else | ||
| 21 | #set ($page = $oldDoc.getFullName()) | ||
| 22 | #set ($newDoc = $xwiki.getDocument($page)) | ||
| 23 | #if ($oldDoc.getLanguage() != '') | ||
| 24 | #set ($newDoc = $newDoc.getTranslatedDocument($oldDoc.getLanguage())) | ||
| 25 | #end | ||
| 26 | #set ($newContent = $diffTool.getXML($newDoc)) | ||
| 27 | #end | ||
| 28 | #set ($comparedContent = $diffTool.compare($oldContent, $newContent)) | ||
| 29 | #if ($oldContent && $comparedContent) | ||
| 30 | #set ($diffResult = $diffTool.diff($oldContent, $newContent)) | ||
| 31 | #set ($skipNewRev = "$!request.skipNewRev" == 'true') | ||
| 32 | #set ($isOtherThanNewRevDiff = $diffTool.isOtherThanNewRevisonDiff($diffResult)) | ||
| 33 | #if (!$skipNewRev || ($skipNewRev && $isOtherThanNewRevDiff) || $request.debug) | ||
| 34 | #if ($newDoc.isNew()) | ||
| 35 | #set ($discard = $missingTargetDocList.add($key)) | ||
| 36 | #else | ||
| 37 | * $key has changed [[View Diff>>?page=${key}&source=${request.source}&target=${request.target}&skipNewRev=$!{request.skipNewRev}]] | ||
| 38 | #if ($request.page == $key) | ||
| 39 | **Differences**: | ||
| 40 | |||
| 41 | {{html clean="false"}} | ||
| 42 | $diffResult | ||
| 43 | {{/html}} | ||
| 44 | |||
| 45 | #if ($request.debug) | ||
| 46 | #set ($discard = $diffTool.save('file1.txt', $oldContent, true)) | ||
| 47 | #set ($discard = $diffTool.save('file1b.txt', $oldContent, false)) | ||
| 48 | #set ($discard = $diffTool.save('file2.txt', $newContent, true)) | ||
| 49 | #set ($discard = $diffTool.save('file2b.txt', $newContent, false)) | ||
| 50 | #end | ||
| 51 | #end | ||
| 52 | #end | ||
| 53 | #end | ||
| 54 | #end | ||
| 55 | #end | ||
| 56 | #end | ||
| 57 | #end | ||
| 58 | #if ($missingTargetDocList.size() > 0) | ||
| 59 | |||
| 60 | {{warning}} | ||
| 61 | Documents that don't exist in the **target** XAR | ||
| 62 | #foreach ($key in $missingTargetDocList) | ||
| 63 | * $key | ||
| 64 | #end | ||
| 65 | {{/warning}} | ||
| 66 | #end | ||
| 67 | #else | ||
| 68 | #set ($version = $xwiki.version) | ||
| 69 | #if ($services.flavor) ##that is not really correct. parse $version instead? | ||
| 70 | #set ($mode = 'platform') | ||
| 71 | ##TODO: this does not check dependencies and is pretty worthless ATM | ||
| 72 | #set ($artifactId = 'xwiki-platform-distribution-flavor-common') | ||
| 73 | #elseif ($services.wikimanager) | ||
| 74 | #set ($mode = 'manager') | ||
| 75 | #set ($artifactId = 'xwiki-manager-ui-all') | ||
| 76 | #else | ||
| 77 | #set ($mode = 'enterprise') | ||
| 78 | #set ($artifactId = 'xwiki-enterprise-ui-all') | ||
| 79 | #end | ||
| 80 | #set ($source = "http://maven.xwiki.org/releases/org/xwiki/${mode}/${artifactId}/${version}/${artifactId}-${version}.xar") | ||
| 81 | {{html clean=false}} | ||
| 82 | <form action=""> | ||
| 83 | <strong>Source URL:</strong><br /> | ||
| 84 | <input type="text" name="source" value="$source" size="120" /> | ||
| 85 | <br /> | ||
| 86 | <strong>Target URL:</strong><br /> | ||
| 87 | leave empty to compare to current wiki<br /> | ||
| 88 | <input type="text" name="target" value="" size="120" /> | ||
| 89 | <br /> | ||
| 90 | <input type="checkbox" name="skipNewRev" value="true"> Skip changes that reflect only new revisions of the document and nothing else | ||
| 91 | <br /> | ||
| 92 | <input type="submit" value="Go" /> | ||
| 93 | </form> | ||
| 94 | {{/html}} | ||
| 95 | #end | ||
| 96 | {{/velocity}} |