diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/avatar.get.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/avatar.get.desc.xml deleted file mode 100644 index e20c0bc1bf..0000000000 --- a/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/avatar.get.desc.xml +++ /dev/null @@ -1,16 +0,0 @@ - - Avatar - - Returns a user avatar image in the format specified by the thumbnailname, or the "avatar" preset if omitted. - - /slingshot/profile/avatar/avatar - /slingshot/profile/avatar/avatar/thumbnail/{thumbnailname} - /slingshot/profile/avatar/{store_type}/{store_id}/{id}/thumbnail/{thumbnailname} - /slingshot/profile/avatar/{store_type}/{store_id}/{id} - /slingshot/profile/avatar/{username}/thumbnail/{thumbnailname} - /slingshot/profile/avatar/{username} - argument - user - required - internal - \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/avatar.get.js b/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/avatar.get.js deleted file mode 100644 index f4b278a1aa..0000000000 --- a/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/avatar.get.js +++ /dev/null @@ -1,104 +0,0 @@ -/** - * User Profile - User avatar GET method - * - * Returns a user avatar image in the format specified by the thumbnailname, or the "avatar" preset if omitted. - * - * @method GET - */ - -function getPlaceholder(thumbnailName) -{ - // Try and get the place holder resource for a png avatar. - var phPath = thumbnailService.getMimeAwarePlaceHolderResourcePath(thumbnailName, "images/png"); - if (phPath == null) - { - // 404 since no thumbnail was found - status.setCode(status.STATUS_NOT_FOUND, "Thumbnail was not found and no place holder resource set for '" + thumbnailName + "'"); - return; - } - - return phPath; -} - -function main() -{ - var userName = url.templateArgs.username, - thumbnailName = url.templateArgs.thumbnailname || "avatar", - avatarNode; - - // If there is no store type, store id or id on the request then this WebScript has most likely been requested - // for a user with no avatar image so we will just return the placeholder image. - if (userName == null && url.templateArgs.store_type == null && url.templateArgs.store_id == null && url.templateArgs.id == null) - { - // If there is no userName or nodeRef data then we want to return the browser cacheable placeholder... - model.contentPath = getPlaceholder(thumbnailName); - model.allowBrowserToCache = "true"; - return; - } - else if (url.templateArgs.store_type == null && url.templateArgs.store_id == null && url.templateArgs.id == null) - { - // There is no nodeRef data but there is a username... this should return the user image that needs revalidation - var person = people.getPerson(userName); - if (person == null) - { - // Stream the placeholder image - model.contentPath = getPlaceholder(thumbnailName); - return; - } - else - { - // Retrieve the avatar NodeRef for this person, if there is one. - var avatarAssoc = person.assocs["cm:avatar"]; - if (avatarAssoc != null) - { - avatarNode = avatarAssoc[0]; - } - } - } - else if (userName == null) - { - // There is no user name but there is nodeREf data... this should return the image that CAN be cached by the browser - model.allowBrowserToCache = "true"; - avatarNode = search.findNode(url.templateArgs.store_type + "://" + url.templateArgs.store_id + "/" + url.templateArgs.id); - if (avatarNode == null) - { - // Stream the placeholder image if the avatar node cannot be found. - model.contentPath = getPlaceholder(thumbnailName); - return; - } - } - - // Get the thumbnail for the avatar... - if (avatarNode != null) - { - // Get the thumbnail - var thumbnail = avatarNode.getThumbnail(thumbnailName); - if (thumbnail == null || thumbnail.size == 0) - { - // Remove broken thumbnail - if (thumbnail != null) - { - thumbnail.remove(); - } - - // Force the creation of the thumbnail - thumbnail = avatarNode.createThumbnail(thumbnailName, false); - if (thumbnail != null) - { - model.contentNode = thumbnail; - return; - } - } - else - { - // Place the details of the thumbnail into the model, this will be used to stream the content to the client - model.contentNode = thumbnail; - return; - } - } - - // Stream the placeholder image - model.contentPath = getPlaceholder(thumbnailName); -} - -main(); \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/resetavatar.put.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/resetavatar.put.desc.xml deleted file mode 100644 index ce0d21af7a..0000000000 --- a/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/resetavatar.put.desc.xml +++ /dev/null @@ -1,9 +0,0 @@ - - Reset Avatar image - User Profile - Reset Avatar image for a user - argument - user - required - /slingshot/profile/resetavatar/{userName} - internal - \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/resetavatar.put.json.ftl b/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/resetavatar.put.json.ftl deleted file mode 100644 index c85c20f2b4..0000000000 --- a/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/resetavatar.put.json.ftl +++ /dev/null @@ -1,3 +0,0 @@ -{ - "success": ${success?string} -} \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/resetavatar.put.json.js b/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/resetavatar.put.json.js deleted file mode 100644 index 3f604c2726..0000000000 --- a/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/resetavatar.put.json.js +++ /dev/null @@ -1,46 +0,0 @@ -/** - * User Profile - Reset user avatar REST method - * - * Current user can only modify their own settings or an admin can reset all. - * - * @method PUT - */ - -function main() -{ - // Get the person details and ensure they exist for update - var userName = url.extension; - var user = people.getPerson(userName); - if (user == null) - { - status.setCode(status.STATUS_NOT_FOUND, "Person " + userName + " does not exist"); - return; - } - - // ensure we found a valid user and that it is the current user or we are an admin - if (user == null || - (people.isAdmin(person) == false && user.properties.userName != person.properties.userName)) - { - status.code = 500; - status.message = "Failed to locate user to modify or permission denied."; - status.redirect = true; - return; - } - - // remove old image child node if we have one - var assocs = user.childAssocs["cm:preferenceImage"]; - if (assocs != null && assocs.length == 1) - { - assocs[0].remove(); - } - // remove 'cm:avatar' target association - backward compatible with JSF web-client avatar - assocs = user.associations["cm:avatar"]; - if (assocs != null && assocs.length == 1) - { - user.removeAssociation(assocs[0], "cm:avatar"); - } - - model.success = true; -} - -main(); \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/uploadavatar.post.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/uploadavatar.post.desc.xml deleted file mode 100644 index d6a0280f72..0000000000 --- a/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/uploadavatar.post.desc.xml +++ /dev/null @@ -1,9 +0,0 @@ - - Avatar Upload - Upload avatar file content and apply to person preferences - - user - required - /slingshot/profile/uploadavatar - internal - \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/uploadavatar.post.html.ftl b/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/uploadavatar.post.html.ftl deleted file mode 100644 index 91cac6770a..0000000000 --- a/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/uploadavatar.post.html.ftl +++ /dev/null @@ -1,15 +0,0 @@ - - - Upload Avatar Success - - -<#if (args.success!"")?matches("^[\\w\\d\\._]+$")> - - - - \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/uploadavatar.post.html.status.ftl b/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/uploadavatar.post.html.status.ftl deleted file mode 100644 index 41659be481..0000000000 --- a/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/uploadavatar.post.html.status.ftl +++ /dev/null @@ -1,19 +0,0 @@ - - - Upload Avatar Failure - - -<#if (args.failure!"")?matches("^[\\w\\d\\._]+$")> - - - - \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/uploadavatar.post.js b/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/uploadavatar.post.js deleted file mode 100644 index 5a2dae1149..0000000000 --- a/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/uploadavatar.post.js +++ /dev/null @@ -1,115 +0,0 @@ -/** - * User Profile Avatar Upload method - * - * @method POST - * @param username {string} - * filedata {file} - */ - -function main() -{ - try - { - var filename = null; - var content = null; - var username = null; - - // locate file attributes - for each (field in formdata.fields) - { - if (field.name == "filedata" && field.isFile) - { - filename = field.filename; - content = field.content; - } - else if (field.name == "username") - { - username = field.value; - } - } - - // ensure all mandatory attributes have been located - if (filename == undefined || content == undefined) - { - status.code = 400; - status.message = "Uploaded file cannot be located in request"; - status.redirect = true; - return; - } - if (username == null || username.length == 0) - { - status.code = 500; - status.message = "Username parameter not supplied."; - status.redirect = true; - return; - } - - var user = people.getPerson(username); - // ensure we found a valid user and that it is the current user or we are an admin - if (user == null || - (people.isAdmin(person) == false && user.properties.userName != person.properties.userName)) - { - status.code = 500; - status.message = "Failed to locate user to modify or permission denied."; - status.redirect = true; - return; - } - - // ensure cm:person has 'cm:preferences' aspect applied - as we want to add the avatar as - // the child node of the 'cm:preferenceImage' association - if (!user.hasAspect("cm:preferences")) - { - user.addAspect("cm:preferences"); - } - - // remove old image child node if we already have one - var assocs = user.childAssocs["cm:preferenceImage"]; - if (assocs != null && assocs.length == 1) - { - assocs[0].remove(); - } - - // create the new image node - var image = user.createNode(filename, "cm:content", "cm:preferenceImage"); - image.properties.content.write(content); - image.properties.content.guessMimetype(filename); - - if (image.properties.content.getMimetype().indexOf("image/") != 0) - { - user.removeNode(image); - status.code = 500; - status.message = " Only image files are allowed for user avatar."; - status.redirect = true; - return; - } - - image.properties.content.encoding = "UTF-8"; - image.save(); - - // wire up 'cm:avatar' target association - backward compatible with JSF web-client avatar - assocs = user.associations["cm:avatar"]; - if (assocs != null && assocs.length == 1) - { - user.removeAssociation(assocs[0], "cm:avatar"); - } - user.createAssociation(image, "cm:avatar"); - - // save ref to be returned - model.image = image; - } - catch (e) - { - var x = e; - status.code = 500; - status.message = "Unexpected error occured during upload of new content."; - if(x.message && x.message.indexOf("org.alfresco.service.cmr.usage.ContentQuotaException") == 0) - { - status.code = 413; - status.message = x.message; - } - status.redirect = true; - return; - } -} - -main(); \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/uploadavatar.post.json.ftl b/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/uploadavatar.post.json.ftl deleted file mode 100644 index c12892eb08..0000000000 --- a/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/uploadavatar.post.json.ftl +++ /dev/null @@ -1,12 +0,0 @@ -<#escape x as jsonUtils.encodeJSONString(x)> -{ - "nodeRef": "${image.nodeRef}", - "fileName": "${image.name}", - "status": - { - "code": 200, - "name": "OK", - "description" : "File uploaded successfully" - } -} - \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/usercontents.get.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/usercontents.get.desc.xml deleted file mode 100644 index a807ece184..0000000000 --- a/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/usercontents.get.desc.xml +++ /dev/null @@ -1,9 +0,0 @@ - - Last edited user contents - Last edited user contents - - guest - /slingshot/profile/usercontents - required - internal - \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/usercontents.get.js b/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/usercontents.get.js deleted file mode 100644 index a491873c6b..0000000000 --- a/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/usercontents.get.js +++ /dev/null @@ -1,90 +0,0 @@ - - -var maxResults = (args.maxResults !== undefined) ? parseInt(args.maxResults, 10) : DEFAULT_MAX_RESULTS; - -function padZeros(number) -{ - return (number < 10) ? '0' + number : number; -} - -function getContents(user, type) -{ - // set range to within last 28 days - var date = new Date(); - var toQuery = date.getFullYear() + "-" + padZeros((date.getMonth()+1)) + "-" + padZeros(date.getDate()); - date.setDate(date.getDate() - 28); - var fromQuery = date.getFullYear() + "-" + padZeros((date.getMonth()+1)) + "-" + padZeros(date.getDate()); - - var userProperty = (type == 'created') ? 'creator' : 'modifier'; - - var getBlogPostsQuery = function getBlogPosts() - { - return 'PATH:"/app:company_home/st:sites/*/cm:blog/*" ' + - 'AND +TYPE:"cm:content" ' + - 'AND +@cm:' + userProperty + ':"' + user + '" ' + - 'AND +@cm:' + type + ':["' + fromQuery + '" TO "' + toQuery + '"]'; - }; - - var getWikiPagesQuery = function getWikiPagesQuery() - { - return 'PATH:"/app:company_home/st:sites/*/cm:wiki/*" ' + - 'AND +TYPE:"cm:content" ' + - 'AND +@cm:' + userProperty + ':"' + user + '" ' + - 'AND +@cm:' + type + ':["' + fromQuery + '" TO "' + toQuery + '"]'; - }; - - var getDiscussionsQuery = function getDiscussionsQuery() - { - return 'PATH:"/app:company_home/st:sites/*/cm:discussions//*" ' + - 'AND +TYPE:"fm:post" ' + - 'AND +@cm:' + userProperty + ':"' + user + '" ' + - 'AND +@cm:' + type + ':["' + fromQuery + '" TO "' + toQuery + '"]'; - }; - - var getDocumentsQuery = function getDocumentsQuery() - { - return 'TYPE:"cm:content" ' + - 'AND +@cm:' + userProperty + ':"' + user + '" ' + - 'AND +@cm:' + type + ':["' + fromQuery + '" TO "' + toQuery + '"] AND -QNAME:comment\\-*'; - }; - - var sortColumns = []; - sortColumns.push( - { - column: "@" + utils.longQName("cm:" + type), - ascending: false - }); - - var queryDef = { - query: "", - language: "fts-alfresco", - page: {maxItems: maxResults}, - onerror: "no-results", - sort: sortColumns - }; - - // perform fts-alfresco language queries - var results; - queryDef.query = getBlogPostsQuery(); - results = search.query(queryDef); - queryDef.query = getWikiPagesQuery(); - results = results.concat(search.query(queryDef)); - queryDef.query = getDiscussionsQuery(); - results = results.concat(search.query(queryDef)); - queryDef.query = getDocumentsQuery(); - results = results.concat(search.query(queryDef)); - - results.sort(function(a, b) - { - var date1 = a.properties[type].getTime(), - date2 = b.properties[type].getTime(); - return (date1 < date2) ? 1 : (date1 > date2) ? -1 : 0; - } - ); - - return processResults(results, maxResults); -} - -model.data = []; -model.data['created'] = getContents(args.user, 'created', maxResults); -model.data['modified'] = getContents(args.user, 'modified', maxResults); \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/usercontents.get.json.ftl b/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/usercontents.get.json.ftl deleted file mode 100644 index 5919dfb4ca..0000000000 --- a/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/usercontents.get.json.ftl +++ /dev/null @@ -1,37 +0,0 @@ -<#macro dateFormat date>${date?string("yyyy-MM-dd'T'HH:mm:ss.SSSZ")} -<#macro formatDataItems data> -<#escape x as jsonUtils.encodeJSONString(x)> -{ - "items": - [ - <#list data.items as item> - { - "nodeRef": "${item.nodeRef}", - "type": "${item.type}", - "name": "${item.name!''}", - "displayName": "${item.displayName!''}", - "description": "${item.description!''}", - "createdOn": "<@dateFormat item.createdOn />", - "createdBy": "${item.createdBy!''}", - "createdByUser": "${item.createdByUser!''}", - "modifiedOn": "<@dateFormat item.modifiedOn />", - "modifiedByUser": "${item.modifiedByUser}", - "modifiedBy": "${item.modifiedBy}", - "size": ${item.size?c}, - <#if item.site??>"site": - { - "shortName": "${item.site.shortName}", - "title": "${item.site.title}" - }, - "container": "${item.container!""}", - "tags": [<#list item.tags as tag>"${tag}"<#if tag_has_next>,] - }<#if item_has_next>, - - ] -} - - -{ - "created": <@formatDataItems data['created'] />, - "modified": <@formatDataItems data['modified'] /> -} \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/userprofile.post.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/userprofile.post.desc.xml deleted file mode 100644 index 9380df58ec..0000000000 --- a/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/userprofile.post.desc.xml +++ /dev/null @@ -1,9 +0,0 @@ - - User Profile - User Profile POST for update - - user - required - /slingshot/profile/userprofile - internal - \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/userprofile.post.json.ftl b/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/userprofile.post.json.ftl deleted file mode 100644 index c85c20f2b4..0000000000 --- a/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/userprofile.post.json.ftl +++ /dev/null @@ -1,3 +0,0 @@ -{ - "success": ${success?string} -} \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/userprofile.post.json.js b/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/userprofile.post.json.js deleted file mode 100644 index 4e547fa63d..0000000000 --- a/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/userprofile.post.json.js +++ /dev/null @@ -1,88 +0,0 @@ -/** - * User Profile REST Update method - * - * @method POST - * @param json {string} - * { - * username: "username", - * properties: - * { - * "cm:propname": "value" - * ... - * }, - * content: - * { - * "cm:contentpropname": "contentstringvalue" - * ... - * } - * } - */ - -function main() -{ - model.success = false; - var username = json.get("username"); - if (username == null) - { - status.code = 400; - status.message = "Username parameter not supplied."; - status.redirect = true; - return; - } - - var user = people.getPerson(username); - // ensure we found a valid user and that it is the current user or we are an admin - if (user == null || - (people.isAdmin(person) == false && user.properties.userName != person.properties.userName)) - { - status.code = 500; - status.message = "Failed to locate user to modify or permission denied."; - status.redirect = true; - return; - } - - if (json.has("properties")) - { - var props = json.get("properties"); - if (props != null) - { - var names = props.names(); - for (var i=0; i - User Status - User Status POST for update - - user - required - /slingshot/profile/userstatus - internal - \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/userstatus.post.json.ftl b/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/userstatus.post.json.ftl deleted file mode 100644 index 9d91c6a79d..0000000000 --- a/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/userstatus.post.json.ftl +++ /dev/null @@ -1,9 +0,0 @@ -<#escape x as jsonUtils.encodeJSONString(x)> -{ -<#if success> - "userStatus": "${userStatus}", - "userStatusTime": { "iso8601": "${xmldate(userStatusTime)}"}, - - "success": ${success?string} -} - \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/userstatus.post.json.js b/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/userstatus.post.json.js deleted file mode 100644 index 4786d850bc..0000000000 --- a/config/alfresco/templates/webscripts/org/alfresco/slingshot/profile/userstatus.post.json.js +++ /dev/null @@ -1,39 +0,0 @@ -/** - * User Status REST Update method - * - * @method POST - * @param json {string} - * { - * status: "value" - * } - */ - -function main() -{ - model.success = false; - - if (json.has("status")) - { - var newStatus = json.get("status"); - if (newStatus != null) - { - var statusTime = new Date(); - person.properties["cm:userStatus"] = newStatus; - person.properties["cm:userStatusTime"] = statusTime; - person.save(); - - model.success = true; - model.userStatus = newStatus; - model.userStatusTime = statusTime; - - if (newStatus.trim() != "") - { - var activity = {}; - activity.status = newStatus; - activities.postActivity("org.alfresco.profile.status-changed", null, "profile", jsonUtils.toJSONString(activity)); - } - } - } -} - -main(); \ No newline at end of file