diff --git a/source/java/org/alfresco/repo/web/scripts/calendar/AbstractCalendarWebScript.java b/source/java/org/alfresco/repo/web/scripts/calendar/AbstractCalendarWebScript.java index d8ca100815..3e2da06838 100644 --- a/source/java/org/alfresco/repo/web/scripts/calendar/AbstractCalendarWebScript.java +++ b/source/java/org/alfresco/repo/web/scripts/calendar/AbstractCalendarWebScript.java @@ -39,6 +39,8 @@ import org.alfresco.service.cmr.site.SiteService; import org.alfresco.service.namespace.QName; import org.alfresco.util.GUID; import org.alfresco.util.ISO8601DateFormat; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.json.JSONException; import org.json.JSONObject; import org.json.JSONTokener; @@ -56,6 +58,8 @@ public abstract class AbstractCalendarWebScript extends DeclarativeWebScript { public static final String CALENDAR_SERVICE_ACTIVITY_APP_NAME = "calendar"; + private static Log logger = LogFactory.getLog(AbstractCalendarWebScript.class); + /** * When no maximum or paging info is given, what should we use? */ @@ -219,6 +223,57 @@ public abstract class AbstractCalendarWebScript extends DeclarativeWebScript return model; } + + /** + * Generates an activity entry for the entry + */ + protected String addActivityEntry(String event, CalendarEntry entry, SiteInfo site, + WebScriptRequest req, JSONObject json) + { + SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd"); + String dateOpt = "?date=" + fmt.format(entry.getStart()); + + // What page is this for? + String page = req.getParameter("page"); + if(page == null && json != null) + { + if(json.has("page")) + { + try + { + page = json.getString("page"); + } + catch(JSONException e) {} + } + } + if(page == null) + { + // Default + page = "calendar"; + } + + try + { + JSONObject activity = new JSONObject(); + activity.put("title", entry.getTitle()); + activity.put("page", page + dateOpt); + + activityService.postActivity( + "org.alfresco.calendar.event-" + event, + site.getShortName(), + CALENDAR_SERVICE_ACTIVITY_APP_NAME, + activity.toString() + ); + } + catch(Exception e) + { + // Warn, but carry on + logger.warn("Error adding event " + event + " to activities feed", e); + } + + // Return the date we used + return dateOpt; + } /** * For an event that is a recurring event, have an ignored child event diff --git a/source/java/org/alfresco/repo/web/scripts/calendar/CalendarEntryDelete.java b/source/java/org/alfresco/repo/web/scripts/calendar/CalendarEntryDelete.java index 330d2fe84e..cc853057b6 100644 --- a/source/java/org/alfresco/repo/web/scripts/calendar/CalendarEntryDelete.java +++ b/source/java/org/alfresco/repo/web/scripts/calendar/CalendarEntryDelete.java @@ -22,8 +22,6 @@ import java.util.Map; import org.alfresco.service.cmr.calendar.CalendarEntry; import org.alfresco.service.cmr.site.SiteInfo; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import org.json.JSONObject; import org.springframework.extensions.webscripts.Cache; import org.springframework.extensions.webscripts.Status; @@ -37,8 +35,6 @@ import org.springframework.extensions.webscripts.WebScriptRequest; */ public class CalendarEntryDelete extends AbstractCalendarWebScript { - private static Log logger = LogFactory.getLog(CalendarEntryDelete.class); - /** * This WebScript uses HTTP status codes for errors */ @@ -75,24 +71,7 @@ public class CalendarEntryDelete extends AbstractCalendarWebScript calendarService.deleteCalendarEntry(entry); // Record this in the activity feed - try - { - JSONObject activity = new JSONObject(); - activity.put("title", entry.getTitle()); - activity.put("page", req.getParameter("page")); - - activityService.postActivity( - "org.alfresco.calendar.event-deleted", - site.getShortName(), - CALENDAR_SERVICE_ACTIVITY_APP_NAME, - activity.toString() - ); - } - catch(Exception e) - { - // Warn, but carry on - logger.warn("Error adding event deletion to activities feed", e); - } + addActivityEntry("deleted", entry, site, req, json); // All done status.setCode(Status.STATUS_NO_CONTENT, "Entry deleted"); diff --git a/source/java/org/alfresco/repo/web/scripts/calendar/CalendarEntryPost.java b/source/java/org/alfresco/repo/web/scripts/calendar/CalendarEntryPost.java index a716a22774..bee930b177 100644 --- a/source/java/org/alfresco/repo/web/scripts/calendar/CalendarEntryPost.java +++ b/source/java/org/alfresco/repo/web/scripts/calendar/CalendarEntryPost.java @@ -18,7 +18,6 @@ */ package org.alfresco.repo.web.scripts.calendar; -import java.text.SimpleDateFormat; import java.util.HashMap; import java.util.Map; import java.util.StringTokenizer; @@ -26,8 +25,6 @@ import java.util.StringTokenizer; import org.alfresco.service.cmr.calendar.CalendarEntry; import org.alfresco.service.cmr.calendar.CalendarEntryDTO; import org.alfresco.service.cmr.site.SiteInfo; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import org.json.JSONException; import org.json.JSONObject; import org.springframework.extensions.webscripts.Cache; @@ -42,8 +39,6 @@ import org.springframework.extensions.webscripts.WebScriptRequest; */ public class CalendarEntryPost extends AbstractCalendarWebScript { - private static Log logger = LogFactory.getLog(CalendarEntryPost.class); - @Override protected Map executeImpl(SiteInfo site, String eventName, WebScriptRequest req, JSONObject json, Status status, Cache cache) { @@ -89,26 +84,7 @@ public class CalendarEntryPost extends AbstractCalendarWebScript // Generate the activity feed for this - SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd"); - String dateOpt = "?date=" + fmt.format(entry.getStart()); - try - { - JSONObject activity = new JSONObject(); - activity.put("title", entry.getTitle()); - activity.put("page", req.getParameter("page") + dateOpt); - - activityService.postActivity( - "org.alfresco.calendar.event-created", - site.getShortName(), - CALENDAR_SERVICE_ACTIVITY_APP_NAME, - activity.toString() - ); - } - catch(Exception e) - { - // Warn, but carry on - logger.warn("Error adding event deletion to activities feed", e); - } + String dateOpt = addActivityEntry("created", entry, site, req, json); // Build the return object diff --git a/source/java/org/alfresco/repo/web/scripts/calendar/CalendarEntryPut.java b/source/java/org/alfresco/repo/web/scripts/calendar/CalendarEntryPut.java index adda59484f..59a720c49d 100644 --- a/source/java/org/alfresco/repo/web/scripts/calendar/CalendarEntryPut.java +++ b/source/java/org/alfresco/repo/web/scripts/calendar/CalendarEntryPut.java @@ -18,7 +18,6 @@ */ package org.alfresco.repo.web.scripts.calendar; -import java.text.SimpleDateFormat; import java.util.HashMap; import java.util.Map; import java.util.StringTokenizer; @@ -26,8 +25,6 @@ import java.util.StringTokenizer; import org.alfresco.service.cmr.calendar.CalendarEntry; import org.alfresco.service.cmr.calendar.CalendarEntryDTO; import org.alfresco.service.cmr.site.SiteInfo; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import org.json.JSONException; import org.json.JSONObject; import org.springframework.extensions.webscripts.Cache; @@ -42,8 +39,6 @@ import org.springframework.extensions.webscripts.WebScriptRequest; */ public class CalendarEntryPut extends AbstractCalendarWebScript { - private static Log logger = LogFactory.getLog(CalendarEntryPut.class); - @Override protected Map executeImpl(SiteInfo site, String eventName, WebScriptRequest req, JSONObject json, Status status, Cache cache) { @@ -157,26 +152,7 @@ public class CalendarEntryPut extends AbstractCalendarWebScript // Generate the activity feed for this - SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd"); - String dateOpt = "?date=" + fmt.format(entry.getStart()); - try - { - JSONObject activity = new JSONObject(); - activity.put("title", entry.getTitle()); - activity.put("page", req.getParameter("page") + dateOpt); - - activityService.postActivity( - "org.alfresco.calendar.event-updated", - site.getShortName(), - CALENDAR_SERVICE_ACTIVITY_APP_NAME, - activity.toString() - ); - } - catch(Exception e) - { - // Warn, but carry on - logger.warn("Error adding event deletion to activities feed", e); - } + String dateOpt = addActivityEntry("updated", entry, site, req, json); // Build the return object