diff --git a/inc/caldav-PROPFIND.php b/inc/caldav-PROPFIND.php index 0712fc50..dfaad2dd 100644 --- a/inc/caldav-PROPFIND.php +++ b/inc/caldav-PROPFIND.php @@ -189,7 +189,7 @@ function item_to_xml( $item ) { $prop->NewElement("resourcetype", new XMLElement("calendar", false, array("xmlns" => "urn:ietf:params:xml:ns:caldav")) ); } if ( isset($attribute_list['DISPLAYNAME']) ) { - $prop->NewElement("displayname"); + $prop->NewElement("displayname", $item->dav_displayname ); } if ( isset($attribute_list['GETETAG']) ) { $prop->NewElement("getetag", '"'.$item->dav_etag.'"' ); @@ -261,10 +261,11 @@ function get_collection_contents( $depth, $user_no, $collection ) { dbg_error_log("PROPFIND","Getting collection items: Depth %d, User: %d, Path: %s", $depth, $user_no, $collection->dav_name ); - $sql = "SELECT dav_name, caldav_data, dav_etag, "; - $sql .= "to_char(created at time zone 'GMT',?) AS created, "; - $sql .= "to_char(modified at time zone 'GMT',?) AS modified "; - $sql .= "FROM caldav_data WHERE dav_name ~ ".qpg('^'.$collection->dav_name.'[^/]+$'); + $sql = "SELECT caldav_data.dav_name, caldav_data, caldav_data.dav_etag, "; + $sql .= "to_char(calendar_item.created at time zone 'GMT',?) AS created, "; + $sql .= "to_char(last_modified at time zone 'GMT',?) AS modified, "; + $sql .= "summary AS dav_displayname "; + $sql .= "FROM caldav_data JOIN calendar_item USING( user_no, dav_name) WHERE dav_name ~ ".qpg('^'.$collection->dav_name.'[^/]+$'); $qry = new PgQuery($sql, PgQuery::Plain(iCalendar::HttpDateFormat()), PgQuery::Plain(iCalendar::HttpDateFormat())); if( $qry->Exec("PROPFIND",__LINE__,__FILE__) && $qry->rows > 0 ) { while( $item = $qry->Fetch() ) { @@ -335,10 +336,11 @@ function get_item( $item_path ) { dbg_error_log("PROPFIND","Getting item: Path: %s", $item_path ); - $sql = "SELECT dav_name, caldav_data, dav_etag, "; - $sql .= "to_char(created at time zone 'GMT',?) AS created, "; - $sql .= "to_char(modified at time zone 'GMT',?) AS modified "; - $sql .= "FROM caldav_data WHERE dav_name = ?;"; + $sql = "SELECT caldav_data.dav_name, caldav_data, caldav_data.dav_etag, "; + $sql .= "to_char(calendar_item.created at time zone 'GMT',?) AS created, "; + $sql .= "to_char(last_modified at time zone 'GMT',?) AS modified, "; + $sql .= "summary AS dav_displayname "; + $sql .= "FROM caldav_data JOIN calendar_item USING( user_no, dav_name) WHERE dav_name = ?;"; $qry = new PgQuery($sql, PgQuery::Plain(iCalendar::HttpDateFormat()), PgQuery::Plain(iCalendar::HttpDateFormat()), $item_path); if( $qry->Exec("PROPFIND",__LINE__,__FILE__) && $qry->rows > 0 ) { while( $item = $qry->Fetch() ) {