Wiki source code of Release Notes Changes
Version 1.1 by Vincent Massol on 2016/09/28
Show last authors
author | version | line-number | content |
---|---|---|---|
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}} |