mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-11-29 19:33:54 +01:00
* Mail/Vacation: Make vacation be able to be set from both Admin and Mail
This commit is contained in:
parent
726b6f17dc
commit
cb0901e3b8
@ -26,12 +26,6 @@ class mail_sieve
|
|||||||
* @var boolean
|
* @var boolean
|
||||||
*/
|
*/
|
||||||
var $timed_vacation;
|
var $timed_vacation;
|
||||||
//var $scriptName = 'felamimail';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var emailadmin_sieve
|
|
||||||
*/
|
|
||||||
var $bosieve;
|
|
||||||
|
|
||||||
var $errorStack;
|
var $errorStack;
|
||||||
|
|
||||||
@ -63,15 +57,6 @@ class mail_sieve
|
|||||||
*/
|
*/
|
||||||
var $eNotitmpl;
|
var $eNotitmpl;
|
||||||
|
|
||||||
/**
|
|
||||||
* mail_bo object
|
|
||||||
*
|
|
||||||
* @var object
|
|
||||||
*/
|
|
||||||
var $mailbo;
|
|
||||||
|
|
||||||
var $extraAddr;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Current Identitiy
|
* Current Identitiy
|
||||||
*
|
*
|
||||||
@ -86,6 +71,27 @@ class mail_sieve
|
|||||||
*/
|
*/
|
||||||
var $smtp;
|
var $smtp;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* user has admin right to emailadmin
|
||||||
|
*
|
||||||
|
* @var boolean
|
||||||
|
*/
|
||||||
|
var $mail_admin = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* emailadmin_imap account object
|
||||||
|
*
|
||||||
|
* @var type
|
||||||
|
*/
|
||||||
|
var $account;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* flag to check if vacation is called from admin
|
||||||
|
*
|
||||||
|
* @var type
|
||||||
|
*/
|
||||||
|
var $is_admin_vac = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
*
|
*
|
||||||
@ -94,25 +100,22 @@ class mail_sieve
|
|||||||
|
|
||||||
function __construct()
|
function __construct()
|
||||||
{
|
{
|
||||||
$this->displayCharset = translation::charset();
|
$this->displayCharset = translation::charset();
|
||||||
$profileID = 0;
|
$profileID = 0;
|
||||||
|
$this->mail_admin = isset($GLOBALS['egw_info']['user']['apps']['emailadmin']);
|
||||||
$this->smtp = new emailadmin_smtp();
|
$this->smtp = new emailadmin_smtp();
|
||||||
|
|
||||||
if (isset($GLOBALS['egw_info']['user']['preferences']['mail']['ActiveProfileID']))
|
if (isset($GLOBALS['egw_info']['user']['preferences']['mail']['ActiveProfileID']))
|
||||||
{
|
{
|
||||||
$profileID = (int) $GLOBALS['egw_info']['user']['preferences']['mail']['ActiveProfileID'];
|
$profileID = (int) $GLOBALS['egw_info']['user']['preferences']['mail']['ActiveProfileID'];
|
||||||
}
|
}
|
||||||
$this->mailbo = mail_bo::getInstance(false, $profileID, false,false);
|
$this->account = emailadmin_account::read($profileID);
|
||||||
|
|
||||||
|
$this->mailPreferences = config::read('mail');
|
||||||
|
|
||||||
$this->mailPreferences =& $this->mailbo->mailPreferences;
|
|
||||||
$this->mailConfig = config::read('mail');
|
|
||||||
$allIdentities = mail_bo::getAllIdentities();
|
|
||||||
$defaultIdentity = $this->mailbo->getDefaultIdentity();
|
|
||||||
$this->currentIdentity = $allIdentities[$defaultIdentity];
|
|
||||||
$this->currentIdentity['identity_string'] = mail_bo::generateIdentityString($allIdentities[$defaultIdentity],true);
|
|
||||||
$this->restoreSessionData();
|
$this->restoreSessionData();
|
||||||
$this->bosieve = $this->mailbo->icServer;
|
|
||||||
$this->timed_vacation = $this->bosieve->enableSieve && $this->bosieve->acc_imap_administration;
|
$this->timed_vacation = $this->account->acc_sieve_enabled && $this->account->acc_imap_administration;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -132,7 +135,7 @@ class mail_sieve
|
|||||||
$content['msg'] = $msg;
|
$content['msg'] = $msg;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($this->mailbo->icServer->enableSieve)
|
if ($this->account->acc_sieve_enabled)
|
||||||
{
|
{
|
||||||
//Initializes the Grid contents
|
//Initializes the Grid contents
|
||||||
$content['rg']= $this->get_rows();
|
$content['rg']= $this->get_rows();
|
||||||
@ -167,7 +170,7 @@ class mail_sieve
|
|||||||
//Instantiate an etemplate_new object, representing sieve.emailNotification
|
//Instantiate an etemplate_new object, representing sieve.emailNotification
|
||||||
$eNotitmpl = new etemplate_new('mail.sieve.emailNotification');
|
$eNotitmpl = new etemplate_new('mail.sieve.emailNotification');
|
||||||
|
|
||||||
if ($this->mailbo->icServer->enableSieve)
|
if ($this->account->acc_sieve_enabled)
|
||||||
{
|
{
|
||||||
$eNotification = $this->getEmailNotification();
|
$eNotification = $this->getEmailNotification();
|
||||||
|
|
||||||
@ -204,7 +207,7 @@ class mail_sieve
|
|||||||
}
|
}
|
||||||
if (isset($content['externalEmail']) && !empty($content['externalEmail']))
|
if (isset($content['externalEmail']) && !empty($content['externalEmail']))
|
||||||
{
|
{
|
||||||
if (!$this->bosieve->setEmailNotification($this->scriptName, $newEmailNotification))
|
if (!$this->account->imapServer()->setEmailNotification($this->scriptName, $newEmailNotification))
|
||||||
{
|
{
|
||||||
$msg = lang("email notification update failed")."<br />";
|
$msg = lang("email notification update failed")."<br />";
|
||||||
break;
|
break;
|
||||||
@ -347,10 +350,10 @@ class mail_sieve
|
|||||||
if($newRule['action'] && $this->rulesByID['priority'])
|
if($newRule['action'] && $this->rulesByID['priority'])
|
||||||
{
|
{
|
||||||
$this->rules[$ruleID] = $newRule;
|
$this->rules[$ruleID] = $newRule;
|
||||||
$ret = $this->bosieve->setRules($this->scriptName, $this->rules);
|
$ret = $this->account->imapServer()->setRules($this->scriptName, $this->rules);
|
||||||
if (!$ret && !empty($this->bosieve->error))
|
if (!$ret && !empty($this->account->imapServer()->error))
|
||||||
{
|
{
|
||||||
$msg .= lang("Saving the rule failed:")."<br />".$this->bosieve->error."<br />";
|
$msg .= lang("Saving the rule failed:")."<br />".$this->account->imapServer()->error."<br />";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -419,6 +422,7 @@ class mail_sieve
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* @return type, returns array of email notification data, and in case of failure returns false
|
* @return type, returns array of email notification data, and in case of failure returns false
|
||||||
|
* @todo Need to be checked if it is still needed
|
||||||
*/
|
*/
|
||||||
function getEmailNotification()
|
function getEmailNotification()
|
||||||
{
|
{
|
||||||
@ -427,17 +431,17 @@ class mail_sieve
|
|||||||
throw new egw_exception_no_permission();
|
throw new egw_exception_no_permission();
|
||||||
}
|
}
|
||||||
|
|
||||||
if($this->bosieve->getScript($this->scriptName))
|
if($this->account->imapServer()->getScript($this->scriptName))
|
||||||
{
|
{
|
||||||
if(PEAR::isError($error = $this->bosieve->retrieveRules($this->scriptName)) )
|
if(PEAR::isError($error = $this->account->imapServer()->retrieveRules($this->scriptName)) )
|
||||||
{
|
{
|
||||||
$rules = array();
|
$rules = array();
|
||||||
$emailNotification = array();
|
$emailNotification = array();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$rules = $this->bosieve->getRules($this->scriptName);
|
$rules = $this->account->imapServer()->getRules($this->scriptName);
|
||||||
$emailNotification = $this->bosieve->getEmailNotification($this->scriptName);
|
$emailNotification = $this->account->imapServer()->getEmailNotification($this->scriptName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -454,58 +458,56 @@ class mail_sieve
|
|||||||
*
|
*
|
||||||
* @param {array} $vacation
|
* @param {array} $vacation
|
||||||
* @param {string} $msg
|
* @param {string} $msg
|
||||||
|
* @param {sting} $accountID
|
||||||
*
|
*
|
||||||
* @return {array} return multi-dimentional array of vacation and aliases
|
* @return {array} return multi-dimentional array of vacation and aliases
|
||||||
*/
|
*/
|
||||||
function getVacation(&$vacation,&$msg)
|
function getVacation(&$vacation,&$msg, $accountID = null)
|
||||||
{
|
{
|
||||||
//$response->call('app.mail.sieve_vac_response_addresses');
|
|
||||||
|
|
||||||
if(!(empty($this->mailPreferences['prefpreventabsentnotice']) || $this->mailPreferences['prefpreventabsentnotice'] == 0))
|
if(!(empty($this->mailPreferences['prefpreventabsentnotice']) || $this->mailPreferences['prefpreventabsentnotice'] == 0))
|
||||||
{
|
{
|
||||||
throw new egw_exception_no_permission();
|
throw new egw_exception_no_permission();
|
||||||
}
|
}
|
||||||
|
$icServer = $this->is_admin_vac? $this->account->imapServer($accountID):$this->account->imapServer();
|
||||||
|
|
||||||
if($this->bosieve->getScript($this->scriptName))
|
if($icServer->getScript($this->scriptName))
|
||||||
{
|
{
|
||||||
if(PEAR::isError($error = $this->bosieve->retrieveRules($this->scriptName)) )
|
if(PEAR::isError($error = $icServer->retrieveRules($this->scriptName)) )
|
||||||
{
|
{
|
||||||
$vacation = array();
|
$vacation = array();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$vacation = $this->bosieve->getVacation($this->scriptName);
|
if ($this->is_admin_vac)
|
||||||
|
{
|
||||||
|
$vacation = $icServer->getVacationUser($accountID);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$vacation = $icServer->getVacation();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// something went wrong
|
// something went wrong
|
||||||
$msg = lang('Unable to fetch vacation!');
|
$msg = lang('Unable to fetch vacation!');
|
||||||
|
|
||||||
}
|
}
|
||||||
|
if (is_null($accountID)) $accountID = $GLOBALS['egw_info']['user']['account_id'];
|
||||||
|
|
||||||
$allIdentities = mail_bo::getAllIdentities();
|
$accAllIdentities = $this->smtp->getAccountEmailAddress(accounts::id2name($accountID));
|
||||||
|
$allAliases = array($this->account->acc_imap_username);
|
||||||
$accAllIdentities = $this->smtp->getAccountEmailAddress($GLOBALS['egw_info']['user']['account_lid']);
|
|
||||||
$accEmailAddresses = array();
|
|
||||||
foreach ($accAllIdentities as &$arrVal)
|
foreach ($accAllIdentities as &$arrVal)
|
||||||
{
|
{
|
||||||
if ($arrVal['type'] !='default')
|
if ($arrVal['type'] !='default')
|
||||||
{
|
{
|
||||||
array_push($accEmailAddresses, $arrVal['address']);
|
$allAliases[] = $arrVal['address'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
foreach($allIdentities as &$singleIdentity)
|
|
||||||
{
|
|
||||||
$predefinedAddresses[$singleIdentity['ident_email']] = $singleIdentity['ident_email'];
|
|
||||||
}
|
|
||||||
|
|
||||||
$allAliases = array_unique(array_merge($predefinedAddresses,$accEmailAddresses));
|
|
||||||
asort($allAliases);
|
asort($allAliases);
|
||||||
return array(
|
return array(
|
||||||
'vacation' =>$vacation,
|
'vacation' =>$vacation,
|
||||||
'aliases' => array_values($allAliases),
|
'aliases' => array_values($allAliases),
|
||||||
'defaultProfile' => $allIdentities[$this->mailbo->getDefaultIdentity()]
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -522,20 +524,52 @@ class mail_sieve
|
|||||||
$vtmpl = new etemplate_new('mail.sieve.vacation');
|
$vtmpl = new etemplate_new('mail.sieve.vacation');
|
||||||
$vacation = array();
|
$vacation = array();
|
||||||
|
|
||||||
if ($this->mailbo->icServer->enableSieve)
|
if (isset($_GET['account_id'])) $account_id = $preserv['account_id'] = $_GET['account_id'];
|
||||||
|
|
||||||
|
if (isset($content['account_id']))
|
||||||
{
|
{
|
||||||
$vacRules = $this->getVacation($vacation,$msg);
|
$account_id = $content['account_id'];
|
||||||
//$this->timed_vacation=true;//this could force the timed vacation thingy even if not supported ;-)
|
$preserv['acc_id'] = $content['acc_id'];
|
||||||
|
}
|
||||||
|
if(isset($account_id) && $this->mail_admin)
|
||||||
|
{
|
||||||
|
foreach(emailadmin_account::search($account_id,false , null, false, 0, false) as $account)
|
||||||
|
{
|
||||||
|
// check if account is valid for multiple users, has admin credentials and sieve enabled
|
||||||
|
if (emailadmin_account::is_multiple($account) &&
|
||||||
|
$account->acc_imap_admin_username && $account->acc_sieve_enabled)
|
||||||
|
{
|
||||||
|
$allAccounts[$account->acc_id] = $account->acc_name;
|
||||||
|
$accounts[$account->acc_id] = $account;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$profileID = !isset($content['acc_id']) ? key($accounts):$content['acc_id'];
|
||||||
|
|
||||||
|
//Chooses the right account
|
||||||
|
$this->account = $accounts[$profileID];
|
||||||
|
|
||||||
|
$this->is_admin_vac = true;
|
||||||
|
$this->timed_vacation = $this->account->acc_sieve_enabled && $this->account->acc_imap_administration;
|
||||||
|
$preserv['account_id'] = $account_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if ( $this->account->acc_sieve_enabled)
|
||||||
|
{
|
||||||
|
$vacRules = $this->getVacation($vacation,$msg, $account_id);
|
||||||
|
|
||||||
if ($this->timed_vacation)
|
if ($this->timed_vacation)
|
||||||
{
|
{
|
||||||
$ByDate = array('by_date' => lang('By date'));
|
$ByDate = array('by_date' => lang('By date'));
|
||||||
}
|
}
|
||||||
if (!is_array($content))
|
if (!is_array($content) || ($content['acc_id'] && !isset($content['button'])))
|
||||||
{
|
{
|
||||||
$content = $vacation = $vacRules['vacation'];
|
$content = $vacation = $vacRules['vacation'];
|
||||||
|
if (!empty($profileID)) $content['acc_id'] = $profileID;
|
||||||
if (empty($vacation['addresses']))
|
if (empty($vacation['addresses']))
|
||||||
{
|
{
|
||||||
$content['addresses']='';
|
$content['addresses'] = '';
|
||||||
}
|
}
|
||||||
if (!empty($vacation['forwards']))
|
if (!empty($vacation['forwards']))
|
||||||
{
|
{
|
||||||
@ -573,6 +607,11 @@ class mail_sieve
|
|||||||
{
|
{
|
||||||
//error_log(__METHOD__. 'content:' . array2string($content));
|
//error_log(__METHOD__. 'content:' . array2string($content));
|
||||||
$newVacation = $content;
|
$newVacation = $content;
|
||||||
|
if (!empty($newVacation['account_id']) || !empty($newVacation['acc_id']))
|
||||||
|
{
|
||||||
|
unset($newVacation['account_id']);
|
||||||
|
unset($newVacation['acc_id']);
|
||||||
|
}
|
||||||
if (empty($this->mailPreferences['prefpreventforwarding']) ||
|
if (empty($this->mailPreferences['prefpreventforwarding']) ||
|
||||||
$this->mailPreferences['prefpreventforwarding'] == 0 )
|
$this->mailPreferences['prefpreventforwarding'] == 0 )
|
||||||
{
|
{
|
||||||
@ -608,9 +647,18 @@ class mail_sieve
|
|||||||
|
|
||||||
if($this->checkRule($newVacation,$checkAddresses))
|
if($this->checkRule($newVacation,$checkAddresses))
|
||||||
{
|
{
|
||||||
if (!$this->bosieve->setVacation($this->scriptName, $newVacation))
|
if (isset($account_id) && $this->mail_admin)
|
||||||
{
|
{
|
||||||
$msg = lang('vacation update failed') . "\n" . lang('Vacation notice update failed') . ":" . $this->bosieve->error;
|
$resSetvac = $this->account->imapServer()->setVacationUser($account_id,$this->scriptName, $newVacation);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$resSetvac = $this->account->imapServer()->setVacation($this->scriptName, $newVacation);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$resSetvac)
|
||||||
|
{
|
||||||
|
$msg = lang('vacation update failed') . "\n" . lang('Vacation notice update failed') . ":" . $this->account->imapServer()->error;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -619,7 +667,7 @@ class mail_sieve
|
|||||||
{
|
{
|
||||||
$newVacation['scriptName'] = $this->scriptName;
|
$newVacation['scriptName'] = $this->scriptName;
|
||||||
}
|
}
|
||||||
$this->bosieve->setAsyncJob($newVacation);
|
$this->account->imapServer()->setAsyncJob($newVacation);
|
||||||
$msg = lang('Vacation notice sucessfully updated.');
|
$msg = lang('Vacation notice sucessfully updated.');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -631,7 +679,7 @@ class mail_sieve
|
|||||||
$response = egw_json_response::get();
|
$response = egw_json_response::get();
|
||||||
$response->call('app.mail.mail_callRefreshVacationNotice',$this->mailbo->profileID);
|
$response->call('app.mail.mail_callRefreshVacationNotice',$this->mailbo->profileID);
|
||||||
egw_framework::refresh_opener($msg, 'mail','edit');
|
egw_framework::refresh_opener($msg, 'mail','edit');
|
||||||
if ($button === 'apply' || $this->bosieve->error !=="")
|
if ($button === 'apply' || $this->account->imapServer()->error !=="")
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -649,6 +697,14 @@ class mail_sieve
|
|||||||
),
|
),
|
||||||
'addresses' => array_combine($vacRules['aliases'],$vacRules['aliases']),
|
'addresses' => array_combine($vacRules['aliases'],$vacRules['aliases']),
|
||||||
);
|
);
|
||||||
|
if (!isset($account_id))
|
||||||
|
{
|
||||||
|
$readonlys['acc_id'] = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$sel_options['acc_id'] = $allAccounts;
|
||||||
|
}
|
||||||
if (!empty($ByDate))
|
if (!empty($ByDate))
|
||||||
{
|
{
|
||||||
$sel_options['status'] += $ByDate;
|
$sel_options['status'] += $ByDate;
|
||||||
@ -660,7 +716,7 @@ class mail_sieve
|
|||||||
$content['msg'] = lang('error').':'.lang('Serverside Filterrules (Sieve) are not activated').'. '.lang('Please contact your Administrator to validate if your Server supports Serverside Filterrules, and how to enable them in EGroupware for your active Account (%1) with ID:%2.',$this->currentIdentity['identity_string'],$this->mailbo->profileID);
|
$content['msg'] = lang('error').':'.lang('Serverside Filterrules (Sieve) are not activated').'. '.lang('Please contact your Administrator to validate if your Server supports Serverside Filterrules, and how to enable them in EGroupware for your active Account (%1) with ID:%2.',$this->currentIdentity['identity_string'],$this->mailbo->profileID);
|
||||||
$content['hideIfSieveDisabled']='mail_DisplayNone';
|
$content['hideIfSieveDisabled']='mail_DisplayNone';
|
||||||
}
|
}
|
||||||
$vtmpl->exec('mail.mail_sieve.editVacation',$content,$sel_options,array(),array(),2);
|
$vtmpl->exec('mail.mail_sieve.editVacation',$content,$sel_options,$readonlys,$preserv,2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1045,7 +1101,7 @@ class mail_sieve
|
|||||||
*/
|
*/
|
||||||
function updateScript()
|
function updateScript()
|
||||||
{
|
{
|
||||||
if (!$this->bosieve->setRules($this->scriptToEdit, $this->rules))
|
if (!$this->account->imapServer()->setRules($this->scriptToEdit, $this->rules))
|
||||||
{
|
{
|
||||||
return "update failed";
|
return "update failed";
|
||||||
}
|
}
|
||||||
@ -1061,10 +1117,10 @@ class mail_sieve
|
|||||||
*/
|
*/
|
||||||
function getRules($ruleID = null)
|
function getRules($ruleID = null)
|
||||||
{
|
{
|
||||||
if(($script = $this->bosieve->getScript($this->scriptName)))
|
if(($script = $this->account->imapServer()->getScript($this->scriptName)))
|
||||||
{
|
{
|
||||||
$this->scriptToEdit = $this->scriptName;
|
$this->scriptToEdit = $this->scriptName;
|
||||||
if(PEAR::isError($error = $this->bosieve->retrieveRules($this->scriptName)) )
|
if(PEAR::isError($error = $this->account->imapServer()->retrieveRules($this->scriptName)) )
|
||||||
{
|
{
|
||||||
error_log(__METHOD__.__LINE__.$error->message);
|
error_log(__METHOD__.__LINE__.$error->message);
|
||||||
$this->rules = array();
|
$this->rules = array();
|
||||||
@ -1073,9 +1129,9 @@ class mail_sieve
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$this->rules = $this->bosieve->getRules($this->scriptName);
|
$this->rules = $this->account->imapServer()->getRules($this->scriptName);
|
||||||
$this->rulesByID = $this->rules[$ruleID];
|
$this->rulesByID = $this->rules[$ruleID];
|
||||||
$this->vacation = $this->bosieve->getVacation($this->scriptName);
|
$this->vacation = $this->account->imapServer()->getVacation($this->scriptName);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -3047,8 +3047,19 @@ app.classes.mail = AppJS.extend(
|
|||||||
mail_prev_print: function (_action, _elems)
|
mail_prev_print: function (_action, _elems)
|
||||||
{
|
{
|
||||||
this.mail_open(_action, _elems, 'print');
|
this.mail_open(_action, _elems, 'print');
|
||||||
}
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Print a mail from list
|
||||||
|
*
|
||||||
|
* @param {egw object} _egw
|
||||||
|
* @param {widget object} _widget mail account selectbox
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
vacation_change_account: function (_egw, _widget)
|
||||||
|
{
|
||||||
|
_widget.getInstanceManager().submit();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// Bind a mouseenter event once for every read-only email
|
// Bind a mouseenter event once for every read-only email
|
||||||
|
@ -11,7 +11,12 @@
|
|||||||
</columns>
|
</columns>
|
||||||
<rows>
|
<rows>
|
||||||
<row valign="top" class="dialogHeader">
|
<row valign="top" class="dialogHeader">
|
||||||
<description value="Edit vacation settings" span="all" class="et2_fullWidth"/>
|
<description value="Edit vacation settings" class="et2_fullWidth"/>
|
||||||
|
<description align="right" disabled="!@acc_id" for="acc_id" value="Mail account"/>
|
||||||
|
<menulist>
|
||||||
|
<menupopup id="acc_id" disabled="!@acc_id" onchange="app.mail.vacation_change_account" class="et2_fullWidth"/>
|
||||||
|
</menulist>
|
||||||
|
<description/>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<description value="Status:"/>
|
<description value="Status:"/>
|
||||||
|
Loading…
Reference in New Issue
Block a user