<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic JavaScript access to the versionHistory property? in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/javascript-access-to-the-versionhistory-property/m-p/165704#M119368</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I'm trying in vain to find a means of examining the version history of a document, using the Javascript API. All I need is the number versions, and the size of each version.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The documentation suggests that FreeMarker can access a nodes 'versionHistory' node, but the JavaScript certainly cannot.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm in the process of writing a disk-usage tool, and not having visibility over the document history is a teensy bit of a sticking point &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Can anyone tell me where I'm going wrong?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;M.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 13 May 2008 13:36:11 GMT</pubDate>
    <dc:creator>martin_cowie</dc:creator>
    <dc:date>2008-05-13T13:36:11Z</dc:date>
    <item>
      <title>JavaScript access to the versionHistory property?</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/javascript-access-to-the-versionhistory-property/m-p/165704#M119368</link>
      <description>I'm trying in vain to find a means of examining the version history of a document, using the Javascript API. All I need is the number versions, and the size of each version.The documentation suggests that FreeMarker can access a nodes 'versionHistory' node, but the JavaScript certainly cannot.I'm in</description>
      <pubDate>Tue, 13 May 2008 13:36:11 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/javascript-access-to-the-versionhistory-property/m-p/165704#M119368</guid>
      <dc:creator>martin_cowie</dc:creator>
      <dc:date>2008-05-13T13:36:11Z</dc:date>
    </item>
    <item>
      <title>Re: JavaScript access to the versionHistory property?</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/javascript-access-to-the-versionhistory-property/m-p/165705#M119369</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Found it! The solution was use the power of the Rhino Javascript engine to access bits of its Java environment.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The ScriptNode object has a protected 'services' field. Once that can be accessed, everything else falls into place …&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;var PROP_CONTENT = Packages.org.alfresco.model.ContentModel.PROP_CONTENT;&lt;BR /&gt;var versionService = null;&lt;BR /&gt;var nodeService = null;&lt;BR /&gt;&lt;BR /&gt;function getServices( doc )&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;// *BEWARE* - HERE BE DRAGONS&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;var servicesField = doc.getClass().getDeclaredField( "services" );&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;servicesField.setAccessible( true ); // ick - yuck - nasty - but necessary&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;var serviceRegistry = servicesField.get( doc );&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;versionService = serviceRegistry.getVersionService();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;nodeService = serviceRegistry.getNodeService();&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;function getHistory( doc )&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;return versionService.getVersionHistory( doc.nodeRef ).getAllVersions().toArray();&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;function getVersionSize( version )&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;return nodeService.getProperty( version.getFrozenStateNodeRef(), PROP_CONTENT ).getSize();&lt;BR /&gt;}&lt;BR /&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;Once getServices() is called with a ScriptNode object, we can then call getHistory() to get a Java array of Version objects. Given a Version object, getVersionSize() can be called to get the size of its content.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;It's a bit ugly, but a worthy demonstration of Rhinos power.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;M.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 14 May 2008 15:26:55 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/javascript-access-to-the-versionhistory-property/m-p/165705#M119369</guid>
      <dc:creator>martin_cowie</dc:creator>
      <dc:date>2008-05-14T15:26:55Z</dc:date>
    </item>
  </channel>
</rss>

