/* Title: operacoes.js Funções que controlam o cadastro de funcionalidades 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/operacoes.js */ YAHOO.namespace("admin.container"); /* Function: initMenu Inicializa o editor */ function initMenu(){ ativaBotaoAdicionaOperacao("../php/operacoes.php?funcao=alterarOperacoes","adiciona"); core_carregando("ativa"); core_ativaPainelAjuda("ajuda","botaoAjuda"); pegaOperacoes(); } function ativaBotaoAdicionaOperacao(sUrl,idBotao){ var botao, adiciona = function() { core_carregando("ativa"); core_carregando($trad("msgNovoRegistro",i3GEOadmin.core.dicionario)); var callback = { success:function(o) { try { var j = YAHOO.lang.JSON.parse(o.responseText); adicionaNosOperacoes(j,true); editar("operacoes",j[j.length-1].id_operacao); 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 botao = new YAHOO.widget.Button(idBotao,{ onclick: { fn: adiciona } }); botao.addClass("rodar"); } /* Function: pegaOperacoes Obtém a lista de atlas */ function pegaOperacoes(){ core_pegaDados($trad("msgBuscaOperacoes",i3GEOadmin.operacoes.dicionario),"../php/operacoes.php?funcao=pegaOperacoes","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/operacoes.php?funcao=pegaPapeisOperacao&id_operacao="+node.data.id_operacao; var callback = { success: function(oResponse){ var dados = YAHOO.lang.JSON.parse(oResponse.responseText); adicionaNosPapeis(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(); }(); adicionaNosOperacoes(dados); tree.draw(); } /* Function: adicionaNosPapeis Mostra os nos de uma operacao */ function adicionaNosPapeis(no,dados,redesenha) { function temaIconMode() { var newVal = parseInt(this.value); if (newVal != currentIconMode) {currentIconMode = newVal;} } if(!redesenha) { var conteudo = ""+ $trad("adicionaPapel",i3GEOadmin.operacoes.dicionario) +""; 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"; if(dados[i].nome != "") {conteudo += " "+dados[i].nome+" - "+dados[i].descricao+"";} else {conteudo += " Edite para definir o papel!!!";} var d = {html:conteudo,id_nopapel:dados[i].id_operacao+"_"+dados[i].id_papel,tipo:"papel"}; var tempNode = new YAHOO.widget.HTMLNode(d, no, false,true); tempNode.isLeaf = true; tempNode.enableHighlight = false; } if(redesenha){tree.draw();} } function adicionaNosOperacoes(dados,redesenha){ var root = tree.getRoot(); for (var i=0, j=dados.length; i"; if(dados[i].codigo != "") {conteudo += " "+dados[i].codigo+" - "+dados[i].descricao+"";} else {conteudo += " "+ $trad("editaOperacao",i3GEOadmin.operacoes.dicionario) +"";} var d = {html:conteudo,id_operacao:dados[i].id_operacao,tipo:"operacao"}; var tempNode = new YAHOO.widget.HTMLNode(d, root, false,true); tempNode.enableHighlight = false; } if(redesenha){tree.draw();} } /* Function: editar Abre o editor de um no */ function editar(tipo,id) { core_carregando("ativa"); core_carregando($trad("msgBuscaDados",i3GEOadmin.core.dicionario)); var sUrl = null; var callback = { success:function(o) { try { if(tipo == "operacao") { var dados = YAHOO.lang.JSON.parse(o.responseText)[0]; core_montaEditor("gravaDados('operacao','"+id+"')","","","",$trad("operacao",i3GEOadmin.operacoes.dicionario),true,true,false); $i("editor_bd").innerHTML = montaDivOperacao(dados); core_carregando("desativa"); } if(tipo == "papel") { var dados = YAHOO.lang.JSON.parse(o.responseText); core_montaEditor("gravaDados('papel','"+id+"')","250px","100px","","Papel",true,true,false); $i("editor_bd").innerHTML = montaDivPapel(dados); document.getElementById("Eid_papel").style.width = "200px"; core_carregando("desativa"); } core_carregando("desativa"); } catch(e){core_handleFailure(e,o.responseText);} }, failure:core_handleFailure, argument: { foo:"foo", bar:"bar" } }; if(tipo == "operacao") {sUrl = "../php/operacoes.php?funcao=pegaDadosOperacao&id_operacao="+id;} if(tipo == "papel") {sUrl = "../php/operacoes.php?funcao=listaPapeis";} if(sUrl) {core_makeRequest(sUrl,callback);} } function montaDivOperacao(i){ var param = { "linhas":[ {titulo:$trad("codigo",i3GEOadmin.operacoes.dicionario),id:"Ecodigo",size:"50",value:i.codigo,tipo:"text",div:""}, {titulo:$trad("descricao",i3GEOadmin.operacoes.dicionario),id:"Edescricao",size:"50",value:i.descricao,tipo:"text",div:""} ] }; var ins = ""; ins += core_geraLinhas(param); return(ins); } function montaDivPapel(dados){ var ins = "

"; return(ins); } /* Function: excluir Exclui um elemento do atlas */ function excluir(tipo,id_operacao,id_papel) { var mensagem = $trad("msgExclui",i3GEOadmin.core.dicionario)+id_operacao+" - "+id_papel; var no = null; var sUrl = null; if(tipo == "papel") { no = tree.getNodeByProperty("id_nopapel",id_operacao+"_"+id_papel); sUrl = "../php/operacoes.php?funcao=excluirPapelOperacao&id_papel="+id_papel+"&id_operacao="+id_operacao; } if(sUrl) {core_excluiNoTree(sUrl,no,mensagem);} } /* Function: gravaDados Altera dados de um elemento do Atlas */ function gravaDados(tipo,id) { var campos = null; var par = null; var prog = null; if(tipo == "operacao"){ campos = new Array("codigo","descricao"); par = "&id_operacao="+id; prog = "../php/operacoes.php?funcao=alterarOperacoes"; } if(tipo == "papel"){ campos = new Array("id_papel"); par = "&id_operacao="+id; prog = "../php/operacoes.php?funcao=adicionaPapelOperacoes"; } for (var i=0;i"+ $trad("msgErroExclui",i3GEOadmin.operacoes.dicionario) +""); setTimeout("core_carregando('desativa')",3000); } else{ if(tipo == "operacao"){ var no = tree.getNodeByProperty("id_operacao",id); no.getContentEl().getElementsByTagName("span")[0].innerHTML = document.getElementById("Ecodigo").value; no.getContentEl().getElementsByTagName("span")[0].style.color = ""; no.html = no.getContentEl().innerHTML; } if(tipo == "papel"){ var no = tree.getNodeByProperty("id_operacao",id); adicionaNosPapeis(no,YAHOO.lang.JSON.parse(o.responseText),true); } 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($trad("gravaId",i3GEOadmin.core.dicionario)+id); var sUrl = prog+par; core_makeRequest(sUrl,callback,'POST'); } }