YAHOO.namespace("admin.container"); /* * Licenca: * * GPL2 * * i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet * * Direitos Autorais Reservados (c) 2012 Edmar Moretti Desenvolvedor: Edmar * Moretti edmar.moretti@gmail.com * * Este programa é software livre; você pode redistribuí-lo * e/ou modificá-lo sob os termos da Licença Pública Geral * GNU conforme publicada pela Free Software Foundation; * * Este programa é distribuído na expectativa de que seja * útil, porém, SEM NENHUMA GARANTIA; nem mesmo a garantia * implícita de COMERCIABILIDADE OU ADEQUAÇÃO A UMA * FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral * do GNU para mais detalhes. Você deve ter recebido uma cópia da * Licença Pública Geral do GNU junto com este programa; se * não, escreva para a Free Software Foundation, Inc., no endereço * 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. * */ /* * Function: initMenu * * Inicializa o editor de mapas */ function initMenu() { ativaBotaoAdiciona( "../php/metaestat.php?funcao=alteraMapa", "adiciona"); var botao = new YAHOO.widget.Button( "upload", { onclick : { fn : function() { core_montaEditor(); $i("editor_bd").innerHTML = formUploadImagem(); } } }); botao.addClass("rodar"); core_carregando("ativa"); core_ativaPainelAjuda( "ajuda", "botaoAjuda"); core_pegaDados( "buscando mapas...", "../php/metaestat.php?funcao=listaMapas", "montaArvore"); } function ativaBotaoAdiciona(sUrl, idBotao) { var botao, adiciona = function() { core_carregando("ativa"); core_carregando(" adicionando um novo registro"); var callback = { success : function(o) { try { var j = YAHOO.lang.JSON.parse(o.responseText); adicionaNosMapa( [ j ], true); editar( "mapa", j.id_mapa); core_carregando("desativa"); } catch (e) { core_handleFailure( e, o.responseText); } }, failure : core_handleFailure, argument : { foo : "foo", bar : "bar" } }; core_makeRequest( sUrl, callback); }; botao = new YAHOO.widget.Button( idBotao, { onclick : { fn : adiciona } }); botao.addClass("rodar"); } function formUploadImagem() { var ins = '' + '
' + '

Imagem (jpg ou png) se o arquivo já existir, será substituído:

' + '

' + '' + '

' + ''; return ins; } /* * Function: montaArvore * * Monta a árvore de edição * * */ function montaArvore(dados) { YAHOO.example.treeExample = new function() { tree = ""; function changeIconMode() { buildTree(); } function loadNodeData(node, fnLoadComplete) { var sUrl = "../php/metaestat.php?funcao=listaGruposMapa&id_mapa=" + node.data.id_mapa; var callback = { success : function(oResponse) { var dados = YAHOO.lang.JSON.parse(oResponse.responseText); adicionaNosGrupos( node, dados, false); oResponse.argument.fnLoadComplete(); }, failure : function(oResponse) { oResponse.argument.fnLoadComplete(); }, argument : { "node" : node, "fnLoadComplete" : fnLoadComplete }, timeout : 25000 }; YAHOO.util.Connect.asyncRequest( 'GET', sUrl, callback); } function buildTree() { tree = new YAHOO.widget.TreeView( "tabela"); tree.setDynamicLoad( loadNodeData, 1); var root = tree.getRoot(); var tempNode = new YAHOO.widget.TextNode( '', root, false); tempNode.isLeaf = true; tempNode.enableHighlight = false; core_carregando("desativa"); } buildTree(); }(); adicionaNosMapa(dados); tree.draw(); } function testarMapfile(codigoMap) { window.open("../../testamapfile.php?map=" + codigoMap + ".map"); } function adicionaNosTemas(no, dados, redesenha) { if (!redesenha) { var conteudo = "Adicionar novo tema:"; var d = { html : conteudo }; var tempNode = new YAHOO.widget.HTMLNode( d, no, false, true); tempNode.isLeaf = true; tempNode.enableHighlight = false; } for ( var i = 0, j = dados.length; i < j; i++) { if (dados[i].titulo == "null" || !dados[i].titulo || dados[i].id_mapa_tema == "") { dados[i].titulo = ""; } var conteudo = ""; conteudo += " "; conteudo += " "; if (dados[i].id_mapa_tema != "") { conteudo += " " + dados[i].titulo + ""; } else { conteudo += " Edite para definir o tema!!!"; } var d = { html : conteudo, id_mapa_tema : dados[i].id_mapa_tema, tipo : "tema" }; var tempNode = new YAHOO.widget.HTMLNode( d, no, false, true); tempNode.isLeaf = true; tempNode.enableHighlight = false; } if (redesenha) { tree.draw(); } } function adicionaNosGrupos(no, dados, redesenha) { function temaIconMode() { var newVal = parseInt(this.value); if (newVal != currentIconMode) { currentIconMode = newVal; } } function loadTemasData(node, fnLoadComplete) { var sUrl = "../php/metaestat.php?funcao=listaTemasMapa&id_mapa_grupo=" + node.data.id_mapa_grupo; var callback = { success : function(oResponse) { var dados = YAHOO.lang.JSON.parse(oResponse.responseText); adicionaNosTemas( node, dados, false); oResponse.argument.fnLoadComplete(); }, failure : function(oResponse) { oResponse.argument.fnLoadComplete(); }, argument : { "node" : node, "fnLoadComplete" : fnLoadComplete }, timeout : 7000 }; YAHOO.util.Connect.asyncRequest( 'GET', sUrl, callback); } if (!redesenha) { var conteudo = "Adicionar grupo de temas"; var d = { html : conteudo }; var tempNode = new YAHOO.widget.HTMLNode( d, no, false, true); tempNode.isLeaf = true; tempNode.enableHighlight = false; } for ( var i = 0, j = dados.length; i < j; i++) { var conteudo = ""; conteudo += " "; conteudo += " "; if (dados[i].titulo != "") { conteudo += " " + dados[i].titulo + ""; } else { conteudo += " Edite para definir o grupo!!!"; } var d = { html : conteudo, id_mapa_grupo : dados[i].id_mapa_grupo, tipo : "grupo" }; var tempNode = new YAHOO.widget.HTMLNode( d, no, false, true); tempNode.enableHighlight = false; // tempNode.isLeaf = true; tempNode.setDynamicLoad( loadTemasData, temaIconMode); } if (redesenha) { tree.draw(); } } function adicionaNosMapa(dados, redesenha) { var root = tree.getRoot(); for ( var i = 0, j = dados.length; i < j; i++) { var conteudo = ""; conteudo += " "; conteudo += " "; conteudo += " "; if (dados[i].titulo != "") { conteudo += " id " + dados[i].id_mapa + " - " + dados[i].titulo + ""; } else { conteudo += " id " + dados[i].id_mapa + " - Edite para definir o Mapa!!!"; } var d = { html : conteudo, id_mapa : dados[i].id_mapa, tipo : "mapa" }; var tempNode = new YAHOO.widget.HTMLNode( d, root, false, true); tempNode.enableHighlight = false; } if (redesenha) { tree.draw(); } } function testaMapaTemplate(template, id_mapa) { if (template == "") { alert("Template nao definido"); return; } var p = i3GEO.configura.locaplic + "/admin/php/metaestat.php?funcao=listaTemplatesMapa"; i3GEO.util.ajaxGet( p, function(retorno) { var url = i3GEO.configura.locaplic + retorno.metaestatTemplates + "/" + template + "?id=" + id_mapa; window.open( url, "_blank"); }); } function editar(tipo, id) { core_carregando("ativa"); core_carregando(" buscando dados"); var sUrl = null; var callback = { success : function(o) { try { if (tipo == "mapa") { var dados = YAHOO.lang.JSON.parse(o.responseText); core_montaEditor("gravaDados('mapa','" + id + "')","","","","Mapa",true,true,false); $i("editor_bd").innerHTML = montaDivMapa(dados); core_carregando("desativa"); } if (tipo == "grupo") { var dados = YAHOO.lang.JSON.parse(o.responseText); core_montaEditor("gravaDados('grupo','" + id + "')","","","","Grupo",true,true,false); $i("editor_bd").innerHTML = montaDivGrupo(dados); core_carregando("desativa"); } if (tipo == "tema") { var dados = YAHOO.lang.JSON.parse(o.responseText); core_montaEditor("gravaDados('tema','" + id + "')","","","","Tema",true,true,false); montaDivTema(dados); core_carregando("desativa"); } core_carregando("desativa"); } catch (e) { core_handleFailure( e, o.responseText); } }, failure : core_handleFailure, argument : { foo : "foo", bar : "bar" } }; if (tipo == "mapa") { sUrl = "../php/metaestat.php?funcao=listaMapas&id_mapa=" + id; } if (tipo == "grupo") { sUrl = "../php/metaestat.php?funcao=listaGruposMapa&id_mapa_grupo=" + id; } if (tipo == "tema") { sUrl = "../php/metaestat.php?funcao=listaTemasMapa&id_mapa_tema=" + id; } if (sUrl) { core_makeRequest( sUrl, callback); } } function montaDivTema(i) { var sUrl = "../php/metaestat.php?funcao=arvoreVar&dadosGerenciais=nao&detalhes=nao", ins = "", callback = { success : function(o) { o = YAHOO.lang.JSON.parse(o.responseText); var n = o.length, m, i, j, filhos, a, b; // monta os divs onde entrarao as arvores for (i = 0; i < n; i++) { ins += "
" + o[i].titulo + "
"; } $i("editor_bd").innerHTML = ins; // monta as arvores for (i = 0; i < n; i++) { a = []; filhos = o[i].filhos; m = filhos.length; for (j = 0; j < m; j++) { b = {}; b.text = "" + (j + 1) + " " + filhos[j].titulo + "

"; b.url = 'javascript:$i(\"Etitulo\").value=\"' + filhos[j].titulo + '\";$i(\"Eid_medida_variavel\").value=\"' + filhos[j].id + '\"'; a.push(b); } core_arvore( o[i].titulo, "arvore_" + i, { "propriedades" : a }); } // ins += // "
"+YAHOO.lang.JSON.parse(o.responseText)+"
"; // $i("editor_bd").innerHTML = ins; }, failure : function() { return ins; }, argument : { foo : "foo", bar : "bar" } }, param = { "linhas" : [ { titulo : "Título:", id : "Etitulo", size : "50", value : i.titulo, tipo : "text", div : "" }, { titulo : "ID da medida de uma variável (clique nos links abaixo para escolher):", id : "Eid_medida_variavel", size : "50", value : i.id_medida_variavel, tipo : "text", div : "" } ] }; ins += core_geraLinhas(param); core_makeRequest( sUrl, callback); } function montaDivGrupo(i) { var param = { "linhas" : [ { titulo : "Título:", id : "Etitulo", size : "50", value : i.titulo, tipo : "text", div : "" } ] }; var ins = ""; ins += core_geraLinhas(param); return (ins); } function montaDivMapa(i) { var limg = i3GEO.configura.locaplic + "/imagens/ic_zoom.png", param = { "linhas" : [ { titulo : "Título:", id : "Etitulo", size : "50", value : i.titulo, tipo : "text", div : "" }, { titulo : "Template (prévia) :", id : "Etemplate", size : "50", value : i.template, tipo : "text", div : "" }, { titulo : "Logo (esquerdo) :", id : "Elogoesquerdo", size : "50", value : i.logoesquerdo, tipo : "text", div : "" }, { titulo : "Logo (direito) ::", id : "Elogodireito", size : "50", value : i.logodireito, tipo : "text", div : "" } ] }, ins = ""; ins += core_geraLinhas(param); ins += "Publicado?
"; ins += ""; return (ins); } function selLogo(id) { var callback = { success : function(o) { try { var dados = YAHOO.lang.JSON.parse(o.responseText).nomes, n = dados.length, i, valores = [], textos = [], selecionados = [ $i(id).value ]; for (i = 0; i < n; i++) { valores.push(dados[i]); textos.push(dados[i]); } core_menuCheckBox( valores, textos, selecionados, $i(id), "", "", "sim"); } catch (e) { core_handleFailure( e, o.responseText); } }, failure : core_handleFailure, argument : { foo : "foo", bar : "bar" } }; core_makeRequest( i3GEO.configura.locaplic + "/admin/php/metaestat.php?funcao=listaLogosMapa", callback); } function selTemplate(id) { var callback = { success : function(o) { try { var dados = YAHOO.lang.JSON.parse(o.responseText).nomes, n = dados.length, i, valores = [], textos = [], selecionados = [ $i(id).value ]; for (i = 0; i < n; i++) { if (dados[i].split(".")[1] === "php") { valores.push(dados[i]); textos.push(dados[i]); } } core_menuCheckBox( valores, textos, selecionados, $i(id), "", "", "sim"); } catch (e) { core_handleFailure( e, o.responseText); } }, failure : core_handleFailure, argument : { foo : "foo", bar : "bar" } }; core_makeRequest( i3GEO.configura.locaplic + "/admin/php/metaestat.php?funcao=listaTemplatesMapa", callback); } function excluir(tipo, id) { var mensagem = " excluindo o registro do id= " + id; var no = null; var sUrl = null; if (tipo == "mapa") { no = tree.getNodeByProperty( "id_mapa", id); sUrl = "../php/metaestat.php?funcao=excluirMapa&id_mapa=" + id; } if (tipo == "grupo") { no = tree.getNodeByProperty( "id_mapa_grupo", id); sUrl = "../php/metaestat.php?funcao=excluirMapaGrupo&id_mapa_grupo=" + id; } if (tipo == "tema") { no = tree.getNodeByProperty( "id_mapa_tema", id); sUrl = "../php/metaestat.php?funcao=excluirMapaTema&id_mapa_tema=" + id; } if (sUrl) { core_excluiNoTree( sUrl, no, mensagem); } } /* * Function: adicionarTema * * Adiciona um novo tema * * */ function adicionarTema(id) { var no = tree.getNodeByProperty( "id_mapa_grupo", id); var sUrl = "../php/metaestat.php?funcao=alteraMapaTema&id_mapa_grupo=" + id; var callback = { success : function(oResponse) { var dados = YAHOO.lang.JSON.parse(oResponse.responseText); adicionaNosTemas( no, [ dados ], true); editar( 'tema', dados.id_mapa_tema); }, failure : core_handleFailure, argument : { foo : "foo", bar : "bar" } }; core_makeRequest( sUrl, callback); } function adicionarGrupo(id_mapa) { var no = tree.getNodeByProperty( "id_mapa", id_mapa); var sUrl = "../php/metaestat.php?funcao=alteraMapaGrupo&id_mapa=" + id_mapa; var callback = { success : function(oResponse) { var dados = YAHOO.lang.JSON.parse(oResponse.responseText); adicionaNosGrupos( no, [ dados ], true); editar( 'grupo', dados.id_mapa_grupo); }, failure : core_handleFailure, argument : { foo : "foo", bar : "bar" } }; core_makeRequest( sUrl, callback); } /* * Function: gravaDados * * Altera dados de um elemento do Mapa * * * * * * */ function gravaDados(tipo, id) { var campos = null; var par = null; var prog = null; if (tipo == "mapa") { campos = new Array( "titulo", "template", "logoesquerdo", "logodireito", "publicado"); par = "&id_mapa=" + id; prog = "../php/metaestat.php?funcao=alteraMapa"; } if (tipo == "grupo") { campos = new Array( "titulo"); par = "&id_mapa_grupo=" + id; prog = "../php/metaestat.php?funcao=alteraMapaGrupo"; } if (tipo == "tema") { campos = new Array( "titulo", "id_medida_variavel"); par = "&id_mapa_tema=" + id; prog = "../php/metaestat.php?funcao=alteraMapaTema"; } for ( var i = 0; i < campos.length; i++) { par += "&" + campos[i] + "=" + ($i("E" + campos[i]).value); } var callback = { success : function(o) { try { if (YAHOO.lang.JSON.parse(o.responseText) == "erro") { core_carregando("Não foi possível excluir. Verifique se não existem menus vinculados a este tema"); setTimeout( "core_carregando('desativa')", 3000); } else { if (tipo == "mapa") { var no = tree.getNodeByProperty( "id_mapa", id); no.getContentEl().getElementsByTagName( "span")[0].innerHTML = document.getElementById("Etitulo").value; no.getContentEl().getElementsByTagName( "span")[0].style.color = ""; no.html = no.getContentEl().innerHTML; core_pegaDados( "buscando mapas...", "../php/metaestat.php?funcao=listaMapas", "montaArvore"); } if (tipo == "grupo") { var no = tree.getNodeByProperty( "id_mapa_grupo", id); no.getContentEl().getElementsByTagName( "span")[0].innerHTML = document.getElementById("Etitulo").value; no.getContentEl().getElementsByTagName( "span")[0].style.color = ""; no.html = no.getContentEl().innerHTML; } if (tipo == "tema") { var no = tree.getNodeByProperty( "id_mapa_tema", id); no.getContentEl().getElementsByTagName( "span")[0].innerHTML = document.getElementById("Etitulo").value; no.getContentEl().getElementsByTagName( "span")[0].style.color = ""; no.html = no.getContentEl().innerHTML; } core_carregando("desativa"); } YAHOO.admin.container.panelEditor.destroy(); YAHOO.admin.container.panelEditor = null; } catch (e) { core_handleFailure( e, o.responseText); } }, failure : core_handleFailure, argument : { foo : "foo", bar : "bar" } }; if (prog && par) { core_carregando("ativa"); core_carregando(" gravando o registro do id= " + id); var sUrl = prog + par; core_makeRequest( sUrl, callback, 'POST'); } } /* Function: abreMapa Abre o Mapa para teste */ function abreMapa(id) { window.open( "../../classesphp/atlas_controle.php?atlasId_=" + id + "&funcao=criaMapa", "blank"); }