Files
server/usr/share/psa-horde/turba/config/prefs.php
2026-01-07 20:52:11 +01:00

206 lines
7.4 KiB
PHP

<?php
/**
* See horde/config/prefs.php for documentation on the structure of this file.
*
* IMPORTANT: DO NOT EDIT THIS FILE! DO NOT COPY prefs.php TO prefs.local.php!
* Local overrides ONLY MUST be placed in prefs.local.php or prefs.d/.
* If the 'vhosts' setting has been enabled in Horde's configuration, you can
* use prefs-servername.php.
*/
$prefGroups['addressbooks'] = array(
'column' => _("Address Books"),
'label' => _("Address Books"),
'desc' => _("Choose which address books to use."),
'members' => array('default_dir'),
);
$prefGroups['sync'] = array(
'column' => _("Address Books"),
'label' => _("Synchronization Preferences"),
'desc' => _("Choose which address books to use for synchronization with external devices."),
'members' => array('sync_books', 'activesync_no_multiplex'),
);
$prefGroups['columns'] = array(
'column' => _("Display Preferences"),
'label' => _("Column Preferences"),
'desc' => _("Select which fields to display in the address lists."),
'members' => array('columnselect'),
);
$prefGroups['display'] = array(
'column' => _("Display Preferences"),
'label' => _("Display"),
'desc' => _("Select view to display by default and paging preferences."),
'members' => array('initial_page', 'maxpage', 'perpage'),
);
$prefGroups['format'] = array(
'column' => _("Display Preferences"),
'label' => _("Name Format"),
'desc' => _("Select which format to display names."),
'members' => array('name_format', 'name_sort'),
);
// Address books use for synchronization
$_prefs['sync_books'] = array(
'value' => 'a:0:{}',
'type' => 'multienum',
'enum' => array(),
'desc' => _("Select the address books that should be used for synchronization with external devices:"),
'on_init' => function($ui) {
$enum = array();
$sync_books = @unserialize($GLOBALS['prefs']->getValue('sync_books'));
if (empty($sync_books)) {
$default_book = Turba::getDefaultAddressbook();
$sync_list = !empty($default_book)
? array($default_book)
: array();
$GLOBALS['prefs']->setValue('sync_books', serialize($sync_list));
}
foreach (Turba::getAddressBooks(Horde_Perms::DELETE) as $key => $val) {
if (!empty($val['map']['__uid']) &&
!empty($val['browse'])) {
$enum[$key] = $val['title'];
}
}
$ui->prefs['sync_books']['enum'] = $enum;
},
'on_change' => function() {
if ($GLOBALS['conf']['activesync']['enabled']) {
try {
$sm = $GLOBALS['injector']->getInstance('Horde_ActiveSyncState');
$sm->setLogger($GLOBALS['injector']->getInstance('Horde_Log_Logger'));
$devices = $sm->listDevices($GLOBALS['registry']->getAuth());
foreach ($devices as $device) {
$device_ob = $sm->loadDeviceInfo($device['device_id'], $device['device_user']);
if (!$GLOBALS['prefs']->getValue('activesync_no_multiplex') ||
($device_ob->multiplex & Horde_ActiveSync_Device::MULTIPLEX_CONTACTS)) {
$map = $sm->getFolderUidToBackendIdMap();
$sm->removeState(array(
'devId' => $device['device_id'],
'id' => (!empty($map[Horde_Core_ActiveSync_Driver::CONTACTS_FOLDER_UID]) ? $map[Horde_Core_ActiveSync_Driver::CONTACTS_FOLDER_UID] : Horde_Core_ActiveSync_Driver::CONTACTS_FOLDER_UID),
'user' => $GLOBALS['registry']->getAuth()
));
}
}
$GLOBALS['notification']->push(_("All state removed for your ActiveSync devices. They will resynchronize next time they connect to the server."));
} catch (Horde_ActiveSync_Exception $e) {
$GLOBALS['notification']->push(_("There was an error communicating with the ActiveSync server: %s"), $e->getMessage(), 'horde.error');
}
}
}
);
// @todo We default to using multiplex since that is the current behavior
// For Turba 5 we should default to separate.
$_prefs['activesync_no_multiplex'] = array(
'type' => 'checkbox',
'desc' => _("Support separate address books?"),
'value' => 0
);
// Columns selection widget
$_prefs['columnselect'] = array(
'type' => 'special',
'handler' => 'Turba_Prefs_Special_Columnselect'
);
// Columns to be displayed in Browse and Search results, with entries
// for the columns displayed for each address book. Separate address
// book stanzas with \n and columns with \t. The "name" column is
// currently always displayed first and so cannot be modified here.
// Double quotes MUST be used as in the example.
$_prefs['columns'] = array(
'value' => "localsql\temail"
);
// user preferred sorting column
// serialized array of hashes containing 'field' and 'ascending' keys
$_prefs['sortorder'] = array(
'value' => 'a:1:{i:0;a:2:{s:5:"field";s:8:"lastname";s:9:"ascending";b:1;}}'
);
// number of maximum pages and items per page
$_prefs['maxpage'] = array(
'value' => 10,
'type' => 'number',
'desc' => _("Maximum number of pages"),
);
$_prefs['perpage'] = array(
'value' => 20,
'type' => 'number',
'desc' => _("Number of items per page"),
);
// the page to display. Either 'browse.php' or 'search.php'
$_prefs['initial_page'] = array(
'value' => 'search.php',
'type' => 'enum',
'desc' => _("View to display by default:"),
'enum' => array(
'browse.php' => _("Address Book Listing"),
'search.php' => _("Search")
)
);
// the format to display names. Either 'last_first' or 'first_last'
$_prefs['name_format'] = array(
'value' => 'none',
'type' => 'enum',
'desc' => _("Select the format used to <em>display</em> names:"),
'enum' => array(
'last_first' => _("\"Lastname, Firstname\" (ie. Doe, John)"),
'first_last' => _("\"Firstname Lastname\" (ie. John Doe)"),
'none' => _("no formatting")
)
);
// the format to sort names. Either 'last_first' or 'first_last'
$_prefs['name_sort'] = array(
'value' => 'none',
'type' => 'enum',
'desc' => _("Select the format used to <em>sort</em> names:"),
'enum' => array(
'last_first' => _("\"Lastname, Firstname\" (ie. Doe, John)"),
'first_last' => _("\"Firstname Lastname\" (ie. John Doe)"),
'none' => _("no formatting")
)
);
// Default directory
$_prefs['default_dir'] = array(
'value' => '',
// 'value' => 'localsql',
'type' => 'enum',
'enum' => array(),
'desc' => _("This will be the default address book when adding or importing contacts."),
'on_init' => function($ui) {
$enum = array();
foreach (Turba::getAddressBooks(Horde_Perms::EDIT) as $key => $info) {
$enum[$key] = $info['title'];
}
$ui->prefs['default_dir']['enum'] = $enum;
},
'on_change' => function() {
$source = $GLOBALS['prefs']->getValue('default_dir');
$GLOBALS['injector']
->getInstance('Turba_Factory_Driver')
->create($source)
->setDefaultShare($source);
},
);
// preference for holding any preferences-based addressbooks.
$_prefs['prefbooks'] = array(
'value' => ''
);
// Personal contact.
$_prefs['own_contact'] = array(
// The format is 'source_name;contact_id'.
'value' => ''
);