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>
<shortname>Save Calendar Event</shortname>
<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>
<authentication>user</authentication>
<transaction>required</transaction>
<authentication>user</authentication>
<transaction>required</transaction>
</webscript>

View File

@@ -1,39 +1,49 @@
logger.log("DEBUG: create event script called");
logger.log("DEBUG: workspace://SpacesStore/" + args.id);
var siteId = args["site"];
var node = search.findNode("workspace://SpacesStore/" + args.id);
logger.log("DEBUG: " + node);
if (node !== null)
model.result = createEvent(siteId, args);
function createEvent(siteId, params)
{
var eventsFolder = node.childByNamePath("CalEvents");
if (eventsFolder === null)
{
eventsFolder = node.createFolder("CalEvents");
}
if (siteId === null)
{
return "Site identifier is undefined";
}
var timestamp = new Date().getTime();
var event = eventsFolder.createNode(timestamp + ".ics", "ia:calendarEvent");
var site = siteService.getSite(siteId);
if (site === null)
{
return "Could not find specified site";
}
event.properties["ia:whatEvent"] = args.what;
event.properties["ia:whereEvent"] = args.where;
event.properties["ia:descriptionEvent"] = args.desc;
event.properties["ia:colorEvent"] = args.color;
var calendar = site.getContainer("calendar");
if (calendar === null)
{
return ""; /* TODO: return something more meaningful */
}
var fromDate = args.td + " " + args.tt;
var from = new Date(fromDate);
event.properties["ia:fromDate"] = from;
var timestamp = new Date().getTime();
var event = calendar.createNode(timestamp + ".ics", "ia:calendarEvent");
var toDate = args.td + " " + args.tt;
var to = new Date(toDate);
event.properties["ia:toDate"] = to;
event.save();
if (event === null)
{
return "Event creation failed";
}
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"];
model.events = getEvents(siteId);
function getEvents(siteId)
@@ -16,9 +16,15 @@ function getEvents(siteId)
return [];
}
return calendar.children.sort(function(a,b) {
return a.properties["ia:fromDate"] - b.properties["ia:fromDate"];
});
var events = calendar.children;
if (events.length > 0)
{
events = events.sort(function(a,b) {
return a.properties["ia:fromDate"] - b.properties["ia:fromDate"];
});
}
return events;
};