<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Votes on MNG issues in Jira</title>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
	<style type="text/css">
	<!--
	body {
		font-family: Arial, Helvetica, sans-serif;
	}
	th {
		color: #FFFFFF;
		background-color: #333333;
		padding: 5px;
	}
	td {
		background-color: #CCCCCC;
		padding: 3px;
	}
	table {
	}
	a:link {
		color: #003333;
		text-decoration: none;
	}
	a:visited {
		color: #003333;
		text-decoration: none;
	}
	a:hover {
		color: #0033CC;
	}
	a:active {
		color: #0033CC;
	}
	-->
	</style>                                                                                          
  </head>
  <body>
	#set( $jira = $xmlrpc.connect("swizzletester:swizzle","http://jira.codehaus.org/rpc/xmlrpc") )
	#set( $project = $jira.getProject( "MNG" ) )        
	#set( $url = "http://jira.codehaus.org/secure/IssueNavigator.jspa?view=rss&reset=true&mode=hide&pid=${project.id}&resolution=-1&sorter/field=updated&sorter/order=DESC&type=-2" ) 
	#set( $jirarss = $rss.fetch( $url ) )
	#set( $issues = $jirarss.issues )	
    <h1><a href="http://jira.codehaus.org/browse/MNG">Votes on MNG issues in Jira</a> sorted by descending vote count</h1>
	<p>Last Published : $date.format("EEE MMM dd HH:mm:ss z yyyy")</p>
    <p>$jirarss.issues.sum("votes") votes for $jirarss.issues.size() open issues.</p>	
    <table>
	  <tr>
	    <th>&nbsp;</th>
		<th>Key</th>
		<th>Summary</th>
		<th>Votes</th>
		<th>Patch ?</th>
		<th>Testcase ?</th>
	  </tr>
      #foreach ( $issue in $issues.descending("votes") )
	  #set ( $fullIssue = $jira.getIssue($issue.key) )
	  <tr>
	    <td><img src="$jira.getIssueType($issue.type.id).icon" alt="$issue.type.name"/></td>
		<td><a href="http://jira.codehaus.org/browse/$issue.key">$issue.key</a></td>
		<td>$issue.summary</td>
		<td>$issue.votes</td>
		<td>#if ($fullIssue.customFieldValues.matches("customfieldId","customfield_10170").size()>0) 
			X
			#else
			&nbsp;
			#end
		</td>
		<td>#if ($fullIssue.customFieldValues.matches("customfieldId","customfield_10110").size()>0)
			X
			#else
			&nbsp;
			#end
		</td>
	  </tr>
      #end
	</table>
  </body>
</html>