/* Title: atlas.js Funções que controlam a interface do editor de atlas Licenca: GPL2 i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet Direitos Autorais Reservados (c) 2006 Ministério do Meio Ambiente Brasil 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. Arquivo: i3geo/admin/js/atlas.js */ YAHOO.namespace("admin.container"); /* Function: initMenu Inicializa o editor */ function initMenu() { ativaBotaoAdicionaAtlas("../php/atlas.php?funcao=alterarAtlas","adiciona"); core_carregando("ativa"); core_ativaPainelAjuda("ajuda","botaoAjuda"); core_pegaPerfis("pegaAtlas()"); } function ativaBotaoAdicionaAtlas(sUrl,idBotao) { var 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); adicionaNosAtlas(j,true); editar("atlas",j[j.length-1].id_atlas); core_carregando("desativa"); } catch(e){core_handleFailure(e,o.responseText);} }, failure:core_handleFailure, argument: { foo:"foo", bar:"bar" } }; core_makeRequest(sUrl,callback); }; //cria o botão de adição de um novo menu new YAHOO.widget.Button(idBotao,{ onclick: { fn: adiciona } }); } /* Function: pegaAtlas Obtém a lista de atlas */ function pegaAtlas() { core_pegaDados("buscando atlas...","../php/atlas.php?funcao=pegaAtlas","montaArvore"); } /* 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/atlas.php?funcao=pegaPranchas&id_atlas="+node.data.id_atlas; var callback = { success: function(oResponse) { var dados = YAHOO.lang.JSON.parse(oResponse.responseText); adicionaNosPranchas(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.enableHighlight = false; tempNode.isLeaf = true; core_carregando("desativa"); } buildTree(); }(); adicionaNosAtlas(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.enableHighlight = false; tempNode.isLeaf = true; } for (var i=0, j=dados.length; i"; conteudo += " "; conteudo += " "; conteudo += " "; conteudo += " "; if(dados[i].codigo_tema != "") {conteudo += " "+dados[i].codigo_tema+" - "+dados[i].nome_tema+"";} else {conteudo += " Edite para definir o tema!!!";} var d = {html:conteudo,id_tema:dados[i].id_tema,tipo:"tema"}; var tempNode = new YAHOO.widget.HTMLNode(d, no, false,true); tempNode.enableHighlight = false; tempNode.isLeaf = true; } if(redesenha){tree.draw();} } /* Function: adicionaNosPranchas Mostra os nós de uma prancha */ function adicionaNosPranchas(no,dados,redesenha) { function temaIconMode() { var newVal = parseInt(this.value); if (newVal != currentIconMode) {currentIconMode = newVal;} } function loadTemasData(node, fnLoadComplete) { var sUrl = "../php/atlas.php?funcao=pegaTemas&id_prancha="+node.data.id_prancha; 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 nova prancha"; var d = {html:conteudo}; var tempNode = new YAHOO.widget.HTMLNode(d, no, false,true); tempNode.enableHighlight = false; tempNode.isLeaf = true; } for (var i=0, j=dados.length; i"; conteudo += " "; conteudo += " "; conteudo += " "; if(dados[i].titulo_prancha != "") {conteudo += " "+dados[i].titulo_prancha+"";} else {conteudo += " Edite para definir a prancha!!!";} var d = {html:conteudo,id_prancha:dados[i].id_prancha,tipo:"prancha"}; 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 adicionaNosAtlas(dados,redesenha) { var root = tree.getRoot(); for (var i=0, j=dados.length; i"; conteudo += " "; conteudo += " "; conteudo += " "; conteudo += " "; if(dados[i].titulo_atlas != "") {conteudo += " "+dados[i].titulo_atlas+"";} else {conteudo += " Edite para definir o Atlas!!!";} var d = {html:conteudo,id_atlas:dados[i].id_atlas,tipo:"atlas"}; var tempNode = new YAHOO.widget.HTMLNode(d, root, false,true); tempNode.enableHighlight = false; } if(redesenha){tree.draw();} } /* Function: editar Abre o editor de um nó */ function editar(tipo,id) { core_carregando("ativa"); core_carregando(" buscando dados"); var sUrl = null; var callback = { success:function(o) { try { if(tipo == "atlas") { var dados = YAHOO.lang.JSON.parse(o.responseText)[0]; core_montaEditor("gravaDados('atlas','"+id+"')"); $i("editor_bd").innerHTML = montaDivAtlas(dados); core_carregando("desativa"); core_comboPranchas("comboPranchaIni","Epranchadefault_atlas",dados.pranchadefault_atlas,"",id); } if(tipo == "prancha") { var dados = YAHOO.lang.JSON.parse(o.responseText)[0]; core_montaEditor("gravaDados('prancha','"+id+"')"); $i("editor_bd").innerHTML = montaDivPrancha(dados); core_carregando("desativa"); } if(tipo == "tema") { var dados = YAHOO.lang.JSON.parse(o.responseText)[0]; core_montaEditor("gravaDados('tema','"+id+"')"); $i("editor_bd").innerHTML = montaDivTema(dados); core_carregando("desativa"); core_comboMapfiles("comboTemaIni","Ecodigo_tema",dados.codigo_tema,"",true); } core_carregando("desativa"); } catch(e){core_handleFailure(e,o.responseText);} }, failure:core_handleFailure, argument: { foo:"foo", bar:"bar" } }; if(tipo == "atlas") {sUrl = "../php/atlas.php?funcao=pegaDadosAtlas&id_atlas="+id;} if(tipo == "prancha") {sUrl = "../php/atlas.php?funcao=pegaDadosPrancha&id_prancha="+id;} if(tipo == "tema") {sUrl = "../php/atlas.php?funcao=pegaDadosTema&id_tema="+id;} if(sUrl) {core_makeRequest(sUrl,callback);} } function montaDivTema(i) { var ins = ""; ins += "
Código do tema:
"; ins += "
"; ins += "Ligado (ao abrir a prancha, esse tema estará visível)?
"; ins += ""; ins += ""; return(ins); } function montaDivPrancha(i) { var param = { "linhas":[ {titulo:"Título:",id:"Etitulo_prancha",size:"50",value:i.titulo_prancha,tipo:"text",div:""}, {titulo:"(opcional) Descrição:",id:"Edesc_prancha",size:"50",value:i.desc_prancha,tipo:"text",div:""}, {titulo:"(opcional) Link para o texto que será mostrado na inicialização:",id:"Elink_prancha",size:"50",value:i.link_prancha,tipo:"text",div:""}, {titulo:"Largura da janela do texto inicial:",id:"Ew_prancha",size:"5",value:i.w_prancha,tipo:"text",div:""}, {titulo:"Altura:",id:"Eh_prancha",size:"5",value:i.h_prancha,tipo:"text",div:""}, {titulo:"(opcional) Ícone que será utilizado na apresentação da prancha:",id:"Eicone_prancha",size:"50",value:i.icone_prancha,tipo:"text",div:""}, {titulo:"Extensão geográfica (xmin ymin xmax ymax):",id:"Emapext_prancha",size:"30",value:i.mapext_prancha,tipo:"text",div:""} ] }; var ins = ""; ins += core_geraLinhas(param); ins += ""; return(ins); } function montaDivAtlas(i) { var param = { "linhas":[ {titulo:"Título:",id:"Etitulo_atlas",size:"50",value:i.titulo_atlas,tipo:"text",div:""}, {titulo:"(opcional) Descrição:",id:"Edesc_atlas",size:"50",value:i.desc_atlas,tipo:"text",div:""}, {titulo:"(opcional) Link para o texto que será mostrado na inicialização do Atlas:",id:"Elink_atlas",size:"50",value:i.link_atlas,tipo:"text",div:""}, {titulo:"Largura da janela do texto inicial:",id:"Ew_atlas",size:"5",value:i.w_atlas,tipo:"text",div:""}, {titulo:"Altura:",id:"Eh_atlas",size:"5",value:i.h_atlas,tipo:"text",div:""}, {titulo:"(opcional) Mapfile inicial (mapfile que será usado como base para montagem do mapa inicial. Se não for definido, será usado o default do i3geo. Utilize o endereço completo do aquivo mapfile no servidor.):",id:"Ebasemapfile_atlas",size:"50",value:i.basemapfile_atlas,tipo:"text",div:""}, {titulo:"(opcional) Ícone que será utilizado na montagem da lista de todos os Atlas:",id:"Eicone_atlas",size:"50",value:i.icone_atlas,tipo:"text",div:""}, {titulo:"(opcional) Template HTML (se não for especificado, será usado o default do i3geo. Utilize o caminho completo do arquivo html no servidor):",id:"Etemplate_atlas",size:"50",value:i.template_atlas,tipo:"text",div:""} ] }; var ins = ""; ins += core_geraLinhas(param); ins += "Prancha inicial (será mostrada quando iniciar o atlas):
"; ins += "

"; ins += "Tipo da apresentação das guias:
"; ins += "