From d3927994679bea07c9e5aeb0e5be16372086e982 Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Thu, 9 Oct 2008 17:05:00 +0000 Subject: [PATCH] --- admin/html/arvore.html | 43 +++++++++++++++++++++++++++++++++++++++++++ admin/html/i3geoadmin_arvore.html | 92 -------------------------------------------------------------------------------------------- admin/index.html | 2 +- admin/js/arvore.js | 962 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- admin/js/atlas.js | 42 +++++++++++++++++++----------------------- admin/js/core.js | 125 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- admin/php/admin.php | 17 ++++++++++++++++- admin/php/arvore.php | 312 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------------------------------- admin/php/atlas.php | 36 +++++++++++++++++++++++++----------- admin/php/menutemas.php | 2 +- admin/php/parsemapfile.php | 1 + 11 files changed, 1088 insertions(+), 546 deletions(-) create mode 100644 admin/html/arvore.html delete mode 100644 admin/html/i3geoadmin_arvore.html diff --git a/admin/html/arvore.html b/admin/html/arvore.html new file mode 100644 index 0000000..2150d0f --- /dev/null +++ b/admin/html/arvore.html @@ -0,0 +1,43 @@ + + + + + Árvore de temas + + + + + +
+
+

Administração do i3geo - Árvore de temas

+ +
+
+
Ajuda
+
+ Este programa permite editar árvore de temas dos menus disponíveis.

+ A árvore define os grupos, sub-grupos e temas existentes em cada menu. + As árvores são mostradas na guia de adição de temas do i3geo.

+ A lista de atlas é baseada no banco admin.db.

+ A lista de IPs dos usuários que podem administrar o i3geo é definida no + arquivo i3geo/ms_configura.php +
+
+
+
+

Menus existentes Para editar os menus clique aqui):

+
+
+
+ diff --git a/admin/html/i3geoadmin_arvore.html b/admin/html/i3geoadmin_arvore.html deleted file mode 100644 index 4434b3a..0000000 --- a/admin/html/i3geoadmin_arvore.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - - - -
-

Administração do i3geo - menu de temas

-

Voltar

-
-
- - - \ No newline at end of file diff --git a/admin/index.html b/admin/index.html index ead3eda..7d90839 100644 --- a/admin/index.html +++ b/admin/index.html @@ -89,7 +89,7 @@ que por sua vez contém temas.

Editar a lista de grupos
Editar a lista de sub-grupos
Editar a lista de temas -
Editar a árvore dos menus +
Editar a árvore dos menus
Importar XML diff --git a/admin/js/arvore.js b/admin/js/arvore.js index 9996855..d91cdf3 100644 --- a/admin/js/arvore.js +++ b/admin/js/arvore.js @@ -1,401 +1,661 @@ -/* -Title: Arvore - -Funções javascript utilizadas no sistema de administração do menu de temas - -File: i3geo/admin/arvore.js - -About: Licença - -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@mma.gov.br - -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; -tanto a versão 2 da Licença. -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: iniciaAdmin - -Inicializa as variáveis globais e checa o cadastro do editor do sistema de administração - -Ao retornar, por default, executa a função montaParametros() -*/ -function iniciaAdmin() +YAHOO.namespace("example.container"); +function initMenu() { - verificaEditores() + //ativaBotaoAdicionaAtlas("../php/atlas.php?funcao=alterarAtlas","adiciona") + core_carregando("ativa"); + core_ativaPainelAjuda("ajuda","botaoAjuda"); + core_pegaPerfis("pegaMenus()"); } -function montaParametros() +function pegaMenus() { - if(!$i("resultado")) - {document.body.innerHTML += "
"} + core_pegaDados("buscando menus...","../php/menutemas.php?funcao=pegaMenus","montaArvore") } -/* -Function: listaRaiz - -Monta o html com os parametros e os divs que receberão os dados dos formulários. - -Para cada registro na variável $parametrs, é montado um formulário. -*/ -function listaRaiz() +function montaArvore(dados) +{ + YAHOO.example.treeExample = new function() + { + var currentIconMode; + tree = ""; + function changeIconMode() + { + var newVal = parseInt(this.value); + if (newVal != currentIconMode) + {currentIconMode = newVal;} + buildTree(); + } + function loadNodeData(node, fnLoadComplete) + { + var sUrl = "../php/arvore.php?funcao=pegaGrupos&id_menu="+node.data.id_menu; + var callback = + { + success: function(oResponse) + { + var dados = YAHOO.lang.JSON.parse(oResponse.responseText) + montaNosGrupos(node.data.id_menu,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); + } + function buildTree() + { + tree = new YAHOO.widget.TreeView("tabela"); + tree.setDynamicLoad(loadNodeData, currentIconMode); + var root = tree.getRoot(); + var tempNode = new YAHOO.widget.TextNode('', root, false); + tempNode.isLeaf = true; + core_carregando("desativa"); + } + buildTree(); + }(); + montaNosMenus(dados) + tree.draw(); +} +// +//adiciona os menus na árvore +// +function montaNosMenus(dados,redesenha) { - $i("resultado").innerHTML = $mensagemAguarde - var ins = "" - for (i=0;i<$parametros.simples.length;i++) - { - ins += "
"+$parametros.simples[i].cabeca+"" - ins += "

" - ins += "

" - ins += "
" - ins += "
" - ins += "

"+$parametros.simples[i].mensagem+"

" - ins += "

" - ins += "

" + var root = tree.getRoot(); + for (var i=0, j=dados.length; i" + var d = {html:conteudo,id_menu:dados[i].id_menu,tipo:"menu"}; + var tempNode = new YAHOO.widget.HTMLNode(d, root, false,true); } - $i("resultado").innerHTML = ins - pegaNosRaiz() - pegaTemasRaiz(0,0,"temasRaiz0") + if(redesenha){tree.draw();} } -function pegaTemasRaiz(nivel,id_nivel,onde) +// +//adiciona os grupos em um menu +// +function montaNosGrupos(idmenu,no,dados,redesenha) { - $i(onde).innerHTML = $mensagemAguarde - var n = $temasRaiz.length - var ins = "" - if(n > 0) + function temaIconMode() { - var ins = "
Temas na raiz desse nível" - for (i=0;i" - ins += "
" - ins += "" - ins += "" - ins += "" - var idtemp = 'raizPerfil_'+$temasRaiz[i].id_raiz - ins += "" - - ins += "" - } - } - ins += "

" + success: function(oResponse) + { + var dados = YAHOO.lang.JSON.parse(oResponse.responseText) + montaNosSubgrupos(idmenu,node,dados,true) + oResponse.argument.fnLoadComplete(); + }, + failure: function(oResponse) + { + oResponse.argument.fnLoadComplete(); + }, + argument: + { + "node": node, + "fnLoadComplete": fnLoadComplete + }, + timeout: 7000 + }; + YAHOO.util.Connect.asyncRequest('GET', sUrl, callback); + } + //pega os temas que ficam na raiz da árvore + if(!tree.getNodeByProperty("etiquetaTemasRaiz","menu_"+idmenu)) + montaTemasRaiz(no,dados,true) + //pega os grupos do menu + if(!tree.getNodeByProperty("etiquetaGrupo","menu_"+idmenu)) + { + var conteudo = "" + var temp = "menu_"+idmenu + var d = {tipo:"etiqueta","etiquetaGrupo":temp,html:conteudo+"Grupos:"} + var tempNode = new YAHOO.widget.HTMLNode(d, no, false,true); + tempNode.isLeaf = true; + } + for (var i=0, j=dados.grupos.length; i" + conteudo += " " + conteudo += " " + conteudo += "  "+dados.grupos[i].nome_grupo+"" + var d = {html:conteudo,id_n1:dados.grupos[i].id_n1,tipo:"grupo"} + var tempNode = new YAHOO.widget.HTMLNode(d, no, false,true); + //tempNode.isLeaf = true; + tempNode.setDynamicLoad(loadSubgruposData, temaIconMode); } - $i(onde).innerHTML = ins; + if(redesenha){tree.draw();} } - -function pegaNosRaiz() +function montaNosSubgrupos(idmenu,no,dados,redesenha) { - $i("nivel1").innerHTML = $mensagemAguarde - //monta o primeiro nível - var retorna = function(retorno) - { - var r = retorno.data - var ins = ""; - var rl = r.length; - for (i=0;i
+- grupo "+r[i].id_n1+"" - ins += "
" - ins += ""; - ins += "" - ins += "" - ins += "" - ins += "" - ins += "" - var idtemp = 'perfiln1_'+r[i].id_n1 - ins += "" - ins += "
NomePerfis (separe com vírgula)
" - ins += "
" - ins += "" - ins += "" - ins += "" - ins += "
" - ins += "
" - ins += "
" - ins += "

" - } - $i("nivel1").innerHTML = ins; - for (t=0;t" + var d = {tipo:"etiqueta",etiquetaTemasSubGrupo:no.data.id_n1,html:conteudo+"Sub-grupos:"} + var tempNode = new YAHOO.widget.HTMLNode(d, no, false,true); + tempNode.isLeaf = true; + } + function temaIconMode() + { + var newVal = parseInt(this.value); + if (newVal != currentIconMode) + {currentIconMode = newVal;} + } + for (var i=0, j=dados.subgrupos.length; i" + conteudo += " " + conteudo += " " + conteudo += "  "+dados.subgrupos[i].nome_subgrupo+"" + var d = {html:conteudo,id_n2:dados.subgrupos[i].id_n2,tipo:"subgrupo"} + var tempNode = new YAHOO.widget.HTMLNode(d, no, false,true); + tempNode.setDynamicLoad(loadTemasData, temaIconMode); } - var p = "../php/arvore.php?funcao=pegaN1&menu="+$i("menusel").value; - cPaint.call(p,"",retorna); + if(redesenha){tree.draw();} } -function pegaNosGrupo(idn1) +function montaTemas(idmenu,no,dados,redesenha) { - $i("n2_"+idn1).innerHTML = $mensagemAguarde - var retorna = function(retorno) + if(!tree.getNodeByProperty("etiquetaTemas",no.data.id_n2)) { - var r = retorno.data - var ins = ""; - for (i=0;i
subgrupo "+r[i].id_n2+"" - ins += ""; - ins += "" - ins += "" - ins += "" - ins += "" - ins += "" - var idtemp = 'perfiln2_'+r[i].id_n2 - ins += "" - - ins += "
NomePerfis (separe com vírgula)
" - ins += "
" - ins += "" - ins += "" - ins += "" - ins += "" - ins += "
" - - ins += "
" - ins += "
" - ins += "
" - } - $i("n2_"+idn1).innerHTML = ins; - ativaLegenda() + var conteudo = "" + var d = {tipo:"etiqueta",etiquetaTemas:no.data.id_n2,html:conteudo+"Temas:"} + var tempNode = new YAHOO.widget.HTMLNode(d, no, false,true); + tempNode.isLeaf = true; } - var p = "../php/arvore.php?funcao=pegaN2&idn1="+idn1; - cPaint.call(p,"",retorna); + for (var i=0, j=dados.length; i" + conteudo += " " + conteudo += " " + conteudo += "  "+dados[i].nome_tema+"" + var d = {html:conteudo,id_n3:dados[i].id_n3,tipo:"tema"} + var tempNode = new YAHOO.widget.HTMLNode(d, no, false,true); + tempNode.isLeaf = true; + } + if(redesenha){tree.draw();} } -function pegaNosSubGrupo(idn2) +function montaTemasRaiz(no,dados,redesenha) { - $i("n3_"+idn2).innerHTML = $mensagemAguarde - var retorna = function(retorno) + if(!tree.getNodeByProperty("etiquetaTemasRaiz","menu_"+no.data.id_menu)) + { + var temp = "menu_"+no.data.id_menu + var d = {etiquetaTemasRaiz:temp,tipo:"etiqueta",html:"Temas na raiz do menu:"} + var tempNode = new YAHOO.widget.HTMLNode(d, no, false,true); + tempNode.isLeaf = true; + } + var resultado = new Array(); + for (var i=0, j=dados.raiz.length; i" - ins += ""; - ins += "" - ins += "" - ins += "" - ins += "" - ins += "" - var idtemp = 'perfiln3_'+r[i].id_n3 - ins += "" - - ins += "
NomePerfis (separe com vírgula)
" - ins += "
" - //ins += "
" - ins += "" - } - $i("n3_"+idn2).innerHTML = ins; + var conteudo = " " + conteudo += " " + conteudo += " " + conteudo += "  "+dados.raiz[i].nome_tema+"" + var d = {html:conteudo,id_raiz:dados.raiz[i].id_raiz,tipo:"raizmenu"} + var tempNode = new YAHOO.widget.HTMLNode(d, no, false,true); + tempNode.isLeaf = true; + resultado.push(tempNode) } - var p = "../php/arvore.php?funcao=pegaN3&idn2="+idn2; - cPaint.call(p,"",retorna); + return resultado; } -function alterarRaiz(id_raiz,nivel,id_nivel,onde) +function montaTemasRaizGrupo(idmenu,no,dados,redesenha) { - //if(confirm("Você realmente quer fazer isso?")) - //{ - var retorna = function(retorno) - { - $temasRaiz = retorno.data; - pegaTemasRaiz(nivel,id_nivel,onde); - } - if (id_raiz != "") - { - var id_tema = $i("raizTema_"+id_raiz).value - var perfil = $i("raizPerfil_"+id_raiz).value - } - else - { - var id_raiz = ""; - var perfil = ""; - var id_tema = "" - } - var p = "../php/arvore.php?funcao=alterarRaiz&id_nivel="+id_nivel+"&nivel="+nivel+"&id_raiz="+id_raiz+"&id_menu="+$i("menusel").value+"&perfil="+perfil+"&id_tema="+id_tema; - cPaint.call(p,"",retorna); - //} + if(!tree.getNodeByProperty("etiquetaTemasGrupo","grupo_"+no.data.id_n1)) + { + var temp = "grupo_"+no.data.id_n1 + var d = {etiquetaTemasGrupo:temp,tipo:"etiqueta",html:"Temas na raiz do grupo:"} + var tempNode = new YAHOO.widget.HTMLNode(d, no, false,true); + tempNode.isLeaf = true; + } + var resultado = new Array(); + for (var i=0, j=dados.raiz.length; i" + conteudo += " " + conteudo += " " + conteudo += "  "+dados.raiz[i].nome_tema+"" + var d = {html:conteudo,id_raiz:dados.raiz[i].id_raiz,tipo:"raizmenu"} + var tempNode = new YAHOO.widget.HTMLNode(d, no, false,true); + tempNode.isLeaf = true; + resultado.push(tempNode) + } + return resultado; } -function alterarTema(id,idsubgrupo) +// +//adiciona um novo tema na raiz do menu +//id = id do menu alvo +// +function novoTemaRaiz(id) { - //if(confirm("Você realmente quer fazer isso?")) - //{ - var retorna = function() - {pegaNosSubGrupo(idsubgrupo);} - if (id != "") + core_carregando("ativa"); + var mensagem = " adicionando tema..."; + core_carregando("mensagem"); + var no = tree.getNodeByProperty("id_menu",id) + var noEtiquetaGrupo = tree.getNodeByProperty("etiquetaGrupo","menu_"+id) + var sUrl = "../php/arvore.php?funcao=adicionarTemaRaiz&id_menu="+id; + var callback = + { + success: function(oResponse) { - var perfil = $i("perfiln3_"+id).value - if(perfil == "null"){var perfil = "";} - var idtema = $i("teman3_"+id).value - //var idsubgrupo = "" - } - else + var dados = YAHOO.lang.JSON.parse(oResponse.responseText) + var nos = montaTemasRaiz(no,dados,false) + tree.popNode(nos[0]) + nos[0].insertBefore(noEtiquetaGrupo) + tree.draw(); + core_carregando("desativa"); + }, + failure:core_handleFailure, + argument: { foo:"foo", bar:"bar" } + }; + core_makeRequest(sUrl,callback) +} +function novoTemaRaizGrupo(idmenu,id) +{ + core_carregando("ativa"); + var mensagem = " adicionando tema..."; + core_carregando("mensagem"); + var no = tree.getNodeByProperty("id_n1",id) + var noEtiquetaSubGrupo = tree.getNodeByProperty("etiquetaTemasSubGrupo",id) + var sUrl = "../php/arvore.php?funcao=adicionarTemaRaizGrupo&id_n1="+id+"&id_menu="+idmenu; + var callback = + { + success: function(oResponse) { - var id = ""; - var perfil = ""; - var idtema = "" - } - if($i("n3_"+idtema)) - $i("n3_"+idtema).innerHTML = $mensagemAguarde - var p = "../php/arvore.php?funcao=alteraN3&id="+id+"&perfil="+perfil+"&idtema="+idtema+"&idsubgrupo="+idsubgrupo; - cPaint.call(p,"",retorna); - //} - + var dados = YAHOO.lang.JSON.parse(oResponse.responseText) + var nos = montaTemasRaizGrupo(idmenu,no,dados,false) + tree.popNode(nos[0]) + nos[0].insertBefore(noEtiquetaSubGrupo) + tree.draw(); + core_carregando("desativa"); + }, + failure:core_handleFailure, + argument: { foo:"foo", bar:"bar" } + }; + core_makeRequest(sUrl,callback) } -function alterarSubGrupo(idgrupo,id) +// +//adiciona um novo grupo +// +function novoGrupo(id_menu) { - //if(confirm("Você realmente quer fazer isso?")) - //{ - var retorna = function() - {pegaNosGrupo(idgrupo);} - if (id != "") - { - var perfil = $i("perfiln2_"+id).value - if(perfil == "null"){var perfil = "";} - var idsubgrupo = $i("subgrupon2_"+id).value - } - else + core_carregando("ativa"); + var mensagem = " adicionando grupo..."; + core_carregando("mensagem"); + var sUrl = "../php/arvore.php?funcao=adicionarGrupo&id_menu="+id_menu; + var callback = + { + success: function(oResponse) { - var id = ""; - var perfil = ""; - var idsubgrupo = "" - } - if($i("n2_"+idsubgrupo)) - $i("n2_"+idsubgrupo).innerHTML =$mensagemAguarde - var p = "../php/arvore.php?funcao=alteraN2&id="+id+"&perfil="+perfil+"&idsubgrupo="+idsubgrupo+"&idgrupo="+idgrupo; - cPaint.call(p,"",retorna); - //} - + var dados = YAHOO.lang.JSON.parse(oResponse.responseText) + var no = tree.getNodeByProperty("id_menu",id_menu) + montaNosGrupos(id_menu,no,dados,false) + tree.draw(); + core_carregando("desativa"); + }, + failure:core_handleFailure, + argument: { foo:"foo", bar:"bar" } + }; + core_makeRequest(sUrl,callback) } -/* -Function: alterarGrupo - -Altera o valor de uma variável -*/ -function alterarGrupo(id) +// +//adiciona um novo sub-grupo +// +function novoSubGrupo(idmenu,id_n1) { - //if(confirm("Você realmente quer fazer isso?")) - //{ - var retorna = function() - {pegaNosRaiz();} - if (id != "") + core_carregando("ativa"); + var mensagem = " adicionando Sub-grupo..."; + core_carregando("mensagem"); + var sUrl = "../php/arvore.php?funcao=adicionarSubGrupo&id_n1="+id_n1; + var callback = + { + success: function(oResponse) { - var n1 = $i("n1_"+id).value - var perfil = $i("perfiln1_"+id).value - if(n1 == "null"){var n1 = "";} - if(perfil == "null"){var perfil = "";} - var idgrupo = $i("grupon1_"+id).value - } - else + var dados = YAHOO.lang.JSON.parse(oResponse.responseText) + var no = tree.getNodeByProperty("id_n1",id_n1) + montaNosSubgrupos(idmenu,no,dados,false) + tree.draw(); + core_carregando("desativa"); + }, + failure:core_handleFailure, + argument: { foo:"foo", bar:"bar" } + }; + core_makeRequest(sUrl,callback) +} +// +//adiciona um novo tema em um sub-grupo +// +function novoTema(idmenu,id_n2) +{ + core_carregando("ativa"); + var mensagem = " adicionando tema..."; + core_carregando("mensagem"); + var sUrl = "../php/arvore.php?funcao=adicionarTema&id_n2="+id_n2; + var callback = + { + success: function(oResponse) { - var id = ""; - var perfil = ""; - var idgrupo = ""; - } - if($i("n1_"+id)) - $i("n1_"+id).innerHTML =$mensagemAguarde - var idmenu = $i("menusel").value - var p = "../php/arvore.php?funcao=alteraN1&id="+id+"&perfil="+perfil+"&idgrupo="+idgrupo+"&idmenu="+idmenu; - cPaint.call(p,"",retorna); - //} + var dados = YAHOO.lang.JSON.parse(oResponse.responseText) + var no = tree.getNodeByProperty("id_n2",id_n2) + montaTemas(idmenu,no,dados,false) + tree.draw(); + core_carregando("desativa"); + }, + failure:core_handleFailure, + argument: { foo:"foo", bar:"bar" } + }; + core_makeRequest(sUrl,callback) } -/* -Function: excluir +function excluir(tipo,id) +{ + var mensagem = " excluindo o registro do id= "+id; + if(tipo == "raizgrupo" || tipo == "raizmenu") + { + var no = tree.getNodeByProperty("id_raiz",id) + var sUrl = "../php/arvore.php?funcao=excluir&id="+id+"&tabela=i3geoadmin_raiz"; + } -Exclui um registro -*/ -function excluir(prefixo,id,coluna,idnpai) + if(tipo == "grupo") + { + var no = tree.getNodeByProperty("id_n1",id) + var sUrl = "../php/arvore.php?funcao=excluir&id="+id+"&tabela=i3geoadmin_n1"; + } + if(tipo == "subgrupo") + { + var no = tree.getNodeByProperty("id_n2",id) + var sUrl = "../php/arvore.php?funcao=excluir&id="+id+"&tabela=i3geoadmin_n2"; + } + if(tipo == "tema") + { + var no = tree.getNodeByProperty("id_n3",id) + var sUrl = "../php/arvore.php?funcao=excluir&id="+id+"&tabela=i3geoadmin_n3"; + } + core_excluiNoTree(sUrl,no,mensagem) +} +function editar(tipo,id) { - if(confirm("Você realmente quer fazer isso?")) + core_carregando("ativa"); + core_carregando(" buscando dados"); + var callback = { - var retorna = function(retorno) + success:function(o) { - if(retorno.data == "erro") - {alert("Não foi possível excluir. Verifique se ainda existem elementos abaixo desse nível")} - if(prefixo == "raiz") - { - $i(idnpai).innerHTML = ""; - pegaTemasRaiz("0",id_nivel,idnpai) - } - if(prefixo == "n1") - { - pegaNosRaiz(); - } - if(prefixo == "n2") - { - $i(prefixo+"_"+idnpai).innerHTML = ""; - pegaNosGrupo(idnpai) - } - if(prefixo == "n3") + try { - $i(prefixo+"_"+idnpai).innerHTML = ""; - pegaNosSubGrupo(idnpai) + if(tipo == "grupo") + { + var dados = YAHOO.lang.JSON.parse(o.responseText)[0]; + core_montaEditor("gravaDados('grupo','"+id+"')") + $i("editor_bd").innerHTML = montaDivGrupo(dados) + core_comboGrupos("comboGrupo","Eid_grupo",dados.id_grupo,"") + core_comboPerfis("comboPerfil","Eperfil_grupo","","registraPerfil(this.value,\"En1_perfil\")") + } + if(tipo == "subgrupo") + { + var dados = YAHOO.lang.JSON.parse(o.responseText)[0]; + core_montaEditor("gravaDados('subgrupo','"+id+"')") + $i("editor_bd").innerHTML = montaDivSubGrupo(dados) + core_comboSubGrupos("comboSubGrupo","Eid_subgrupo",dados.id_subgrupo,"") + core_comboPerfis("comboPerfil","Eperfil_subgrupo","","registraPerfil(this.value,\"En2_perfil\")") + } + if(tipo == "tema") + { + var dados = YAHOO.lang.JSON.parse(o.responseText)[0]; + core_montaEditor("gravaDados('tema','"+id+"')") + $i("editor_bd").innerHTML = montaDivTema(dados) + core_comboTemas("comboTema","Eid_tema",dados.id_tema,"") + core_comboPerfis("comboPerfil","Eperfil_tema","","registraPerfil(this.value,\"En3_perfil\")") + } + if(tipo == "raizmenu" || tipo == "raizgrupo") + { + var dados = YAHOO.lang.JSON.parse(o.responseText)[0]; + core_montaEditor("gravaDados('"+tipo+"','"+id+"')") + $i("editor_bd").innerHTML = montaDivRaiz(dados) + core_comboTemas("comboTema","Eid_tema",dados.id_tema,"") + core_comboPerfis("comboPerfil","Eperfil","","registraPerfil(this.value,\"Eperfil\")") + } + core_carregando("desativa"); } - } - if($i(prefixo+"_"+idnpai)) - $i(prefixo+"_"+idnpai).innerHTML = $mensagemAguarde - - if(prefixo == "raiz") - var tabela = "i3geoadmin_raiz" - - if(prefixo == "n1") - var tabela = "i3geoadmin_n1" - - if(prefixo == "n2") - var tabela = "i3geoadmin_n2" + catch(e){core_handleFailure(e,o.responseText);} + }, + failure:core_handleFailure, + argument: { foo:"foo", bar:"bar" } + }; + if(tipo == "grupo") + {var sUrl = "../php/arvore.php?funcao=pegaDadosGrupo&id="+id;} + if(tipo == "subgrupo") + {var sUrl = "../php/arvore.php?funcao=pegaDadosSubGrupo&id="+id;} + if(tipo == "tema") + {var sUrl = "../php/arvore.php?funcao=pegaDadosTema&id="+id;} + if(tipo == "raizmenu" || tipo == "raizgrupo") + {var sUrl = "../php/arvore.php?funcao=pegaDadosRaiz&id="+id;} + core_makeRequest(sUrl,callback) +} +function montaDivGrupo(i) +{ + var ins = "
Grupo:

" + ins += "
Buscando...
" + ins += "

Perfis que podem ver:

" + ins += "

" + ins += "
Buscando...
"; + ins += "
Publicado?
" + ins += "" + ins += "

Para criar um novo grupo clique aqui." + ins += "

Para criar um novo perfil clique aqui." + ins += "" + return(ins) +} +function montaDivSubGrupo(i) +{ + var ins = "
Sub-Grupo:

" + ins += "
Buscando...
" + ins += "

Perfis que podem ver:

" + ins += "

" + ins += "
Buscando...
"; + ins += "
Publicado?
" + ins += "" + ins += "

Para criar um novo sub-grupo clique aqui." + ins += "

Para criar um novo perfil clique aqui." + ins += "" + return(ins) +} +function montaDivTema(i) +{ + var ins = "
Tema:

" + ins += "
Buscando...
" + ins += "

Perfis que podem ver:

" + ins += "

" + ins += "
Buscando...
"; + ins += "
Publicado?
" + ins += "" + ins += "

Para criar um novo tema clique aqui." + ins += "

Para criar um novo perfil clique aqui." + ins += "" + return(ins) +} +function montaDivRaiz(i) +{ + var ins = "
Tema:

" + ins += "
Buscando...
" + ins += "

Perfis que podem ver:

" + ins += "

" + ins += "
Buscando...
"; + ins += "

Para criar um novo tema clique aqui." + ins += "

Para criar um novo perfil clique aqui." + ins += "" + return(ins) +} - if(prefixo == "n3") - var tabela = "i3geoadmin_n3" - - var p = "../php/arvore.php?funcao=excluir&id="+id+"&tabela="+tabela+"&coluna="+coluna; - cPaint.call(p,"",retorna); - } +function registraPerfil(valor,id) +{ + var inp = $i(id) + var perfis = inp.value + if(perfis == "") + inp.value = valor + else + inp.value = perfis+" "+valor } -/* -Function: excluirRaiz +function gravaDados(tipo,id) +{ + if(tipo == "grupo") + { + var campos = new Array("id_grupo","n1_perfil","publicado","ordem") + var par = "&id="+id + var prog = "../php/arvore.php?funcao=alterarGrupo" + } + if(tipo == "subgrupo") + { + var campos = new Array("id_subgrupo","n2_perfil","publicado","ordem") + var par = "&id="+id + var prog = "../php/arvore.php?funcao=alterarSubGrupo" + } + if(tipo == "tema") + { + var campos = new Array("id_tema","n3_perfil","publicado","ordem") + var par = "&id="+id + var prog = "../php/arvore.php?funcao=alterarTema" + } + if(tipo == "raizmenu" || tipo == "raizgrupo") + { + var campos = new Array("id_tema","perfil","ordem") + var par = "&id="+id + var prog = "../php/arvore.php?funcao=alterarRaiz" + } -Exclui um registro de um tema no nível raiz -*/ -function excluirRaiz(nivel,id_nivel,id_raiz,idnpai) + for (i=0;iNão foi possível excluir. Verifique se não existem menus vinculados a este tema"); + setTimeout("core_carregando('desativa')",3000) + } + else + { + if(tipo == "grupo") + { + var obj = document.getElementById("Eid_grupo") + var texto = obj.options[obj.selectedIndex].text + var no = tree.getNodeByProperty("id_n1",id) + no.getContentEl().getElementsByTagName("span")[0].innerHTML = texto + } + if(tipo == "subgrupo") + { + var obj = document.getElementById("Eid_subgrupo") + var texto = obj.options[obj.selectedIndex].text + var no = tree.getNodeByProperty("id_n2",id) + no.getContentEl().getElementsByTagName("span")[0].innerHTML = texto + } + if(tipo == "tema") + { + var obj = document.getElementById("Eid_tema") + var texto = obj.options[obj.selectedIndex].text + var no = tree.getNodeByProperty("id_n3",id) + no.getContentEl().getElementsByTagName("span")[0].innerHTML = texto + } + if(tipo == "raizmenu" || tipo == "raizgrupo") + { + var obj = document.getElementById("Eid_tema") + var texto = obj.options[obj.selectedIndex].text + var no = tree.getNodeByProperty("id_raiz",id) + no.getContentEl().getElementsByTagName("span")[0].innerHTML = texto + } + core_carregando("desativa"); + } + YAHOO.example.container.panelEditor.destroy(); + YAHOO.example.container.panelEditor = null; + } + catch(e){core_handleFailure(e,o.responseText);} + }, + failure:core_handleFailure, + argument: { foo:"foo", bar:"bar" } + }; + core_makeRequest(sUrl,callback,'POST') +} +function sobeDesce(movimento,tipo,id) { - if(confirm("Você realmente quer fazer isso?")) + if(tipo == "raizmenu" || tipo == "raizgrupo") { - $i(idnpai).innerHTML = $mensagemAguarde; - var retorna = function(retorno) - { - $i(idnpai).innerHTML = ""; - $temasRaiz = retorno.data; - pegaTemasRaiz(nivel,id_nivel,idnpai) - } - var tabela = "i3geoadmin_raiz" - var p = "../php/arvore.php?funcao=excluir&id="+id_raiz+"&tabela="+tabela+"&coluna=id_raiz"; - cPaint.call(p,"",retorna); + var no = tree.getNodeByProperty("id_raiz",id) + var movimenta = core_movimentaNo(movimento,no) + } + if(tipo == "grupo") + { + var no = tree.getNodeByProperty("id_n1",id) + var movimenta = core_movimentaNo(movimento,no) + } + if(tipo == "subgrupo") + { + var no = tree.getNodeByProperty("id_n2",id) + var movimenta = core_movimentaNo(movimento,no) } -} \ No newline at end of file + if(tipo == "tema") + { + var no = tree.getNodeByProperty("id_n3",id) + var movimenta = core_movimentaNo(movimento,no) + } + var callback = + { + success: function(oResponse) + {core_carregando("desativa");}, + failure:core_handleFailure, + argument: { foo:"foo", bar:"bar" } + }; + if(movimenta) + { + var sUrl = "../php/arvore.php?funcao=movimentaNo&tipo="+tipo+"&movimento="+movimento+"&id="+id; + core_carregando("ativa"); + core_carregando(" modificando a ordem no banco de dados"); + core_makeRequest(sUrl,callback) + } +} + +YAHOO.util.Event.addListener(window, "load", initMenu); \ No newline at end of file diff --git a/admin/js/atlas.js b/admin/js/atlas.js index 8aab5a5..f44de05 100644 --- a/admin/js/atlas.js +++ b/admin/js/atlas.js @@ -1,12 +1,12 @@ YAHOO.namespace("example.container"); function initMenu() { - ativaBotaoAdicionaRaiz("../php/atlas.php?funcao=alterarAtlas","adiciona") + ativaBotaoAdicionaAtlas("../php/atlas.php?funcao=alterarAtlas","adiciona") core_carregando("ativa"); core_ativaPainelAjuda("ajuda","botaoAjuda"); core_pegaPerfis("pegaAtlas()"); } -function ativaBotaoAdicionaRaiz(sUrl,idBotao) +function ativaBotaoAdicionaAtlas(sUrl,idBotao) { var adiciona = function() { @@ -18,7 +18,7 @@ function ativaBotaoAdicionaRaiz(sUrl,idBotao) { try { - adicionaNosRaiz(YAHOO.lang.JSON.parse(o.responseText),true); + adicionaNosAtlas(YAHOO.lang.JSON.parse(o.responseText),true); core_carregando("desativa"); } catch(e){core_handleFailure(e,o.responseText);} @@ -56,7 +56,7 @@ function montaArvore(dados) success: function(oResponse) { var dados = YAHOO.lang.JSON.parse(oResponse.responseText) - adicionaNos(node,dados,false) + adicionaNosPranchas(node,dados,false) oResponse.argument.fnLoadComplete(); }, failure: function(oResponse) @@ -83,14 +83,15 @@ function montaArvore(dados) } buildTree(); }(); - adicionaNosRaiz(dados) + adicionaNosAtlas(dados) tree.draw(); } function adicionaNosTemas(no,dados,redesenha) { if(!redesenha) { - var d = {html:"Temas:"} + var conteudo = "" + var d = {html:conteudo+"Temas:"} var tempNode = new YAHOO.widget.HTMLNode(d, no, false,true); tempNode.isLeaf = true; } @@ -106,7 +107,7 @@ function adicionaNosTemas(no,dados,redesenha) } if(redesenha){tree.draw();} } -function adicionaNos(no,dados,redesenha) +function adicionaNosPranchas(no,dados,redesenha) { function temaIconMode() { @@ -140,7 +141,8 @@ function adicionaNos(no,dados,redesenha) } if(!redesenha) { - var d = {html:"Pranchas:"} + var conteudo = "" + var d = {html:conteudo+"Pranchas:"} var tempNode = new YAHOO.widget.HTMLNode(d, no, false,true); tempNode.isLeaf = true; } @@ -149,7 +151,6 @@ function adicionaNos(no,dados,redesenha) var conteudo = " " conteudo += " " conteudo += " " - conteudo += "" conteudo += "  "+dados[i].titulo_prancha+"" var d = {html:conteudo,id_prancha:dados[i].id_prancha,tipo:"prancha"} var tempNode = new YAHOO.widget.HTMLNode(d, no, false,true); @@ -159,7 +160,7 @@ function adicionaNos(no,dados,redesenha) if(redesenha){tree.draw();} } -function adicionaNosRaiz(dados,redesenha) +function adicionaNosAtlas(dados,redesenha) { var root = tree.getRoot(); for (var i=0, j=dados.length; i" conteudo += " " conteudo += " " - conteudo += " " conteudo += "  "+dados[i].titulo_atlas+"" var d = {html:conteudo,id_atlas:dados[i].id_atlas,tipo:"atlas"}; var tempNode = new YAHOO.widget.HTMLNode(d, root, false,true); @@ -224,21 +224,15 @@ function editar(tipo,id) } function montaDivTema(i) { - var param = - { - "linhas":[ - {titulo:"Ordem de desenho:",id:"Eordem_tema",size:"5",value:i.ordem_tema,tipo:"text",div:""} - ] - } var ins = "" ins += "
Código do tema:
" ins += "
" - ins += core_geraLinhas(param) ins += "Ligado (ao abrir a prancha, esse tema estará visível)?
" ins += "" + ins += "" return(ins) } function montaDivPrancha(i) @@ -252,12 +246,13 @@ function montaDivPrancha(i) {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:",id:"Emapext_prancha",size:"30",value:i.mapext_prancha,tipo:"text",div:""}, - {titulo:"Ordem de apresentação na lista de pranchas:",id:"Eordem_prancha",size:"5",value:i.ordem_prancha,tipo:"text",div:""} + {titulo:"Extensão geográfica:",id:"Emapext_prancha",size:"30",value:i.mapext_prancha,tipo:"text",div:""} ] } var ins = "" ins += core_geraLinhas(param) + ins += "" + return(ins) } function montaDivAtlas(i) @@ -272,8 +267,7 @@ function montaDivAtlas(i) {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:""}, - {titulo:"Ordem de apresentação na lista de atlas:",id:"Eordem_atlas",size:"5",value:i.ordem_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 = "" @@ -293,6 +287,8 @@ function montaDivAtlas(i) ins += "" + ins += "" + return(ins) } function sobeDesce(movimento,tipo,id) @@ -374,7 +370,7 @@ function adicionarPrancha(id) success: function(oResponse) { var dados = YAHOO.lang.JSON.parse(oResponse.responseText) - adicionaNos(no,dados,true) + adicionaNosPranchas(no,dados,true) }, failure:core_handleFailure, argument: { foo:"foo", bar:"bar" } diff --git a/admin/js/core.js b/admin/js/core.js index 20ab07c..7f93d21 100644 --- a/admin/js/core.js +++ b/admin/js/core.js @@ -85,7 +85,7 @@ function core_movimentaNo(tipo,no) var noanterior = no.previousSibling if(noanterior) { - if(noanterior.previousSibling) + if(noanterior.previousSibling && noanterior.data.tipo != "etiqueta") { tree.popNode(no) no.insertBefore(noanterior) @@ -445,6 +445,129 @@ function core_comboPranchas(onde,id,marcar,funcao,id_atlas) }; core_makeRequest(sUrl,callback) } +/* +Function: core_comboGrupos + +Cria um combo para escolha de um grupo + +Parameters: + +onde - id do elemento que receberá o combo + +id - id do combo que será criado + +marcar - valor que será marcado como selecionado + +funcao - string com o nome da função que será executada no evento onchange +*/ +function core_comboGrupos(onde,id,marcar,funcao) +{ + var sUrl = "../php/menutemas.php?funcao=pegaGrupos"; + var callback = + { + success:function(o) + { + try + { + var valores = YAHOO.lang.JSON.parse(o.responseText); + if(arguments.length == 3) + {var funcao = "";} + if (funcao != "") + {var funcao = "onchange='"+funcao+"'";} + ins = "

" + $i(onde).innerHTML = ins; + } + catch(e){core_handleFailure(e,o.responseText);} + }, + failure:core_handleFailure, + argument: { foo:"foo", bar:"bar" } + }; + core_makeRequest(sUrl,callback) +} +/* +Function: core_comboSubGrupos + +Cria um combo para escolha de um sub-grupo + +Parameters: + +onde - id do elemento que receberá o combo + +id - id do combo que será criado + +marcar - valor que será marcado como selecionado + +funcao - string com o nome da função que será executada no evento onchange +*/ +function core_comboSubGrupos(onde,id,marcar,funcao) +{ + var sUrl = "../php/menutemas.php?funcao=pegaSubGrupos"; + var callback = + { + success:function(o) + { + try + { + var valores = YAHOO.lang.JSON.parse(o.responseText); + if(arguments.length == 3) + {var funcao = "";} + if (funcao != "") + {var funcao = "onchange='"+funcao+"'";} + ins = "

" + $i(onde).innerHTML = ins; + } + catch(e){core_handleFailure(e,o.responseText);} + }, + failure:core_handleFailure, + argument: { foo:"foo", bar:"bar" } + }; + core_makeRequest(sUrl,callback) +} +/* +Function: core_comboTemas + +Cria um combo para escolha de um tema + +Parameters: + +onde - id do elemento que receberá o combo + +id - id do combo que será criado + +marcar - valor que será marcado como selecionado + +funcao - string com o nome da função que será executada no evento onchange +*/ +function core_comboTemas(onde,id,marcar,funcao) +{ + var sUrl = "../php/menutemas.php?funcao=pegaTemas2"; + var callback = + { + success:function(o) + { + try + { + var valores = YAHOO.lang.JSON.parse(o.responseText); + if(arguments.length == 3) + {var funcao = "";} + if (funcao != "") + {var funcao = "onchange='"+funcao+"'";} + ins = "

" + $i(onde).innerHTML = ins; + } + catch(e){core_handleFailure(e,o.responseText);} + }, + failure:core_handleFailure, + argument: { foo:"foo", bar:"bar" } + }; + core_makeRequest(sUrl,callback) +} /* function: core_pegaTags diff --git a/admin/php/admin.php b/admin/php/admin.php index 72e957e..4167f82 100644 --- a/admin/php/admin.php +++ b/admin/php/admin.php @@ -84,7 +84,7 @@ function retornaJSON($obj) if(extension_loaded('zlib')){ob_start('ob_gzhandler');} echo json_encode($obj); if(extension_loaded('zlib')){ob_end_flush();} - exit; + exit; } function verificaDuplicados($sql,$dbh) { @@ -228,6 +228,21 @@ function verificaFilhos() if(count($r) > 0) $res = true; } + if($tabela == "i3geoadmin_n2") + { + $r = pegaDados("SELECT id_n3 from i3geoadmin_n3 where id_n2 ='$id'"); + if(count($r) > 0) + $res = true; + } + if($tabela == "i3geoadmin_n1") + { + $r = pegaDados("SELECT id_n2 from i3geoadmin_n2 where id_n1 ='$id'"); + if(count($r) > 0) + $res = true; + $r = pegaDados("SELECT id_raiz from i3geoadmin_raiz where nivel='1' and id_nivel ='$id'"); + if(count($r) > 0) + $res = true; + } return $res; } catch (PDOException $e) diff --git a/admin/php/arvore.php b/admin/php/arvore.php index 44346f6..b425007 100644 --- a/admin/php/arvore.php +++ b/admin/php/arvore.php @@ -32,60 +32,127 @@ $cp = new cpaint(); //faz a busca da função que deve ser executada switch ($funcao) { - //verifica os editores - case "verificaEditores": - $cp->set_data(verificaEditores($editores)); - $cp->return_data(); + case "pegaGrupos": + $grupos = pegaDados("select i3geoadmin_grupos.nome_grupo,id_n1,id_menu from i3geoadmin_n1 LEFT JOIN i3geoadmin_grupos ON i3geoadmin_n1.id_grupo = i3geoadmin_grupos.id_grupo where id_menu='$id_menu' order by ordem"); + $raiz = pegaDados("select id_raiz,i3geoadmin_raiz.id_tema,nome_tema FROM i3geoadmin_raiz LEFT JOIN i3geoadmin_temas ON i3geoadmin_temas.id_tema = i3geoadmin_raiz.id_tema where i3geoadmin_raiz.id_menu='$id_menu' and i3geoadmin_raiz.nivel = 0 order by ordem"); + retornaJSON(array("raiz"=>$raiz,"grupos"=>$grupos)); + exit; break; - case "pegaTemasRaiz": - $cp->set_data(pegaDados("select * from i3geoadmin_raiz LEFT JOIN i3geoadmin_temas ON i3geoadmin_raiz.id_tema = i3geoadmin_temas.id_tema")); - $cp->return_data(); + case "pegaSubGrupos": + $subgrupos = pegaDados("select i3geoadmin_subgrupos.nome_subgrupo,i3geoadmin_n2.id_n2 from i3geoadmin_n2 LEFT JOIN i3geoadmin_subgrupos ON i3geoadmin_n2.id_subgrupo = i3geoadmin_subgrupos.id_subgrupo where i3geoadmin_n2.id_n1='$id_n1' order by ordem"); + $raiz = pegaDados("select id_raiz,i3geoadmin_raiz.id_tema,nome_tema from i3geoadmin_raiz LEFT JOIN i3geoadmin_temas ON i3geoadmin_temas.id_tema = i3geoadmin_raiz.id_tema where i3geoadmin_raiz.id_menu='$id_menu' and i3geoadmin_raiz.nivel = 1 and i3geoadmin_raiz.id_nivel = $id_n1 order by ordem"); + retornaJSON(array("raiz"=>$raiz,"subgrupos"=>$subgrupos)); + exit; + case "pegaTemas": + retornaJSON(pegaDados("select i3geoadmin_temas.nome_tema,i3geoadmin_n3.id_n3 from i3geoadmin_n3 LEFT JOIN i3geoadmin_temas ON i3geoadmin_n3.id_tema = i3geoadmin_temas.id_tema where i3geoadmin_n3.id_n2='$id_n2' order by ordem")); + exit; break; - case "pegaN1": - $cp->set_data(pegaDados("select * from i3geoadmin_n1 where id_menu=$menu")); - $cp->return_data(); + case "adicionarTemaRaiz": + $id_nivel = 0; + $nivel = 0; + $id_raiz = alterarRaiz(); + $raiz = pegaDados("select i3geoadmin_raiz.id_raiz,nome_tema from i3geoadmin_raiz LEFT JOIN i3geoadmin_temas ON i3geoadmin_temas.id_tema = i3geoadmin_raiz.id_tema where i3geoadmin_raiz.id_raiz = '$id_raiz'"); + retornaJSON(array("raiz"=>$raiz,"grupos"=>array())); + exit; break; - case "alterarRaiz": - alterarRaiz(); - $cp->set_data(pegaDados("select * from i3geoadmin_raiz LEFT JOIN i3geoadmin_temas ON i3geoadmin_raiz.id_tema = i3geoadmin_temas.id_tema")); - $cp->return_data(); + case "adicionarTemaRaizGrupo": + $id_nivel = $id_n1; + $nivel = 1; + $id_raiz = alterarRaiz(); + $raiz = pegaDados("select i3geoadmin_raiz.id_raiz,nome_tema from i3geoadmin_raiz LEFT JOIN i3geoadmin_temas ON i3geoadmin_temas.id_tema = i3geoadmin_raiz.id_tema where i3geoadmin_raiz.id_raiz = '$id_raiz'"); + retornaJSON(array("raiz"=>$raiz,"grupos"=>array())); + exit; + break; + case "adicionarGrupo": + $id_n1 = alteraN1(); + $grupos = pegaDados("select i3geoadmin_grupos.nome_grupo,id_n1 from i3geoadmin_n1 LEFT JOIN i3geoadmin_grupos ON i3geoadmin_n1.id_grupo = i3geoadmin_grupos.id_grupo where id_menu='$id_menu' and id_n1 = '$id_n1'"); + $raiz = array(); + retornaJSON(array("raiz"=>$raiz,"grupos"=>$grupos)); + exit; + break; + case "adicionarSubGrupo": + $id_n2 = alteraN2(); + $subgrupos = pegaDados("select i3geoadmin_subgrupos.nome_subgrupo,i3geoadmin_n2.id_n2 from i3geoadmin_n2 LEFT JOIN i3geoadmin_subgrupos ON i3geoadmin_n2.id_subgrupo = i3geoadmin_subgrupos.id_subgrupo where i3geoadmin_n2.id_n2='$id_n2'"); + $raiz = array(); + retornaJSON(array("raiz"=>$raiz,"subgrupos"=>$subgrupos)); + exit; + break; + case "adicionarTema": + $id_n3 = alteraN3(); + $temas = pegaDados("select i3geoadmin_temas.nome_tema,i3geoadmin_n3.id_n3 from i3geoadmin_n3 LEFT JOIN i3geoadmin_temas ON i3geoadmin_n3.id_tema = i3geoadmin_temas.id_tema where i3geoadmin_n3.id_n3='$id_n3'"); + $raiz = array(); + retornaJSON($temas); + exit; break; - case "alteraN1": - $cp->set_data(alteraN1()); - $cp->return_data(); + case "pegaDadosGrupo": + retornaJSON(pegaDados("select * from i3geoadmin_n1 LEFT JOIN i3geoadmin_grupos ON i3geoadmin_n1.id_grupo = i3geoadmin_grupos.id_grupo where id_n1 = $id")); + exit; break; - case "alteraN2": - $cp->set_data(alteraN2()); - $cp->return_data(); + case "pegaDadosSubGrupo": + retornaJSON(pegaDados("select * from i3geoadmin_n2 LEFT JOIN i3geoadmin_subgrupos ON i3geoadmin_n2.id_subgrupo = i3geoadmin_subgrupos.id_subgrupo where id_n2 = $id")); + exit; break; - case "alteraN3": - $cp->set_data(alteraN3()); - $cp->return_data(); + case "pegaDadosTema": + retornaJSON(pegaDados("select * from i3geoadmin_n3 LEFT JOIN i3geoadmin_temas ON i3geoadmin_n3.id_tema = i3geoadmin_temas.id_tema where id_n3 = $id")); + exit; break; - case "pegaN2": - $cp->set_data(pegaDados("select * from i3geoadmin_n2 where id_n1=$idn1")); - $cp->return_data(); + case "pegaDadosRaiz": + retornaJSON(pegaDados("select * from i3geoadmin_raiz LEFT JOIN i3geoadmin_temas ON i3geoadmin_raiz.id_tema = i3geoadmin_temas.id_tema where id_raiz = $id")); + exit; break; - case "pegaN3": - $cp->set_data(pegaDados("select * from i3geoadmin_n3 where id_n2=$idn2")); - $cp->return_data(); + case "alterarGrupo": + retornaJSON(alteraN1()); + exit; break; - case "excluir"; - if($tabela != "i3geoadmin_raiz") - { - $f = verificaFilhos(); - if(!$f) - $cp->set_data(exclui()); - else - $cp->set_data("erro"); - } - else - { - exclui(); - $cp->set_data(pegaDados("select * from i3geoadmin_raiz LEFT JOIN i3geoadmin_temas ON i3geoadmin_raiz.id_tema = i3geoadmin_temas.id_tema")); - } - $cp->return_data(); + case "alterarSubGrupo": + retornaJSON(alteraN2()); + exit; + break; + case "alterarTema": + retornaJSON(alteraN3()); + exit; + break; + case "alterarRaiz": + retornaJSON(alterarRaiz()); + exit; break; + case "movimentaNo": + movimentaNo(); + retornaJSON("ok"); + exit; + break; + case "excluir"; + if($tabela == "i3geoadmin_raiz") + { + $coluna = "id_raiz"; + } + if($tabela == "i3geoadmin_n3") + { + $coluna = "id_n3"; + } + if($tabela == "i3geoadmin_n2") + { + $coluna = "id_n2"; + $f = verificaFilhos(); + if($f) + { + retornaJSON("erro"); + exit; + } + } + if($tabela == "i3geoadmin_n1") + { + $coluna = "id_n1"; + $f = verificaFilhos(); + if($f) + { + retornaJSON("erro"); + exit; + } + } + retornaJSON(exclui()); + exit; + break; } /* Function: alteraN3 @@ -94,22 +161,32 @@ Altera o registro de um nível 3 (temas) */ function alteraN3() { - global $perfil,$id,$idtema,$idsubgrupo; + global $publicado,$n3_perfil,$id,$id_n2,$id_tema,$ordem; try { require_once("conexao.php"); if($id != "") - $dbhw->query("UPDATE i3geoadmin_n3 SET id_tema = '$idtema', n3_perfil = '$perfil' WHERE id_n3 = $id"); + { + $dbhw->query("UPDATE i3geoadmin_n3 SET publicado = '$publicado',ordem = '$ordem',id_tema = '$id_tema', n3_perfil = '$perfil' WHERE id_n3 = $id"); + $retorna = $id; + } else - $dbhw->query("INSERT INTO i3geoadmin_n3 (id_n2,id_tema,n3_perfil) VALUES ($idsubgrupo,'', '')"); + { + $o = $dbhw->query("SELECT MAX(ordem) as o FROM i3geoadmin_n3 where id_n2 = '$id_n2'"); + $o = $o->fetchAll(); + $o = $o[0]['o'] + 1; + $dbhw->query("INSERT INTO i3geoadmin_n3 (id_n2,id_tema,n3_perfil,ordem) VALUES ($id_n2,'', '',$o)"); + $id = $dbhw->query("SELECT id_n3 FROM i3geoadmin_n3"); + $id = $id->fetchAll(); + $id = intval($id[count($id)-1]['id_n3']); + $retorna = $id; + } $dbhw = null; $dbh = null; - return "ok"; + return $retorna; } catch (PDOException $e) - { - return "Error!: " . $e->getMessage(); - } + {return "Error!: " . $e->getMessage();} } /* Function: alteraN2 @@ -118,17 +195,29 @@ Altera o registro de um nível 2 */ function alteraN2() { - global $perfil,$id,$idsubgrupo,$idgrupo; + global $publicado,$n2_perfil,$id,$id_subgrupo,$id_n1,$ordem; try { require_once("conexao.php"); if($id != "") - $dbhw->query("UPDATE i3geoadmin_n2 SET id_subgrupo = '$idsubgrupo', n2_perfil = '$perfil' WHERE id_n2 = $id"); + { + $dbhw->query("UPDATE i3geoadmin_n2 SET publicado='$publicado', ordem = '$ordem',id_subgrupo = '$id_subgrupo', n2_perfil = '$n2_perfil' WHERE id_n2 = $id"); + $retorna = $id; + } else - $dbhw->query("INSERT INTO i3geoadmin_n2 (id_n1,id_subgrupo,n2_perfil) VALUES ($idgrupo,'', '')"); + { + $o = $dbhw->query("SELECT MAX(ordem) as o FROM i3geoadmin_n2 where id_n1 = '$id_1'"); + $o = $o->fetchAll(); + $o = $o[0]['o'] + 1; + $dbhw->query("INSERT INTO i3geoadmin_n2 (id_n1,id_subgrupo,n2_perfil,ordem) VALUES ($id_n1,'', '',$o)"); + $id = $dbhw->query("SELECT id_n2 FROM i3geoadmin_n2"); + $id = $id->fetchAll(); + $id = intval($id[count($id)-1]['id_n2']); + $retorna = $id; + } $dbhw = null; $dbh = null; - return "ok"; + return $retorna; } catch (PDOException $e) { @@ -138,21 +227,33 @@ function alteraN2() /* Function: alteraN1 -Altera o registro de um nível 1 +Altera o registro de um nível 1 (grupos) */ function alteraN1() { - global $perfil,$idgrupo,$id,$idmenu; + global $publicado,$n1_perfil,$id_grupo,$id,$id_menu,$ordem; try { require_once("conexao.php"); if($id != "") - $dbhw->query("UPDATE i3geoadmin_n1 SET id_grupo = '$idgrupo', n1_perfil = '$perfil' WHERE id_menu = $idmenu and id_n1 = $id"); + { + $dbhw->query("UPDATE i3geoadmin_n1 SET publicado = '$publicado', ordem = '$ordem', id_grupo = '$id_grupo', n1_perfil = '$n1_perfil' WHERE id_n1 = $id"); + $retorna = $id; + } else - $dbhw->query("INSERT INTO i3geoadmin_n1 (id_menu,id_grupo,n1_perfil) VALUES ($idmenu,'', '')"); + { + $o = $dbhw->query("SELECT MAX(ordem) as o FROM i3geoadmin_n1 where id_menu = '$id_menu'"); + $o = $o->fetchAll(); + $o = $o[0]['o'] + 1; + $dbhw->query("INSERT INTO i3geoadmin_n1 (publicado,id_menu,id_grupo,n1_perfil,ordem) VALUES ('',$id_menu,'', '',$o)"); + $id = $dbhw->query("SELECT id_n1 FROM i3geoadmin_n1"); + $id = $id->fetchAll(); + $id = intval($id[count($id)-1]['id_n1']); + $retorna = $id; + } $dbhw = null; $dbh = null; - return "ok"; + return $retorna; } catch (PDOException $e) { @@ -166,22 +267,103 @@ Altera o registro na raiz de um nível */ function alterarRaiz() { - global $id_nivel,$nivel,$id_raiz,$id_menu,$perfil,$id_tema; + global $id_nivel,$nivel,$id,$id_menu,$perfil,$id_tema,$ordem; try { include("conexao.php"); - if($id_raiz != "") - $dbhw->query("UPDATE i3geoadmin_raiz SET id_nivel = '$nivel', nivel = '$nivel', perfil = '$perfil', id_menu = '$id_menu', id_tema = '$id_tema' WHERE id_raiz = $id_raiz"); + if($id != "") + { + $dbhw->query("UPDATE i3geoadmin_raiz SET ordem = '$ordem', perfil = '$perfil', id_tema = '$id_tema' WHERE id_raiz = $id"); + $retorna = $id; + } else - $dbhw->query("INSERT INTO i3geoadmin_raiz (id_nivel,nivel,id_menu,perfil,id_tema) VALUES ($id_nivel,$nivel,$id_menu,'','')"); + { + $o = $dbhw->query("SELECT MAX(ordem) as o FROM i3geoadmin_raiz where id_menu = '$id_menu' and nivel = '$nivel' and id_nivel = '$id_nivel'"); + $o = $o->fetchAll(); + $o = $o[0]['o'] + 1; + $dbhw->query("INSERT INTO i3geoadmin_raiz (id_nivel,nivel,id_menu,perfil,id_tema,ordem) VALUES ($id_nivel,$nivel,$id_menu,'','',$o)"); + $id = $dbhw->query("SELECT id_raiz FROM i3geoadmin_raiz"); + $id = $id->fetchAll(); + $id = intval($id[count($id)-1]['id_raiz']); + $retorna = $id; + } $dbhw = null; $dbh = null; - return "ok"; + return $retorna; } catch (PDOException $e) { return "Error!: " . $e->getMessage(); } } +function movimentaNo() +{ + global $tipo,$movimento,$id; + if($tipo == "raizmenu" || $tipo == "raizgrupo") + { + //pega a ordem atual + $reg = pegaDados("SELECT * from i3geoadmin_raiz where id_raiz = '$id'"); + $ordematual = $reg[0]["ordem"]; + $idmenu = $reg[0]["id_menu"]; + $nivel = $reg[0]["nivel"]; + $idnivel = $reg[0]["id_nivel"]; + $where = "id_menu = '$idmenu' and nivel = '$nivel' and id_nivel = '$idnivel' "; + $posfixo = "raiz"; + $tabela = "raiz"; + } + + if($tipo == "grupo") + { + //pega a ordem atual + $reg = pegaDados("SELECT ordem,id_menu from i3geoadmin_n1 where id_n1 = '$id'"); + $ordematual = $reg[0]["ordem"]; + $idbate = $reg[0]["id_menu"]; + $colunaBate = "id_menu"; + $where = "$colunaBate = '$idbase' "; + $posfixo = "n1"; + $tabela = "n1"; + } + if($tipo == "subgrupo") + { + //pega a ordem atual + $reg = pegaDados("SELECT ordem,id_n1 from i3geoadmin_n2 where id_n2 = '$id'"); + $ordematual = $reg[0]["ordem"]; + $idbate = $reg[0]["id_n1"]; + $colunaBate = "id_n1"; + $where = "$colunaBate = '$idbase' "; + $posfixo = "n2"; + $tabela = "n2"; + } + if($tipo == "tema") + { + //pega a ordem atual + $reg = pegaDados("SELECT ordem,id_n2 from i3geoadmin_n3 where id_n3 = '$id'"); + $ordematual = $reg[0]["ordem"]; + $idbate = $reg[0]["id_n2"]; + $colunaBate = "id_n2"; + $where = "$colunaBate = '$idbase' "; + $posfixo = "n3"; + $tabela = "n3"; + } + include("conexao.php"); + if($movimento == "sobe") + { + if ($ordematual > 1) + { + $menos = $ordematual - 1; + $dbhw->query("UPDATE i3geoadmin_$tabela SET 'ordem' = $ordematual where $where and ordem = '$menos'"); + $dbhw->query("UPDATE i3geoadmin_$tabela SET 'ordem' = $menos where id_$posfixo = '$id'"); + } + } + if($movimento == "desce") + { + $mais = $ordematual + 1; + $dbhw->query("UPDATE i3geoadmin_$tabela SET 'ordem' = $ordematual where $where and ordem = '$mais'"); + $dbhw->query("UPDATE i3geoadmin_$tabela SET 'ordem' = $mais where id_$posfixo = '$id'"); + } + $dbhw = null; + $dbh = null; + return "ok"; +} ?> \ No newline at end of file diff --git a/admin/php/atlas.php b/admin/php/atlas.php index b4e129e..4a29ff3 100644 --- a/admin/php/atlas.php +++ b/admin/php/atlas.php @@ -113,16 +113,20 @@ function movimentaNo() if($tipo == "tema") { //pega a ordem atual - $ordematual = pegaDados("SELECT ordem_tema from i3geoadmin_atlast where id_tema = '$id'"); - $ordematual = $ordematual[0]["ordem_tema"]; + $reg = pegaDados("SELECT ordem_tema,id_prancha from i3geoadmin_atlast where id_tema = '$id'"); + $ordematual = $reg[0]["ordem_tema"]; + $prancha = $reg[0]["id_prancha"]; + $where = " id_prancha = '$prancha' and"; $posfixo = "tema"; $tabela = "atlast"; } if($tipo == "prancha") { //pega a ordem atual - $ordematual = pegaDados("SELECT ordem_prancha from i3geoadmin_atlasp where id_prancha = '$id'"); - $ordematual = $ordematual[0]["ordem_prancha"]; + $reg = pegaDados("SELECT ordem_prancha,id_atlas from i3geoadmin_atlasp where id_prancha = '$id'"); + $ordematual = $reg[0]["ordem_prancha"]; + $atlas = $reg[0]["id_atlas"]; + $where = "id_atlas = '$atlas' and "; $posfixo = "prancha"; $tabela = "atlasp"; } @@ -131,6 +135,7 @@ function movimentaNo() //pega a ordem atual $ordematual = pegaDados("SELECT ordem_atlas from i3geoadmin_atlas where id_atlas = '$id'"); $ordematual = $ordematual[0]["ordem_atlas"]; + $where = ""; $posfixo = "atlas"; $tabela = "atlas"; } @@ -138,16 +143,14 @@ function movimentaNo() if($movimento == "sobe") { $menos = $ordematual - 1; - $dbhw->query("UPDATE i3geoadmin_$tabela SET 'ordem_$posfixo' = $ordematual where ordem_$posfixo = '$menos'"); + $dbhw->query("UPDATE i3geoadmin_$tabela SET 'ordem_$posfixo' = $ordematual where $where ordem_$posfixo = '$menos'"); $dbhw->query("UPDATE i3geoadmin_$tabela SET 'ordem_$posfixo' = $menos where id_$posfixo = '$id'"); - $dbhw->query("UPDATE i3geoadmin_$tabela SET 'ordem_$posfixo' = (ordem_$posfixo - 1) where ordem_$posfixo < $menos and ordem_$posfixo > 1"); } if($movimento == "desce") { $mais = $ordematual + 1; - $dbhw->query("UPDATE i3geoadmin_$tabela SET 'ordem_$posfixo' = $ordematual where ordem_$posfixo = '$mais'"); + $dbhw->query("UPDATE i3geoadmin_$tabela SET 'ordem_$posfixo' = $ordematual where $where ordem_$posfixo = '$mais'"); $dbhw->query("UPDATE i3geoadmin_$tabela SET 'ordem_$posfixo' = $mais where id_$posfixo = '$id'"); - $dbhw->query("UPDATE i3geoadmin_$tabela SET 'ordem_$posfixo' = (ordem_$posfixo + 1) where ordem_$posfixo > $mais and ordem_$posfixo > 1"); } $dbhw = null; $dbh = null; @@ -193,7 +196,10 @@ function alterarAtlas() } else { - $dbhw->query("INSERT INTO i3geoadmin_atlas (publicado_atlas,ordem_atlas,basemapfile_atlas,desc_atlas,h_atlas,w_atlas,icone_atlas,link_atlas,pranchadefault_atlas,template_atlas,tipoguias_atlas,titulo_atlas) VALUES ('',1,'','',null,null,'','','','','','')"); + $o = $dbhw->query("SELECT MAX(ordem_atlas) as o FROM i3geoadmin_atlas"); + $o = $o->fetchAll(); + $o = $o[0]['o'] + 1; + $dbhw->query("INSERT INTO i3geoadmin_atlas (publicado_atlas,ordem_atlas,basemapfile_atlas,desc_atlas,h_atlas,w_atlas,icone_atlas,link_atlas,pranchadefault_atlas,template_atlas,tipoguias_atlas,titulo_atlas) VALUES ('',$o,'','',null,null,'','','','','','')"); $id = $dbhw->query("SELECT id_atlas FROM i3geoadmin_atlas"); $id = $id->fetchAll(); $id = intval($id[count($id)-1]['id_atlas']); @@ -223,7 +229,11 @@ function alterarPrancha() } else { - $dbhw->query("INSERT INTO i3geoadmin_atlasp (ordem_prancha,mapext_prancha,desc_prancha,h_prancha,w_prancha,icone_prancha,link_prancha,titulo_prancha,id_atlas) VALUES (1,'','','$h_prancha','$w_prancha','','','$titulo_prancha','$id_atlas')"); + $o = $dbhw->query("SELECT MAX(ordem_prancha) as o FROM i3geoadmin_atlasp WHERE id_atlas = '$id_atlas'"); + $o = $o->fetchAll(); + $o = $o[0]['o'] + 1; + + $dbhw->query("INSERT INTO i3geoadmin_atlasp (ordem_prancha,mapext_prancha,desc_prancha,h_prancha,w_prancha,icone_prancha,link_prancha,titulo_prancha,id_atlas) VALUES ($o,'','','$h_prancha','$w_prancha','','','$titulo_prancha','$id_atlas')"); $id = $dbhw->query("SELECT id_prancha FROM i3geoadmin_atlasp"); $id = $id->fetchAll(); $id = intval($id[count($id)-1]['id_prancha']); @@ -251,7 +261,11 @@ function alterarTema() } else { - $dbhw->query("INSERT INTO i3geoadmin_atlast (ordem_tema,codigo_tema,ligado_tema,id_prancha) VALUES (1,'','','$id_prancha')"); + $o = $dbhw->query("SELECT MAX(ordem_tema) as o FROM i3geoadmin_atlast where id_prancha = '$id_prancha'"); + $o = $o->fetchAll(); + $o = $o[0]['o'] + 1; + + $dbhw->query("INSERT INTO i3geoadmin_atlast (ordem_tema,codigo_tema,ligado_tema,id_prancha) VALUES ($o,'','','$id_prancha')"); $id = $dbhw->query("SELECT id_tema FROM i3geoadmin_atlast"); $id = $id->fetchAll(); $id = intval($id[count($id)-1]['id_tema']); diff --git a/admin/php/menutemas.php b/admin/php/menutemas.php index 73376cb..792be2c 100644 --- a/admin/php/menutemas.php +++ b/admin/php/menutemas.php @@ -27,7 +27,7 @@ File: i3geo/admin/mapfiles.php 19/6/2007 */ -error_reporting(E_ALL); +error_reporting(0); include_once("admin.php"); $cp = new cpaint(); //faz a busca da função que deve ser executada diff --git a/admin/php/parsemapfile.php b/admin/php/parsemapfile.php index 77368f8..3a82060 100644 --- a/admin/php/parsemapfile.php +++ b/admin/php/parsemapfile.php @@ -104,6 +104,7 @@ function legendaSimples($layername) $xml .= "\n"; $xml .= "\n"; $xml .= "\n"; + if($cor->red != -1) $xml .= "\n"; if($outcor->red != -1) $xml .= "\n"; -- libgit2 0.21.2