/* Title: gruposusuarios.js Funções que controlam o cadastro de grupos de usuarios 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/gruposusuarios.js */ YAHOO.namespace("admin.container"); /* Function: initMenu Inicializa o editor */ function initMenu(){ ativaBotaoAdicionaGrupo("../php/gruposusuarios.php?funcao=alterarGrupos","adiciona"); core_carregando("ativa"); core_ativaPainelAjuda("ajuda","botaoAjuda"); pegaGrupos(); } function ativaBotaoAdicionaGrupo(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); adicionaNosGrupos(j,true); editar("grupo",j[j.length-1].id_grupo); 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 pegaGrupos(){ core_pegaDados($trad("msgBuscaUsuarios",i3GEOadmin.gruposusuarios.dicionario),"../php/gruposusuarios.php?funcao=pegaGrupos","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/gruposusuarios.php?funcao=pegaUsuariosGrupo&id_grupo="+node.data.id_grupo; var callback = { success: function(oResponse){ var dados = YAHOO.lang.JSON.parse(oResponse.responseText); adicionaNosUsuarios(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(); }(); adicionaNosGrupos(dados); tree.draw(); } function adicionaNosUsuarios(no,dados,redesenha) { function temaIconMode(){ var newVal = parseInt(this.value); if (newVal != currentIconMode) {currentIconMode = newVal;} } if(!redesenha){ var conteudo = ""+ $trad("novoUsuario",i3GEOadmin.gruposusuarios.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].login+"";} else {conteudo += " "+ $trad("definePapel",i3GEOadmin.gruposusuarios.dicionario) +"";} var d = {html:conteudo,id_nousuario:dados[i].id_usuario+"_"+dados[i].id_grupo,tipo:"usuario"}; var tempNode = new YAHOO.widget.HTMLNode(d, no, false,true); tempNode.isLeaf = true; tempNode.enableHighlight = false; } if(redesenha){tree.draw();} } function adicionaNosGrupos(dados,redesenha){ var root = tree.getRoot(); for (var i=0, j=dados.length; i"; conteudo += " "; if(dados[i].nome && dados[i].nome != "") {conteudo += " "+dados[i].nome+" id: "+dados[i].id_grupo+"";} else {conteudo += " "+ $trad("defineGrupo",i3GEOadmin.gruposusuarios.dicionario) +"";} var d = {html:conteudo,id_grupo:dados[i].id_grupo,tipo:"grupo"}; 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 == "grupo") { var dados = YAHOO.lang.JSON.parse(o.responseText)[0]; montaDivGrupo(dados); core_carregando("desativa"); } if(tipo == "usuario") { var dados = YAHOO.lang.JSON.parse(o.responseText); core_montaEditor("gravaDados('usuario','"+id+"')","250px","100px","","Usuário",true,true,false); $i("editor_bd").innerHTML = montaDivUsuario(dados); document.getElementById("Eid_usuario").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 == "grupo") {sUrl = "../php/gruposusuarios.php?funcao=pegaDadosGrupo&id_grupo="+id;} if(tipo == "usuario") {sUrl = "../php/gruposusuarios.php?funcao=listaUsuarios";} if(sUrl) {core_makeRequest(sUrl,callback);} } function montaDivGrupo(i){ var temp = function(){ gravaDados('grupo',i.id_grupo); }; core_montaEditor(temp,"450px","280px","","Grupo",true,true,false); var param = { "linhas":[ {titulo:$trad("nome",i3GEOadmin.gruposusuarios.dicionario),id:"Enome",size:"50",value:i.nome,tipo:"text",div:""}, {titulo:$trad("descricao",i3GEOadmin.gruposusuarios.dicionario),id:"Edescricao",size:"50",value:i.descricao,tipo:"text",div:""} ] }; var ins = ""; ins += core_geraLinhas(param); ins += "


"; $i("editor_bd").innerHTML = ins; } function montaDivUsuario(dados){ var ins = "
"; return(ins); } /* Function: excluir Exclui um elemento do atlas */ function excluir(tipo,id_grupo,id_usuario) { var mensagem = $trad("msgExcluiUsuario",i3GEOadmin.gruposusuarios.dicionario)+id_usuario; var no = null; var sUrl = null; if(tipo == "grupo") { no = tree.getNodeByProperty("id_grupo",id_grupo); sUrl = "../php/gruposusuarios.php?funcao=excluirGrupo&id_grupo="+id_grupo; } if(tipo == "usuario") { no = tree.getNodeByProperty("id_nousuario",id_usuario+"_"+id_grupo); sUrl = "../php/gruposusuarios.php?funcao=excluirUsuarioGrupo&id_grupo="+id_grupo+"&id_usuario="+id_usuario; } 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 == "grupo"){ campos = new Array("nome","descricao"); par = "&id_grupo="+id; prog = "../php/gruposusuarios.php?funcao=alterarGrupos"; } if(tipo == "usuario"){ campos = new Array("id_usuario"); par = "&id_grupo="+id; prog = "../php/gruposusuarios.php?funcao=adicionaUsuarioGrupo"; } for (var i=0;i"+ $trad("msgNaoExclui",i3GEOadmin.gruposusuarios.dicionario) +""); setTimeout("core_carregando('desativa')",3000); } else{ if(tipo == "grupo"){ var no = tree.getNodeByProperty("id_grupo",id); no.getContentEl().getElementsByTagName("span")[0].innerHTML = document.getElementById("Enome").value+" id:"+id; no.getContentEl().getElementsByTagName("span")[0].style.color = ""; no.html = no.getContentEl().innerHTML; } if(tipo == "usuario"){ var no = tree.getNodeByProperty("id_grupo",id); adicionaNosUsuarios(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'); } }