Commit d3927994679bea07c9e5aeb0e5be16372086e982

Authored by Edmar Moretti
1 parent 3a18ce13

--no commit message

admin/html/arvore.html 0 → 100644
... ... @@ -0,0 +1,43 @@
  1 +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2 +<html>
  3 +<head>
  4 + <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
  5 + <title>Árvore de temas</title>
  6 + <style type="text/css">
  7 + /*margin and padding on body element
  8 + can introduce errors in determining
  9 + element position and are not recommended;
  10 + we turn them off as a foundation for YUI
  11 + CSS treatments. */
  12 + body {
  13 + margin:0;
  14 + padding:0;
  15 + }
  16 + </style>
  17 + <script type="text/javascript" src="../js/core.js"></script>
  18 + <script type="text/javascript" src="../js/arvore.js"></script>
  19 +</head>
  20 +<body class=" yui-skin-sam">
  21 +<div style="margin:20px">
  22 +<div style=width:80%;text-align:center;>
  23 +<h1>Administração do i3geo - Árvore de temas <img src="../imagens/04.png" style="cursor:pointer" id=botaoAjuda /></h1>
  24 +
  25 +</div>
  26 +<div id="ajuda">
  27 + <div class="hd">Ajuda</div>
  28 + <div class="bd" style="height:144px;overflow:auto">
  29 + Este programa permite editar árvore de temas dos menus disponíveis.<br><br>
  30 + A árvore define os grupos, sub-grupos e temas existentes em cada menu.
  31 + As árvores são mostradas na guia de adição de temas do i3geo.<br><br>
  32 + A lista de atlas é baseada no banco admin.db.<br><br>
  33 + A lista de IPs dos usuários que podem administrar o i3geo é definida no
  34 + arquivo i3geo/ms_configura.php
  35 + </div>
  36 + <div class="ft"></div>
  37 +</div>
  38 +<br>
  39 +<p>Menus existentes Para editar os menus clique <a href="menus.html" >aqui</a>):</p>
  40 +<div id="tabela" style="left:-5px;"></div>
  41 +</div>
  42 +<div id=logajax style="display:block" ></div>
  43 +</body>
... ...
admin/html/i3geoadmin_arvore.html
... ... @@ -1,92 +0,0 @@
1   -<html>
2   -<head>
3   -<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
4   -<link rel="stylesheet" type="text/css" href="admin.css">
5   -<script src="../../pacotes/cpaint/cpaint2.inc.compressed.js" type="text/javascript"></script>
6   -<script src="../js/admin.js" type="text/javascript"></script>
7   -<script src="../js/arvore.js" type="text/javascript"></script>
8   -</head>
9   -<body>
10   -<div style=width:80%;text-align:center;>
11   -<h1>Administração do i3geo - menu de temas <img src="../imagens/04.png" style="cursor:pointer" onclick="$i('ajuda').style.display='block'"/></h1>
12   -<p><a href="../index.html">Voltar</a></p>
13   -<div id=ajuda style="display:none">
14   -<p>Este programa permite editar as árvores de cada menu</p>
15   -<p>O menu é baseado no banco admin.db.</p>
16   -<p>A lista de IPs dos usuários que podem editar os arquivos de configuração do i3geo e
17   -dos que podem navegar pelos diretórios do servidor, não são mostradas aqui. Para
18   -alterar essas variáveis, vc deve editar diretamente o arquivo i3geo/ms_configura.php.</p>
19   -<p>Utilize as opções abaixo para relacionar os temas a grupos e sub-grupos. Escolha primeiro um menu e depois edite
20   -os grupos, adicionando temas ou sub-grupos. A estrutura é hierárquica e permite que temas sejam criados também na raiz de um grupo ou do próprio menu.
21   -<p>Os grupos, sub-grupos e temas já devem ter sido criados para que se possa montar a árvore de associações.
22   -</div></div>
23   -<div id=aguarde style="color:red" ><img src="../../imagens/aguarde.gif" /></div>
24   -</body>
25   -<script>
26   -/*
27   -Title: Administração da árvore de menus
28   -
29   -File: i3geo/admin/i3geoadmin_arvore.htm
30   -*/
31   -$parametros = {
32   - "simples": [
33   - { mensagem: "Edição das árvores dos menus",cabeca: "Raiz",variavel:"arvores"}
34   - ]};
35   -
36   -var iniciaMenu = function(retorno)
37   -{
38   - pegaParametros()
39   - iniciaAdmin()
40   - if(retorno.data == "" || retorno.data.length == 0)
41   - {document.body.innerHTML += "Nenhum menu cadastrado."}
42   - else
43   - {
44   - var ins = "<p><b>Selecione o menu:</b> "
45   - ins += "<select id=menusel onchange='pegaParametros();listaRaiz()' >"
46   - ins += "<option value='' >---</option>"
47   - for(var i = 0;i < retorno.data.length;i++)
48   - {
49   - ins += "<option value='"+retorno.data[i].id_menu+"' >"+retorno.data[i].nome_menu+"</option>"
50   - }
51   - ins += "</select><hr>"
52   - document.body.innerHTML += ins;
53   - }
54   -}
55   -var cp = new cpaint();
56   -//cp.set_async(false);
57   -cp.set_response_type("JSON");
58   -//pega os menus
59   -var p = "../php/menutemas.php?funcao=pegaMenus";
60   -cp.call(p,"pegaMenus",iniciaMenu);
61   -//pega os grupos e subgrupos
62   -
63   -grupos = function(retorno){$grupos = retorno.data;}
64   -subGrupos = function(retorno){$subGrupos = retorno.data;};
65   -temas = function(retorno){$temas = retorno.data;}
66   -temasRaiz = function(retorno){$temasRaiz = retorno.data;}
67   -listaPerfis = function(retorno){$perfis = retorno.data;}
68   -function pegaParametros()
69   -{
70   - var cp = new cpaint();
71   - //cp.set_async(false);
72   - cp.set_response_type("JSON");
73   -
74   - var p = "../php/menutemas.php?funcao=pegaGrupos";
75   - cp.call(p,"pegaMenus",grupos);
76   -
77   - var p = "../php/menutemas.php?funcao=pegaSubGrupos";
78   - cp.call(p,"pegaMenus",subGrupos);
79   -
80   - var p = "../php/menutemas.php?funcao=pegaTemas";
81   - cp.call(p,"pegaMenus",temas);
82   -
83   - var p = "../php/arvore.php?funcao=pegaTemasRaiz";
84   - cp.call(p,"pegaMenus",temasRaiz);
85   -
86   - var p = "../php/menutemas.php?funcao=pegaPerfis";
87   - cp.call(p,"pegaMenus",listaPerfis);
88   -}
89   -
90   -document.getElementById("aguarde").style.display="none"
91   -</script>
92   -</html>
93 0 \ No newline at end of file
admin/index.html
... ... @@ -89,7 +89,7 @@ que por sua vez contém temas.&lt;/p&gt;
89 89 <tr onclick="abre('html/grupos.html')"><td><div class=aplicar ></div></td><td>Editar a lista de grupos</td></tr>
90 90 <tr onclick="abre('html/subgrupos.html')"><td><div class=aplicar ></div></td><td>Editar a lista de sub-grupos</td></tr>
91 91 <tr onclick="abre('html/listatemas.html')"><td><div class=aplicar ></div></td><td>Editar a lista de temas</td></tr>
92   -<tr onclick="abre('html/i3geoadmin_arvore.html')"><td><div class=aplicar ></div></td><td>Editar a árvore dos menus</td></tr>
  92 +<tr onclick="abre('html/arvore.html')"><td><div class=aplicar ></div></td><td>Editar a árvore dos menus</td></tr>
93 93 <tr onclick="abre('html/i3geoadmin_importarmenu.html')"><td><div class=aplicar ></div></td><td>Importar XML</td></tr>
94 94 </table>
95 95 </fieldset>
... ...
admin/js/arvore.js
1   -/*
2   -Title: Arvore
3   -
4   -Funções javascript utilizadas no sistema de administração do menu de temas
5   -
6   -File: i3geo/admin/arvore.js
7   -
8   -About: Licença
9   -
10   -I3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet
11   -
12   -Direitos Autorais Reservados (c) 2006 Ministério do Meio Ambiente Brasil
13   -Desenvolvedor: Edmar Moretti edmar.moretti@mma.gov.br
14   -
15   -Este programa é software livre; você pode redistribuí-lo
16   -e/ou modificá-lo sob os termos da Licença Pública Geral
17   -GNU conforme publicada pela Free Software Foundation;
18   -tanto a versão 2 da Licença.
19   -Este programa é distribuído na expectativa de que seja útil,
20   -porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita
21   -de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA.
22   -Consulte a Licença Pública Geral do GNU para mais detalhes.
23   -Você deve ter recebido uma cópia da Licença Pública Geral do
24   -GNU junto com este programa; se não, escreva para a
25   -Free Software Foundation, Inc., no endereço
26   -59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
27   -*/
28   -/*
29   -Function: iniciaAdmin
30   -
31   -Inicializa as variáveis globais e checa o cadastro do editor do sistema de administração
32   -
33   -Ao retornar, por default, executa a função montaParametros()
34   -*/
35   -function iniciaAdmin()
  1 +YAHOO.namespace("example.container");
  2 +function initMenu()
36 3 {
37   - verificaEditores()
  4 + //ativaBotaoAdicionaAtlas("../php/atlas.php?funcao=alterarAtlas","adiciona")
  5 + core_carregando("ativa");
  6 + core_ativaPainelAjuda("ajuda","botaoAjuda");
  7 + core_pegaPerfis("pegaMenus()");
38 8 }
39   -function montaParametros()
  9 +function pegaMenus()
40 10 {
41   - if(!$i("resultado"))
42   - {document.body.innerHTML += "<div id=resultado ></div>"}
  11 + core_pegaDados("buscando menus...","../php/menutemas.php?funcao=pegaMenus","montaArvore")
43 12 }
44   -/*
45   -Function: listaRaiz
46   -
47   -Monta o html com os parametros e os divs que receberão os dados dos formulários.
48   -
49   -Para cada registro na variável $parametrs, é montado um formulário.
50   -*/
51   -function listaRaiz()
  13 +function montaArvore(dados)
  14 +{
  15 + YAHOO.example.treeExample = new function()
  16 + {
  17 + var currentIconMode;
  18 + tree = "";
  19 + function changeIconMode()
  20 + {
  21 + var newVal = parseInt(this.value);
  22 + if (newVal != currentIconMode)
  23 + {currentIconMode = newVal;}
  24 + buildTree();
  25 + }
  26 + function loadNodeData(node, fnLoadComplete)
  27 + {
  28 + var sUrl = "../php/arvore.php?funcao=pegaGrupos&id_menu="+node.data.id_menu;
  29 + var callback =
  30 + {
  31 + success: function(oResponse)
  32 + {
  33 + var dados = YAHOO.lang.JSON.parse(oResponse.responseText)
  34 + montaNosGrupos(node.data.id_menu,node,dados,false)
  35 + oResponse.argument.fnLoadComplete();
  36 + },
  37 + failure: function(oResponse)
  38 + {
  39 + oResponse.argument.fnLoadComplete();
  40 + },
  41 + argument:
  42 + {
  43 + "node": node,
  44 + "fnLoadComplete": fnLoadComplete
  45 + },
  46 + timeout: 7000
  47 + };
  48 + YAHOO.util.Connect.asyncRequest('GET', sUrl, callback);
  49 + }
  50 + function buildTree()
  51 + {
  52 + tree = new YAHOO.widget.TreeView("tabela");
  53 + tree.setDynamicLoad(loadNodeData, currentIconMode);
  54 + var root = tree.getRoot();
  55 + var tempNode = new YAHOO.widget.TextNode('', root, false);
  56 + tempNode.isLeaf = true;
  57 + core_carregando("desativa");
  58 + }
  59 + buildTree();
  60 + }();
  61 + montaNosMenus(dados)
  62 + tree.draw();
  63 +}
  64 +//
  65 +//adiciona os menus na árvore
  66 +//
  67 +function montaNosMenus(dados,redesenha)
52 68 {
53   - $i("resultado").innerHTML = $mensagemAguarde
54   - var ins = ""
55   - for (i=0;i<$parametros.simples.length;i++)
56   - {
57   - ins += "<fieldset class=fieldsetRaiz ><legend style='background-color:white;'><b>"+$parametros.simples[i].cabeca+"</b></legend>"
58   - ins += "<p><input style=font-size:10px onclick='alterarGrupo(\"\")' type=button value='Adicionar um grupo' /></p>"
59   - ins += "<input style=font-size:10px onclick='alterarRaiz(\"\",\"0\",\"0\",\"temasRaiz0\")' type=button value='Adicionar tema na raiz desse n&iacute;vel' /></p>"
60   - ins += "<div id='temasRaiz0' ></div>"
61   - ins += "<div id='nivel1' ></div>"
62   - ins += "<p class=mensagem >"+$parametros.simples[i].mensagem+"</p>"
63   - ins += "<p><input style=font-size:10px onclick='alterarGrupo(\"\")' type=button value='Adicionar um grupo' /></p>"
64   - ins += "</fieldset><br>"
  69 + var root = tree.getRoot();
  70 + for (var i=0, j=dados.length; i<j; i++)
  71 + {
  72 + var conteudo = "<b>&nbsp;<span>"+dados[i].nome_menu+"</span>"
  73 + var d = {html:conteudo,id_menu:dados[i].id_menu,tipo:"menu"};
  74 + var tempNode = new YAHOO.widget.HTMLNode(d, root, false,true);
65 75 }
66   - $i("resultado").innerHTML = ins
67   - pegaNosRaiz()
68   - pegaTemasRaiz(0,0,"temasRaiz0")
  76 + if(redesenha){tree.draw();}
69 77 }
70   -function pegaTemasRaiz(nivel,id_nivel,onde)
  78 +//
  79 +//adiciona os grupos em um menu
  80 +//
  81 +function montaNosGrupos(idmenu,no,dados,redesenha)
71 82 {
72   - $i(onde).innerHTML = $mensagemAguarde
73   - var n = $temasRaiz.length
74   - var ins = ""
75   - if(n > 0)
  83 + function temaIconMode()
76 84 {
77   - var ins = "<div ><fieldset style='background-color:white;' ><legend style='background-color:white;color:gray' ><b>Temas na raiz desse nível</b></legend>"
78   - for (i=0;i<n;i++)
  85 + var newVal = parseInt(this.value);
  86 + if (newVal != currentIconMode)
  87 + {currentIconMode = newVal;}
  88 + }
  89 + function loadSubgruposData(node, fnLoadComplete)
  90 + {
  91 + var sUrl = "../php/arvore.php?funcao=pegaSubGrupos&id_n1="+node.data.id_n1+"&id_menu="+idmenu;
  92 + var callback =
79 93 {
80   - if (nivel == $temasRaiz[i].nivel && id_nivel == $temasRaiz[i].id_nivel && $i("menusel").value == $temasRaiz[i].id_menu)
81   - {
82   - ins += "<table class=lista ><tr><td></td><td></td><td><b>Nome</td><td><b>Perfis (separe com v&iacute;rgula)</b></td><td></td></tr>";
83   - ins += "<tr>"
84   - ins += "<td><div class=excluir title='Excluir' onclick='excluirRaiz(\""+nivel+"\",\""+id_nivel+"\",\""+$temasRaiz[i].id_raiz+"\",\""+onde+"\")'/></td>"
85   - ins += "<td><div class=aplicar title='Aplicar alterações' onclick='alterarRaiz(\""+$temasRaiz[i].id_raiz+"\",\""+nivel+"\",\""+id_nivel+"\",\""+onde+"\")'/></td>"
86   - ins += "<td><select onchange=this.style.color='blue' id='raizTema_"+$temasRaiz[i].id_raiz+"'>"
87   - ins += comboObjeto($temas,"id_tema","nome_tema",$temasRaiz[i].id_tema)
88   - ins += "</select>"
89   - ins += "</td>"
90   - ins += "<td><input onchange=this.style.color='blue' id='raizPerfil_"+$temasRaiz[i].id_raiz+"' type=text size=35 value='"+$temasRaiz[i].perfil+"' /></td>"
91   - var idtemp = 'raizPerfil_'+$temasRaiz[i].id_raiz
92   - ins += "<td><select onchange=\"registraPerfil('"+idtemp+"',this.value);this.style.color='blue'\" >"
93   - ins += comboObjeto($perfis,"perfil","perfil","")
94   - ins += "</select></td></tr>"
95   -
96   - ins += "</table>"
97   - }
98   - }
99   - ins += "</fieldset></div><br>"
  94 + success: function(oResponse)
  95 + {
  96 + var dados = YAHOO.lang.JSON.parse(oResponse.responseText)
  97 + montaNosSubgrupos(idmenu,node,dados,true)
  98 + oResponse.argument.fnLoadComplete();
  99 + },
  100 + failure: function(oResponse)
  101 + {
  102 + oResponse.argument.fnLoadComplete();
  103 + },
  104 + argument:
  105 + {
  106 + "node": node,
  107 + "fnLoadComplete": fnLoadComplete
  108 + },
  109 + timeout: 7000
  110 + };
  111 + YAHOO.util.Connect.asyncRequest('GET', sUrl, callback);
  112 + }
  113 + //pega os temas que ficam na raiz da árvore
  114 + if(!tree.getNodeByProperty("etiquetaTemasRaiz","menu_"+idmenu))
  115 + montaTemasRaiz(no,dados,true)
  116 + //pega os grupos do menu
  117 + if(!tree.getNodeByProperty("etiquetaGrupo","menu_"+idmenu))
  118 + {
  119 + var conteudo = "<img style=\"position:relative;cursor:pointer;top:2px\" onclick=\"novoGrupo('"+idmenu+"')\" title='adiciona grupo' src=\"../imagens/05.png\" />"
  120 + var temp = "menu_"+idmenu
  121 + var d = {tipo:"etiqueta","etiquetaGrupo":temp,html:conteudo+"<i>Grupos:</i>"}
  122 + var tempNode = new YAHOO.widget.HTMLNode(d, no, false,true);
  123 + tempNode.isLeaf = true;
  124 + }
  125 + for (var i=0, j=dados.grupos.length; i<j; i++)
  126 + {
  127 + var conteudo = "&nbsp;<img style=\"position:relative;cursor:pointer;top:0px\" onclick=\"sobeDesce('sobe','grupo','"+dados.grupos[i].id_n1+"')\" title=sobe src=\"../imagens/34.png\" />"
  128 + conteudo += "&nbsp;<img style=\"position:relative;cursor:pointer;top:0px\" onclick=\"sobeDesce('desce','grupo','"+dados.grupos[i].id_n1+"')\" title=desce src=\"../imagens/33.png\" />"
  129 + conteudo += "&nbsp;<img style=\"position:relative;cursor:pointer;top:0px\" onclick=\"excluir('grupo','"+dados.grupos[i].id_n1+"')\" title=excluir width='10px' heigth='10px' src=\"../imagens/01.png\" />"
  130 + conteudo += "&nbsp;<img style=\"position:relative;cursor:pointer;top:0px\" onclick=\"editar('grupo','"+dados.grupos[i].id_n1+"')\" title=editar width='10px' heigth='10px' src=\"../imagens/06.png\" />&nbsp;<span>"+dados.grupos[i].nome_grupo+"</span>"
  131 + var d = {html:conteudo,id_n1:dados.grupos[i].id_n1,tipo:"grupo"}
  132 + var tempNode = new YAHOO.widget.HTMLNode(d, no, false,true);
  133 + //tempNode.isLeaf = true;
  134 + tempNode.setDynamicLoad(loadSubgruposData, temaIconMode);
100 135 }
101   - $i(onde).innerHTML = ins;
  136 + if(redesenha){tree.draw();}
102 137 }
103   -
104   -function pegaNosRaiz()
  138 +function montaNosSubgrupos(idmenu,no,dados,redesenha)
105 139 {
106   - $i("nivel1").innerHTML = $mensagemAguarde
107   - //monta o primeiro nível
108   - var retorna = function(retorno)
109   - {
110   - var r = retorno.data
111   - var ins = "";
112   - var rl = r.length;
113   - for (i=0;i<rl;i++)
  140 + function loadTemasData(node, fnLoadComplete)
  141 + {
  142 + var sUrl = "../php/arvore.php?funcao=pegaTemas&id_n2="+node.data.id_n2;
  143 + var callback =
114 144 {
115   - ins += "<div id=n1_"+r[i].id_n1+" ><fieldset style='border:1px solid black;background-color:white' ><legend style='background-color:white;'><b>+- grupo "+r[i].id_n1+"</b></legend>"
116   - ins += "<div style=display:none >"
117   - ins += "<table class=lista ><tr><td></td><td></td><td><b>Nome</td><td><b>Perfis (separe com v&iacute;rgula)</b></td><td></td></tr>";
118   - ins += "<tr>"
119   - ins += "<td><div class=excluir title='Excluir' onclick='excluir(\"n1\",\""+r[i].id_n1+"\",\"id_n1\",\""+r[i].id_n1+"\")'/></td>"
120   - ins += "<td><div class=aplicar title='Aplicar alterações' onclick='alterarGrupo(\""+r[i].id_n1+"\")'/></td>"
121   - ins += "<td><select onchange=this.style.color='blue' id='grupon1_"+r[i].id_n1+"'>"
122   - ins += comboObjeto($grupos,"id_grupo","nome_grupo",r[i].id_grupo)
123   - ins += "</select>"
124   - ins += "</td>"
125   - ins += "<td><input onchange=this.style.color='blue' id='perfiln1_"+r[i].id_n1+"' type=text size=35 value='"+r[i].n1_perfil+"' /></td>"
126   - var idtemp = 'perfiln1_'+r[i].id_n1
127   - ins += "<td><select onchange=\"registraPerfil('"+idtemp+"',this.value);this.style.color='blue'\" >"
128   - ins += comboObjeto($perfis,"perfil","perfil","")
129   - ins += "</select></td></tr>"
130   - ins += "</table>"
131   - ins += "<table><tr><td><input style=font-size:10px onclick='alterarRaiz(\"\",\"1\",\""+r[i].id_n1+"\",\"raizn1_"+r[i].id_n1+"\")' type=button value='Adicionar tema na raiz desse n&iacute;vel' /></td>"
132   - ins += "<td><input style=font-size:10px; type=button value='Adicionar sub-grupo' onclick='alterarSubGrupo(\""+r[i].id_n1+"\",\"\")'/></td>"
133   - ins += "<td><div class=mostrar title='Mostrar sub-grupos' onclick='pegaNosGrupo(\""+r[i].id_n1+"\")'/></td>"
134   - ins += "</tr></table>"
135   - ins += "<div id=raizn1_"+r[i].id_n1+"></div>"
136   - ins += "<div id=n2_"+r[i].id_n1+" style=background-color:beige ></div>"
137   - ins += "</div></fieldset></div><br>"
138   - }
139   - $i("nivel1").innerHTML = ins;
140   - for (t=0;t<rl;t++)
141   - {pegaTemasRaiz("1",r[t].id_n1,"raizn1_"+r[t].id_n1)}
142   - ativaLegenda()
  145 + success: function(oResponse)
  146 + {
  147 + var dados = YAHOO.lang.JSON.parse(oResponse.responseText)
  148 + montaTemas(idmenu,node,dados,false)
  149 + oResponse.argument.fnLoadComplete();
  150 + },
  151 + failure: function(oResponse)
  152 + {
  153 + oResponse.argument.fnLoadComplete();
  154 + },
  155 + argument:
  156 + {
  157 + "node": node,
  158 + "fnLoadComplete": fnLoadComplete
  159 + },
  160 + timeout: 7000
  161 + };
  162 + YAHOO.util.Connect.asyncRequest('GET', sUrl, callback);
  163 + }
  164 + if(!tree.getNodeByProperty("etiquetaTemasGrupo","grupo_"+no.data.id_n1))
  165 + montaTemasRaizGrupo(idmenu,no,dados,true)
  166 + if(!tree.getNodeByProperty("etiquetaTemasSubGrupo",no.data.id_n1))
  167 + {
  168 + var conteudo = "<img style=\"position:relative;cursor:pointer;top:2px\" onclick=\"novoSubGrupo('"+idmenu+"','"+no.data.id_n1+"')\" title='adiciona sub-grupo' src=\"../imagens/05.png\" />"
  169 + var d = {tipo:"etiqueta",etiquetaTemasSubGrupo:no.data.id_n1,html:conteudo+"<i>Sub-grupos:</i>"}
  170 + var tempNode = new YAHOO.widget.HTMLNode(d, no, false,true);
  171 + tempNode.isLeaf = true;
  172 + }
  173 + function temaIconMode()
  174 + {
  175 + var newVal = parseInt(this.value);
  176 + if (newVal != currentIconMode)
  177 + {currentIconMode = newVal;}
  178 + }
  179 + for (var i=0, j=dados.subgrupos.length; i<j; i++)
  180 + {
  181 + var conteudo = "&nbsp;<img style=\"position:relative;cursor:pointer;top:0px\" onclick=\"sobeDesce('sobe','subgrupo','"+dados.subgrupos[i].id_n2+"')\" title=sobe src=\"../imagens/34.png\" />"
  182 + conteudo += "&nbsp;<img style=\"position:relative;cursor:pointer;top:0px\" onclick=\"sobeDesce('desce','subgrupo','"+dados.subgrupos[i].id_n2+"')\" title=desce src=\"../imagens/33.png\" />"
  183 + conteudo += "&nbsp;<img style=\"position:relative;cursor:pointer;top:0px\" onclick=\"excluir('subgrupo','"+dados.subgrupos[i].id_n2+"')\" title=excluir width='10px' heigth='10px' src=\"../imagens/01.png\" />"
  184 + conteudo += "&nbsp;<img style=\"position:relative;cursor:pointer;top:0px\" onclick=\"editar('subgrupo','"+dados.subgrupos[i].id_n2+"')\" title=editar width='10px' heigth='10px' src=\"../imagens/06.png\" />&nbsp;<span>"+dados.subgrupos[i].nome_subgrupo+"</span>"
  185 + var d = {html:conteudo,id_n2:dados.subgrupos[i].id_n2,tipo:"subgrupo"}
  186 + var tempNode = new YAHOO.widget.HTMLNode(d, no, false,true);
  187 + tempNode.setDynamicLoad(loadTemasData, temaIconMode);
143 188 }
144   - var p = "../php/arvore.php?funcao=pegaN1&menu="+$i("menusel").value;
145   - cPaint.call(p,"",retorna);
  189 + if(redesenha){tree.draw();}
146 190 }
147   -function pegaNosGrupo(idn1)
  191 +function montaTemas(idmenu,no,dados,redesenha)
148 192 {
149   - $i("n2_"+idn1).innerHTML = $mensagemAguarde
150   - var retorna = function(retorno)
  193 + if(!tree.getNodeByProperty("etiquetaTemas",no.data.id_n2))
151 194 {
152   - var r = retorno.data
153   - var ins = "";
154   - for (i=0;i<r.length;i++)
155   - {
156   - ins += "<div id=n2x_"+r[i].id_n2+" ><fieldset><legend style='background-color:white;'><b>subgrupo "+r[i].id_n2+"</b></legend>"
157   - ins += "<table class=lista ><tr><td></td><td></td><td><b>Nome</td><td><b>Perfis (separe com v&iacute;rgula)</b></td><td></td></tr>";
158   - ins += "<tr>"
159   - ins += "<td><div class=excluir title='Excluir' onclick='excluir(\"n2\",\""+r[i].id_n2+"\",\"id_n2\",\""+idn1+"\")'/></td>"
160   - ins += "<td><div class=aplicar title='Aplicar alterações' onclick='alterarSubGrupo(\""+r[i].id_n2+"\",\""+idn1+"\")'/></td>"
161   - ins += "<td><select onchange=this.style.color='blue' id='subgrupon2_"+r[i].id_n2+"'>"
162   - ins += comboObjeto($subGrupos,"id_subgrupo","nome_subgrupo",r[i].id_subgrupo)
163   - ins += "</select>"
164   - ins += "</td>"
165   - ins += "<td><input onchange=this.style.color='blue' id='perfiln2_"+r[i].id_n2+"' type=text size=35 value='"+r[i].n2_perfil+"' /></td>"
166   - var idtemp = 'perfiln2_'+r[i].id_n2
167   - ins += "<td><select onchange=\"registraPerfil('"+idtemp+"',this.value);this.style.color='blue'\" >"
168   - ins += comboObjeto($perfis,"perfil","perfil","")
169   - ins += "</select></td></tr>"
170   -
171   - ins += "</table>"
172   - ins += "<table><tr>"
173   - ins += "<td></td>"
174   - ins += "<td><input style=font-size:10px; type=button value='Adicionar tema' onclick='alterarTema(\"\",\""+r[i].id_n2+"\")'/></td>"
175   - ins += "<td><div class=mostrar title='Mostrar temas' onclick='pegaNosSubGrupo(\""+r[i].id_n2+"\")'/></td>"
176   - ins += "</tr></table>"
177   -
178   - ins += "<div id='raizn2_"+idn1+"' ></div>"
179   - ins += "<div id=n3_"+r[i].id_n2+" style='background-color:rgb(245,245,245)' ></div>"
180   - ins += "</fieldset></div>"
181   - }
182   - $i("n2_"+idn1).innerHTML = ins;
183   - ativaLegenda()
  195 + var conteudo = "<img style=\"position:relative;cursor:pointer;top:2px\" onclick=\"novoTema('"+idmenu+"','"+no.data.id_n2+"')\" title='adiciona tema' src=\"../imagens/05.png\" />"
  196 + var d = {tipo:"etiqueta",etiquetaTemas:no.data.id_n2,html:conteudo+"<i>Temas:</i>"}
  197 + var tempNode = new YAHOO.widget.HTMLNode(d, no, false,true);
  198 + tempNode.isLeaf = true;
184 199 }
185   - var p = "../php/arvore.php?funcao=pegaN2&idn1="+idn1;
186   - cPaint.call(p,"",retorna);
  200 + for (var i=0, j=dados.length; i<j; i++)
  201 + {
  202 + var conteudo = "&nbsp;<img style=\"position:relative;cursor:pointer;top:0px\" onclick=\"sobeDesce('sobe','tema','"+dados[i].id_n3+"')\" title=sobe src=\"../imagens/34.png\" />"
  203 + conteudo += "&nbsp;<img style=\"position:relative;cursor:pointer;top:0px\" onclick=\"sobeDesce('desce','tema','"+dados[i].id_n3+"')\" title=desce src=\"../imagens/33.png\" />"
  204 + conteudo += "&nbsp;<img style=\"position:relative;cursor:pointer;top:0px\" onclick=\"excluir('tema','"+dados[i].id_n3+"')\" title=excluir width='10px' heigth='10px' src=\"../imagens/01.png\" />"
  205 + conteudo += "&nbsp;<img style=\"position:relative;cursor:pointer;top:0px\" onclick=\"editar('tema','"+dados[i].id_n3+"')\" title=editar width='10px' heigth='10px' src=\"../imagens/06.png\" />&nbsp;<span>"+dados[i].nome_tema+"</span>"
  206 + var d = {html:conteudo,id_n3:dados[i].id_n3,tipo:"tema"}
  207 + var tempNode = new YAHOO.widget.HTMLNode(d, no, false,true);
  208 + tempNode.isLeaf = true;
  209 + }
  210 + if(redesenha){tree.draw();}
187 211 }
188   -function pegaNosSubGrupo(idn2)
  212 +function montaTemasRaiz(no,dados,redesenha)
189 213 {
190   - $i("n3_"+idn2).innerHTML = $mensagemAguarde
191   - var retorna = function(retorno)
  214 + if(!tree.getNodeByProperty("etiquetaTemasRaiz","menu_"+no.data.id_menu))
  215 + {
  216 + var temp = "menu_"+no.data.id_menu
  217 + var d = {etiquetaTemasRaiz:temp,tipo:"etiqueta",html:"<img style=\"position:relative;cursor:pointer;top:2px\" onclick=\"novoTemaRaiz('"+no.data.id_menu+"')\" title='adiciona tema' src=\"../imagens/05.png\" /><i>Temas na raiz do menu:</i>"}
  218 + var tempNode = new YAHOO.widget.HTMLNode(d, no, false,true);
  219 + tempNode.isLeaf = true;
  220 + }
  221 + var resultado = new Array();
  222 + for (var i=0, j=dados.raiz.length; i<j; i++)
192 223 {
193   - var r = retorno.data
194   - var ins = "";
195   - for (i=0;i<r.length;i++)
196   - {
197   - ins += "<div ><fieldset><legend style='background-color:white;'><b>tema "+r[i].id_n3+"</b></legend>"
198   - ins += "<table class=lista ><tr><td></td><td></td><td><b>Nome</td><td><b>Perfis (separe com v&iacute;rgula)</b></td><td></td></tr>";
199   - ins += "<tr>"
200   - ins += "<td><div class=excluir title='Excluir' onclick='excluir(\"n3\",\""+r[i].id_n3+"\",\"id_n3\",\""+idn2+"\")'/></td>"
201   - ins += "<td><div class=aplicar title='Aplicar alterações' onclick='alterarTema(\""+r[i].id_n3+"\",\""+idn2+"\")'/></td>"
202   - ins += "<td><select onchange=this.style.color='blue' id='teman3_"+r[i].id_n3+"'>"
203   - ins += comboObjeto($temas,"id_tema","nome_tema",r[i].id_tema)
204   - ins += "</select>"
205   - ins += "</td>"
206   - ins += "<td><input onchange=this.style.color='blue' id='perfiln3_"+r[i].id_n3+"' type=text size=35 value='"+r[i].n3_perfil+"' /></td>"
207   - var idtemp = 'perfiln3_'+r[i].id_n3
208   - ins += "<td><select onchange=\"registraPerfil('"+idtemp+"',this.value);this.style.color='blue'\" >"
209   - ins += comboObjeto($perfis,"perfil","perfil","")
210   - ins += "</select></td></tr>"
211   -
212   - ins += "</table>"
213   - //ins += "<div id=n3_"+r[i].id_n2+" ></div>"
214   - ins += "</fieldset></div>"
215   - }
216   - $i("n3_"+idn2).innerHTML = ins;
  224 + var conteudo = "&nbsp;<img style=\"position:relative;cursor:pointer;top:0px\" onclick=\"sobeDesce('sobe','raizmenu','"+dados.raiz[i].id_raiz+"')\" title=sobe src=\"../imagens/34.png\" />"
  225 + conteudo += "&nbsp;<img style=\"position:relative;cursor:pointer;top:0px\" onclick=\"sobeDesce('desce','raizmenu','"+dados.raiz[i].id_raiz+"')\" title=desce src=\"../imagens/33.png\" />"
  226 + conteudo += "&nbsp;<img style=\"position:relative;cursor:pointer;top:0px\" onclick=\"excluir('raizmenu','"+dados.raiz[i].id_raiz+"')\" title=excluir width='10px' heigth='10px' src=\"../imagens/01.png\" />"
  227 + conteudo += "&nbsp;<img style=\"position:relative;cursor:pointer;top:0px\" onclick=\"editar('raizmenu','"+dados.raiz[i].id_raiz+"')\" title=editar width='10px' heigth='10px' src=\"../imagens/06.png\" />&nbsp;<span>"+dados.raiz[i].nome_tema+"</span>"
  228 + var d = {html:conteudo,id_raiz:dados.raiz[i].id_raiz,tipo:"raizmenu"}
  229 + var tempNode = new YAHOO.widget.HTMLNode(d, no, false,true);
  230 + tempNode.isLeaf = true;
  231 + resultado.push(tempNode)
217 232 }
218   - var p = "../php/arvore.php?funcao=pegaN3&idn2="+idn2;
219   - cPaint.call(p,"",retorna);
  233 + return resultado;
220 234 }
221   -function alterarRaiz(id_raiz,nivel,id_nivel,onde)
  235 +function montaTemasRaizGrupo(idmenu,no,dados,redesenha)
222 236 {
223   - //if(confirm("Você realmente quer fazer isso?"))
224   - //{
225   - var retorna = function(retorno)
226   - {
227   - $temasRaiz = retorno.data;
228   - pegaTemasRaiz(nivel,id_nivel,onde);
229   - }
230   - if (id_raiz != "")
231   - {
232   - var id_tema = $i("raizTema_"+id_raiz).value
233   - var perfil = $i("raizPerfil_"+id_raiz).value
234   - }
235   - else
236   - {
237   - var id_raiz = "";
238   - var perfil = "";
239   - var id_tema = ""
240   - }
241   - 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;
242   - cPaint.call(p,"",retorna);
243   - //}
  237 + if(!tree.getNodeByProperty("etiquetaTemasGrupo","grupo_"+no.data.id_n1))
  238 + {
  239 + var temp = "grupo_"+no.data.id_n1
  240 + var d = {etiquetaTemasGrupo:temp,tipo:"etiqueta",html:"<img style=\"position:relative;cursor:pointer;top:2px\" onclick=\"novoTemaRaizGrupo('"+idmenu+"','"+no.data.id_n1+"')\" title='adiciona tema' src=\"../imagens/05.png\" /><i>Temas na raiz do grupo:</i>"}
  241 + var tempNode = new YAHOO.widget.HTMLNode(d, no, false,true);
  242 + tempNode.isLeaf = true;
  243 + }
  244 + var resultado = new Array();
  245 + for (var i=0, j=dados.raiz.length; i<j; i++)
  246 + {
  247 + var conteudo = "&nbsp;<img style=\"position:relative;cursor:pointer;top:0px\" onclick=\"sobeDesce('sobe','raizgrupo','"+dados.raiz[i].id_raiz+"')\" title=sobe src=\"../imagens/34.png\" />"
  248 + conteudo += "&nbsp;<img style=\"position:relative;cursor:pointer;top:0px\" onclick=\"sobeDesce('desce','raizgrupo','"+dados.raiz[i].id_raiz+"')\" title=desce src=\"../imagens/33.png\" />"
  249 + conteudo += "&nbsp;<img style=\"position:relative;cursor:pointer;top:0px\" onclick=\"excluir('raizgrupo','"+dados.raiz[i].id_raiz+"')\" title=excluir width='10px' heigth='10px' src=\"../imagens/01.png\" />"
  250 + conteudo += "&nbsp;<img style=\"position:relative;cursor:pointer;top:0px\" onclick=\"editar('raizgrupo','"+dados.raiz[i].id_raiz+"')\" title=editar width='10px' heigth='10px' src=\"../imagens/06.png\" />&nbsp;<span>"+dados.raiz[i].nome_tema+"</span>"
  251 + var d = {html:conteudo,id_raiz:dados.raiz[i].id_raiz,tipo:"raizmenu"}
  252 + var tempNode = new YAHOO.widget.HTMLNode(d, no, false,true);
  253 + tempNode.isLeaf = true;
  254 + resultado.push(tempNode)
  255 + }
  256 + return resultado;
244 257 }
245   -function alterarTema(id,idsubgrupo)
  258 +//
  259 +//adiciona um novo tema na raiz do menu
  260 +//id = id do menu alvo
  261 +//
  262 +function novoTemaRaiz(id)
246 263 {
247   - //if(confirm("Você realmente quer fazer isso?"))
248   - //{
249   - var retorna = function()
250   - {pegaNosSubGrupo(idsubgrupo);}
251   - if (id != "")
  264 + core_carregando("ativa");
  265 + var mensagem = " adicionando tema...";
  266 + core_carregando("mensagem");
  267 + var no = tree.getNodeByProperty("id_menu",id)
  268 + var noEtiquetaGrupo = tree.getNodeByProperty("etiquetaGrupo","menu_"+id)
  269 + var sUrl = "../php/arvore.php?funcao=adicionarTemaRaiz&id_menu="+id;
  270 + var callback =
  271 + {
  272 + success: function(oResponse)
252 273 {
253   - var perfil = $i("perfiln3_"+id).value
254   - if(perfil == "null"){var perfil = "";}
255   - var idtema = $i("teman3_"+id).value
256   - //var idsubgrupo = ""
257   - }
258   - else
  274 + var dados = YAHOO.lang.JSON.parse(oResponse.responseText)
  275 + var nos = montaTemasRaiz(no,dados,false)
  276 + tree.popNode(nos[0])
  277 + nos[0].insertBefore(noEtiquetaGrupo)
  278 + tree.draw();
  279 + core_carregando("desativa");
  280 + },
  281 + failure:core_handleFailure,
  282 + argument: { foo:"foo", bar:"bar" }
  283 + };
  284 + core_makeRequest(sUrl,callback)
  285 +}
  286 +function novoTemaRaizGrupo(idmenu,id)
  287 +{
  288 + core_carregando("ativa");
  289 + var mensagem = " adicionando tema...";
  290 + core_carregando("mensagem");
  291 + var no = tree.getNodeByProperty("id_n1",id)
  292 + var noEtiquetaSubGrupo = tree.getNodeByProperty("etiquetaTemasSubGrupo",id)
  293 + var sUrl = "../php/arvore.php?funcao=adicionarTemaRaizGrupo&id_n1="+id+"&id_menu="+idmenu;
  294 + var callback =
  295 + {
  296 + success: function(oResponse)
259 297 {
260   - var id = "";
261   - var perfil = "";
262   - var idtema = ""
263   - }
264   - if($i("n3_"+idtema))
265   - $i("n3_"+idtema).innerHTML = $mensagemAguarde
266   - var p = "../php/arvore.php?funcao=alteraN3&id="+id+"&perfil="+perfil+"&idtema="+idtema+"&idsubgrupo="+idsubgrupo;
267   - cPaint.call(p,"",retorna);
268   - //}
269   -
  298 + var dados = YAHOO.lang.JSON.parse(oResponse.responseText)
  299 + var nos = montaTemasRaizGrupo(idmenu,no,dados,false)
  300 + tree.popNode(nos[0])
  301 + nos[0].insertBefore(noEtiquetaSubGrupo)
  302 + tree.draw();
  303 + core_carregando("desativa");
  304 + },
  305 + failure:core_handleFailure,
  306 + argument: { foo:"foo", bar:"bar" }
  307 + };
  308 + core_makeRequest(sUrl,callback)
270 309 }
271 310  
272   -function alterarSubGrupo(idgrupo,id)
  311 +//
  312 +//adiciona um novo grupo
  313 +//
  314 +function novoGrupo(id_menu)
273 315 {
274   - //if(confirm("Você realmente quer fazer isso?"))
275   - //{
276   - var retorna = function()
277   - {pegaNosGrupo(idgrupo);}
278   - if (id != "")
279   - {
280   - var perfil = $i("perfiln2_"+id).value
281   - if(perfil == "null"){var perfil = "";}
282   - var idsubgrupo = $i("subgrupon2_"+id).value
283   - }
284   - else
  316 + core_carregando("ativa");
  317 + var mensagem = " adicionando grupo...";
  318 + core_carregando("mensagem");
  319 + var sUrl = "../php/arvore.php?funcao=adicionarGrupo&id_menu="+id_menu;
  320 + var callback =
  321 + {
  322 + success: function(oResponse)
285 323 {
286   - var id = "";
287   - var perfil = "";
288   - var idsubgrupo = ""
289   - }
290   - if($i("n2_"+idsubgrupo))
291   - $i("n2_"+idsubgrupo).innerHTML =$mensagemAguarde
292   - var p = "../php/arvore.php?funcao=alteraN2&id="+id+"&perfil="+perfil+"&idsubgrupo="+idsubgrupo+"&idgrupo="+idgrupo;
293   - cPaint.call(p,"",retorna);
294   - //}
295   -
  324 + var dados = YAHOO.lang.JSON.parse(oResponse.responseText)
  325 + var no = tree.getNodeByProperty("id_menu",id_menu)
  326 + montaNosGrupos(id_menu,no,dados,false)
  327 + tree.draw();
  328 + core_carregando("desativa");
  329 + },
  330 + failure:core_handleFailure,
  331 + argument: { foo:"foo", bar:"bar" }
  332 + };
  333 + core_makeRequest(sUrl,callback)
296 334 }
297   -/*
298   -Function: alterarGrupo
299   -
300   -Altera o valor de uma variável
301   -*/
302   -function alterarGrupo(id)
  335 +//
  336 +//adiciona um novo sub-grupo
  337 +//
  338 +function novoSubGrupo(idmenu,id_n1)
303 339 {
304   - //if(confirm("Você realmente quer fazer isso?"))
305   - //{
306   - var retorna = function()
307   - {pegaNosRaiz();}
308   - if (id != "")
  340 + core_carregando("ativa");
  341 + var mensagem = " adicionando Sub-grupo...";
  342 + core_carregando("mensagem");
  343 + var sUrl = "../php/arvore.php?funcao=adicionarSubGrupo&id_n1="+id_n1;
  344 + var callback =
  345 + {
  346 + success: function(oResponse)
309 347 {
310   - var n1 = $i("n1_"+id).value
311   - var perfil = $i("perfiln1_"+id).value
312   - if(n1 == "null"){var n1 = "";}
313   - if(perfil == "null"){var perfil = "";}
314   - var idgrupo = $i("grupon1_"+id).value
315   - }
316   - else
  348 + var dados = YAHOO.lang.JSON.parse(oResponse.responseText)
  349 + var no = tree.getNodeByProperty("id_n1",id_n1)
  350 + montaNosSubgrupos(idmenu,no,dados,false)
  351 + tree.draw();
  352 + core_carregando("desativa");
  353 + },
  354 + failure:core_handleFailure,
  355 + argument: { foo:"foo", bar:"bar" }
  356 + };
  357 + core_makeRequest(sUrl,callback)
  358 +}
  359 +//
  360 +//adiciona um novo tema em um sub-grupo
  361 +//
  362 +function novoTema(idmenu,id_n2)
  363 +{
  364 + core_carregando("ativa");
  365 + var mensagem = " adicionando tema...";
  366 + core_carregando("mensagem");
  367 + var sUrl = "../php/arvore.php?funcao=adicionarTema&id_n2="+id_n2;
  368 + var callback =
  369 + {
  370 + success: function(oResponse)
317 371 {
318   - var id = "";
319   - var perfil = "";
320   - var idgrupo = "";
321   - }
322   - if($i("n1_"+id))
323   - $i("n1_"+id).innerHTML =$mensagemAguarde
324   - var idmenu = $i("menusel").value
325   - var p = "../php/arvore.php?funcao=alteraN1&id="+id+"&perfil="+perfil+"&idgrupo="+idgrupo+"&idmenu="+idmenu;
326   - cPaint.call(p,"",retorna);
327   - //}
  372 + var dados = YAHOO.lang.JSON.parse(oResponse.responseText)
  373 + var no = tree.getNodeByProperty("id_n2",id_n2)
  374 + montaTemas(idmenu,no,dados,false)
  375 + tree.draw();
  376 + core_carregando("desativa");
  377 + },
  378 + failure:core_handleFailure,
  379 + argument: { foo:"foo", bar:"bar" }
  380 + };
  381 + core_makeRequest(sUrl,callback)
328 382 }
329   -/*
330   -Function: excluir
  383 +function excluir(tipo,id)
  384 +{
  385 + var mensagem = " excluindo o registro do id= "+id;
  386 + if(tipo == "raizgrupo" || tipo == "raizmenu")
  387 + {
  388 + var no = tree.getNodeByProperty("id_raiz",id)
  389 + var sUrl = "../php/arvore.php?funcao=excluir&id="+id+"&tabela=i3geoadmin_raiz";
  390 + }
331 391  
332   -Exclui um registro
333   -*/
334   -function excluir(prefixo,id,coluna,idnpai)
  392 + if(tipo == "grupo")
  393 + {
  394 + var no = tree.getNodeByProperty("id_n1",id)
  395 + var sUrl = "../php/arvore.php?funcao=excluir&id="+id+"&tabela=i3geoadmin_n1";
  396 + }
  397 + if(tipo == "subgrupo")
  398 + {
  399 + var no = tree.getNodeByProperty("id_n2",id)
  400 + var sUrl = "../php/arvore.php?funcao=excluir&id="+id+"&tabela=i3geoadmin_n2";
  401 + }
  402 + if(tipo == "tema")
  403 + {
  404 + var no = tree.getNodeByProperty("id_n3",id)
  405 + var sUrl = "../php/arvore.php?funcao=excluir&id="+id+"&tabela=i3geoadmin_n3";
  406 + }
  407 + core_excluiNoTree(sUrl,no,mensagem)
  408 +}
  409 +function editar(tipo,id)
335 410 {
336   - if(confirm("Você realmente quer fazer isso?"))
  411 + core_carregando("ativa");
  412 + core_carregando(" buscando dados");
  413 + var callback =
337 414 {
338   - var retorna = function(retorno)
  415 + success:function(o)
339 416 {
340   - if(retorno.data == "erro")
341   - {alert("Não foi possível excluir. Verifique se ainda existem elementos abaixo desse nível")}
342   - if(prefixo == "raiz")
343   - {
344   - $i(idnpai).innerHTML = "";
345   - pegaTemasRaiz("0",id_nivel,idnpai)
346   - }
347   - if(prefixo == "n1")
348   - {
349   - pegaNosRaiz();
350   - }
351   - if(prefixo == "n2")
352   - {
353   - $i(prefixo+"_"+idnpai).innerHTML = "";
354   - pegaNosGrupo(idnpai)
355   - }
356   - if(prefixo == "n3")
  417 + try
357 418 {
358   - $i(prefixo+"_"+idnpai).innerHTML = "";
359   - pegaNosSubGrupo(idnpai)
  419 + if(tipo == "grupo")
  420 + {
  421 + var dados = YAHOO.lang.JSON.parse(o.responseText)[0];
  422 + core_montaEditor("gravaDados('grupo','"+id+"')")
  423 + $i("editor_bd").innerHTML = montaDivGrupo(dados)
  424 + core_comboGrupos("comboGrupo","Eid_grupo",dados.id_grupo,"")
  425 + core_comboPerfis("comboPerfil","Eperfil_grupo","","registraPerfil(this.value,\"En1_perfil\")")
  426 + }
  427 + if(tipo == "subgrupo")
  428 + {
  429 + var dados = YAHOO.lang.JSON.parse(o.responseText)[0];
  430 + core_montaEditor("gravaDados('subgrupo','"+id+"')")
  431 + $i("editor_bd").innerHTML = montaDivSubGrupo(dados)
  432 + core_comboSubGrupos("comboSubGrupo","Eid_subgrupo",dados.id_subgrupo,"")
  433 + core_comboPerfis("comboPerfil","Eperfil_subgrupo","","registraPerfil(this.value,\"En2_perfil\")")
  434 + }
  435 + if(tipo == "tema")
  436 + {
  437 + var dados = YAHOO.lang.JSON.parse(o.responseText)[0];
  438 + core_montaEditor("gravaDados('tema','"+id+"')")
  439 + $i("editor_bd").innerHTML = montaDivTema(dados)
  440 + core_comboTemas("comboTema","Eid_tema",dados.id_tema,"")
  441 + core_comboPerfis("comboPerfil","Eperfil_tema","","registraPerfil(this.value,\"En3_perfil\")")
  442 + }
  443 + if(tipo == "raizmenu" || tipo == "raizgrupo")
  444 + {
  445 + var dados = YAHOO.lang.JSON.parse(o.responseText)[0];
  446 + core_montaEditor("gravaDados('"+tipo+"','"+id+"')")
  447 + $i("editor_bd").innerHTML = montaDivRaiz(dados)
  448 + core_comboTemas("comboTema","Eid_tema",dados.id_tema,"")
  449 + core_comboPerfis("comboPerfil","Eperfil","","registraPerfil(this.value,\"Eperfil\")")
  450 + }
  451 + core_carregando("desativa");
360 452 }
361   - }
362   - if($i(prefixo+"_"+idnpai))
363   - $i(prefixo+"_"+idnpai).innerHTML = $mensagemAguarde
364   -
365   - if(prefixo == "raiz")
366   - var tabela = "i3geoadmin_raiz"
367   -
368   - if(prefixo == "n1")
369   - var tabela = "i3geoadmin_n1"
370   -
371   - if(prefixo == "n2")
372   - var tabela = "i3geoadmin_n2"
  453 + catch(e){core_handleFailure(e,o.responseText);}
  454 + },
  455 + failure:core_handleFailure,
  456 + argument: { foo:"foo", bar:"bar" }
  457 + };
  458 + if(tipo == "grupo")
  459 + {var sUrl = "../php/arvore.php?funcao=pegaDadosGrupo&id="+id;}
  460 + if(tipo == "subgrupo")
  461 + {var sUrl = "../php/arvore.php?funcao=pegaDadosSubGrupo&id="+id;}
  462 + if(tipo == "tema")
  463 + {var sUrl = "../php/arvore.php?funcao=pegaDadosTema&id="+id;}
  464 + if(tipo == "raizmenu" || tipo == "raizgrupo")
  465 + {var sUrl = "../php/arvore.php?funcao=pegaDadosRaiz&id="+id;}
  466 + core_makeRequest(sUrl,callback)
  467 +}
  468 +function montaDivGrupo(i)
  469 +{
  470 + var ins = "<br>Grupo:<br><br>"
  471 + ins += "<div id=comboGrupo >Buscando...</div>"
  472 + ins += "<p>Perfis que podem ver: </p>"
  473 + ins += "<input size=50 type=text id='En1_perfil' value='"+i.n1_perfil+"' /></p>"
  474 + ins += "<div id=comboPerfil >Buscando...</div>";
  475 + ins += "<br>Publicado?<br>"
  476 + ins += "<select id='Epublicado' >"
  477 + ins += core_combosimnao(i.publicado)
  478 + ins += "</select>"
  479 + ins += "<br><br>Para criar um novo grupo clique <a href='grupos.html' >aqui</a>."
  480 + ins += "<br><br>Para criar um novo perfil clique <a href='perfis.html' >aqui</a>."
  481 + ins += "<input type=hidden value="+i.ordem+" id='Eordem' />"
  482 + return(ins)
  483 +}
  484 +function montaDivSubGrupo(i)
  485 +{
  486 + var ins = "<br>Sub-Grupo:<br><br>"
  487 + ins += "<div id=comboSubGrupo >Buscando...</div>"
  488 + ins += "<p>Perfis que podem ver: </p>"
  489 + ins += "<input size=50 type=text id='En2_perfil' value='"+i.n2_perfil+"' /></p>"
  490 + ins += "<div id=comboPerfil >Buscando...</div>";
  491 + ins += "<br>Publicado?<br>"
  492 + ins += "<select id='Epublicado' >"
  493 + ins += core_combosimnao(i.publicado)
  494 + ins += "</select>"
  495 + ins += "<br><br>Para criar um novo sub-grupo clique <a href='subgrupos.html' >aqui</a>."
  496 + ins += "<br><br>Para criar um novo perfil clique <a href='perfis.html' >aqui</a>."
  497 + ins += "<input type=hidden value="+i.ordem+" id='Eordem' />"
  498 + return(ins)
  499 +}
  500 +function montaDivTema(i)
  501 +{
  502 + var ins = "<br>Tema:<br><br>"
  503 + ins += "<div id=comboTema >Buscando...</div>"
  504 + ins += "<p>Perfis que podem ver: </p>"
  505 + ins += "<input size=50 type=text id='En3_perfil' value='"+i.n3_perfil+"' /></p>"
  506 + ins += "<div id=comboPerfil >Buscando...</div>";
  507 + ins += "<br>Publicado?<br>"
  508 + ins += "<select id='Epublicado' >"
  509 + ins += core_combosimnao(i.publicado)
  510 + ins += "</select>"
  511 + ins += "<br><br>Para criar um novo tema clique <a href='temas.html' >aqui</a>."
  512 + ins += "<br><br>Para criar um novo perfil clique <a href='perfis.html' >aqui</a>."
  513 + ins += "<input type=hidden value="+i.ordem+" id='Eordem' />"
  514 + return(ins)
  515 +}
  516 +function montaDivRaiz(i)
  517 +{
  518 + var ins = "<br>Tema:<br><br>"
  519 + ins += "<div id=comboTema >Buscando...</div>"
  520 + ins += "<p>Perfis que podem ver: </p>"
  521 + ins += "<input size=50 type=text id='Eperfil' value='"+i.perfil+"' /></p>"
  522 + ins += "<div id=comboPerfil >Buscando...</div>";
  523 + ins += "<br><br>Para criar um novo tema clique <a href='temas.html' >aqui</a>."
  524 + ins += "<br><br>Para criar um novo perfil clique <a href='perfis.html' >aqui</a>."
  525 + ins += "<input type=hidden value="+i.ordem+" id='Eordem' />"
  526 + return(ins)
  527 +}
373 528  
374   - if(prefixo == "n3")
375   - var tabela = "i3geoadmin_n3"
376   -
377   - var p = "../php/arvore.php?funcao=excluir&id="+id+"&tabela="+tabela+"&coluna="+coluna;
378   - cPaint.call(p,"",retorna);
379   - }
  529 +function registraPerfil(valor,id)
  530 +{
  531 + var inp = $i(id)
  532 + var perfis = inp.value
  533 + if(perfis == "")
  534 + inp.value = valor
  535 + else
  536 + inp.value = perfis+" "+valor
380 537 }
381   -/*
382   -Function: excluirRaiz
  538 +function gravaDados(tipo,id)
  539 +{
  540 + if(tipo == "grupo")
  541 + {
  542 + var campos = new Array("id_grupo","n1_perfil","publicado","ordem")
  543 + var par = "&id="+id
  544 + var prog = "../php/arvore.php?funcao=alterarGrupo"
  545 + }
  546 + if(tipo == "subgrupo")
  547 + {
  548 + var campos = new Array("id_subgrupo","n2_perfil","publicado","ordem")
  549 + var par = "&id="+id
  550 + var prog = "../php/arvore.php?funcao=alterarSubGrupo"
  551 + }
  552 + if(tipo == "tema")
  553 + {
  554 + var campos = new Array("id_tema","n3_perfil","publicado","ordem")
  555 + var par = "&id="+id
  556 + var prog = "../php/arvore.php?funcao=alterarTema"
  557 + }
  558 + if(tipo == "raizmenu" || tipo == "raizgrupo")
  559 + {
  560 + var campos = new Array("id_tema","perfil","ordem")
  561 + var par = "&id="+id
  562 + var prog = "../php/arvore.php?funcao=alterarRaiz"
  563 + }
383 564  
384   -Exclui um registro de um tema no nível raiz
385   -*/
386   -function excluirRaiz(nivel,id_nivel,id_raiz,idnpai)
  565 + for (i=0;i<campos.length;i++)
  566 + {par += "&"+campos[i]+"="+($i("E"+campos[i]).value)}
  567 + core_carregando("ativa");
  568 + core_carregando(" gravando o registro do id= "+id);
  569 + var sUrl = prog+par;
  570 + var callback =
  571 + {
  572 + success:function(o)
  573 + {
  574 + try
  575 + {
  576 + if(YAHOO.lang.JSON.parse(o.responseText) == "erro")
  577 + {
  578 + core_carregando("<span style=color:red >Não foi possível excluir. Verifique se não existem menus vinculados a este tema</span>");
  579 + setTimeout("core_carregando('desativa')",3000)
  580 + }
  581 + else
  582 + {
  583 + if(tipo == "grupo")
  584 + {
  585 + var obj = document.getElementById("Eid_grupo")
  586 + var texto = obj.options[obj.selectedIndex].text
  587 + var no = tree.getNodeByProperty("id_n1",id)
  588 + no.getContentEl().getElementsByTagName("span")[0].innerHTML = texto
  589 + }
  590 + if(tipo == "subgrupo")
  591 + {
  592 + var obj = document.getElementById("Eid_subgrupo")
  593 + var texto = obj.options[obj.selectedIndex].text
  594 + var no = tree.getNodeByProperty("id_n2",id)
  595 + no.getContentEl().getElementsByTagName("span")[0].innerHTML = texto
  596 + }
  597 + if(tipo == "tema")
  598 + {
  599 + var obj = document.getElementById("Eid_tema")
  600 + var texto = obj.options[obj.selectedIndex].text
  601 + var no = tree.getNodeByProperty("id_n3",id)
  602 + no.getContentEl().getElementsByTagName("span")[0].innerHTML = texto
  603 + }
  604 + if(tipo == "raizmenu" || tipo == "raizgrupo")
  605 + {
  606 + var obj = document.getElementById("Eid_tema")
  607 + var texto = obj.options[obj.selectedIndex].text
  608 + var no = tree.getNodeByProperty("id_raiz",id)
  609 + no.getContentEl().getElementsByTagName("span")[0].innerHTML = texto
  610 + }
  611 + core_carregando("desativa");
  612 + }
  613 + YAHOO.example.container.panelEditor.destroy();
  614 + YAHOO.example.container.panelEditor = null;
  615 + }
  616 + catch(e){core_handleFailure(e,o.responseText);}
  617 + },
  618 + failure:core_handleFailure,
  619 + argument: { foo:"foo", bar:"bar" }
  620 + };
  621 + core_makeRequest(sUrl,callback,'POST')
  622 +}
  623 +function sobeDesce(movimento,tipo,id)
387 624 {
388   - if(confirm("Você realmente quer fazer isso?"))
  625 + if(tipo == "raizmenu" || tipo == "raizgrupo")
389 626 {
390   - $i(idnpai).innerHTML = $mensagemAguarde;
391   - var retorna = function(retorno)
392   - {
393   - $i(idnpai).innerHTML = "";
394   - $temasRaiz = retorno.data;
395   - pegaTemasRaiz(nivel,id_nivel,idnpai)
396   - }
397   - var tabela = "i3geoadmin_raiz"
398   - var p = "../php/arvore.php?funcao=excluir&id="+id_raiz+"&tabela="+tabela+"&coluna=id_raiz";
399   - cPaint.call(p,"",retorna);
  627 + var no = tree.getNodeByProperty("id_raiz",id)
  628 + var movimenta = core_movimentaNo(movimento,no)
  629 + }
  630 + if(tipo == "grupo")
  631 + {
  632 + var no = tree.getNodeByProperty("id_n1",id)
  633 + var movimenta = core_movimentaNo(movimento,no)
  634 + }
  635 + if(tipo == "subgrupo")
  636 + {
  637 + var no = tree.getNodeByProperty("id_n2",id)
  638 + var movimenta = core_movimentaNo(movimento,no)
400 639 }
401   -}
402 640 \ No newline at end of file
  641 + if(tipo == "tema")
  642 + {
  643 + var no = tree.getNodeByProperty("id_n3",id)
  644 + var movimenta = core_movimentaNo(movimento,no)
  645 + }
  646 + var callback =
  647 + {
  648 + success: function(oResponse)
  649 + {core_carregando("desativa");},
  650 + failure:core_handleFailure,
  651 + argument: { foo:"foo", bar:"bar" }
  652 + };
  653 + if(movimenta)
  654 + {
  655 + var sUrl = "../php/arvore.php?funcao=movimentaNo&tipo="+tipo+"&movimento="+movimento+"&id="+id;
  656 + core_carregando("ativa");
  657 + core_carregando(" modificando a ordem no banco de dados");
  658 + core_makeRequest(sUrl,callback)
  659 + }
  660 +}
  661 +
  662 +YAHOO.util.Event.addListener(window, "load", initMenu);
403 663 \ No newline at end of file
... ...
admin/js/atlas.js
1 1 YAHOO.namespace("example.container");
2 2 function initMenu()
3 3 {
4   - ativaBotaoAdicionaRaiz("../php/atlas.php?funcao=alterarAtlas","adiciona")
  4 + ativaBotaoAdicionaAtlas("../php/atlas.php?funcao=alterarAtlas","adiciona")
5 5 core_carregando("ativa");
6 6 core_ativaPainelAjuda("ajuda","botaoAjuda");
7 7 core_pegaPerfis("pegaAtlas()");
8 8 }
9   -function ativaBotaoAdicionaRaiz(sUrl,idBotao)
  9 +function ativaBotaoAdicionaAtlas(sUrl,idBotao)
10 10 {
11 11 var adiciona = function()
12 12 {
... ... @@ -18,7 +18,7 @@ function ativaBotaoAdicionaRaiz(sUrl,idBotao)
18 18 {
19 19 try
20 20 {
21   - adicionaNosRaiz(YAHOO.lang.JSON.parse(o.responseText),true);
  21 + adicionaNosAtlas(YAHOO.lang.JSON.parse(o.responseText),true);
22 22 core_carregando("desativa");
23 23 }
24 24 catch(e){core_handleFailure(e,o.responseText);}
... ... @@ -56,7 +56,7 @@ function montaArvore(dados)
56 56 success: function(oResponse)
57 57 {
58 58 var dados = YAHOO.lang.JSON.parse(oResponse.responseText)
59   - adicionaNos(node,dados,false)
  59 + adicionaNosPranchas(node,dados,false)
60 60 oResponse.argument.fnLoadComplete();
61 61 },
62 62 failure: function(oResponse)
... ... @@ -83,14 +83,15 @@ function montaArvore(dados)
83 83 }
84 84 buildTree();
85 85 }();
86   - adicionaNosRaiz(dados)
  86 + adicionaNosAtlas(dados)
87 87 tree.draw();
88 88 }
89 89 function adicionaNosTemas(no,dados,redesenha)
90 90 {
91 91 if(!redesenha)
92 92 {
93   - var d = {html:"<i>Temas:</i>"}
  93 + var conteudo = "<img style=\"position:relative;cursor:pointer;top:0px\" onclick=\"adicionarTema('"+no.data.id_prancha+"')\" title='adiciona tema' width='10px' heigth='10px' src=\"../imagens/05.png\" />"
  94 + var d = {html:conteudo+"<i>Temas:</i>"}
94 95 var tempNode = new YAHOO.widget.HTMLNode(d, no, false,true);
95 96 tempNode.isLeaf = true;
96 97 }
... ... @@ -106,7 +107,7 @@ function adicionaNosTemas(no,dados,redesenha)
106 107 }
107 108 if(redesenha){tree.draw();}
108 109 }
109   -function adicionaNos(no,dados,redesenha)
  110 +function adicionaNosPranchas(no,dados,redesenha)
110 111 {
111 112 function temaIconMode()
112 113 {
... ... @@ -140,7 +141,8 @@ function adicionaNos(no,dados,redesenha)
140 141 }
141 142 if(!redesenha)
142 143 {
143   - var d = {html:"<i>Pranchas:</i>"}
  144 + var conteudo = "<img style=\"position:relative;cursor:pointer;top:2px\" onclick=\"adicionarPrancha('"+no.data.id_atlas+"')\" title='adiciona prancha' src=\"../imagens/05.png\" />"
  145 + var d = {html:conteudo+"<i>Pranchas:</i>"}
144 146 var tempNode = new YAHOO.widget.HTMLNode(d, no, false,true);
145 147 tempNode.isLeaf = true;
146 148 }
... ... @@ -149,7 +151,6 @@ function adicionaNos(no,dados,redesenha)
149 151 var conteudo = "&nbsp;<img style=\"position:relative;cursor:pointer;top:0px\" onclick=\"sobeDesce('sobe','prancha','"+dados[i].id_prancha+"')\" title=sobe src=\"../imagens/34.png\" />"
150 152 conteudo += "&nbsp;<img style=\"position:relative;cursor:pointer;top:0px\" onclick=\"sobeDesce('desce','prancha','"+dados[i].id_prancha+"')\" title=desce src=\"../imagens/33.png\" />"
151 153 conteudo += "&nbsp;<img style=\"position:relative;cursor:pointer;top:0px\" onclick=\"excluir('prancha','"+dados[i].id_prancha+"')\" title=excluir width='10px' heigth='10px' src=\"../imagens/01.png\" />"
152   - conteudo += "<img style=\"position:relative;cursor:pointer;top:0px\" onclick=\"adicionarTema('"+dados[i].id_prancha+"')\" title='adiciona tema' width='10px' heigth='10px' src=\"../imagens/05.png\" />"
153 154 conteudo += "&nbsp;<img style=\"position:relative;cursor:pointer;top:0px\" onclick=\"editar('prancha','"+dados[i].id_prancha+"')\" title=editar width='10px' heigth='10px' src=\"../imagens/06.png\" />&nbsp;<span>"+dados[i].titulo_prancha+"</span>"
154 155 var d = {html:conteudo,id_prancha:dados[i].id_prancha,tipo:"prancha"}
155 156 var tempNode = new YAHOO.widget.HTMLNode(d, no, false,true);
... ... @@ -159,7 +160,7 @@ function adicionaNos(no,dados,redesenha)
159 160 if(redesenha){tree.draw();}
160 161 }
161 162  
162   -function adicionaNosRaiz(dados,redesenha)
  163 +function adicionaNosAtlas(dados,redesenha)
163 164 {
164 165 var root = tree.getRoot();
165 166 for (var i=0, j=dados.length; i<j; i++)
... ... @@ -167,7 +168,6 @@ function adicionaNosRaiz(dados,redesenha)
167 168 var conteudo = "&nbsp;<img style=\"position:relative;cursor:pointer;top:0px\" onclick=\"sobeDesce('sobe','atlas','"+dados[i].id_atlas+"')\" title=sobe src=\"../imagens/34.png\" />"
168 169 conteudo += "&nbsp;<img style=\"position:relative;cursor:pointer;top:0px\" onclick=\"sobeDesce('desce','atlas','"+dados[i].id_atlas+"')\" title=desce src=\"../imagens/33.png\" />"
169 170 conteudo += "&nbsp;<img style=\"position:relative;cursor:pointer;top:2px\" onclick=\"excluir('atlas','"+dados[i].id_atlas+"')\" title=excluir src=\"../imagens/01.png\" />"
170   - conteudo += "&nbsp;<img style=\"position:relative;cursor:pointer;top:2px\" onclick=\"adicionarPrancha('"+dados[i].id_atlas+"')\" title='adiciona prancha' src=\"../imagens/05.png\" />"
171 171 conteudo += "&nbsp;<img style=\"position:relative;cursor:pointer;top:2px\" onclick=\"editar('atlas','"+dados[i].id_atlas+"')\" title=editar src=\"../imagens/06.png\" /><b>&nbsp;<span>"+dados[i].titulo_atlas+"</span>"
172 172 var d = {html:conteudo,id_atlas:dados[i].id_atlas,tipo:"atlas"};
173 173 var tempNode = new YAHOO.widget.HTMLNode(d, root, false,true);
... ... @@ -224,21 +224,15 @@ function editar(tipo,id)
224 224 }
225 225 function montaDivTema(i)
226 226 {
227   - var param =
228   - {
229   - "linhas":[
230   - {titulo:"Ordem de desenho:",id:"Eordem_tema",size:"5",value:i.ordem_tema,tipo:"text",div:""}
231   - ]
232   - }
233 227 var ins = ""
234 228 ins += "<br>Código do tema:<br>"
235 229 ins += "<div id=comboTemaIni ></div>"
236 230  
237   - ins += core_geraLinhas(param)
238 231 ins += "Ligado (ao abrir a prancha, esse tema estará visível)?<br>"
239 232 ins += "<select id='Eligado_tema' >"
240 233 ins += core_combosimnao(i.ligado_tema)
241 234 ins += "</select>"
  235 + ins += "<input type=hidden value='"+i.ordem_tema+"' id='Eordem_tema' />"
242 236 return(ins)
243 237 }
244 238 function montaDivPrancha(i)
... ... @@ -252,12 +246,13 @@ function montaDivPrancha(i)
252 246 {titulo:"Largura da janela do texto inicial:",id:"Ew_prancha",size:"5",value:i.w_prancha,tipo:"text",div:""},
253 247 {titulo:"Altura:",id:"Eh_prancha",size:"5",value:i.h_prancha,tipo:"text",div:""},
254 248 {titulo:"(opcional) Ícone que será utilizado na apresentação da prancha:",id:"Eicone_prancha",size:"50",value:i.icone_prancha,tipo:"text",div:""},
255   - {titulo:"Extensão geográfica:",id:"Emapext_prancha",size:"30",value:i.mapext_prancha,tipo:"text",div:""},
256   - {titulo:"Ordem de apresentação na lista de pranchas:",id:"Eordem_prancha",size:"5",value:i.ordem_prancha,tipo:"text",div:""}
  249 + {titulo:"Extensão geográfica:",id:"Emapext_prancha",size:"30",value:i.mapext_prancha,tipo:"text",div:""}
257 250 ]
258 251 }
259 252 var ins = ""
260 253 ins += core_geraLinhas(param)
  254 + ins += "<input type=hidden value='"+i.ordem_prancha+"' id='Eordem_prancha' />"
  255 +
261 256 return(ins)
262 257 }
263 258 function montaDivAtlas(i)
... ... @@ -272,8 +267,7 @@ function montaDivAtlas(i)
272 267 {titulo:"Altura:",id:"Eh_atlas",size:"5",value:i.h_atlas,tipo:"text",div:""},
273 268 {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:""},
274 269 {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:""},
275   - {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:""},
276   - {titulo:"Ordem de apresentação na lista de atlas:",id:"Eordem_atlas",size:"5",value:i.ordem_atlas,tipo:"text",div:""}
  270 + {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:""}
277 271 ]
278 272 }
279 273 var ins = ""
... ... @@ -293,6 +287,8 @@ function montaDivAtlas(i)
293 287 ins += "<select id='Epublicado_atlas' >"
294 288 ins += core_combosimnao(i.publicado_atlas)
295 289 ins += "</select>"
  290 + ins += "<input type=hidden value='"+i.ordem_atlas+"' id='Eordem_atlas' />"
  291 +
296 292 return(ins)
297 293 }
298 294 function sobeDesce(movimento,tipo,id)
... ... @@ -374,7 +370,7 @@ function adicionarPrancha(id)
374 370 success: function(oResponse)
375 371 {
376 372 var dados = YAHOO.lang.JSON.parse(oResponse.responseText)
377   - adicionaNos(no,dados,true)
  373 + adicionaNosPranchas(no,dados,true)
378 374 },
379 375 failure:core_handleFailure,
380 376 argument: { foo:"foo", bar:"bar" }
... ...
admin/js/core.js
... ... @@ -85,7 +85,7 @@ function core_movimentaNo(tipo,no)
85 85 var noanterior = no.previousSibling
86 86 if(noanterior)
87 87 {
88   - if(noanterior.previousSibling)
  88 + if(noanterior.previousSibling && noanterior.data.tipo != "etiqueta")
89 89 {
90 90 tree.popNode(no)
91 91 no.insertBefore(noanterior)
... ... @@ -445,6 +445,129 @@ function core_comboPranchas(onde,id,marcar,funcao,id_atlas)
445 445 };
446 446 core_makeRequest(sUrl,callback)
447 447 }
  448 +/*
  449 +Function: core_comboGrupos
  450 +
  451 +Cria um combo para escolha de um grupo
  452 +
  453 +Parameters:
  454 +
  455 +onde - id do elemento que receberá o combo
  456 +
  457 +id - id do combo que será criado
  458 +
  459 +marcar - valor que será marcado como selecionado
  460 +
  461 +funcao - string com o nome da função que será executada no evento onchange
  462 +*/
  463 +function core_comboGrupos(onde,id,marcar,funcao)
  464 +{
  465 + var sUrl = "../php/menutemas.php?funcao=pegaGrupos";
  466 + var callback =
  467 + {
  468 + success:function(o)
  469 + {
  470 + try
  471 + {
  472 + var valores = YAHOO.lang.JSON.parse(o.responseText);
  473 + if(arguments.length == 3)
  474 + {var funcao = "";}
  475 + if (funcao != "")
  476 + {var funcao = "onchange='"+funcao+"'";}
  477 + ins = "<select id='"+id+"' "+funcao+" >"
  478 + ins += core_comboObjeto(valores,"id_grupo","nome_grupo",marcar)
  479 + ins += "</select></p>"
  480 + $i(onde).innerHTML = ins;
  481 + }
  482 + catch(e){core_handleFailure(e,o.responseText);}
  483 + },
  484 + failure:core_handleFailure,
  485 + argument: { foo:"foo", bar:"bar" }
  486 + };
  487 + core_makeRequest(sUrl,callback)
  488 +}
  489 +/*
  490 +Function: core_comboSubGrupos
  491 +
  492 +Cria um combo para escolha de um sub-grupo
  493 +
  494 +Parameters:
  495 +
  496 +onde - id do elemento que receberá o combo
  497 +
  498 +id - id do combo que será criado
  499 +
  500 +marcar - valor que será marcado como selecionado
  501 +
  502 +funcao - string com o nome da função que será executada no evento onchange
  503 +*/
  504 +function core_comboSubGrupos(onde,id,marcar,funcao)
  505 +{
  506 + var sUrl = "../php/menutemas.php?funcao=pegaSubGrupos";
  507 + var callback =
  508 + {
  509 + success:function(o)
  510 + {
  511 + try
  512 + {
  513 + var valores = YAHOO.lang.JSON.parse(o.responseText);
  514 + if(arguments.length == 3)
  515 + {var funcao = "";}
  516 + if (funcao != "")
  517 + {var funcao = "onchange='"+funcao+"'";}
  518 + ins = "<select id='"+id+"' "+funcao+" >"
  519 + ins += core_comboObjeto(valores,"id_subgrupo","nome_subgrupo",marcar)
  520 + ins += "</select></p>"
  521 + $i(onde).innerHTML = ins;
  522 + }
  523 + catch(e){core_handleFailure(e,o.responseText);}
  524 + },
  525 + failure:core_handleFailure,
  526 + argument: { foo:"foo", bar:"bar" }
  527 + };
  528 + core_makeRequest(sUrl,callback)
  529 +}
  530 +/*
  531 +Function: core_comboTemas
  532 +
  533 +Cria um combo para escolha de um tema
  534 +
  535 +Parameters:
  536 +
  537 +onde - id do elemento que receberá o combo
  538 +
  539 +id - id do combo que será criado
  540 +
  541 +marcar - valor que será marcado como selecionado
  542 +
  543 +funcao - string com o nome da função que será executada no evento onchange
  544 +*/
  545 +function core_comboTemas(onde,id,marcar,funcao)
  546 +{
  547 + var sUrl = "../php/menutemas.php?funcao=pegaTemas2";
  548 + var callback =
  549 + {
  550 + success:function(o)
  551 + {
  552 + try
  553 + {
  554 + var valores = YAHOO.lang.JSON.parse(o.responseText);
  555 + if(arguments.length == 3)
  556 + {var funcao = "";}
  557 + if (funcao != "")
  558 + {var funcao = "onchange='"+funcao+"'";}
  559 + ins = "<select id='"+id+"' "+funcao+" >"
  560 + ins += core_comboObjeto(valores,"id_tema","nome_tema",marcar)
  561 + ins += "</select></p>"
  562 + $i(onde).innerHTML = ins;
  563 + }
  564 + catch(e){core_handleFailure(e,o.responseText);}
  565 + },
  566 + failure:core_handleFailure,
  567 + argument: { foo:"foo", bar:"bar" }
  568 + };
  569 + core_makeRequest(sUrl,callback)
  570 +}
448 571  
449 572 /*
450 573 function: core_pegaTags
... ...
admin/php/admin.php
... ... @@ -84,7 +84,7 @@ function retornaJSON($obj)
84 84 if(extension_loaded('zlib')){ob_start('ob_gzhandler');}
85 85 echo json_encode($obj);
86 86 if(extension_loaded('zlib')){ob_end_flush();}
87   - exit;
  87 + exit;
88 88 }
89 89 function verificaDuplicados($sql,$dbh)
90 90 {
... ... @@ -228,6 +228,21 @@ function verificaFilhos()
228 228 if(count($r) > 0)
229 229 $res = true;
230 230 }
  231 + if($tabela == "i3geoadmin_n2")
  232 + {
  233 + $r = pegaDados("SELECT id_n3 from i3geoadmin_n3 where id_n2 ='$id'");
  234 + if(count($r) > 0)
  235 + $res = true;
  236 + }
  237 + if($tabela == "i3geoadmin_n1")
  238 + {
  239 + $r = pegaDados("SELECT id_n2 from i3geoadmin_n2 where id_n1 ='$id'");
  240 + if(count($r) > 0)
  241 + $res = true;
  242 + $r = pegaDados("SELECT id_raiz from i3geoadmin_raiz where nivel='1' and id_nivel ='$id'");
  243 + if(count($r) > 0)
  244 + $res = true;
  245 + }
231 246 return $res;
232 247 }
233 248 catch (PDOException $e)
... ...
admin/php/arvore.php
... ... @@ -32,60 +32,127 @@ $cp = new cpaint();
32 32 //faz a busca da função que deve ser executada
33 33 switch ($funcao)
34 34 {
35   - //verifica os editores
36   - case "verificaEditores":
37   - $cp->set_data(verificaEditores($editores));
38   - $cp->return_data();
  35 + case "pegaGrupos":
  36 + $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");
  37 + $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");
  38 + retornaJSON(array("raiz"=>$raiz,"grupos"=>$grupos));
  39 + exit;
39 40 break;
40   - case "pegaTemasRaiz":
41   - $cp->set_data(pegaDados("select * from i3geoadmin_raiz LEFT JOIN i3geoadmin_temas ON i3geoadmin_raiz.id_tema = i3geoadmin_temas.id_tema"));
42   - $cp->return_data();
  41 + case "pegaSubGrupos":
  42 + $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");
  43 + $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");
  44 + retornaJSON(array("raiz"=>$raiz,"subgrupos"=>$subgrupos));
  45 + exit;
  46 + case "pegaTemas":
  47 + 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"));
  48 + exit;
43 49 break;
44   - case "pegaN1":
45   - $cp->set_data(pegaDados("select * from i3geoadmin_n1 where id_menu=$menu"));
46   - $cp->return_data();
  50 + case "adicionarTemaRaiz":
  51 + $id_nivel = 0;
  52 + $nivel = 0;
  53 + $id_raiz = alterarRaiz();
  54 + $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'");
  55 + retornaJSON(array("raiz"=>$raiz,"grupos"=>array()));
  56 + exit;
47 57 break;
48   - case "alterarRaiz":
49   - alterarRaiz();
50   - $cp->set_data(pegaDados("select * from i3geoadmin_raiz LEFT JOIN i3geoadmin_temas ON i3geoadmin_raiz.id_tema = i3geoadmin_temas.id_tema"));
51   - $cp->return_data();
  58 + case "adicionarTemaRaizGrupo":
  59 + $id_nivel = $id_n1;
  60 + $nivel = 1;
  61 + $id_raiz = alterarRaiz();
  62 + $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'");
  63 + retornaJSON(array("raiz"=>$raiz,"grupos"=>array()));
  64 + exit;
  65 + break;
  66 + case "adicionarGrupo":
  67 + $id_n1 = alteraN1();
  68 + $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'");
  69 + $raiz = array();
  70 + retornaJSON(array("raiz"=>$raiz,"grupos"=>$grupos));
  71 + exit;
  72 + break;
  73 + case "adicionarSubGrupo":
  74 + $id_n2 = alteraN2();
  75 + $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'");
  76 + $raiz = array();
  77 + retornaJSON(array("raiz"=>$raiz,"subgrupos"=>$subgrupos));
  78 + exit;
  79 + break;
  80 + case "adicionarTema":
  81 + $id_n3 = alteraN3();
  82 + $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'");
  83 + $raiz = array();
  84 + retornaJSON($temas);
  85 + exit;
52 86 break;
53   - case "alteraN1":
54   - $cp->set_data(alteraN1());
55   - $cp->return_data();
  87 + case "pegaDadosGrupo":
  88 + retornaJSON(pegaDados("select * from i3geoadmin_n1 LEFT JOIN i3geoadmin_grupos ON i3geoadmin_n1.id_grupo = i3geoadmin_grupos.id_grupo where id_n1 = $id"));
  89 + exit;
56 90 break;
57   - case "alteraN2":
58   - $cp->set_data(alteraN2());
59   - $cp->return_data();
  91 + case "pegaDadosSubGrupo":
  92 + retornaJSON(pegaDados("select * from i3geoadmin_n2 LEFT JOIN i3geoadmin_subgrupos ON i3geoadmin_n2.id_subgrupo = i3geoadmin_subgrupos.id_subgrupo where id_n2 = $id"));
  93 + exit;
60 94 break;
61   - case "alteraN3":
62   - $cp->set_data(alteraN3());
63   - $cp->return_data();
  95 + case "pegaDadosTema":
  96 + retornaJSON(pegaDados("select * from i3geoadmin_n3 LEFT JOIN i3geoadmin_temas ON i3geoadmin_n3.id_tema = i3geoadmin_temas.id_tema where id_n3 = $id"));
  97 + exit;
64 98 break;
65   - case "pegaN2":
66   - $cp->set_data(pegaDados("select * from i3geoadmin_n2 where id_n1=$idn1"));
67   - $cp->return_data();
  99 + case "pegaDadosRaiz":
  100 + retornaJSON(pegaDados("select * from i3geoadmin_raiz LEFT JOIN i3geoadmin_temas ON i3geoadmin_raiz.id_tema = i3geoadmin_temas.id_tema where id_raiz = $id"));
  101 + exit;
68 102 break;
69   - case "pegaN3":
70   - $cp->set_data(pegaDados("select * from i3geoadmin_n3 where id_n2=$idn2"));
71   - $cp->return_data();
  103 + case "alterarGrupo":
  104 + retornaJSON(alteraN1());
  105 + exit;
72 106 break;
73   - case "excluir";
74   - if($tabela != "i3geoadmin_raiz")
75   - {
76   - $f = verificaFilhos();
77   - if(!$f)
78   - $cp->set_data(exclui());
79   - else
80   - $cp->set_data("erro");
81   - }
82   - else
83   - {
84   - exclui();
85   - $cp->set_data(pegaDados("select * from i3geoadmin_raiz LEFT JOIN i3geoadmin_temas ON i3geoadmin_raiz.id_tema = i3geoadmin_temas.id_tema"));
86   - }
87   - $cp->return_data();
  107 + case "alterarSubGrupo":
  108 + retornaJSON(alteraN2());
  109 + exit;
  110 + break;
  111 + case "alterarTema":
  112 + retornaJSON(alteraN3());
  113 + exit;
  114 + break;
  115 + case "alterarRaiz":
  116 + retornaJSON(alterarRaiz());
  117 + exit;
88 118 break;
  119 + case "movimentaNo":
  120 + movimentaNo();
  121 + retornaJSON("ok");
  122 + exit;
  123 + break;
  124 + case "excluir";
  125 + if($tabela == "i3geoadmin_raiz")
  126 + {
  127 + $coluna = "id_raiz";
  128 + }
  129 + if($tabela == "i3geoadmin_n3")
  130 + {
  131 + $coluna = "id_n3";
  132 + }
  133 + if($tabela == "i3geoadmin_n2")
  134 + {
  135 + $coluna = "id_n2";
  136 + $f = verificaFilhos();
  137 + if($f)
  138 + {
  139 + retornaJSON("erro");
  140 + exit;
  141 + }
  142 + }
  143 + if($tabela == "i3geoadmin_n1")
  144 + {
  145 + $coluna = "id_n1";
  146 + $f = verificaFilhos();
  147 + if($f)
  148 + {
  149 + retornaJSON("erro");
  150 + exit;
  151 + }
  152 + }
  153 + retornaJSON(exclui());
  154 + exit;
  155 + break;
89 156 }
90 157 /*
91 158 Function: alteraN3
... ... @@ -94,22 +161,32 @@ Altera o registro de um nível 3 (temas)
94 161 */
95 162 function alteraN3()
96 163 {
97   - global $perfil,$id,$idtema,$idsubgrupo;
  164 + global $publicado,$n3_perfil,$id,$id_n2,$id_tema,$ordem;
98 165 try
99 166 {
100 167 require_once("conexao.php");
101 168 if($id != "")
102   - $dbhw->query("UPDATE i3geoadmin_n3 SET id_tema = '$idtema', n3_perfil = '$perfil' WHERE id_n3 = $id");
  169 + {
  170 + $dbhw->query("UPDATE i3geoadmin_n3 SET publicado = '$publicado',ordem = '$ordem',id_tema = '$id_tema', n3_perfil = '$perfil' WHERE id_n3 = $id");
  171 + $retorna = $id;
  172 + }
103 173 else
104   - $dbhw->query("INSERT INTO i3geoadmin_n3 (id_n2,id_tema,n3_perfil) VALUES ($idsubgrupo,'', '')");
  174 + {
  175 + $o = $dbhw->query("SELECT MAX(ordem) as o FROM i3geoadmin_n3 where id_n2 = '$id_n2'");
  176 + $o = $o->fetchAll();
  177 + $o = $o[0]['o'] + 1;
  178 + $dbhw->query("INSERT INTO i3geoadmin_n3 (id_n2,id_tema,n3_perfil,ordem) VALUES ($id_n2,'', '',$o)");
  179 + $id = $dbhw->query("SELECT id_n3 FROM i3geoadmin_n3");
  180 + $id = $id->fetchAll();
  181 + $id = intval($id[count($id)-1]['id_n3']);
  182 + $retorna = $id;
  183 + }
105 184 $dbhw = null;
106 185 $dbh = null;
107   - return "ok";
  186 + return $retorna;
108 187 }
109 188 catch (PDOException $e)
110   - {
111   - return "Error!: " . $e->getMessage();
112   - }
  189 + {return "Error!: " . $e->getMessage();}
113 190 }
114 191 /*
115 192 Function: alteraN2
... ... @@ -118,17 +195,29 @@ Altera o registro de um nível 2
118 195 */
119 196 function alteraN2()
120 197 {
121   - global $perfil,$id,$idsubgrupo,$idgrupo;
  198 + global $publicado,$n2_perfil,$id,$id_subgrupo,$id_n1,$ordem;
122 199 try
123 200 {
124 201 require_once("conexao.php");
125 202 if($id != "")
126   - $dbhw->query("UPDATE i3geoadmin_n2 SET id_subgrupo = '$idsubgrupo', n2_perfil = '$perfil' WHERE id_n2 = $id");
  203 + {
  204 + $dbhw->query("UPDATE i3geoadmin_n2 SET publicado='$publicado', ordem = '$ordem',id_subgrupo = '$id_subgrupo', n2_perfil = '$n2_perfil' WHERE id_n2 = $id");
  205 + $retorna = $id;
  206 + }
127 207 else
128   - $dbhw->query("INSERT INTO i3geoadmin_n2 (id_n1,id_subgrupo,n2_perfil) VALUES ($idgrupo,'', '')");
  208 + {
  209 + $o = $dbhw->query("SELECT MAX(ordem) as o FROM i3geoadmin_n2 where id_n1 = '$id_1'");
  210 + $o = $o->fetchAll();
  211 + $o = $o[0]['o'] + 1;
  212 + $dbhw->query("INSERT INTO i3geoadmin_n2 (id_n1,id_subgrupo,n2_perfil,ordem) VALUES ($id_n1,'', '',$o)");
  213 + $id = $dbhw->query("SELECT id_n2 FROM i3geoadmin_n2");
  214 + $id = $id->fetchAll();
  215 + $id = intval($id[count($id)-1]['id_n2']);
  216 + $retorna = $id;
  217 + }
129 218 $dbhw = null;
130 219 $dbh = null;
131   - return "ok";
  220 + return $retorna;
132 221 }
133 222 catch (PDOException $e)
134 223 {
... ... @@ -138,21 +227,33 @@ function alteraN2()
138 227 /*
139 228 Function: alteraN1
140 229  
141   -Altera o registro de um nível 1
  230 +Altera o registro de um nível 1 (grupos)
142 231 */
143 232 function alteraN1()
144 233 {
145   - global $perfil,$idgrupo,$id,$idmenu;
  234 + global $publicado,$n1_perfil,$id_grupo,$id,$id_menu,$ordem;
146 235 try
147 236 {
148 237 require_once("conexao.php");
149 238 if($id != "")
150   - $dbhw->query("UPDATE i3geoadmin_n1 SET id_grupo = '$idgrupo', n1_perfil = '$perfil' WHERE id_menu = $idmenu and id_n1 = $id");
  239 + {
  240 + $dbhw->query("UPDATE i3geoadmin_n1 SET publicado = '$publicado', ordem = '$ordem', id_grupo = '$id_grupo', n1_perfil = '$n1_perfil' WHERE id_n1 = $id");
  241 + $retorna = $id;
  242 + }
151 243 else
152   - $dbhw->query("INSERT INTO i3geoadmin_n1 (id_menu,id_grupo,n1_perfil) VALUES ($idmenu,'', '')");
  244 + {
  245 + $o = $dbhw->query("SELECT MAX(ordem) as o FROM i3geoadmin_n1 where id_menu = '$id_menu'");
  246 + $o = $o->fetchAll();
  247 + $o = $o[0]['o'] + 1;
  248 + $dbhw->query("INSERT INTO i3geoadmin_n1 (publicado,id_menu,id_grupo,n1_perfil,ordem) VALUES ('',$id_menu,'', '',$o)");
  249 + $id = $dbhw->query("SELECT id_n1 FROM i3geoadmin_n1");
  250 + $id = $id->fetchAll();
  251 + $id = intval($id[count($id)-1]['id_n1']);
  252 + $retorna = $id;
  253 + }
153 254 $dbhw = null;
154 255 $dbh = null;
155   - return "ok";
  256 + return $retorna;
156 257 }
157 258 catch (PDOException $e)
158 259 {
... ... @@ -166,22 +267,103 @@ Altera o registro na raiz de um nível
166 267 */
167 268 function alterarRaiz()
168 269 {
169   - global $id_nivel,$nivel,$id_raiz,$id_menu,$perfil,$id_tema;
  270 + global $id_nivel,$nivel,$id,$id_menu,$perfil,$id_tema,$ordem;
170 271 try
171 272 {
172 273 include("conexao.php");
173   - if($id_raiz != "")
174   - $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");
  274 + if($id != "")
  275 + {
  276 + $dbhw->query("UPDATE i3geoadmin_raiz SET ordem = '$ordem', perfil = '$perfil', id_tema = '$id_tema' WHERE id_raiz = $id");
  277 + $retorna = $id;
  278 + }
175 279 else
176   - $dbhw->query("INSERT INTO i3geoadmin_raiz (id_nivel,nivel,id_menu,perfil,id_tema) VALUES ($id_nivel,$nivel,$id_menu,'','')");
  280 + {
  281 + $o = $dbhw->query("SELECT MAX(ordem) as o FROM i3geoadmin_raiz where id_menu = '$id_menu' and nivel = '$nivel' and id_nivel = '$id_nivel'");
  282 + $o = $o->fetchAll();
  283 + $o = $o[0]['o'] + 1;
  284 + $dbhw->query("INSERT INTO i3geoadmin_raiz (id_nivel,nivel,id_menu,perfil,id_tema,ordem) VALUES ($id_nivel,$nivel,$id_menu,'','',$o)");
  285 + $id = $dbhw->query("SELECT id_raiz FROM i3geoadmin_raiz");
  286 + $id = $id->fetchAll();
  287 + $id = intval($id[count($id)-1]['id_raiz']);
  288 + $retorna = $id;
  289 + }
177 290 $dbhw = null;
178 291 $dbh = null;
179   - return "ok";
  292 + return $retorna;
180 293 }
181 294 catch (PDOException $e)
182 295 {
183 296 return "Error!: " . $e->getMessage();
184 297 }
185 298 }
  299 +function movimentaNo()
  300 +{
  301 + global $tipo,$movimento,$id;
  302 + if($tipo == "raizmenu" || $tipo == "raizgrupo")
  303 + {
  304 + //pega a ordem atual
  305 + $reg = pegaDados("SELECT * from i3geoadmin_raiz where id_raiz = '$id'");
  306 + $ordematual = $reg[0]["ordem"];
  307 + $idmenu = $reg[0]["id_menu"];
  308 + $nivel = $reg[0]["nivel"];
  309 + $idnivel = $reg[0]["id_nivel"];
  310 + $where = "id_menu = '$idmenu' and nivel = '$nivel' and id_nivel = '$idnivel' ";
  311 + $posfixo = "raiz";
  312 + $tabela = "raiz";
  313 + }
  314 +
  315 + if($tipo == "grupo")
  316 + {
  317 + //pega a ordem atual
  318 + $reg = pegaDados("SELECT ordem,id_menu from i3geoadmin_n1 where id_n1 = '$id'");
  319 + $ordematual = $reg[0]["ordem"];
  320 + $idbate = $reg[0]["id_menu"];
  321 + $colunaBate = "id_menu";
  322 + $where = "$colunaBate = '$idbase' ";
  323 + $posfixo = "n1";
  324 + $tabela = "n1";
  325 + }
  326 + if($tipo == "subgrupo")
  327 + {
  328 + //pega a ordem atual
  329 + $reg = pegaDados("SELECT ordem,id_n1 from i3geoadmin_n2 where id_n2 = '$id'");
  330 + $ordematual = $reg[0]["ordem"];
  331 + $idbate = $reg[0]["id_n1"];
  332 + $colunaBate = "id_n1";
  333 + $where = "$colunaBate = '$idbase' ";
  334 + $posfixo = "n2";
  335 + $tabela = "n2";
  336 + }
  337 + if($tipo == "tema")
  338 + {
  339 + //pega a ordem atual
  340 + $reg = pegaDados("SELECT ordem,id_n2 from i3geoadmin_n3 where id_n3 = '$id'");
  341 + $ordematual = $reg[0]["ordem"];
  342 + $idbate = $reg[0]["id_n2"];
  343 + $colunaBate = "id_n2";
  344 + $where = "$colunaBate = '$idbase' ";
  345 + $posfixo = "n3";
  346 + $tabela = "n3";
  347 + }
  348 + include("conexao.php");
  349 + if($movimento == "sobe")
  350 + {
  351 + if ($ordematual > 1)
  352 + {
  353 + $menos = $ordematual - 1;
  354 + $dbhw->query("UPDATE i3geoadmin_$tabela SET 'ordem' = $ordematual where $where and ordem = '$menos'");
  355 + $dbhw->query("UPDATE i3geoadmin_$tabela SET 'ordem' = $menos where id_$posfixo = '$id'");
  356 + }
  357 + }
  358 + if($movimento == "desce")
  359 + {
  360 + $mais = $ordematual + 1;
  361 + $dbhw->query("UPDATE i3geoadmin_$tabela SET 'ordem' = $ordematual where $where and ordem = '$mais'");
  362 + $dbhw->query("UPDATE i3geoadmin_$tabela SET 'ordem' = $mais where id_$posfixo = '$id'");
  363 + }
  364 + $dbhw = null;
  365 + $dbh = null;
  366 + return "ok";
  367 +}
186 368  
187 369 ?>
188 370 \ No newline at end of file
... ...
admin/php/atlas.php
... ... @@ -113,16 +113,20 @@ function movimentaNo()
113 113 if($tipo == "tema")
114 114 {
115 115 //pega a ordem atual
116   - $ordematual = pegaDados("SELECT ordem_tema from i3geoadmin_atlast where id_tema = '$id'");
117   - $ordematual = $ordematual[0]["ordem_tema"];
  116 + $reg = pegaDados("SELECT ordem_tema,id_prancha from i3geoadmin_atlast where id_tema = '$id'");
  117 + $ordematual = $reg[0]["ordem_tema"];
  118 + $prancha = $reg[0]["id_prancha"];
  119 + $where = " id_prancha = '$prancha' and";
118 120 $posfixo = "tema";
119 121 $tabela = "atlast";
120 122 }
121 123 if($tipo == "prancha")
122 124 {
123 125 //pega a ordem atual
124   - $ordematual = pegaDados("SELECT ordem_prancha from i3geoadmin_atlasp where id_prancha = '$id'");
125   - $ordematual = $ordematual[0]["ordem_prancha"];
  126 + $reg = pegaDados("SELECT ordem_prancha,id_atlas from i3geoadmin_atlasp where id_prancha = '$id'");
  127 + $ordematual = $reg[0]["ordem_prancha"];
  128 + $atlas = $reg[0]["id_atlas"];
  129 + $where = "id_atlas = '$atlas' and ";
126 130 $posfixo = "prancha";
127 131 $tabela = "atlasp";
128 132 }
... ... @@ -131,6 +135,7 @@ function movimentaNo()
131 135 //pega a ordem atual
132 136 $ordematual = pegaDados("SELECT ordem_atlas from i3geoadmin_atlas where id_atlas = '$id'");
133 137 $ordematual = $ordematual[0]["ordem_atlas"];
  138 + $where = "";
134 139 $posfixo = "atlas";
135 140 $tabela = "atlas";
136 141 }
... ... @@ -138,16 +143,14 @@ function movimentaNo()
138 143 if($movimento == "sobe")
139 144 {
140 145 $menos = $ordematual - 1;
141   - $dbhw->query("UPDATE i3geoadmin_$tabela SET 'ordem_$posfixo' = $ordematual where ordem_$posfixo = '$menos'");
  146 + $dbhw->query("UPDATE i3geoadmin_$tabela SET 'ordem_$posfixo' = $ordematual where $where ordem_$posfixo = '$menos'");
142 147 $dbhw->query("UPDATE i3geoadmin_$tabela SET 'ordem_$posfixo' = $menos where id_$posfixo = '$id'");
143   - $dbhw->query("UPDATE i3geoadmin_$tabela SET 'ordem_$posfixo' = (ordem_$posfixo - 1) where ordem_$posfixo < $menos and ordem_$posfixo > 1");
144 148 }
145 149 if($movimento == "desce")
146 150 {
147 151 $mais = $ordematual + 1;
148   - $dbhw->query("UPDATE i3geoadmin_$tabela SET 'ordem_$posfixo' = $ordematual where ordem_$posfixo = '$mais'");
  152 + $dbhw->query("UPDATE i3geoadmin_$tabela SET 'ordem_$posfixo' = $ordematual where $where ordem_$posfixo = '$mais'");
149 153 $dbhw->query("UPDATE i3geoadmin_$tabela SET 'ordem_$posfixo' = $mais where id_$posfixo = '$id'");
150   - $dbhw->query("UPDATE i3geoadmin_$tabela SET 'ordem_$posfixo' = (ordem_$posfixo + 1) where ordem_$posfixo > $mais and ordem_$posfixo > 1");
151 154 }
152 155 $dbhw = null;
153 156 $dbh = null;
... ... @@ -193,7 +196,10 @@ function alterarAtlas()
193 196 }
194 197 else
195 198 {
196   - $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,'','','','','','')");
  199 + $o = $dbhw->query("SELECT MAX(ordem_atlas) as o FROM i3geoadmin_atlas");
  200 + $o = $o->fetchAll();
  201 + $o = $o[0]['o'] + 1;
  202 + $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,'','','','','','')");
197 203 $id = $dbhw->query("SELECT id_atlas FROM i3geoadmin_atlas");
198 204 $id = $id->fetchAll();
199 205 $id = intval($id[count($id)-1]['id_atlas']);
... ... @@ -223,7 +229,11 @@ function alterarPrancha()
223 229 }
224 230 else
225 231 {
226   - $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')");
  232 + $o = $dbhw->query("SELECT MAX(ordem_prancha) as o FROM i3geoadmin_atlasp WHERE id_atlas = '$id_atlas'");
  233 + $o = $o->fetchAll();
  234 + $o = $o[0]['o'] + 1;
  235 +
  236 + $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')");
227 237 $id = $dbhw->query("SELECT id_prancha FROM i3geoadmin_atlasp");
228 238 $id = $id->fetchAll();
229 239 $id = intval($id[count($id)-1]['id_prancha']);
... ... @@ -251,7 +261,11 @@ function alterarTema()
251 261 }
252 262 else
253 263 {
254   - $dbhw->query("INSERT INTO i3geoadmin_atlast (ordem_tema,codigo_tema,ligado_tema,id_prancha) VALUES (1,'','','$id_prancha')");
  264 + $o = $dbhw->query("SELECT MAX(ordem_tema) as o FROM i3geoadmin_atlast where id_prancha = '$id_prancha'");
  265 + $o = $o->fetchAll();
  266 + $o = $o[0]['o'] + 1;
  267 +
  268 + $dbhw->query("INSERT INTO i3geoadmin_atlast (ordem_tema,codigo_tema,ligado_tema,id_prancha) VALUES ($o,'','','$id_prancha')");
255 269 $id = $dbhw->query("SELECT id_tema FROM i3geoadmin_atlast");
256 270 $id = $id->fetchAll();
257 271 $id = intval($id[count($id)-1]['id_tema']);
... ...
admin/php/menutemas.php
... ... @@ -27,7 +27,7 @@ File: i3geo/admin/mapfiles.php
27 27 19/6/2007
28 28  
29 29 */
30   -error_reporting(E_ALL);
  30 +error_reporting(0);
31 31 include_once("admin.php");
32 32 $cp = new cpaint();
33 33 //faz a busca da função que deve ser executada
... ...
admin/php/parsemapfile.php
... ... @@ -104,6 +104,7 @@ function legendaSimples($layername)
104 104 $xml .= "<property key='m_symbolType' value='4'/>\n";
105 105 $xml .= "<property key='m_Style' value='1'/>\n";
106 106 $xml .= "<property key='m_useOutline' value='true'/>\n";
  107 + if($cor->red != -1)
107 108 $xml .= "<property key='m_Color' value='".$cor->red.",".$cor->green.",".$cor->blue.",255'/>\n";
108 109 if($outcor->red != -1)
109 110 $xml .= "<property key='m_outlineColor' value='".$outcor->red.",".$outcor->green.",".$outcor->blue.",255'/>\n";
... ...