2010-12-02 23:34:41 +00:00
<?xml version="1.0" encoding="UTF-8"?>
<dynaForm name= "processes_New" width= "600px" labelWidth= "40%" enableTemplate= "1" >
<THETITLE type= "title" group= "1" >
<en > Configuration</en>
</THETITLE>
<MESS_ENABLED type= "checkbox" value= "1" >
<en > Enable Email Notifications</en>
</MESS_ENABLED>
<MESS_ENGINE type= "dropdown" sqlconnection= "dbarray" >
select * from mails
<en > Email Engine</en>
</MESS_ENGINE>
<MESS_SERVER type= "text" size= "35" maxlength= "100" required= "true" >
<en > Server</en>
</MESS_SERVER>
<MESS_PORT type= "text" size= "5" maxlength= "5" validate= "Int" >
<en > Port</en>
</MESS_PORT>
<MESS_RAUTH type= "checkbox" value= "1" >
<en > Require authentification</en>
</MESS_RAUTH>
<MESS_ACCOUNT type= "text" size= "35" maxlength= "50" validate= "Email" >
<en > Account From</en>
</MESS_ACCOUNT>
<MESS_PASSWORD type= "password" size= "35" maxlength= "50" >
<en > Password</en>
</MESS_PASSWORD>
<MESS_TEST_MAIL type= "checkbox" value= "1" >
<en > Send a test mail</en>
</MESS_TEST_MAIL>
<MESS_TEST_MAIL_TO type= "text" size= "35" maxlength= "100" required= "true" >
<en > Mail to</en>
</MESS_TEST_MAIL_TO>
<MESS_BACKGROUND type= "checkbox" value= "1" >
<en > Run in the background</en>
</MESS_BACKGROUND>
<MESS_EXECUTE_EVERY type= "text" size= "5" maxlength= "5" required= "true" validate= "Int" defaultValue= "5" >
<en > Execute every (in minutes)</en>
</MESS_EXECUTE_EVERY>
<MESS_SEND_MAX type= "text" size= "5" maxlength= "5" required= "true" validate= "Int" defaultValue= "50" >
<en > Maximun number of mails sended by attempt</en>
</MESS_SEND_MAX>
<MESS_TRY_SEND_INMEDIATLY type= "checkbox" value= "1" >
<en > Try send mails inmediatly</en>
</MESS_TRY_SEND_INMEDIATLY>
<TEST type= "button" onclick= "javascript:verifyFields();" >
<en > Test</en>
</TEST>
<SAVE_CHANGES type= "button" onclick= "javascript:verifyData(this.form);" >
<en > Save Changes</en>
</SAVE_CHANGES>
<SAVE_CHANGES2 type= "button" onclick= "javascript:verifyData(this.form);" >
<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)
2010-12-07 11:49:51 +00:00
{
2010-12-02 23:34:41 +00:00
switch (getField('MESS_ENGINE').value) {
2010-12-07 11:49:51 +00:00
case 'PHPMAILER':
2010-12-02 23:34:41 +00:00
verifyPassword = 0;
oAuxS = $('form[MESS_SERVER]').value;
2010-12-07 11:49:51 +00:00
if (oAuxS == ''){
2010-12-02 23:34:41 +00:00
new leimnud.module.app.alert().make({
label:G_STRINGS.ID_SERVER_REQUIRED
});
return false;
}
else{
oAuxA = $('form[MESS_ACCOUNT]').value;
2010-12-07 11:49:51 +00:00
if(oAuxA == ''){
2010-12-02 23:34:41 +00:00
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;
2010-12-07 11:49:51 +00:00
if (oAuxP == ''){
2010-12-02 23:34:41 +00:00
new leimnud.module.app.alert().make({
label:G_STRINGS.ID_PASSWORD_REQUIRED
});
return false;
}
2010-12-07 11:49:51 +00:00
else{
2010-12-02 23:34:41 +00:00
verifyPassword = 1;
2010-12-07 11:49:51 +00:00
}
2010-12-02 23:34:41 +00:00
} else {
verifyPassword = 1;
2010-12-07 11:49:51 +00:00
}
2010-12-02 23:34:41 +00:00
if(verifyPassword == 1){
if ($('form[MESS_TEST_MAIL]').checked) {
oAuxE = $('form[MESS_TEST_MAIL_TO]').value;
2010-12-07 11:49:51 +00:00
if (oAuxE == ''){
2010-12-02 23:34:41 +00:00
new leimnud.module.app.alert().make({
label:G_STRINGS.ID_EMAIL_REQUIRED
});
return false;
}
else{
testConnection();
2010-12-07 11:49:51 +00:00
}
2010-12-02 23:34:41 +00:00
} else {
testConnection();
}
}
}
}
break;
case 'MAIL':
if ($('form[MESS_TEST_MAIL]').checked) {
oAuxE = $('form[MESS_TEST_MAIL_TO]').value;
2010-12-07 11:49:51 +00:00
if (oAuxE == ''){
2010-12-02 23:34:41 +00:00
new leimnud.module.app.alert().make({
label:G_STRINGS.ID_EMAIL_REQUIRED
});
return false;
}
else{
testConnectionMail();
2010-12-07 11:49:51 +00:00
}
}
2010-12-02 23:34:41 +00:00
else {
testConnectionMail();
}
break;
2010-12-07 11:49:51 +00:00
2010-12-02 23:34:41 +00:00
}
}
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();
};
2010-12-07 11:49:51 +00:00
function testConnectionMail()
2010-12-02 23:34:41 +00:00
{
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 != '') {
}
alert(G_STRINGS.ID_MAIL_SUCESSFULLY);
$('form[SAVE_CHANGES]').disabled = false;
}
else {
if( result == 'FAILED' ) {
alert(G_STRINGS.ID_MAIL_FAILED);
2010-12-07 11:49:51 +00:00
}
2010-12-02 23:34:41 +00:00
if( result == 'INVALID' ) {
alert(G_STRINGS.ID_INVALID_EMAIL);
2010-12-07 11:49:51 +00:00
}
2010-12-02 23:34:41 +00:00
}
}.extend(this);
oRPC.make();
2010-12-07 11:49:51 +00:00
}
2010-12-02 23:34:41 +00:00
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;
}
}
}
return xmlhttp;
}
function initSet(){
2010-12-07 11:49:51 +00:00
//$('form[MESS_RAUTH]').checked = true;
2010-12-02 23:34:41 +00:00
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');
2010-12-07 11:49:51 +00:00
2010-12-02 23:34:41 +00:00
} 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;
2010-12-07 11:49:51 +00:00
2010-12-02 23:34:41 +00:00
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_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>
</dynaForm>