// ******************************************************************************************************************************
// Classe que gerencia o envio de um e-mail
// ******************************************************************************************************************************
function clEmail(pai, parametros) {
for (var i in parametros) {
this[i] = parametros[i];
}
this.pai = pai;
if (this.mostra) this.criaBox();
else this.envia();
}
clEmail.prototype.criaBox = function() {
var esteEmail = this;
var alturaTela = Math.round(0.9 * tamanhoTela().altura);
var div = this.divEmail = $("
").appendTo($(document.body));
div.dialog({
title: "envio de e-mail",
autoOpen: false,
width: '70%',
height: alturaTela,
minHeight: alturaTela,
resizable: false,
modal: true,
closeOnEscape: false,
zIndex: 10000000,
buttons: [
{ text: "enviar", click: function() { esteEmail.envia.call(esteEmail); } },
{ text: "cancelar", click: function() { $(this).dialog("close"); } }
],
close: function() { $(this).remove(); }
}).dialog("open");
this.estrutura();
this.buscaDados();
};
clEmail.prototype.estrutura = function() {
$(
"" + "de" + ":
" +
"" +
"
"
).appendTo(this.divEmail);
$(
"" +
"" + "Ășltimo envio" + ": "+
"" + "em" + ": "+
"
"
).insertBefore(this.divEmail);
};
clEmail.prototype.buscaDados = function() {
var esteEmail = this;
$("" + "Montando o e-mail" + ". " + "por favor aguarde" + "...
").appendTo(this.divEmail.find("div.corpo"));
new cnx.carrega(this.url + "&acao=mostra", function() { esteEmail.monta.call(esteEmail, this.resposta); });
};
clEmail.prototype.monta = function(dados) {
var dados = jQuery.parseJSON(dados);
this.divEmail.dialog("option", "title", dados.titulo);
this.divEmail.find('div.remetente span').text(dados.remetente);
var colocaLog = (dados.logEnvio.nome && dados.logEnvio.quando) ? true : false;
if(dados.logEnvio.nome) {
$('div.ultimoEnvio span.quem').text(dados.logEnvio.nome);
$('div.ultimoEnvio span.quando').text(dados.logEnvio.quando);
}else {
$('div.ultimoEnvio').remove();
}
var ulDest = this.divEmail.find('div.destinatario ul');
for (var i = 0, t = dados.dest.length; t--; i++) {
$(" ").text(dados.dest[i]).appendTo(ulDest);
}
this.divEmail.find('div.corpo').html(dados.corpo);
};
clEmail.prototype.envia = function() {
var esteEmail = this;
$("" + "Enviando o e-mail" + ". " + "por favor aguarde" + "...
").appendTo(this.divEmail.find("div.corpo").empty());
this.divEmail.dialog("option", "buttons", [ { text: 'fechar', click: function() { $(this).dialog("close"); } } ]);
new cnx.carrega(this.url + "&acao=envia", function() { esteEmail.emailEnviado.call(esteEmail, this.resposta); });
};
clEmail.prototype.emailEnviado = function(dados) {
var dados = jQuery.parseJSON(dados);
this.divEmail.dialog("close");
if (dados.envio == "1") {
var html = "" + "e-mail enviado" + "
";
var colocaAviso = (this.pai.onde) ? this.pai.onde : this.pai.elementoBase;
var divEnviado = $(html).appendTo($(colocaAviso)).slideDown(300);
setTimeout(function() { divEnviado.fadeOut(function() { removeObj(this) }); }, 3000);
} else {
var html = "" + "houve um problema no envio do e-mail" + ":
" + dados.erro + "
";
var divEnviado = $(html).appendTo($(colocaAviso)).slideDown(300);
divEnviado.find('a').on('click', function(e) {
divEnviado.remove();
if (e.preventDefault) e.preventDefault(); else return false;
});
}
};
// *******************************************************************************************************************************
// *******************************************************************************************************************************