diff --git a/dba/patches/1.1.7.sql b/dba/patches/1.1.7.sql index 73f861fc..f97974d8 100644 --- a/dba/patches/1.1.7.sql +++ b/dba/patches/1.1.7.sql @@ -18,6 +18,16 @@ UPDATE relationship SET rt_id=4 WHERE rt_id=5; DELETE FROM relationship_type WHERE rt_id = 5; +-- Add a 'status' column to calendar_item which will contain the parsed value of the STATUS property +ALTER TABLE calendar_item ADD COLUMN status TEXT; +UPDATE calendar_item SET status = 'CONFIRMED'; +UPDATE calendar_item SET status = 'CANCELLED' WHERE calendar_item.dav_name IN (SELECT dav_name FROM caldav_data WHERE caldav_data.caldav_data ~ 'STATUS.*:.*CANCELLED'); +UPDATE calendar_item SET status = 'TENTATIVE' WHERE calendar_item.dav_name IN (SELECT dav_name FROM caldav_data WHERE caldav_data.caldav_data ~ 'STATUS.*:.*TENTATIVE'); +UPDATE calendar_item SET status = 'NEEDS-ACTION' WHERE calendar_item.dav_name IN (SELECT dav_name FROM caldav_data WHERE caldav_data.caldav_data ~ 'STATUS.*:.*NEEDS-ACTION'); +UPDATE calendar_item SET status = 'IN-PROCESS' WHERE calendar_item.dav_name IN (SELECT dav_name FROM caldav_data WHERE caldav_data.caldav_data ~ 'STATUS.*:.*IN-PROCESS'); +UPDATE calendar_item SET status = 'DRAFT' WHERE calendar_item.dav_name IN (SELECT dav_name FROM caldav_data WHERE caldav_data.caldav_data ~ 'STATUS.*:.*DRAFT'); +UPDATE calendar_item SET status = 'FINAL' WHERE calendar_item.dav_name IN (SELECT dav_name FROM caldav_data WHERE caldav_data.caldav_data ~ 'STATUS.*:.*FINAL'); + SELECT new_db_revision(1,1,7, 'July' ); COMMIT; ROLLBACK; diff --git a/dba/rscds.sql b/dba/rscds.sql index bbbfe68a..91a50edd 100644 --- a/dba/rscds.sql +++ b/dba/rscds.sql @@ -54,6 +54,7 @@ CREATE TABLE calendar_item ( url TEXT, percent_complete NUMERIC(7,2), tz_id TEXT REFERENCES time_zone( tz_id ), + status TEXT, -- Cascade updates / deletes from the caldav_data table CONSTRAINT caldav_exists FOREIGN KEY ( user_no, dav_name ) diff --git a/inc/caldav-PUT.php b/inc/caldav-PUT.php index 525c1f26..3b4c5fa1 100644 --- a/inc/caldav-PUT.php +++ b/inc/caldav-PUT.php @@ -178,8 +178,8 @@ if ( $put_action_type != 'INSERT' ) { } $sql .= <<user_no, $request->path, $etag, $ic->Get('ui $ic->Get('dtstart'), $ic->Get('summary'), $ic->Get('location'), $ic->Get('class'), $ic->Get('transp'), $ic->Get('description'), $ic->Get('rrule'), $ic->Get('tz_id'), $last_modified, $ic->Get('url'), $ic->Get('priority'), $ic->Get('created'), - $ic->Get('due'), $ic->Get('percent-complete') + $ic->Get('due'), $ic->Get('percent-complete'), $ic->Get('status') ); $qry->Exec("PUT"); dbg_error_log( "PUT", "User: %d, ETag: %s, Path: %s", $session->user_no, $etag, $request->path);