forked from extern/egroupware
use new et2 site config
This commit is contained in:
parent
5740c448ad
commit
06c4b2db23
@ -10,6 +10,8 @@
|
|||||||
* @version $Id$
|
* @version $Id$
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
use EGroupware\Api;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class containing admin, preferences and sidebox-menus and other hooks
|
* Class containing admin, preferences and sidebox-menus and other hooks
|
||||||
*/
|
*/
|
||||||
@ -452,15 +454,80 @@ class addressbook_hooks
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Hook returning options for deny_acl groups
|
* Called before displaying site configuration
|
||||||
*
|
*
|
||||||
* @param array $config
|
* @param array $config
|
||||||
|
* @return array with additional config to merge and "sel_options" values
|
||||||
*/
|
*/
|
||||||
public static function allow_account_edit($config)
|
public static function config(array $config)
|
||||||
{
|
{
|
||||||
$accountsel = new uiaccountsel();
|
$bocontacts = new Api\Contacts();
|
||||||
|
|
||||||
return '<input type="hidden" value="" name="newsettings[allow_account_edit]" />'.
|
// get the list of account fields
|
||||||
$accountsel->selection('newsettings[allow_account_edit]', 'allow_account_edit', $config['allow_account_edit'], 'groups', 4);
|
$own_account_acl = array();
|
||||||
|
foreach($bocontacts->contact_fields as $field => $label)
|
||||||
|
{
|
||||||
|
// some fields the user should never be allowed to edit or are covert by an other attribute (n_fn for all n_*)
|
||||||
|
if (!in_array($field,array('id','tid','owner','created','creator','modified','modifier','private','n_prefix','n_given','n_middle','n_family','n_suffix')))
|
||||||
|
{
|
||||||
|
$own_account_acl[$field] = $label;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$own_account_acl['link_to'] = 'Links';
|
||||||
|
if ($config['account_repository'] != 'ldap') // no custom-fields in ldap
|
||||||
|
{
|
||||||
|
foreach(Api\Storage\Customfields::get('addressbook') as $name => $data)
|
||||||
|
{
|
||||||
|
$own_account_acl['#'.$name] = $data['label'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$org_fields = $own_account_acl;
|
||||||
|
unset($org_fields['n_fn'], $org_fields['account_id']);
|
||||||
|
// Remove country codes as an option, it will be added by BO constructor
|
||||||
|
unset($org_fields['adr_one_countrycode'], $org_fields['adr_two_countrycode']);
|
||||||
|
|
||||||
|
$supported_fields = $bocontacts->get_fields('supported',null,0); // fields supported by the backend (ldap schemas!)
|
||||||
|
// get the list of account fields
|
||||||
|
$copy_fields = array();
|
||||||
|
foreach($bocontacts->contact_fields as $field => $label)
|
||||||
|
{
|
||||||
|
// some fields the user should never be allowed to copy or are coverted by an other attribute (n_fn for all n_*)
|
||||||
|
if (!in_array($field,array('id','tid','created','creator','modified','modifier','account_id','uid','etag','n_fn')))
|
||||||
|
{
|
||||||
|
$copy_fields[$field] = $label;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($config['contact_repository'] != 'ldap') // no custom-fields in ldap
|
||||||
|
{
|
||||||
|
foreach(Api\Storage\Customfields::get('addressbook') as $name => $data)
|
||||||
|
{
|
||||||
|
$copy_fields['#'.$name] = $data['label'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Remove country codes as an option, it will be added by UI constructor
|
||||||
|
if(in_array('adr_one_countrycode', $supported_fields))
|
||||||
|
{
|
||||||
|
unset($copy_fields['adr_one_countrycode'], $copy_fields['adr_two_countrycode']);
|
||||||
|
}
|
||||||
|
|
||||||
|
$repositories = array('sql' => 'SQL');
|
||||||
|
// check account-repository, contact-repository LDAP is only availible for account-repository == ldap
|
||||||
|
if ($config['account_repository'] == 'ldap' || !$config['account_repository'] && $config['auth_type'] == 'ldap')
|
||||||
|
{
|
||||||
|
$repositories['ldap'] = 'LDAP';
|
||||||
|
$repositories['sql-ldap'] = 'SQL --> LDAP ('.lang('read only').')';
|
||||||
|
}
|
||||||
|
|
||||||
|
$ret = array(
|
||||||
|
'sel_options' => array(
|
||||||
|
'own_account_acl' => $own_account_acl,
|
||||||
|
'org_fileds_to_update' => $org_fields, // typo has to stay, as it was there allways and we would loose existing config :(
|
||||||
|
'copy_fields' => $copy_fields,
|
||||||
|
'fileas' => $bocontacts->fileas_options(),
|
||||||
|
'contact_repository' => $repositories,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
return $ret;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,171 +0,0 @@
|
|||||||
<?php
|
|
||||||
/**
|
|
||||||
* eGroupware - Addressbook configuration
|
|
||||||
*
|
|
||||||
* @link http://www.egroupware.org
|
|
||||||
* @author Ralf Becker <RalfBecker-AT-outdoor-training.de>
|
|
||||||
* @package addressbook
|
|
||||||
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
|
|
||||||
* @version $Id$
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Hook to query available contact repositories for addressbook config
|
|
||||||
*
|
|
||||||
* @param array $config
|
|
||||||
* @return string with options
|
|
||||||
*/
|
|
||||||
function contact_repositories($config)
|
|
||||||
{
|
|
||||||
$repositories = array('sql' => 'SQL');
|
|
||||||
// check account-repository, contact-repository LDAP is only availible for account-repository == ldap
|
|
||||||
if ($config['account_repository'] == 'ldap' || !$config['account_repository'] && $config['auth_type'] == 'ldap')
|
|
||||||
{
|
|
||||||
$repositories['ldap'] = 'LDAP';
|
|
||||||
$repositories['sql-ldap'] = 'SQL --> LDAP ('.lang('read only').')';
|
|
||||||
}
|
|
||||||
$options = '';
|
|
||||||
foreach($repositories as $repo => $label)
|
|
||||||
{
|
|
||||||
$options .= '<option value="'.$repo.'"'.($config['contact_repository'] == $repo ? ' selected="1">' : '>').
|
|
||||||
$label."</option>\n";
|
|
||||||
}
|
|
||||||
return $options;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Hook to get available fileas types selectbox for addressbook config
|
|
||||||
*
|
|
||||||
* @param array $config
|
|
||||||
* @return string html
|
|
||||||
*/
|
|
||||||
function select_fileas($config)
|
|
||||||
{
|
|
||||||
$bocontacts = new addressbook_bo();
|
|
||||||
|
|
||||||
return html::select('fileas','',array('' => lang('Set only full name'))+$bocontacts->fileas_options(),true);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Hook to get a multiselect box with all fieleds of onw-account-acl for addressbook config
|
|
||||||
*
|
|
||||||
* @param array $config
|
|
||||||
* @return string html
|
|
||||||
*/
|
|
||||||
function own_account_acl($config)
|
|
||||||
{
|
|
||||||
$bocontacts = new addressbook_bo();
|
|
||||||
$supported_fields = $bocontacts->get_fields('supported',null,0); // fields supported by the backend (ldap schemas!)
|
|
||||||
// get the list of account fields
|
|
||||||
$fields = array();
|
|
||||||
foreach($bocontacts->contact_fields as $field => $label)
|
|
||||||
{
|
|
||||||
// some fields the user should never be allowed to edit or are covert by an other attribute (n_fn for all n_*)
|
|
||||||
if (!in_array($field,array('id','tid','owner','created','creator','modified','modifier','private','n_prefix','n_given','n_middle','n_family','n_suffix')))
|
|
||||||
{
|
|
||||||
$fields[$field] = $label;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$fields['link_to'] = 'Links';
|
|
||||||
|
|
||||||
if ($config['account_repository'] != 'ldap') // no custom-fields in ldap
|
|
||||||
{
|
|
||||||
foreach(config::get_customfields('addressbook') as $name => $data)
|
|
||||||
{
|
|
||||||
$fields['#'.$name] = $data['label'];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return html::checkbox_multiselect('newsettings[own_account_acl]',$config['own_account_acl'],$fields,true,'',4);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Hook to get a multiselect box with all fields of org-fields-to-update for addressbook config
|
|
||||||
*
|
|
||||||
* @param array $config
|
|
||||||
* @return string html
|
|
||||||
*/
|
|
||||||
function org_fileds_to_update($config)
|
|
||||||
{
|
|
||||||
$bocontacts = new addressbook_bo();
|
|
||||||
$supported_fields = $bocontacts->get_fields('supported',null,0); // fields supported by the backend (ldap schemas!)
|
|
||||||
// get the list of account fields
|
|
||||||
$fields = array();
|
|
||||||
foreach($bocontacts->contact_fields as $field => $label)
|
|
||||||
{
|
|
||||||
// some fields never making sense for an organisation
|
|
||||||
if (!in_array($field,array('id','tid','owner','created','creator','modified','modifier','private','n_prefix','n_given','n_middle','n_family','n_suffix','n_fn','account_id')))
|
|
||||||
{
|
|
||||||
$fields[$field] = $label;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($config['contact_repository'] != 'ldap') // no custom-fields in ldap
|
|
||||||
{
|
|
||||||
foreach(config::get_customfields('addressbook') as $name => $data)
|
|
||||||
{
|
|
||||||
$fields['#'.$name] = $data['label'];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Remove country codes as an option, it will be added by BO constructor
|
|
||||||
unset($fields['adr_one_countrycode']);
|
|
||||||
unset($fields['adr_two_countrycode']);
|
|
||||||
|
|
||||||
return html::table(array(array(
|
|
||||||
html::checkbox_multiselect('newsettings[org_fileds_to_update]',
|
|
||||||
$config['org_fileds_to_update'] ? $config['org_fileds_to_update'] : $bocontacts->org_fields,$fields,true,'',6,
|
|
||||||
true,'',false
|
|
||||||
),
|
|
||||||
html::submit_button(
|
|
||||||
'','',"var boxen = \$j('[name^=\'newsettings\[org_fileds_to_update\]\']'); boxen.prop('checked', !boxen.prop('checked')); return false;",
|
|
||||||
true,'style="float:left;"','check','phpgwapi','button'
|
|
||||||
)
|
|
||||||
)));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Hook to get a multiselect box with all fieleds of fields used for copying for addressbook config
|
|
||||||
*
|
|
||||||
* @param array $config
|
|
||||||
* @return string html
|
|
||||||
*/
|
|
||||||
function copy_fields($config)
|
|
||||||
{
|
|
||||||
$bocontacts = new addressbook_bo();
|
|
||||||
$supported_fields = $bocontacts->get_fields('supported',null,0); // fields supported by the backend (ldap schemas!)
|
|
||||||
// get the list of account fields
|
|
||||||
$fields = array();
|
|
||||||
foreach($bocontacts->contact_fields as $field => $label)
|
|
||||||
{
|
|
||||||
// some fields the user should never be allowed to copy or are coverted by an other attribute (n_fn for all n_*)
|
|
||||||
if (!in_array($field,array('id','tid','created','creator','modified','modifier','account_id','uid','etag','n_fn')))
|
|
||||||
{
|
|
||||||
$fields[$field] = $label;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ($config['contact_repository'] != 'ldap') // no custom-fields in ldap
|
|
||||||
{
|
|
||||||
foreach(config::get_customfields('addressbook') as $name => $data)
|
|
||||||
{
|
|
||||||
$fields['#'.$name] = $data['label'];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Remove country codes as an option, it will be added by UI constructor
|
|
||||||
if(in_array('adr_one_countrycode', $supported_fields))
|
|
||||||
{
|
|
||||||
unset($fields['adr_one_countrycode']);
|
|
||||||
unset($fields['adr_two_countrycode']);
|
|
||||||
}
|
|
||||||
|
|
||||||
return html::table(array(array(
|
|
||||||
html::checkbox_multiselect('newsettings[copy_fields]',
|
|
||||||
$config['copy_fields'] ? $config['copy_fields'] : addressbook_ui::$copy_fields,
|
|
||||||
$fields,true,'',6,true,'',false
|
|
||||||
),
|
|
||||||
html::submit_button(
|
|
||||||
'','',"var boxen = \$j('[name^=\'newsettings\[copy_fields\]\']'); boxen.prop('checked', !boxen.prop('checked')); return false;",
|
|
||||||
true,'style="float:left;"','check','phpgwapi','button'
|
|
||||||
)
|
|
||||||
)));
|
|
||||||
}
|
|
@ -41,7 +41,7 @@ $setup_info['addressbook']['hooks']['deletegroup'] = 'addressbook.addressbook_bo
|
|||||||
$setup_info['addressbook']['hooks']['delete_category'] = 'addressbook.addressbook_bo.delete_category';
|
$setup_info['addressbook']['hooks']['delete_category'] = 'addressbook.addressbook_bo.delete_category';
|
||||||
$setup_info['addressbook']['hooks']['search_link'] = 'addressbook_hooks::search_link';
|
$setup_info['addressbook']['hooks']['search_link'] = 'addressbook_hooks::search_link';
|
||||||
$setup_info['addressbook']['hooks']['calendar_resources'] = 'addressbook_hooks::calendar_resources';
|
$setup_info['addressbook']['hooks']['calendar_resources'] = 'addressbook_hooks::calendar_resources';
|
||||||
$setup_info['addressbook']['hooks'][] = 'config';
|
$setup_info['addressbook']['hooks']['config'] = 'addressbook_hooks::config';
|
||||||
$setup_info['addressbook']['hooks']['group_acl'] = 'addressbook_hooks::group_acl';
|
$setup_info['addressbook']['hooks']['group_acl'] = 'addressbook_hooks::group_acl';
|
||||||
$setup_info['addressbook']['hooks']['not_enum_group_acls'] = 'addressbook_hooks::not_enum_group_acls';
|
$setup_info['addressbook']['hooks']['not_enum_group_acls'] = 'addressbook_hooks::not_enum_group_acls';
|
||||||
$setup_info['addressbook']['hooks']['export_limit'] = 'addressbook_hooks::getAppExportLimit';
|
$setup_info['addressbook']['hooks']['export_limit'] = 'addressbook_hooks::getAppExportLimit';
|
||||||
|
@ -1,178 +0,0 @@
|
|||||||
<!-- BEGIN header -->
|
|
||||||
<style>
|
|
||||||
select[multiple] { width:100%;}
|
|
||||||
</style>
|
|
||||||
<form method="POST" action="{action_url}">
|
|
||||||
{hidden_vars}
|
|
||||||
<table border="0" align="center">
|
|
||||||
<tr class="th">
|
|
||||||
<td colspan="2"><font color="{th_text}"> <b>{title}</b></font></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="2"> <i><font color="red">{error}</i></font></td>
|
|
||||||
</tr>
|
|
||||||
<!-- END header -->
|
|
||||||
<!-- BEGIN body -->
|
|
||||||
<tr class="th">
|
|
||||||
<td colspan="2"> <b>{lang_Telephony_integration}</b></td>
|
|
||||||
</tr>
|
|
||||||
<tr class="row_on">
|
|
||||||
<td width="60%"> {lang_URL_to_link_telephone_numbers_to_(use_%1_=_number_to_call,_%u_=_account_name,_%t_=_account_phone)}:</td>
|
|
||||||
<td><input name="newsettings[call_link]" value="{value_call_link}" size="40"></td>
|
|
||||||
</tr>
|
|
||||||
<tr class="row_off">
|
|
||||||
<td> {lang_Size_of_popup_(WxH,_eg.400x300,_if_a_popup_should_be_used)}:</td>
|
|
||||||
<td><input name="newsettings[call_popup]" value="{value_call_popup}" size="10"></td>
|
|
||||||
</tr>
|
|
||||||
<tr class="th">
|
|
||||||
<td colspan="2">
|
|
||||||
<b>{lang_Allow_users_to_maintain_their_own_account-data}</b>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="row_on">
|
|
||||||
<td> {lang_Fields_the_user_is_allowed_to_edit_himself}</td>
|
|
||||||
<td>
|
|
||||||
{hook_own_account_acl}
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="th">
|
|
||||||
<td colspan="2">
|
|
||||||
<b>{lang_General}</b>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="row_on">
|
|
||||||
<td> {lang_Use_a_category_tree?}</td>
|
|
||||||
<td>
|
|
||||||
<select name="newsettings[cat_tab]">
|
|
||||||
<option value="True">{lang_No}</option>
|
|
||||||
<option value="Tree"{selected_cat_tab_Tree}>{lang_Yes}</option>
|
|
||||||
</select>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="row_off">
|
|
||||||
<td> {lang_Update_Fields_by_edited_organisations?}</td>
|
|
||||||
<td>
|
|
||||||
{hook_org_fileds_to_update}
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="row_on">
|
|
||||||
<td> {lang_Fields_to_copy_when_copying_an_address?}</td>
|
|
||||||
<td>
|
|
||||||
{hook_copy_fields}
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="row_off">
|
|
||||||
<td> {lang_Use_an_extra_tab_for_private_custom_fields?}</td>
|
|
||||||
<td>
|
|
||||||
<select name="newsettings[private_cf_tab]">
|
|
||||||
<option value="">{lang_No}</option>
|
|
||||||
<option value="True"{selected_private_cf_tab_True}>{lang_Yes}</option>
|
|
||||||
</select>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="th">
|
|
||||||
<td colspan="2">
|
|
||||||
<b>{lang_Security}</b>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="row_on">
|
|
||||||
<td> {lang_How_many_contacts_should_non-admins_be_able_to_export}
|
|
||||||
{lang_(empty_=_use_global_limit,_no_=_no_export_at_all)}:</td>
|
|
||||||
<td><input name="newsettings[contact_export_limit]" value="{value_contact_export_limit}" size="5"></td>
|
|
||||||
</tr>
|
|
||||||
<tr class="row_off">
|
|
||||||
<td> {lang_Allow_members_of_following_groups_to_edit_contact-data_of_accounts}:</td>
|
|
||||||
<td>{call_addressbook_hooks::allow_account_edit}</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="th">
|
|
||||||
<td colspan="2"> <b>{lang_History_logging}</b></td>
|
|
||||||
</tr>
|
|
||||||
<tr class="row_on">
|
|
||||||
<td> {lang_Prevent_deleting_of_contacts}</td>
|
|
||||||
<td>
|
|
||||||
<select name="newsettings[history]">
|
|
||||||
<option value="">{lang_No}</option>
|
|
||||||
<option value="history"{selected_history_history}>{lang_Yes,_only_admins_can_purge_deleted_items}</option>
|
|
||||||
<option value="userpurge"{selected_history_userpurge}>{lang_Yes,_users_can_purge_their_deleted_items}</option>
|
|
||||||
</select>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="th">
|
|
||||||
<td colspan="2"> <b>{lang_Contact_maintenance}</b></td>
|
|
||||||
</tr>
|
|
||||||
<tr class="row_on">
|
|
||||||
<td> {lang_Set_full_name_and_file_as_field_in_contacts_of_all_users_(either_all_or_only_empty_values)}:</td>
|
|
||||||
<td>
|
|
||||||
{hook_select_fileas}
|
|
||||||
<input type="button" onclick="document.location.href='index.php?menuaction=addressbook.addressbook_ui.admin_set_fileas&all=1&type='+this.form.fileas.value;" value="{lang_All}" />
|
|
||||||
<input type="button" onclick="document.location.href='index.php?menuaction=addressbook.addressbook_ui.admin_set_fileas&type='+this.form.fileas.value;" value="{lang_Empty}" />
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="row_on">
|
|
||||||
<td> {lang_Cleanup_addressbook_fields_(apply_if_synchronization_creates_duplicates)}:</td>
|
|
||||||
<td>
|
|
||||||
<input type="button" onclick="document.location.href='index.php?menuaction=addressbook.addressbook_ui.admin_set_all_cleanup'" value="{lang_Start}" />
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="th">
|
|
||||||
<td colspan="2"> <b>{lang_Contact_repository}</b></td>
|
|
||||||
</tr>
|
|
||||||
<tr class="row_on">
|
|
||||||
<td> {lang_Select_where_you_want_to_store_/_retrieve_contacts}:</td>
|
|
||||||
<td>
|
|
||||||
<select name="newsettings[contact_repository]">
|
|
||||||
{hook_contact_repositories}
|
|
||||||
</select>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="row_off">
|
|
||||||
<td colspan="2"> {lang_You_can_only_use_LDAP_as_contact_repository_if_the_accounts_are_stored_in_LDAP_too!}</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="row_on">
|
|
||||||
<td> {lang_Account_repository}:</td>
|
|
||||||
<td>
|
|
||||||
<b><script>document.write('{value_account_repository}' == 'ldap' || '{value_account_repository}' == '' && '{value_auth_type}' == 'ldap' ? 'LDAP' : 'SQL');</script></b>
|
|
||||||
({lang_Can_be_changed_via_Setup_>>_Configuration})
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="th">
|
|
||||||
<td colspan="2"> <b>{lang_LDAP_settings_for_contacts}</b></td>
|
|
||||||
</tr>
|
|
||||||
<tr class="row_on">
|
|
||||||
<td> {lang_LDAP_host_for_contacts}:</td>
|
|
||||||
<td><input name="newsettings[ldap_contact_host]" value="{value_ldap_contact_host}"></td>
|
|
||||||
</tr>
|
|
||||||
<tr class="row_off">
|
|
||||||
<td> {lang_LDAP_context_for_contacts}:</td>
|
|
||||||
<td><input name="newsettings[ldap_contact_context]" value="{value_ldap_contact_context}" size="40"></td>
|
|
||||||
</tr>
|
|
||||||
<tr class="th">
|
|
||||||
<td colspan="2">
|
|
||||||
{lang_Additional_information_about_using_LDAP_as_contact_repository}:
|
|
||||||
<a href="addressbook/doc/README" target="_blank">README</a>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="row_on">
|
|
||||||
<td> <b>{lang_Migration_to_LDAP}</b></td>
|
|
||||||
<td>
|
|
||||||
<select name="migrate">
|
|
||||||
<option value="">{lang_Select_migration_type}</option>
|
|
||||||
<option value="contacts" title="{lang_if_accounts_are_already_in_LDAP}">{lang_contacts_to_LDAP}</option>
|
|
||||||
<option value="contacts,accounts" title="{lang_use_setup_for_a_full_account-migration}">{lang_contacts_and_account_contact-data_to_LDAP}</option>
|
|
||||||
<option value="contacts,accounts-back" title="{lang_for_read_only_LDAP}">{lang_contacts_to_LDAP,_account_contact-data_to_SQL}</option>
|
|
||||||
<option value="sql" title="{lang_for_read_only_LDAP}">{lang_contacts_and_account_contact-data_to_SQL}</option>
|
|
||||||
</select>
|
|
||||||
<input type="button" onclick="if (this.form.migrate.value) document.location.href='index.php?menuaction=addressbook.addressbook_ui.migrate2ldap&type='+this.form.migrate.value;" value="{lang_Start}" />
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<!-- END body -->
|
|
||||||
<!-- BEGIN footer -->
|
|
||||||
<tr valign="bottom" style="height: 30px;">
|
|
||||||
<td colspan="2" align="center">
|
|
||||||
<input type="submit" name="submit" value="{lang_submit}">
|
|
||||||
<input type="submit" name="cancel" value="{lang_cancel}">
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</form>
|
|
||||||
<!-- END footer -->
|
|
149
addressbook/templates/default/config.xet
Normal file
149
addressbook/templates/default/config.xet
Normal file
@ -0,0 +1,149 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE overlay PUBLIC "-//Stylite AG//eTemplate 2//EN" "http://www.egroupware.org/etemplate2.dtd">
|
||||||
|
<!-- $Id$ -->
|
||||||
|
<overlay>
|
||||||
|
<template id="addressbook.config" template="" lang="" group="0" version="16.1">
|
||||||
|
<grid width="100%" class="admin-config egwGridView_grid">
|
||||||
|
<columns>
|
||||||
|
<column width="60%"/>
|
||||||
|
<column/>
|
||||||
|
</columns>
|
||||||
|
<rows>
|
||||||
|
<row>
|
||||||
|
<description value="Telephony integration" span="all" class="subHeader"/>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<description value="URL to link telephone numbers to (use %1 = number to call, %u = account name, %t = account phone)" label="%s:"/>
|
||||||
|
<textbox id="newsettings[call_link]" size="40"/>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<description value="Size of popup (WxH, eg.400x300, if a popup should be used)" label="%s:"/>
|
||||||
|
<textbox id="newsettings[call_popup]" size="10"/>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<description value="Allow users to maintain their own account-data" span="all" class="subHeader"/>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<description value="Fields the user is allowed to edit himself"/>
|
||||||
|
<select id="newsettings[own_account_acl]" multiple="true" tags="true"/>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<description value="General" span="all" class="subHeader"/>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<description value="Use a category tree?"/>
|
||||||
|
<select id="newsettings[cat_tab]">
|
||||||
|
<option value="True">No</option>
|
||||||
|
<option value="Tree">Yes</option>
|
||||||
|
</select>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<description value="Update Fields by edited organisations?"/>
|
||||||
|
<hbox>
|
||||||
|
<select id="newsettings[org_fileds_to_update]" multiple="true" rows="4"/>
|
||||||
|
<button onclick="widget.getParent().getWidgetById('newsettings[org_fileds_to_update]').select_all_toggle();" label="Select all" image="check"/>
|
||||||
|
</hbox>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<description value="Fields to copy when copying an address?"/>
|
||||||
|
<hbox>
|
||||||
|
<select id="newsettings[copy_fields]" multiple="true" rows="4"/>
|
||||||
|
<button onclick="widget.getParent().getWidgetById('newsettings[copy_fields]').select_all_toggle();" label="Select all" image="check"/>
|
||||||
|
</hbox>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<description value="Use an extra tab for private custom fields?"/>
|
||||||
|
<select id="newsettings[private_cf_tab]">
|
||||||
|
<option value="">No</option>
|
||||||
|
<option value="True">Yes</option>
|
||||||
|
</select>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<description value="Security" span="all" class="subHeader"/>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<vbox>
|
||||||
|
<description value="How many contacts should non-admins be able to export"/>
|
||||||
|
<description value="(empty = use global limit, no = no export at all)"/>
|
||||||
|
</vbox>
|
||||||
|
<textbox id="newsettings[contact_export_limit]" size="5"/>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<description value="Allow members of following groups to edit contact-data of accounts" label="%s:"/>
|
||||||
|
<select-account id="newsettings[allow_account_edit]" account_type="groups" multiple="true" tags="true" width="100%"/>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<description value="History logging" span="all" class="subHeader"/>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<description value="Prevent deleting of contacts"/>
|
||||||
|
<select id="newsettings[history]">
|
||||||
|
<option value="">No</option>
|
||||||
|
<option value="history">Yes, only admins can purge deleted items</option>
|
||||||
|
<option value="userpurge">Yes, users can purge their deleted items</option>
|
||||||
|
</select>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<description value="Contact maintenance" span="all" class="subHeader"/>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<description value="Set full name and file as field in contacts of all users (either all or only empty values)" label="%s:"/>
|
||||||
|
<hbox>
|
||||||
|
<select id="fileas" empty_label="Set only full name" width="70%"/>
|
||||||
|
<button onclick="document.location.href='index.php?menuaction=addressbook.addressbook_ui.admin_set_fileas&all=1&type='+this.form.fileas.value;" label="All"/>
|
||||||
|
<button onclick="document.location.href='index.php?menuaction=addressbook.addressbook_ui.admin_set_fileas&type='+this.form.fileas.value;" label="Empty"/>
|
||||||
|
</hbox>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<description value="Cleanup addressbook fields (apply if synchronization creates duplicates)" label="%s:"/>
|
||||||
|
<button onclick="document.location.href='index.php?menuaction=addressbook.addressbook_ui.admin_set_all_cleanup'" label="Start"/>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<description value="Contact repository" span="all" class="subHeader"/>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<description value="Select where you want to store / retrieve contacts" label="%s:"/>
|
||||||
|
<select id="newsettings[contact_repository]"/>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<description value="You can only use LDAP as contact repository if the accounts are stored in LDAP too!" span="all"/>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<description value="Account repository" label="%s:"/>
|
||||||
|
<hbox>
|
||||||
|
<description id="newsettings[account_repository]" class="subHeader"/>
|
||||||
|
<description value="Can be changed via Setup >> Configuration"/>
|
||||||
|
</hbox>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<description value="LDAP settings for contacts" span="all" class="subHeader"/>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<description value="LDAP host for contacts" label="%s:"/>
|
||||||
|
<textbox id="newsettings[ldap_contact_host]"/>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<description value="LDAP context for contacts" label="%s:"/>
|
||||||
|
<textbox id="newsettings[ldap_contact_context]" size="40"/>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<description value="Additional information about using LDAP as contact repository" class="subHeader"/>
|
||||||
|
<description value="README" href="/doc/ldap/README.contacts" extra_link_target="_blank"/>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<description value="Migration to LDAP"/>
|
||||||
|
<hbox>
|
||||||
|
<select id="migrate">
|
||||||
|
<option value="">Select migration type</option>
|
||||||
|
<option value="contacts" title="if accounts are already in LDAP">contacts to LDAP</option>
|
||||||
|
<option value="contacts,accounts" title="use setup for a full account-migration">contacts and account contact-data to LDAP</option>
|
||||||
|
<option value="contacts,accounts-back" title="for read only LDAP">contacts to LDAP, account contact-data to SQL</option>
|
||||||
|
<option value="sql" title="for read only LDAP">contacts and account contact-data to SQL</option>
|
||||||
|
</select>
|
||||||
|
<button onclick="if (this.form.migrate.value) document.location.href='index.php?menuaction=addressbook.addressbook_ui.migrate2ldap&type='+this.form.migrate.value;" label="Start"/>
|
||||||
|
</hbox>
|
||||||
|
</row>
|
||||||
|
</rows>
|
||||||
|
</grid>
|
||||||
|
</template>
|
||||||
|
</overlay>
|
@ -609,6 +609,17 @@ var et2_selectbox = (function(){ "use strict"; return et2_inputWidget.extend(
|
|||||||
this.value = _value;
|
this.value = _value;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method to check all options of a multi-select, if not all are selected, or none if all where selected
|
||||||
|
*
|
||||||
|
* @todo: add an attribute to automatic add a button calling this method
|
||||||
|
*/
|
||||||
|
select_all_toggle: function()
|
||||||
|
{
|
||||||
|
var all = jQuery("input",this.multiOptions);
|
||||||
|
all.prop("checked", jQuery("input:checked",this.multiOptions).length == all.length ? false : true);
|
||||||
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a button to toggle between single select and multi select.
|
* Add a button to toggle between single select and multi select.
|
||||||
*
|
*
|
||||||
|
Loading…
Reference in New Issue
Block a user