You are here

VersionHistoryNode API

The VersionHistoryNode is an extension of the BaseContentNode type. The versionHistory property of the TemplateNode object returns a sequence of VersionHistoryNode objects that represent the version history for the document.

Properties

Each VersionHistoryNode objects have the following properties:

Property Description
aspects Returns the list of aspects applied to this node as a set of QNames.
children Returns the children of this node as a list of TemplateProperties objects.
createdDate Created date of the version.
creator Creator of the version.
description Version history description.
id GUID for the node.
isMajorVersion Boolean true if this was a major version.
name Name property of the node version record.
nodeRef NodeRef string for the node.
parent Returns the primary parent of this node.
properties Returns a map of the properties of the object.
type Fully qualified QName type of the node.
url URL to the content stream for the frozen content state.
versionLabel Version label of the version record.

Example


<#assign versionHistoryNodes = node.versionHistory>

<#list versionHistoryNodes as vhn>

  <p>aspects:</p>
  <ul>
    <#list vhn.aspects as aspect>
      <li>${aspect}</li>
    </#list>
  </ul>

 <p>children:</p>
 <#if vhn.children?exists>
   <ul>
     <#list vhn.children as child>
       <li>${child.properties.name}</li>
     </#list>
   </ul>
 <#else>
   <p>No children</p>
 </#if>

   <p>createDate (and time): ${vhn.createdDate?datetime}</p>
 
   <p>creator: ${vhn.creator}</p>
   <p>description: <#if vhn.description?exists>${vhn.description}<#else>None</#if></p>
   <p>id: ${vhn.id}</p>
   <p>isMajorVersion: <#if vhn.isMajorVersion>TRUE<#else>FALSE</#if></p>
   <p>name: ${vhn.name}</p>
   <p>nodeRef: ${vhn.nodeRef}</p>
   <p>parent: <#if vhn.parent?exists>${parent.id}<#else>None</#if></p>
   <p>type: ${vhn.type}</p>
   <p>url: ${vhn.url}</p>
   <p>versionLabel: ${vhn.versionLabel}</p>
   
  <hr/>
  
   <p>All properties for the VersionHistoryNode object:</p>

   <table border=1>
     <#assign object = vhn>
     <#assign props = object.properties?keys>
     <#list props as t>
     <#if object.properties[t]?exists>
       <#if object.properties[t]?is_date>
         <tr><td>${t} = ${object.properties[t]?date}</td></tr>
       <#elseif object.properties[t]?is_boolean>
         <tr><td>${t} = ${object.properties[t]?string("yes", "no")}</td></tr>
        <#elseif object.properties[t]?is_sequence>
          <tr><td>
              <#assign items = object.properties[t]>
              <#assign i = 0>
                ${t}=
                <#list items as item>
                  <p>${i}: ${item}</p>
                  <#assign i = i+1>
                </#list>
          </td></tr>
        <#else>
        <tr><td>${t} = ${object.properties[t]}</td></tr>
        </#if>
     </#if>
    </#list>
   </table>
   
   <hr/>

   <p>content: ${cropContent(vhn.properties.content, 150)}</p>
  
   <hr/>

   <p>auditable: <#if vhn.hasAspect("cm:auditable")>TRUE<#else>FALSE</#if></p>
   <p>author: <#if vhn.hasAspect("cm:author")>TRUE<#else>FALSE</#if></p>
   <p>title: <#if vhn.hasAspect("cm:titled")>TRUE<#else>FALSE</#if></p>
   <p>taggable: <#if vhn.hasAspect("cm:taggable")>TRUE<#else>FALSE</#if></p>
   
   <hr/>

</#list>

      

The preceding code would generate output similar to the following:

aspects:

{http://www.alfresco.org/model/content/1.0}auditable
{http://www.alfresco.org/model/system/1.0}referenceable
{http://www.alfresco.org/model/content/1.0}titled
{http://www.alfresco.org/model/rendition/1.0}renditioned
{http://www.alfresco.org/model/content/1.0}taggable
{http://www.alfresco.org/model/content/1.0}author
{http://www.alfresco.org/model/system/1.0}localized
{http://www.alfresco.org/model/forum/1.0}discussable
{http://www.alfresco.org/model/application/1.0}inlineeditable
{http://www.alfresco.org/model/forum/1.0}commentsRollup
{http://www.alfresco.org/model/content/1.0}versionable

children: No children

createDate (and time): Jan 9, 2012 2:16:43 PM

creator: admin

description: None

id: 7a37ec71-8b40-44be-be1d-5e2123cf0098

isMajorVersion: FALSE

name: TEST

nodeRef: versionStore://version2Store/7a37ec71-8b40-44be-be1d-5e2123cf0098

parent: None

type: {http://www.alfresco.org/model/content/1.0}content

url: /d/d/versionStore/version2Store/7a37ec71-8b40-44be-be1d-5e2123cf0098/TEST

versionLabel: 1.8

All properties for the VersionHistoryNode object:

{http://www.alfresco.org/model/content/1.0}creator = admin
{http://www.alfresco.org/model/content/1.0}author = Tony
{http://www.alfresco.org/model/content/1.0}autoVersion = yes
{http://www.alfresco.org/model/content/1.0}autoVersionOnUpdateProps = yes
{http://www.alfresco.org/model/system/1.0}locale = en_US
{http://www.alfresco.org/model/forum/1.0}commentCount = 2
{http://www.alfresco.org/model/system/1.0}store-protocol = workspace
{http://www.alfresco.org/model/content/1.0}taggable=
0: workspace://SpacesStore/fd353ba5-bfc3-4b32-b178-02206cf48d19

1: workspace://SpacesStore/e8fc0d83-8127-4015-942d-212303112ef1

2: workspace://SpacesStore/d05e3921-063e-4ced-b2ae-dc918ed3e14c

3: workspace://SpacesStore/43aacfb5-899a-4185-83a1-e88f51861d99

4: workspace://SpacesStore/5f8cebc4-ae48-404f-bdb5-5ed2e73aa180

{http://www.alfresco.org/model/application/1.0}editInline = yes
{http://www.alfresco.org/model/content/1.0}content = org.alfresco.repo.template.BaseContentNode$TemplateContentData@34df2786
{http://www.alfresco.org/model/content/1.0}title = My sample test program
{http://www.alfresco.org/model/system/1.0}node-uuid = eae9d90f-706f-46ba-9cc5-63b31e1e7fcb
{http://www.alfresco.org/model/content/1.0}modifier = admin
{http://www.alfresco.org/model/content/1.0}name = TEST
{http://www.alfresco.org/model/content/1.0}modified = Jan 9, 2012
{http://www.alfresco.org/model/content/1.0}initialVersion = yes
{http://www.alfresco.org/model/system/1.0}store-identifier = SpacesStore
{http://www.alfresco.org/model/content/1.0}created = Jan 5, 2012
{http://www.alfresco.org/model/system/1.0}node-dbid = 1,927
{http://www.alfresco.org/model/content/1.0}versionLabel = 1.8
{http://www.alfresco.org/model/content/1.0}description = A sample test program

content: The first 150 bytes content of the file ...

auditable: TRUE

author: TRUE

title: TRUE

taggable: TRUE

...