From f14738c9178702eb3097150b206d2f9753b97712 Mon Sep 17 00:00:00 2001 From: Mike Hatfield Date: Tue, 8 Jul 2008 14:35:29 +0000 Subject: [PATCH] DocLib file upload posting to Activities service. Fixes for hash updates in browser address bar. More placeholder images for DocLib actions. Fix to json.status.ftl to pass YAHOO JSON isValid() test. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@9681 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../documentlibrary/file-added.atomentry.ftl | 17 ++++++ .../documentlibrary/file-added.rss.ftl | 11 ++++ .../documentlibrary/files-added.atomentry.ftl | 17 ++++++ .../documentlibrary/files-added.rss.ftl | 11 ++++ .../repository/upload/upload.post.json.ftl | 13 ++--- .../documentlibrary/activity.post.desc.xml | 8 +++ .../documentlibrary/activity.post.js | 52 +++++++++++++++++++ .../documentlibrary/activity.post.json.ftl | 3 ++ .../documentlibrary/doclist.get.rss.ftl | 36 +++++++++++++ 9 files changed, 162 insertions(+), 6 deletions(-) create mode 100644 config/alfresco/templates/activities/org/alfresco/documentlibrary/file-added.atomentry.ftl create mode 100644 config/alfresco/templates/activities/org/alfresco/documentlibrary/file-added.rss.ftl create mode 100644 config/alfresco/templates/activities/org/alfresco/documentlibrary/files-added.atomentry.ftl create mode 100644 config/alfresco/templates/activities/org/alfresco/documentlibrary/files-added.rss.ftl create mode 100644 config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/activity.post.desc.xml create mode 100644 config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/activity.post.js create mode 100644 config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/activity.post.json.ftl create mode 100644 config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/doclist.get.rss.ftl diff --git a/config/alfresco/templates/activities/org/alfresco/documentlibrary/file-added.atomentry.ftl b/config/alfresco/templates/activities/org/alfresco/documentlibrary/file-added.atomentry.ftl new file mode 100644 index 0000000000..c18d5abb4b --- /dev/null +++ b/config/alfresco/templates/activities/org/alfresco/documentlibrary/file-added.atomentry.ftl @@ -0,0 +1,17 @@ +<#assign username=userId> +<#if firstName?exists> + <#assign username = firstName + " " + lastName> + + + ${fileName!"File uploaded"} + + ${id} + ${xmldate(date)} + + ${fileName} to the Document Library.]]> + + + ${userId!""} + + + diff --git a/config/alfresco/templates/activities/org/alfresco/documentlibrary/file-added.rss.ftl b/config/alfresco/templates/activities/org/alfresco/documentlibrary/file-added.rss.ftl new file mode 100644 index 0000000000..0a3c1ba80b --- /dev/null +++ b/config/alfresco/templates/activities/org/alfresco/documentlibrary/file-added.rss.ftl @@ -0,0 +1,11 @@ +<#assign username=userId> +<#if firstName?exists> + <#assign username = firstName + " " + lastName> + + + ${fileName!"File uploaded"} + ${browseURL?replace("&", "&")} + ${id} + ${username} added ${fileName} to the Document Library. + + diff --git a/config/alfresco/templates/activities/org/alfresco/documentlibrary/files-added.atomentry.ftl b/config/alfresco/templates/activities/org/alfresco/documentlibrary/files-added.atomentry.ftl new file mode 100644 index 0000000000..e9b4886709 --- /dev/null +++ b/config/alfresco/templates/activities/org/alfresco/documentlibrary/files-added.atomentry.ftl @@ -0,0 +1,17 @@ +<#assign username=userId> +<#if firstName?exists> + <#assign username = firstName + " " + lastName> + + + ${fileCount!"Many"} files uploaded + + ${id} + ${xmldate(date)} + + Document Library.]]> + + + ${userId!""} + + + diff --git a/config/alfresco/templates/activities/org/alfresco/documentlibrary/files-added.rss.ftl b/config/alfresco/templates/activities/org/alfresco/documentlibrary/files-added.rss.ftl new file mode 100644 index 0000000000..9c23e16a19 --- /dev/null +++ b/config/alfresco/templates/activities/org/alfresco/documentlibrary/files-added.rss.ftl @@ -0,0 +1,11 @@ +<#assign username=userId> +<#if firstName?exists> + <#assign username = firstName + " " + lastName> + + + ${fileCount!"Many"} files uploaded + ${browseURL?replace("&", "&")} + ${id} + ${username} added ${fileCount!"multiple"} files to the Document Library. + + diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/upload/upload.post.json.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/upload/upload.post.json.ftl index c9ddc29cba..8e233f151b 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/repository/upload/upload.post.json.ftl +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/upload/upload.post.json.ftl @@ -1,8 +1,9 @@ { - status : - { - "code" : "200, - "name" : "OK", - "description" : "Hardcoded response template" - } + "nodeRef": "${upload.nodeRef}", + "status": + { + "code": 200, + "name": "OK", + "description" : "File uploaded successfully" + } } diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/activity.post.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/activity.post.desc.xml new file mode 100644 index 0000000000..34933d4903 --- /dev/null +++ b/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/activity.post.desc.xml @@ -0,0 +1,8 @@ + + activity + Document List Component - activity data webscript + /slingshot/doclib/activity + + user + required + \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/activity.post.js b/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/activity.post.js new file mode 100644 index 0000000000..f1b145a26b --- /dev/null +++ b/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/activity.post.js @@ -0,0 +1,52 @@ +/** + * Document List Component: activity + */ +postActivity(); + +/* Posts to the activities service after a Document Library action */ +function postActivity() +{ + var obj = {}; + + var type = json.get("type"); + if (type == null || type.length == 0) + { + status.setCode(status.STATUS_BAD_REQUEST, "Activity type missing when posting activity"); + return; + } + + var siteId = json.get("siteId"); + if (siteId == null || siteId.length == 0) + { + status.setCode(status.STATUS_BAD_REQUEST, "SiteId missing when posting activity"); + return; + } + + switch (String(type).toLowerCase()) + { + case "file-added": + obj.browseURL = json.get("browseURL"); + obj.contentURL = json.get("contentURL"); + obj.fileName = json.get("fileName"); + break; + + case "files-added": + obj.browseURL = json.get("browseURL"); + obj.fileCount = json.get("fileCount"); + break; + } + + try + { + // Log to activity service + activities.postActivity("org.alfresco.documentlibrary." + type, siteId, "documentlibrary", jsonUtils.toJSONString(obj)); + } + catch(e) + { + if (logger.isLoggingEnabled()) + { + logger.log(e); + } + } + +} diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/activity.post.json.ftl b/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/activity.post.json.ftl new file mode 100644 index 0000000000..e37684e04d --- /dev/null +++ b/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/activity.post.json.ftl @@ -0,0 +1,3 @@ +{ + "success": true +} \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/doclist.get.rss.ftl b/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/doclist.get.rss.ftl new file mode 100644 index 0000000000..7bd8d48bc3 --- /dev/null +++ b/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/doclist.get.rss.ftl @@ -0,0 +1,36 @@ + + + + Alfresco - Documents + ${absurl(url.context)}/ + Alfresco Document List + ${xmldate(date)} + ${xmldate(date)} + Alfresco ${server.edition} v${server.version} + + Alfresco - My Documents + ${absurl(url.context)?replace("alfresco", "slingshot/proxy/alfresco")}/images/logo/AlfrescoLogo200.png + +<#list doclist.items as item> + <#assign d = item.asset> + <#if d.isDocument> + <#assign isImage=(d.mimetype="image/gif" || d.mimetype="image/jpeg" || d.mimetype="image/png")> + <#assign isMP3=(d.mimetype="audio/x-mpeg" || d.mimetype="audio/mpeg")> + + ${d.name?html} + <#assign navurl='/navigate/showDocDetails/' + d.nodeRef.storeRef.protocol + '/' + d.nodeRef.storeRef.identifier + '/' + d.nodeRef.id> + ${absurl(url.context)?replace("alfresco", "slingshot/proxy/alfresco")}/api/node/content/${d.storeType}/${d.storeId}/${d.id}/${d.name?url} + <#if isMP3> + + + + <#if isImage || true><img src="${absurl(url.context)?replace("alfresco", "slingshot/proxy/alfresco")}/api/node/content/${d.storeType}/${d.storeId}/${d.id}/${d.name?url}"><br/> + <#if d.properties.description?exists>${d.properties.description?html} + + ${xmldate(d.properties.modified)} + ${d.id} + + + + + \ No newline at end of file