Freemarker Template - Audit
From AlfrescoWiki
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
[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.


