diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/event.delete.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/event.delete.desc.xml new file mode 100644 index 0000000000..5c8870d787 --- /dev/null +++ b/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/event.delete.desc.xml @@ -0,0 +1,8 @@ + + deleteevent + Event Action - Delete event + /calendar/delete/{siteid}/{eventname} + argument + user + required + diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/event.delete.js b/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/event.delete.js new file mode 100644 index 0000000000..6e690ea4f4 --- /dev/null +++ b/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/event.delete.js @@ -0,0 +1,64 @@ +/** + * Delete event action + * @method DELETE + * @param uri {string} /{siteid}/{eventname} + */ +var result = deleteEvent(); +status.code = result; + +function deleteEvent() +{ + var params = getTemplateParams(); + if (params === null) + { + return status.STATUS_BAD_REQUEST; + } + + var site = siteService.getSite(params.siteid); + if (site === null) + { + return status.STATUS_NOT_FOUND; + } + + var eventsFolder = site.getContainer("calendar"); + if (eventsFolder === null) + { + return status.STATUS_NOT_FOUND; + } + + var event = eventsFolder.childByNamePath(params.eventname); + if (event === null) + { + return status.STATUS_NOT_FOUND; + } + + if (!event.remove()) + { + return status.STATUS_INTERNAL_SERVER_ERROR; + } + + // Success + return status.STATUS_NO_CONTENT; +} + +function getTemplateParams() +{ + // Grab the URI parameters + var siteid = "" + url.templateArgs.siteid; + var eventname = "" + url.templateArgs.eventname; + + if (siteid === null || siteid.length === 0) + { + return null; + } + + if (eventname === null || eventname.length === 0) + { + return null; + } + + return { + "siteid": siteid, + "eventname": eventname + }; +} diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/event.delete.json.ftl b/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/event.delete.json.ftl new file mode 100644 index 0000000000..e69de29bb2 diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/event.put.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/event.put.desc.xml new file mode 100644 index 0000000000..553c155d87 --- /dev/null +++ b/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/event.put.desc.xml @@ -0,0 +1,8 @@ + + updateevent + Event Action - Update event + /calendar/event/{siteid}/{eventname} + argument + user + required + diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/event.put.js b/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/event.put.js new file mode 100644 index 0000000000..101518453a --- /dev/null +++ b/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/event.put.js @@ -0,0 +1,84 @@ +/** + * Update event properties + * @method PUT + * @param uri {string} /calendar/event/{siteid}/{eventname} + */ +function getTemplateParams() +{ + // Grab the URI parameters + var siteid = "" + url.templateArgs.siteid; + var eventname = "" + url.templateArgs.eventname; + + if (siteid === null || siteid.length === 0) + { + return null; + } + + if (eventname === null || eventname.length === 0) + { + return null; + } + + return { + "siteid": siteid, + "eventname": eventname + }; +} + +function main() +{ + var params = getTemplateParams(); + if (params === null) + { + return status.STATUS_BAD_REQUEST; + } + + // Get the site + var site = siteService.getSite(params.siteid); + if (site === null) + { + return status.STATUS_NOT_FOUND; + } + + var eventsFolder = site.getContainer("calendar"); + if (eventsFolder === null) + { + return status.STATUS_NOT_FOUND; + } + + var event = eventsFolder.childByNamePath(params.eventname); + if (event === null) + { + return status.STATUS_NOT_FOUND; + } + + var props = [ + "ia:whatEvent", + "ia:descriptionEvent", + "ia:whereEvent" + ]; + + for (var i=0; i < props.length; i++) + { + var prop = props[i]; + try + { + var value = json.get(prop); + // TODO: deal with formatting date strings correctly + if (value) + { + event.properties[prop] = value; + } + } + catch(e) + { + // Couldn't find the property in the JSON data + } + } + + event.save(); + return status.STATUS_NO_CONTENT; +} + +var response = main(); +status.code = response; diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/event.put.json.ftl b/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/event.put.json.ftl new file mode 100644 index 0000000000..e69de29bb2