You are looking at documentation for an older release. Not what you want? See the current release documentation.
eXo Platform provides APIs to create, update, delete and get information of a task. A task is represented as a JSON object as follows:
{ //Name of the task "name": "", //Priority of the task "priority": "", //Status of the task "status": "", //Which calendar the task belongs to "calendar": "", //Detailed note of the task "note": "", //Settings for reminding the task "reminder": [], //Which users are assgined "delegation": [], //Starting time "from": "", //Id of the category which the task belongs to "categoryId": "", //Ending time "to": "", //All attachments of the task "attachments": [ ], //Link to the category which the task belongs to "categories": [], //Id of the task "id": "", //Link to the task "href": "" }
To retrieve information of a task, you can use a GET request as below:
function getTaskById(){ $.ajax({ type: "GET", url: "/rest/private/v1/calendar/tasks/"+task_id, success: function (data, status, jqXHR) { //process the returned data here }, error: function (jqXHR, status) { alert("Cannot retrieve data!"); } }); }
In which task_id is Id of the task that you want to get information. This request returns the result under a JSON object as indicated above.
Declare a simple task object such as:
var new_task={ "name": "Documentation blog", "note": "Writing a documentation blog for the next deployment", "from": "2015-07-30T04:30:00.000Z", "to": "2015-07-30T05:30:00.000Z", "delegation": [current_user, "john"] }
where this task will be assigned to current_user and john. Use an Ajax POST request to send this object to /rest/private/v1/calendar/calendars/{calendarId}/tasks as the following script:
function createNewEvent(){ $.ajax({ url: "/rest/private/v1/calendar/calendars/"+current_user+"-defaultCalendarId"+"/events", contentType: "application/json", data: JSON.stringify(new_event), method: "POST" }).done(function (data, status, xhr) { //process the returned data here }).fail(function (jqxhr, textStatus, error) { alert("failed"); }); }
In which, the new task will be added to the default calendar of the current logged-in user.
To update a task, you need to use this PUT request:
function updateTask(){ $.ajax({ url: "/rest/private/v1/calendar/tasks/"+task_id, contentType: "application/json", data: JSON.stringify(new_content), method: "PUT" }).done(function (data, status, xhr) { //process the returned data here }).fail(function (jqxhr, textStatus, error) { alert("fail"); }); }
In which, task_id is Id of the task that you want to update and new_content is a JSON object containing new content of the task, for example:
var new_content={ "name": "Writing documentation blog", "note": "Writing a documentation blog for the next deployment in June", "from": "2015-05-30T04:30:00.000Z", "to": "2015-05-30T05:30:00.000Z", "delegation": ["john"] }
To delete a task, use the following DELETE request:
function deleteTask(){ $.ajax({ url: "/rest/private/v1/calendar/tasks/"+task_id, method: "DELETE" }).done(function (data, status, xhr) { //process the returned data here }).fail(function (jqxhr, textStatus, error) { alert("fail"); }); }
In which, task_id is Id of the task that you want to delete.