This template first groups each issue by corresponding Component Version and within this group it groups issues by their type again. For each issue issue key (as link) and summary is listed.
Code Block |
---|
#disable_html_escaping() 2 3##Text##Text is escaped twice so that the characters generated in the text area display properly escaped (JRA-12184) 4#macro#macro (doubleEncode $html) 5 $textUtils.htmlEncode($textUtils.htmlEncode($html)) 6#end#end 7 8<title>$textUtils<title>$textUtils.htmlEncode($action.getText('release.notes.html.title', $project, $bundle.bundleName))</title> 9<body><body> 10 11#foreach#foreach ($cv in $bundleReleaseNotes) 12 #if ($cv.issueTypes.size() > 0) 13 <h2>$cv.componentName #if($cv.versionName) - $cv.versionName$#end<versionName#end</h2> 14 #foreach ($issueType in $cv.issueTypes) 15 #if($issueType.issues.size() > 0) 16 <h3>$textUtils.htmlEncode($issueType.name)</h3> 17 <ul> 18 #foreach ($issue in $issueType.issues) 19 <li>[<a href='$requestContext.canonicalBaseUrl/browse/$issue.key'>$issue.key</a>] - $textUtils.htmlEncode($issue.summary)</li> 20 #end 21 </ul> 22 #end 23 #end 24 #end 25#end#end 26 27 28<a<a name="editarea"></a> 29<h2>$action<h2>$action.getText('release.notes.edit.copy')</h2> 30<p>$action<p>$action.getText('release.notes.description')</p> 31 32<textarea<textarea rows="40" cols="120" id="editcopy"> 33 34#doubleEncode#doubleEncode($action.getText('release.notes.heading', $project, $bundle.name)) 35 36#foreach#foreach ($cv in $bundleReleaseNotes) 37 $cv.componentName #if($cv.versionName) - $cv.versionName$#end 38 #if ($cv.issueTypes.size() >0) 39 #foreach ($issueType in $cv.issueTypes) 40 #if($issueType.issues.size() > 0) 41 <h3>#doubleEncode($issueType.name)</h3> 42 <ul> 43 #foreach ($issue in $issueType.issues) 44 <li>[<a href='$!requestContext.canonicalBaseUrl/browse/$issue.key'>$issue.key</a>] - #doubleEncode($issue.summary)</li> 45 #end 46 </ul> 47 #end 48 #end 49 #end 50#end#end 51<</textarea> 52 53<</body> |