diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/activities/userfeed-admin.get.json.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/activities/userfeed-admin.get.json.ftl index e6f2c5868a..3af0b6a7d9 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/repository/activities/userfeed-admin.get.json.ftl +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/activities/userfeed-admin.get.json.ftl @@ -1,5 +1,7 @@ -{ +[ <#if feedEntries??> -<#list feedEntries as feedEntry> ${feedEntry.activitySummary} -<#else> -} \ No newline at end of file +<#list feedEntries as feedEntry> + ${feedEntry}<#if feedEntry_has_next>, + + +] \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/activities/userfeed.get.json.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/activities/userfeed.get.json.ftl index e6f2c5868a..3af0b6a7d9 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/repository/activities/userfeed.get.json.ftl +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/activities/userfeed.get.json.ftl @@ -1,5 +1,7 @@ -{ +[ <#if feedEntries??> -<#list feedEntries as feedEntry> ${feedEntry.activitySummary} -<#else> -} \ No newline at end of file +<#list feedEntries as feedEntry> + ${feedEntry}<#if feedEntry_has_next>, + + +] \ No newline at end of file diff --git a/source/java/org/alfresco/repo/web/scripts/activities/SiteFeedRetrieverWebScript.java b/source/java/org/alfresco/repo/web/scripts/activities/SiteFeedRetrieverWebScript.java index 3188099326..cca1916382 100644 --- a/source/java/org/alfresco/repo/web/scripts/activities/SiteFeedRetrieverWebScript.java +++ b/source/java/org/alfresco/repo/web/scripts/activities/SiteFeedRetrieverWebScript.java @@ -24,15 +24,18 @@ */ package org.alfresco.repo.web.scripts.activities; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.alfresco.error.AlfrescoRuntimeException; import org.alfresco.service.cmr.activities.ActivityService; +import org.alfresco.util.JSONtoFmModel; import org.alfresco.web.scripts.DeclarativeWebScript; import org.alfresco.web.scripts.Status; import org.alfresco.web.scripts.WebScriptRequest; +import org.json.JSONException; /** * Java-backed WebScript to retrieve Activity Site Feed @@ -83,11 +86,34 @@ public class SiteFeedRetrieverWebScript extends DeclarativeWebScript // TODO - check if site is public or private // if private and user is not a member or not an admin then throw 401 (unauthorised) - List> feedEntries = activityService.getSiteFeedEntries(siteId, format); - Map model = new HashMap(); - model.put("feedEntries", feedEntries); - model.put("siteId", siteId); + + List feedEntries = activityService.getSiteFeedEntries(siteId, format); + + if (format.equals("json")) + { + model.put("feedEntries", feedEntries); + model.put("siteId", siteId); + } + else + { + List> activityFeedModels = new ArrayList>(); + try + { + for (String feedEntry : feedEntries) + { + activityFeedModels.add(JSONtoFmModel.convertJSONObjectToMap(feedEntry)); + } + } + catch (JSONException je) + { + throw new AlfrescoRuntimeException("Unable to get user feed entries: " + je.getMessage()); + } + + model.put("feedEntries", activityFeedModels); + model.put("siteId", siteId); + } + return model; } } diff --git a/source/java/org/alfresco/repo/web/scripts/activities/UserFeedRetrieverWebScript.java b/source/java/org/alfresco/repo/web/scripts/activities/UserFeedRetrieverWebScript.java index ff7b91b97e..d4f0120c0d 100644 --- a/source/java/org/alfresco/repo/web/scripts/activities/UserFeedRetrieverWebScript.java +++ b/source/java/org/alfresco/repo/web/scripts/activities/UserFeedRetrieverWebScript.java @@ -24,6 +24,7 @@ */ package org.alfresco.repo.web.scripts.activities; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -31,9 +32,11 @@ import java.util.Map; import org.alfresco.error.AlfrescoRuntimeException; import org.alfresco.repo.security.authentication.AuthenticationUtil; import org.alfresco.service.cmr.activities.ActivityService; +import org.alfresco.util.JSONtoFmModel; import org.alfresco.web.scripts.DeclarativeWebScript; import org.alfresco.web.scripts.Status; import org.alfresco.web.scripts.WebScriptRequest; +import org.json.JSONException; /** * Java-backed WebScript to retrieve Activity User Feed @@ -90,11 +93,34 @@ public class UserFeedRetrieverWebScript extends DeclarativeWebScript format = "atomentry"; } - List> feedEntries = activityService.getUserFeedEntries(feedUserId, format, siteId); - Map model = new HashMap(); - model.put("feedEntries", feedEntries); - model.put("feedUserId", feedUserId); + + List feedEntries = activityService.getUserFeedEntries(feedUserId, format, siteId); + + if (format.equals("json")) + { + model.put("feedEntries", feedEntries); + model.put("siteId", siteId); + } + else + { + List> activityFeedModels = new ArrayList>(); + try + { + for (String feedEntry : feedEntries) + { + activityFeedModels.add(JSONtoFmModel.convertJSONObjectToMap(feedEntry)); + } + } + catch (JSONException je) + { + throw new AlfrescoRuntimeException("Unable to get user feed entries: " + je.getMessage()); + } + + model.put("feedEntries", activityFeedModels); + model.put("feedUserId", feedUserId); + } + return model; } }