BUG 5864: Solved and improved
This commit is contained in:
363
workflow/engine/js/setup/emails.js
Normal file
363
workflow/engine/js/setup/emails.js
Normal file
@@ -0,0 +1,363 @@
|
||||
/**
|
||||
* @author erik <erik@colosa.com>
|
||||
*/
|
||||
|
||||
var PROCESS_REQUEST_FILE = '../setup/emails_Ajax';
|
||||
var oPanel;
|
||||
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
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() {
|
||||
resultset = true;
|
||||
params = 'srv=' + getField('MESS_SERVER').value;
|
||||
params += '&port='+ ((getField('MESS_PORT').value.trim() != '') ? getField('MESS_PORT').value : 'default');
|
||||
params += '&account=' + getField('MESS_ACCOUNT').value;
|
||||
params += '&passwd=' + getField('MESS_PASSWORD').value;
|
||||
params += '&auth_required='+ (getField('MESS_RAUTH').checked ? 'yes' : 'no');
|
||||
params += '&send_test_mail='+ (getField('MESS_TEST_MAIL').checked ? 'yes' : 'no');
|
||||
params += '&mail_to=' + $('form[MESS_TEST_MAIL_TO]').value;
|
||||
|
||||
oPanel = new leimnud.module.panel();
|
||||
oPanel.options = {
|
||||
size : {w : 590, h : 350},
|
||||
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=init&' + params
|
||||
});
|
||||
oRPC.callback = function(rpc) {
|
||||
oPanel.loader.hide();
|
||||
oPanel.addContent(rpc.xmlhttp.responseText);
|
||||
testSMTPHost(1); // execution de init test
|
||||
}.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 != '') {
|
||||
}
|
||||
$('form[SAVE_CHANGES]').disabled = false;
|
||||
} else {
|
||||
if (result == 'FAILED') {
|
||||
alert(G_STRINGS.ID_MAIL_FAILED);
|
||||
}
|
||||
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 params = 'request=testConnection&step=' + step;
|
||||
params += '&srv=' + getField('MESS_SERVER').value;
|
||||
params += '&port='+ ((getField('MESS_PORT').value.trim() != '') ? getField('MESS_PORT').value : 'default');
|
||||
params += '&account=' + getField('MESS_ACCOUNT').value;
|
||||
params += '&passwd=' + getField('MESS_PASSWORD').value;
|
||||
params += '&auth_required='+ (getField('MESS_RAUTH').checked ? 'yes' : 'no');
|
||||
params += '&send_test_mail='+ (getField('MESS_TEST_MAIL').checked ? 'yes' : 'no');
|
||||
params += '&mail_to=' + $('form[MESS_TEST_MAIL_TO]').value;
|
||||
|
||||
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 != '') {
|
||||
$('status2_' + step).innerHTML = '<img src="/images/row_down.png" width="15" height="11" align="left" border="0"/>'+ msg + '</b></font><br/>';
|
||||
}
|
||||
$('status_' + step).innerHTML += '<img src="/images/ok.png" width="13" height="13" align="left" border="0"/>';
|
||||
} else {
|
||||
$('status_' + step).innerHTML = '';
|
||||
if (result == 'FAILED') {
|
||||
$('status2_' + step).innerHTML = '<img src="/images/alert.gif" width="12" height="12" align="left" border="0"/><font color=red>' + msg + '</font><br/>';
|
||||
$('status_' + step).innerHTML += '<img src="/images/cross.gif" width="12" height="12" align="left" border="0"/>';
|
||||
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 {
|
||||
$('status_' + step).innerHTML = "<img src='/images/ajax-loader.gif' width=12 height=12 border=0><br/>";
|
||||
}
|
||||
}
|
||||
ajax.send(params);
|
||||
}
|
||||
|
||||
function cancelTestConnection() {
|
||||
oPanel.remove();
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
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');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
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();
|
||||
};
|
||||
Reference in New Issue
Block a user