BUG 5864: Solved and improved

This commit is contained in:
Erik Amaru Ortiz
2011-01-13 23:14:20 +00:00
parent 7668679051
commit 40172b33db
5 changed files with 727 additions and 851 deletions

View File

@@ -69,571 +69,183 @@
<en>Save Changes</en>
</SAVE_CHANGES2>
<JS type="javascript"><![CDATA[
getField('SAVE_CHANGES').disabled = true;
/** test Connection Events **/
var PROCESS_REQUEST_FILE = '../setup/emails_Ajax';
var oPanel;
var srv;
var port;
var account;
var passwd;
var auth_required;
var send_test_mail;
var mail_to;
function verifyFields(oForm)
{
switch (getField('MESS_ENGINE').value) {
case 'PHPMAILER':
verifyPassword = 0;
oAuxS = $('form[MESS_SERVER]').value;
if (oAuxS == ''){
new leimnud.module.app.alert().make({
label:G_STRINGS.ID_SERVER_REQUIRED
});
return false;
}
else{
oAuxA = $('form[MESS_ACCOUNT]').value;
if(oAuxA == ''){
new leimnud.module.app.alert().make({
label:G_STRINGS.ID_MESS_ACCOUNT_REQUIRED
});
return false;
}
else{
if ($('form[MESS_RAUTH]').checked) {
oAuxP = $('form[MESS_PASSWORD]').value;
if (oAuxP == ''){
new leimnud.module.app.alert().make({
label:G_STRINGS.ID_PASSWORD_REQUIRED
});
return false;
}
else{
verifyPassword = 1;
}
} else {
verifyPassword = 1;
}
if(verifyPassword == 1){
if ($('form[MESS_TEST_MAIL]').checked) {
oAuxE = $('form[MESS_TEST_MAIL_TO]').value;
if (oAuxE == ''){
new leimnud.module.app.alert().make({
label:G_STRINGS.ID_EMAIL_REQUIRED
});
return false;
}
else{
testConnection();
}
} else {
testConnection();
<JS type="javascript">
<![CDATA[
//settings events
leimnud.event.add(getField('MESS_RAUTH'), 'click', function() {
if (this.checked)
showRowById('MESS_PASSWORD');
else
hideRowById('MESS_PASSWORD');
}.extend(getField('MESS_RAUTH')));
leimnud.event.add(getField('MESS_TEST_MAIL'), 'click', function() {
if (this.checked)
showRowById('MESS_TEST_MAIL_TO');
else
hideRowById('MESS_TEST_MAIL_TO');
}.extend(getField('MESS_TEST_MAIL')));
leimnud.event.add(getField('MESS_ENABLED'), 'click', function() {
if (this.checked) {
showRowById('MESS_ENGINE');
switch (getField('MESS_ENGINE').value) {
case 'MAIL':
hideRowById('MESS_SERVER');
hideRowById('MESS_PORT');
hideRowById('MESS_ACCOUNT');
hideRowById('MESS_PASSWORD');
hideRowById('SAVE_CHANGES2');
showRowById('TEST');
showRowById('MESS_TEST_MAIL');
if ( getField('MESS_TEST_MAIL').checked )
showRowById('MESS_TEST_MAIL_TO');
else
hideRowById('MESS_TEST_MAIL_TO');
getField('SAVE_CHANGES').disabled = true;
break;
case 'PHPMAILER':
hideRowById('SAVE_CHANGES2');
case 'OPENMAIL':
showRowById('MESS_SERVER');
showRowById('MESS_PORT');
showRowById('MESS_ACCOUNT');
showRowById('MESS_PASSWORD');
showRowById('TEST');
showRowById('MESS_RAUTH');
showRowById('MESS_TEST_MAIL');
if ( getField('MESS_TEST_MAIL').checked)
showRowById('MESS_TEST_MAIL_TO');
else
hideRowById('MESS_TEST_MAIL_TO');
getField('SAVE_CHANGES').disabled = true;
break;
}
}
}
}
break;
case 'MAIL':
if ($('form[MESS_TEST_MAIL]').checked) {
oAuxE = $('form[MESS_TEST_MAIL_TO]').value;
if (oAuxE == ''){
new leimnud.module.app.alert().make({
label:G_STRINGS.ID_EMAIL_REQUIRED
});
return false;
}
else{
testConnectionMail();
}
}
else {
testConnectionMail();
}
break;
}
}
function testConnection() {
/***get in the connection parameters***/
resultset = true;
srv = $('form[MESS_SERVER]').value;
port = $('form[MESS_PORT]').value;
if(port== '') port='default';
account = $('form[MESS_ACCOUNT]').value;
passwd = $('form[MESS_PASSWORD]').value;
if ($('form[MESS_RAUTH]').checked) {
auth_required = 'yes';
} else {
auth_required = 'no';
}
if ($('form[MESS_TEST_MAIL]').checked) {
send_test_mail = 'yes';
} else {
send_test_mail = 'no';
}
mail_to = $('form[MESS_TEST_MAIL_TO]').value;
var uri = 'srv='+srv+'&port='+port+'&account='+account+'&passwd='+passwd+'&auth_required='+auth_required+'&send_test_mail='+send_test_mail+'&mail_to='+mail_to;
oPanel = new leimnud.module.panel();
oPanel.options = {
size :{w:590,h:480},
position:{x:0,y:0,center:true},
title : 'SMTP Server Connection',
theme :"processmaker",
statusBar:false,
control :{resize:false,roll:false,drag:true},
fx :{modal:true,opacity:true,blinkToFront:false,fadeIn:false,drag:true}
};
oPanel.events = {
remove: function() { delete(oPanel); }.extend(this)
};
oPanel.make();
oPanel.loader.show();
var oRPC = new leimnud.module.rpc.xmlhttp({
url : PROCESS_REQUEST_FILE,
args: 'request=mailTest_Show'+'&'+uri
});
oRPC.callback = function(rpc) {
oPanel.loader.hide();
oPanel.addContent(rpc.xmlhttp.responseText);
//$('form[CREATE]').disabled = true;
//here execute de init test
testSMTPHost(1);
}.extend(this);
oRPC.make();
};
function testConnectionMail()
{
resultset = true;
if ($('form[MESS_TEST_MAIL]').checked) {
send_test_mail = 'yes';
mail_to = $('form[MESS_TEST_MAIL_TO]').value;
var uri = 'send_test_mail='+send_test_mail+'&mail_to='+mail_to;
var oRPC = new leimnud.module.rpc.xmlhttp({
url : PROCESS_REQUEST_FILE,
args: 'request=mailTestMail_Show'+'&'+uri
});
oRPC.callback = function(rpc) {
oresp = rpc.xmlhttp.responseText.split(',');
result = oresp[0].trim();
if(typeof oresp[1] == "undefined"){
msg = '';
result = 'INVALID';
}else{
msg = oresp[1].trim();
}
if( result == 'SUCCESSFUL' ) {
if(msg != '') {
//showRowById('MESS_BACKGROUND');////enable this line in the next release
if (getField('MESS_BACKGROUND').checked) {
showRowById('MESS_EXECUTE_EVERY');
showRowById('MESS_SEND_MAX');
showRowById('MESS_TRY_SEND_INMEDIATLY');
}
alert(G_STRINGS.ID_MAIL_SUCESSFULLY);
$('form[SAVE_CHANGES]').disabled = false;
}
else {
if( result == 'FAILED' ) {
alert(G_STRINGS.ID_MAIL_FAILED);
else {
hideRowById('MESS_EXECUTE_EVERY');
hideRowById('MESS_SEND_MAX');
hideRowById('MESS_TRY_SEND_INMEDIATLY');
}
if( result == 'INVALID' ) {
alert(G_STRINGS.ID_INVALID_EMAIL);
}
}
}.extend(this);
oRPC.make();
}
else {
alert(G_STRINGS.ID_CHECK_REQUIRED);
}
};
var resultset = true;
function testSMTPHost(step)
{
$("test_"+step).style.display = "block";
var requestfile = PROCESS_REQUEST_FILE;
var uri = 'request=testConnection&step='+step+'&srv='+srv+'&port='+port+'&account='+account+'&passwd='+passwd+'&auth_required='+auth_required+'&send_test_mail='+send_test_mail+'&mail_to='+mail_to;
var ajax = AJAX();
ajax.open("POST", requestfile, true);
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");
ajax.onreadystatechange = function() {
if(ajax.readyState == 4) {
try{
response = ajax.responseText.trim();
oresp = response.split(',');
result = oresp[0].trim();
msg = oresp[1].trim();
if( result == 'SUCCESSFUL' ) {
$('status_'+step).innerHTML = '';
if(msg != '') {
$('status_'+step).innerHTML = '<img src="/images/row_down.png" width="15" height="11" align="left" border="0"/><b>Server response: <font color=#000>'+msg+'</b></font><br/>';
}
$('status_'+step).innerHTML += '<img src="/images/ok.png" width="13" height="13" align="left" border="0"/><b>The test has <font color="#749AF9">Successful</b></font>';
}
else {
if( result == 'FAILED' ) {
$('status_'+step).innerHTML = '<img src="/images/alert.gif" width="12" height="12" align="left" border="0"/><b>The server response was <font color=red>'+msg+'</b></font><br/>';
$('status_'+step).innerHTML += '<img src="/images/cross.gif" width="12" height="12" align="left" border="0"/><b>The test has <font color=red> Failed!</b></font>';
resultset = false;
} else {
setTimeout(response);
}
}
step += 1;
testSMTPHost(step);
} catch (e) {
if(resultset){
$('form[SAVE_CHANGES]').disabled = false;
}
else {
$('form[SAVE_CHANGES]').disabled = true;
}
$('bnt_ok').style.display = 'block';
return;
};
} else {
var html = "<center><img src='/images/activityanimation.gif'><br/>"+G_STRINGS.DBCONNECTIONS_MSG3+"....</center>"; //
$('status_'+step).innerHTML = html;
}
}
ajax.send(uri);
}
function cancelTestConnection()
{
oPanel.remove();
/**if(resultset) {
new leimnud.module.app.confirm().make({
label:'Do you send a test mail with this configuration?',
action:function(){
testEmailConfiguration();
}.extend(this)
});
}**/
resultset = true;
}
///************* Adds routines *************///
String.prototype.trim = function() {
return this.replace(/^\s+|\s+get/g,"");
}
function $(id) {
return document.getElementById(id);
}
function AJAX()
{
try {
xmlhttp = new XMLHttpRequest();
}
catch(generic_error) {
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (microsoft_old_error) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (microsoft_error) {
xmlhttp = false;
} else {
hideRowById('MESS_ENGINE');
hideRowById('MESS_SERVER');
hideRowById('MESS_PORT');
hideRowById('MESS_ACCOUNT');
hideRowById('MESS_PASSWORD');
hideRowById('MESS_BACKGROUND');
hideRowById('MESS_EXECUTE_EVERY');
hideRowById('MESS_SEND_MAX');
hideRowById('MESS_TRY_SEND_INMEDIATLY');
hideRowById('TEST');
hideRowById('MESS_RAUTH');
hideRowById('MESS_TEST_MAIL');
hideRowById('MESS_TEST_MAIL_TO');
showRowById('SAVE_CHANGES2');
getField('SAVE_CHANGES').disabled = false;
}
}.extend(getField('MESS_ENABLED')));
leimnud.event.add(getField('MESS_ENGINE'), 'change', function() {
switch (this.value) {
case 'MAIL':
hideRowById('MESS_SERVER');
hideRowById('MESS_PORT');
hideRowById('MESS_ACCOUNT');
hideRowById('MESS_PASSWORD');
hideRowById('MESS_RAUTH');
showRowById('MESS_TEST_MAIL');
if ( getField('MESS_TEST_MAIL').checked)
showRowById('MESS_TEST_MAIL_TO');
else
hideRowById('MESS_TEST_MAIL_TO');
getField('SAVE_CHANGES').disabled = true
break;
case 'PHPMAILER':
hideRowById('SAVE_CHANGES2');
case 'OPENMAIL':
showRowById('MESS_SERVER');
showRowById('MESS_PORT');
showRowById('MESS_ACCOUNT');
showRowById('MESS_PASSWORD');
showRowById('TEST');
showRowById('MESS_RAUTH');
showRowById('MESS_TEST_MAIL');
if ( getField('MESS_TEST_MAIL').checked )
showRowById('MESS_TEST_MAIL_TO');
else
hideRowById('MESS_TEST_MAIL_TO');
getField('SAVE_CHANGES').disabled = true;
break;
}
}.extend(getField('MESS_ENGINE')));
leimnud.event.add(getField('MESS_BACKGROUND'), 'click', function() {
if (this.checked) {
showRowById('MESS_EXECUTE_EVERY');
showRowById('MESS_SEND_MAX');
showRowById('MESS_TRY_SEND_INMEDIATLY');
}
else {
hideRowById('MESS_EXECUTE_EVERY');
hideRowById('MESS_SEND_MAX');
hideRowById('MESS_TRY_SEND_INMEDIATLY');
}
}.extend(getField('MESS_BACKGROUND')));
if (!getField('MESS_ENABLED').checked) {
hideRowById('MESS_ENGINE');
hideRowById('MESS_SERVER');
hideRowById('MESS_PORT');
hideRowById('MESS_ACCOUNT');
hideRowById('MESS_PASSWORD');
hideRowById('MESS_BACKGROUND');
hideRowById('MESS_EXECUTE_EVERY');
hideRowById('MESS_SEND_MAX');
hideRowById('MESS_TRY_SEND_INMEDIATLY');
//hideRowById('TEST');
}
}
return xmlhttp;
}
function initSet(){
//$('form[MESS_RAUTH]').checked = true;
hideRowById('MESS_TEST_MAIL_TO');
if(!($('form[MESS_ENABLED]').checked)) {
hideRowById('MESS_ENGINE');
hideRowById('MESS_SERVER');
hideRowById('MESS_PORT');
hideRowById('MESS_ACCOUNT');
hideRowById('MESS_PASSWORD');
hideRowById('MESS_BACKGROUND');
hideRowById('MESS_EXECUTE_EVERY');
hideRowById('MESS_SEND_MAX');
hideRowById('MESS_TRY_SEND_INMEDIATLY');
hideRowById('MESS_RAUTH');
hideRowById('MESS_TEST_MAIL');
hideRowById('MESS_TEST_MAIL_TO');
hideRowById('TEST');
hideRowById('SAVE_CHANGES');
$('form[SAVE_CHANGES]').disabled = false;
} else {
hideRowById('SAVE_CHANGES2');
if(getField('MESS_ENGINE').value == 'MAIL'){
hideRowById('MESS_RAUTH');
hideRowById('MESS_TEST_MAIL_TO');
showRowById('TEST');
showRowById('SAVE_CHANGES');
}
}
}
leimnud.event.add(getField('MESS_RAUTH'), 'click', function() {
if (this.checked) {
showRowById('MESS_PASSWORD');
} else {
hideRowById('MESS_PASSWORD');
}
}.extend(getField('MESS_RAUTH')));
leimnud.event.add(getField('MESS_TEST_MAIL'), 'click', function() {
if (this.checked) {
showRowById('MESS_TEST_MAIL_TO');
} else {
hideRowById('MESS_TEST_MAIL_TO');
}
}.extend(getField('MESS_TEST_MAIL')));
/** end test Connection Events **/
leimnud.event.add(getField('MESS_ENABLED'), 'click', function() {
if (this.checked) {
showRowById('MESS_ENGINE');
switch (getField('MESS_ENGINE').value) {
case 'MAIL':
hideRowById('MESS_SERVER');
hideRowById('MESS_PORT');
hideRowById('MESS_ACCOUNT');
hideRowById('MESS_PASSWORD');
hideRowById('SAVE_CHANGES2');
showRowById('TEST');
showRowById('MESS_TEST_MAIL');
if ($('form[MESS_TEST_MAIL]').checked) {
showRowById('MESS_TEST_MAIL_TO');
} else {
hideRowById('MESS_TEST_MAIL_TO');
}
$('form[SAVE_CHANGES]').disabled = true;
break;
case 'PHPMAILER':
hideRowById('SAVE_CHANGES2');
case 'OPENMAIL':
showRowById('MESS_SERVER');
showRowById('MESS_PORT');
showRowById('MESS_ACCOUNT');
showRowById('MESS_PASSWORD');
showRowById('TEST');
showRowById('MESS_RAUTH');
showRowById('MESS_TEST_MAIL');
if ($('form[MESS_TEST_MAIL]').checked) {
showRowById('MESS_TEST_MAIL_TO');
} else {
hideRowById('MESS_TEST_MAIL_TO');
}
$('form[SAVE_CHANGES]').disabled = true;
break;
}
//showRowById('MESS_BACKGROUND');////enable this line in the next release
if (getField('MESS_BACKGROUND').checked) {
showRowById('MESS_EXECUTE_EVERY');
showRowById('MESS_SEND_MAX');
showRowById('MESS_TRY_SEND_INMEDIATLY');
}
else {
hideRowById('MESS_BACKGROUND');//delete this line in the next release
if (!getField('MESS_BACKGROUND').checked) {
hideRowById('MESS_EXECUTE_EVERY');
hideRowById('MESS_SEND_MAX');
hideRowById('MESS_TRY_SEND_INMEDIATLY');
}
}
else {
hideRowById('MESS_ENGINE');
hideRowById('MESS_SERVER');
hideRowById('MESS_PORT');
hideRowById('MESS_ACCOUNT');
hideRowById('MESS_PASSWORD');
hideRowById('MESS_BACKGROUND');
hideRowById('MESS_EXECUTE_EVERY');
hideRowById('MESS_SEND_MAX');
hideRowById('MESS_TRY_SEND_INMEDIATLY');
hideRowById('TEST');
hideRowById('MESS_RAUTH');
hideRowById('MESS_TEST_MAIL');
hideRowById('MESS_TEST_MAIL_TO');
showRowById('SAVE_CHANGES2');
$('form[SAVE_CHANGES]').disabled = false;
}
}.extend(getField('MESS_ENABLED')));
leimnud.event.add(getField('MESS_ENGINE'), 'change', function() {
switch (this.value) {
case 'MAIL':
hideRowById('MESS_SERVER');
hideRowById('MESS_PORT');
hideRowById('MESS_ACCOUNT');
hideRowById('MESS_PASSWORD');
hideRowById('MESS_RAUTH');
showRowById('MESS_TEST_MAIL');
if ($('form[MESS_TEST_MAIL]').checked) {
showRowById('MESS_TEST_MAIL_TO');
} else {
hideRowById('MESS_TEST_MAIL_TO');
}
$('form[SAVE_CHANGES]').disabled = true
break;
case 'PHPMAILER':
hideRowById('SAVE_CHANGES2');
case 'OPENMAIL':
showRowById('MESS_SERVER');
showRowById('MESS_PORT');
showRowById('MESS_ACCOUNT');
showRowById('MESS_PASSWORD');
showRowById('TEST');
showRowById('MESS_RAUTH');
showRowById('MESS_TEST_MAIL');
if ($('form[MESS_TEST_MAIL]').checked) {
showRowById('MESS_TEST_MAIL_TO');
} else {
hideRowById('MESS_TEST_MAIL_TO');
}
$('form[SAVE_CHANGES]').disabled = true;
break;
}
}.extend(getField('MESS_ENGINE')));
leimnud.event.add(getField('MESS_BACKGROUND'), 'click', function() {
if (this.checked) {
showRowById('MESS_EXECUTE_EVERY');
showRowById('MESS_SEND_MAX');
showRowById('MESS_TRY_SEND_INMEDIATLY');
}
else {
hideRowById('MESS_EXECUTE_EVERY');
hideRowById('MESS_SEND_MAX');
hideRowById('MESS_TRY_SEND_INMEDIATLY');
}
}.extend(getField('MESS_BACKGROUND')));
if (!getField('MESS_ENABLED').checked) {
hideRowById('MESS_ENGINE');
hideRowById('MESS_SERVER');
hideRowById('MESS_PORT');
hideRowById('MESS_ACCOUNT');
hideRowById('MESS_PASSWORD');
hideRowById('MESS_BACKGROUND');
hideRowById('MESS_EXECUTE_EVERY');
hideRowById('MESS_SEND_MAX');
hideRowById('MESS_TRY_SEND_INMEDIATLY');
//hideRowById('TEST');
}
switch (getField('MESS_ENGINE').value) {
case 'MAIL':
hideRowById('MESS_SERVER');
hideRowById('MESS_PORT');
hideRowById('MESS_ACCOUNT');
hideRowById('MESS_PASSWORD');
break;
case 'PHPMAILER':
case 'OPENMAIL':
showRowById('MESS_SERVER');
showRowById('MESS_PORT');
showRowById('MESS_ACCOUNT');
showRowById('MESS_PASSWORD');
break;
}
hideRowById('MESS_BACKGROUND');//delete this line in the next release
if (!getField('MESS_BACKGROUND').checked) {
hideRowById('MESS_EXECUTE_EVERY');
hideRowById('MESS_SEND_MAX');
hideRowById('MESS_TRY_SEND_INMEDIATLY');
}
var verifyData = function(oForm) {
if (getField('MESS_ENABLED').checked) {
switch (getField('MESS_ENGINE').value) {
case 'PHPMAILER':
case 'OPENMAIL':
oAux = getField('MESS_SERVER');
if (oAux.value == '') {
alert(G_STRINGS.ID_MESS_SERVER_REQUIRED);
oAux.focus();
return;
}
break;
}
if (getField('MESS_BACKGROUND').checked) {
oAux = getField('MESS_EXECUTE_EVERY');
if (oAux.value == '') {
alert(G_STRINGS.ID_MESS_EXECUTE_EVERY_REQUIRED);
oAux.focus();
return;
}
oAux = getField('MESS_SEND_MAX');
if (oAux.value == '') {
alert(G_STRINGS.ID_MESS_SEND_MAX_REQUIRED);
oAux.focus();
return;
}
}
}
oForm.submit();
};
var oPanel;
var testEmailConfiguration = function() {
if (getField('MESS_ENGINE').value != 'MAIL') {
oAux = getField('MESS_SERVER');
if (oAux.value == '') {
alert(G_STRINGS.ID_MESS_SERVER_REQUIRED);
oAux.focus();
return;
}
}
oPanel = new leimnud.module.panel();
oPanel.options = {
size :{w:400,h:200},
position:{x:0,y:0,center:true},
title :"",
theme :"processmaker",
statusBar:false,
control :{resize:false,roll:false,drag:false},
fx :{modal:true,opacity:true,blinkToFront:false,fadeIn:false,drag:false}
};
oPanel.events = {
remove: function() { delete(oPanel); }.extend(this)
};
oPanel.make();
oPanel.loader.show();
var oRPC = new leimnud.module.rpc.xmlhttp({
url : 'emails_Ajax',
args: 'action=testEmailConfiguration&usermail='+account
});
oRPC.callback = function(rpc){
oPanel.loader.hide();
oPanel.addContent(rpc.xmlhttp.responseText);
var scs = rpc.xmlhttp.responseText.extractScript();
scs.evalScript();
}.extend(this);
oRPC.make();
};
var closeTestPanel = function() {
oPanel.remove();
};
initSet();
]]></JS>
getField('SAVE_CHANGES').disabled = true;
initSet();
]]>
</JS>
</dynaForm>