/** * Mensagem podem facilmente inseridas utilizando a chamada "mensagem.put("Titulo da mensagem", ["um item de mendagem", "um item de mensagem"], "OK");" * * Os tipos de mensagem são: OK, ERRO, ALERTA * O tipo default é ALERTA * Para mensagem de linha unica, coloque a no titulo. */ var Mensagem = function(){ var PropsMensag = function(complementoClasse){ var imgP1 = ""; this.$ImgAlerta = imgP1+"alerta"+imgP2; this.$ImgErro = imgP1+"erro"+imgP2; this.$ImgSucesso = imgP1+"sucesso"+imgP2; this.$mensagemBloco = $("#container_mensagem.container_mensagem"+complementoClasse+""); if(this.$mensagemBloco.length == 0){ var menu = $("#menu_horizontal_conectado"), item; if(menu.length == 0){ item = $("body").prepend("
").find("#container_mensagem"+complementoClasse); }else{ item = menu.after("
").siblings("#container_mensagem"+complementoClasse); } item.html(""); this.$mensagemBloco = $("#container_mensagem.container_mensagem"+complementoClasse+""); } this.$container = $("#container_mensagem"+complementoClasse); this.$mensagemOriginal = $("#container_mensagem.container_mensagem"+complementoClasse+" #mensagem"); this.$mensagemTipo = $("#container_mensagem.container_mensagem"+complementoClasse+" .tipo_mensagem"); this.$mensagemAcao = $("#container_mensagem.container_mensagem"+complementoClasse+" .mensagem_acao"); this.$mensagemImagem = $("#container_mensagem.container_mensagem"+complementoClasse+" .imagem"); this.$mensagemTitulo = $("#container_mensagem.container_mensagem"+complementoClasse+" .mensagem-titulo"); this.$mensagemItens = $("#container_mensagem.container_mensagem"+complementoClasse+" #itens"); this.TIME_TRANSI = 500; this.$mensagemOriginal.find("b").css({'border-radius': '10px', 'background-color': '#FAFFBD'}); return this; }; this.put = function(titulo, itensMensagensArray, tipo, naoFecha){ var complementoClasse=new Date().toISOString().replace(/[\D]/g,""); var propsMensag = new PropsMensag(complementoClasse); var classe = "mensagemAviso", img = propsMensag.$ImgAlerta, itens = "", timeSleep = 2000, qtdLinhas = 1; if(tipo == "ERRO"){ classe = "mensagemErro"; img = propsMensag.$ImgErro; } if(tipo == "OK"){ classe = "mensagemOk"; img = propsMensag.$ImgSucesso; } propsMensag.$mensagemTipo.removeAttr("hidden").removeAttr("class").addClass("tipo_mensagem "+classe); propsMensag.$mensagemImagem.html(img); propsMensag.$mensagemTitulo.html(" "+titulo); if(itensMensagensArray){ if($.isArray(itensMensagensArray)){ $.each(itensMensagensArray ,function(i, item){ if(item){ qtdLinhas++; itens+=""; } }); }else{ qtdLinhas++; itens+=""; } } propsMensag.$mensagemItens.html(itens); propsMensag.$mensagemBloco.fadeIn(0); propsMensag.$mensagemOriginal.fadeIn(0); propsMensag.$mensagemBloco.css({position:'relative'}); propsMensag.$mensagemOriginal.css({'background-color': '#FAFFBD'}); propsMensag.$mensagemTipo.css({'background-color': '#FAFFBD'}); setTimeout(function(){ if(!funcs.inScopoVisao(propsMensag.$mensagemTipo)){ propsMensag.$mensagemBloco.css({top: '3%', left: 0, position:'fixed'}); } if(naoFecha !== true) { setTimeout(function() { propsMensag.$mensagemBloco.fadeOut(propsMensag.TIME_TRANSI); //TODO recuperar uma para cada setTimeout(function(){ propsMensag.$container.remove(); }, propsMensag.TIME_TRANSI+20); }, timeSleep*qtdLinhas+3000); } }, propsMensag.TIME_TRANSI); }; this.inScopoVisao = function(element) { if (typeof jQuery === "function" && element instanceof jQuery) { element = element[0]; } var elementBounds = element.getBoundingClientRect(); return ( elementBounds.top >= 0 && elementBounds.left >= 0 && elementBounds.bottom <= $(window).height() && elementBounds.right <= $(window).width() ); }; this.camposObrigatorios = function(){ $("#popup_container").find("#popup_ok").click(); this.put("Os campos marcados com asterisco (*) são obrigatórios"); }; this.baseProjeto = "/sivisa"; var funcs = this; return this; }, mensagem = undefined; jQuery(document).ready(function(){ mensagem = new Mensagem(); $('body').delegate('.mensagem_fechar','click', function() { $('div#mensagem').fadeOut("500"); }); });