Wiki source code of Release Notes Changes

Version 2.1 by Vincent Massol on 2016/09/30

Show last authors
1 = Generate Report =
2
3 {{include reference="ReleaseNotes.Code.HomeGenerateReleaseNotes"/}}
4
5 = Existing Changes =
6
7 {{velocity}}
8 #set ($productName = $request.product)
9 #if ("$!productName" == '')
10 #set ($productName = "XWiki")
11 #end
12 ## Add new change
13 #if ($request.action == 'add')
14 #if ("$!request.version" == '')
15 {{error}}Version must be set for creating a new Release Note change!{{/error}}
16
17 #else
18 ## Compute automatically a new page name, using the format "Change###" where ### is a zero-padded number.
19 #set ($shortVersion = $stringtool.replaceChars($request.version, "-", ""))
20 #set ($shortVersion = $stringtool.upperCase($shortVersion))
21 #set ($shortVersion = $shortVersion.replace('MILESTONE', 'M'))
22 #set ($versionSpaceReference = $services.model.createDocumentReference('', ["$topSpace", 'Data', "$productName", "$shortVersion"], 'WebHome').parent)
23 #set ($versionSpaceReferenceString = $services.model.serialize($versionSpaceReference))
24 ## Make sure we have existing entries, otherwise start at 1
25 #set ($query = $services.query.xwql("from doc.object(${topSpace}.Code.ChangesClass) as changes where doc.space like :space").bindValue('space', "${versionSpaceReferenceString}%"))
26 #if ($query.count() > 0)
27 #set ($highest = $services.query.xwql("from doc.object(${topSpace}.Code.ChangesClass) as changes where doc.space like '${versionSpaceReferenceString}%' order by doc.space desc").setLimit(1).execute())
28 #set ($currentNumber = $numbertool.toNumber($services.model.resolveDocument($highest[0]).parent.name.substring(6)).intValue())
29 #set ($nextUniqueNumber = $numbertool.format('000', $mathtool.add($currentNumber, 1)))
30 #else
31 #set ($nextUniqueNumber = '001')
32 #end
33 #set ($versionPageReference = "${versionSpaceReferenceString}.Change${nextUniqueNumber}.WebHome")
34 $response.sendRedirect($xwiki.getURL($versionPageReference.toString(), 'inline', "$!{request.queryString}&shortVersion=${escapetool.url($shortVersion)}"))
35 #end
36 #end
37 {{html clean='false'}}
38 <form>
39 <input type="hidden" name="action" value="add"/>
40 <input type="hidden" name="template" value="${topSpace}.Code.ChangesTemplate"/>
41 <input id="product" type="text" name="product" value="XWiki" size="16"/>
42 <input id="version" type="text" name="version" value="Product version..." size="16" class="withTip"/>
43 <span class="buttonwrapper">
44 <input class="button" type="submit" value="Add Change"/>
45 </span>
46 </form>
47 {{/html}}
48
49 #set($columns = ['doc.creationDate', 'product', 'version', 'category', 'audience', 'title', 'importance', 'summary' ])
50 #set($columnsProperties = {
51 'doc.creationDate' : { 'type' : 'date', 'link' : true },
52 'product' : { 'type' : 'text', 'match': 'partial' },
53 'version' : { 'type' : 'text', 'match': 'partial' },
54 'category' : { 'type' : 'text', 'match': 'partial' },
55 'audience' : { 'type' : 'text', 'match': 'partial' },
56 'title' : { 'type' : 'text', 'sortable' : false },
57 'importance' : { 'type' : 'text'},
58 'summary' : { 'type' : 'text', 'html' : 'true', 'sortable' : false }
59 })
60 #set($options = {
61 "className" : "${topSpace}.Code.ChangesClass",
62 "translationPrefix" : "releasenotes.changes.livetable.",
63 "tagCloud" : true,
64 "rowCount": 15
65 })
66 #livetable("releasenoteschanges" $columns $columnsProperties $options)
67 {{/velocity}}

Get Connected