CC-3718: Please enable user to input the mail server settings
-done
This commit is contained in:
parent
7d4851573f
commit
ca8187c9c2
|
@ -21,7 +21,9 @@ class PreferenceController extends Zend_Controller_Action
|
|||
public function indexAction()
|
||||
{
|
||||
global $CC_CONFIG;
|
||||
|
||||
|
||||
$isSaas = Application_Model_Preference::GetPlanLevel() == 'disabled'?false:true;
|
||||
|
||||
$request = $this->getRequest();
|
||||
$baseUrl = $request->getBaseUrl();
|
||||
|
||||
|
@ -39,8 +41,16 @@ class PreferenceController extends Zend_Controller_Action
|
|||
Application_Model_Preference::SetAllow3rdPartyApi($values["preferences_general"]["thirdPartyApi"]);
|
||||
Application_Model_Preference::SetTimezone($values["preferences_general"]["timezone"]);
|
||||
Application_Model_Preference::SetWeekStartDay($values["preferences_general"]["weekStartDay"]);
|
||||
Application_Model_Preference::SetEnableSystemEmail($values["preferences_general"]["enableSystemEmail"]);
|
||||
Application_Model_Preference::SetSystemEmail($values["preferences_general"]["systemEmail"]);
|
||||
|
||||
if (!$isSaas) {
|
||||
Application_Model_Preference::SetEnableSystemEmail($values["preferences_email_server"]["enableSystemEmail"]);
|
||||
Application_Model_Preference::SetSystemEmail($values["preferences_email_server"]["systemEmail"]);
|
||||
Application_Model_Preference::SetMailServerConfigured($values["preferences_email_server"]["configureMailServer"]);
|
||||
Application_Model_Preference::SetMailServer($values["preferences_email_server"]["mailServer"]);
|
||||
Application_Model_Preference::SetMailServerEmailAddress($values["preferences_email_server"]["email"]);
|
||||
Application_Model_Preference::SetMailServerPassword($values["preferences_email_server"]["ms_password"]);
|
||||
Application_Model_Preference::SetMailServerPort($values["preferences_email_server"]["port"]);
|
||||
}
|
||||
|
||||
Application_Model_Preference::SetAutoUploadRecordedShowToSoundcloud($values["preferences_soundcloud"]["UseSoundCloud"]);
|
||||
Application_Model_Preference::SetUploadToSoundcloudOption($values["preferences_soundcloud"]["UploadToSoundcloudOption"]);
|
||||
|
|
|
@ -0,0 +1,96 @@
|
|||
<?php
|
||||
require_once 'customvalidators/ConditionalNotEmpty.php';
|
||||
require_once 'customvalidators/PasswordNotEmpty.php';
|
||||
|
||||
class Application_Form_EmailServerPreferences extends Zend_Form_SubForm
|
||||
{
|
||||
private $isSaas;
|
||||
|
||||
public function init()
|
||||
{
|
||||
$isSaas = Application_Model_Preference::GetPlanLevel() == 'disabled'?false:true;
|
||||
$this->isSaas = $isSaas;
|
||||
|
||||
$this->setDecorators(array(
|
||||
array('ViewScript', array('viewScript' => 'form/preferences_email_server.phtml', "isSaas" => $isSaas))
|
||||
));
|
||||
|
||||
// Enable system emails
|
||||
$this->addElement('checkbox', 'enableSystemEmail', array(
|
||||
'label' => 'Enable System Emails (Password Reset)',
|
||||
'required' => false,
|
||||
'value' => Application_Model_Preference::GetEnableSystemEmail(),
|
||||
'decorators' => array(
|
||||
'ViewHelper'
|
||||
)
|
||||
));
|
||||
|
||||
$this->addElement('text', 'systemEmail', array(
|
||||
'class' => 'input_text',
|
||||
'label' => 'Reset Password \'From\' Email',
|
||||
'value' => Application_Model_Preference::GetSystemEmail(),
|
||||
'readonly' => true,
|
||||
'decorators' => array('viewHelper')
|
||||
));
|
||||
|
||||
$this->addElement('checkbox', 'configureMailServer', array(
|
||||
'label' => 'Configure Mail Server',
|
||||
'required' => false,
|
||||
'value' => Application_Model_Preference::GetMailServerConfigured(),
|
||||
'decorators' => array (
|
||||
'viewHelper'
|
||||
)
|
||||
));
|
||||
|
||||
$this->addElement('text', 'mailServer', array(
|
||||
'class' => 'input_text',
|
||||
'label' => 'Mail Server',
|
||||
'value' => Application_Model_Preference::GetMailServer(),
|
||||
'readonly' => true,
|
||||
'decorators' => array('viewHelper'),
|
||||
'allowEmpty' => false,
|
||||
'validators' => array(
|
||||
new ConditionalNotEmpty(array('configureMailServer'=>'1'))
|
||||
)
|
||||
));
|
||||
|
||||
$this->addElement('text', 'email', array(
|
||||
'class' => 'input_text',
|
||||
'label' => 'Email Address',
|
||||
'value' => Application_Model_Preference::GetMailServerEmailAddress(),
|
||||
'readonly' => true,
|
||||
'decorators' => array('viewHelper'),
|
||||
'allowEmpty' => false,
|
||||
'validators' => array(
|
||||
new ConditionalNotEmpty(array('configureMailServer'=>'1'))
|
||||
)
|
||||
));
|
||||
|
||||
$this->addElement('password', 'ms_password', array(
|
||||
'class' => 'input_text',
|
||||
'label' => 'Password',
|
||||
'value' => Application_Model_Preference::GetMailServerPassword(),
|
||||
'readonly' => true,
|
||||
'decorators' => array('viewHelper'),
|
||||
'allowEmpty' => false,
|
||||
'validators' => array(
|
||||
new ConditionalNotEmpty(array('configureMailServer'=>'1'))
|
||||
),
|
||||
'renderPassword' => true
|
||||
));
|
||||
|
||||
$port = new Zend_Form_Element_Text('port');
|
||||
$port->class = 'input_text';
|
||||
$port->setRequired(false)
|
||||
->setValue(Application_Model_Preference::GetMailServerPort())
|
||||
->setLabel('Port')
|
||||
->setAttrib('readonly', true)
|
||||
->setDecorators(array('viewHelper'));
|
||||
|
||||
$this->addElement($port);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -68,44 +68,6 @@ class Application_Form_GeneralPreferences extends Zend_Form_SubForm
|
|||
$week_start_day->setValue(Application_Model_Preference::GetWeekStartDay());
|
||||
$week_start_day->setDecorators(array('ViewHelper'));
|
||||
$this->addElement($week_start_day);
|
||||
|
||||
//enable system emails.
|
||||
$this->addElement('checkbox', 'enableSystemEmail', array(
|
||||
'label' => 'Enable System Emails (Password Reset)',
|
||||
'required' => false,
|
||||
'value' => Application_Model_Preference::GetEnableSystemEmail(),
|
||||
'decorators' => array(
|
||||
'ViewHelper'
|
||||
)
|
||||
));
|
||||
|
||||
// Add end date element
|
||||
$systemEmail = new Zend_Form_Element_Text('systemEmail');
|
||||
$systemEmail->class = 'input_text';
|
||||
$systemEmail->setRequired(false)
|
||||
->setValue(Application_Model_Preference::GetSystemEmail())
|
||||
->setLabel('Reset Password \'From\' Email')
|
||||
->setFilters(array('StringTrim'))
|
||||
->setValidators(array(
|
||||
'NotEmpty',
|
||||
'EmailAddress'
|
||||
))
|
||||
->setDecorators(array('ViewHelper'));
|
||||
|
||||
$systemEmail->addValidator('Callback', true, array(
|
||||
'callback' => function($value, $context) {
|
||||
if ($context['enableSystemEmail']) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
},
|
||||
'messages' => array(
|
||||
Zend_Validate_Callback::INVALID_VALUE => 'Email must be enabled'
|
||||
),
|
||||
));
|
||||
|
||||
|
||||
$this->addElement($systemEmail);
|
||||
}
|
||||
|
||||
private function getTimezones(){
|
||||
|
|
|
@ -2,19 +2,28 @@
|
|||
|
||||
class Application_Form_Preferences extends Zend_Form
|
||||
{
|
||||
private $isSaas;
|
||||
|
||||
public function init()
|
||||
{
|
||||
$this->setAction('/Preference');
|
||||
$this->setMethod('post');
|
||||
|
||||
|
||||
$isSaas = Application_Model_Preference::GetPlanLevel() == 'disabled'?false:true;
|
||||
$this->isSaas = $isSaas;
|
||||
|
||||
$this->setDecorators(array(
|
||||
array('ViewScript', array('viewScript' => 'form/preferences.phtml'))
|
||||
array('ViewScript', array('viewScript' => 'form/preferences.phtml', "isSaas" => $this->isSaas))
|
||||
));
|
||||
|
||||
$general_pref = new Application_Form_GeneralPreferences();
|
||||
$this->addSubForm($general_pref, 'preferences_general');
|
||||
|
||||
if (!$isSaas) {
|
||||
$email_pref = new Application_Form_EmailServerPreferences();
|
||||
$this->addSubForm($email_pref, 'preferences_email_server');
|
||||
}
|
||||
|
||||
$soundcloud_pref = new Application_Form_SoundcloudPreferences();
|
||||
$this->addSubForm($soundcloud_pref, 'preferences_soundcloud');
|
||||
|
||||
|
|
|
@ -12,15 +12,44 @@ class Application_Model_Email {
|
|||
*/
|
||||
public static function send($subject, $message, $tos, $from = null)
|
||||
{
|
||||
$mailServerConfigured = Application_Model_Preference::GetMailServerConfigured() == true ? true : false;
|
||||
if ($mailServerConfigured) {
|
||||
$username = Application_Model_Preference::GetMailServerEmailAddress();
|
||||
$password = Application_Model_Preference::GetMailServerPassword();
|
||||
$mailServer = Application_Model_Preference::GetMailServer();
|
||||
$mailServerPort = Application_Model_Preference::GetMailServerPort();
|
||||
if (!empty($mailServerPort)) {
|
||||
$port = Application_Model_Preference::GetMailServerPort();
|
||||
}
|
||||
|
||||
$config = array(
|
||||
'auth' => 'login',
|
||||
'ssl' => 'ssl',
|
||||
'username' => $username,
|
||||
'password' => $password
|
||||
);
|
||||
|
||||
if (isset($port)) {
|
||||
$config['port'] = $port;
|
||||
}
|
||||
|
||||
$transport = new Zend_Mail_Transport_Smtp($mailServer, $config);
|
||||
}
|
||||
|
||||
$mail = new Zend_Mail('utf-8');
|
||||
$mail->setSubject($subject);
|
||||
$mail->setBodyText($message);
|
||||
$mail->setFrom(isset($from) ? $from : Application_Model_Preference::GetSystemEmail());
|
||||
|
||||
|
||||
foreach ((array) $tos as $to) {
|
||||
$mail->addTo($to);
|
||||
}
|
||||
|
||||
$mail->send();
|
||||
if ($mailServerConfigured) {
|
||||
$mail->setFrom(isset($from) ? $from : Application_Model_Preference::GetMailServerEmailAddress());
|
||||
$mail->send($transport);
|
||||
} else {
|
||||
$mail->setFrom(isset($from) ? $from : Application_Model_Preference::GetSystemEmail());
|
||||
$mail->send();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -887,6 +887,46 @@ class Application_Model_Preference
|
|||
public static function GetSystemEmail() {
|
||||
return self::GetValue("system_email");
|
||||
}
|
||||
|
||||
public static function SetMailServerConfigured($value) {
|
||||
self::SetValue("mail_server_configured", $value, false);
|
||||
}
|
||||
|
||||
public static function GetMailServerConfigured() {
|
||||
return self::GetValue("mail_server_configured");
|
||||
}
|
||||
|
||||
public static function SetMailServer($value) {
|
||||
self::SetValue("mail_server", $value, false);
|
||||
}
|
||||
|
||||
public static function GetMailServer() {
|
||||
return self::GetValue("mail_server");
|
||||
}
|
||||
|
||||
public static function SetMailServerEmailAddress($value) {
|
||||
self::SetValue("mail_server_email_address", $value, false);
|
||||
}
|
||||
|
||||
public static function GetMailServerEmailAddress() {
|
||||
return self::GetValue("mail_server_email_address");
|
||||
}
|
||||
|
||||
public static function SetMailServerPassword($value) {
|
||||
self::SetValue("mail_server_password", $value, false);
|
||||
}
|
||||
|
||||
public static function GetMailServerPassword() {
|
||||
return self::GetValue("mail_server_password");
|
||||
}
|
||||
|
||||
public static function SetMailServerPort($value) {
|
||||
self::SetValue("mail_server_port", $value, false);
|
||||
}
|
||||
|
||||
public static function GetMailServerPort() {
|
||||
return self::GetValue("mail_server_port");
|
||||
}
|
||||
/* User specific preferences end */
|
||||
|
||||
public static function ShouldShowPopUp(){
|
||||
|
|
|
@ -1,6 +1,13 @@
|
|||
<form method="<?php echo $this->element->getMethod() ?>" action="<?php echo $this->element->getAction() ?>" enctype="multipart/form-data">
|
||||
|
||||
<?php echo $this->element->getSubform('preferences_general') ?>
|
||||
|
||||
<?php if (!$this->isSaas) { ?>
|
||||
<h3 class="collapsible-header" id="email-server-heading"><span class="arrow-icon"></span>Email / Mail Server Settings</h3>
|
||||
<div class="collapsible-content" id="soundcloud-settings" style="display: none;">
|
||||
<?php echo $this->element->getSubform('preferences_email_server') ?>
|
||||
</div>
|
||||
<?php } ?>
|
||||
|
||||
<h3 class="collapsible-header" id="soundcloud-heading"><span class="arrow-icon"></span>SoundCloud Settings</h3>
|
||||
|
||||
|
|
|
@ -0,0 +1,102 @@
|
|||
<fieldset class="padded">
|
||||
<dl class="zend_form">
|
||||
<!-- Enable System Email option -->
|
||||
<?php if( !$this->isSaas ){?>
|
||||
|
||||
<dd id="enableSystemEmail-element" class="block-display">
|
||||
<label class="required" for="timezone">
|
||||
<?php echo $this->element->getElement('enableSystemEmail') ?>
|
||||
<strong><?php echo $this->element->getElement('enableSystemEmail')->getLabel() ?></strong>
|
||||
</label>
|
||||
<?php if($this->element->getElement('enableSystemEmail')->hasErrors()) : ?>
|
||||
<ul class='errors'>
|
||||
<?php foreach($this->element->getElement('enableSystemEmail')->getMessages() as $error): ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
|
||||
<!-- System Email option -->
|
||||
<dt id="systemEmail-label" class="block-display">
|
||||
<label class="required" for="timezone"><?php echo $this->element->getElement('systemEmail')->getLabel() ?>:
|
||||
</label>
|
||||
</dt>
|
||||
<dd id="systemEmail-element" class="block-display">
|
||||
<?php echo $this->element->getElement('systemEmail') ?>
|
||||
<?php if($this->element->getElement('systemEmail')->hasErrors()) : ?>
|
||||
<ul class='errors'>
|
||||
<?php foreach($this->element->getElement('systemEmail')->getMessages() as $error): ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<br />
|
||||
<dd id="configureMailServer-element" class="block-display">
|
||||
<label class="required" for="configureMailServer">
|
||||
<?php echo $this->element->getElement('configureMailServer') ?>
|
||||
<strong><?php echo $this->element->getElement('configureMailServer')->getLabel() ?></strong>
|
||||
</label>
|
||||
</dd>
|
||||
|
||||
<dt id="mailServer-label" class="block-display">
|
||||
<label class="required" for="mailServer"><?php echo $this->element->getElement('mailServer')->getLabel() ?>
|
||||
<span class="info-text-small">(Required)</span>:
|
||||
</label>
|
||||
</dt>
|
||||
<dd id="mailServer-element" class="block-display">
|
||||
<?php echo $this->element->getElement('mailServer') ?>
|
||||
<?php if($this->element->getElement('mailServer')->hasErrors()) : ?>
|
||||
<ul class='errors'>
|
||||
<?php foreach($this->element->getElement('mailServer')->getMessages() as $error): ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
|
||||
<dt id="email-label" class="block-display">
|
||||
<label class="required" for="email"><?php echo $this->element->getElement('email')->getLabel() ?>
|
||||
<span class="info-text-small">(Required)</span>:
|
||||
</label>
|
||||
</dt>
|
||||
<dd id="email-element" class="block-display">
|
||||
<?php echo $this->element->getElement('email') ?>
|
||||
<?php if($this->element->getElement('email')->hasErrors()) : ?>
|
||||
<ul class='errors'>
|
||||
<?php foreach($this->element->getElement('email')->getMessages() as $error): ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
|
||||
<dt id="password-label" class="block-display">
|
||||
<label class="required" for="password"><?php echo $this->element->getElement('ms_password')->getLabel() ?>
|
||||
<span class="info-text-small">(Required)</span>:
|
||||
</label>
|
||||
</dt>
|
||||
<dd id="password-element" class="block-display">
|
||||
<?php echo $this->element->getElement('ms_password') ?>
|
||||
<?php if($this->element->getElement('ms_password')->hasErrors()) : ?>
|
||||
<ul class='errors'>
|
||||
<?php foreach($this->element->getElement('ms_password')->getMessages() as $error): ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
|
||||
<dt id="port-label" class="block-display">
|
||||
<label class="required" for="port"><?php echo $this->element->getElement('port')->getLabel() ?>:
|
||||
</label>
|
||||
</dt>
|
||||
<dd id="port-element" class="block-display">
|
||||
<?php echo $this->element->getElement('port') ?>
|
||||
</dd>
|
||||
|
||||
|
||||
<?php } ?>
|
||||
</dl>
|
||||
</fieldset>
|
|
@ -92,39 +92,6 @@
|
|||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
|
||||
<!-- Enable System Email option -->
|
||||
<?php if( !$this->isSaas ){?>
|
||||
<dt id="enableSystemEmail-label" class="block-display">
|
||||
<label class="required" for="timezone"><?php echo $this->element->getElement('enableSystemEmail')->getLabel() ?>:
|
||||
</label>
|
||||
</dt>
|
||||
<dd id="enableSystemEmail-element" class="block-display">
|
||||
<?php echo $this->element->getElement('enableSystemEmail') ?>
|
||||
<?php if($this->element->getElement('enableSystemEmail')->hasErrors()) : ?>
|
||||
<ul class='errors'>
|
||||
<?php foreach($this->element->getElement('enableSystemEmail')->getMessages() as $error): ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
|
||||
<!-- System Email option -->
|
||||
<dt id="systemEmail-label" class="block-display">
|
||||
<label class="required" for="timezone"><?php echo $this->element->getElement('systemEmail')->getLabel() ?>:
|
||||
</label>
|
||||
</dt>
|
||||
<dd id="systemEmail-element" class="block-display">
|
||||
<?php echo $this->element->getElement('systemEmail') ?>
|
||||
<?php if($this->element->getElement('systemEmail')->hasErrors()) : ?>
|
||||
<ul class='errors'>
|
||||
<?php foreach($this->element->getElement('systemEmail')->getMessages() as $error): ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</dd>
|
||||
<?php } ?>
|
||||
|
||||
</dl>
|
||||
</fieldset>
|
||||
|
|
|
@ -11,13 +11,61 @@ function showErrorSections() {
|
|||
}
|
||||
}
|
||||
|
||||
function setConfigureMailServerListener() {
|
||||
var configMailServer = $("#configureMailServer");
|
||||
configMailServer.click(function(event){
|
||||
setMailServerInputReadonly();
|
||||
})
|
||||
}
|
||||
|
||||
function setEnableSystemEmailsListener() {
|
||||
var enableSystemEmails = $("#enableSystemEmail");
|
||||
enableSystemEmails.click(function(event){
|
||||
setSystemFromEmailReadonly();
|
||||
})
|
||||
}
|
||||
|
||||
function setSystemFromEmailReadonly() {
|
||||
var enableSystemEmails = $("#enableSystemEmail");
|
||||
var systemFromEmail = $("#systemEmail");
|
||||
if ($(enableSystemEmails).is(':checked')) {
|
||||
systemFromEmail.removeAttr("readonly");
|
||||
} else {
|
||||
systemFromEmail.attr("readonly", "readonly");
|
||||
}
|
||||
}
|
||||
|
||||
function setMailServerInputReadonly() {
|
||||
var configMailServer = $("#configureMailServer");
|
||||
var mailServer = $("#mailServer");
|
||||
var email = $("#email");
|
||||
var password = $("#ms_password");
|
||||
var port = $("#port");
|
||||
if ($(configMailServer).is(':checked')) {
|
||||
mailServer.removeAttr("readonly");
|
||||
email.removeAttr("readonly");
|
||||
password.removeAttr("readonly");
|
||||
port.removeAttr("readonly");
|
||||
} else {
|
||||
mailServer.attr("readonly", "readonly");
|
||||
email.attr("readonly", "readonly");
|
||||
password.attr("readonly", "readonly");
|
||||
port.attr("readonly", "readonly");
|
||||
}
|
||||
}
|
||||
|
||||
$(document).ready(function() {
|
||||
|
||||
$('.collapsible-header').live('click',function() {
|
||||
$('.collapsible-header').live('click',function() {
|
||||
$(this).next().toggle('fast');
|
||||
$(this).toggleClass("close");
|
||||
return false;
|
||||
}).next().hide();
|
||||
|
||||
showErrorSections();
|
||||
|
||||
setMailServerInputReadonly();
|
||||
setSystemFromEmailReadonly();
|
||||
setConfigureMailServerListener();
|
||||
setEnableSystemEmailsListener();
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue