RM-306: Move to action works incorrectly

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/BRANCHES/V2.0@36224 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Roy Wetherall
2012-05-10 06:18:31 +00:00
parent 3498ea59a1
commit 4be2e83f1a
2 changed files with 137 additions and 22 deletions

View File

@@ -216,6 +216,54 @@
<property name="capability" value ="UpdateProperties"/>
</bean>
<bean id="jsonConversionComponent.CopyAction"
parent="jsonConversionComponent.baseAction">
<property name="name" value="copy"/>
<property name="kinds">
<set>
<value>RECORD_CATEGORY</value>
<value>RECORD_FOLDER</value>
<value>RECORD</value>
</set>
</property>
<!-- <property name="capability" value="Delete"/> -->
</bean>
<bean id="jsonConversionComponent.moveAction"
parent="jsonConversionComponent.baseAction">
<property name="name" value="move"/>
<property name="kinds">
<set>
<value>RECORD_CATEGORY</value>
<value>RECORD_FOLDER</value>
<value>RECORD</value>
</set>
</property>
<!-- <property name="capability" value="Delete"/> -->
</bean>
<bean id="jsonConversionComponent.fileToAction"
parent="jsonConversionComponent.baseAction">
<property name="name" value="fileTo"/>
<property name="kinds">
<set>
<value>RECORD</value>
</set>
</property>
</bean>
<bean id="jsonConversionComponent.file"
parent="jsonConversionComponent.baseAction">
<property name="name" value="file"/>
<property name="kinds">
<set>
<value>RECORD_FOLDER</value>
</set>
</property>
<property name="capability" value ="FileRecords"/>
</bean>
<bean id="jsonConversionComponent.deleteAction"
parent="jsonConversionComponent.baseAction">
<property name="name" value="delete"/>
@@ -388,28 +436,6 @@
<property name="capability" value ="Unfreeze"/>
</bean>
<bean id="jsonConversionComponent.fileToAction"
parent="jsonConversionComponent.baseAction">
<property name="name" value="fileTo"/>
<property name="kinds">
<set>
<value>RECORD_FOLDER</value>
<value>RECORD</value>
</set>
</property>
</bean>
<bean id="jsonConversionComponent.file"
parent="jsonConversionComponent.baseAction">
<property name="name" value="file"/>
<property name="kinds">
<set>
<value>RECORD_FOLDER</value>
</set>
</property>
<property name="capability" value ="FileRecords"/>
</bean>
<bean id="jsonConversionComponent.reviewedAction"
parent="jsonConversionComponent.baseAction">
<property name="name" value="reviewed"/>

View File

@@ -0,0 +1,89 @@
<import resource="classpath:/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/action/action.lib.js">
/**
* Move multiple files action
* @method POST
*/
/**
* Entrypoint required by action.lib.js
*
* @method runAction
* @param p_params {object} Object literal containing files array
* @return {object|null} object representation of action results
*/
function runAction(p_params)
{
var results = [],
destNode = p_params.destNode,
files = p_params.files,
parent = null,
file, fileNode, result, nodeRef,
fromSite;
// Must have array of files
if (!files || files.length == 0)
{
status.setCode(status.STATUS_BAD_REQUEST, "No files.");
return;
}
for (file in files)
{
nodeRef = files[file];
result =
{
nodeRef: nodeRef,
action: "moveFile",
success: false
}
try
{
fileNode = search.findNode(nodeRef);
if (fileNode == null)
{
result.id = file;
result.nodeRef = nodeRef;
result.success = false;
}
else
{
if (p_params.parent && p_params.parent != null)
{
parent = search.findNode(p_params.parent);
}
result.id = fileNode.name;
result.type = fileNode.isContainer ? "folder" : "document";
// Retain the name of the site the node is currently in. Null if it's not in a site.
fromSite = fileNode.siteShortName;
// move the node
result.success = fileNode.move(parent, destNode);
if (result.success)
{
// If this was an inter-site move, we'll need to clean up the permissions on the node
if (!fromSite.equals(fileNode.siteShortName))
{
siteService.cleanSitePermissions(fileNode);
}
}
}
}
catch (e)
{
result.id = file;
result.nodeRef = nodeRef;
result.success = false;
}
results.push(result);
}
return results;
}
/* Bootstrap action script */
main();