[Bedework-commit] calendarapi r282 - in trunk:
calFacade/src/org/bedework/calfacade calsvc/src/org/bedework/calsvc
svnadmin at bedework.org
svnadmin at bedework.org
Thu May 10 14:28:57 EDT 2007
Author: douglm
Date: 2007-05-10 14:28:44 -0400 (Thu, 10 May 2007)
New Revision: 282
Modified:
trunk/calFacade/src/org/bedework/calfacade/BwEvent.java
trunk/calsvc/src/org/bedework/calsvc/CalSvc.java
Log:
First go at making calendars visible for external subscription e.g. google
Has "cat" request parameter to specify category.
Modified: trunk/calFacade/src/org/bedework/calfacade/BwEvent.java
===================================================================
--- trunk/calFacade/src/org/bedework/calfacade/BwEvent.java 2007-05-09 16:42:19 UTC (rev 281)
+++ trunk/calFacade/src/org/bedework/calfacade/BwEvent.java 2007-05-10 18:28:44 UTC (rev 282)
@@ -69,6 +69,7 @@
import org.bedework.calfacade.util.CalFacadeUtil;
import net.fortuna.ical4j.model.DateTime;
+import net.fortuna.ical4j.model.Period;
import net.fortuna.ical4j.model.property.Created;
import net.fortuna.ical4j.model.property.DtStamp;
import net.fortuna.ical4j.model.property.LastModified;
@@ -2108,6 +2109,55 @@
* Convenience methods
* ==================================================================== */
+ /** Return all timezone ids this event uses. This is used when an event is
+ * added by another user to ensure that the target user has a copy of user
+ * specific timezones.
+ *
+ * @return Collection of timezone ids.
+ * @throws CalFacadeException
+ */
+ public Collection<String> getTimeZoneIds() throws CalFacadeException {
+ Collection<String> ids = new TreeSet<String>();
+
+ BwDateTime dt = getDtstart();
+ if ((dt != null) && (dt.getTzid() != null)) {
+ ids.add(dt.getTzid());
+ }
+
+ dt = getDtend();
+ if ((dt != null) && (dt.getTzid() != null)) {
+ ids.add(dt.getTzid());
+ }
+
+ for (BwDateTime rdt: getRdates()) {
+ if (rdt.getTzid() != null) {
+ ids.add(rdt.getTzid());
+ }
+ }
+
+ for (BwDateTime rdt: getExdates()) {
+ if (rdt.getTzid() != null) {
+ ids.add(rdt.getTzid());
+ }
+ }
+
+ for (BwFreeBusyComponent fbc: getFreeBusyPeriods()) {
+ for (Period p: fbc.getPeriods()) {
+ DateTime fdt = p.getStart();
+ if (fdt.getTimeZone() != null) {
+ ids.add(fdt.getTimeZone().getID());
+ }
+
+ fdt = p.getEnd();
+ if (fdt.getTimeZone() != null) {
+ ids.add(fdt.getTimeZone().getID());
+ }
+ }
+ }
+
+ return ids;
+ }
+
/** Can this event be moved into the trash or does it have to be deleted?
*
* @return boolean
Modified: trunk/calsvc/src/org/bedework/calsvc/CalSvc.java
===================================================================
--- trunk/calsvc/src/org/bedework/calsvc/CalSvc.java 2007-05-09 16:42:19 UTC (rev 281)
+++ trunk/calsvc/src/org/bedework/calsvc/CalSvc.java 2007-05-10 18:28:44 UTC (rev 282)
@@ -3077,10 +3077,10 @@
* ==================================================================== */
private EventUpdateResult addEvent(BwCalendar cal,
- BwEvent event,
- Collection<BwEventProxy> overrides,
- boolean scheduling,
- boolean rollbackOnError) throws CalFacadeException {
+ BwEvent event,
+ Collection<BwEventProxy> overrides,
+ boolean scheduling,
+ boolean rollbackOnError) throws CalFacadeException {
EventUpdateResult updResult = new EventUpdateResult();
BwEventProxy proxy = null;
BwEvent override = null;
@@ -3093,6 +3093,18 @@
setupSharableEntity(event);
}
+ if (!cal.getOwner().equals(getUser())) {
+ /* This event is being added to another users calendar. Ensure we add any
+ * timezones the target user does not already own.
+ */
+
+/* CalTimezones ctz = getTimezones();
+
+ for (String tzid: event.getTimeZoneIds()) {
+
+ }*/
+ }
+
BwLocation loc = event.getLocation();
BwContact sp = event.getContact();
@@ -3228,7 +3240,8 @@
return postProcess(getCal(sub).getEvents(sub.getCalendar(), filter,
startDate, endDate,
- recurRetrieval, freeBusy, true),
+ recurRetrieval, freeBusy,
+ !freeBusy),
sub);
}
More information about the Bedework-commit
mailing list