RM-1634 (View Version History Containing Recorded Versions)

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@84235 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Tuna Aksoy
2014-09-16 12:43:16 +00:00
parent e367b35b1f
commit f32accb46f
3 changed files with 149 additions and 0 deletions

View File

@@ -0,0 +1,8 @@
<webscript>
<shortname>Node Version Info</shortname>
<description>Node Version Info including some RM related information</description>
<url>/api/rm/rm-version</url>
<format default="json" />
<authentication>user</authentication>
<transaction allow="readonly">required</transaction>
</webscript>

View File

@@ -0,0 +1,120 @@
var PeopleCache = {};
/**
* Gets / caches a person object
* @method getPerson
* @param username {string} User name
*/
function getPerson(username)
{
if (typeof PeopleCache[username] == "undefined")
{
var person = people.getPerson(username);
if (person == null)
{
if (username == "System" || username.match("^System@") == "System@")
{
// special case for the System users
person =
{
properties:
{
userName: "System",
firstName: "System",
lastName: "User"
},
assocs: {}
};
}
else
{
// missing person - may have been deleted from the database
person =
{
properties:
{
userName: username,
firstName: "",
lastName: ""
},
assocs: {}
};
}
}
PeopleCache[username] =
{
userName: person.properties.userName,
firstName: person.properties.firstName,
lastName: person.properties.lastName,
displayName: (person.properties.firstName + " " + person.properties.lastName).replace(/^\s+|\s+$/g, "")
};
}
return PeopleCache[username];
}
function main()
{
var json = "",
versions = [];
// allow for content to be loaded from id
if (args["nodeRef"] != null)
{
var nodeRef = args["nodeRef"],
node = search.findNode(nodeRef),
versionHistory, version, p, recordNodeRef;
if (node != null)
{
var versionHistory = node.versionHistory;
if (versionHistory != null)
{
for (i = 0; i < versionHistory.length; i++)
{
version = versionHistory[i];
p = getPerson(version.creator);
recordNodeRef = version.getVersionProperty("recordNodeRef");
versions[versions.length] =
{
nodeRef: version.node.nodeRef.toString(),
name: version.node.name,
label: version.label,
description: version.description,
createdDate: version.createdDate,
creator:
{
userName: p.userName,
firstName: p.firstName,
lastName: p.lastName
},
recordNodeRef: recordNodeRef ? recordNodeRef.toString() : ""
};
}
}
else
{
p = getPerson(node.properties.creator);
versions[0] =
{
nodeRef: node.nodeRef.toString(),
name: node.name,
label: "1.0",
description: "",
createdDate: node.properties.created,
creator:
{
userName: p.userName,
firstName: p.firstName,
lastName: p.lastName
},
recordNodeRef: ""
};
}
}
}
// store node onto model
model.versions = versions;
}
main();

View File

@@ -0,0 +1,21 @@
<#escape x as jsonUtils.encodeJSONString(x)>
[
<#list versions as v>
{
"nodeRef": "${v.nodeRef}",
"name": "${v.name}",
"label": "${v.label}",
"description": "${v.description}",
"createdDate": "${v.createdDate?string("dd MMM yyyy HH:mm:ss 'GMT'Z '('zzz')'")}",
"createdDateISO": "${xmldate(v.createdDate)}",
"creator":
{
"userName": "${v.creator.userName}",
"firstName": "${v.creator.firstName!""}",
"lastName": "${v.creator.lastName!""}"
},
"recordNodeRef": "${v.recordNodeRef}"
}<#if (v_has_next)>,</#if>
</#list>
]
</#escape>