<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet href="https://dev.horde.org/themes/horde//default/feed-rss.xsl" type="text/xsl"?> 
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> 
 <channel> 
  <title>Kronolith acting as WebDav client</title> 
  <pubDate>Sun, 05 Apr 2026 15:59:04 +0000</pubDate> 
  <link>https://bugs.horde.org/ticket/3472</link> 
  <atom:link rel="self" type="application/rss+xml" title="Kronolith acting as WebDav client" href="https://bugs.horde.org/ticket/3472/rss" /> 
  <description>Kronolith acting as WebDav client</description> 
 
   
   
  <item> 
   <title>A new driver &quot;webdav&quot; with the same sql-settings as the sql </title> 
   <description>A new driver &quot;webdav&quot; with the same sql-settings as the sql driver + a few extra parameters:

depdriver - a dependent driver that has to be loaded before the webdav driver (since its a subclass of sql.php) (&quot;sql&quot; by default)

webdavurl - webdav directory on the server where the users calendars are stored/retrieved

webdavext - the extension on the users calendars (&quot;ics&quot; by default)</description> 
   <pubDate>Tue, 14 Feb 2006 00:20:53 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/3472#t16720</link> 
  </item> 
   
  <item> 
   <title>Some more source code (will be one more file uploaded). I al</title> 
   <description>Some more source code (will be one more file uploaded). I also had to change in Driver.php, so that the sql driver gets loaded before webdav driver. (Since it&#039;s a subclass). I also made an default-argument for the toiCalendar-function (couldn&#039;t get hold of the identity when called from  saveUpdateToWebDAV in webdav.php) </description> 
   <pubDate>Tue, 14 Feb 2006 00:37:44 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/3472#t16721</link> 
  </item> 
   
  <item> 
   <title>webdav.php (last attachment) extends sql.php. All database o</title> 
   <description>webdav.php (last attachment) extends sql.php. All database operations are done in sql.php. 

The function listEvents first calls saveUpdatesFromWebDAV, which updates the local database with those UID:s that exists at the webdav server but not in database. If the same UID:s exist on both places and &quot;some&quot; of the attributes differ, the local database is updated.



All operations that change the data in the local database are executed in the following order:

1) call saveUpdatesFromWebDAV to recieve a fresh update from webdav

2) do the local database operation (update, new, change, delete, etc)

3) call saveUpdateToWebDAV to save the update back to the webdav server



Note1: I have prepared, so that it should be easy to lock the webdav resource in 1) and release the lock in 3) to aviod inconsistent updates at the webdav server, but it&#039;s not done yet.



Note2: The saveUpdatesFromWebdav maybe doesn&#039;t have to be updated each time the calendar is listed. Maybe a refresh-button somewhere?

   </description> 
   <pubDate>Tue, 14 Feb 2006 00:53:30 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/3472#t16723</link> 
  </item> 
   
  <item> 
   <title>Great, but how about asking on the mailing list or searching</title> 
   <description>Great, but how about asking on the mailing list or searching this tracker first? Now we have two implementations (ticket 3032) and a lot of duplicate work. </description> 
   <pubDate>Tue, 14 Feb 2006 08:20:20 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/3472#t16727</link> 
  </item> 
   
  <item> 
   <title>OK. Actually I tried to make a search first, but apparently </title> 
   <description>OK. Actually I tried to make a search first, but apparently not good enough... and at the mailing list you wrote &quot;That makes sense, but it should be optional. If you are going to do  

that, you should extend Kronolith_Driver_sql with your new driver.&quot; 01/30/2006



But the functionality is somewhat different. In my implementation the calendars are &quot;always in sync&quot; but as I understand the other implementation (ticket 3032), the way you keep the calendars in sync is manually via the import/export function.



Whould it help somewhat if I rewrote the code so it uses the same GET/PUT methods as ticket 3032 does, instead of HTTP_WebDAV_Client, as I&#039;m using. Maybe we have to skip locking of a WebDAV resource then...

</description> 
   <pubDate>Tue, 14 Feb 2006 09:26:35 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/3472#t16729</link> 
  </item> 
   
  <item> 
   <title>&gt; Some more source code (will be one more file uploaded). I </title> 
   <description>&gt; Some more source code (will be one more file uploaded). I also had to 

&gt; change in Driver.php, so that the sql driver gets loaded before 

&gt; webdav driver. (Since it&#039;s a subclass). I also made an 



This is not necessary, load the parent class in the top of webdav.php instead.



&gt; default-argument for the toiCalendar-function (couldn&#039;t get hold of 

&gt; the identity when called from  saveUpdateToWebDAV in webdav.php)



If the global Identity object doesn&#039;t exist yet at this point, instantiate it. Scan for Identity::singleton in the sources for examples.</description> 
   <pubDate>Tue, 16 May 2006 16:32:28 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/3472#t20249</link> 
  </item> 
   
  <item> 
   <title>&gt; webdav.php (last attachment) extends sql.php. All database</title> 
   <description>&gt; webdav.php (last attachment) extends sql.php. All database operations 

&gt; are done in sql.php.



If you extend a class, there is no need to implement all the methods again, only to call the parent class&#039; methods. Only implement those methods that really need to do something different than the parent class. The same is true for properties.



&gt; All operations that change the data in the local database are 

&gt; executed in the following order:

&gt; 1) call saveUpdatesFromWebDAV to recieve a fresh update from webdav

&gt; 2) do the local database operation (update, new, change, delete, etc)

&gt; 3) call saveUpdateToWebDAV to save the update back to the webdav server



What happens if the object has been changed on the webdav server after the user changed the event but before it is saved? Is there the any way to make sure such conflicts don&#039;t happen?



&gt; Note1: I have prepared, so that it should be easy to lock the webdav 

&gt; resource in 1) and release the lock in 3) to aviod inconsistent 

&gt; updates at the webdav server, but it&#039;s not done yet.



That would be a good idea, at some point.



&gt; Note2: The saveUpdatesFromWebdav maybe doesn&#039;t have to be updated 

&gt; each time the calendar is listed. Maybe a refresh-button somewhere?



I&#039;m not sure. Did you take a look at how often/when we update iCal remote calendars currently?



Some general notes:

- Your expected webdav folder structure looks pretty strict, is it possible to make this more flexible? Which webdav server did you use, i.e. which is providing this structure?

- Please take another look at the coding standards. Your indenting is pretty off, as are some curly braces in if-clauses.

</description> 
   <pubDate>Tue, 16 May 2006 16:41:52 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/3472#t20250</link> 
  </item> 
   
  <item> 
   <title>Flagging this as a Krono 3.0 item.</title> 
   <description>Flagging this as a Krono 3.0 item.</description> 
   <pubDate>Fri, 17 Nov 2006 22:33:35 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/3472#t26306</link> 
  </item> 
   
  <item> 
   <title>Are you going to update the patch?</title> 
   <description>Are you going to update the patch?</description> 
   <pubDate>Fri, 13 Apr 2007 15:11:23 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/3472#t31551</link> 
  </item> 
   
  <item> 
   <title>Ping?</title> 
   <description>Ping?</description> 
   <pubDate>Thu, 10 May 2007 09:23:41 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/3472#t32880</link> 
  </item> 
   
  <item> 
   <title>Reply:



Ping.



Havn&#039;t been engaged in Horde for years no</title> 
   <description>Reply:



Ping.



Havn&#039;t been engaged in Horde for years now. After I submittet this, I heared

that the focus for Kronolith is acting as WebDAV server instead. I guess

that work is done by now...



  //regards: Johan Ekblad</description> 
   <pubDate>Thu, 10 May 2007 10:28:48 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/3472#t32899</link> 
  </item> 
   
   
 
 </channel> 
</rss> 
