Wiki source code of Release Notes Changes

Version 1.1 by Vincent Massol on 2016/09/28

Hide last authors
Vincent Massol 1.1 1 = Generate Report =
2
3 Notes:
4 * Lists are allowed by using commas (e.g. "High,Medium")
5 * Wildcards are allowed (e.g. "8.3%")
6
7 {{velocity}}
8 #set ($topSpace = $doc.documentReference.extractFirstReference('SPACE').getName())
9 $!xwiki.jsx.use($doc.documentReference.toString())
10 {{html clean="false"}}
11 <form action="$xwiki.getURL("${topSpace}.Code.Report")">
12 <input type="hidden" name="action" value="report"/>
13 <select name="displayer">
14 <option value="grid">Grid</option>
15 <option value="flow">Flow</option>
16 <option value="simple">Simple</option>
17 <option value="list">List</option>
18 </select>
19 <input id="product" type="text" name="products" value="Products..." size="30" class="withTip"/>
20 <input id="version" type="text" name="versions" value="Versions..." size="30" class="withTip"/>
21 <input id="category" type="text" name="categories" value="Categories..." size="30" class="withTip"/>
22 <input id="audience" type="text" name="audience" value="Audience..." size="30" class="withTip"/>
23 <input id="importance" type="text" name="importance" value="Importance..." size="30" class="withTip"/>
24 <input type="radio" name="containsScreenshots" value="true"> With Screenshots
25 <input type="radio" name="containsScreenshots" value="false"> Without Screenshots
26 <span class="buttonwrapper">
27 <input class="button" type="submit" value="Generate Report"/>
28 </span>
29 </form>
30 {{/html}}
31 {{/velocity}}
32
33 = Existing Changes =
34
35 {{velocity}}
36 #set ($productName = $request.product)
37 #if ("$!productName" == '')
38 #set ($productName = "XWiki")
39 #end
40 ## Add new change
41 #if ($request.action == 'add')
42 #if ("$!request.version" == '')
43 {{error}}Version must be set for creating a new Release Note change!{{/error}}
44
45 #else
46 ## Compute automatically a new page name, using the format "Change###" where ### is a zero-padded number.
47 #set ($shortVersion = $stringtool.replaceChars($request.version, "-", ""))
48 #set ($shortVersion = $stringtool.upperCase($shortVersion))
49 #set ($shortVersion = $shortVersion.replace('MILESTONE', 'M'))
50 #set ($versionSpaceReference = $services.model.createDocumentReference('', ["$topSpace", 'Data', "$productName", "$shortVersion"], 'WebHome').parent)
51 #set ($versionSpaceReferenceString = $services.model.serialize($versionSpaceReference))
52 ## Make sure we have existing entries, otherwise start at 1
53 #set ($query = $services.query.xwql("from doc.object(${topSpace}.Code.ChangesClass) as changes where doc.space like :space").bindValue('space', "${versionSpaceReferenceString}%"))
54 #if ($query.count() > 0)
55 #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())
56 #set ($currentNumber = $numbertool.toNumber($services.model.resolveDocument($highest[0]).parent.name.substring(6)).intValue())
57 #set ($nextUniqueNumber = $numbertool.format('000', $mathtool.add($currentNumber, 1)))
58 #else
59 #set ($nextUniqueNumber = '001')
60 #end
61 #set ($versionPageReference = "${versionSpaceReferenceString}.Change${nextUniqueNumber}.WebHome")
62 $response.sendRedirect($xwiki.getURL($versionPageReference.toString(), 'inline', "$!{request.queryString}&shortVersion=${escapetool.url($shortVersion)}"))
63 #end
64 #end
65 {{html clean='false'}}
66 <form>
67 <input type="hidden" name="action" value="add"/>
68 <input type="hidden" name="template" value="${topSpace}.Code.ChangesTemplate"/>
69 <input id="product2" type="text" name="product" value="XWiki" size="16"/>
70 <input id="version2" type="text" name="version" value="Product version..." size="16" class="withTip"/>
71 <span class="buttonwrapper">
72 <input class="button" type="submit" value="Add Change"/>
73 </span>
74 </form>
75 {{/html}}
76
77 #set($columns = ['doc.creationDate', 'product', 'version', 'category', 'audience', 'title', 'importance', 'summary' ])
78 #set($columnsProperties = {
79 'doc.creationDate' : { 'type' : 'date', 'link' : true },
80 'product' : { 'type' : 'text', 'match': 'partial' },
81 'version' : { 'type' : 'text', 'match': 'partial' },
82 'category' : { 'type' : 'text', 'match': 'partial' },
83 'audience' : { 'type' : 'text', 'match': 'partial' },
84 'title' : { 'type' : 'text', 'sortable' : false },
85 'importance' : { 'type' : 'text'},
86 'summary' : { 'type' : 'text', 'html' : 'true', 'sortable' : false }
87 })
88 #set($options = {
89 "className" : "${topSpace}.Code.ChangesClass",
90 "translationPrefix" : "releasenotes.changes.livetable.",
91 "tagCloud" : true,
92 "rowCount": 15
93 })
94 #livetable("releasenoteschanges" $columns $columnsProperties $options)
95 {{/velocity}}

Get Connected