Summary | Kronolith acting as WebDav client |
Queue | Kronolith |
Queue Version | HEAD |
Type | Enhancement |
State | Rejected |
Priority | 1. Low |
Owners | |
Requester | jka (at) eminds (dot) se |
Created | 02/14/2006 (7080 days ago) |
Due | |
Updated | 05/10/2007 (6630 days ago) |
Assigned | |
Resolved | 05/10/2007 (6630 days ago) |
Milestone | Kronolith 3.0 |
Patch | No |
State ⇒ Rejected
Ping.
Havn'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
are done in sql.php.
again, only to call the parent class' methods. Only implement those
methods that really need to do something different than the parent
class. The same is true for properties.
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
the user changed the event but before it is saved? Is there the any
way to make sure such conflicts don't happen?
resource in 1) and release the lock in 3) to aviod inconsistent
updates at the webdav server, but it's not done yet.
each time the calendar is listed. Maybe a refresh-button somewhere?
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.
change in Driver.php, so that the sql driver gets loaded before
webdav driver. (Since it's a subclass). I also made an
the identity when called from saveUpdateToWebDAV in webdav.php)
instantiate it. Scan for Identity::singleton in the sources for
examples.
enough... and at the mailing list you wrote "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." 01/30/2006
But the functionality is somewhat different. In my implementation the
calendars are "always in sync" but as I understand the other
implementation (
ticket 3032), the way you keep the calendars in syncis 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 3032does, instead of HTTP_WebDAV_Client, asI'm using. Maybe we have to skip locking of a WebDAV resource then...
State ⇒ Feedback
tracker first? Now we have two implementations (
ticket 3032) and a lotof duplicate work.
New Attachment: webdav.php
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
"some" 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's not done yet.
Note2: The saveUpdatesFromWebdav maybe doesn't have to be updated each
time the calendar is listed. Maybe a refresh-button somewhere?
New Attachment: Driver.php.patch
change in Driver.php, so that the sql driver gets loaded before webdav
driver. (Since it's a subclass). I also made an default-argument for
the toiCalendar-function (couldn't get hold of the identity when
called from saveUpdateToWebDAV in webdav.php)
Priority ⇒ 1. Low
State ⇒ New
New Attachment: conf.xml.patch
Queue ⇒ Kronolith
Summary ⇒ Kronolith acting as WebDav client
Type ⇒ Enhancement
few extra parameters:
depdriver - a dependent driver that has to be loaded before the webdav
driver (since its a subclass of sql.php) ("sql" by default)
webdavurl - webdav directory on the server where the users calendars
are stored/retrieved
webdavext - the extension on the users calendars ("ics" by default)