2010-10-20 01:30:16 +02:00
< ? php
/**
* EGroupware : GroupDAV hooks : eg . preferences
*
* @ link http :// www . egroupware . org
* @ license http :// opensource . org / licenses / gpl - license . php GPL - GNU General Public License
* @ package api
* @ subpackage groupdav
* @ author Ralf Becker < RalfBecker - AT - outdoor - training . de >
2012-02-10 09:58:08 +01:00
* @ copyright ( c ) 2010 - 12 by Ralf Becker < RalfBecker - AT - outdoor - training . de >
2010-10-20 01:30:16 +02:00
* @ version $Id $
*/
/**
* GroupDAV hooks : eg . preferences
*/
class groupdav_hooks
{
/**
* Show GroupDAV preferences link in preferences
2010-10-31 08:56:29 +01:00
*
2010-10-20 01:30:16 +02:00
* @ param string | array $args
*/
public static function menus ( $args )
{
$appname = 'groupdav' ;
$location = is_array ( $args ) ? $args [ 'location' ] : $args ;
if ( $location == 'preferences' )
{
$file = array (
'Preferences' => egw :: link ( '/index.php' , 'menuaction=preferences.uisettings.index&appname=' . $appname ),
);
if ( $location == 'preferences' )
{
display_section ( $appname , $file );
}
else
{
display_sidebox ( $appname , lang ( 'Preferences' ), $file );
}
}
}
2010-10-31 08:56:29 +01:00
2010-10-20 01:30:16 +02:00
/**
* populates $settings for the preferences
*
* @ param array | string $hook_data
* @ return array
*/
static function settings ( $hook_data )
{
$settings = array ();
if ( $hook_data [ 'setup' ])
{
$addressbooks = array ();
}
else
{
$user = $GLOBALS [ 'egw_info' ][ 'user' ][ 'account_id' ];
$addressbook_bo = new addressbook_bo ();
$addressbooks = $addressbook_bo -> get_addressbooks ( EGW_ACL_READ );
2012-02-10 09:53:50 +01:00
unset ( $addressbooks [ $user ]); // allways synced
2010-10-20 01:30:16 +02:00
unset ( $addressbooks [ $user . 'p' ]); // ignore (optional) private addressbook for now
}
$addressbooks = array (
'A' => lang ( 'All' ),
2012-02-10 09:53:50 +01:00
'G' => lang ( 'Primary Group' ),
'U' => lang ( 'Accounts' ),
2010-10-20 01:30:16 +02:00
) + $addressbooks ;
2010-10-31 08:56:29 +01:00
2010-10-20 01:30:16 +02:00
// rewriting owner=0 to 'U', as 0 get's always selected by prefs
if ( ! isset ( $addressbooks [ 0 ]))
{
unset ( $addressbooks [ 'U' ]);
}
else
{
unset ( $addressbooks [ 0 ]);
}
2010-10-31 08:56:29 +01:00
$settings [ 'addressbook-home-set' ] = array (
2010-10-20 01:30:16 +02:00
'type' => 'multiselect' ,
2012-02-10 09:53:50 +01:00
'label' => 'Addressbooks to sync in addition to personal addressbook' ,
2010-10-20 01:30:16 +02:00
'name' => 'addressbook-home-set' ,
2012-02-10 09:53:50 +01:00
'help' => lang ( 'Only supported by a few fully conformant clients (eg. from Apple). If you have to enter a URL, it will most likly not be suppored!' ) . '<br/>' . lang ( 'They will be sub-folders in users home (%1 attribute).' , 'CardDAV "addressbook-home-set"' ),
2010-10-20 01:30:16 +02:00
'values' => $addressbooks ,
'xmlrpc' => True ,
'admin' => False ,
2012-02-10 09:53:50 +01:00
);
if ( $hook_data [ 'setup' ])
{
$calendars = array ();
}
else
{
$user = $GLOBALS [ 'egw_info' ][ 'user' ][ 'account_id' ];
$cal_bo = new calendar_bo ();
foreach ( $cal_bo -> list_cals () as $entry )
{
$calendars [ $entry [ 'grantor' ]] = $entry [ 'name' ];
}
unset ( $calendars [ $user ]);
}
$calendars = array (
'A' => lang ( 'All' ),
'G' => lang ( 'Primary Group' ),
) + $calendars ;
$settings [ 'calendar-home-set' ] = array (
'type' => 'multiselect' ,
'label' => 'Calendars to sync in addition to personal calendar' ,
'name' => 'calendar-home-set' ,
'help' => lang ( 'Only supported by a few fully conformant clients (eg. from Apple). If you have to enter a URL, it will most likly not be suppored!' ) . '<br/>' . lang ( 'They will be sub-folders in users home (%1 attribute).' , 'CalDAV "calendar-home-set"' ),
'values' => $calendars ,
'xmlrpc' => True ,
'admin' => False ,
2010-10-20 01:30:16 +02:00
);
2010-10-31 08:56:29 +01:00
2011-11-06 10:40:33 +01:00
translation :: add_app ( 'infolog' );
$infolog = new infolog_bo ();
if ( ! ( $types = $infolog -> enums [ 'type' ]))
{
$types = array (
'task' => 'Tasks' ,
);
}
$settings [ 'infolog-types' ] = array (
'type' => 'multiselect' ,
'label' => 'InfoLog types to sync' ,
'name' => 'infolog-types' ,
'help' => 'Which InfoLog types should be synced with the device, default only tasks.' ,
'values' => $types ,
'default' => 'task' ,
'xmlrpc' => True ,
'admin' => False ,
);
2010-10-31 08:56:29 +01:00
$settings [ 'debug_level' ] = array (
'type' => 'select' ,
'label' => 'Debug level for Apache/PHP error-log' ,
'name' => 'debug_level' ,
'help' => 'Enables debug-messages to Apache/PHP error-log, allowing to diagnose problems on a per user basis.' ,
'values' => array (
2011-11-23 17:37:43 +01:00
'0' => 'Off' ,
'r' => 'Requests and truncated responses' ,
2011-11-24 13:21:02 +01:00
'f' => 'Requests and full responses to files directory' ,
2011-11-23 17:37:43 +01:00
'1' => 'Debug 1 - function calls' ,
'2' => 'Debug 2 - more info' ,
'3' => 'Debug 3 - complete $_SERVER array' ,
2010-10-31 08:56:29 +01:00
),
'xmlrpc' => true ,
'admin' => false ,
'default' => '0' ,
);
2010-10-20 01:30:16 +02:00
return $settings ;
}
}