mirror of
https://github.com/EGroupware/egroupware.git
synced 2025-06-22 02:41:50 +02:00
Run addressbook by et2
This commit is contained in:
parent
552761113b
commit
7481c0a23c
@ -68,7 +68,7 @@ class addressbook_ui extends addressbook_bo
|
|||||||
{
|
{
|
||||||
parent::__construct($contact_app);
|
parent::__construct($contact_app);
|
||||||
|
|
||||||
$this->tmpl = new etemplate();
|
$this->tmpl = new etemplate_new();
|
||||||
|
|
||||||
$this->org_views = array(
|
$this->org_views = array(
|
||||||
'org_name' => lang('Organisations'),
|
'org_name' => lang('Organisations'),
|
||||||
@ -76,13 +76,6 @@ class addressbook_ui extends addressbook_bo
|
|||||||
'org_name,org_unit' => lang('Organisations by departments'),
|
'org_name,org_unit' => lang('Organisations by departments'),
|
||||||
);
|
);
|
||||||
|
|
||||||
// our javascript
|
|
||||||
// to be moved in a seperate file if rewrite is over
|
|
||||||
if (strpos($GLOBALS['egw_info']['flags']['java_script'],'add_new_list') === false)
|
|
||||||
{
|
|
||||||
$GLOBALS['egw_info']['flags']['java_script'].= $this->js();
|
|
||||||
}
|
|
||||||
|
|
||||||
// make sure the hook for export_limit is registered
|
// make sure the hook for export_limit is registered
|
||||||
if (!$GLOBALS['egw']->hooks->hook_exists('export_limit','addressbook')) $GLOBALS['egw']->hooks->register_single_app_hook('addressbook','export_limit');
|
if (!$GLOBALS['egw']->hooks->hook_exists('export_limit','addressbook')) $GLOBALS['egw']->hooks->register_single_app_hook('addressbook','export_limit');
|
||||||
|
|
||||||
@ -221,7 +214,7 @@ class addressbook_ui extends addressbook_bo
|
|||||||
'lettersearch' => true,
|
'lettersearch' => true,
|
||||||
'do_email' => $do_email ? 1 : 0,
|
'do_email' => $do_email ? 1 : 0,
|
||||||
'default_cols' => '!cat_id,contact_created_contact_modified,distribution_list,contact_id,owner,legacy_actions',
|
'default_cols' => '!cat_id,contact_created_contact_modified,distribution_list,contact_id,owner,legacy_actions',
|
||||||
'filter2_onchange' => "if(this.value=='add') { add_new_list(typeof widget == 'undefined' ? document.getElementById('exec[nm][filter]').value : widget.header.filter.get_value()); this.value='';} else this.form.submit();",
|
'filter2_onchange' => "app.addressbook.filter2_onchange();",
|
||||||
'manual' => $do_email ? ' ' : false, // space for the manual icon
|
'manual' => $do_email ? ' ' : false, // space for the manual icon
|
||||||
//'actions' => $this->get_actions(), // set on each request, as it depends on some filters
|
//'actions' => $this->get_actions(), // set on each request, as it depends on some filters
|
||||||
'row_id' => 'id',
|
'row_id' => 'id',
|
||||||
@ -235,9 +228,7 @@ class addressbook_ui extends addressbook_bo
|
|||||||
|
|
||||||
if ($do_email)
|
if ($do_email)
|
||||||
{
|
{
|
||||||
$content['nm']['filter2_onchange'] = str_replace('this.form.submit();',
|
$content['nm']['filter2_onchange'] = 'app.addressbook.filter2_onchange_email();';
|
||||||
"{ if (this.value && confirm('".lang('Add emails of whole distribution list?')."')) add_whole_list(this.value); else this.form.submit(); }",
|
|
||||||
$content['nm']['filter2_onchange']);
|
|
||||||
}
|
}
|
||||||
// use the state of the last session stored in the user prefs
|
// use the state of the last session stored in the user prefs
|
||||||
if (($state = @unserialize($this->prefs[$do_email ? 'email_state' : 'index_state'])))
|
if (($state = @unserialize($this->prefs[$do_email ? 'email_state' : 'index_state'])))
|
||||||
@ -339,7 +330,7 @@ class addressbook_ui extends addressbook_bo
|
|||||||
}
|
}
|
||||||
$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.addressbook_ui.emailpopup' : 'addressbook.addressbook_ui.index',
|
return $this->tmpl->exec($do_email ? 'addressbook.addressbook_ui.emailpopup' : 'addressbook.addressbook_ui.index',
|
||||||
$content,$sel_options,$readonlys,$preserv,$do_email ? 2 : 0);
|
$content,$sel_options,$readonlys,$preserv,$do_email ? 2 : 0);
|
||||||
}
|
}
|
||||||
@ -427,11 +418,13 @@ class addressbook_ui extends addressbook_bo
|
|||||||
'email' => array(
|
'email' => array(
|
||||||
'caption' => lang('Add %1',lang('business email')),
|
'caption' => lang('Add %1',lang('business email')),
|
||||||
'no_lang' => true,
|
'no_lang' => true,
|
||||||
|
'onExecute' => 'javaScript:app.addressbook.addEmail',
|
||||||
'group' => ++$group,
|
'group' => ++$group,
|
||||||
),
|
),
|
||||||
'email_home' => array(
|
'email_home' => array(
|
||||||
'caption' => lang('Add %1',lang('home email')),
|
'caption' => lang('Add %1',lang('home email')),
|
||||||
'no_lang' => true,
|
'no_lang' => true,
|
||||||
|
'onExecute' => 'javaScript:app.addressbook.addEmail',
|
||||||
'group' => $group,
|
'group' => $group,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
@ -473,7 +466,7 @@ class addressbook_ui extends addressbook_bo
|
|||||||
'list_add' => array(
|
'list_add' => array(
|
||||||
'caption' => 'Add a new list',
|
'caption' => 'Add a new list',
|
||||||
'icon' => 'new',
|
'icon' => 'new',
|
||||||
'onExecute' => 'javaScript:add_new_list',
|
'onExecute' => 'javaScript:app.addressbook.add_new_list',
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
'group' => $group,
|
'group' => $group,
|
||||||
@ -493,7 +486,7 @@ class addressbook_ui extends addressbook_bo
|
|||||||
'caption' => 'Remove from distribution list',
|
'caption' => 'Remove from distribution list',
|
||||||
'confirm' => 'Remove selected contacts from distribution list',
|
'confirm' => 'Remove selected contacts from distribution list',
|
||||||
'icon' => 'foldertree_nolines_minus',
|
'icon' => 'foldertree_nolines_minus',
|
||||||
'enabled' => 'javaScript:nm_compare_field',
|
'enabled' => 'javaScript:app.addressbook.nm_compare_field',
|
||||||
'fieldId' => 'exec[nm][filter2]',
|
'fieldId' => 'exec[nm][filter2]',
|
||||||
'fieldValue' => '!', // enable if list != ''
|
'fieldValue' => '!', // enable if list != ''
|
||||||
),
|
),
|
||||||
@ -501,7 +494,7 @@ class addressbook_ui extends addressbook_bo
|
|||||||
'caption' => 'Delete selected distribution list!',
|
'caption' => 'Delete selected distribution list!',
|
||||||
'confirm' => 'Delete selected distribution list!',
|
'confirm' => 'Delete selected distribution list!',
|
||||||
'icon' => 'delete',
|
'icon' => 'delete',
|
||||||
'enabled' => 'javaScript:nm_compare_field',
|
'enabled' => 'javaScript:app.addressbook.nm_compare_field',
|
||||||
'fieldId' => 'exec[nm][filter2]',
|
'fieldId' => 'exec[nm][filter2]',
|
||||||
'fieldValue' => '!', // enable if list != ''
|
'fieldValue' => '!', // enable if list != ''
|
||||||
),
|
),
|
||||||
@ -556,7 +549,7 @@ class addressbook_ui extends addressbook_bo
|
|||||||
'icon' => 'new',
|
'icon' => 'new',
|
||||||
'url' => 'menuaction=infolog.infolog_ui.edit&type=task&action=addressbook&action_id=$id',
|
'url' => 'menuaction=infolog.infolog_ui.edit&type=task&action=addressbook&action_id=$id',
|
||||||
'popup' => egw_link::get_registry('infolog', 'add_popup'),
|
'popup' => egw_link::get_registry('infolog', 'add_popup'),
|
||||||
'onExecute' => 'javaScript:add_task', // call server for org-view only
|
'onExecute' => 'javaScript:app.addressbook.add_task', // call server for org-view only
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
@ -572,7 +565,7 @@ class addressbook_ui extends addressbook_bo
|
|||||||
'caption' => 'Show',
|
'caption' => 'Show',
|
||||||
'icon' => 'view',
|
'icon' => 'view',
|
||||||
'url' => 'menuaction=calendar.calendar_uilist.listview&filter=all&owner=0,c$id',
|
'url' => 'menuaction=calendar.calendar_uilist.listview&filter=all&owner=0,c$id',
|
||||||
'onExecute' => 'javaScript:add_cal', // call server for org-view only
|
'onExecute' => 'javaScript:app.addressbook.add_cal', // call server for org-view only
|
||||||
'targetapp' => 'calendar', // open in calendar tab
|
'targetapp' => 'calendar', // open in calendar tab
|
||||||
),
|
),
|
||||||
'calendar_add' => array(
|
'calendar_add' => array(
|
||||||
@ -580,7 +573,7 @@ class addressbook_ui extends addressbook_bo
|
|||||||
'icon' => 'new',
|
'icon' => 'new',
|
||||||
'url' => 'menuaction=calendar.calendar_uiforms.edit&participants=c$id',
|
'url' => 'menuaction=calendar.calendar_uiforms.edit&participants=c$id',
|
||||||
'popup' => egw_link::get_registry('calendar', 'add_popup'),
|
'popup' => egw_link::get_registry('calendar', 'add_popup'),
|
||||||
'onExecute' => 'javaScript:add_cal', // call server for org-view only
|
'onExecute' => 'javaScript:app.addressbook.add_cal', // call server for org-view only
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
@ -628,7 +621,7 @@ class addressbook_ui extends addressbook_bo
|
|||||||
'caption' => lang('Mail VCard'),
|
'caption' => lang('Mail VCard'),
|
||||||
'icon' => 'filemanager/mail_post_to',
|
'icon' => 'filemanager/mail_post_to',
|
||||||
'group' => $group,
|
'group' => $group,
|
||||||
'onExecute' => 'javaScript:adb_mail_vcard',
|
'onExecute' => 'javaScript:app.addressbook.adb_mail_vcard',
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
++$group;
|
++$group;
|
||||||
@ -751,7 +744,7 @@ window.egw_LAB.wait(function() {
|
|||||||
$query['filter2'] = (int)$list;
|
$query['filter2'] = (int)$list;
|
||||||
$this->action($email_type,array(),true,$success,$failed,$action_msg,$query,$msg);
|
$this->action($email_type,array(),true,$success,$failed,$action_msg,$query,$msg);
|
||||||
|
|
||||||
$response = new xajaxResponse();
|
$response = egw_json_response::get();
|
||||||
|
|
||||||
if ($success) $response->addScript(egw_framework::set_onload(''));
|
if ($success) $response->addScript(egw_framework::set_onload(''));
|
||||||
|
|
||||||
@ -771,7 +764,7 @@ window.egw_LAB.wait(function() {
|
|||||||
$response->addScript("alert('".addslashes($msg)."')");
|
$response->addScript("alert('".addslashes($msg)."')");
|
||||||
$response->addScript('window.close();');
|
$response->addScript('window.close();');
|
||||||
}
|
}
|
||||||
return $response->getXML();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -995,6 +988,7 @@ window.egw_LAB.wait(function() {
|
|||||||
|
|
||||||
case 'email':
|
case 'email':
|
||||||
case 'email_home':
|
case 'email_home':
|
||||||
|
error_log(__METHOD__. "() email");
|
||||||
$action == 'email' ? $action_fallback = 'email_home' : $action_fallback = 'email';
|
$action == 'email' ? $action_fallback = 'email_home' : $action_fallback = 'email';
|
||||||
$action_msg = lang('added');
|
$action_msg = lang('added');
|
||||||
if($contact = $this->read($id))
|
if($contact = $this->read($id))
|
||||||
@ -1669,24 +1663,28 @@ window.egw_LAB.wait(function() {
|
|||||||
{
|
{
|
||||||
egw_link::link('addressbook',$content['id'],$links);
|
egw_link::link('addressbook',$content['id'],$links);
|
||||||
}
|
}
|
||||||
$content['js'] = "opener.egw_refresh('".str_replace("'","\\'",$content['msg'])."','addressbook','{$content['id']}', '" . ($content['id'] ? 'update' : 'add') . "', opener.egw_getAppName());";
|
$currentApp = $GLOBALS['egw']->currentapp;
|
||||||
|
error_log(__METHOD__. "() currentapp:" . $currentApp);
|
||||||
|
egw_framework::refresh_opener($content['msg'], 'addressbook',$content['id'], ($content['id'] ? 'update' : 'add'));
|
||||||
if ($button == 'save')
|
if ($button == 'save')
|
||||||
{
|
{
|
||||||
$content['js'] .= ' window.close();';
|
egw_framework::window_close();
|
||||||
echo '<html><body onload="'.$content['js'].'"></body></html>';
|
|
||||||
common::egw_exit();
|
|
||||||
}
|
}
|
||||||
$content['link_to']['to_id'] = $content['id'];
|
$content['link_to']['to_id'] = $content['id'];
|
||||||
$GLOBALS['egw_info']['flags']['java_script'] .= "<script>{$content['js']}</script>";
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'delete':
|
case 'delete':
|
||||||
if($this->action('delete',array($content['id']),false,$success,$failed,$action_msg,'',$content['msg']))
|
if($this->action('delete',array($content['id']),false,$success,$failed,$action_msg,'',$content['msg']))
|
||||||
{
|
{
|
||||||
$js = "opener.egw_refresh('".str_replace("'","\\'",lang('Contact deleted'))."','addressbook','{$content['id']}','delete'); if(opener.egw_getAppName() != 'addressbook') { opener.egw_refresh('".str_replace("'","\\'",lang('Contact deleted'))."','addressbook','{$content['id']}',null,'addressbook');} window.close();";
|
if ($GLOBALS['egw']->currentapp == 'addressbook')
|
||||||
echo '<html><body onload="'.$js.'"></body></html>';
|
{
|
||||||
common::egw_exit();
|
egw_framework::refresh_opener(lang('Contact deleted'), 'addressbook', $content['id'], 'delete' );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
egw_framework::refresh_opener(lang('Contact deleted'), 'addressbook', $content['id'], null, 'addressbook');
|
||||||
|
egw_framework::window_close();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -1771,7 +1769,7 @@ window.egw_LAB.wait(function() {
|
|||||||
{
|
{
|
||||||
if (!empty($content[$field]))
|
if (!empty($content[$field]))
|
||||||
{
|
{
|
||||||
egw_framework::set_onload("check_value(document.getElementById('exec[$field]'),0);");
|
egw_framework::set_onload("app.addressbook.check_value(document.getElementById('exec[$field]'),0);");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1839,8 +1837,6 @@ window.egw_LAB.wait(function() {
|
|||||||
// 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']);
|
||||||
$GLOBALS['egw']->js->set_onload('show_custom_country($j(\'select[id*="adr_one_countrycode"]\').get(0));');
|
|
||||||
$GLOBALS['egw']->js->set_onload('show_custom_country($j(\'select[id*="adr_two_countrycode"]\').get(0));');
|
|
||||||
|
|
||||||
//_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);
|
||||||
@ -1919,7 +1915,7 @@ window.egw_LAB.wait(function() {
|
|||||||
|
|
||||||
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'] ? $this->content_types[$content['tid']]['options']['template'] : 'addressbook.edit'))
|
if (!$this->tmpl->read($this->content_types[$content['tid']]['options']['template'] ? $this->content_types[$content['tid']]['options']['template'] : 'addressbook.edit'))
|
||||||
{
|
{
|
||||||
@ -2219,7 +2215,7 @@ window.egw_LAB.wait(function() {
|
|||||||
if(!empty($_content))
|
if(!empty($_content))
|
||||||
{
|
{
|
||||||
$do_email = $_content['do_email'];
|
$do_email = $_content['do_email'];
|
||||||
$response = new xajaxResponse();
|
$response = egw_json_response::get();
|
||||||
|
|
||||||
$query = egw_session::appsession($do_email ? 'email' : 'index','addressbook');
|
$query = egw_session::appsession($do_email ? 'email' : 'index','addressbook');
|
||||||
|
|
||||||
@ -2242,23 +2238,16 @@ window.egw_LAB.wait(function() {
|
|||||||
|
|
||||||
// store the advanced search in the session to call it again
|
// store the advanced search in the session to call it again
|
||||||
egw_session::appsession('advanced_search','addressbook',$query['advanced_search']);
|
egw_session::appsession('advanced_search','addressbook',$query['advanced_search']);
|
||||||
|
error_log(__METHOD__. "() call ADV" );
|
||||||
$response->addScript("
|
if ($_content['button']['search']) $response->call("app.addressbook.adv_search");
|
||||||
var link = this.opener.location.href;
|
if ($_content['button']['cancel']) egw_framework::window_close (); //$response->addScript('this.close();');
|
||||||
link = link.replace(/#/,'');
|
|
||||||
this.opener.location.href=link.replace(/\#/,'');
|
|
||||||
this.xajax_eT_wrapper();
|
|
||||||
");
|
|
||||||
if ($_content['button']['cancel']) $response->addScript('this.close();');
|
|
||||||
|
|
||||||
return $response->getXML();
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$do_email = strpos($_SERVER['HTTP_REFERER'],'emailpopup') !== false;
|
$do_email = strpos($_SERVER['HTTP_REFERER'],'emailpopup') !== false;
|
||||||
}
|
}
|
||||||
$GLOBALS['egw_info']['flags']['include_xajax'] = true;
|
//$GLOBALS['egw_info']['flags']['include_xajax'] = true;
|
||||||
$GLOBALS['egw_info']['flags']['java_script'] .= "<script>window.egw_LAB.wait(function() {window.focus();});</script>";
|
//$GLOBALS['egw_info']['flags']['java_script'] .= "<script>window.egw_LAB.wait(function() {window.focus();});</script>";
|
||||||
$GLOBALS['egw_info']['etemplate']['advanced_search'] = true;
|
$GLOBALS['egw_info']['etemplate']['advanced_search'] = true;
|
||||||
|
|
||||||
// initialize etemplate arrays
|
// initialize etemplate arrays
|
||||||
@ -2341,68 +2330,6 @@ window.egw_LAB.wait(function() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Dynamic javascript functions
|
|
||||||
*
|
|
||||||
* All static stuff should go to addressbook/js/app.js
|
|
||||||
*
|
|
||||||
* @return string
|
|
||||||
*/
|
|
||||||
function js()
|
|
||||||
{
|
|
||||||
list($width,$height) = explode('x',egw_link::get_registry('felamimail','add_popup'));
|
|
||||||
|
|
||||||
return '<script LANGUAGE="JavaScript">
|
|
||||||
window.egw_LAB.wait(function() {
|
|
||||||
function adb_mail_vcard(_action, _elems)
|
|
||||||
{
|
|
||||||
var link = "'.egw::link('/index.php',array('menuaction' => 'felamimail.uicompose.compose')).'";
|
|
||||||
for (var i = 0; i < _elems.length; i++)
|
|
||||||
{
|
|
||||||
link += "&preset[file][]="+encodeURIComponent("vfs://default/apps/addressbook/"+_elems[i].id+"/.entry");
|
|
||||||
}
|
|
||||||
'."egw_openWindowCentered2(link, '_blank', $width, $height, 'yes');".'
|
|
||||||
}
|
|
||||||
|
|
||||||
function adb_get_selection(form)
|
|
||||||
{
|
|
||||||
var use_all = document.getElementById("exec[use_all]");
|
|
||||||
var action = document.getElementById("exec[action]");
|
|
||||||
egw_openWindowCentered(
|
|
||||||
"'. 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);
|
|
||||||
action.value="";
|
|
||||||
use_all.checked = false;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
function do_action(selbox)
|
|
||||||
{
|
|
||||||
if (selbox.value != "") {
|
|
||||||
if (selbox.value == "infolog_add" && (ids = get_selected(selbox.form,"[rows][checked][]")) && !document.getElementById("exec[use_all]").checked) {
|
|
||||||
win=window.open("'.egw::link('/index.php','menuaction=infolog.infolog_ui.edit&type=task&action=addressbook&action_id=').'"+ids,"_blank","width=750,height=550,left=100,top=200");
|
|
||||||
win.focus();
|
|
||||||
} else if (selbox.value == "cat_add") {
|
|
||||||
win=window.open("'.egw::link('/etemplate/process_exec.php','menuaction=addressbook.addressbook_ui.cat_add').'","_blank","width=300,height=400,left=100,top=200");
|
|
||||||
win.focus();
|
|
||||||
} else if (selbox.value == "remove_from_list") {
|
|
||||||
if (confirm("'.lang('Remove selected contacts from distribution list').'")) selbox.form.submit();
|
|
||||||
} else if (selbox.value == "delete_list") {
|
|
||||||
if (confirm("'.lang('Delete selected distribution list!').'")) selbox.form.submit();
|
|
||||||
} else if (selbox.value == "delete") {
|
|
||||||
if (confirm("'.lang('Delete').'")) selbox.form.submit();
|
|
||||||
} else {
|
|
||||||
selbox.form.submit();
|
|
||||||
}
|
|
||||||
selbox.value = "";
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
</script>';
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Migrate contacts to or from LDAP (called by Admin >> Addressbook >> Site configuration (Admin only)
|
* Migrate contacts to or from LDAP (called by Admin >> Addressbook >> Site configuration (Admin only)
|
||||||
*
|
*
|
||||||
|
@ -1,215 +1,415 @@
|
|||||||
/**
|
/**
|
||||||
* EGroupware addressbook static javascript code
|
* EGroupware - Addressbook - Javascript UI
|
||||||
*
|
*
|
||||||
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
|
|
||||||
* @package addressbook
|
|
||||||
* @link http://www.egroupware.org
|
* @link http://www.egroupware.org
|
||||||
* @author Ralf Becker <RalfBecker@outdoor-training.de>
|
* @package addressbook
|
||||||
* @version $Id$
|
* @author Hadi Nategh <hn-AT-stylite.de>
|
||||||
|
* @copyright (c) 2008-13 by Ralf Becker <RalfBecker-AT-outdoor-training.de>
|
||||||
|
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
|
||||||
|
* @version $id
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add appointment or show calendar for selected contacts, call default nm_action after some checks
|
* UI for Addressbook
|
||||||
*
|
*
|
||||||
* @param _action
|
* @augments AppJS
|
||||||
* @param _senders
|
|
||||||
*/
|
*/
|
||||||
function add_cal(_action, _senders)
|
app.addressbook = AppJS.extend(
|
||||||
{
|
{
|
||||||
if (!_senders[0].id.match(/^[0-9]+$/))
|
appname: 'addressbook',
|
||||||
|
/**
|
||||||
|
* et2 widget container
|
||||||
|
*/
|
||||||
|
et2: null,
|
||||||
|
/**
|
||||||
|
* path widget
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor
|
||||||
|
*
|
||||||
|
* @memberOf app.addressbook
|
||||||
|
*/
|
||||||
|
init: function()
|
||||||
{
|
{
|
||||||
// send org-view requests to server
|
// call parent
|
||||||
_action.data.nm_action = "submit";
|
this._super.apply(this, arguments);
|
||||||
}
|
},
|
||||||
else
|
|
||||||
|
/**
|
||||||
|
* Destructor
|
||||||
|
*/
|
||||||
|
destroy: function()
|
||||||
{
|
{
|
||||||
// call nm_action's popup, but already replace id's in url, because they need to be prefix with a "c"
|
//delete this.et2;
|
||||||
if (_action.data.popup) _action.data.nm_action = "popup";
|
// call parent
|
||||||
var ids = "";
|
this._super.apply(this, arguments);
|
||||||
for (var i = 0; i < _senders.length; i++)
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This function is called when the etemplate2 object is loaded
|
||||||
|
* and ready. If you must store a reference to the et2 object,
|
||||||
|
* make sure to clean it up in destroy().
|
||||||
|
*
|
||||||
|
* @param _et2 etemplate2 Newly ready object
|
||||||
|
*/
|
||||||
|
et2_ready: function(et2)
|
||||||
|
{
|
||||||
|
// call parent
|
||||||
|
this._super.apply(this, arguments);
|
||||||
|
|
||||||
|
if (typeof et2.templates['addressbook.edit'] != 'undefined')
|
||||||
{
|
{
|
||||||
ids += "c" + _senders[i].id + ((i < _senders.length - 1) ? "," : "");
|
this.show_custom_country($j('select[id*="adr_one_countrycode"]').get(0));
|
||||||
|
this.show_custom_country($j('select[id*="adr_two_countrycode"]').get(0));
|
||||||
}
|
}
|
||||||
// we cant just replace $id, as under jdots this can get called multiple times (with already replaced url)!
|
|
||||||
_action.data.url = _action.data.url.replace(/(owner|participants)=(0%2C)?[^&]+/,"$1=$2"+ids);
|
|
||||||
}
|
|
||||||
nm_action(_action, _senders);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
jQuery('select[id*="adr_one_countrycode"]').each(function() {
|
||||||
* Add task for selected contacts, call default nm_action after some checks
|
app.addressbook.show_custom_country(this);
|
||||||
*
|
});
|
||||||
* @param _action
|
jQuery('select[id*="adr_two_countrycode"]').each(function() {
|
||||||
* @param _senders
|
app.addressbook.show_custom_country(this);
|
||||||
*/
|
});
|
||||||
function add_task(_action, _senders)
|
},
|
||||||
{
|
|
||||||
if (!_senders[0].id.match(/^(addressbook::)?[0-9]+$/))
|
/**
|
||||||
|
* Add appointment or show calendar for selected contacts, call default nm_action after some checks
|
||||||
|
*
|
||||||
|
* @param _action
|
||||||
|
* @param _senders
|
||||||
|
*/
|
||||||
|
add_cal: function(_action, _senders)
|
||||||
{
|
{
|
||||||
// send org-view requests to server
|
if (!_senders[0].id.match(/^[0-9]+$/))
|
||||||
_action.data.nm_action = "submit";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// call nm_action's popup
|
|
||||||
_action.data.nm_action = "popup";
|
|
||||||
}
|
|
||||||
nm_action(_action, _senders);
|
|
||||||
}
|
|
||||||
|
|
||||||
function showphones(form)
|
|
||||||
{
|
|
||||||
if (form) {
|
|
||||||
copyvalues(form,"tel_home","tel_home2");
|
|
||||||
copyvalues(form,"tel_work","tel_work2");
|
|
||||||
copyvalues(form,"tel_cell","tel_cell2");
|
|
||||||
copyvalues(form,"tel_fax","tel_fax2");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function hidephones(form)
|
|
||||||
{
|
|
||||||
if (form) {
|
|
||||||
copyvalues(form,"tel_home2","tel_home");
|
|
||||||
copyvalues(form,"tel_work2","tel_work");
|
|
||||||
copyvalues(form,"tel_cell2","tel_cell");
|
|
||||||
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+"]");
|
|
||||||
if (srcelement && dstelement) {
|
|
||||||
dstelement.value = srcelement.value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function getElement(form,pattern)
|
|
||||||
{
|
|
||||||
for (i = 0; i < form.length; i++){
|
|
||||||
if(form.elements[i].name){
|
|
||||||
var found = form.elements[i].name.search("\\["+pattern+"\\]");
|
|
||||||
if (found != -1){
|
|
||||||
return form.elements[i];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function check_value(input, own_id)
|
|
||||||
{
|
|
||||||
var values = egw_json_getFormValues(input.form).exec; // todo use eT2 method, if running under et2
|
|
||||||
if(typeof values == 'undefined' && typeof etemplate2 != 'undefined') {
|
|
||||||
var template = etemplate2.getByApplication('addressbook')[0];
|
|
||||||
values = template.getValues(template.widgetContainer);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (input.name.match(/n_/))
|
|
||||||
{
|
|
||||||
var value = '';
|
|
||||||
if (values.n_prefix) value += values.n_prefix+" ";
|
|
||||||
if (values.n_given) value += values.n_given+" ";
|
|
||||||
if (values.n_middle) value += values.n_middle+" ";
|
|
||||||
if (values.n_family) value += values.n_family+" ";
|
|
||||||
if (values.n_suffix) value += values.n_suffix;
|
|
||||||
|
|
||||||
var name = document.getElementById("exec[n_fn]");
|
|
||||||
if(name == null && template)
|
|
||||||
{
|
{
|
||||||
name = template.widgetContainer.getWidgetById('n_fn');
|
// send org-view requests to server
|
||||||
name.set_value(value);
|
_action.data.nm_action = "submit";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
name.value = value;
|
// call nm_action's popup, but already replace id's in url, because they need to be prefix with a "c"
|
||||||
}
|
if (_action.data.popup) _action.data.nm_action = "popup";
|
||||||
}
|
var ids = "";
|
||||||
var req = new egw_json_request('addressbook.addressbook_ui.ajax_check_values', [values, input.name, own_id]);
|
for (var i = 0; i < _senders.length; i++)
|
||||||
req.sendRequest(true, function(data) {
|
|
||||||
if (data.msg && confirm(data.msg))
|
|
||||||
{
|
|
||||||
for(var id in data.doublicates)
|
|
||||||
{
|
{
|
||||||
egw.open(id, 'addressbook');
|
ids += "c" + _senders[i].id + ((i < _senders.length - 1) ? "," : "");
|
||||||
//opener.egw_openWindowCentered2(egw_webserverUrl+'/index.php?menuaction=addressbook.addressbook_ui.edit&contact_id='+id, '_blank', 870, 480, 'yes', 'addressbook');
|
|
||||||
}
|
}
|
||||||
|
// we cant just replace $id, as under jdots this can get called multiple times (with already replaced url)!
|
||||||
|
_action.data.url = _action.data.url.replace(/(owner|participants)=(0%2C)?[^&]+/,"$1=$2"+ids);
|
||||||
}
|
}
|
||||||
if (typeof data.fileas_options == 'object')
|
nm_action(_action, _senders);
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add task for selected contacts, call default nm_action after some checks
|
||||||
|
*
|
||||||
|
* @param _action
|
||||||
|
* @param _senders
|
||||||
|
*/
|
||||||
|
add_task: function(_action, _senders)
|
||||||
|
{
|
||||||
|
if (!_senders[0].id.match(/^(addressbook::)?[0-9]+$/))
|
||||||
{
|
{
|
||||||
var selbox = document.getElementById("exec[fileas_type]");
|
// send org-view requests to server
|
||||||
if (selbox)
|
_action.data.nm_action = "submit";
|
||||||
{
|
}
|
||||||
for (var i=0; i < data.fileas_options.length; i++)
|
else
|
||||||
{
|
{
|
||||||
selbox.options[i].text = data.fileas_options[i];
|
// call nm_action's popup
|
||||||
|
_action.data.nm_action = "popup";
|
||||||
|
}
|
||||||
|
nm_action(_action, _senders);
|
||||||
|
},
|
||||||
|
|
||||||
|
showphones: function(form)
|
||||||
|
{
|
||||||
|
if (form) {
|
||||||
|
copyvalues(form,"tel_home","tel_home2");
|
||||||
|
copyvalues(form,"tel_work","tel_work2");
|
||||||
|
copyvalues(form,"tel_cell","tel_cell2");
|
||||||
|
copyvalues(form,"tel_fax","tel_fax2");
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
hidephones: function(form)
|
||||||
|
{
|
||||||
|
if (form) {
|
||||||
|
copyvalues(form,"tel_home2","tel_home");
|
||||||
|
copyvalues(form,"tel_work2","tel_work");
|
||||||
|
copyvalues(form,"tel_cell2","tel_cell");
|
||||||
|
copyvalues(form,"tel_fax2","tel_fax");
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
copyvalues: function(form,src,dst)
|
||||||
|
{
|
||||||
|
var srcelement = getElement(form,src); //ById("exec["+src+"]");
|
||||||
|
var dstelement = getElement(form,dst); //ById("exec["+dst+"]");
|
||||||
|
if (srcelement && dstelement) {
|
||||||
|
dstelement.value = srcelement.value;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
getElement: function(form,pattern)
|
||||||
|
{
|
||||||
|
for (i = 0; i < form.length; i++){
|
||||||
|
if(form.elements[i].name){
|
||||||
|
var found = form.elements[i].name.search("\\["+pattern+"\\]");
|
||||||
|
if (found != -1){
|
||||||
|
return form.elements[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (template && (selbox = template.widgetContainer.getWidgetById('fileas_type')))
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
check_value: function(input, own_id)
|
||||||
|
{
|
||||||
|
var values = egw_json_getFormValues(input.form).exec; // todo use eT2 method, if running under et2
|
||||||
|
if(typeof values == 'undefined' && typeof etemplate2 != 'undefined') {
|
||||||
|
var template = etemplate2.getByApplication('addressbook')[0];
|
||||||
|
values = template.getValues(template.widgetContainer);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (input.name.match(/n_/))
|
||||||
|
{
|
||||||
|
var value = '';
|
||||||
|
if (values.n_prefix) value += values.n_prefix+" ";
|
||||||
|
if (values.n_given) value += values.n_given+" ";
|
||||||
|
if (values.n_middle) value += values.n_middle+" ";
|
||||||
|
if (values.n_family) value += values.n_family+" ";
|
||||||
|
if (values.n_suffix) value += values.n_suffix;
|
||||||
|
|
||||||
|
var name = document.getElementById("exec[n_fn]");
|
||||||
|
if(name == null && template)
|
||||||
{
|
{
|
||||||
selbox.set_select_options(data.fileas_sel_options);
|
name = template.widgetContainer.getWidgetById('n_fn');
|
||||||
|
name.set_value(value);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
name.value = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
egw.json('addressbook.addressbook_ui.ajax_check_values', [values, input.name, own_id]).sendRequest(true, function(data) {
|
||||||
}
|
if (data.msg && confirm(data.msg))
|
||||||
|
{
|
||||||
|
for(var id in data.doublicates)
|
||||||
|
{
|
||||||
|
egw.open(id, 'addressbook');
|
||||||
|
//opener.egw_openWindowCentered2(egw_webserverUrl+'/index.php?menuaction=addressbook.addressbook_ui.edit&contact_id='+id, '_blank', 870, 480, 'yes', 'addressbook');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (typeof data.fileas_options == 'object')
|
||||||
|
{
|
||||||
|
var selbox = document.getElementById("exec[fileas_type]");
|
||||||
|
if (selbox)
|
||||||
|
{
|
||||||
|
for (var i=0; i < data.fileas_options.length; i++)
|
||||||
|
{
|
||||||
|
selbox.options[i].text = data.fileas_options[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (template && (selbox = template.widgetContainer.getWidgetById('fileas_type')))
|
||||||
|
{
|
||||||
|
selbox.set_select_options(data.fileas_sel_options);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
function add_whole_list(list)
|
add_whole_list: function(list)
|
||||||
{
|
|
||||||
if (document.getElementById("exec[nm][email_type][email_home]").checked == true)
|
|
||||||
{
|
{
|
||||||
email_type = "email_home";
|
if (document.getElementById("exec[nm][email_type][email_home]").checked == true)
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
email_type = "email";
|
|
||||||
}
|
|
||||||
xajax_doXMLHTTP("addressbook.addressbook_ui.ajax_add_whole_list",list,email_type);
|
|
||||||
}
|
|
||||||
|
|
||||||
function show_custom_country(selectbox)
|
|
||||||
{
|
|
||||||
if(!selectbox) return;
|
|
||||||
var custom_field_name = selectbox.name.replace("countrycode", "countryname");
|
|
||||||
var custom_field = document.getElementById(custom_field_name);
|
|
||||||
if(custom_field && selectbox.value == "-custom-") {
|
|
||||||
custom_field.style.display = "inline";
|
|
||||||
}
|
|
||||||
else if (custom_field)
|
|
||||||
{
|
|
||||||
if((selectbox.value == "" || selectbox.value == null) && custom_field.value != "")
|
|
||||||
{
|
{
|
||||||
selectbox.value = "-custom-";
|
email_type = "email_home";
|
||||||
// Chosen needs this to update
|
|
||||||
$j(selectbox).trigger("liszt:updated");
|
|
||||||
|
|
||||||
custom_field.style.display = "inline";
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
custom_field.style.display = "none";
|
email_type = "email";
|
||||||
}
|
}
|
||||||
}
|
var request = new egw_json_request("addressbook.addressbook_ui.ajax_add_whole_list",list,email_type);
|
||||||
}
|
request.sendRequest(true);
|
||||||
|
},
|
||||||
|
|
||||||
function add_new_list(owner)
|
show_custom_country: function(selectbox)
|
||||||
{
|
|
||||||
var name = window.prompt(egw.lang('Name for the distribution list'));
|
|
||||||
if (name)
|
|
||||||
{
|
{
|
||||||
egw.open('','addressbook', 'list', {
|
if(!selectbox) return;
|
||||||
'add_list': name,
|
var custom_field_name = selectbox.name.replace("countrycode", "countryname");
|
||||||
'owner': owner
|
var custom_field = document.getElementById(custom_field_name);
|
||||||
},'_self');
|
if(custom_field && selectbox.value == "-custom-") {
|
||||||
}
|
custom_field.style.display = "inline";
|
||||||
}
|
}
|
||||||
|
else if (custom_field)
|
||||||
|
{
|
||||||
|
if((selectbox.value == "" || selectbox.value == null) && custom_field.value != "")
|
||||||
|
{
|
||||||
|
selectbox.value = "-custom-";
|
||||||
|
// Chosen needs this to update
|
||||||
|
$j(selectbox).trigger("liszt:updated");
|
||||||
|
|
||||||
/**
|
custom_field.style.display = "inline";
|
||||||
* et2 specific initialization - can be moved to init() when addressbook gets converted to et2
|
}
|
||||||
*/
|
else
|
||||||
$j('.et2_container').on('load',function() {
|
{
|
||||||
|
custom_field.style.display = "none";
|
||||||
$j('select[id*="adr_one_countrycode"]').each(function() {show_custom_country(this);});
|
}
|
||||||
$j('select[id*="adr_two_countrycode"]').each(function() {show_custom_country(this);});
|
}
|
||||||
});
|
},
|
||||||
|
|
||||||
|
add_new_list: function(owner)
|
||||||
|
{
|
||||||
|
var name = window.prompt(egw.lang('Name for the distribution list'));
|
||||||
|
if (name)
|
||||||
|
{
|
||||||
|
egw.open('','addressbook', 'list', {
|
||||||
|
'add_list': name,
|
||||||
|
'owner': owner
|
||||||
|
},'_self');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
filter2_onchange: function()
|
||||||
|
{
|
||||||
|
var filter2 = this.et2.getWidgetById('filter2');
|
||||||
|
var widget = this.et2.getWidgetById('nm');
|
||||||
|
|
||||||
|
if(filter2.get_value()=='add')
|
||||||
|
{
|
||||||
|
this.add_new_list(typeof widget == 'undefined' ? this.et2.getWidgetById('filter').value : widget.header.filter.get_value());
|
||||||
|
this.value='';
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
filter2_onchnage_email: function ()
|
||||||
|
{
|
||||||
|
this.form.submit();
|
||||||
|
if (this.value && confirm('Add emails of whole distribution list?'))
|
||||||
|
{
|
||||||
|
this.add_whole_list(this.value);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
this.form.submit();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
nm_compare_field: function()
|
||||||
|
{
|
||||||
|
var field = this.et2.getWidgetById('filter2');
|
||||||
|
if (field) var val = field.get_value();
|
||||||
|
if (val)
|
||||||
|
{
|
||||||
|
return nm_compare_field;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
adv_search: function()
|
||||||
|
{
|
||||||
|
var link = opener.location.href;
|
||||||
|
link = link.replace(/#/,'');
|
||||||
|
opener.location.href=link.replace(/\#/,'');
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
adb_mail_vcard: function(_action, _elems)
|
||||||
|
{
|
||||||
|
var app_registry = egw.link_get_registry('felamimail');
|
||||||
|
var link = egw().link("/index.php","menuaction=felamimail.uicompose.compose");
|
||||||
|
for (var i = 0; i < _elems.length; i++)
|
||||||
|
{
|
||||||
|
link += "&preset[file][]="+encodeURIComponent("vfs://default/apps/addressbook/"+_elems[i].id+"/.entry");
|
||||||
|
}
|
||||||
|
if (typeof app_registry['view'] != 'undefined' && typeof app_registry['view_popup'] != 'undefined' )
|
||||||
|
{
|
||||||
|
var w_h =app_registry['view_popup'].split('x');
|
||||||
|
if (w_h[1] == 'egw_getWindowOuterHeight()') w_h[1] = (screen.availHeight>egw_getWindowOuterHeight()?screen.availHeight:egw_getWindowOuterHeight());
|
||||||
|
egw_openWindowCentered2(link, '_blank', w_h[0], w_h[1], 'yes');
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
adb_get_selection: function(form)
|
||||||
|
{
|
||||||
|
var use_all = document.getElementById("exec[use_all]");
|
||||||
|
var action = document.getElementById("exec[action]");
|
||||||
|
egw_openWindowCentered(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);
|
||||||
|
action.value="";
|
||||||
|
use_all.checked = false;
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
do_action: function(selbox)
|
||||||
|
{
|
||||||
|
if (selbox.value != "")
|
||||||
|
{
|
||||||
|
if (selbox.value == "infolog_add" && (ids = get_selected(selbox.form,"[rows][checked][]")) && !document.getElementById("exec[use_all]").checked)
|
||||||
|
{
|
||||||
|
win = window.open(egw().link("/index.php","menuaction=infolog.infolog_ui.edit&type=task&action=addressbook&action_id="+ids),_blank,width=750,height=550,left=100,top=200);
|
||||||
|
win.focus();
|
||||||
|
}
|
||||||
|
else if (selbox.value == "cat_add")
|
||||||
|
{
|
||||||
|
win = window.open(egw().link("/etemplate/process_exec.php","menuaction=addressbook.addressbook_ui.cat_add"),_blank,width=300,height=400,left=100,top=200);
|
||||||
|
win.focus();
|
||||||
|
}
|
||||||
|
else if (selbox.value == "remove_from_list")
|
||||||
|
{
|
||||||
|
if (confirm(lang('Remove selected contacts from distribution list'))) selbox.form.submit();
|
||||||
|
}
|
||||||
|
else if (selbox.value == "delete_list")
|
||||||
|
{
|
||||||
|
if (confirm(lang('Delete selected distribution list!'))) selbox.form.submit();
|
||||||
|
}
|
||||||
|
else if (selbox.value == "delete")
|
||||||
|
{
|
||||||
|
if (confirm(lang('Delete'))) selbox.form.submit();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
selbox.form.submit();
|
||||||
|
}
|
||||||
|
selbox.value = "";
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
n_fn_search: function ()
|
||||||
|
{
|
||||||
|
jQuery('table.editname').css('display','inline');
|
||||||
|
//var focElem = document.getElementById(form::name('n_prefix'));
|
||||||
|
if (!(typeof(focElem) == 'undefined') && typeof(focElem.focus)=='function')
|
||||||
|
{
|
||||||
|
//document.getElementById(form::name('n_prefix')).focus();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
xajax_et: function()
|
||||||
|
{
|
||||||
|
this.et2.getInstanceManager().submit(this.et2.getWidgetById('button[search]'));
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
|
||||||
|
addEmail: function()
|
||||||
|
{
|
||||||
|
//Not implemented
|
||||||
|
},
|
||||||
|
|
||||||
|
});
|
@ -28,23 +28,23 @@
|
|||||||
<rows>
|
<rows>
|
||||||
<row>
|
<row>
|
||||||
<description for="n_prefix" value="prefix"/>
|
<description for="n_prefix" value="prefix"/>
|
||||||
<textbox id="n_prefix" onchange="check_value(this,'$cont[id]');" size="35" maxlength="64"/>
|
<textbox id="n_prefix" onchange="app.addressbook.check_value(this,'$cont[id]');" size="35" maxlength="64"/>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<description for="n_given" value="first name"/>
|
<description for="n_given" value="first name"/>
|
||||||
<textbox id="n_given" onchange="check_value(this,'$cont[id]');" size="35" maxlength="64"/>
|
<textbox id="n_given" onchange="app.addressbook.check_value(this,'$cont[id]');" size="35" maxlength="64"/>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<description for="n_middle" value="middle name"/>
|
<description for="n_middle" value="middle name"/>
|
||||||
<textbox id="n_middle" onchange="check_value(this,'$cont[id]');" size="35" maxlength="64"/>
|
<textbox id="n_middle" onchange="app.addressbook.check_value(this,'$cont[id]');" size="35" maxlength="64"/>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<description for="n_family" value="last name"/>
|
<description for="n_family" value="last name"/>
|
||||||
<textbox id="n_family" onchange="check_value(this,'$cont[id]');" size="35" maxlength="64"/>
|
<textbox id="n_family" onchange="app.addressbook.check_value(this,'$cont[id]');" size="35" maxlength="64"/>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<description for="n_suffix" value="suffix"/>
|
<description for="n_suffix" value="suffix"/>
|
||||||
<textbox id="n_suffix" onchange="check_value(this,'$cont[id]');" size="35" maxlength="64"/>
|
<textbox id="n_suffix" onchange="app.addressbook.check_value(this,'$cont[id]');" size="35" maxlength="64"/>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<description/>
|
<description/>
|
||||||
@ -101,12 +101,12 @@
|
|||||||
<row>
|
<row>
|
||||||
<image src="home"/>
|
<image src="home"/>
|
||||||
<description value="Organisation"/>
|
<description value="Organisation"/>
|
||||||
<textbox id="org_name" onchange="check_value(this,'$cont[id]');" size="45" maxlength="128"/>
|
<textbox id="org_name" onchange="app.addressbook.check_value(this,'$cont[id]');" size="45" maxlength="128"/>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<description/>
|
<description/>
|
||||||
<description for="org_unit" value="department"/>
|
<description for="org_unit" value="department"/>
|
||||||
<textbox id="org_unit" onchange="check_value(this,'$cont[id]');" size="45" maxlength="64"/>
|
<textbox id="org_unit" onchange="app.addressbook.check_value(this,'$cont[id]');" size="45" maxlength="64"/>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<image src="gohome"/>
|
<image src="gohome"/>
|
||||||
@ -131,7 +131,7 @@
|
|||||||
<description for="adr_one_countryname" value="country"/>
|
<description for="adr_one_countryname" value="country"/>
|
||||||
<hbox options="0,0">
|
<hbox options="0,0">
|
||||||
<menulist>
|
<menulist>
|
||||||
<menupopup type="select-country" class="countrySelect" id="adr_one_countrycode" onchange="show_custom_country(this);" options="Select one,0,1"/>
|
<menupopup type="select-country" class="countrySelect" id="adr_one_countrycode" onchange="app.addressbook.show_custom_country(this);" options="Select one,0,1"/>
|
||||||
</menulist>
|
</menulist>
|
||||||
<textbox id="adr_one_countryname" class="custom_country"/>
|
<textbox id="adr_one_countryname" class="custom_country"/>
|
||||||
<textbox statustext="State" id="adr_one_region" size="19" maxlength="64" class="leftPad5"/>
|
<textbox statustext="State" id="adr_one_region" size="19" maxlength="64" class="leftPad5"/>
|
||||||
@ -151,7 +151,7 @@
|
|||||||
<description for="adr_one_countryname" value="country"/>
|
<description for="adr_one_countryname" value="country"/>
|
||||||
<hbox options="0,0">
|
<hbox options="0,0">
|
||||||
<menulist>
|
<menulist>
|
||||||
<menupopup type="select-country" class="countrySelect" id="adr_one_countrycode" onchange="show_custom_country(this);" options="Select one,0,1"/>
|
<menupopup type="select-country" class="countrySelect" id="adr_one_countrycode" onchange="app.addressbook.show_custom_country(this);" options="Select one,0,1"/>
|
||||||
</menulist>
|
</menulist>
|
||||||
<textbox id="adr_one_countryname" class="custom_country"/>
|
<textbox id="adr_one_countryname" class="custom_country"/>
|
||||||
</hbox>
|
</hbox>
|
||||||
@ -215,7 +215,7 @@
|
|||||||
<description for="adr_two_countryname" value="country"/>
|
<description for="adr_two_countryname" value="country"/>
|
||||||
<hbox options="0,0">
|
<hbox options="0,0">
|
||||||
<menulist>
|
<menulist>
|
||||||
<menupopup type="select-country" class="countrySelect" id="adr_two_countrycode" onchange="show_custom_country(this);" options="Select one,0,1"/>
|
<menupopup type="select-country" class="countrySelect" id="adr_two_countrycode" onchange="app.addressbook.show_custom_country(this);" options="Select one,0,1"/>
|
||||||
</menulist>
|
</menulist>
|
||||||
<textbox id="adr_two_countryname" class="custom_country"/>
|
<textbox id="adr_two_countryname" class="custom_country"/>
|
||||||
<textbox statustext="State" id="adr_two_region" size="19" maxlength="64" class="leftPad5"/>
|
<textbox statustext="State" id="adr_two_region" size="19" maxlength="64" class="leftPad5"/>
|
||||||
@ -235,7 +235,7 @@
|
|||||||
<description value="Country"/>
|
<description value="Country"/>
|
||||||
<hbox options="0,0">
|
<hbox options="0,0">
|
||||||
<menulist>
|
<menulist>
|
||||||
<menupopup type="select-country" class="countrySelect" id="adr_two_countrycode" onchange="show_custom_country(this);" options="Select one,0,1"/>
|
<menupopup type="select-country" class="countrySelect" id="adr_two_countrycode" onchange="app.addressbook.show_custom_country(this);" options="Select one,0,1"/>
|
||||||
</menulist>
|
</menulist>
|
||||||
<textbox id="adr_two_countryname" class="custom_country"/>
|
<textbox id="adr_two_countryname" class="custom_country"/>
|
||||||
</hbox>
|
</hbox>
|
||||||
@ -611,12 +611,12 @@
|
|||||||
<row>
|
<row>
|
||||||
<image src="email.png"/>
|
<image src="email.png"/>
|
||||||
<description for="email" value="email"/>
|
<description for="email" value="email"/>
|
||||||
<url-email id="email" onchange="check_value(this,'$cont[id]');" options="28,128"/>
|
<url-email id="email" onchange="app.addressbook.check_value(this,'$cont[id]');" options="28,128"/>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<description/>
|
<description/>
|
||||||
<description for="email_home" value="Private"/>
|
<description for="email_home" value="Private"/>
|
||||||
<url-email id="email_home" onchange="check_value(this,'$cont[id]');" options="28,128"/>
|
<url-email id="email_home" onchange="app.addressbook.check_value(this,'$cont[id]');" options="28,128"/>
|
||||||
</row>
|
</row>
|
||||||
</rows>
|
</rows>
|
||||||
</grid>
|
</grid>
|
||||||
|
@ -2,12 +2,12 @@
|
|||||||
<!-- $Id$ -->
|
<!-- $Id$ -->
|
||||||
<overlay>
|
<overlay>
|
||||||
<template id="addressbook.email.left" template="" lang="" group="0" version="1.5.001">
|
<template id="addressbook.email.left" template="" lang="" group="0" version="1.5.001">
|
||||||
<hbox no_lang="1" class="bold">
|
<hbox class="bold" no_lang="1">
|
||||||
<radio statustext="where to add the email address" label="To" id="to" no_lang="1" options="to" class="bold"/>
|
<radio statustext="where to add the email address" label="To" id="to" no_lang="1" options="to" class="bold"/>
|
||||||
<radio statustext="where to add the email address" label="Cc" id="to" no_lang="1" options="cc" class="bold"/>
|
<radio statustext="where to add the email address" label="Cc" id="to" no_lang="1" options="cc" class="bold"/>
|
||||||
<radio statustext="where to add the email address" label="Bcc" id="to" no_lang="1" options="bcc" class="bold"/>
|
<radio statustext="where to add the email address" label="Bcc" id="to" no_lang="1" options="bcc" class="bold"/>
|
||||||
</hbox>
|
</hbox>
|
||||||
<hbox no_lang="1" class="bold">
|
<hbox class="bold" no_lang="1">
|
||||||
<radio statustext="preferred type of email address to add for distribution lists" label="Business email" id="email_type" no_lang="1" options="email" class="bold"/>
|
<radio statustext="preferred type of email address to add for distribution lists" label="Business email" id="email_type" no_lang="1" options="email" class="bold"/>
|
||||||
<radio statustext="preferred type of email address to add for distribution lists" label="Home email" id="email_type" no_lang="1" options="email_home" class="bold"/>
|
<radio statustext="preferred type of email address to add for distribution lists" label="Home email" id="email_type" no_lang="1" options="email_home" class="bold"/>
|
||||||
</hbox>
|
</hbox>
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
<file id="upload_photo" class="photo" statustext="Select a portrait format jpeg photo. It will be resized to 60 pixel width."/>
|
<file id="upload_photo" class="photo" statustext="Select a portrait format jpeg photo. It will be resized to 60 pixel width."/>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<button label="Ok" align="center" onclick="set_style_by_class('table','uploadphoto','display','none'); return false;"/>
|
<button label="Ok" align="center" onclick="jQuery('table.uploadphoto').css('display','none'); return false;"/>
|
||||||
</row>
|
</row>
|
||||||
</rows>
|
</rows>
|
||||||
</grid>
|
</grid>
|
||||||
@ -28,27 +28,27 @@
|
|||||||
<rows>
|
<rows>
|
||||||
<row>
|
<row>
|
||||||
<description options=",,,n_prefix" value="prefix"/>
|
<description options=",,,n_prefix" value="prefix"/>
|
||||||
<textbox id="n_prefix" size="35" maxlength="64" onchange="setName(this);"/>
|
<textbox id="n_prefix" size="35" maxlength="64" onchange="app.addressbook.check_value(this,'$cont[id]');"/>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<description value="first name" options=",,,n_given"/>
|
<description value="first name" options=",,,n_given"/>
|
||||||
<textbox id="n_given" size="35" maxlength="64" onchange="setName(this);"/>
|
<textbox id="n_given" size="35" maxlength="64" onchange="app.addressbook.check_value(this,'$cont[id]');"/>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<description options=",,,n_middle" value="middle name"/>
|
<description options=",,,n_middle" value="middle name"/>
|
||||||
<textbox id="n_middle" size="35" maxlength="64" onchange="setName(this);"/>
|
<textbox id="n_middle" size="35" maxlength="64" onchange="app.addressbook.check_value(this,'$cont[id]');"/>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<description options=",,,n_family" value="last name"/>
|
<description options=",,,n_family" value="last name"/>
|
||||||
<textbox id="n_family" size="35" maxlength="64" onchange="setName(this);"/>
|
<textbox id="n_family" size="35" maxlength="64" onchange="app.addressbook.check_value(this,'$cont[id]');"/>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<description options=",,,n_suffix" value="suffix"/>
|
<description options=",,,n_suffix" value="suffix"/>
|
||||||
<textbox id="n_suffix" size="35" maxlength="64" onchange="setName(this);"/>
|
<textbox id="n_suffix" size="35" maxlength="64" onchange="app.addressbook.check_value(this,'$cont[id]');"/>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<description/>
|
<description/>
|
||||||
<button label="Ok" onclick="set_style_by_class('table','editname','display','none'); if(document.getElementById(form::name('title'))){document.getElementById(form::name('title')).focus();} return false;"/>
|
<button label="Ok" onclick="jQuery('table.editname').css('display','none'); if(document.getElementById(form::name('title'))){document.getElementById(form::name('title')).focus();} return false;"/>
|
||||||
</row>
|
</row>
|
||||||
</rows>
|
</rows>
|
||||||
</grid>
|
</grid>
|
||||||
@ -64,7 +64,7 @@
|
|||||||
<row valign="top">
|
<row valign="top">
|
||||||
<image src="accounts"/>
|
<image src="accounts"/>
|
||||||
<vbox>
|
<vbox>
|
||||||
<image src="photo" class="photo" onclick="set_style_by_class('table','uploadphoto','display','inline'); return false;"/>
|
<image src="photo" class="photo" onclick="jQuery('table.uploadphoto').css('display','inline'); return false;"/>
|
||||||
<template id="addressbook.edit.upload"/>
|
<template id="addressbook.edit.upload"/>
|
||||||
</vbox>
|
</vbox>
|
||||||
<grid>
|
<grid>
|
||||||
@ -77,7 +77,7 @@
|
|||||||
<rows>
|
<rows>
|
||||||
<row>
|
<row>
|
||||||
<description value="Name"/>
|
<description value="Name"/>
|
||||||
<textbox rows="1" cols="3" id="n_fn" no_lang="1" onclick="set_style_by_class('table','editname','display','inline'); document.getElementById(form::name('n_prefix')).focus();" size="-36" span="2" class="cursorHand" readonly="true"/>
|
<textbox rows="1" id="n_fn" no_lang="1" onclick="jQuery('table.editname').css('display','inline'); var focElem = document.getElementById(form::name('n_prefix')); if (!(typeof(focElem) == 'undefined') && typeof(focElem.focus)=='function') document.getElementById(form::name('n_prefix')).focus();" size="-36" span="2" class="cursorHand" readonly="true"/>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<description/>
|
<description/>
|
||||||
@ -132,7 +132,7 @@
|
|||||||
<description value="country" options=",,,adr_one_countryname"/>
|
<description value="country" options=",,,adr_one_countryname"/>
|
||||||
<hbox options="0,0">
|
<hbox options="0,0">
|
||||||
<menulist class="countrySelect">
|
<menulist class="countrySelect">
|
||||||
<menupopup type="select-country" options="Select one,0,1" id="adr_one_countrycode" onchange="show_custom_country(this);"/>
|
<menupopup type="select-country" options="Select one,0,1" id="adr_one_countrycode" onchange="app.addressbook.show_custom_country(this);"/>
|
||||||
</menulist>
|
</menulist>
|
||||||
<textbox id="adr_one_countryname" class="custom_country"/>
|
<textbox id="adr_one_countryname" class="custom_country"/>
|
||||||
<textbox class="leftPad5" size="19" maxlength="64" id="adr_one_region" statustext="State"/>
|
<textbox class="leftPad5" size="19" maxlength="64" id="adr_one_region" statustext="State"/>
|
||||||
@ -152,7 +152,7 @@
|
|||||||
<description value="country" options=",,,adr_one_countryname"/>
|
<description value="country" options=",,,adr_one_countryname"/>
|
||||||
<hbox options="0,0">
|
<hbox options="0,0">
|
||||||
<menulist class="countrySelect">
|
<menulist class="countrySelect">
|
||||||
<menupopup type="select-country" options="Select one,0,1" id="adr_one_countrycode" onchange="show_custom_country(this);"/>
|
<menupopup type="select-country" options="Select one,0,1" id="adr_one_countrycode" onchange="app.addressbook.show_custom_country(this);"/>
|
||||||
</menulist>
|
</menulist>
|
||||||
<textbox id="adr_one_countryname" class="custom_country"/>
|
<textbox id="adr_one_countryname" class="custom_country"/>
|
||||||
</hbox>
|
</hbox>
|
||||||
@ -216,7 +216,7 @@
|
|||||||
<description value="country" options=",,,adr_two_countryname"/>
|
<description value="country" options=",,,adr_two_countryname"/>
|
||||||
<hbox options="0,0">
|
<hbox options="0,0">
|
||||||
<menulist class="countrySelect">
|
<menulist class="countrySelect">
|
||||||
<menupopup type="select-country" options="Select one,0,1" id="adr_two_countrycode" onchange="show_custom_country(this);"/>
|
<menupopup type="select-country" options="Select one,0,1" id="adr_two_countrycode" onchange="app.addressbook.show_custom_country(this);"/>
|
||||||
</menulist>
|
</menulist>
|
||||||
<textbox id="adr_two_countryname" class="custom_country"/>
|
<textbox id="adr_two_countryname" class="custom_country"/>
|
||||||
<textbox class="leftPad5" size="19" maxlength="64" id="adr_two_region" statustext="State"/>
|
<textbox class="leftPad5" size="19" maxlength="64" id="adr_two_region" statustext="State"/>
|
||||||
@ -236,7 +236,7 @@
|
|||||||
<description value="Country"/>
|
<description value="Country"/>
|
||||||
<hbox options="0,0">
|
<hbox options="0,0">
|
||||||
<menulist class="countrySelect">
|
<menulist class="countrySelect">
|
||||||
<menupopup type="select-country" options="Select one,0,1" id="adr_two_countrycode" onchange="show_custom_country(this);"/>
|
<menupopup type="select-country" options="Select one,0,1" id="adr_two_countrycode" onchange="app.addressbook.show_custom_country(this);"/>
|
||||||
</menulist>
|
</menulist>
|
||||||
<textbox id="adr_two_countryname" class="custom_country"/>
|
<textbox id="adr_two_countryname" class="custom_country"/>
|
||||||
</hbox>
|
</hbox>
|
||||||
@ -662,11 +662,11 @@
|
|||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<hbox span="all">
|
<hbox span="all">
|
||||||
<button label="Search" id="button[search]" onclick="xajax_eT_wrapper(this); return false;"/>
|
<button label="Search" id="button[search]"/>
|
||||||
<button label="Cancel" id="button[cancel]" onclick="xajax_eT_wrapper(this); return false;"/>
|
<button label="Cancel" id="button[cancel]"/>
|
||||||
</hbox>
|
</hbox>
|
||||||
</row>
|
</row>
|
||||||
</rows>
|
</rows>
|
||||||
</grid>
|
</grid>
|
||||||
</template>
|
</template>
|
||||||
</overlay>
|
</overlay>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user