[Bedework-commit] r436 - in trunk/calendar3: calCore/resources/hbms calCore/src/org/bedework/calcore/hibernate calFacade/src/org/bedework/calfacade/base calFacade/src/org/bedework/calfacade/ifs caldav/src/edu/rpi/cct/uwcal/caldav caldavClientApi/src/org/bedework/caldav/client calsvc/src/org/bedework/calsvc calsvci/src/org/bedework/calsvci test/src/org/bedework/tests/calsvc webcommon/src/org/bedework/webcommon webcommon/src/org/bedework/webcommon/access webcommon/src/org/bedework/webcommon/calendars webcommon/src/org/bedework/webcommon/misc webcommon/src/org/bedework/webcommon/subs

svnadmin at bedework.org svnadmin at bedework.org
Tue May 2 10:50:42 EDT 2006


Author: douglm
Date: 2006-05-02 10:50:41 -0400 (Tue, 02 May 2006)
New Revision: 436

Modified:
   trunk/calendar3/calCore/resources/hbms/Calendar.hbm.xml
   trunk/calendar3/calCore/src/org/bedework/calcore/hibernate/Calendars.java
   trunk/calendar3/calCore/src/org/bedework/calcore/hibernate/CalintfImpl.java
   trunk/calendar3/calCore/src/org/bedework/calcore/hibernate/HibSession.java
   trunk/calendar3/calFacade/src/org/bedework/calfacade/base/CalintfBase.java
   trunk/calendar3/calFacade/src/org/bedework/calfacade/ifs/CalendarsI.java
   trunk/calendar3/caldav/src/edu/rpi/cct/uwcal/caldav/CaldavBWIntf.java
   trunk/calendar3/caldavClientApi/src/org/bedework/caldav/client/CalintfCaldavImpl.java
   trunk/calendar3/calsvc/src/org/bedework/calsvc/CalSvc.java
   trunk/calendar3/calsvci/src/org/bedework/calsvci/CalSvcI.java
   trunk/calendar3/test/src/org/bedework/tests/calsvc/CalSvcTestWrapper.java
   trunk/calendar3/webcommon/src/org/bedework/webcommon/BwAbstractAction.java
   trunk/calendar3/webcommon/src/org/bedework/webcommon/BwActionFormBase.java
   trunk/calendar3/webcommon/src/org/bedework/webcommon/access/AccessAction.java
   trunk/calendar3/webcommon/src/org/bedework/webcommon/calendars/FetchCalendarAction.java
   trunk/calendar3/webcommon/src/org/bedework/webcommon/calendars/InitAddCalendarAction.java
   trunk/calendar3/webcommon/src/org/bedework/webcommon/calendars/UpdateCalendarAction.java
   trunk/calendar3/webcommon/src/org/bedework/webcommon/misc/ExportAction.java
   trunk/calendar3/webcommon/src/org/bedework/webcommon/misc/UpdateUserInfoAction.java
   trunk/calendar3/webcommon/src/org/bedework/webcommon/misc/UploadAction.java
   trunk/calendar3/webcommon/src/org/bedework/webcommon/subs/GetSubscriptionsAction.java
   trunk/calendar3/webcommon/src/org/bedework/webcommon/subs/InitSubscribeAction.java
   trunk/calendar3/webcommon/src/org/bedework/webcommon/subs/SubscribeAction.java
Log:
Changes to use calendar path rather than database id throughout.

Resulted in uncovering of error in back end which required further api change to addCalendar method.

Modified: trunk/calendar3/calCore/resources/hbms/Calendar.hbm.xml
===================================================================
--- trunk/calendar3/calCore/resources/hbms/Calendar.hbm.xml	2006-05-02 14:21:43 UTC (rev 435)
+++ trunk/calendar3/calCore/resources/hbms/Calendar.hbm.xml	2006-05-02 14:50:41 UTC (rev 436)
@@ -67,9 +67,6 @@
        calendar queries
        ================================================================= -->
 
-  <!-- Calendars will be rooted in an entry with special names.
-       Public calendars are rooted on "*PUBLIC*" and private calendars on
-       ":USER:account,  e.g. :USER:douglm -->
   <query name="getNamedCalendars"><![CDATA[
     from org.bedework.calfacade.BwCalendar as cal
       where cal.name=:name

Modified: trunk/calendar3/calCore/src/org/bedework/calcore/hibernate/Calendars.java
===================================================================
--- trunk/calendar3/calCore/src/org/bedework/calcore/hibernate/Calendars.java	2006-05-02 14:21:43 UTC (rev 435)
+++ trunk/calendar3/calCore/src/org/bedework/calcore/hibernate/Calendars.java	2006-05-02 14:50:41 UTC (rev 436)
@@ -288,6 +288,12 @@
 
   public BwCalendar getCalendar(String path,
                                 int desiredAccess) throws CalFacadeException {
+    return getCalendar(path, desiredAccess, true);
+  }
+
+  private BwCalendar getCalendar(String path,
+                                 int desiredAccess,
+                                 boolean cloneIt) throws CalFacadeException {
     HibSession sess = getSess();
 
     sess.namedQuery("getCalendarByPath");
@@ -298,8 +304,11 @@
 
     if (cal != null) {
       // Need to clone for this
-      //access.checkAccess(cal, desiredAccess, false);
-      cal = cloneAndCheckOne(cal, desiredAccess, false);
+      if (!cloneIt) {
+        access.checkAccess(cal, desiredAccess, false);
+      } else {
+        cal = cloneAndCheckOne(cal, desiredAccess, false);
+      }
     }
 
     return cal;
@@ -361,26 +370,27 @@
 
     String pathTo = sb.toString();
 
+    /*
     BwCalendar parent = getCalendar(pathTo, privRead);
 
     if (parent == null) {
       throw new CalFacadeException("org.bedework.calcore.calendars.unabletocreate");
     }
+    */
 
     BwCalendar cal = new BwCalendar();
     cal.setName("Deleted");
     cal.setOwner(user);
     cal.setCreator(user);
-    cal.setPublick(parent.getPublick());
     cal.setCalendarCollection(true);
-    addCalendar(cal, parent);
+    addCalendar(cal, pathTo);
   }
 
-  public void addCalendar(BwCalendar val, BwCalendar parent) throws CalFacadeException {
+  public void addCalendar(BwCalendar val, String parentPath) throws CalFacadeException {
     HibSession sess = getSess();
 
     /* We need write content access to the parent */
-    access.checkAccess(parent, privWriteContent, false);
+    BwCalendar parent = getCalendar(parentPath, privWriteContent, false);
 
     /** Is the parent a calendar collection?
      */
@@ -412,9 +422,10 @@
       val.setOwner(getUser());
     }
     val.setCalendar(parent);
+    val.setPublick(parent.getPublick());
     parent.addChild(val);
 
-    sess.save(parent);
+    sess.update(parent);
   }
 
   public void updateCalendar(BwCalendar val) throws CalFacadeException {

Modified: trunk/calendar3/calCore/src/org/bedework/calcore/hibernate/CalintfImpl.java
===================================================================
--- trunk/calendar3/calCore/src/org/bedework/calcore/hibernate/CalintfImpl.java	2006-05-02 14:21:43 UTC (rev 435)
+++ trunk/calendar3/calCore/src/org/bedework/calcore/hibernate/CalintfImpl.java	2006-05-02 14:50:41 UTC (rev 436)
@@ -873,10 +873,10 @@
     return calendars.getDeletedCalendar(user);
   }
 
-  public void addCalendar(BwCalendar val, BwCalendar parent) throws CalFacadeException {
+  public void addCalendar(BwCalendar val, String parentPath) throws CalFacadeException {
     checkOpen();
 
-    calendars.addCalendar(val, parent);
+    calendars.addCalendar(val, parentPath);
   }
 
   public void updateCalendar(BwCalendar val) throws CalFacadeException {

Modified: trunk/calendar3/calCore/src/org/bedework/calcore/hibernate/HibSession.java
===================================================================
--- trunk/calendar3/calCore/src/org/bedework/calcore/hibernate/HibSession.java	2006-05-02 14:21:43 UTC (rev 435)
+++ trunk/calendar3/calCore/src/org/bedework/calcore/hibernate/HibSession.java	2006-05-02 14:50:41 UTC (rev 436)
@@ -90,7 +90,7 @@
 
   /** Exception from this session. */
   Throwable exc;
-  
+
   private SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd");
 
   /** Set up for a hibernate interaction. Throw the object away on exception.
@@ -249,13 +249,13 @@
   }
 
   /** Return true if we have a transaction started
-   * 
+   *
    * @return boolean
    */
   public boolean transactionStarted() {
     return tx != null;
   }
-  
+
   /** Commit a transaction
    *
    * @throws CalFacadeException
@@ -662,7 +662,6 @@
     }
   }
 
-
   /** Update an object which may have been loaded in a previous hibernate
    * session
    *
@@ -682,6 +681,25 @@
     }
   }
 
+  /** Merge and update an object which may have been loaded in a previous hibernate
+   * session
+   *
+   * @param obj
+   * @throws CalFacadeException
+   */
+  public void merge(Object obj) throws CalFacadeException {
+    if (exc != null) {
+      // Didn't hear me last time?
+      throw new CalFacadeException(exc);
+    }
+
+    try {
+      sess.merge(obj);
+    } catch (Throwable t) {
+      handleException(t);
+    }
+  }
+
   /** Save a new object or update an object which may have been loaded in a
    * previous hibernate session
    *

Modified: trunk/calendar3/calFacade/src/org/bedework/calfacade/base/CalintfBase.java
===================================================================
--- trunk/calendar3/calFacade/src/org/bedework/calfacade/base/CalintfBase.java	2006-05-02 14:21:43 UTC (rev 435)
+++ trunk/calendar3/calFacade/src/org/bedework/calfacade/base/CalintfBase.java	2006-05-02 14:50:41 UTC (rev 436)
@@ -479,7 +479,7 @@
     throw new CalFacadeUnimplementedException();
   }
 
-  public void addCalendar(BwCalendar val, BwCalendar parent) throws CalFacadeException {
+  public void addCalendar(BwCalendar val, String parentPath) throws CalFacadeException {
     checkOpen();
 
     throw new CalFacadeUnimplementedException();

Modified: trunk/calendar3/calFacade/src/org/bedework/calfacade/ifs/CalendarsI.java
===================================================================
--- trunk/calendar3/calFacade/src/org/bedework/calfacade/ifs/CalendarsI.java	2006-05-02 14:21:43 UTC (rev 435)
+++ trunk/calendar3/calFacade/src/org/bedework/calfacade/ifs/CalendarsI.java	2006-05-02 14:50:41 UTC (rev 436)
@@ -210,11 +210,11 @@
    *
    * <p>Name must be unique at this level, i.e. all paths must be unique
    *
-   * @param  val     CalendarVO new object
-   * @param  parent  CalendarVO object or null for root level
+   * @param  val     BwCalendar new object
+   * @param  parentPath  String path to parent.
    * @throws CalFacadeException
    */
-  public void addCalendar(BwCalendar val, BwCalendar parent) throws CalFacadeException;
+  public void addCalendar(BwCalendar val, String parentPath) throws CalFacadeException;
 
   /** Update a calendar object
    *

Modified: trunk/calendar3/caldav/src/edu/rpi/cct/uwcal/caldav/CaldavBWIntf.java
===================================================================
--- trunk/calendar3/caldav/src/edu/rpi/cct/uwcal/caldav/CaldavBWIntf.java	2006-05-02 14:21:43 UTC (rev 435)
+++ trunk/calendar3/caldav/src/edu/rpi/cct/uwcal/caldav/CaldavBWIntf.java	2006-05-02 14:50:41 UTC (rev 436)
@@ -675,7 +675,7 @@
       newcal.setName(name);
       newcal.setCalendarCollection("MKCALENDAR".equalsIgnoreCase(req.getMethod()));
 
-      getSvci().addCalendar(newcal, parent);
+      getSvci().addCalendar(newcal, parent.getPath());
     } catch (CalFacadeAccessException cfae) {
       throw WebdavIntfException.forbidden();
     } catch (WebdavIntfException we) {

Modified: trunk/calendar3/caldavClientApi/src/org/bedework/caldav/client/CalintfCaldavImpl.java
===================================================================
--- trunk/calendar3/caldavClientApi/src/org/bedework/caldav/client/CalintfCaldavImpl.java	2006-05-02 14:21:43 UTC (rev 435)
+++ trunk/calendar3/caldavClientApi/src/org/bedework/caldav/client/CalintfCaldavImpl.java	2006-05-02 14:50:41 UTC (rev 436)
@@ -392,7 +392,7 @@
     throw new CalFacadeUnimplementedException();
   }
 
-  public void addCalendar(BwCalendar val, BwCalendar parent) throws CalFacadeException {
+  public void addCalendar(BwCalendar val, String parentPath) throws CalFacadeException {
     checkOpen();
 
     throw new CalFacadeUnimplementedException();

Modified: trunk/calendar3/calsvc/src/org/bedework/calsvc/CalSvc.java
===================================================================
--- trunk/calendar3/calsvc/src/org/bedework/calsvc/CalSvc.java	2006-05-02 14:21:43 UTC (rev 435)
+++ trunk/calendar3/calsvc/src/org/bedework/calsvc/CalSvc.java	2006-05-02 14:50:41 UTC (rev 436)
@@ -688,12 +688,12 @@
     return getPreferences().getDefaultCalendar();
   }
 
-  public void addCalendar(BwCalendar val, BwCalendar parent) throws CalFacadeException {
+  public void addCalendar(BwCalendar val, String parentPath) throws CalFacadeException {
     updateOK(val);
 
     setupSharableEntity(val);
 
-    getCal().addCalendar(val, parent);
+    getCal().addCalendar(val, parentPath);
   }
 
   public void updateCalendar(BwCalendar val) throws CalFacadeException {

Modified: trunk/calendar3/calsvci/src/org/bedework/calsvci/CalSvcI.java
===================================================================
--- trunk/calendar3/calsvci/src/org/bedework/calsvci/CalSvcI.java	2006-05-02 14:21:43 UTC (rev 435)
+++ trunk/calendar3/calsvci/src/org/bedework/calsvci/CalSvcI.java	2006-05-02 14:50:41 UTC (rev 436)
@@ -585,11 +585,11 @@
    *
    * <p>Name must be unique at this level, i.e. all paths must be unique
    *
-   * @param  val     CalendarVO new object
-   * @param  parent  CalendarVO object or null for root level
+   * @param  val     BwCalendar new object
+   * @param  parentPath  String path to parent.
    * @throws CalFacadeException
    */
-  public abstract void addCalendar(BwCalendar val, BwCalendar parent)
+  public abstract void addCalendar(BwCalendar val, String parentPath)
       throws CalFacadeException;
 
   /** Update a calendar object

Modified: trunk/calendar3/test/src/org/bedework/tests/calsvc/CalSvcTestWrapper.java
===================================================================
--- trunk/calendar3/test/src/org/bedework/tests/calsvc/CalSvcTestWrapper.java	2006-05-02 14:21:43 UTC (rev 435)
+++ trunk/calendar3/test/src/org/bedework/tests/calsvc/CalSvcTestWrapper.java	2006-05-02 14:50:41 UTC (rev 436)
@@ -120,7 +120,7 @@
     isPublic = publicEvents;
     this.user = user;
     String envPrefix;
-    
+
     if (publicEvents) {
       envPrefix = webAdminAppPrefix;
     } else if (user == null) {
@@ -129,7 +129,7 @@
       envPrefix = webPersonalAppPrefix;
     }
 
-    CalSvcIPars pars = new CalSvcIPars(user, user, 
+    CalSvcIPars pars = new CalSvcIPars(user, user,
                                        envPrefix,
                                        publicEvents,
                                        false,    // caldav
@@ -310,7 +310,7 @@
     publicCal.setPublick(true);
     publicCal.setCalendarCollection(true);
 
-    addCalendar(publicCal, root);
+    addCalendar(publicCal, root.getPath());
 
     return publicCal;
   }

Modified: trunk/calendar3/webcommon/src/org/bedework/webcommon/BwAbstractAction.java
===================================================================
--- trunk/calendar3/webcommon/src/org/bedework/webcommon/BwAbstractAction.java	2006-05-02 14:21:43 UTC (rev 435)
+++ trunk/calendar3/webcommon/src/org/bedework/webcommon/BwAbstractAction.java	2006-05-02 14:50:41 UTC (rev 436)
@@ -474,7 +474,7 @@
    * <p>Request parameters<ul>
    *      <li>"subid"    subscription id for event. < 0 if there is none
    *                     e.g. displayed directly from calendar.</li>
-   *      <li>"calid"    id of calendar to search.</li>
+   *      <li>"calPath"  Path of calendar to search.</li>
    *      <li>"guid"     guid of event.</li>
    *      <li>"recurrenceId"   recurrence-id of event instance - possibly null.</li>
    * </ul>
@@ -502,24 +502,18 @@
       }
     }
 
-    int calId = getIntReqPar(request, "calid", -1);
     BwCalendar cal = null;
 
-    if (calId < 0) {
-      // Try path
-      String calPath = request.getParameter("calPath");
+    String calPath = getReqPar(request, "calPath");
 
-      if (calPath == null) {
-        // bogus request
-        form.getErr().emit("org.bedework.client.error.missingcalendarpath");
-        return null;
-      }
-
-      cal = svci.getCalendar(calPath);
-    } else {
-      cal = svci.getCalendar(calId);
+    if (calPath == null) {
+      // bogus request
+      form.getErr().emit("org.bedework.client.error.missingcalendarpath");
+      return null;
     }
 
+    cal = svci.getCalendar(calPath);
+
     if (cal == null) {
       // Assume no access
       form.getErr().emit("org.bedework.client.error.noaccess");

Modified: trunk/calendar3/webcommon/src/org/bedework/webcommon/BwActionFormBase.java
===================================================================
--- trunk/calendar3/webcommon/src/org/bedework/webcommon/BwActionFormBase.java	2006-05-02 14:21:43 UTC (rev 435)
+++ trunk/calendar3/webcommon/src/org/bedework/webcommon/BwActionFormBase.java	2006-05-02 14:50:41 UTC (rev 436)
@@ -111,12 +111,12 @@
 
   // XXX locale - needs to be changed when locale changes
   private transient Collator listCollator;
-  
+
   /* This should be a cloned copy only */
   private BwSystem syspars;
 
   private Collection sysStats;
-  
+
   private transient MailerIntf mailer;
 
   /** True if we should auto-create sponsors. Some sites may wish to control
@@ -233,8 +233,6 @@
    *           Ids for fetching objects
    * .................................................................... */
 
-  private int calId;
-
   private int categoryId;
 
   private int locationId;
@@ -366,7 +364,7 @@
 
   private BwCalendar calendar;
 
-  private int parentCalendarId;
+  private String parentCalendarPath;
 
   /** True if we are adding a new calendar
    */
@@ -404,8 +402,8 @@
   public BwSystem getSyspars() {
     return syspars;
   }
-  
-  /** Set system statistics 
+
+  /** Set system statistics
   *
   * @param val      Collection of BwStats.StatsEntry objects
   */
@@ -413,7 +411,7 @@
     sysStats = val;
   }
 
-  /** Get system statistics 
+  /** Get system statistics
   *
   * @return Collection of BwStats.StatsEntry objects
   */
@@ -421,11 +419,11 @@
     if (sysStats == null) {
       sysStats = new ArrayList();
     }
-    
+
     return sysStats;
   }
 
-  /** Get system statistics enabled state 
+  /** Get system statistics enabled state
   *
    * @return boolean true if statistics collection enabled
   */
@@ -436,7 +434,7 @@
       return false;
     }
   }
-  
+
   /** This will default to the current user. Superusers will be able to
    * specify a creator.
    *
@@ -1354,20 +1352,6 @@
    *                   Calendars
    * ==================================================================== */
 
-  /**
-   * @param val id
-   */
-  public void setCalId(int val) {
-    calId = val;
-  }
-
-  /**
-   * @return cal id
-   */
-  public int getCalId() {
-    return calId;
-  }
-
   /** Return the public calendars
    *
    * @return BwCalendar   root calendar
@@ -1440,9 +1424,9 @@
   public Collection getAddContentCalendarCollections() {
     try {
       TreeMap tm = new TreeMap(getListCollator());
-      
+
       Iterator it = fetchSvci().getAddContentCalendarCollections().iterator();
-      
+
       while (it.hasNext()) {
         BwCalendar cal = (BwCalendar)it.next();
         tm.put(cal.getName(), cal);
@@ -1456,20 +1440,19 @@
     }
   }
 
-  /** Save the id of the soon-to-be parent
-   */
-  /**
+  /** Save the Path of the soon-to-be parent
+   *
    * @param val
    */
-  public void setParentCalendarId(int val) {
-    parentCalendarId = val;
+  public void setParentCalendarPath(String val) {
+    parentCalendarPath = val;
   }
 
   /**
-   * @return cal id
+   * @return cal Path
    */
-  public int getParentCalendarId() {
-    return parentCalendarId;
+  public String getParentCalendarPath() {
+    return parentCalendarPath;
   }
 
   /** Not set - invisible to jsp
@@ -2147,13 +2130,13 @@
       return new ArrayList();
     }
   }
-  
+
   // XXX locale - needs to be changed when locale changes
   private Collator getListCollator() {
     if (listCollator == null) {
       listCollator = Collator.getInstance();
     }
-    
+
     return listCollator;
   }
 }

Modified: trunk/calendar3/webcommon/src/org/bedework/webcommon/access/AccessAction.java
===================================================================
--- trunk/calendar3/webcommon/src/org/bedework/webcommon/access/AccessAction.java	2006-05-02 14:21:43 UTC (rev 435)
+++ trunk/calendar3/webcommon/src/org/bedework/webcommon/access/AccessAction.java	2006-05-02 14:50:41 UTC (rev 436)
@@ -78,8 +78,8 @@
  *
  * <p>Request parameters:<ul>
  *      <li>  calPath alone:         path (or url) of calendar or...</li>.
- *      <li>  calId+guid+recurid:  event</li>.
- *      <li>  how:                   concateated String of desired access rights
+ *      <li>  calPath+guid+recurid:  event</li>.
+ *      <li>  how:                   concatenated String of desired access rights
  *                               @see edu.rpi.cct.uwcal.access.PrivilegeDefs </li>.
  *      <li>  whoType:               user (default), group</li>.
  *      <li>  who:                   name of principal - default to owner</li>.

Modified: trunk/calendar3/webcommon/src/org/bedework/webcommon/calendars/FetchCalendarAction.java
===================================================================
--- trunk/calendar3/webcommon/src/org/bedework/webcommon/calendars/FetchCalendarAction.java	2006-05-02 14:21:43 UTC (rev 435)
+++ trunk/calendar3/webcommon/src/org/bedework/webcommon/calendars/FetchCalendarAction.java	2006-05-02 14:50:41 UTC (rev 436)
@@ -65,7 +65,7 @@
 /** This action fetches a calendar.
  *
  * <p>Parameters are:<ul>
- *      <li>"calId"            Id of calendar</li>
+ *      <li>"calPath"            Path of calendar</li>
  * </ul>
  *
  * <p>Forwards to:<ul>
@@ -87,18 +87,20 @@
     /** User requested a calendar from the list. Retrieve it, embed it in
      * the form so we can display the page
      */
-    int id = getIntReqPar(request, "calId", -1);
 
-    if (id < 0) {
+    String calPath = getReqPar(request, "calPath");
+
+    if (calPath == null) {
       // bogus request
+      form.getErr().emit("org.bedework.client.error.missingcalendarpath");
       return "notFound";
     }
 
-    BwCalendar calendar = form.fetchSvci().getCalendar(id);
+    BwCalendar calendar = form.fetchSvci().getCalendar(calPath);
 
     if (debug) {
       if (calendar == null) {
-        logIt("No calendar with id " + id);
+        logIt("No calendar with path " + calPath);
       } else {
         logIt("Retrieved calendar " + calendar.getId());
       }
@@ -107,7 +109,7 @@
     form.assignAddingCalendar(false);
     form.setCalendar(calendar);
     if (calendar == null) {
-      form.getErr().emit("org.bedework.client.error.nosuchcalendar", id);
+      form.getErr().emit("org.bedework.client.error.nosuchcalendar", calPath);
       return "notFound";
     }
 

Modified: trunk/calendar3/webcommon/src/org/bedework/webcommon/calendars/InitAddCalendarAction.java
===================================================================
--- trunk/calendar3/webcommon/src/org/bedework/webcommon/calendars/InitAddCalendarAction.java	2006-05-02 14:21:43 UTC (rev 435)
+++ trunk/calendar3/webcommon/src/org/bedework/webcommon/calendars/InitAddCalendarAction.java	2006-05-02 14:50:41 UTC (rev 436)
@@ -54,7 +54,6 @@
 
 package org.bedework.webcommon.calendars;
 
-import org.bedework.calfacade.BwCalendar;
 import org.bedework.webcommon.BwAbstractAction;
 import org.bedework.webcommon.BwActionFormBase;
 import org.bedework.webcommon.BwSession;
@@ -65,7 +64,7 @@
 /** This action sets the state ready for adding a calendar.
  *
  * <p>Parameters are:<ul>
- *      <li>"calId"            Id of the parent to be</li>
+ *      <li>"calPath"       Path of the parent to be</li>
  * </ul>
  *
  * <p>Forwards to:<ul>
@@ -88,15 +87,15 @@
       return "noAccess"; // First line of defence
     }
 
-    int id = getIntReqPar(request, "calId", -1);
+    String calPath = getReqPar(request, "calPath");
 
-    BwCalendar calendar = form.fetchSvci().getCalendar(id);
-
-    if ((calendar == null) || calendar.getCalendarCollection()) {
+    if (calPath == null) {
+      // bogus request
+      form.getErr().emit("org.bedework.client.error.missingcalendarpath");
       return "notAllowed";
     }
 
-    form.setParentCalendarId(id);
+    form.setParentCalendarPath(calPath);
 
     /** Set the objects to null so we get new ones.
      */

Modified: trunk/calendar3/webcommon/src/org/bedework/webcommon/calendars/UpdateCalendarAction.java
===================================================================
--- trunk/calendar3/webcommon/src/org/bedework/webcommon/calendars/UpdateCalendarAction.java	2006-05-02 14:21:43 UTC (rev 435)
+++ trunk/calendar3/webcommon/src/org/bedework/webcommon/calendars/UpdateCalendarAction.java	2006-05-02 14:50:41 UTC (rev 436)
@@ -116,16 +116,18 @@
     BwCalendar cal = form.getCalendar();
 
     if (add) {
-      BwCalendar parent = svci.getCalendar(form.getParentCalendarId());
+      String parentPath = form.getParentCalendarPath();
 
-      if (parent == null) {
+      if (parentPath == null) {
         return "error";
       }
-      svci.addCalendar(cal, parent);
+      svci.addCalendar(cal, parentPath);
     } else {
       svci.updateCalendar(cal);
     }
 
+    form.setParentCalendarPath(null);
+
     if (getPublicAdmin(form)) {
       if (cal.getCalendarCollection()) {
         updateAuthPrefs(form, null, null, null, cal);

Modified: trunk/calendar3/webcommon/src/org/bedework/webcommon/misc/ExportAction.java
===================================================================
--- trunk/calendar3/webcommon/src/org/bedework/webcommon/misc/ExportAction.java	2006-05-02 14:21:43 UTC (rev 435)
+++ trunk/calendar3/webcommon/src/org/bedework/webcommon/misc/ExportAction.java	2006-05-02 14:50:41 UTC (rev 436)
@@ -82,7 +82,7 @@
  * <p>Request parameters<ul>
  *      <li>"guid"           guid of event.</li>
  *      <li>"recurrenceId"   recurrence id of event (optional)... or</li>
- *      <li>"calid"          Id of calendar to export.</li>
+ *      <li>"calPath"        Path of calendar to export.</li>
  *      <li>"sresult"        Any value - export last search result.</li>
  *      <li>"expand"         true/false - default is to not expand recurrences.</li>
  * </ul>
@@ -97,7 +97,7 @@
                          BwSession sess,
                          BwActionFormBase form) throws Throwable {
     String guid = Util.checkNull(request.getParameter("guid"));
-    int calid = getIntReqPar(request, "calid", -1);
+    String calPath = getReqPar(request, "calPath");
     int subid = getIntReqPar(request, "subid", -1);
     CalSvcI svci = form.fetchSvci();
 
@@ -119,8 +119,8 @@
       }
     } else {
       BwSubscription sub = null;
-      if (calid >= 0) {
-        BwCalendar cal = svci.getCalendar(calid);
+      if (calPath != null) {
+        BwCalendar cal = svci.getCalendar(calPath);
         if (cal == null) {
           return "notFound";
         }
@@ -161,7 +161,7 @@
       evs.addAll(ev.getOverrides());
     }
 
-    IcalTranslator ical = new IcalTranslator(svci.getIcalCallback(), 
+    IcalTranslator ical = new IcalTranslator(svci.getIcalCallback(),
                                              form.getDebug());
 
     Calendar vcal = ical.toIcal(evs);

Modified: trunk/calendar3/webcommon/src/org/bedework/webcommon/misc/UpdateUserInfoAction.java
===================================================================
--- trunk/calendar3/webcommon/src/org/bedework/webcommon/misc/UpdateUserInfoAction.java	2006-05-02 14:21:43 UTC (rev 435)
+++ trunk/calendar3/webcommon/src/org/bedework/webcommon/misc/UpdateUserInfoAction.java	2006-05-02 14:50:41 UTC (rev 436)
@@ -70,16 +70,12 @@
  * directory.
  *
  * <p>Request parameters<ul>
- *      <li>"guid"           guid of event.</li>
- *      <li>"recurrenceId"   recurrence id of event (optional)... or</li>
- *      <li>"calid"          Id of calendar to export.</li>
- *      <li>"sresult"        Any value - export last search result.</li>
- *      <li>"expand"         true/false - default is to not expand recurrences.</li>
  * </ul>
+ *
  * <p>Forwards to:<ul>
  *      <li>"noAccess"     user not authorised.</li>
- *      <li>"notFound"     no event was found.</li>
- *      <li>"success"      exported ok.</li>
+ *      <li>"retry"        validation error.</li>
+ *      <li>"continue"     ok.</li>
  * </ul>
  */
 public class UpdateUserInfoAction extends BwAbstractAction {

Modified: trunk/calendar3/webcommon/src/org/bedework/webcommon/misc/UploadAction.java
===================================================================
--- trunk/calendar3/webcommon/src/org/bedework/webcommon/misc/UploadAction.java	2006-05-02 14:21:43 UTC (rev 435)
+++ trunk/calendar3/webcommon/src/org/bedework/webcommon/misc/UploadAction.java	2006-05-02 14:50:41 UTC (rev 436)
@@ -74,8 +74,11 @@
 import org.apache.struts.upload.FormFile;
 
 /**
- * Action to upload an icalendar file..
- * <p>No request parameters (other than updates to email and subject)
+ * Action to upload an icalendar file.
+ * <p>Parameters are:<ul>
+ *      <li>"calPath"            Path of calendar</li>
+ * </ul>
+ *
  * <p>Forwards to:<ul>
  *      <li>"retry"        email options still not valid.</li>
  *      <li>"noEvent"      no event was selected.</li>
@@ -94,9 +97,10 @@
     CalSvcI svci = form.fetchSvci();
     BwCalendar cal = null;
 
-    int calId = getIntReqPar(request, "calId", -1);
-    if (calId >= 0) {
-      cal = svci.getCalendar(calId);
+    String calPath = getReqPar(request, "calPath");
+
+    if (calPath != null) {
+      cal = svci.getCalendar(calPath);
     }
 
     if (cal == null) {

Modified: trunk/calendar3/webcommon/src/org/bedework/webcommon/subs/GetSubscriptionsAction.java
===================================================================
--- trunk/calendar3/webcommon/src/org/bedework/webcommon/subs/GetSubscriptionsAction.java	2006-05-02 14:21:43 UTC (rev 435)
+++ trunk/calendar3/webcommon/src/org/bedework/webcommon/subs/GetSubscriptionsAction.java	2006-05-02 14:50:41 UTC (rev 436)
@@ -53,7 +53,6 @@
 */
 package org.bedework.webcommon.subs;
 
-import org.bedework.calsvci.CalSvcI;
 import org.bedework.webcommon.BwAbstractAction;
 import org.bedework.webcommon.BwActionFormBase;
 import org.bedework.webcommon.BwSession;

Modified: trunk/calendar3/webcommon/src/org/bedework/webcommon/subs/InitSubscribeAction.java
===================================================================
--- trunk/calendar3/webcommon/src/org/bedework/webcommon/subs/InitSubscribeAction.java	2006-05-02 14:21:43 UTC (rev 435)
+++ trunk/calendar3/webcommon/src/org/bedework/webcommon/subs/InitSubscribeAction.java	2006-05-02 14:50:41 UTC (rev 436)
@@ -66,7 +66,7 @@
 /** Subscribe a user to a calendar.
  *
  * <p>Parameters are:<ul>
- *      <li>"calId"            Id of calendar</li>
+ *      <li>"calPath"           Path to local calendar</li>
  *      <li>"calUri"            URI of remote calendar</li>
  * </ul>
  *
@@ -91,7 +91,7 @@
       return "noAccess"; // First line of defence
     }
 
-    int calId = getIntReqPar(request, "calId", -1);
+    String calPath = getReqPar(request, "calPath");
     String calUri = null;
     BwCalendar cal = null;
 
@@ -99,7 +99,8 @@
 
     BwSubscription sub;
 
-    if (calId < 0) {
+    // XXX Bogus??? Just use path for both.
+    if (calPath == null) {
       calUri = request.getParameter("calUri");
       if (calUri == null) {
         return "error";
@@ -107,7 +108,7 @@
 
       sub = BwSubscription.makeSubscription(calUri, null, false, false, false);
     } else {
-      cal = svc.getCalendar(calId);
+      cal = svc.getCalendar(calPath);
 
       if (cal == null) {
         // Assume no access

Modified: trunk/calendar3/webcommon/src/org/bedework/webcommon/subs/SubscribeAction.java
===================================================================
--- trunk/calendar3/webcommon/src/org/bedework/webcommon/subs/SubscribeAction.java	2006-05-02 14:21:43 UTC (rev 435)
+++ trunk/calendar3/webcommon/src/org/bedework/webcommon/subs/SubscribeAction.java	2006-05-02 14:50:41 UTC (rev 436)
@@ -72,7 +72,6 @@
 /** Subscribe a user to a calendar.
  *
  * <p>Parameters are:<ul>
- *      <li>"calid"            Id of calendar</li>
  *      <li>"name"             Name of subscription</li>
  *      <li>"email"            y/n for email .</li>
  *      <li>"freebusy"         y/n for affects free busy.</li>



More information about the Bedework-commit mailing list