davical/inc/ui/external-browse.php
Florian Schlichting e92e981542 Listing External Calendars is part of the Administration menu and should be restricted to admins
this could be made configurable, or lumped in with
$c->restrict_setup_to_admin, but non-admins only get here by manually
entering the URL...
2021-02-09 01:54:32 +08:00

43 lines
1.7 KiB
PHP

<?php
param_to_global( 'external_active', '([tf])', 'active' );
if ( !$session->AllowedTo("Admin" ) ) {
@ob_flush(); exit(0);
}
$browser = new Browser(translate('External Calendars'));
$browser->AddColumn( 'collection_id', translate('ID'), 'right', '##collection_link##' );
$rowurl = $c->base_url . '/admin.php?action=edit&t=collection&id=';
$browser->AddHidden( 'collection_link', "'<a href=\"$rowurl' || collection_id || '\">' || collection_id || '</a>'" );
$browser->AddColumn( 'dav_displayname', translate('Display Name') );
$browser->AddColumn( 'refs', translate('References'),'right','','(select count(*) from dav_binding where bound_source_id=collection_id )' );
$browser->SetOrdering( 'dav_displayname', 'A' );
$browser->SetJoins( "collection " );
$browser->SetWhere( "parent_container='/.external/'" );
$c->page_title = $browser->Title();
if ( $c->enable_row_linking ) {
$browser->RowFormat( '<tr onMouseover="LinkHref(this,1);" title="'.htmlspecialchars(translate('Click to display user details')).'" class="r%d">', '</tr>', '#even' );
}
else {
$browser->RowFormat( '<tr class="r%d">', '</tr>', '#even' );
}
$page_elements[] = $browser;
$externalqry = new AwlQuery( "SELECT count(*) as count from collection where parent_container='/.external/' and collection_id not in ( select bound_source_id from dav_binding where external_url is not null)" );
$externalqry->Exec('external-bind-url');
$external = $externalqry->Fetch();
if ( $external->count > 0 ) {
$link = '<a href="'.$c->base_url . '/admin.php?action=edit&t=external&subaction=clean" class="submit">'.
translate("Remove dangling external calendars").'('.$external->count.')</a>';
$c->stylesheets[] = 'css/edit.css';
$page_elements[] = $link;
}