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>
|
||||
* @package addressbook
|
||||
* @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');
|
||||
@ -31,7 +31,7 @@ class uicontacts extends bocontacts
|
||||
);
|
||||
/**
|
||||
* use a separate private addressbook (former private flag), for contacts not shareable via regular read acl
|
||||
*
|
||||
*
|
||||
* @var boolean
|
||||
*/
|
||||
var $private_addressbook = false;
|
||||
@ -72,12 +72,12 @@ class uicontacts extends bocontacts
|
||||
}
|
||||
$this->config =& $GLOBALS['egw_info']['server'];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* List contacts of an addressbook
|
||||
*
|
||||
* @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
|
||||
*/
|
||||
function index($content=null,$msg=null,$do_email=false)
|
||||
@ -243,7 +243,7 @@ class uicontacts extends bocontacts
|
||||
}
|
||||
$sel_options['action'] += array(
|
||||
'delete' => lang('Delete'),
|
||||
'csv' => lang('Export as CSV'),
|
||||
'csv' => lang('Export as CSV'),
|
||||
'vcard' => lang('Export as VCard'), // ToDo: move this to importexport framework
|
||||
'merge' => lang('Merge into first or account, deletes all other!'),
|
||||
'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']['delete_list'] = lang('Delete selected distribution list!');
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
if ($this->prefs['document_dir'])
|
||||
{
|
||||
$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']);
|
||||
|
||||
|
||||
// dont show tid-selection if we have only one content_type
|
||||
if (count($this->content_types) <= 1)
|
||||
{
|
||||
@ -305,26 +305,26 @@ class uicontacts extends bocontacts
|
||||
foreach(explode('|||',$content['nm']['org_view']) as $part)
|
||||
{
|
||||
list(,$name) = explode(':',$part,2);
|
||||
if ($name) $org_name[] = $name;
|
||||
if ($name) $org_name[] = $name;
|
||||
}
|
||||
$org_name = implode(': ',$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']];
|
||||
|
||||
|
||||
$this->tmpl->read(/*$do_email ? 'addressbook.email' :*/ 'addressbook.index');
|
||||
return $this->tmpl->exec($do_email ? 'addressbook.uicontacts.emailpopup' : 'addressbook.uicontacts.index',
|
||||
$content,$sel_options,$readonlys,$preserv,$do_email ? 2 : 0);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Email address-selection popup
|
||||
*
|
||||
* @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)
|
||||
{
|
||||
{
|
||||
if (strpos($GLOBALS['egw_info']['flags']['java_script'],'addEmail') === false)
|
||||
{
|
||||
if ($_GET['compat']) // 1.2 felamimail or old email
|
||||
@ -342,11 +342,11 @@ class uicontacts extends bocontacts
|
||||
$GLOBALS['egw_info']['flags']['java_script'].= "
|
||||
<script>
|
||||
window.focus();
|
||||
|
||||
|
||||
function addEmail(email)
|
||||
{
|
||||
var to = 'to';
|
||||
if (document.getElementById('exec[nm][to][cc]').checked == true)
|
||||
if (document.getElementById('exec[nm][to][cc]').checked == true)
|
||||
{
|
||||
to = 'cc';
|
||||
}
|
||||
@ -364,7 +364,7 @@ class uicontacts extends bocontacts
|
||||
}
|
||||
return $this->index($content,$msg,true);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Show the infologs of an whole organisation
|
||||
*
|
||||
@ -399,7 +399,7 @@ class uicontacts extends bocontacts
|
||||
'action_title' => $org,
|
||||
));
|
||||
}
|
||||
|
||||
|
||||
function ajax_add_whole_list($list, $email_type = 'email')
|
||||
{
|
||||
$query = $GLOBALS['egw']->session->appsession('email','addressbook');
|
||||
@ -428,7 +428,7 @@ class uicontacts extends bocontacts
|
||||
}
|
||||
return $response->getXML();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 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)
|
||||
{
|
||||
//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;
|
||||
if ($use_all || in_array($action,array('remove_from_list','delete_list')))
|
||||
{
|
||||
// get the whole selection
|
||||
$query = is_array($session_name) ? $session_name : $GLOBALS['egw']->session->appsession($session_name,'addressbook');
|
||||
|
||||
|
||||
if ($use_all)
|
||||
{
|
||||
@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']);
|
||||
$this->get_rows($query,$extra,$readonlys,true); // true = only return the id's
|
||||
if ($extra[0]) $org_contacts = array_merge($org_contacts,$extra);
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($org_contacts) $checked = array_unique($checked ? array_merge($checked,$org_contacts) : $org_contacts);
|
||||
//_debug_array($checked); exit;
|
||||
|
||||
|
||||
if (substr($action,0,8) == 'move_to_')
|
||||
{
|
||||
$action = (int)substr($action,8);
|
||||
@ -494,7 +494,7 @@ class uicontacts extends bocontacts
|
||||
$action = 'document';
|
||||
}
|
||||
// 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'])
|
||||
{
|
||||
$action_msg = lang('exported');
|
||||
@ -532,8 +532,8 @@ class uicontacts extends bocontacts
|
||||
ExecMethod('addressbook.vcaladdressbook.export',$checked);
|
||||
// does not return!
|
||||
$Ok = false;
|
||||
break;
|
||||
|
||||
break;
|
||||
|
||||
case 'infolog':
|
||||
$GLOBALS['egw']->redirect_link('/index.php',array(
|
||||
'menuaction' => 'infolog.uiinfolog.index',
|
||||
@ -542,7 +542,7 @@ class uicontacts extends bocontacts
|
||||
'action_title' => count($checked) > 1 ? lang('selected contacts') : '',
|
||||
));
|
||||
break;
|
||||
|
||||
|
||||
case 'merge':
|
||||
$success = $this->merge($checked,$error_msg);
|
||||
$failed = count($checked) - (int)$success;
|
||||
@ -566,11 +566,11 @@ class uicontacts extends bocontacts
|
||||
$GLOBALS['egw']->session->appsession($session_name,'addressbook',$query);
|
||||
}
|
||||
return false;
|
||||
|
||||
|
||||
case 'document':
|
||||
$msg = $this->download_document($checked,$document);
|
||||
return false;
|
||||
|
||||
|
||||
case 'cat_add':
|
||||
foreach($checked as $id)
|
||||
{
|
||||
@ -582,7 +582,7 @@ class uicontacts extends bocontacts
|
||||
//categarie add
|
||||
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'))
|
||||
{
|
||||
@ -634,7 +634,7 @@ class uicontacts extends bocontacts
|
||||
$Ok = $this->delete($id);
|
||||
}
|
||||
// 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(
|
||||
'menuaction' => 'admin.uiaccounts.delete_user',
|
||||
@ -648,7 +648,7 @@ class uicontacts extends bocontacts
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case 'email':
|
||||
case 'email_home':
|
||||
$action == 'email' ? $action_fallback = 'email_home' : $action_fallback = 'email';
|
||||
@ -675,7 +675,7 @@ class uicontacts extends bocontacts
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case 'remove_from_list':
|
||||
$action_msg = lang('removed from distribution list');
|
||||
if (!$query['filter2'])
|
||||
@ -688,7 +688,7 @@ class uicontacts extends bocontacts
|
||||
$Ok = $this->remove_from_list($id,$query['filter2']) !== false;
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case 'to_list':
|
||||
$action_msg = lang('added to distribution list');
|
||||
if (!$to_list)
|
||||
@ -737,7 +737,7 @@ class uicontacts extends bocontacts
|
||||
/**
|
||||
* rows callback for index nextmatch
|
||||
*
|
||||
* @internal
|
||||
* @internal
|
||||
* @param array &$query
|
||||
* @param array &$rows returned rows/cups
|
||||
* @param array &$readonlys eg. to disable buttons based on acl
|
||||
@ -748,7 +748,7 @@ class uicontacts extends bocontacts
|
||||
{
|
||||
$do_email = $query['do_email'];
|
||||
// is this wanted???
|
||||
if ($query['sitemgr_display'])
|
||||
if ($query['sitemgr_display'])
|
||||
{
|
||||
$old_state = $GLOBALS['egw']->session->appsession($query['sitemgr_display'],'addressbook');
|
||||
} else {
|
||||
@ -770,7 +770,7 @@ class uicontacts extends bocontacts
|
||||
{
|
||||
$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
|
||||
$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
|
||||
}
|
||||
if ($query['sitemgr_display'])
|
||||
if ($query['sitemgr_display'])
|
||||
{
|
||||
$old_state = $GLOBALS['egw']->session->appsession($query['sitemgr_display'],'addressbook',$query);
|
||||
} else {
|
||||
@ -854,7 +854,7 @@ class uicontacts extends bocontacts
|
||||
}
|
||||
// enable/disable distribution lists depending on backend
|
||||
$query['no_filter2'] = !$this->lists_available($query['filter']);
|
||||
|
||||
|
||||
if (isset($this->org_views[(string) $query['org_view']])) // we have an org view
|
||||
{
|
||||
unset($query['col_filter']['list']); // does not work together
|
||||
@ -868,7 +868,7 @@ class uicontacts extends bocontacts
|
||||
$query['order'] = 'org_name';
|
||||
}
|
||||
$rows = parent::organisations($query);
|
||||
|
||||
|
||||
$GLOBALS['egw_info']['flags']['params']['manual'] = array('page' => 'ManualAddressbookIndexOrga');
|
||||
}
|
||||
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
|
||||
$columselection = $this->prefs['nextmatch-addressbook.'.($do_email ? 'email' : 'index').'.rows'];
|
||||
$available_distib_lists=$this->get_lists(EGW_ACL_EDIT);
|
||||
if ($columselection) $columselection = explode(',',$columselection);
|
||||
$columselection = $columselection ? explode(',',$columselection) : array();
|
||||
if (!$id_only && $rows)
|
||||
{
|
||||
$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);
|
||||
}
|
||||
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));
|
||||
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
|
||||
}
|
||||
$order = $query['order'];
|
||||
|
||||
|
||||
$readonlys = array();
|
||||
$photos = $homeaddress = false;
|
||||
foreach($rows as $n => $val)
|
||||
{
|
||||
$row =& $rows[$n];
|
||||
|
||||
|
||||
$given = $row['n_given'] ? $row['n_given'] : ($row['n_prefix'] ? $row['n_prefix'] : '');
|
||||
|
||||
switch($order)
|
||||
@ -1012,14 +1012,14 @@ class uicontacts extends bocontacts
|
||||
{
|
||||
$row['type'] = 'home';
|
||||
$row['type_label'] = lang('Organisation');
|
||||
|
||||
|
||||
$readonlys["delete[$row[id]]"] = $query['filter'] && !($this->grants[(int)$query['filter']] & EGW_ACL_DELETE);
|
||||
$readonlys["infolog[$row[id]]"] = !$GLOBALS['egw_info']['user']['apps']['infolog'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->type_icon($row['owner'],$row['private'],$row['tid'],$row['type'],$row['type_label']);
|
||||
|
||||
|
||||
static $tel2show = array('tel_work','tel_cell','tel_home');
|
||||
foreach($tel2show as $name)
|
||||
{
|
||||
@ -1049,9 +1049,9 @@ class uicontacts extends bocontacts
|
||||
}
|
||||
$readonlys["delete[$row[id]]"] = !$this->check_perms(EGW_ACL_DELETE,$row);
|
||||
$readonlys["edit[$row[id]]"] = !$this->check_perms(EGW_ACL_EDIT,$row);
|
||||
|
||||
|
||||
if ($row['photo']) $photos = true;
|
||||
|
||||
|
||||
if (isset($customfields[$row['id']]))
|
||||
{
|
||||
foreach($this->customfields as $name => $data)
|
||||
@ -1103,13 +1103,13 @@ class uicontacts extends bocontacts
|
||||
$rows['order'] = $order;
|
||||
$rows['call_popup'] = $this->config['call_popup'];
|
||||
$rows['customfields'] = array_values($this->customfields);
|
||||
|
||||
|
||||
// full app-header with all search criteria specially for the print
|
||||
$GLOBALS['egw_info']['flags']['app_header'] = lang('addressbook');
|
||||
if ($query['filter'] !== '' && !isset($this->org_views[$query['org_view']]))
|
||||
{
|
||||
{
|
||||
$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'])) :
|
||||
$GLOBALS['egw']->common->grab_owner_name((int)$query['filter']).
|
||||
(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'];
|
||||
}
|
||||
if($query['advanced_search'])
|
||||
if($query['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
|
||||
*
|
||||
* @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 &$icon icon-name
|
||||
* @param string &$label translated label
|
||||
@ -1174,7 +1174,7 @@ class uicontacts extends bocontacts
|
||||
{
|
||||
$icon = 'personal';
|
||||
$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 string $extra_label first label if given (already translated)
|
||||
* @return array with owner => label pairs
|
||||
*/
|
||||
*/
|
||||
function get_addressbooks($required=EGW_ACL_READ,$extra_label=null)
|
||||
{
|
||||
//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 int $_GET['contact_id'] contact_id manly for popup use
|
||||
@ -1240,7 +1240,7 @@ class uicontacts extends bocontacts
|
||||
case 'save':
|
||||
case 'apply':
|
||||
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['jpegphoto'] = $this->resize_photo($content['upload_photo']);
|
||||
@ -1280,7 +1280,7 @@ class uicontacts extends bocontacts
|
||||
$button = 'apply'; // to not leave the dialog
|
||||
}
|
||||
// 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);
|
||||
}
|
||||
@ -1303,7 +1303,7 @@ class uicontacts extends bocontacts
|
||||
var referer = opener.location;
|
||||
opener.location.href = referer+(referer.search?'&':'?')+'msg=".addslashes(urlencode($content['msg']))."';</script>";
|
||||
break;
|
||||
|
||||
|
||||
case 'delete':
|
||||
if($this->action('delete',array($content['id'])))
|
||||
{
|
||||
@ -1343,7 +1343,7 @@ class uicontacts extends bocontacts
|
||||
}
|
||||
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']);
|
||||
}
|
||||
if (isset($_GET['owner']) && $_GET['owner'] !== '')
|
||||
@ -1417,7 +1417,7 @@ class uicontacts extends bocontacts
|
||||
// how to display addresses
|
||||
$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['disable_change_org'] = $view || !$content['org_name'];
|
||||
//_debug_array($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['button[delete]'] = !$content['id'];
|
||||
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"
|
||||
if (!$content['owner'] && !$this->is_admin($content))
|
||||
{
|
||||
@ -1478,7 +1478,7 @@ class uicontacts extends bocontacts
|
||||
if ($content['private']) $content['owner'] .= 'p';
|
||||
|
||||
$GLOBALS['egw_info']['flags']['include_xajax'] = true;
|
||||
|
||||
|
||||
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";
|
||||
@ -1487,7 +1487,7 @@ class uicontacts extends bocontacts
|
||||
}
|
||||
return $this->tmpl->exec('addressbook.uicontacts.edit',$content,$sel_options,$readonlys,$content, 2);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Set the readonlys for non-admins editing their own account
|
||||
*
|
||||
@ -1504,9 +1504,9 @@ class uicontacts extends bocontacts
|
||||
$readonlys[$field] = true;
|
||||
switch($field)
|
||||
{
|
||||
case 'tel_work':
|
||||
case 'tel_cell':
|
||||
case 'tel_home':
|
||||
case 'tel_work':
|
||||
case 'tel_cell':
|
||||
case 'tel_home':
|
||||
$readonlys[$field.'2'] = true;
|
||||
break;
|
||||
case 'n_fileas':
|
||||
@ -1532,7 +1532,7 @@ class uicontacts extends bocontacts
|
||||
$readonlys['link_to'] = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function ajax_setFileasOptions($n_prefix,$n_given,$n_middle,$n_family,$n_suffix,$org_name)
|
||||
{
|
||||
$names = array(
|
||||
@ -1548,7 +1548,7 @@ class uicontacts extends bocontacts
|
||||
|
||||
return $response->getXML();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* resizes the uploaded photo to 60*80 pixel and returns it
|
||||
*
|
||||
@ -1576,7 +1576,7 @@ class uicontacts extends bocontacts
|
||||
if (!$upload) return null;
|
||||
|
||||
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
|
||||
$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);
|
||||
@ -1589,10 +1589,10 @@ class uicontacts extends bocontacts
|
||||
|
||||
imagedestroy($photo);
|
||||
imagedestroy($upload);
|
||||
|
||||
|
||||
return $jpeg;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function view($content=null)
|
||||
{
|
||||
if(is_array($content))
|
||||
@ -1630,7 +1630,7 @@ class uicontacts extends bocontacts
|
||||
{
|
||||
$readonlys[$key.'2'] = true;
|
||||
$content[$key.'2'] = $content[$key];
|
||||
}
|
||||
}
|
||||
}
|
||||
$content['view'] = true;
|
||||
$content['link_to'] = array(
|
||||
@ -1648,7 +1648,7 @@ $readonlys['button[vcard]'] = true;
|
||||
// how to display addresses
|
||||
$content['addr_format'] = $this->addr_format_by_country($content['adr_one_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['owner'] = $this->get_addressbooks();
|
||||
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]['distribution_list'] = !$content['distrib_lists'];#false;
|
||||
if ($this->config['private_cf_tab']) $content['no_private_cfs'] = 0;
|
||||
|
||||
|
||||
// last and next calendar date
|
||||
list(,$dates) = each($this->read_calendar(array($content['id']),false));
|
||||
if(is_array($dates)) $content += $dates;
|
||||
@ -1716,7 +1716,7 @@ $readonlys['button[vcard]'] = true;
|
||||
'ab_id' => $content['id']
|
||||
));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* convert email-address in compose link
|
||||
*
|
||||
@ -1754,11 +1754,11 @@ $readonlys['button[vcard]'] = true;
|
||||
{
|
||||
if(!empty($_content)) {
|
||||
$response = new xajaxResponse();
|
||||
|
||||
|
||||
$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'))));
|
||||
foreach ($query['advanced_search'] as $key => $value)
|
||||
foreach ($query['advanced_search'] as $key => $value)
|
||||
{
|
||||
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
|
||||
$GLOBALS['egw']->session->appsession('advanced_search','addressbook',$query['advanced_search']);
|
||||
|
||||
|
||||
$response->addScript("
|
||||
var link = opener.location.href;
|
||||
link = link.replace(/#/,'');
|
||||
@ -1779,21 +1779,21 @@ $readonlys['button[vcard]'] = true;
|
||||
return $response->getXML();
|
||||
}
|
||||
else {
|
||||
|
||||
|
||||
}
|
||||
$GLOBALS['egw_info']['flags']['include_xajax'] = true;
|
||||
$GLOBALS['egw_info']['flags']['java_script'] .= "<script>window.focus()</script>";
|
||||
$GLOBALS['egw_info']['etemplate']['advanced_search'] = true;
|
||||
|
||||
|
||||
// initialize etemplate arrays
|
||||
$sel_options = $readonlys = $preserv = array();
|
||||
$content = $GLOBALS['egw']->session->appsession('advanced_search','addressbook');
|
||||
|
||||
|
||||
for($i = -23; $i<=23; $i++) $tz[$i] = ($i > 0 ? '+' : '').$i;
|
||||
$sel_options['tz'] = $tz + array('' => lang('doesn\'t matter'));
|
||||
$sel_options['tid'][] = lang('all');
|
||||
//foreach($this->content_types as $type => $data) $sel_options['tid'][$type] = $data['name'];
|
||||
|
||||
|
||||
// configure search options
|
||||
$sel_options['owner'] = $this->get_addressbooks(EGW_ACL_READ,lang('all'));
|
||||
$sel_options['operator'] = array(
|
||||
@ -1822,7 +1822,7 @@ $readonlys['button[vcard]'] = true;
|
||||
$readonlys['button'] = true;
|
||||
// disable not needed tabs
|
||||
$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]['links'] = true;
|
||||
$readonlys[$this->tabs]['distribution_list'] = true;
|
||||
@ -1840,9 +1840,9 @@ $readonlys['button[vcard]'] = true;
|
||||
function photo()
|
||||
{
|
||||
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);
|
||||
|
||||
|
||||
if (substr($contact_id,0,8) == 'account:')
|
||||
{
|
||||
$contact_id = $GLOBALS['egw']->accounts->id2name(substr($contact_id,8),'person_id');
|
||||
@ -1859,10 +1859,10 @@ $readonlys['button[vcard]'] = true;
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 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
|
||||
*
|
||||
* @param string $number phone number
|
||||
@ -1888,8 +1888,8 @@ $readonlys['button[vcard]'] = true;
|
||||
function js()
|
||||
{
|
||||
return '<script LANGUAGE="JavaScript">
|
||||
|
||||
function showphones(form)
|
||||
|
||||
function showphones(form)
|
||||
{
|
||||
if (form) {
|
||||
copyvalues(form,"tel_home","tel_home2");
|
||||
@ -1898,8 +1898,8 @@ $readonlys['button[vcard]'] = true;
|
||||
copyvalues(form,"tel_fax","tel_fax2");
|
||||
}
|
||||
}
|
||||
|
||||
function hidephones(form)
|
||||
|
||||
function hidephones(form)
|
||||
{
|
||||
if (form) {
|
||||
copyvalues(form,"tel_home2","tel_home");
|
||||
@ -1908,7 +1908,7 @@ $readonlys['button[vcard]'] = true;
|
||||
copyvalues(form,"tel_fax2","tel_fax");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function copyvalues(form,src,dst){
|
||||
var srcelement = getElement(form,src); //ById("exec["+src+"]");
|
||||
var dstelement = getElement(form,dst); //ById("exec["+dst+"]");
|
||||
@ -1916,7 +1916,7 @@ $readonlys['button[vcard]'] = true;
|
||||
dstelement.value = srcelement.value;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function getElement(form,pattern){
|
||||
for (i = 0; i < form.length; i++){
|
||||
if(form.elements[i].name){
|
||||
@ -1927,7 +1927,7 @@ $readonlys['button[vcard]'] = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function setName(input)
|
||||
{
|
||||
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 suffix = document.getElementById("exec[n_suffix]").value;
|
||||
var org = document.getElementById("exec[org_name]").value;
|
||||
|
||||
|
||||
var name = document.getElementById("exec[n_fn]");
|
||||
|
||||
|
||||
name.value = "";
|
||||
if (prefix) name.value += prefix+" ";
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
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";
|
||||
}
|
||||
@ -1961,7 +1961,7 @@ $readonlys['button[vcard]'] = true;
|
||||
}
|
||||
xajax_doXMLHTTP("addressbook.uicontacts.ajax_add_whole_list",list,email_type);
|
||||
}
|
||||
|
||||
|
||||
function setOptions(options_str)
|
||||
{
|
||||
var options = options_str.split("\\\\b");
|
||||
@ -1972,20 +1972,20 @@ $readonlys['button[vcard]'] = true;
|
||||
selbox.options[i].text = options[i];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function adb_get_selection(form)
|
||||
{
|
||||
var use_all = document.getElementById("exec[use_all]");
|
||||
var action = document.getElementById("exec[action]");
|
||||
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][]")),
|
||||
"Export",400,400);
|
||||
"Export",400,400);
|
||||
action.value="";
|
||||
use_all.checked = false;
|
||||
return false;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
function add_new_list(owner)
|
||||
{
|
||||
var name = window.prompt("'.lang('Name for the distribution list').'");
|
||||
@ -1999,13 +1999,13 @@ $readonlys['button[vcard]'] = true;
|
||||
}
|
||||
</script>';
|
||||
}
|
||||
|
||||
|
||||
function migrate2ldap()
|
||||
{
|
||||
$GLOBALS['egw_info']['flags']['app_header'] = lang('Addressbook').' - '.lang('Migration to LDAP');
|
||||
$GLOBALS['egw']->common->egw_header();
|
||||
parse_navbar();
|
||||
|
||||
|
||||
if (!$this->is_admin())
|
||||
{
|
||||
echo '<h1>'.lang('Permission denied !!!')."</h1>\n";
|
||||
@ -2017,7 +2017,7 @@ $readonlys['button[vcard]'] = true;
|
||||
}
|
||||
$GLOBALS['egw']->common->egw_footer();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Download a document with inserted contact(s)
|
||||
*
|
||||
@ -2044,7 +2044,7 @@ $readonlys['button[vcard]'] = true;
|
||||
|
||||
return $document_merge->download($document,$ids);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returning document actions / files from the document_dir
|
||||
*
|
||||
@ -2062,7 +2062,7 @@ $readonlys['button[vcard]'] = true;
|
||||
foreach($files as $file)
|
||||
{
|
||||
// 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') ||
|
||||
substr($file['mime'],0,5) == 'text/')) continue;
|
||||
// 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;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Read the next and last event of given contacts
|
||||
*
|
||||
@ -2086,7 +2086,7 @@ $readonlys['button[vcard]'] = true;
|
||||
function read_calendar($ids,$extra_title=true)
|
||||
{
|
||||
if (!$GLOBALS['egw_info']['user']['apps']['calendar']) return null;
|
||||
|
||||
|
||||
$uids = array();
|
||||
foreach($ids as $id)
|
||||
{
|
||||
@ -2101,7 +2101,7 @@ $readonlys['button[vcard]'] = true;
|
||||
'enum_recuring' => true,
|
||||
));
|
||||
if (!$events) return array();
|
||||
|
||||
|
||||
//_debug_array($events);
|
||||
$calendars = array();
|
||||
foreach($events as $event)
|
||||
@ -2148,7 +2148,7 @@ $readonlys['button[vcard]'] = true;
|
||||
$link['title'] = date($GLOBALS['egw_info']['user']['preferences']['common']['dateformat'],$event['start']);
|
||||
}
|
||||
$calendars[$id]['next_link'] = $link;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -2166,7 +2166,7 @@ $readonlys['button[vcard]'] = true;
|
||||
{
|
||||
if (is_array($content))
|
||||
{
|
||||
if ($content['cat_id']) //add categorie
|
||||
if ($content['cat_id']) //add categorie
|
||||
{
|
||||
if ($content['cat_add'])
|
||||
{
|
||||
@ -2182,7 +2182,7 @@ $readonlys['button[vcard]'] = true;
|
||||
echo "<html><head><script>$js window.close();</script></head><html>\n";
|
||||
$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');
|
||||
return $this->tmpl->exec('addressbook.uicontacts.cat_add',$content,$sel_options,$readonlys,$content, 2);
|
||||
|
Loading…
Reference in New Issue
Block a user