Modified calendar REST API:

- Improved error handling in both event create and event list
- Modified event create descriptor file to reflect new parameters passed in

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@9318 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Simon Buckle
2008-05-30 08:36:42 +00:00
parent 93a5bda71a
commit 57610ebb64
4 changed files with 55 additions and 39 deletions

View File

@@ -1,8 +1,8 @@
<webscript> <webscript>
<shortname>Save Calendar Event</shortname> <shortname>Save Calendar Event</shortname>
<description>Save Calendar Event</description> <description>Save Calendar Event</description>
<url>/calendar/create?what={whatEvent}&amp;where={whereEvent}&amp;desc={descriptionEvent}&amp;color={colorEvent}&amp;fd={fromDate}&amp;ft={fromTime}&amp;td={toDate}&amp;tt={toTime}&amp;id={nodeId}</url> <url>/calendar/create?what={whatEvent}&amp;where={whereEvent}&amp;desc={descriptionEvent}&amp;from={fromDate}&amp;start={startTime}&amp;to={toDate}&amp;end={endTime}&amp;site={siteId}</url>
<format default="html">extension</format> <format default="html">extension</format>
<authentication>user</authentication> <authentication>user</authentication>
<transaction>required</transaction> <transaction>required</transaction>
</webscript> </webscript>

View File

@@ -1,39 +1,49 @@
logger.log("DEBUG: create event script called"); var siteId = args["site"];
logger.log("DEBUG: workspace://SpacesStore/" + args.id);
var node = search.findNode("workspace://SpacesStore/" + args.id); model.result = createEvent(siteId, args);
logger.log("DEBUG: " + node);
if (node !== null) function createEvent(siteId, params)
{ {
var eventsFolder = node.childByNamePath("CalEvents"); if (siteId === null)
if (eventsFolder === null) {
{ return "Site identifier is undefined";
eventsFolder = node.createFolder("CalEvents"); }
}
var timestamp = new Date().getTime(); var site = siteService.getSite(siteId);
var event = eventsFolder.createNode(timestamp + ".ics", "ia:calendarEvent"); if (site === null)
{
return "Could not find specified site";
}
event.properties["ia:whatEvent"] = args.what; var calendar = site.getContainer("calendar");
event.properties["ia:whereEvent"] = args.where; if (calendar === null)
event.properties["ia:descriptionEvent"] = args.desc; {
event.properties["ia:colorEvent"] = args.color; return ""; /* TODO: return something more meaningful */
}
var fromDate = args.td + " " + args.tt; var timestamp = new Date().getTime();
var from = new Date(fromDate); var event = calendar.createNode(timestamp + ".ics", "ia:calendarEvent");
event.properties["ia:fromDate"] = from;
var toDate = args.td + " " + args.tt; if (event === null)
var to = new Date(toDate); {
event.properties["ia:toDate"] = to; return "Event creation failed";
event.save(); }
event.properties["ia:whatEvent"] = params["what"];
event.properties["ia:whereEvent"] = params["where"];
event.properties["ia:descriptionEvent"] = params["desc"];
var fromDate = params["from"] + " " + params["start"];
var from = new Date(fromDate);
event.properties["ia:fromDate"] = from;
var toDate = params["to"] + " " + params["end"];
var to = new Date(toDate);
event.properties["ia:toDate"] = to;
event.save();
return "Event saved";
};
var msg = "Event saved";
}
else
{
var msg = "SPACE not found with Ref " + args.id;
}
model.msg = msg;

View File

@@ -1,5 +1,5 @@
var siteId = args["site"]; var siteId = args["site"];
model.events = getEvents(siteId); model.events = getEvents(siteId);
function getEvents(siteId) function getEvents(siteId)
@@ -16,9 +16,15 @@ function getEvents(siteId)
return []; return [];
} }
return calendar.children.sort(function(a,b) { var events = calendar.children;
return a.properties["ia:fromDate"] - b.properties["ia:fromDate"]; if (events.length > 0)
}); {
events = events.sort(function(a,b) {
return a.properties["ia:fromDate"] - b.properties["ia:fromDate"];
});
}
return events;
}; };