/** * @author erik */ 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.trim(); 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; oAuxPH = $('form[MESS_PASSWORD_HIDDEN]').value; if ((oAuxP == '')&&(oAuxPH == '')) { 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.trim(); 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.trim(); params += '&port='+ ((getField('MESS_PORT').value.trim() != '') ? getField('MESS_PORT').value : 'default'); params += '&account=' + getField('MESS_ACCOUNT').value; if (getField('MESS_PASSWORD_HIDDEN').value =='') { params += '&passwd=' + getField('MESS_PASSWORD').value; } else { params += '&passwd=' + getField('MESS_PASSWORD_HIDDEN').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; if(getField('SMTPSecure][ssl').checked) { params +='&SMTPSecure=ssl'; } else if(getField('SMTPSecure][tls').checked) { params +='&SMTPSecure=tls'; } else { params +='&SMTPSecure='; } 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, params); // 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.trim(); 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, params) { $("test_" + step).style.display = "block"; var requestfile = PROCESS_REQUEST_FILE; var uri = 'request=testConnection&step=' + step +'&'+ params; 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 = ''+ msg + '
'; } $('status_' + step).innerHTML += ''; } else { $('status_' + step).innerHTML = ''; if (result == 'FAILED') { $('status2_' + step).innerHTML = '' + msg + '
'; $('status_' + step).innerHTML += ''; resultset = false; } else { setTimeout(response); } } step += 1; testSMTPHost(step, params); } 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 = "
"; } } ajax.send(uri); } 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('SMTPSecure'); 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) { if (getField('MESS_RAUTH').checked) { if (getField('MESS_PASSWORD') == '') { getField('MESS_PASSWORD').value = getField('MESS_PASSWORD_HIDDEN').value; } } switch (getField('MESS_ENGINE').value) { case 'PHPMAILER': case 'OPENMAIL': oAux = getField('MESS_SERVER'); if (oAux.value.trim() == '') { 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.trim() == '') { 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(); };