diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/event/RecordsManagementEventService.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/event/RecordsManagementEventService.java index b8252ea8bb..528491768f 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/event/RecordsManagementEventService.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/event/RecordsManagementEventService.java @@ -87,9 +87,10 @@ public interface RecordsManagementEventService * * @param eventDisplayLabel event display label * @param eventName event name + * @param eventType event type * @return true if the event can be edited, false otherwise */ - boolean canEditEvent(String eventDisplayLabel, String eventName); + boolean canEditEvent(String eventDisplayLabel, String eventName, String eventType); /** * Add an event diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/event/RecordsManagementEventServiceImpl.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/event/RecordsManagementEventServiceImpl.java index 1e5ce1753e..1724ec99bd 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/event/RecordsManagementEventServiceImpl.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/event/RecordsManagementEventServiceImpl.java @@ -145,7 +145,7 @@ public class RecordsManagementEventServiceImpl implements RecordsManagementEvent for (Iterator iterator = getEventMap().values().iterator(); iterator.hasNext();) { RecordsManagementEvent recordsManagementEvent = (RecordsManagementEvent) iterator.next(); - if (recordsManagementEvent.getDisplayLabel().equalsIgnoreCase(eventDisplayLabel)) + if (recordsManagementEvent.getDisplayLabel().equalsIgnoreCase(eventDisplayLabel) == true) { canCreateEvent = false; break; @@ -157,13 +157,14 @@ public class RecordsManagementEventServiceImpl implements RecordsManagementEvent } /** - * @see org.alfresco.module.org_alfresco_module_rm.event.RecordsManagementEventService#canEditEvent(java.lang.String, java.lang.String) + * @see org.alfresco.module.org_alfresco_module_rm.event.RecordsManagementEventService#canEditEvent(java.lang.String, java.lang.String, java.lang.String) */ @SuppressWarnings("rawtypes") - public boolean canEditEvent(String eventDisplayLabel, String eventName) + public boolean canEditEvent(String eventDisplayLabel, String eventName, String eventType) { ParameterCheck.mandatoryString("eventDisplayLabel", eventDisplayLabel); ParameterCheck.mandatoryString("eventName", eventName); + ParameterCheck.mandatoryString("eventType", eventType); boolean canEditEvent = true; @@ -175,11 +176,18 @@ public class RecordsManagementEventServiceImpl implements RecordsManagementEvent for (Iterator iterator = getEventMap().values().iterator(); iterator.hasNext();) { RecordsManagementEvent recordsManagementEvent = (RecordsManagementEvent) iterator.next(); - if (recordsManagementEvent.getDisplayLabel().equalsIgnoreCase(eventDisplayLabel)) + if (recordsManagementEvent.getDisplayLabel().equalsIgnoreCase(eventDisplayLabel) == true) { - if (recordsManagementEvent.getName().equalsIgnoreCase(eventName)) + if (recordsManagementEvent.getName().equalsIgnoreCase(eventName) == true) { - canEditEvent = false; + if (recordsManagementEvent.getType().equalsIgnoreCase(eventType) == false) + { + canEditEvent = true; + } + else + { + canEditEvent = false; + } } else { diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/admin/RmEventPut.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/admin/RmEventPut.java index 4b44a852f6..b45daaf7f1 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/admin/RmEventPut.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/admin/RmEventPut.java @@ -79,14 +79,14 @@ public class RmEventPut extends RMEventBase String eventDisplayLabel = getValue(json, "eventDisplayLabel"); doCheck(eventDisplayLabel, "No event display label was provided."); + // Check the event type + String eventType = getValue(json, "eventType"); + doCheck(eventType, "No event type was provided."); + // Check if the event can be edited or not RecordsManagementEvent event = null; - if (canEditEvent(eventDisplayLabel, eventName) == true) + if (canEditEvent(eventDisplayLabel, eventName, eventType) == true) { - // Check the event type - String eventType = getValue(json, "eventType"); - doCheck(eventType, "No event type was provided."); - // Create event event = rmEventService.addEvent(eventType, eventName, eventDisplayLabel); } @@ -118,15 +118,16 @@ public class RmEventPut extends RMEventBase * * @param eventDisplayLabel The display label of the event * @param eventName The name of the event + * @param eventType The type of the event * @return true if the event can be edited, false otherwise */ - private boolean canEditEvent(String eventDisplayLabel, String eventName) + private boolean canEditEvent(String eventDisplayLabel, String eventName, String eventType) { boolean canEditEvent; try { - canEditEvent = rmEventService.canEditEvent(eventDisplayLabel, eventName); + canEditEvent = rmEventService.canEditEvent(eventDisplayLabel, eventName, eventType); } catch (AlfrescoRuntimeException are) {