From bc25ce182bc7b38f5c38f528ad6e7a6a52e3fc7e Mon Sep 17 00:00:00 2001 From: Andrew McMillan Date: Sun, 26 Nov 2006 11:44:32 +1300 Subject: [PATCH] Display a list of the user's collections. --- inc/RSCDSUser.php | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/inc/RSCDSUser.php b/inc/RSCDSUser.php index 29c9d890..30d8eccc 100644 --- a/inc/RSCDSUser.php +++ b/inc/RSCDSUser.php @@ -59,6 +59,7 @@ class RSCDSUser extends User $html .= $this->RenderRelationshipsFrom($ef); $html .= $this->RenderRelationshipsTo($ef); + $html .= $this->RenderCollections($ef); $html .= "\n"; $html .= ""; @@ -198,6 +199,45 @@ EOSQL; return $html; } + + /** + * Render the user's collections + * + * @return string The string of html to be output + */ + function RenderCollections( $ef, $title = null ) { + global $session, $c; + + if ( $title == null ) $title = i18n("This user's collections"); + $browser = new Browser(""); + + $browser->AddHidden( 'collection_link', "'' || dav_name || ''" ); + $browser->AddColumn( 'dav_name', translate('Collection Path'), 'left', '##collection_link##' ); + $browser->AddColumn( 'is_calendar', translate('Is a Calendar?'), 'centre', '', "CASE WHEN is_calendar THEN 'Yes' ELSE 'No' END" ); + $browser->AddColumn( 'created', translate('Created On') ); + $browser->AddColumn( 'modified', translate('Changed On') ); + + $browser->SetJoins( 'collection LEFT JOIN usr USING (user_no)' ); + $browser->SetWhere( "collection.user_no = $this->user_no" ); + + if ( isset( $_GET['o']) && isset($_GET['d']) ) { + $browser->AddOrder( $_GET['o'], $_GET['d'] ); + } + else + $browser->AddOrder( 'dav_name', 'A' ); + + $browser->RowFormat( "\n", "\n", '#even' ); + $browser->DoQuery(); + + $html = ( $title == "" ? "" : $ef->BreakLine(translate($title)) ); + $html .= " \n"; + $html .= $browser->Render(); + $html .= "\n"; + + return $html; + } + + /** * Validate the information the user submitted * @return boolean Whether the form data validated OK.