mirror of
https://github.com/moparisthebest/davmail
synced 2024-12-13 19:22:22 -05:00
Caldav: implement task categories over EWS
git-svn-id: http://svn.code.sf.net/p/davmail/code/trunk@1769 3d1905a2-6b24-0410-a738-b14d5a86fcbd
This commit is contained in:
parent
1d6794dc2a
commit
50d0bc585a
@ -1363,7 +1363,7 @@ public class DavExchangeSession extends ExchangeSession {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private byte[] getICSFromItemProperties() throws IOException {
|
private byte[] getICSFromItemProperties() throws IOException {
|
||||||
byte[] result = null;
|
byte[] result;
|
||||||
|
|
||||||
// experimental: build VCALENDAR from properties
|
// experimental: build VCALENDAR from properties
|
||||||
|
|
||||||
@ -1482,7 +1482,7 @@ public class DavExchangeSession extends ExchangeSession {
|
|||||||
|
|
||||||
// Parse attendee list
|
// Parse attendee list
|
||||||
String toHeader = getPropertyIfExists(davPropertySet, "to");
|
String toHeader = getPropertyIfExists(davPropertySet, "to");
|
||||||
if (toHeader != null && !organizerEmail.equals(toHeader)) {
|
if (toHeader != null && !toHeader.equals(organizerEmail)) {
|
||||||
InternetAddress[] attendees = InternetAddress.parseHeader(toHeader, false);
|
InternetAddress[] attendees = InternetAddress.parseHeader(toHeader, false);
|
||||||
for (InternetAddress attendee : attendees) {
|
for (InternetAddress attendee : attendees) {
|
||||||
if (!attendee.getAddress().equalsIgnoreCase(organizerEmail)) {
|
if (!attendee.getAddress().equalsIgnoreCase(organizerEmail)) {
|
||||||
|
@ -399,7 +399,6 @@ public class EwsExchangeSession extends ExchangeSession {
|
|||||||
@Override
|
@Override
|
||||||
public void createMessage(String folderPath, String messageName, HashMap<String, String> properties, MimeMessage mimeMessage) throws IOException {
|
public void createMessage(String folderPath, String messageName, HashMap<String, String> properties, MimeMessage mimeMessage) throws IOException {
|
||||||
EWSMethod.Item item = new EWSMethod.Item();
|
EWSMethod.Item item = new EWSMethod.Item();
|
||||||
item.type = "Message";
|
|
||||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||||
try {
|
try {
|
||||||
mimeMessage.writeTo(baos);
|
mimeMessage.writeTo(baos);
|
||||||
@ -1248,10 +1247,11 @@ public class EwsExchangeSession extends ExchangeSession {
|
|||||||
updates.add(Field.createFieldUpdate("percentcomplete", percentComplete));
|
updates.add(Field.createFieldUpdate("percentcomplete", percentComplete));
|
||||||
String vTodoStatus = vCalendar.getFirstVeventPropertyValue("STATUS");
|
String vTodoStatus = vCalendar.getFirstVeventPropertyValue("STATUS");
|
||||||
if (vTodoStatus == null) {
|
if (vTodoStatus == null) {
|
||||||
updates.add(Field.createFieldUpdate("status", "NotStarted"));
|
updates.add(Field.createFieldUpdate("taskstatus", "NotStarted"));
|
||||||
} else {
|
} else {
|
||||||
updates.add(Field.createFieldUpdate("status", vTodoToTaskStatusMap.get(vTodoStatus)));
|
updates.add(Field.createFieldUpdate("taskstatus", vTodoToTaskStatusMap.get(vTodoStatus)));
|
||||||
}
|
}
|
||||||
|
updates.add(Field.createFieldUpdate("keywords", vCalendar.getFirstVeventPropertyValue("CATEGORIES")));
|
||||||
updates.add(Field.createFieldUpdate("duedate", convertCalendarDateToExchange(vCalendar.getFirstVeventPropertyValue("DUE"))));
|
updates.add(Field.createFieldUpdate("duedate", convertCalendarDateToExchange(vCalendar.getFirstVeventPropertyValue("DUE"))));
|
||||||
if (currentItemId != null) {
|
if (currentItemId != null) {
|
||||||
// update
|
// update
|
||||||
@ -1381,8 +1381,9 @@ public class EwsExchangeSession extends ExchangeSession {
|
|||||||
getItemMethod.addAdditionalProperty(Field.get("calendaruid"));
|
getItemMethod.addAdditionalProperty(Field.get("calendaruid"));
|
||||||
getItemMethod.addAdditionalProperty(Field.get("description"));
|
getItemMethod.addAdditionalProperty(Field.get("description"));
|
||||||
getItemMethod.addAdditionalProperty(Field.get("percentcomplete"));
|
getItemMethod.addAdditionalProperty(Field.get("percentcomplete"));
|
||||||
getItemMethod.addAdditionalProperty(Field.get("status"));
|
getItemMethod.addAdditionalProperty(Field.get("taskstatus"));
|
||||||
getItemMethod.addAdditionalProperty(Field.get("duedate"));
|
getItemMethod.addAdditionalProperty(Field.get("duedate"));
|
||||||
|
getItemMethod.addAdditionalProperty(Field.get("keywords"));
|
||||||
} else if (!"Message".equals(type)) {
|
} else if (!"Message".equals(type)) {
|
||||||
getItemMethod = new GetItemMethod(BaseShape.ID_ONLY, itemId, true);
|
getItemMethod = new GetItemMethod(BaseShape.ID_ONLY, itemId, true);
|
||||||
getItemMethod.addAdditionalProperty(Field.get("reminderset"));
|
getItemMethod.addAdditionalProperty(Field.get("reminderset"));
|
||||||
@ -1415,7 +1416,9 @@ public class EwsExchangeSession extends ExchangeSession {
|
|||||||
vTodo.setPropertyValue("SUMMARY", getItemMethod.getResponseItem().get(Field.get("subject").getResponseName()));
|
vTodo.setPropertyValue("SUMMARY", getItemMethod.getResponseItem().get(Field.get("subject").getResponseName()));
|
||||||
vTodo.setPropertyValue("DESCRIPTION", getItemMethod.getResponseItem().get(Field.get("description").getResponseName()));
|
vTodo.setPropertyValue("DESCRIPTION", getItemMethod.getResponseItem().get(Field.get("description").getResponseName()));
|
||||||
vTodo.setPropertyValue("PERCENT-COMPLETE", getItemMethod.getResponseItem().get(Field.get("percentcomplete").getResponseName()));
|
vTodo.setPropertyValue("PERCENT-COMPLETE", getItemMethod.getResponseItem().get(Field.get("percentcomplete").getResponseName()));
|
||||||
vTodo.setPropertyValue("STATUS", taskTovTodoStatusMap.get(getItemMethod.getResponseItem().get(Field.get("status").getResponseName())));
|
vTodo.setPropertyValue("STATUS", taskTovTodoStatusMap.get(getItemMethod.getResponseItem().get(Field.get("taskstatus").getResponseName())));
|
||||||
|
vTodo.setPropertyValue("CATEGORIES", getItemMethod.getResponseItem().get(Field.get("keywords").getResponseName()));
|
||||||
|
|
||||||
VProperty vProperty = new VProperty("DUE", convertDateFromExchange(getItemMethod.getResponseItem().get(Field.get("duedate").getResponseName())));
|
VProperty vProperty = new VProperty("DUE", convertDateFromExchange(getItemMethod.getResponseItem().get(Field.get("duedate").getResponseName())));
|
||||||
vProperty.setParam("TZID", vTimezone.getPropertyValue("TZID"));
|
vProperty.setParam("TZID", vTimezone.getPropertyValue("TZID"));
|
||||||
vTodo.addProperty(vProperty);
|
vTodo.addProperty(vProperty);
|
||||||
|
@ -209,7 +209,7 @@ public final class Field {
|
|||||||
|
|
||||||
// task
|
// task
|
||||||
FIELD_MAP.put("percentcomplete", new UnindexedFieldURI("task:PercentComplete"));
|
FIELD_MAP.put("percentcomplete", new UnindexedFieldURI("task:PercentComplete"));
|
||||||
FIELD_MAP.put("status", new UnindexedFieldURI("task:Status"));
|
FIELD_MAP.put("taskstatus", new UnindexedFieldURI("task:Status"));
|
||||||
FIELD_MAP.put("duedate", new UnindexedFieldURI("task:DueDate"));
|
FIELD_MAP.put("duedate", new UnindexedFieldURI("task:DueDate"));
|
||||||
|
|
||||||
// attachments
|
// attachments
|
||||||
|
Loading…
Reference in New Issue
Block a user