Freemarker Template - Audit

From AlfrescoWiki

Jump to: navigation, search

Contents

[edit] Description

This template can be called on a document. It displays all stored information in the audit trail of the document.

[edit] Screenshot

Image: Audit_Template.gif

[edit] Template

Full version (too much noise, but you will see what's happening)


<#-- Shows some general audit info about the current document -->
 <#if document?exists>
   <h4>Current Document Audit Info</h4>
   <b>Name:</b> ${document.name}<br>
   <table border="1" cellspacing="0" cellpadding="4">
   <tr>
          <th>User Name</th>
          <th>Application</th>
          <th>Service</th>
          <th>Method</th>
          <th>Timestamp</th>
          <th>Failed</th>
          <th>Message</th>
          <th>Arg 1</th>
          <th>Arg 2</th>
          <th>Arg 3</th>
          <th>Arg 4</th>
          <th>Arg 5</th>
          <th>Return</th>
          <th>Thowable</th>
          <th>TX</th>
   </tr>
   <#list document.auditTrail as t>
           <tr>
          <td>${t.userIdentifier}</td>
          <td>${t.auditApplication}</td>
          <#if t.auditService?exists>
             <td>${t.auditService}</td>
          <#else>
             <td> </td>
          </#if>
          <#if t.auditMethod?exists>
             <td>${t.auditMethod}</td>
          <#else>
             <td> </td>
          </#if>
          <td>${t.date}</td>
          <#if t.fail?exists>
             <td>${t.fail?string("FAILED", "OK")}</td>
          <#else>
             <td> </td>
          </#if>      
          <#if t.message?exists>
             <td>${t.message}</td>
          <#else>
             <td> </td>
          </#if>         
          <#if t.methodArgumentsAsStrings[0]?exists>
             <td>${t.methodArgumentsAsStrings[0]}</td>
          <#else>
             <td> </td>
          </#if>         
          <#if t.methodArgumentsAsStrings[1]?exists>
             <td>${t.methodArgumentsAsStrings[1]}</td>
          <#else>
             <td> </td>
          </#if>         
          <#if t.methodArgumentsAsStrings[2]?exists>
             <td>${t.methodArgumentsAsStrings[2]}</td>
          <#else>
             <td> </td>
          </#if>         
          <#if t.methodArgumentsAsStrings[3]?exists>
             <td>${t.methodArgumentsAsStrings[3]}</td>
          <#else>
             <td> </td>
          </#if>         
          <#if t.methodArgumentsAsStrings[4]?exists>
             <td>${t.methodArgumentsAsStrings[4]}</td>
          <#else>
             <td> </td>
          </#if>         
          <#if t.returnObjectAsString?exists>
             <td>${t.returnObjectAsString}</td>
          <#else>
             <td> </td>
          </#if>
          <#if t.throwableAsString?exists>
             <td>${t.throwableAsString}</td>
          <#else>
             <td> </td>
          </#if>         
          <td>${t.txId}</td>
      </tr>
   </#list>
   </table>
 <#elseif space?exists>
   <h4>Current Space Audit Info:</h4>
   <b>Name:</b> ${space.name}<br>
   <table border="1" cellspacing="0" cellpadding="4">
   <tr>
          <th>User Name</th>
          <th>Application</th>
          <th>Service</th>
          <th>Method</th>
          <th>Timestamp</th>
          <th>Failed</th>
          <th>Message</th>
          <th>Arg 1</th>
          <th>Arg 2</th>
          <th>Arg 3</th>
          <th>Arg 4</th>
          <th>Arg 5</th>
          <th>Return</th>
          <th>Thowable</th>
          <th>TX</th>
   </tr>
 
   <#list space.auditTrail as t>
           <tr>
          <td>${t.userIdentifier}</td>
          <td>${t.auditApplication}</td>
          <#if t.auditService?exists>
             <td>${t.auditService}</td>
          <#else>
             <td> </td>
          </#if>
          <#if t.auditMethod?exists>
             <td>${t.auditMethod}</td>
          <#else>
             <td> </td>
          </#if>
          <td>${t.date}</td>
          <#if t.fail?exists>
             <td>${t.fail?string("FAILED", "OK")}</td>
          <#else>
             <td> </td>
          </#if>      
          <#if t.message?exists>
             <td>${t.message}</td>
          <#else>
             <td> </td>
          </#if>         
          <#if t.methodArgumentsAsStrings[0]?exists>
             <td>${t.methodArgumentsAsStrings[0]}</td>
          <#else>
             <td> </td>
          </#if>         
          <#if t.methodArgumentsAsStrings[1]?exists>
             <td>${t.methodArgumentsAsStrings[1]}</td>
          <#else>
             <td> </td>
          </#if>         
          <#if t.methodArgumentsAsStrings[2]?exists>
             <td>${t.methodArgumentsAsStrings[2]}</td>
          <#else>
             <td> </td>
          </#if>         
          <#if t.methodArgumentsAsStrings[3]?exists>
             <td>${t.methodArgumentsAsStrings[3]}</td>
          <#else>
             <td> </td>
          </#if>         
          <#if t.methodArgumentsAsStrings[4]?exists>
             <td>${t.methodArgumentsAsStrings[4]}</td>
          <#else>
             <td> </td>
          </#if>         
          <#if t.returnObjectAsString?exists>
             <td>${t.returnObjectAsString}</td>
          <#else>
             <td> </td>
          </#if>
          <#if t.throwableAsString?exists>
             <td>${t.throwableAsString}</td>
          <#else>
             <td> </td>
          </#if>         
          <td>${t.txId}</td>
      </tr>
   </#list>
   </table>
 </#if>

[edit] Requirements

Alfresco Version 2.1.x It uses standard functionality provided in this version of Alfresco.

[edit] Source