forked from extern/egroupware
"fixed warning if there's no col-selection yet"
This commit is contained in:
parent
a879dd4055
commit
92f16b2d7e
@ -9,7 +9,7 @@
|
|||||||
* @copyright (c) 2005/6 by Cornelius Weiss <egw@von-und-zu-weiss.de>
|
* @copyright (c) 2005/6 by Cornelius Weiss <egw@von-und-zu-weiss.de>
|
||||||
* @package addressbook
|
* @package addressbook
|
||||||
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
|
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
|
||||||
* @version $Id$
|
* @version $Id$
|
||||||
*/
|
*/
|
||||||
|
|
||||||
require_once(EGW_INCLUDE_ROOT.'/addressbook/inc/class.bocontacts.inc.php');
|
require_once(EGW_INCLUDE_ROOT.'/addressbook/inc/class.bocontacts.inc.php');
|
||||||
@ -31,7 +31,7 @@ class uicontacts extends bocontacts
|
|||||||
);
|
);
|
||||||
/**
|
/**
|
||||||
* use a separate private addressbook (former private flag), for contacts not shareable via regular read acl
|
* use a separate private addressbook (former private flag), for contacts not shareable via regular read acl
|
||||||
*
|
*
|
||||||
* @var boolean
|
* @var boolean
|
||||||
*/
|
*/
|
||||||
var $private_addressbook = false;
|
var $private_addressbook = false;
|
||||||
@ -72,12 +72,12 @@ class uicontacts extends bocontacts
|
|||||||
}
|
}
|
||||||
$this->config =& $GLOBALS['egw_info']['server'];
|
$this->config =& $GLOBALS['egw_info']['server'];
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* List contacts of an addressbook
|
* List contacts of an addressbook
|
||||||
*
|
*
|
||||||
* @param array $content=null submitted content
|
* @param array $content=null submitted content
|
||||||
* @param string $msg=null message to show
|
* @param string $msg=null message to show
|
||||||
* @param boolean $do_email=false do an email-selection popup or the regular index-page
|
* @param boolean $do_email=false do an email-selection popup or the regular index-page
|
||||||
*/
|
*/
|
||||||
function index($content=null,$msg=null,$do_email=false)
|
function index($content=null,$msg=null,$do_email=false)
|
||||||
@ -243,7 +243,7 @@ class uicontacts extends bocontacts
|
|||||||
}
|
}
|
||||||
$sel_options['action'] += array(
|
$sel_options['action'] += array(
|
||||||
'delete' => lang('Delete'),
|
'delete' => lang('Delete'),
|
||||||
'csv' => lang('Export as CSV'),
|
'csv' => lang('Export as CSV'),
|
||||||
'vcard' => lang('Export as VCard'), // ToDo: move this to importexport framework
|
'vcard' => lang('Export as VCard'), // ToDo: move this to importexport framework
|
||||||
'merge' => lang('Merge into first or account, deletes all other!'),
|
'merge' => lang('Merge into first or account, deletes all other!'),
|
||||||
'cat_add' => lang('Add or delete Categoies'), // add a categirie to multible addresses
|
'cat_add' => lang('Add or delete Categoies'), // add a categirie to multible addresses
|
||||||
@ -272,14 +272,14 @@ class uicontacts extends bocontacts
|
|||||||
$sel_options['action']['remove_from_list'] = lang('Remove selected contacts from distribution list');
|
$sel_options['action']['remove_from_list'] = lang('Remove selected contacts from distribution list');
|
||||||
$sel_options['action']['delete_list'] = lang('Delete selected distribution list!');
|
$sel_options['action']['delete_list'] = lang('Delete selected distribution list!');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if ($this->prefs['document_dir'])
|
if ($this->prefs['document_dir'])
|
||||||
{
|
{
|
||||||
$sel_options['action'][lang('Insert in document').':'] = $this->get_document_actions();
|
$sel_options['action'][lang('Insert in document').':'] = $this->get_document_actions();
|
||||||
}
|
}
|
||||||
if (!array_key_exists('importexport',$GLOBALS['egw_info']['user']['apps'])) unset($sel_options['action']['export']);
|
if (!array_key_exists('importexport',$GLOBALS['egw_info']['user']['apps'])) unset($sel_options['action']['export']);
|
||||||
|
|
||||||
// dont show tid-selection if we have only one content_type
|
// dont show tid-selection if we have only one content_type
|
||||||
if (count($this->content_types) <= 1)
|
if (count($this->content_types) <= 1)
|
||||||
{
|
{
|
||||||
@ -305,26 +305,26 @@ class uicontacts extends bocontacts
|
|||||||
foreach(explode('|||',$content['nm']['org_view']) as $part)
|
foreach(explode('|||',$content['nm']['org_view']) as $part)
|
||||||
{
|
{
|
||||||
list(,$name) = explode(':',$part,2);
|
list(,$name) = explode(':',$part,2);
|
||||||
if ($name) $org_name[] = $name;
|
if ($name) $org_name[] = $name;
|
||||||
}
|
}
|
||||||
$org_name = implode(': ',$org_name);
|
$org_name = implode(': ',$org_name);
|
||||||
$sel_options['org_view'][(string) $content['nm']['org_view']] = $org_name;
|
$sel_options['org_view'][(string) $content['nm']['org_view']] = $org_name;
|
||||||
}
|
}
|
||||||
$content['nm']['org_view_label'] = $sel_options['org_view'][(string) $content['nm']['org_view']];
|
$content['nm']['org_view_label'] = $sel_options['org_view'][(string) $content['nm']['org_view']];
|
||||||
|
|
||||||
$this->tmpl->read(/*$do_email ? 'addressbook.email' :*/ 'addressbook.index');
|
$this->tmpl->read(/*$do_email ? 'addressbook.email' :*/ 'addressbook.index');
|
||||||
return $this->tmpl->exec($do_email ? 'addressbook.uicontacts.emailpopup' : 'addressbook.uicontacts.index',
|
return $this->tmpl->exec($do_email ? 'addressbook.uicontacts.emailpopup' : 'addressbook.uicontacts.index',
|
||||||
$content,$sel_options,$readonlys,$preserv,$do_email ? 2 : 0);
|
$content,$sel_options,$readonlys,$preserv,$do_email ? 2 : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Email address-selection popup
|
* Email address-selection popup
|
||||||
*
|
*
|
||||||
* @param array $content=null submitted content
|
* @param array $content=null submitted content
|
||||||
* @param string $msg=null message to show
|
* @param string $msg=null message to show
|
||||||
*/
|
*/
|
||||||
function emailpopup($content=null,$msg=null)
|
function emailpopup($content=null,$msg=null)
|
||||||
{
|
{
|
||||||
if (strpos($GLOBALS['egw_info']['flags']['java_script'],'addEmail') === false)
|
if (strpos($GLOBALS['egw_info']['flags']['java_script'],'addEmail') === false)
|
||||||
{
|
{
|
||||||
if ($_GET['compat']) // 1.2 felamimail or old email
|
if ($_GET['compat']) // 1.2 felamimail or old email
|
||||||
@ -342,11 +342,11 @@ class uicontacts extends bocontacts
|
|||||||
$GLOBALS['egw_info']['flags']['java_script'].= "
|
$GLOBALS['egw_info']['flags']['java_script'].= "
|
||||||
<script>
|
<script>
|
||||||
window.focus();
|
window.focus();
|
||||||
|
|
||||||
function addEmail(email)
|
function addEmail(email)
|
||||||
{
|
{
|
||||||
var to = 'to';
|
var to = 'to';
|
||||||
if (document.getElementById('exec[nm][to][cc]').checked == true)
|
if (document.getElementById('exec[nm][to][cc]').checked == true)
|
||||||
{
|
{
|
||||||
to = 'cc';
|
to = 'cc';
|
||||||
}
|
}
|
||||||
@ -364,7 +364,7 @@ class uicontacts extends bocontacts
|
|||||||
}
|
}
|
||||||
return $this->index($content,$msg,true);
|
return $this->index($content,$msg,true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Show the infologs of an whole organisation
|
* Show the infologs of an whole organisation
|
||||||
*
|
*
|
||||||
@ -399,7 +399,7 @@ class uicontacts extends bocontacts
|
|||||||
'action_title' => $org,
|
'action_title' => $org,
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
function ajax_add_whole_list($list, $email_type = 'email')
|
function ajax_add_whole_list($list, $email_type = 'email')
|
||||||
{
|
{
|
||||||
$query = $GLOBALS['egw']->session->appsession('email','addressbook');
|
$query = $GLOBALS['egw']->session->appsession('email','addressbook');
|
||||||
@ -428,7 +428,7 @@ class uicontacts extends bocontacts
|
|||||||
}
|
}
|
||||||
return $response->getXML();
|
return $response->getXML();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* apply an action to multiple contacts
|
* apply an action to multiple contacts
|
||||||
*
|
*
|
||||||
@ -443,13 +443,13 @@ class uicontacts extends bocontacts
|
|||||||
*/
|
*/
|
||||||
function action($action,$checked,$use_all,&$success,&$failed,&$action_msg,$session_name,&$msg)
|
function action($action,$checked,$use_all,&$success,&$failed,&$action_msg,$session_name,&$msg)
|
||||||
{
|
{
|
||||||
//echo "<p>uicontacts::action('$action',".print_r($checked,true).','.(int)$use_all.",...)</p>\n";
|
//echo "<p>uicontacts::action('$action',".print_r($checked,true).','.(int)$use_all.",...)</p>\n";
|
||||||
$success = $failed = 0;
|
$success = $failed = 0;
|
||||||
if ($use_all || in_array($action,array('remove_from_list','delete_list')))
|
if ($use_all || in_array($action,array('remove_from_list','delete_list')))
|
||||||
{
|
{
|
||||||
// get the whole selection
|
// get the whole selection
|
||||||
$query = is_array($session_name) ? $session_name : $GLOBALS['egw']->session->appsession($session_name,'addressbook');
|
$query = is_array($session_name) ? $session_name : $GLOBALS['egw']->session->appsession($session_name,'addressbook');
|
||||||
|
|
||||||
if ($use_all)
|
if ($use_all)
|
||||||
{
|
{
|
||||||
@set_time_limit(0); // switch off the execution time limit, as it's for big selections to small
|
@set_time_limit(0); // switch off the execution time limit, as it's for big selections to small
|
||||||
@ -474,11 +474,11 @@ class uicontacts extends bocontacts
|
|||||||
unset($query['filter2']);
|
unset($query['filter2']);
|
||||||
$this->get_rows($query,$extra,$readonlys,true); // true = only return the id's
|
$this->get_rows($query,$extra,$readonlys,true); // true = only return the id's
|
||||||
if ($extra[0]) $org_contacts = array_merge($org_contacts,$extra);
|
if ($extra[0]) $org_contacts = array_merge($org_contacts,$extra);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($org_contacts) $checked = array_unique($checked ? array_merge($checked,$org_contacts) : $org_contacts);
|
if ($org_contacts) $checked = array_unique($checked ? array_merge($checked,$org_contacts) : $org_contacts);
|
||||||
//_debug_array($checked); exit;
|
//_debug_array($checked); exit;
|
||||||
|
|
||||||
if (substr($action,0,8) == 'move_to_')
|
if (substr($action,0,8) == 'move_to_')
|
||||||
{
|
{
|
||||||
$action = (int)substr($action,8);
|
$action = (int)substr($action,8);
|
||||||
@ -494,7 +494,7 @@ class uicontacts extends bocontacts
|
|||||||
$action = 'document';
|
$action = 'document';
|
||||||
}
|
}
|
||||||
// Security: stop non-admins to export more then the configured number of contacts
|
// Security: stop non-admins to export more then the configured number of contacts
|
||||||
if (in_array($action,array('csv','vcard')) && (int)$this->config['contact_export_limit'] &&
|
if (in_array($action,array('csv','vcard')) && (int)$this->config['contact_export_limit'] &&
|
||||||
!isset($GLOBALS['egw_info']['user']['apps']['admin']) && count($checked) > $this->config['contact_export_limit'])
|
!isset($GLOBALS['egw_info']['user']['apps']['admin']) && count($checked) > $this->config['contact_export_limit'])
|
||||||
{
|
{
|
||||||
$action_msg = lang('exported');
|
$action_msg = lang('exported');
|
||||||
@ -532,8 +532,8 @@ class uicontacts extends bocontacts
|
|||||||
ExecMethod('addressbook.vcaladdressbook.export',$checked);
|
ExecMethod('addressbook.vcaladdressbook.export',$checked);
|
||||||
// does not return!
|
// does not return!
|
||||||
$Ok = false;
|
$Ok = false;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'infolog':
|
case 'infolog':
|
||||||
$GLOBALS['egw']->redirect_link('/index.php',array(
|
$GLOBALS['egw']->redirect_link('/index.php',array(
|
||||||
'menuaction' => 'infolog.uiinfolog.index',
|
'menuaction' => 'infolog.uiinfolog.index',
|
||||||
@ -542,7 +542,7 @@ class uicontacts extends bocontacts
|
|||||||
'action_title' => count($checked) > 1 ? lang('selected contacts') : '',
|
'action_title' => count($checked) > 1 ? lang('selected contacts') : '',
|
||||||
));
|
));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'merge':
|
case 'merge':
|
||||||
$success = $this->merge($checked,$error_msg);
|
$success = $this->merge($checked,$error_msg);
|
||||||
$failed = count($checked) - (int)$success;
|
$failed = count($checked) - (int)$success;
|
||||||
@ -566,11 +566,11 @@ class uicontacts extends bocontacts
|
|||||||
$GLOBALS['egw']->session->appsession($session_name,'addressbook',$query);
|
$GLOBALS['egw']->session->appsession($session_name,'addressbook',$query);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
case 'document':
|
case 'document':
|
||||||
$msg = $this->download_document($checked,$document);
|
$msg = $this->download_document($checked,$document);
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
case 'cat_add':
|
case 'cat_add':
|
||||||
foreach($checked as $id)
|
foreach($checked as $id)
|
||||||
{
|
{
|
||||||
@ -582,7 +582,7 @@ class uicontacts extends bocontacts
|
|||||||
//categarie add
|
//categarie add
|
||||||
if ((!($cat_ids_new = $GLOBALS['egw']->session->appsession('cat_add','addressbook')) && !($cat_ids_new = $GLOBALS['egw']->session->appsession('cat_delete','addressbook'))))
|
if ((!($cat_ids_new = $GLOBALS['egw']->session->appsession('cat_add','addressbook')) && !($cat_ids_new = $GLOBALS['egw']->session->appsession('cat_delete','addressbook'))))
|
||||||
{
|
{
|
||||||
$action_msg = lang('no categories selected');
|
$action_msg = lang('no categories selected');
|
||||||
}
|
}
|
||||||
if ($GLOBALS['egw']->session->appsession('cat_add','addressbook'))
|
if ($GLOBALS['egw']->session->appsession('cat_add','addressbook'))
|
||||||
{
|
{
|
||||||
@ -634,7 +634,7 @@ class uicontacts extends bocontacts
|
|||||||
$Ok = $this->delete($id);
|
$Ok = $this->delete($id);
|
||||||
}
|
}
|
||||||
// delete single account --> redirect to admin
|
// delete single account --> redirect to admin
|
||||||
elseif (count($checked) == 1 && $contact['account_id'])
|
elseif (count($checked) == 1 && $contact['account_id'])
|
||||||
{
|
{
|
||||||
$GLOBALS['egw']->redirect_link('/index.php',array(
|
$GLOBALS['egw']->redirect_link('/index.php',array(
|
||||||
'menuaction' => 'admin.uiaccounts.delete_user',
|
'menuaction' => 'admin.uiaccounts.delete_user',
|
||||||
@ -648,7 +648,7 @@ class uicontacts extends bocontacts
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'email':
|
case 'email':
|
||||||
case 'email_home':
|
case 'email_home':
|
||||||
$action == 'email' ? $action_fallback = 'email_home' : $action_fallback = 'email';
|
$action == 'email' ? $action_fallback = 'email_home' : $action_fallback = 'email';
|
||||||
@ -675,7 +675,7 @@ class uicontacts extends bocontacts
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'remove_from_list':
|
case 'remove_from_list':
|
||||||
$action_msg = lang('removed from distribution list');
|
$action_msg = lang('removed from distribution list');
|
||||||
if (!$query['filter2'])
|
if (!$query['filter2'])
|
||||||
@ -688,7 +688,7 @@ class uicontacts extends bocontacts
|
|||||||
$Ok = $this->remove_from_list($id,$query['filter2']) !== false;
|
$Ok = $this->remove_from_list($id,$query['filter2']) !== false;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'to_list':
|
case 'to_list':
|
||||||
$action_msg = lang('added to distribution list');
|
$action_msg = lang('added to distribution list');
|
||||||
if (!$to_list)
|
if (!$to_list)
|
||||||
@ -737,7 +737,7 @@ class uicontacts extends bocontacts
|
|||||||
/**
|
/**
|
||||||
* rows callback for index nextmatch
|
* rows callback for index nextmatch
|
||||||
*
|
*
|
||||||
* @internal
|
* @internal
|
||||||
* @param array &$query
|
* @param array &$query
|
||||||
* @param array &$rows returned rows/cups
|
* @param array &$rows returned rows/cups
|
||||||
* @param array &$readonlys eg. to disable buttons based on acl
|
* @param array &$readonlys eg. to disable buttons based on acl
|
||||||
@ -748,7 +748,7 @@ class uicontacts extends bocontacts
|
|||||||
{
|
{
|
||||||
$do_email = $query['do_email'];
|
$do_email = $query['do_email'];
|
||||||
// is this wanted???
|
// is this wanted???
|
||||||
if ($query['sitemgr_display'])
|
if ($query['sitemgr_display'])
|
||||||
{
|
{
|
||||||
$old_state = $GLOBALS['egw']->session->appsession($query['sitemgr_display'],'addressbook');
|
$old_state = $GLOBALS['egw']->session->appsession($query['sitemgr_display'],'addressbook');
|
||||||
} else {
|
} else {
|
||||||
@ -770,7 +770,7 @@ class uicontacts extends bocontacts
|
|||||||
{
|
{
|
||||||
$query['advanced_search'] = $old_state['advanced_search'];
|
$query['advanced_search'] = $old_state['advanced_search'];
|
||||||
}
|
}
|
||||||
if ($do_email && $GLOBALS['egw_info']['etemplate']['loop'] && is_object($GLOBALS['egw']->js))
|
if ($do_email && $GLOBALS['egw_info']['etemplate']['loop'] && is_object($GLOBALS['egw']->js))
|
||||||
{ // remove previous addEmail() calls, otherwise they will be run again
|
{ // remove previous addEmail() calls, otherwise they will be run again
|
||||||
$GLOBALS['egw']->js->body['onLoad'] = preg_replace('/addEmail\([^)]+\);/','',$GLOBALS['egw']->js->body['onLoad']);
|
$GLOBALS['egw']->js->body['onLoad'] = preg_replace('/addEmail\([^)]+\);/','',$GLOBALS['egw']->js->body['onLoad']);
|
||||||
}
|
}
|
||||||
@ -793,7 +793,7 @@ class uicontacts extends bocontacts
|
|||||||
{
|
{
|
||||||
$query['searchletter'] = ''; // reset lettersearch if viewing the contacts of one organisation
|
$query['searchletter'] = ''; // reset lettersearch if viewing the contacts of one organisation
|
||||||
}
|
}
|
||||||
if ($query['sitemgr_display'])
|
if ($query['sitemgr_display'])
|
||||||
{
|
{
|
||||||
$old_state = $GLOBALS['egw']->session->appsession($query['sitemgr_display'],'addressbook',$query);
|
$old_state = $GLOBALS['egw']->session->appsession($query['sitemgr_display'],'addressbook',$query);
|
||||||
} else {
|
} else {
|
||||||
@ -854,7 +854,7 @@ class uicontacts extends bocontacts
|
|||||||
}
|
}
|
||||||
// enable/disable distribution lists depending on backend
|
// enable/disable distribution lists depending on backend
|
||||||
$query['no_filter2'] = !$this->lists_available($query['filter']);
|
$query['no_filter2'] = !$this->lists_available($query['filter']);
|
||||||
|
|
||||||
if (isset($this->org_views[(string) $query['org_view']])) // we have an org view
|
if (isset($this->org_views[(string) $query['org_view']])) // we have an org view
|
||||||
{
|
{
|
||||||
unset($query['col_filter']['list']); // does not work together
|
unset($query['col_filter']['list']); // does not work together
|
||||||
@ -868,7 +868,7 @@ class uicontacts extends bocontacts
|
|||||||
$query['order'] = 'org_name';
|
$query['order'] = 'org_name';
|
||||||
}
|
}
|
||||||
$rows = parent::organisations($query);
|
$rows = parent::organisations($query);
|
||||||
|
|
||||||
$GLOBALS['egw_info']['flags']['params']['manual'] = array('page' => 'ManualAddressbookIndexOrga');
|
$GLOBALS['egw_info']['flags']['params']['manual'] = array('page' => 'ManualAddressbookIndexOrga');
|
||||||
}
|
}
|
||||||
else // contacts view
|
else // contacts view
|
||||||
@ -938,7 +938,7 @@ class uicontacts extends bocontacts
|
|||||||
// do we need to read the custom fields, depends on the column is enabled and customfields exist
|
// do we need to read the custom fields, depends on the column is enabled and customfields exist
|
||||||
$columselection = $this->prefs['nextmatch-addressbook.'.($do_email ? 'email' : 'index').'.rows'];
|
$columselection = $this->prefs['nextmatch-addressbook.'.($do_email ? 'email' : 'index').'.rows'];
|
||||||
$available_distib_lists=$this->get_lists(EGW_ACL_EDIT);
|
$available_distib_lists=$this->get_lists(EGW_ACL_EDIT);
|
||||||
if ($columselection) $columselection = explode(',',$columselection);
|
$columselection = $columselection ? explode(',',$columselection) : array();
|
||||||
if (!$id_only && $rows)
|
if (!$id_only && $rows)
|
||||||
{
|
{
|
||||||
$show_custom_fields = (!$columselection || in_array('customfields',$columselection)) && $this->customfields;
|
$show_custom_fields = (!$columselection || in_array('customfields',$columselection)) && $this->customfields;
|
||||||
@ -959,7 +959,7 @@ class uicontacts extends bocontacts
|
|||||||
$customfields = $this->read_customfields($ids,$selected_cfs);
|
$customfields = $this->read_customfields($ids,$selected_cfs);
|
||||||
}
|
}
|
||||||
if ($show_calendar) $calendar = $this->read_calendar($ids);
|
if ($show_calendar) $calendar = $this->read_calendar($ids);
|
||||||
// distributionlist memership for the entrys
|
// distributionlist memership for the entrys
|
||||||
//_debug_array($this->get_lists(EGW_ACL_EDIT));
|
//_debug_array($this->get_lists(EGW_ACL_EDIT));
|
||||||
if ($show_distributionlist && $available_distib_lists)
|
if ($show_distributionlist && $available_distib_lists)
|
||||||
{
|
{
|
||||||
@ -979,13 +979,13 @@ class uicontacts extends bocontacts
|
|||||||
return $this->total; // no need to set other fields or $readonlys
|
return $this->total; // no need to set other fields or $readonlys
|
||||||
}
|
}
|
||||||
$order = $query['order'];
|
$order = $query['order'];
|
||||||
|
|
||||||
$readonlys = array();
|
$readonlys = array();
|
||||||
$photos = $homeaddress = false;
|
$photos = $homeaddress = false;
|
||||||
foreach($rows as $n => $val)
|
foreach($rows as $n => $val)
|
||||||
{
|
{
|
||||||
$row =& $rows[$n];
|
$row =& $rows[$n];
|
||||||
|
|
||||||
$given = $row['n_given'] ? $row['n_given'] : ($row['n_prefix'] ? $row['n_prefix'] : '');
|
$given = $row['n_given'] ? $row['n_given'] : ($row['n_prefix'] ? $row['n_prefix'] : '');
|
||||||
|
|
||||||
switch($order)
|
switch($order)
|
||||||
@ -1012,14 +1012,14 @@ class uicontacts extends bocontacts
|
|||||||
{
|
{
|
||||||
$row['type'] = 'home';
|
$row['type'] = 'home';
|
||||||
$row['type_label'] = lang('Organisation');
|
$row['type_label'] = lang('Organisation');
|
||||||
|
|
||||||
$readonlys["delete[$row[id]]"] = $query['filter'] && !($this->grants[(int)$query['filter']] & EGW_ACL_DELETE);
|
$readonlys["delete[$row[id]]"] = $query['filter'] && !($this->grants[(int)$query['filter']] & EGW_ACL_DELETE);
|
||||||
$readonlys["infolog[$row[id]]"] = !$GLOBALS['egw_info']['user']['apps']['infolog'];
|
$readonlys["infolog[$row[id]]"] = !$GLOBALS['egw_info']['user']['apps']['infolog'];
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$this->type_icon($row['owner'],$row['private'],$row['tid'],$row['type'],$row['type_label']);
|
$this->type_icon($row['owner'],$row['private'],$row['tid'],$row['type'],$row['type_label']);
|
||||||
|
|
||||||
static $tel2show = array('tel_work','tel_cell','tel_home');
|
static $tel2show = array('tel_work','tel_cell','tel_home');
|
||||||
foreach($tel2show as $name)
|
foreach($tel2show as $name)
|
||||||
{
|
{
|
||||||
@ -1049,9 +1049,9 @@ class uicontacts extends bocontacts
|
|||||||
}
|
}
|
||||||
$readonlys["delete[$row[id]]"] = !$this->check_perms(EGW_ACL_DELETE,$row);
|
$readonlys["delete[$row[id]]"] = !$this->check_perms(EGW_ACL_DELETE,$row);
|
||||||
$readonlys["edit[$row[id]]"] = !$this->check_perms(EGW_ACL_EDIT,$row);
|
$readonlys["edit[$row[id]]"] = !$this->check_perms(EGW_ACL_EDIT,$row);
|
||||||
|
|
||||||
if ($row['photo']) $photos = true;
|
if ($row['photo']) $photos = true;
|
||||||
|
|
||||||
if (isset($customfields[$row['id']]))
|
if (isset($customfields[$row['id']]))
|
||||||
{
|
{
|
||||||
foreach($this->customfields as $name => $data)
|
foreach($this->customfields as $name => $data)
|
||||||
@ -1103,13 +1103,13 @@ class uicontacts extends bocontacts
|
|||||||
$rows['order'] = $order;
|
$rows['order'] = $order;
|
||||||
$rows['call_popup'] = $this->config['call_popup'];
|
$rows['call_popup'] = $this->config['call_popup'];
|
||||||
$rows['customfields'] = array_values($this->customfields);
|
$rows['customfields'] = array_values($this->customfields);
|
||||||
|
|
||||||
// full app-header with all search criteria specially for the print
|
// full app-header with all search criteria specially for the print
|
||||||
$GLOBALS['egw_info']['flags']['app_header'] = lang('addressbook');
|
$GLOBALS['egw_info']['flags']['app_header'] = lang('addressbook');
|
||||||
if ($query['filter'] !== '' && !isset($this->org_views[$query['org_view']]))
|
if ($query['filter'] !== '' && !isset($this->org_views[$query['org_view']]))
|
||||||
{
|
{
|
||||||
$GLOBALS['egw_info']['flags']['app_header'] .= ' '.($query['filter'] == '0' ? lang('accounts') :
|
$GLOBALS['egw_info']['flags']['app_header'] .= ' '.($query['filter'] == '0' ? lang('accounts') :
|
||||||
($GLOBALS['egw']->accounts->get_type($query['filter']) == 'g' ?
|
($GLOBALS['egw']->accounts->get_type($query['filter']) == 'g' ?
|
||||||
lang('Group %1',$GLOBALS['egw']->accounts->id2name($query['filter'])) :
|
lang('Group %1',$GLOBALS['egw']->accounts->id2name($query['filter'])) :
|
||||||
$GLOBALS['egw']->common->grab_owner_name((int)$query['filter']).
|
$GLOBALS['egw']->common->grab_owner_name((int)$query['filter']).
|
||||||
(substr($query['filter'],-1) == 'p' ? ' ('.lang('private').')' : '')));
|
(substr($query['filter'],-1) == 'p' ? ' ('.lang('private').')' : '')));
|
||||||
@ -1118,7 +1118,7 @@ class uicontacts extends bocontacts
|
|||||||
{
|
{
|
||||||
$GLOBALS['egw_info']['flags']['app_header'] .= ': '.$query['org_view_label'];
|
$GLOBALS['egw_info']['flags']['app_header'] .= ': '.$query['org_view_label'];
|
||||||
}
|
}
|
||||||
if($query['advanced_search'])
|
if($query['advanced_search'])
|
||||||
{
|
{
|
||||||
$GLOBALS['egw_info']['flags']['app_header'] .= ': '.lang('Advanced search');
|
$GLOBALS['egw_info']['flags']['app_header'] .= ': '.lang('Advanced search');
|
||||||
}
|
}
|
||||||
@ -1142,7 +1142,7 @@ class uicontacts extends bocontacts
|
|||||||
* Get addressbook type icon from owner, private and tid
|
* Get addressbook type icon from owner, private and tid
|
||||||
*
|
*
|
||||||
* @param int $owner user- or group-id or 0 for accounts
|
* @param int $owner user- or group-id or 0 for accounts
|
||||||
* @param boolean $private
|
* @param boolean $private
|
||||||
* @param string $tid 'n' for regular addressbook
|
* @param string $tid 'n' for regular addressbook
|
||||||
* @param string &$icon icon-name
|
* @param string &$icon icon-name
|
||||||
* @param string &$label translated label
|
* @param string &$label translated label
|
||||||
@ -1174,7 +1174,7 @@ class uicontacts extends bocontacts
|
|||||||
{
|
{
|
||||||
$icon = 'personal';
|
$icon = 'personal';
|
||||||
$label = $owner == $this->user ? lang('personal') : $GLOBALS['egw']->common->grab_owner_name($owner);
|
$label = $owner == $this->user ? lang('personal') : $GLOBALS['egw']->common->grab_owner_name($owner);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1183,7 +1183,7 @@ class uicontacts extends bocontacts
|
|||||||
* @param int $required=EGW_ACL_READ required rights on the addressbook
|
* @param int $required=EGW_ACL_READ required rights on the addressbook
|
||||||
* @param string $extra_label first label if given (already translated)
|
* @param string $extra_label first label if given (already translated)
|
||||||
* @return array with owner => label pairs
|
* @return array with owner => label pairs
|
||||||
*/
|
*/
|
||||||
function get_addressbooks($required=EGW_ACL_READ,$extra_label=null)
|
function get_addressbooks($required=EGW_ACL_READ,$extra_label=null)
|
||||||
{
|
{
|
||||||
//echo "uicontacts::get_addressbooks($required,$include_all) grants="; _debug_array($this->grants);
|
//echo "uicontacts::get_addressbooks($required,$include_all) grants="; _debug_array($this->grants);
|
||||||
@ -1220,7 +1220,7 @@ class uicontacts extends bocontacts
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Edit a contact
|
* Edit a contact
|
||||||
*
|
*
|
||||||
* @param array $content=null submitted content
|
* @param array $content=null submitted content
|
||||||
* @param int $_GET['contact_id'] contact_id manly for popup use
|
* @param int $_GET['contact_id'] contact_id manly for popup use
|
||||||
@ -1240,7 +1240,7 @@ class uicontacts extends bocontacts
|
|||||||
case 'save':
|
case 'save':
|
||||||
case 'apply':
|
case 'apply':
|
||||||
if ($content['delete_photo']) $content['jpegphoto'] = null;
|
if ($content['delete_photo']) $content['jpegphoto'] = null;
|
||||||
if (is_array($content['upload_photo']) && !empty($content['upload_photo']['tmp_name']) &&
|
if (is_array($content['upload_photo']) && !empty($content['upload_photo']['tmp_name']) &&
|
||||||
$content['upload_photo']['tmp_name'] != 'none')
|
$content['upload_photo']['tmp_name'] != 'none')
|
||||||
{
|
{
|
||||||
$content['jpegphoto'] = $this->resize_photo($content['upload_photo']);
|
$content['jpegphoto'] = $this->resize_photo($content['upload_photo']);
|
||||||
@ -1280,7 +1280,7 @@ class uicontacts extends bocontacts
|
|||||||
$button = 'apply'; // to not leave the dialog
|
$button = 'apply'; // to not leave the dialog
|
||||||
}
|
}
|
||||||
// writing links for new entry, existing ones are handled by the widget itself
|
// writing links for new entry, existing ones are handled by the widget itself
|
||||||
if ($links && $content['id'])
|
if ($links && $content['id'])
|
||||||
{
|
{
|
||||||
egw_link::link('addressbook',$content['id'],$links);
|
egw_link::link('addressbook',$content['id'],$links);
|
||||||
}
|
}
|
||||||
@ -1303,7 +1303,7 @@ class uicontacts extends bocontacts
|
|||||||
var referer = opener.location;
|
var referer = opener.location;
|
||||||
opener.location.href = referer+(referer.search?'&':'?')+'msg=".addslashes(urlencode($content['msg']))."';</script>";
|
opener.location.href = referer+(referer.search?'&':'?')+'msg=".addslashes(urlencode($content['msg']))."';</script>";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'delete':
|
case 'delete':
|
||||||
if($this->action('delete',array($content['id'])))
|
if($this->action('delete',array($content['id'])))
|
||||||
{
|
{
|
||||||
@ -1343,7 +1343,7 @@ class uicontacts extends bocontacts
|
|||||||
}
|
}
|
||||||
elseif ($GLOBALS['egw_info']['user']['preferences']['common']['country'])
|
elseif ($GLOBALS['egw_info']['user']['preferences']['common']['country'])
|
||||||
{
|
{
|
||||||
$content['adr_one_countryname'] =
|
$content['adr_one_countryname'] =
|
||||||
$GLOBALS['egw']->country->get_full_name($GLOBALS['egw_info']['user']['preferences']['common']['country']);
|
$GLOBALS['egw']->country->get_full_name($GLOBALS['egw_info']['user']['preferences']['common']['country']);
|
||||||
}
|
}
|
||||||
if (isset($_GET['owner']) && $_GET['owner'] !== '')
|
if (isset($_GET['owner']) && $_GET['owner'] !== '')
|
||||||
@ -1417,7 +1417,7 @@ class uicontacts extends bocontacts
|
|||||||
// how to display addresses
|
// how to display addresses
|
||||||
$content['addr_format'] = $this->addr_format_by_country($content['adr_one_countryname']);
|
$content['addr_format'] = $this->addr_format_by_country($content['adr_one_countryname']);
|
||||||
$content['addr_format2'] = $this->addr_format_by_country($content['adr_two_countryname']);
|
$content['addr_format2'] = $this->addr_format_by_country($content['adr_two_countryname']);
|
||||||
|
|
||||||
$content['disable_change_org'] = $view || !$content['org_name'];
|
$content['disable_change_org'] = $view || !$content['org_name'];
|
||||||
//_debug_array($content);
|
//_debug_array($content);
|
||||||
$readonlys['button[delete]'] = !$content['owner'] || !$this->check_perms(EGW_ACL_DELETE,$content);
|
$readonlys['button[delete]'] = !$content['owner'] || !$this->check_perms(EGW_ACL_DELETE,$content);
|
||||||
@ -1447,7 +1447,7 @@ class uicontacts extends bocontacts
|
|||||||
$readonlys[$this->tabs]['distribution_list'] = !$content['distrib_lists'];#false;
|
$readonlys[$this->tabs]['distribution_list'] = !$content['distrib_lists'];#false;
|
||||||
$readonlys['button[delete]'] = !$content['id'];
|
$readonlys['button[delete]'] = !$content['id'];
|
||||||
if ($this->config['private_cf_tab']) $content['no_private_cfs'] = 0;
|
if ($this->config['private_cf_tab']) $content['no_private_cfs'] = 0;
|
||||||
|
|
||||||
// for editing the own account (by a non-admin), enable only the fields allowed via the "own_account_acl"
|
// for editing the own account (by a non-admin), enable only the fields allowed via the "own_account_acl"
|
||||||
if (!$content['owner'] && !$this->is_admin($content))
|
if (!$content['owner'] && !$this->is_admin($content))
|
||||||
{
|
{
|
||||||
@ -1478,7 +1478,7 @@ class uicontacts extends bocontacts
|
|||||||
if ($content['private']) $content['owner'] .= 'p';
|
if ($content['private']) $content['owner'] .= 'p';
|
||||||
|
|
||||||
$GLOBALS['egw_info']['flags']['include_xajax'] = true;
|
$GLOBALS['egw_info']['flags']['include_xajax'] = true;
|
||||||
|
|
||||||
if (!$this->tmpl->read($this->content_types[$content['tid']]['options']['template']))
|
if (!$this->tmpl->read($this->content_types[$content['tid']]['options']['template']))
|
||||||
{
|
{
|
||||||
$content['msg'] = lang('WARNING: Template "%1" not found, using default template instead.', $this->content_types[$content['tid']]['options']['template'])."\n";
|
$content['msg'] = lang('WARNING: Template "%1" not found, using default template instead.', $this->content_types[$content['tid']]['options']['template'])."\n";
|
||||||
@ -1487,7 +1487,7 @@ class uicontacts extends bocontacts
|
|||||||
}
|
}
|
||||||
return $this->tmpl->exec('addressbook.uicontacts.edit',$content,$sel_options,$readonlys,$content, 2);
|
return $this->tmpl->exec('addressbook.uicontacts.edit',$content,$sel_options,$readonlys,$content, 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the readonlys for non-admins editing their own account
|
* Set the readonlys for non-admins editing their own account
|
||||||
*
|
*
|
||||||
@ -1504,9 +1504,9 @@ class uicontacts extends bocontacts
|
|||||||
$readonlys[$field] = true;
|
$readonlys[$field] = true;
|
||||||
switch($field)
|
switch($field)
|
||||||
{
|
{
|
||||||
case 'tel_work':
|
case 'tel_work':
|
||||||
case 'tel_cell':
|
case 'tel_cell':
|
||||||
case 'tel_home':
|
case 'tel_home':
|
||||||
$readonlys[$field.'2'] = true;
|
$readonlys[$field.'2'] = true;
|
||||||
break;
|
break;
|
||||||
case 'n_fileas':
|
case 'n_fileas':
|
||||||
@ -1532,7 +1532,7 @@ class uicontacts extends bocontacts
|
|||||||
$readonlys['link_to'] = true;
|
$readonlys['link_to'] = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function ajax_setFileasOptions($n_prefix,$n_given,$n_middle,$n_family,$n_suffix,$org_name)
|
function ajax_setFileasOptions($n_prefix,$n_given,$n_middle,$n_family,$n_suffix,$org_name)
|
||||||
{
|
{
|
||||||
$names = array(
|
$names = array(
|
||||||
@ -1548,7 +1548,7 @@ class uicontacts extends bocontacts
|
|||||||
|
|
||||||
return $response->getXML();
|
return $response->getXML();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* resizes the uploaded photo to 60*80 pixel and returns it
|
* resizes the uploaded photo to 60*80 pixel and returns it
|
||||||
*
|
*
|
||||||
@ -1576,7 +1576,7 @@ class uicontacts extends bocontacts
|
|||||||
if (!$upload) return null;
|
if (!$upload) return null;
|
||||||
|
|
||||||
list($src_w,$src_h) = getimagesize($file['tmp_name']);
|
list($src_w,$src_h) = getimagesize($file['tmp_name']);
|
||||||
|
|
||||||
// scale the image to a width of 60 and a height according to the proportion of the source image
|
// scale the image to a width of 60 and a height according to the proportion of the source image
|
||||||
$photo = imagecreatetruecolor($dst_w = 60,$dst_h = round($src_h * 60 / $src_w));
|
$photo = imagecreatetruecolor($dst_w = 60,$dst_h = round($src_h * 60 / $src_w));
|
||||||
imagecopyresized($photo,$upload,0,0,0,0,$dst_w,$dst_h,$src_w,$src_h);
|
imagecopyresized($photo,$upload,0,0,0,0,$dst_w,$dst_h,$src_w,$src_h);
|
||||||
@ -1589,10 +1589,10 @@ class uicontacts extends bocontacts
|
|||||||
|
|
||||||
imagedestroy($photo);
|
imagedestroy($photo);
|
||||||
imagedestroy($upload);
|
imagedestroy($upload);
|
||||||
|
|
||||||
return $jpeg;
|
return $jpeg;
|
||||||
}
|
}
|
||||||
|
|
||||||
function view($content=null)
|
function view($content=null)
|
||||||
{
|
{
|
||||||
if(is_array($content))
|
if(is_array($content))
|
||||||
@ -1630,7 +1630,7 @@ class uicontacts extends bocontacts
|
|||||||
{
|
{
|
||||||
$readonlys[$key.'2'] = true;
|
$readonlys[$key.'2'] = true;
|
||||||
$content[$key.'2'] = $content[$key];
|
$content[$key.'2'] = $content[$key];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$content['view'] = true;
|
$content['view'] = true;
|
||||||
$content['link_to'] = array(
|
$content['link_to'] = array(
|
||||||
@ -1648,7 +1648,7 @@ $readonlys['button[vcard]'] = true;
|
|||||||
// how to display addresses
|
// how to display addresses
|
||||||
$content['addr_format'] = $this->addr_format_by_country($content['adr_one_countryname']);
|
$content['addr_format'] = $this->addr_format_by_country($content['adr_one_countryname']);
|
||||||
$content['addr_format2'] = $this->addr_format_by_country($content['adr_two_countryname']);
|
$content['addr_format2'] = $this->addr_format_by_country($content['adr_two_countryname']);
|
||||||
|
|
||||||
$sel_options['fileas_type'][$content['fileas_type']] = $this->fileas($content);
|
$sel_options['fileas_type'][$content['fileas_type']] = $this->fileas($content);
|
||||||
$sel_options['owner'] = $this->get_addressbooks();
|
$sel_options['owner'] = $this->get_addressbooks();
|
||||||
for($i = -23; $i<=23; $i++) $tz[$i] = ($i > 0 ? '+' : '').$i;
|
for($i = -23; $i<=23; $i++) $tz[$i] = ($i > 0 ? '+' : '').$i;
|
||||||
@ -1701,7 +1701,7 @@ $readonlys['button[vcard]'] = true;
|
|||||||
$readonlys[$this->tabs]['custom_private'] = !$this->customfields || !$this->config['private_cf_tab'];
|
$readonlys[$this->tabs]['custom_private'] = !$this->customfields || !$this->config['private_cf_tab'];
|
||||||
$readonlys[$this->tabs]['distribution_list'] = !$content['distrib_lists'];#false;
|
$readonlys[$this->tabs]['distribution_list'] = !$content['distrib_lists'];#false;
|
||||||
if ($this->config['private_cf_tab']) $content['no_private_cfs'] = 0;
|
if ($this->config['private_cf_tab']) $content['no_private_cfs'] = 0;
|
||||||
|
|
||||||
// last and next calendar date
|
// last and next calendar date
|
||||||
list(,$dates) = each($this->read_calendar(array($content['id']),false));
|
list(,$dates) = each($this->read_calendar(array($content['id']),false));
|
||||||
if(is_array($dates)) $content += $dates;
|
if(is_array($dates)) $content += $dates;
|
||||||
@ -1716,7 +1716,7 @@ $readonlys['button[vcard]'] = true;
|
|||||||
'ab_id' => $content['id']
|
'ab_id' => $content['id']
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* convert email-address in compose link
|
* convert email-address in compose link
|
||||||
*
|
*
|
||||||
@ -1754,11 +1754,11 @@ $readonlys['button[vcard]'] = true;
|
|||||||
{
|
{
|
||||||
if(!empty($_content)) {
|
if(!empty($_content)) {
|
||||||
$response = new xajaxResponse();
|
$response = new xajaxResponse();
|
||||||
|
|
||||||
$query = $GLOBALS['egw']->session->appsession($do_email ? 'email' : 'index','addressbook');
|
$query = $GLOBALS['egw']->session->appsession($do_email ? 'email' : 'index','addressbook');
|
||||||
|
|
||||||
$query['advanced_search'] = array_intersect_key($_content,array_flip(array_merge($this->get_contact_columns(),array('operator','meth_select'))));
|
$query['advanced_search'] = array_intersect_key($_content,array_flip(array_merge($this->get_contact_columns(),array('operator','meth_select'))));
|
||||||
foreach ($query['advanced_search'] as $key => $value)
|
foreach ($query['advanced_search'] as $key => $value)
|
||||||
{
|
{
|
||||||
if(!$value) unset($query['advanced_search'][$key]);
|
if(!$value) unset($query['advanced_search'][$key]);
|
||||||
}
|
}
|
||||||
@ -1769,7 +1769,7 @@ $readonlys['button[vcard]'] = true;
|
|||||||
|
|
||||||
// store the advanced search in the session to call it again
|
// store the advanced search in the session to call it again
|
||||||
$GLOBALS['egw']->session->appsession('advanced_search','addressbook',$query['advanced_search']);
|
$GLOBALS['egw']->session->appsession('advanced_search','addressbook',$query['advanced_search']);
|
||||||
|
|
||||||
$response->addScript("
|
$response->addScript("
|
||||||
var link = opener.location.href;
|
var link = opener.location.href;
|
||||||
link = link.replace(/#/,'');
|
link = link.replace(/#/,'');
|
||||||
@ -1779,21 +1779,21 @@ $readonlys['button[vcard]'] = true;
|
|||||||
return $response->getXML();
|
return $response->getXML();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
||||||
}
|
}
|
||||||
$GLOBALS['egw_info']['flags']['include_xajax'] = true;
|
$GLOBALS['egw_info']['flags']['include_xajax'] = true;
|
||||||
$GLOBALS['egw_info']['flags']['java_script'] .= "<script>window.focus()</script>";
|
$GLOBALS['egw_info']['flags']['java_script'] .= "<script>window.focus()</script>";
|
||||||
$GLOBALS['egw_info']['etemplate']['advanced_search'] = true;
|
$GLOBALS['egw_info']['etemplate']['advanced_search'] = true;
|
||||||
|
|
||||||
// initialize etemplate arrays
|
// initialize etemplate arrays
|
||||||
$sel_options = $readonlys = $preserv = array();
|
$sel_options = $readonlys = $preserv = array();
|
||||||
$content = $GLOBALS['egw']->session->appsession('advanced_search','addressbook');
|
$content = $GLOBALS['egw']->session->appsession('advanced_search','addressbook');
|
||||||
|
|
||||||
for($i = -23; $i<=23; $i++) $tz[$i] = ($i > 0 ? '+' : '').$i;
|
for($i = -23; $i<=23; $i++) $tz[$i] = ($i > 0 ? '+' : '').$i;
|
||||||
$sel_options['tz'] = $tz + array('' => lang('doesn\'t matter'));
|
$sel_options['tz'] = $tz + array('' => lang('doesn\'t matter'));
|
||||||
$sel_options['tid'][] = lang('all');
|
$sel_options['tid'][] = lang('all');
|
||||||
//foreach($this->content_types as $type => $data) $sel_options['tid'][$type] = $data['name'];
|
//foreach($this->content_types as $type => $data) $sel_options['tid'][$type] = $data['name'];
|
||||||
|
|
||||||
// configure search options
|
// configure search options
|
||||||
$sel_options['owner'] = $this->get_addressbooks(EGW_ACL_READ,lang('all'));
|
$sel_options['owner'] = $this->get_addressbooks(EGW_ACL_READ,lang('all'));
|
||||||
$sel_options['operator'] = array(
|
$sel_options['operator'] = array(
|
||||||
@ -1822,7 +1822,7 @@ $readonlys['button[vcard]'] = true;
|
|||||||
$readonlys['button'] = true;
|
$readonlys['button'] = true;
|
||||||
// disable not needed tabs
|
// disable not needed tabs
|
||||||
$readonlys[$this->tabs]['cats'] = !($content['cat_tab'] = $this->config['cat_tab']);
|
$readonlys[$this->tabs]['cats'] = !($content['cat_tab'] = $this->config['cat_tab']);
|
||||||
$readonlys[$this->tabs]['custom'] = !$this->customfields;
|
$readonlys[$this->tabs]['custom'] = !$this->customfields;
|
||||||
$readonlys[$this->tabs]['custom_private'] = !$this->customfields || !$this->config['private_cf_tab'];
|
$readonlys[$this->tabs]['custom_private'] = !$this->customfields || !$this->config['private_cf_tab'];
|
||||||
$readonlys[$this->tabs]['links'] = true;
|
$readonlys[$this->tabs]['links'] = true;
|
||||||
$readonlys[$this->tabs]['distribution_list'] = true;
|
$readonlys[$this->tabs]['distribution_list'] = true;
|
||||||
@ -1840,9 +1840,9 @@ $readonlys['button[vcard]'] = true;
|
|||||||
function photo()
|
function photo()
|
||||||
{
|
{
|
||||||
ob_start();
|
ob_start();
|
||||||
$contact_id = isset($_GET['contact_id']) ? $_GET['contact_id'] :
|
$contact_id = isset($_GET['contact_id']) ? $_GET['contact_id'] :
|
||||||
(isset($_GET['account_id']) ? 'account:'.$_GET['account_id'] : 0);
|
(isset($_GET['account_id']) ? 'account:'.$_GET['account_id'] : 0);
|
||||||
|
|
||||||
if (substr($contact_id,0,8) == 'account:')
|
if (substr($contact_id,0,8) == 'account:')
|
||||||
{
|
{
|
||||||
$contact_id = $GLOBALS['egw']->accounts->id2name(substr($contact_id,8),'person_id');
|
$contact_id = $GLOBALS['egw']->accounts->id2name(substr($contact_id,8),'person_id');
|
||||||
@ -1859,10 +1859,10 @@ $readonlys['button[vcard]'] = true;
|
|||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* returns link to call the given phonenumber
|
* returns link to call the given phonenumber
|
||||||
*
|
*
|
||||||
* replaces '%1' with the phonenumber to call, '%u' with the user's account_lid and '%t' with his work-phone-number
|
* replaces '%1' with the phonenumber to call, '%u' with the user's account_lid and '%t' with his work-phone-number
|
||||||
*
|
*
|
||||||
* @param string $number phone number
|
* @param string $number phone number
|
||||||
@ -1888,8 +1888,8 @@ $readonlys['button[vcard]'] = true;
|
|||||||
function js()
|
function js()
|
||||||
{
|
{
|
||||||
return '<script LANGUAGE="JavaScript">
|
return '<script LANGUAGE="JavaScript">
|
||||||
|
|
||||||
function showphones(form)
|
function showphones(form)
|
||||||
{
|
{
|
||||||
if (form) {
|
if (form) {
|
||||||
copyvalues(form,"tel_home","tel_home2");
|
copyvalues(form,"tel_home","tel_home2");
|
||||||
@ -1898,8 +1898,8 @@ $readonlys['button[vcard]'] = true;
|
|||||||
copyvalues(form,"tel_fax","tel_fax2");
|
copyvalues(form,"tel_fax","tel_fax2");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function hidephones(form)
|
function hidephones(form)
|
||||||
{
|
{
|
||||||
if (form) {
|
if (form) {
|
||||||
copyvalues(form,"tel_home2","tel_home");
|
copyvalues(form,"tel_home2","tel_home");
|
||||||
@ -1908,7 +1908,7 @@ $readonlys['button[vcard]'] = true;
|
|||||||
copyvalues(form,"tel_fax2","tel_fax");
|
copyvalues(form,"tel_fax2","tel_fax");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function copyvalues(form,src,dst){
|
function copyvalues(form,src,dst){
|
||||||
var srcelement = getElement(form,src); //ById("exec["+src+"]");
|
var srcelement = getElement(form,src); //ById("exec["+src+"]");
|
||||||
var dstelement = getElement(form,dst); //ById("exec["+dst+"]");
|
var dstelement = getElement(form,dst); //ById("exec["+dst+"]");
|
||||||
@ -1916,7 +1916,7 @@ $readonlys['button[vcard]'] = true;
|
|||||||
dstelement.value = srcelement.value;
|
dstelement.value = srcelement.value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function getElement(form,pattern){
|
function getElement(form,pattern){
|
||||||
for (i = 0; i < form.length; i++){
|
for (i = 0; i < form.length; i++){
|
||||||
if(form.elements[i].name){
|
if(form.elements[i].name){
|
||||||
@ -1927,7 +1927,7 @@ $readonlys['button[vcard]'] = true;
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function setName(input)
|
function setName(input)
|
||||||
{
|
{
|
||||||
var prefix = document.getElementById("exec[n_prefix]").value;
|
var prefix = document.getElementById("exec[n_prefix]").value;
|
||||||
@ -1936,9 +1936,9 @@ $readonlys['button[vcard]'] = true;
|
|||||||
var family = document.getElementById("exec[n_family]").value;
|
var family = document.getElementById("exec[n_family]").value;
|
||||||
var suffix = document.getElementById("exec[n_suffix]").value;
|
var suffix = document.getElementById("exec[n_suffix]").value;
|
||||||
var org = document.getElementById("exec[org_name]").value;
|
var org = document.getElementById("exec[org_name]").value;
|
||||||
|
|
||||||
var name = document.getElementById("exec[n_fn]");
|
var name = document.getElementById("exec[n_fn]");
|
||||||
|
|
||||||
name.value = "";
|
name.value = "";
|
||||||
if (prefix) name.value += prefix+" ";
|
if (prefix) name.value += prefix+" ";
|
||||||
if (given) name.value += given+" ";
|
if (given) name.value += given+" ";
|
||||||
@ -1948,10 +1948,10 @@ $readonlys['button[vcard]'] = true;
|
|||||||
|
|
||||||
xajax_doXMLHTTP("addressbook.uicontacts.ajax_setFileasOptions",prefix,given,middle,family,suffix,org);
|
xajax_doXMLHTTP("addressbook.uicontacts.ajax_setFileasOptions",prefix,given,middle,family,suffix,org);
|
||||||
}
|
}
|
||||||
|
|
||||||
function add_whole_list(list)
|
function add_whole_list(list)
|
||||||
{
|
{
|
||||||
if (document.getElementById("exec[nm][email_type][email_home]").checked == true)
|
if (document.getElementById("exec[nm][email_type][email_home]").checked == true)
|
||||||
{
|
{
|
||||||
email_type = "email_home";
|
email_type = "email_home";
|
||||||
}
|
}
|
||||||
@ -1961,7 +1961,7 @@ $readonlys['button[vcard]'] = true;
|
|||||||
}
|
}
|
||||||
xajax_doXMLHTTP("addressbook.uicontacts.ajax_add_whole_list",list,email_type);
|
xajax_doXMLHTTP("addressbook.uicontacts.ajax_add_whole_list",list,email_type);
|
||||||
}
|
}
|
||||||
|
|
||||||
function setOptions(options_str)
|
function setOptions(options_str)
|
||||||
{
|
{
|
||||||
var options = options_str.split("\\\\b");
|
var options = options_str.split("\\\\b");
|
||||||
@ -1972,20 +1972,20 @@ $readonlys['button[vcard]'] = true;
|
|||||||
selbox.options[i].text = options[i];
|
selbox.options[i].text = options[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function adb_get_selection(form)
|
function adb_get_selection(form)
|
||||||
{
|
{
|
||||||
var use_all = document.getElementById("exec[use_all]");
|
var use_all = document.getElementById("exec[use_all]");
|
||||||
var action = document.getElementById("exec[action]");
|
var action = document.getElementById("exec[action]");
|
||||||
egw_openWindowCentered(
|
egw_openWindowCentered(
|
||||||
"'. $GLOBALS['egw']->link('/index.php','menuaction=importexport.uiexport.export_dialog&appname=addressbook').
|
"'. $GLOBALS['egw']->link('/index.php','menuaction=importexport.uiexport.export_dialog&appname=addressbook').
|
||||||
'&selection="+( use_all.checked ? "use_all" : get_selected(form,"[rows][checked][]")),
|
'&selection="+( use_all.checked ? "use_all" : get_selected(form,"[rows][checked][]")),
|
||||||
"Export",400,400);
|
"Export",400,400);
|
||||||
action.value="";
|
action.value="";
|
||||||
use_all.checked = false;
|
use_all.checked = false;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
function add_new_list(owner)
|
function add_new_list(owner)
|
||||||
{
|
{
|
||||||
var name = window.prompt("'.lang('Name for the distribution list').'");
|
var name = window.prompt("'.lang('Name for the distribution list').'");
|
||||||
@ -1999,13 +1999,13 @@ $readonlys['button[vcard]'] = true;
|
|||||||
}
|
}
|
||||||
</script>';
|
</script>';
|
||||||
}
|
}
|
||||||
|
|
||||||
function migrate2ldap()
|
function migrate2ldap()
|
||||||
{
|
{
|
||||||
$GLOBALS['egw_info']['flags']['app_header'] = lang('Addressbook').' - '.lang('Migration to LDAP');
|
$GLOBALS['egw_info']['flags']['app_header'] = lang('Addressbook').' - '.lang('Migration to LDAP');
|
||||||
$GLOBALS['egw']->common->egw_header();
|
$GLOBALS['egw']->common->egw_header();
|
||||||
parse_navbar();
|
parse_navbar();
|
||||||
|
|
||||||
if (!$this->is_admin())
|
if (!$this->is_admin())
|
||||||
{
|
{
|
||||||
echo '<h1>'.lang('Permission denied !!!')."</h1>\n";
|
echo '<h1>'.lang('Permission denied !!!')."</h1>\n";
|
||||||
@ -2017,7 +2017,7 @@ $readonlys['button[vcard]'] = true;
|
|||||||
}
|
}
|
||||||
$GLOBALS['egw']->common->egw_footer();
|
$GLOBALS['egw']->common->egw_footer();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Download a document with inserted contact(s)
|
* Download a document with inserted contact(s)
|
||||||
*
|
*
|
||||||
@ -2044,7 +2044,7 @@ $readonlys['button[vcard]'] = true;
|
|||||||
|
|
||||||
return $document_merge->download($document,$ids);
|
return $document_merge->download($document,$ids);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returning document actions / files from the document_dir
|
* Returning document actions / files from the document_dir
|
||||||
*
|
*
|
||||||
@ -2062,7 +2062,7 @@ $readonlys['button[vcard]'] = true;
|
|||||||
foreach($files as $file)
|
foreach($files as $file)
|
||||||
{
|
{
|
||||||
// return only the mime-types we support
|
// return only the mime-types we support
|
||||||
if (!($file['mime'] == 'application/rtf' ||
|
if (!($file['mime'] == 'application/rtf' ||
|
||||||
$file['mime'] == 'application/msword' && !strcasecmp(substr($file['name'],-4),'.rtf') ||
|
$file['mime'] == 'application/msword' && !strcasecmp(substr($file['name'],-4),'.rtf') ||
|
||||||
substr($file['mime'],0,5) == 'text/')) continue;
|
substr($file['mime'],0,5) == 'text/')) continue;
|
||||||
// As browsers not always return the right mime_type, you could use a negative list instead
|
// As browsers not always return the right mime_type, you could use a negative list instead
|
||||||
@ -2075,7 +2075,7 @@ $readonlys['button[vcard]'] = true;
|
|||||||
}
|
}
|
||||||
return $actions;
|
return $actions;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Read the next and last event of given contacts
|
* Read the next and last event of given contacts
|
||||||
*
|
*
|
||||||
@ -2086,7 +2086,7 @@ $readonlys['button[vcard]'] = true;
|
|||||||
function read_calendar($ids,$extra_title=true)
|
function read_calendar($ids,$extra_title=true)
|
||||||
{
|
{
|
||||||
if (!$GLOBALS['egw_info']['user']['apps']['calendar']) return null;
|
if (!$GLOBALS['egw_info']['user']['apps']['calendar']) return null;
|
||||||
|
|
||||||
$uids = array();
|
$uids = array();
|
||||||
foreach($ids as $id)
|
foreach($ids as $id)
|
||||||
{
|
{
|
||||||
@ -2101,7 +2101,7 @@ $readonlys['button[vcard]'] = true;
|
|||||||
'enum_recuring' => true,
|
'enum_recuring' => true,
|
||||||
));
|
));
|
||||||
if (!$events) return array();
|
if (!$events) return array();
|
||||||
|
|
||||||
//_debug_array($events);
|
//_debug_array($events);
|
||||||
$calendars = array();
|
$calendars = array();
|
||||||
foreach($events as $event)
|
foreach($events as $event)
|
||||||
@ -2148,7 +2148,7 @@ $readonlys['button[vcard]'] = true;
|
|||||||
$link['title'] = date($GLOBALS['egw_info']['user']['preferences']['common']['dateformat'],$event['start']);
|
$link['title'] = date($GLOBALS['egw_info']['user']['preferences']['common']['dateformat'],$event['start']);
|
||||||
}
|
}
|
||||||
$calendars[$id]['next_link'] = $link;
|
$calendars[$id]['next_link'] = $link;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2166,7 +2166,7 @@ $readonlys['button[vcard]'] = true;
|
|||||||
{
|
{
|
||||||
if (is_array($content))
|
if (is_array($content))
|
||||||
{
|
{
|
||||||
if ($content['cat_id']) //add categorie
|
if ($content['cat_id']) //add categorie
|
||||||
{
|
{
|
||||||
if ($content['cat_add'])
|
if ($content['cat_add'])
|
||||||
{
|
{
|
||||||
@ -2182,7 +2182,7 @@ $readonlys['button[vcard]'] = true;
|
|||||||
echo "<html><head><script>$js window.close();</script></head><html>\n";
|
echo "<html><head><script>$js window.close();</script></head><html>\n";
|
||||||
$GLOBALS['egw']->common->egw_exit();
|
$GLOBALS['egw']->common->egw_exit();
|
||||||
}
|
}
|
||||||
$content['cat_tab'] = $this->config['cat_tab'];
|
$content['cat_tab'] = $this->config['cat_tab'];
|
||||||
|
|
||||||
$this->tmpl->read('addressbook.index.cat_add');
|
$this->tmpl->read('addressbook.index.cat_add');
|
||||||
return $this->tmpl->exec('addressbook.uicontacts.cat_add',$content,$sel_options,$readonlys,$content, 2);
|
return $this->tmpl->exec('addressbook.uicontacts.cat_add',$content,$sel_options,$readonlys,$content, 2);
|
||||||
|
Loading…
Reference in New Issue
Block a user