mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
RM-843 (Undo Cutoff is available after next disposition step is completed)
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@54209 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -129,13 +129,13 @@
|
||||
<property name="permission" value="FileDestructionReport" /> <!-- Associated permission -->
|
||||
<property name="kinds">
|
||||
<list>
|
||||
<value>RECORD</value> <!-- Only applies to records and record folders -->
|
||||
<value>RECORD</value> <!-- Only applies to records and record folders -->
|
||||
<value>RECORD_FOLDER</value>
|
||||
</list>
|
||||
</property>
|
||||
<property name="conditions">
|
||||
<map>
|
||||
<entry key="capabilityCondition.filling" value="true"/> <!-- Must have read and file permissions -->
|
||||
<entry key="capabilityCondition.filling" value="true"/> <!-- Must have read and file permissions -->
|
||||
<entry key="capabilityCondition.frozen" value="false"/> <!-- Not for frozen records -->
|
||||
<entry key="capabilityCondition.destroyed" value="true"/> <!-- Only for destroyed things -->
|
||||
</map>
|
||||
@@ -226,6 +226,7 @@
|
||||
<property name="conditions">
|
||||
<map>
|
||||
<entry key="capabilityCondition.cutoff" value="false"/>
|
||||
<entry key="capabilityCondition.cutoffIsScheduled" value="true" />
|
||||
</map>
|
||||
</property>
|
||||
</bean>
|
||||
@@ -249,6 +250,7 @@
|
||||
<map>
|
||||
<entry key="capabilityCondition.cutoff" value="true"/>
|
||||
<entry key="capabilityCondition.isTransferring" value="false" />
|
||||
<entry key="capabilityCondition.lastDispositionActionCutoff" value="true"/>
|
||||
</map>
|
||||
</property>
|
||||
</bean>
|
||||
|
@@ -29,14 +29,14 @@ import org.springframework.extensions.surf.util.I18NUtil;
|
||||
|
||||
/**
|
||||
* UnCutoff action implementation
|
||||
*
|
||||
*
|
||||
* @author Roy Wetherall
|
||||
*/
|
||||
public class UnCutoffAction extends RMActionExecuterAbstractBase
|
||||
{
|
||||
{
|
||||
/** I18N */
|
||||
private static final String MSG_UNDO_NOT_LAST = "rm.action.undo-not-last";
|
||||
|
||||
|
||||
/**
|
||||
* @see org.alfresco.repo.action.executer.ActionExecuterAbstractBase#executeImpl(org.alfresco.service.cmr.action.Action, org.alfresco.service.cmr.repository.NodeRef)
|
||||
*/
|
||||
@@ -48,30 +48,14 @@ public class UnCutoffAction extends RMActionExecuterAbstractBase
|
||||
{
|
||||
// Get the last disposition action
|
||||
DispositionAction da = dispositionService.getLastCompletedDispostionAction(actionedUponNodeRef);
|
||||
|
||||
|
||||
// Check that the last disposition action was a cutoff
|
||||
if (da == null || da.getName().equals("cutoff") == false)
|
||||
{
|
||||
// Can not undo cut off since cut off was not the last thing done
|
||||
throw new AlfrescoRuntimeException(I18NUtil.getMessage(MSG_UNDO_NOT_LAST));
|
||||
}
|
||||
|
||||
// Delete the current disposition action
|
||||
DispositionAction currentDa = dispositionService.getNextDispositionAction(actionedUponNodeRef);
|
||||
if (currentDa != null)
|
||||
{
|
||||
nodeService.deleteNode(currentDa.getNodeRef());
|
||||
}
|
||||
|
||||
// Move the previous (cutoff) disposition back to be current
|
||||
nodeService.moveNode(da.getNodeRef(), actionedUponNodeRef, ASSOC_NEXT_DISPOSITION_ACTION, ASSOC_NEXT_DISPOSITION_ACTION);
|
||||
|
||||
// Reset the started and completed property values
|
||||
nodeService.setProperty(da.getNodeRef(), PROP_DISPOSITION_ACTION_STARTED_AT, null);
|
||||
nodeService.setProperty(da.getNodeRef(), PROP_DISPOSITION_ACTION_STARTED_BY, null);
|
||||
nodeService.setProperty(da.getNodeRef(), PROP_DISPOSITION_ACTION_COMPLETED_AT, null);
|
||||
nodeService.setProperty(da.getNodeRef(), PROP_DISPOSITION_ACTION_COMPLETED_BY, null);
|
||||
|
||||
|
||||
// Remove the cutoff aspect
|
||||
nodeService.removeAspect(actionedUponNodeRef, ASPECT_CUT_OFF);
|
||||
if (recordsManagementService.isRecordFolder(actionedUponNodeRef) == true)
|
||||
@@ -82,6 +66,22 @@ public class UnCutoffAction extends RMActionExecuterAbstractBase
|
||||
nodeService.removeAspect(record, ASPECT_CUT_OFF);
|
||||
}
|
||||
}
|
||||
|
||||
// Delete the current disposition action
|
||||
DispositionAction currentDa = dispositionService.getNextDispositionAction(actionedUponNodeRef);
|
||||
if (currentDa != null)
|
||||
{
|
||||
nodeService.deleteNode(currentDa.getNodeRef());
|
||||
}
|
||||
|
||||
// Move the previous (cutoff) disposition back to be current
|
||||
nodeService.moveNode(da.getNodeRef(), actionedUponNodeRef, ASSOC_NEXT_DISPOSITION_ACTION, ASSOC_NEXT_DISPOSITION_ACTION);
|
||||
|
||||
// Reset the started and completed property values
|
||||
nodeService.setProperty(da.getNodeRef(), PROP_DISPOSITION_ACTION_STARTED_AT, null);
|
||||
nodeService.setProperty(da.getNodeRef(), PROP_DISPOSITION_ACTION_STARTED_BY, null);
|
||||
nodeService.setProperty(da.getNodeRef(), PROP_DISPOSITION_ACTION_COMPLETED_AT, null);
|
||||
nodeService.setProperty(da.getNodeRef(), PROP_DISPOSITION_ACTION_COMPLETED_BY, null);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user