Advertisement
Guest User

JIRA XML Backup Documentation Transformation

a guest
Jul 4th, 2012
302
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
XML 8.99 KB | None | 0 0
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <xsl:stylesheet
  3.     version="2.0"
  4.     xmlns="http://www.w3.org/1999/xhtml"
  5.     xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  6.  
  7.  
  8.     <!-- Ausgabedefinition -->
  9.     <xsl:output
  10.        method="xml"
  11.        encoding="UTF-8"
  12.        doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
  13.        doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1.dtd"
  14.        indent="yes"
  15.        omit-xml-declaration="no" />
  16.  
  17.  
  18.     <xsl:template match="/">
  19.        
  20.         <xsl:variable name="jira.title.property.id" select="//OSPropertyEntry[@propertyKey='jira.title']/@id"/>
  21.         <xsl:variable name="jira.title" select="//OSPropertyString[@id=$jira.title.property.id]/@value"/>
  22.    
  23.         <html>
  24.             <head>
  25.                 <title>Documentation <xsl:value-of select="$jira.title" /></title>
  26.  
  27.  
  28.             </head>
  29.             <body>
  30.                 <h1>Documentation <xsl:value-of select="$jira.title" /></h1>
  31.                
  32.                 <h2>Table of Contents</h2>
  33.                 <ol>
  34.                     <li><a href="#section-projects">Projects</a></li>
  35.                     <li><a href="#section-permissionschemes">Permission Schemes</a></li>
  36.                 </ol>
  37.                
  38.                
  39.                 <xsl:call-template name="projects" />
  40.                 <xsl:call-template name="permissionschemes" />
  41.             </body>
  42.         </html>
  43.  
  44.     </xsl:template>
  45.  
  46.    
  47.    
  48.     <xsl:template name="translatePermission">
  49.         <xsl:param name="permission.id" />
  50.        
  51.         <!-- see com.atlassian.jira.security.Permissions -->
  52.         <xsl:choose>
  53.             <xsl:when test="$permission.id=0">ADMINISTER</xsl:when>
  54.             <xsl:when test="$permission.id=1">USE</xsl:when>
  55.             <xsl:when test="$permission.id=44">SYSTEM ADMIN</xsl:when>
  56.             <xsl:when test="$permission.id=23">PROJECT_ADMIN</xsl:when>
  57.             <xsl:when test="$permission.id=10">BROWSE</xsl:when>
  58.             <xsl:when test="$permission.id=11">CREATE ISSUE</xsl:when>
  59.             <xsl:when test="$permission.id=12">EDIT ISSUE</xsl:when>
  60.             <xsl:when test="$permission.id=13">ASSIGN ISSUE</xsl:when>
  61.             <xsl:when test="$permission.id=14">RESOLVE ISSUE</xsl:when>
  62.             <xsl:when test="$permission.id=15">COMMENT ISSUE</xsl:when>
  63.             <xsl:when test="$permission.id=16">DELETE ISSUE</xsl:when>
  64.             <xsl:when test="$permission.id=17">ASSIGNABLE USER</xsl:when>
  65.             <xsl:when test="$permission.id=18">CLOSE ISSUE</xsl:when>
  66.             <xsl:when test="$permission.id=19">CREATE ATTACHMENT</xsl:when>
  67.             <xsl:when test="$permission.id=20">WORK ISSUE</xsl:when>
  68.             <xsl:when test="$permission.id=21">LINK ISSUE</xsl:when>
  69.             <xsl:when test="$permission.id=22">CREATE SHARED OBJECTS</xsl:when>
  70.             <xsl:when test="$permission.id=24">MANAGE GROUP FILTER SUBSCRIPTIONS</xsl:when>
  71.             <xsl:when test="$permission.id=34">COMMENT EDIT ALL</xsl:when>
  72.             <xsl:when test="$permission.id=35">COMMENT EDIT OWN</xsl:when>
  73.             <xsl:when test="$permission.id=25">MOVE ISSUE</xsl:when>
  74.             <xsl:when test="$permission.id=26">SET ISSUE SECURITY</xsl:when>
  75.             <xsl:when test="$permission.id=27">USER PICKER</xsl:when>
  76.             <xsl:when test="$permission.id=28">SCHEDULE ISSUE</xsl:when>
  77.             <xsl:when test="$permission.id=29">VIEW VERSION CONTROL</xsl:when>
  78.             <xsl:when test="$permission.id=30">MODIFY REPORTER</xsl:when>
  79.             <xsl:when test="$permission.id=31">VIEW VOTERS AND WATCHERS</xsl:when>
  80.             <xsl:when test="$permission.id=32">MANAGE WATCHER LIST</xsl:when>
  81.             <xsl:when test="$permission.id=33">BULK CHANGE</xsl:when>
  82.             <xsl:when test="$permission.id=36">COMMENT DELETE ALL</xsl:when>
  83.             <xsl:when test="$permission.id=37">COMMENT DELETE OWN</xsl:when>
  84.             <xsl:when test="$permission.id=38">ATTACHMENT DELETE ALL</xsl:when>
  85.             <xsl:when test="$permission.id=39">ATTACHMENT DELETE OWN</xsl:when>
  86.             <xsl:when test="$permission.id=40">WORKLOG EDIT OWN</xsl:when>
  87.             <xsl:when test="$permission.id=41">WORKLOG EDIT ALL</xsl:when>
  88.             <xsl:when test="$permission.id=42">WORKLOG DELETE OWN</xsl:when>
  89.             <xsl:when test="$permission.id=43">WORKLOG DELETE ALL</xsl:when>
  90.             <xsl:when test="$permission.id=44">MAX PERMISSION</xsl:when>
  91.             <xsl:otherwise>UNKNOWN PERMISSION #<xsl:value-of select="$permission.id" /></xsl:otherwise>
  92.         </xsl:choose>
  93.  
  94.         </xsl:template>
  95.  
  96.    
  97.    
  98.     <xsl:template name="projects">
  99.  
  100.         <a name="section-projects">
  101.             <h2>Projects</h2>
  102.         </a>
  103.  
  104.         <xsl:for-each select="//Project">
  105.             <xsl:sort select="@name" lang="en" />
  106.  
  107.             <h3>
  108.                 <a>
  109.                     <xsl:attribute name="name">project-<xsl:value-of select="@id"/></xsl:attribute>
  110.                     <xsl:value-of select="@name" />
  111.                 </a>
  112.                 <small>
  113.                     (<xsl:value-of select="@id"/>)
  114.                 </small>
  115.             </h3>
  116.            
  117.             <dl>
  118.                 <dt>Project Lead</dt>
  119.                 <dd><xsl:value-of select="@lead" /></dd>
  120.  
  121.                 <dt>Permission Scheme</dt>
  122.                 <dd>
  123.                     <xsl:variable name="permission.scheme.id" select="//NodeAssociation[@sourceNodeEntity='Project' and @sinkNodeEntity='PermissionScheme' and @sourceNodeId=current()/@id]/@sinkNodeId"/>
  124.                     <xsl:value-of select="//PermissionScheme[@id=$permission.scheme.id]/@name" />
  125.                     <small> (
  126.                         <a>
  127.                             <xsl:attribute name="href">#permissionscheme-<xsl:value-of select="$permission.scheme.id"/></xsl:attribute>
  128.                             <xsl:value-of select="$permission.scheme.id" />
  129.                         </a>
  130.                         )
  131.                     </small>
  132.                 </dd>
  133.                
  134.             </dl>
  135.  
  136.             </xsl:for-each>
  137.  
  138.     </xsl:template>
  139.  
  140.    
  141.    
  142.    
  143.     <xsl:template name="permissionschemes">
  144.  
  145.         <a name="section-permissionschemes">
  146.             <h2>Permission Schemes</h2>
  147.         </a>
  148.        
  149.         <xsl:variable name="permission.types.unique" select="//SchemePermissions[ not (@permission=preceding::SchemePermissions/@permission)]" />
  150.  
  151.         <xsl:for-each select="//PermissionScheme">
  152.             <xsl:sort select="@name" lang="en" />
  153.             <xsl:variable name="current.permissionscheme" select="current()" />
  154.            
  155.             <h3>
  156.                 <a>
  157.                     <xsl:attribute name="name">permissionscheme-<xsl:value-of select="@id"/></xsl:attribute>
  158.                     <xsl:value-of select="@name" />
  159.                 </a>
  160.                 <small>
  161.                     (<xsl:value-of select="@id"/>)
  162.                 </small>
  163.             </h3>
  164.            
  165.             <table border="1">
  166.                 <tr>
  167.                     <th>Permission</th>
  168.                     <th>Project Roles</th>
  169.                     <th>Groups</th>
  170.                     <th>Users</th>
  171.                     <th>Other</th>
  172.                 </tr>
  173.                
  174.                 <xsl:for-each select="$permission.types.unique">
  175.                     <xsl:sort select="@permission" data-type="number" />
  176.                     <xsl:variable name="current.permission" select="current()" />
  177.                    
  178.                     <tr>
  179.                         <td>
  180.                             <xsl:call-template name="translatePermission">
  181.                                 <xsl:with-param name="permission.id" select="@permission" />
  182.                             </xsl:call-template>
  183.                         </td>
  184.                         <td>
  185.                             <xsl:for-each select="//SchemePermissions[@scheme=$current.permissionscheme/@id and @permission=$current.permission/@permission and @type='projectrole']">
  186.                                 <xsl:sort select="//ProjectRole[@id=current()/@parameter]/@name" lang="en" />
  187.                                 <xsl:value-of select="//ProjectRole[@id=current()/@parameter]/@name" /><br />
  188.                             </xsl:for-each>
  189.                         </td>
  190.                         <td>
  191.                             <xsl:for-each select="//SchemePermissions[@scheme=$current.permissionscheme/@id and @permission=$current.permission/@permission and @type='group']">
  192.                                 <xsl:sort select="@parameter" lang="en" />
  193.                                 <xsl:value-of select="@parameter" /><br />
  194.                             </xsl:for-each>
  195.                         </td>
  196.                         <td>
  197.                             <xsl:for-each select="//SchemePermissions[@scheme=$current.permissionscheme/@id and @permission=$current.permission/@permission and @type='user']">
  198.                                 <xsl:sort select="@parameter" lang="en" />
  199.                                 <xsl:value-of select="@parameter" /><br />
  200.                             </xsl:for-each>
  201.                         </td>
  202.                         <td>
  203.                             <xsl:if test="//SchemePermissions[@scheme=$current.permissionscheme/@id and @permission=$current.permission/@permission and @type='reporter']">
  204.                             Reporter<br />
  205.                             </xsl:if>
  206.                             <xsl:if test="//SchemePermissions[@scheme=$current.permissionscheme/@id and @permission=$current.permission/@permission and @type='assignee']">
  207.                             Assignee<br />
  208.                             </xsl:if>
  209.                             <xsl:if test="//SchemePermissions[@scheme=$current.permissionscheme/@id and @permission=$current.permission/@permission and @type='lead']">
  210.                             Project Lead<br />
  211.                             </xsl:if>
  212.  
  213.                             <xsl:for-each select="//SchemePermissions[@scheme=$current.permissionscheme/@id and @permission=$current.permission/@permission and @type='userCF']">
  214.                                 <xsl:variable name="cf.id" select="substring(@parameter, 13)" />
  215.                                 User Custom Field "<xsl:value-of select="//CustomField[@id=$cf.id]/@name" />" (
  216.                                 <a>
  217.                                     <xsl:attribute name="href">#customfield-<xsl:value-of select="$cf.id"/></xsl:attribute>
  218.                                     <xsl:value-of select="$cf.id" />
  219.                                 </a>
  220.                                 )<br />
  221.                             </xsl:for-each>
  222.  
  223.                             <xsl:for-each select="//SchemePermissions[@scheme=$current.permissionscheme/@id and @permission=$current.permission/@permission and @type='groupCF']">
  224.                                 <xsl:variable name="cf.id" select="substring(@parameter, 13)" />
  225.                                 Group Custom Field "<xsl:value-of select="//CustomField[@id=$cf.id]/@name" />" (
  226.                                 <a>
  227.                                     <xsl:attribute name="href">#customfield-<xsl:value-of select="$cf.id"/></xsl:attribute>
  228.                                     <xsl:value-of select="$cf.id" />
  229.                                 </a>
  230.                                 )<br />
  231.                             </xsl:for-each>
  232.                         </td>
  233.                     </tr>
  234.                    
  235.                 </xsl:for-each>
  236.                
  237.             </table>
  238.            
  239.  
  240.             </xsl:for-each>
  241.  
  242.     </xsl:template>
  243.    
  244.    
  245. </xsl:stylesheet>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement