mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
Merge remote-tracking branch 'remotes/origin/feature/RM-6302_EditDispositionSchedule'
This commit is contained in:
@@ -28,6 +28,8 @@
|
||||
package org.alfresco.module.org_alfresco_module_rm.jscript.app;
|
||||
|
||||
import static org.alfresco.module.org_alfresco_module_rm.capability.RMPermissionModel.READ_RECORDS;
|
||||
import static org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel.PROP_COMBINE_DISPOSITION_STEP_CONDITIONS;
|
||||
import static org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel.PROP_RS_DISPOSITION_EVENTS;
|
||||
import static org.alfresco.service.cmr.security.AccessStatus.ALLOWED;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -38,6 +40,9 @@ import java.util.Map;
|
||||
import org.alfresco.model.ContentModel;
|
||||
import org.alfresco.module.org_alfresco_module_rm.capability.CapabilityService;
|
||||
import org.alfresco.module.org_alfresco_module_rm.capability.impl.ViewRecordsCapability;
|
||||
import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionAction;
|
||||
import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService;
|
||||
import org.alfresco.module.org_alfresco_module_rm.event.EventCompletionDetails;
|
||||
import org.alfresco.module.org_alfresco_module_rm.fileplan.FilePlanComponentKind;
|
||||
import org.alfresco.module.org_alfresco_module_rm.fileplan.FilePlanService;
|
||||
import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
|
||||
@@ -99,6 +104,11 @@ public class JSONConversionComponent extends org.alfresco.repo.jscript.app.JS
|
||||
/** site service */
|
||||
private SiteService siteService;
|
||||
|
||||
/**
|
||||
* Disposition service
|
||||
*/
|
||||
private DispositionService dispositionService;
|
||||
|
||||
/** Indicators */
|
||||
private List<BaseEvaluator> indicators = new ArrayList<BaseEvaluator>();
|
||||
|
||||
@@ -230,6 +240,14 @@ public class JSONConversionComponent extends org.alfresco.repo.jscript.app.JS
|
||||
this.jsonConversionComponentCache = jsonConversionComponentCache;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param dispositionService the disposition service
|
||||
*/
|
||||
public void setDispositionService(DispositionService dispositionService)
|
||||
{
|
||||
this.dispositionService = dispositionService;
|
||||
}
|
||||
|
||||
/**
|
||||
* The initialise method
|
||||
*/
|
||||
@@ -456,6 +474,21 @@ public class JSONConversionComponent extends org.alfresco.repo.jscript.app.JS
|
||||
// Set the actions array
|
||||
setActions(rmNodeValues, nodeRef);
|
||||
|
||||
|
||||
//Add details of the next incomplete event in the disposition schedule
|
||||
if(dispositionService.getNextDispositionAction(nodeRef) != null)
|
||||
{
|
||||
for(EventCompletionDetails details: dispositionService.getNextDispositionAction(nodeRef).getEventCompletionDetails())
|
||||
{
|
||||
if(!details.isEventComplete())
|
||||
{
|
||||
((HashMap) rmNodeValues.get("properties")).put("combineDispositionStepConditions", nodeService.getProperty(dispositionService.getNextDispositionAction(nodeRef).getDispositionActionDefinition().getNodeRef(), PROP_COMBINE_DISPOSITION_STEP_CONDITIONS));
|
||||
((HashMap) rmNodeValues.get("properties")).put("incompleteDispositionEvent", details.getEventName());
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return rmNodeValues;
|
||||
}
|
||||
|
||||
|
@@ -99,6 +99,7 @@ public interface RecordsManagementModel extends RecordsManagementCustomModel
|
||||
QName PROP_DISPOSITION_PERIOD_PROPERTY = QName.createQName(RM_URI, "dispositionPeriodProperty");
|
||||
QName PROP_DISPOSITION_EVENT = QName.createQName(RM_URI, "dispositionEvent");
|
||||
QName PROP_DISPOSITION_EVENT_COMBINATION = QName.createQName(RM_URI, "dispositionEventCombination");
|
||||
QName PROP_COMBINE_DISPOSITION_STEP_CONDITIONS = QName.createQName(RM_URI, "combineDispositionStepConditions");
|
||||
QName PROP_DISPOSITION_LOCATION = QName.createQName(RM_URI, "dispositionLocation");
|
||||
QName PROP_DISPOSITION_ACTION_GHOST_ON_DESTROY = QName.createQName(RM_URI, "dispositionActionGhostOnDestroy");
|
||||
|
||||
@@ -239,6 +240,7 @@ public interface RecordsManagementModel extends RecordsManagementCustomModel
|
||||
QName PROP_RS_DISPOSITION_ACTION_AS_OF = QName.createQName(RM_URI, "recordSearchDispositionActionAsOf");
|
||||
QName PROP_RS_DISPOSITION_EVENTS_ELIGIBLE = QName.createQName(RM_URI, "recordSearchDispositionEventsEligible");
|
||||
QName PROP_RS_DISPOSITION_EVENTS = QName.createQName(RM_URI, "recordSearchDispositionEvents");
|
||||
QName PROP_DISPOSITION_EVENTS = QName.createQName(RM_URI, "dispositionEvents");
|
||||
QName PROP_RS_VITAL_RECORD_REVIEW_PERIOD = QName.createQName(RM_URI, "recordSearchVitalRecordReviewPeriod");
|
||||
QName PROP_RS_VITAL_RECORD_REVIEW_PERIOD_EXPRESSION = QName.createQName(RM_URI, "recordSearchVitalRecordReviewPeriodExpression");
|
||||
QName PROP_RS_DISPOSITION_PERIOD = QName.createQName(RM_URI, "recordSearchDispositionPeriod");
|
||||
|
@@ -27,6 +27,8 @@
|
||||
|
||||
package org.alfresco.module.org_alfresco_module_rm.script;
|
||||
|
||||
import static org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel.PROP_COMBINE_DISPOSITION_STEP_CONDITIONS;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
@@ -165,6 +167,11 @@ public class DispositionAbstractBase extends AbstractRmWebScript
|
||||
model.put("events", eventNames);
|
||||
}
|
||||
|
||||
if(getNodeService().getProperty(actionDef.getNodeRef(), PROP_COMBINE_DISPOSITION_STEP_CONDITIONS) != null)
|
||||
{
|
||||
model.put("combineDispositionStepConditions", getNodeService().getProperty(actionDef.getNodeRef(), PROP_COMBINE_DISPOSITION_STEP_CONDITIONS));
|
||||
}
|
||||
|
||||
return model;
|
||||
}
|
||||
|
||||
|
@@ -133,6 +133,12 @@ public class DispositionActionDefinitionPost extends DispositionAbstractBase
|
||||
json.getBoolean("eligibleOnFirstCompleteEvent") ? "or" : "and");
|
||||
}
|
||||
|
||||
if (json.has("combineDispositionStepConditions"))
|
||||
{
|
||||
props.put(RecordsManagementModel.PROP_COMBINE_DISPOSITION_STEP_CONDITIONS,
|
||||
json.getBoolean("combineDispositionStepConditions"));
|
||||
}
|
||||
|
||||
if (json.has("location"))
|
||||
{
|
||||
props.put(RecordsManagementModel.PROP_DISPOSITION_LOCATION,
|
||||
|
@@ -96,7 +96,6 @@ public class DispositionActionDefinitionPut extends DispositionAbstractBase
|
||||
*
|
||||
* @param actionDef The action definition to update
|
||||
* @param json The JSON to use to create the action definition
|
||||
* @param schedule The DispositionSchedule the action definition belongs to
|
||||
* @return The updated DispositionActionDefinition
|
||||
*/
|
||||
protected DispositionActionDefinition updateActionDefinition(DispositionActionDefinition actionDef,
|
||||
@@ -132,6 +131,12 @@ public class DispositionActionDefinitionPut extends DispositionAbstractBase
|
||||
json.getBoolean("eligibleOnFirstCompleteEvent") ? "or" : "and");
|
||||
}
|
||||
|
||||
if (json.has("combineDispositionStepConditions"))
|
||||
{
|
||||
props.put(RecordsManagementModel.PROP_COMBINE_DISPOSITION_STEP_CONDITIONS,
|
||||
json.getBoolean("combineDispositionStepConditions"));
|
||||
}
|
||||
|
||||
if (json.has("location"))
|
||||
{
|
||||
props.put(RecordsManagementModel.PROP_DISPOSITION_LOCATION,
|
||||
|
Reference in New Issue
Block a user