Commit 93b798350da2549ba70272d6dabae21cc6f8eea2
1 parent
c43522f2
Exists in
master
and in
7 other branches
--no commit message
Showing
20 changed files
with
1571 additions
and
269 deletions
Show diff stats
admin/html/admin.css
... | ... | @@ -39,6 +39,15 @@ input |
39 | 39 | width: 20px; |
40 | 40 | height: 20px; |
41 | 41 | } |
42 | +.mais | |
43 | +{ | |
44 | + background-image:URL('../imagens/05.png'); | |
45 | + background-repeat: no-repeat; | |
46 | + background-position: 0px 0px; | |
47 | + cursor:pointer; | |
48 | + width: 20px; | |
49 | + height: 20px; | |
50 | +} | |
42 | 51 | .mostrar |
43 | 52 | { |
44 | 53 | background-image:URL('../imagens/03.png'); | ... | ... |
... | ... | @@ -0,0 +1,45 @@ |
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>Grupos</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/grupos.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 - grupos <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 a lista de grupos.<br><br> | |
30 | + Você pode criar vários grupos para poder montar a árvore de temas de cada menu. | |
31 | + Cada grupo é mostrado como nós de um ou mais menus das árvores mostradas na guia de adição de temas do i3geo.<br><br> | |
32 | + A lista de grupos é baseada no banco admin.db e os usuários que não são editores podem | |
33 | + ver apenas os grupos publicados.<br><br> | |
34 | + A lista de IPs dos usuários que podem editar os menu é definida no | |
35 | + arquivo i3geo/ms_configura.php | |
36 | + </div> | |
37 | + <div class="ft"></div> | |
38 | +</div> | |
39 | +<input onclick="adicionaLinha()" type=button id=adiciona value="Adicionar um novo grupo" /> | |
40 | +<br> | |
41 | +<p>Grupos existentes: (clique na célula para editar e salve a linha editada)</p> | |
42 | +<div id="tabela" style="left:-5px;"></div> | |
43 | +</div> | |
44 | +<div id=logajax style="display:block" ></div> | |
45 | +</body> | ... | ... |
admin/html/i3geoadmin_grupos.html
... | ... | @@ -1,35 +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/menutemas.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 a lista de grupos</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 | -</div></div> | |
20 | -<div id=aguarde style="color:red" ><img src="../../imagens/aguarde.gif" /></div> | |
21 | -</body> | |
22 | -<script> | |
23 | -/* | |
24 | -Title: Administração da lista de grupos do menu de temas | |
25 | - | |
26 | -File: i3geo/admin/i3geoadmin_grupos.htm | |
27 | -*/ | |
28 | -$parametros = { | |
29 | - "simples": [ | |
30 | - { mensagem: "Adicione, altere ou elimine grupos cadastrados",cabeca: "Grupos",variavel:"grupos"} | |
31 | - ]}; | |
32 | -iniciaAdmin() | |
33 | -document.getElementById("aguarde").style.display="none" | |
34 | -</script> | |
35 | -</html> | |
36 | 0 | \ No newline at end of file |
admin/html/i3geoadmin_subgrupos.html
... | ... | @@ -1,36 +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/menutemas.js" type="text/javascript"></script> | |
8 | - | |
9 | -</head> | |
10 | -<body> | |
11 | -<div style=width:80%;text-align:center;> | |
12 | -<h1>Administração do i3geo - menu de temas <img src="../imagens/04.png" style="cursor:pointer" onclick="$i('ajuda').style.display='block'"/></h1> | |
13 | -<p><a href="../index.html">Voltar</a></p> | |
14 | -<div id=ajuda style="display:none"> | |
15 | -<p>Este programa permite editar a lista de sub-grupos</p> | |
16 | -<p>O menu é baseado no banco admin.db.</p> | |
17 | -<p>A lista de IPs dos usuários que podem editar os arquivos de configuração do i3geo e | |
18 | -dos que podem navegar pelos diretórios do servidor, não são mostradas aqui. Para | |
19 | -alterar essas variáveis, vc deve editar diretamente o arquivo i3geo/ms_configura.php.</p> | |
20 | -</div></div> | |
21 | -<div id=aguarde style="color:red" ><img src="../../imagens/aguarde.gif" /></div> | |
22 | -</body> | |
23 | -<script> | |
24 | -/* | |
25 | -Title: Administração da lista de sub-grupos do menu de temas | |
26 | - | |
27 | -File: i3geo/admin/i3geoadmin_subgrupos.htm | |
28 | -*/ | |
29 | -$parametros = { | |
30 | - "simples": [ | |
31 | - { mensagem: "Adicione, altere ou elimine sub-grupos cadastrados",cabeca: "Sub-grupos",variavel:"subgrupos"} | |
32 | - ]}; | |
33 | -iniciaAdmin() | |
34 | -document.getElementById("aguarde").style.display="none" | |
35 | -</script> | |
36 | -</html> | |
37 | 0 | \ No newline at end of file |
... | ... | @@ -0,0 +1,45 @@ |
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>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/listatemas.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 - 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 a lista de temas.<br><br> | |
30 | + Você pode criar vários temas para poder montar a árvore de temas de cada menu. | |
31 | + Cada tema é vínculado a um arquivo mapfile, possuindo um nome e alguns parâmetros, | |
32 | + como possibilidade de download, geração de Web Services, etc.<br><br> | |
33 | + A lista de temas é baseada no banco admin.db.<br><br> | |
34 | + A lista de IPs dos usuários que podem editar os menu é definida no | |
35 | + arquivo i3geo/ms_configura.php | |
36 | + </div> | |
37 | + <div class="ft"></div> | |
38 | +</div> | |
39 | +<input onclick="adicionaLinha()" type=button id=adiciona value="Adicionar um novo tema" /> | |
40 | +<br> | |
41 | +<p>Temas existentes:</p> | |
42 | +<div id="tabela" style="left:-5px;"></div> | |
43 | +</div> | |
44 | +<div id=logajax style="display:block" ></div> | |
45 | +</body> | ... | ... |
... | ... | @@ -0,0 +1,45 @@ |
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>Sub-grupos</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/subgrupos.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 - sub-grupos <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 a lista de sub-grupos.<br><br> | |
30 | + Você pode criar vários sub-grupos para poder montar a árvore de temas de cada menu. | |
31 | + Cada sub-grupo é mostrado como nós de um ou mais menus das árvores mostradas na guia de adição de temas do i3geo.<br><br> | |
32 | + A lista de sub-grupos é baseada no banco admin.db e os usuários que não são editores podem | |
33 | + ver apenas os sub-grupos publicados.<br><br> | |
34 | + A lista de IPs dos usuários que podem editar os menu é definida no | |
35 | + arquivo i3geo/ms_configura.php | |
36 | + </div> | |
37 | + <div class="ft"></div> | |
38 | +</div> | |
39 | +<input onclick="adicionaLinha()" type=button id=adiciona value="Adicionar um novo sub-grupo" /> | |
40 | +<br> | |
41 | +<p>Sub-grupos existentes: (clique na célula para editar e salve a linha editada)</p> | |
42 | +<div id="tabela" style="left:-5px;"></div> | |
43 | +</div> | |
44 | +<div id=logajax style="display:block" ></div> | |
45 | +</body> | ... | ... |
... | ... | @@ -0,0 +1,68 @@ |
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>Menus</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 | +div{color:yellow} | |
17 | + </style> | |
18 | + <script type="text/javascript" src="../js/core.js"></script> | |
19 | +</head> | |
20 | +<body class=" yui-skin-sam"> | |
21 | +<div id=teste >oi</div> | |
22 | +<div >oi</div> | |
23 | +<div >oi</div> | |
24 | +<div >oi</div> | |
25 | +<script> | |
26 | +/* | |
27 | +var s = "ttttt" | |
28 | +alert(YAHOO.lang.isNumber(s)) | |
29 | + | |
30 | +*/ | |
31 | +/* | |
32 | +alert(YAHOO.lang.substitute('Hello {world}', {'world':'earth'})) | |
33 | +var processText = function(key, value) { | |
34 | +return value.toUpperCase(); | |
35 | +}; | |
36 | +alert(YAHOO.lang.substitute('Hello {world}', {'world':'earth'}, processText)) | |
37 | +*/ | |
38 | +/* | |
39 | +var foo = { | |
40 | + count :0, | |
41 | + 'method' : function(data) { | |
42 | + this.count++; | |
43 | + if(this.count == 5) { | |
44 | + timer.cancel(); | |
45 | + } | |
46 | + document.getElementById("teste").innerHTML += this.count; | |
47 | + } | |
48 | +} | |
49 | +var timer = YAHOO.lang.later(100, foo, 'method', [{data:'bar', data2:'zeta'}], true); | |
50 | +*/ | |
51 | +//YAHOO.util.Dom.batch(document.getElementsByTagName("div"),function(d){d.style.color="red";}) | |
52 | +/* | |
53 | + getChildrenBy | |
54 | +Array getChildrenBy ( node , method ) | |
55 | +Returns an array of HTMLElement childNodes that pass the test method. | |
56 | + | |
57 | +Parameters: | |
58 | + node <HTMLElement> The HTMLElement to start from | |
59 | + method <Function> A boolean function used to test children that receives the node being tested as its only argument | |
60 | + | |
61 | +Returns: Array | |
62 | + A static array of HTMLElements | |
63 | + | |
64 | +*/ | |
65 | +alert(YAHOO.util.Dom.getViewportHeight()) //getViewportWidth | |
66 | + | |
67 | +</script> | |
68 | +</body> | ... | ... |
387 Bytes
admin/index.html
... | ... | @@ -86,8 +86,8 @@ que por sua vez contém temas.</p> |
86 | 86 | <tr onclick="abre('html/i3geoadmin_perfis.html')"><td><div class=aplicar ></div></td><td>Editar a lista de perfis</td></tr> |
87 | 87 | <tr onclick="abre('html/i3geoadmin_tags.html')"><td><div class=aplicar ></div></td><td>Editar a lista de tags (palavras-chave)</td></tr> |
88 | 88 | <tr onclick="abre('html/menus.html')"><td><div class=aplicar ></div></td><td>Editar a lista de menus</td></tr> |
89 | -<tr onclick="abre('html/i3geoadmin_grupos.html')"><td><div class=aplicar ></div></td><td>Editar a lista de grupos</td></tr> | |
90 | -<tr onclick="abre('html/i3geoadmin_subgrupos.html')"><td><div class=aplicar ></div></td><td>Editar a lista de sub-grupos</td></tr> | |
89 | +<tr onclick="abre('html/grupos.html')"><td><div class=aplicar ></div></td><td>Editar a lista de grupos</td></tr> | |
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/i3geoadmin_temas.html')"><td><div class=aplicar ></div></td><td>Editar a lista de temas</td></tr> |
92 | 92 | <tr onclick="abre('html/i3geoadmin_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> | ... | ... |
admin/js/core.js
... | ... | @@ -43,6 +43,19 @@ object - objeto javaScript |
43 | 43 | var $i = function(id) |
44 | 44 | {return document.getElementById(id);}; |
45 | 45 | /* |
46 | +Variable: $mapfiles | |
47 | + | |
48 | +Armazena o objeto com a lista de mapfiles | |
49 | +*/ | |
50 | +var $mapfiles = ""; | |
51 | +/* | |
52 | +Variable: $tags | |
53 | + | |
54 | +Armazena o objeto com a lista de tags | |
55 | +*/ | |
56 | +var $tags = ""; | |
57 | + | |
58 | +/* | |
46 | 59 | Function: core_handleSuccess |
47 | 60 | |
48 | 61 | Processa o retorno da chamada em ajax quando tiver sucesso. Esta é uma |
... | ... | @@ -82,7 +95,7 @@ function core_handleFailure(o,texto) |
82 | 95 | { |
83 | 96 | //div onde será mostrado o log |
84 | 97 | if(!$i('logajax')) |
85 | - {document.body.innerHTML += "<div id=logajax ></div>";} | |
98 | + {return;} | |
86 | 99 | log = $i('logajax'); |
87 | 100 | YAHOO.log("The failure handler was called. tId: " + o.tId + ".", "info", "example"); |
88 | 101 | if(o.responseText !== undefined) |
... | ... | @@ -121,8 +134,12 @@ function core_makeRequest(sUrl,callback) |
121 | 134 | Function: core_carregando |
122 | 135 | |
123 | 136 | Mostra uma janela de aguarde |
137 | + | |
138 | +Parameters: | |
139 | + | |
140 | +tipo - ativa|desativa|string com uma mensagem | |
124 | 141 | */ |
125 | -function core_carregando() | |
142 | +function core_carregando(tipo) | |
126 | 143 | { |
127 | 144 | if (!YAHOO.example.container.wait) |
128 | 145 | { |
... | ... | @@ -131,7 +148,13 @@ function core_carregando() |
131 | 148 | YAHOO.example.container.wait.setBody("<img src=\"../../imagens/aguarde.gif\"/>"); |
132 | 149 | YAHOO.example.container.wait.render(document.body); |
133 | 150 | } |
134 | - YAHOO.example.container.wait.show(); | |
151 | + YAHOO.example.container.wait.setBody("<img src=\"../../imagens/aguarde.gif\"/>"); | |
152 | + if(tipo == "ativa") | |
153 | + {YAHOO.example.container.wait.show();} | |
154 | + if(tipo == "desativa") | |
155 | + {YAHOO.example.container.wait.hide();} | |
156 | + if(tipo != "ativa" && tipo != "desativa") | |
157 | + {YAHOO.example.container.wait.setBody("<img src=\"../../imagens/aguarde.gif\"/> "+tipo);} | |
135 | 158 | } |
136 | 159 | /* |
137 | 160 | Function: core_dialogoContinua |
... | ... | @@ -150,8 +173,6 @@ largura - largura do diálogo em px |
150 | 173 | */ |
151 | 174 | function core_dialogoContinua(handleYes,handleNo,mensagem,largura) |
152 | 175 | { |
153 | - if(!$i("dialogoContinua")) | |
154 | - {document.body.innerHTML += "<div id='dialogoContinua'></div>";} | |
155 | 176 | // Instantiate the Dialog |
156 | 177 | YAHOO.namespace("continua.container"); |
157 | 178 | YAHOO.continua.container.simpledialog1 = |
... | ... | @@ -169,7 +190,7 @@ function core_dialogoContinua(handleYes,handleNo,mensagem,largura) |
169 | 190 | { text:"Não", handler:handleNo } ] |
170 | 191 | } ); |
171 | 192 | YAHOO.continua.container.simpledialog1.setHeader("Tem certeza?"); |
172 | - YAHOO.continua.container.simpledialog1.render("dialogoContinua"); | |
193 | + YAHOO.continua.container.simpledialog1.render(document.body); | |
173 | 194 | YAHOO.continua.container.simpledialog1.show(); |
174 | 195 | } |
175 | 196 | /* |
... | ... | @@ -210,7 +231,7 @@ function core_pegaPerfis(funcao) |
210 | 231 | if(arguments.length == 0) |
211 | 232 | {var funcao = "";} |
212 | 233 | //pega a lista de perfis |
213 | - var sUrl = "../php/menutemas.php?funcao=pegaPerfisYUI"; | |
234 | + var sUrl = "../php/menutemas.php?funcao=pegaPerfis"; | |
214 | 235 | var callback = |
215 | 236 | { |
216 | 237 | success:function(o) |
... | ... | @@ -224,14 +245,133 @@ function core_pegaPerfis(funcao) |
224 | 245 | if(funcao != "") |
225 | 246 | eval(funcao); |
226 | 247 | } |
227 | - catch(e){core_handleFailure(o,o.responseText);} | |
248 | + catch(e){core_handleFailure(e,o.responseText);} | |
228 | 249 | }, |
229 | 250 | failure:core_handleFailure, |
230 | 251 | argument: { foo:"foo", bar:"bar" } |
231 | - }; | |
252 | + }; | |
253 | + core_carregando("buscando perfis..."); | |
232 | 254 | core_makeRequest(sUrl,callback) |
233 | 255 | } |
234 | 256 | /* |
257 | +function: core_pegaMapfiles | |
258 | + | |
259 | +Pega a lista de mapfiles | |
260 | + | |
261 | +Parameters: | |
262 | + | |
263 | +funcao - (opcional) nome da funcao que será executada ao terminar a busca pelos dados | |
264 | +*/ | |
265 | +function core_pegaMapfiles(funcaoM) | |
266 | +{ | |
267 | + if(arguments.length == 0) | |
268 | + {var funcao = "";} | |
269 | + var sUrl = "../php/menutemas.php?funcao=listaMapsTemas"; | |
270 | + var callbackM = | |
271 | + { | |
272 | + success:function(o) | |
273 | + { | |
274 | + try | |
275 | + { | |
276 | + $mapfiles = YAHOO.lang.JSON.parse(o.responseText); | |
277 | + if(funcaoM != "") | |
278 | + eval(funcaoM); | |
279 | + } | |
280 | + catch(e){core_handleFailure(e.responseText);} | |
281 | + }, | |
282 | + failure:core_handleFailure, | |
283 | + argument: { foo:"foo", bar:"bar" } | |
284 | + }; | |
285 | + core_makeRequest(sUrl,callbackM) | |
286 | +} | |
287 | +/* | |
288 | +Function: core_comboMapfiles | |
289 | + | |
290 | +Cria um combo para escolha do mapfile | |
291 | + | |
292 | +Parameters: | |
293 | + | |
294 | +onde - id do elemento que receberá o combo | |
295 | + | |
296 | +id - id do combo que será criado | |
297 | + | |
298 | +marcar - valor que será marcado como selecionado | |
299 | +*/ | |
300 | +function core_comboMapfiles(onde,id,marcar) | |
301 | +{ | |
302 | + if($mapfiles == "") | |
303 | + { | |
304 | + core_pegaMapfiles("core_comboMapfiles('"+onde+"','"+id+"','"+marcar+"')") | |
305 | + } | |
306 | + else | |
307 | + { | |
308 | + ins = "<select id='"+id+"' >" | |
309 | + ins += core_comboObjeto($mapfiles,"","",marcar) | |
310 | + ins += "</select></p>" | |
311 | + $i(onde).innerHTML = ins; | |
312 | + } | |
313 | +} | |
314 | +/* | |
315 | +function: core_pegaTags | |
316 | + | |
317 | +Pega a lista de tags | |
318 | + | |
319 | +Parameters: | |
320 | + | |
321 | +funcao - (opcional) nome da funcao que será executada ao terminar a busca pelos dados | |
322 | +*/ | |
323 | +function core_pegaTags(funcao) | |
324 | +{ | |
325 | + if(arguments.length == 0) | |
326 | + {var funcao = "";} | |
327 | + var sUrl = "../php/menutemas.php?funcao=pegaTags"; | |
328 | + var callback = | |
329 | + { | |
330 | + success:function(o) | |
331 | + { | |
332 | + try | |
333 | + { | |
334 | + $tags = YAHOO.lang.JSON.parse(o.responseText); | |
335 | + if(funcao != "") | |
336 | + eval(funcao); | |
337 | + } | |
338 | + catch(e){core_handleFailure(e,o.responseText);} | |
339 | + }, | |
340 | + failure:core_handleFailure, | |
341 | + argument: { foo:"foo", bar:"bar" } | |
342 | + }; | |
343 | + core_makeRequest(sUrl,callback) | |
344 | +} | |
345 | +/* | |
346 | +Function: core_comboTags | |
347 | + | |
348 | +Cria um combo para escolha de tags | |
349 | + | |
350 | +Parameters: | |
351 | + | |
352 | +onde - id do elemento que receberá o combo | |
353 | + | |
354 | +id - id do combo que será criado | |
355 | + | |
356 | +marcar - valor que será marcado como selecionado | |
357 | + | |
358 | +change - nome da função do evento onchange | |
359 | +*/ | |
360 | +function core_comboTags(onde,id,change) | |
361 | +{ | |
362 | + if($tags == "") | |
363 | + { | |
364 | + core_pegaTags("core_comboTags('"+onde+"','"+id+"','"+change+"')") | |
365 | + } | |
366 | + else | |
367 | + { | |
368 | + ins = "<select onchange=\""+change+"(this.value)\" id='"+id+"' >" | |
369 | + ins += core_comboObjeto($tags,"nome","nome","") | |
370 | + ins += "</select></p>" | |
371 | + $i(onde).innerHTML = ins; | |
372 | + } | |
373 | +} | |
374 | +/* | |
235 | 375 | Function: gera uma janela flutuante com opções de escolha baseadas em checkbox |
236 | 376 | |
237 | 377 | Parameters: |
... | ... | @@ -243,6 +383,10 @@ textos - array com os nomes de cada checkbox |
243 | 383 | selecionados - array com os valores marcados |
244 | 384 | |
245 | 385 | target - objeto para receber o resultado |
386 | + | |
387 | +record - objeto record | |
388 | + | |
389 | +key - chave (nome do item) | |
246 | 390 | */ |
247 | 391 | function core_menuCheckBox(valores,textos,selecionados,target,record,key) |
248 | 392 | { |
... | ... | @@ -262,8 +406,9 @@ function core_menuCheckBox(valores,textos,selecionados,target,record,key) |
262 | 406 | record.setData(key,ins.toString()); |
263 | 407 | } |
264 | 408 | YAHOO.example.container.panelCK.destroy(); |
409 | + YAHOO.example.container.panelCK = null; | |
265 | 410 | }; |
266 | - if(!$i("core_menuCK")) | |
411 | + if(!YAHOO.example.container.panelCK) | |
267 | 412 | { |
268 | 413 | var novoel = document.createElement("div"); |
269 | 414 | novoel.id = "core_menuCK"; |
... | ... | @@ -301,8 +446,54 @@ function core_menuCheckBox(valores,textos,selecionados,target,record,key) |
301 | 446 | YAHOO.example.container.panelCK.moveTo(YAHOO.util.Dom.getX(target),YAHOO.util.Dom.getY(target)); |
302 | 447 | YAHOO.example.container.panelCK.show(); |
303 | 448 | } |
449 | +/* | |
450 | +Function: core_combosimnao | |
451 | + | |
452 | +Retorna os itens option de um combo sim nao | |
453 | +*/ | |
454 | +function core_combosimnao(marcar) | |
455 | +{ | |
456 | + var ins = "<option value='' " | |
457 | + if (marcar == ""){ins += "selected"} | |
458 | + ins += ">---</option>"; | |
459 | + ins += "<option value='SIM' " | |
460 | + if (marcar == "sim" || marcar == "SIM"){ins += "selected"} | |
461 | + ins += ">sim</option>"; | |
462 | + ins += "<option value='NAO' " | |
463 | + if (marcar == "nao" || marcar == "NAO"){ins += "selected"} | |
464 | + ins += ">nao</option>"; | |
465 | + return(ins) | |
466 | +} | |
467 | +/* | |
468 | +Function: core_comboObjeto | |
469 | + | |
470 | +Retorna os itens option de um combo baseado em um objeto json | |
471 | +*/ | |
472 | +function core_comboObjeto(obj,valor,texto,marcar) | |
473 | +{ | |
474 | + var ins = "<option value='' " | |
475 | + ins += ">---</option>"; | |
476 | + for (var k=0;k<obj.length;k++) | |
477 | + { | |
478 | + if(valor != "") | |
479 | + var v = eval("obj[k]."+valor); | |
480 | + else | |
481 | + var v = obj[k]; | |
482 | + if(texto != "") | |
483 | + var t = eval("obj[k]."+texto); | |
484 | + else | |
485 | + var t = obj[k]; | |
486 | + ins += "<option value='"+v+"' " | |
487 | + if (marcar == v){ins += "selected"} | |
488 | + ins += ">"+t+"</option>"; | |
489 | + } | |
490 | + return(ins) | |
491 | +} | |
492 | +// | |
493 | +//carregador de javascript | |
304 | 494 | // |
305 | 495 | //define o local correto dos programas |
496 | +// | |
306 | 497 | var scriptLocation = ""; |
307 | 498 | var scripts = document.getElementsByTagName('script'); |
308 | 499 | var i = 0; | ... | ... |
... | ... | @@ -0,0 +1,203 @@ |
1 | +YAHOO.namespace("example.container"); | |
2 | +function initMenu() | |
3 | +{ | |
4 | + ativaBotaoAdicionaGrupo() | |
5 | + core_carregando("ativa"); | |
6 | + core_ativaPainelAjuda("ajuda","botaoAjuda"); | |
7 | + core_pegaPerfis("pegaGrupos()"); | |
8 | +} | |
9 | +function ativaBotaoAdicionaGrupo() | |
10 | +{ | |
11 | + var adicionalinha = function() | |
12 | + { | |
13 | + core_carregando("ativa"); | |
14 | + core_carregando(" adicionando um novo registro"); | |
15 | + var sUrl = "../php/menutemas.php?funcao=alteraGrupos"; | |
16 | + var callback = | |
17 | + { | |
18 | + success:function(o) | |
19 | + { | |
20 | + try | |
21 | + { | |
22 | + myDataTable.addRow(YAHOO.lang.JSON.parse(o.responseText)[0],0); | |
23 | + core_carregando("desativa"); | |
24 | + } | |
25 | + catch(e){core_handleFailure(o,o.responseText);} | |
26 | + }, | |
27 | + failure:core_handleFailure, | |
28 | + argument: { foo:"foo", bar:"bar" } | |
29 | + }; | |
30 | + core_makeRequest(sUrl,callback) | |
31 | + }; | |
32 | + //cria o botão de adição de um novo menu | |
33 | + var adiciona = new YAHOO.widget.Button("adiciona",{ onclick: { fn: adicionalinha } }); | |
34 | +} | |
35 | +function pegaGrupos() | |
36 | +{ | |
37 | + core_carregando("buscando grupos..."); | |
38 | + var sUrl = "../php/menutemas.php?funcao=pegaGrupos"; | |
39 | + var callback = | |
40 | + { | |
41 | + success:function(o) | |
42 | + { | |
43 | + try | |
44 | + {montaTabela(YAHOO.lang.JSON.parse(o.responseText));} | |
45 | + catch(e){core_handleFailure(o,o.responseText);} | |
46 | + }, | |
47 | + failure:core_handleFailure, | |
48 | + argument: { foo:"foo", bar:"bar" } | |
49 | + }; | |
50 | + core_makeRequest(sUrl,callback) | |
51 | +} | |
52 | +function montaTabela(dados) | |
53 | +{ | |
54 | + YAHOO.example.InlineCellEditing = new function() | |
55 | + { | |
56 | + // Custom formatter for "address" column to preserve line breaks | |
57 | + var formatTexto = function(elCell, oRecord, oColumn, oData) | |
58 | + { | |
59 | + elCell.innerHTML = "<p style=width:250px >" + oData + "</p>"; | |
60 | + }; | |
61 | + var formatTextoId = function(elCell, oRecord, oColumn, oData) | |
62 | + { | |
63 | + elCell.innerHTML = "<p style=width:20px >" + oData + "</p>"; | |
64 | + }; | |
65 | + | |
66 | + var formatSalva = function(elCell, oRecord, oColumn) | |
67 | + { | |
68 | + elCell.innerHTML = "<div class=aplicar style='text-align:center' onclick='gravaLinha(\""+oRecord._sId+"\")'></div>"; | |
69 | + }; | |
70 | + var formatExclui = function(elCell, oRecord, oColumn) | |
71 | + { | |
72 | + elCell.innerHTML = "<div class=excluir style='text-align:center' ></div>";//onclick='excluiLinha(\""+oRecord.getData("id_menu")+"\",\""+oRecord.getId()+"\")'></div>"; | |
73 | + }; | |
74 | + var myColumnDefs = [ | |
75 | + {key:"excluir",label:"excluir",formatter:formatExclui}, | |
76 | + {label:"salvar",formatter:formatSalva}, | |
77 | + {label:"id",key:"id_grupo", formatter:formatTextoId}, | |
78 | + {label:"nome",resizeable:true,key:"nome_grupo", formatter:formatTexto, editor:"textbox"}, | |
79 | + {label:"descrição",resizeable:true,key:"desc_grupo", formatter:formatTexto, editor:"textbox"} | |
80 | + ]; | |
81 | + myDataSource = new YAHOO.util.DataSource(dados); | |
82 | + myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSARRAY; | |
83 | + myDataSource.responseSchema = | |
84 | + { | |
85 | + fields: ["desc_grupo","id_grupo","nome_grupo"] | |
86 | + }; | |
87 | + myDataTable = new YAHOO.widget.DataTable("tabela", myColumnDefs, myDataSource); | |
88 | + // Set up editing flow | |
89 | + myDataTable.highlightEditableCell = function(oArgs) | |
90 | + { | |
91 | + var elCell = oArgs.target; | |
92 | + var column = myDataTable.getColumn(oArgs.target); | |
93 | + //if(column.editor != "null") | |
94 | + if(!YAHOO.lang.isNull(column.editor)) | |
95 | + { | |
96 | + YAHOO.util.Dom.addClass(elCell,'yui-dt-highlighted'); | |
97 | + } | |
98 | + }; | |
99 | + myDataTable.unhighlightEditableCell = function(oArgs) | |
100 | + { | |
101 | + var elCell = oArgs.target; | |
102 | + if(elCell.style.cursor="pointer") | |
103 | + { | |
104 | + YAHOO.util.Dom.removeClass(elCell,'yui-dt-highlighted'); | |
105 | + } | |
106 | + }; | |
107 | + myDataTable.subscribe("cellMouseoverEvent", myDataTable.highlightEditableCell); | |
108 | + myDataTable.subscribe("cellMouseoutEvent", myDataTable.unhighlightEditableCell); | |
109 | + myDataTable.subscribe('cellClickEvent',function(ev) | |
110 | + { | |
111 | + var target = YAHOO.util.Event.getTarget(ev); | |
112 | + var column = this.getColumn(target); | |
113 | + if(YAHOO.example.container.panelCK) | |
114 | + { | |
115 | + YAHOO.example.container.panelCK.destroy(); | |
116 | + YAHOO.example.container.panelCK = null; | |
117 | + } | |
118 | + if (column.key == 'excluir') | |
119 | + { | |
120 | + var record = this.getRecord(target); | |
121 | + excluiLinha(record.getData('id_grupo'),target); | |
122 | + } | |
123 | + else | |
124 | + {this.onEventShowCellEditor(ev);} | |
125 | + }); | |
126 | + // Hook into custom event to customize save-flow of "radio" editor | |
127 | + myDataTable.subscribe("editorUpdateEvent", function(oArgs) | |
128 | + { | |
129 | + if(oArgs.editor.column.key === "active") | |
130 | + { | |
131 | + this.saveCellEditor(); | |
132 | + | |
133 | + } | |
134 | + }); | |
135 | + myDataTable.subscribe("editorBlurEvent", function(oArgs) | |
136 | + { | |
137 | + this.cancelCellEditor(); | |
138 | + }); | |
139 | + }; | |
140 | + core_carregando("desativa"); | |
141 | +} | |
142 | +function gravaLinha(row) | |
143 | +{ | |
144 | + var r = myDataTable.getRecordSet().getRecord(row); | |
145 | + var id_grupo = r.getData("id_grupo"); | |
146 | + var nome_grupo = r.getData("nome_grupo"); | |
147 | + var desc_grupo = r.getData("desc_grupo"); | |
148 | + core_carregando("ativa"); | |
149 | + core_carregando(" gravando registro do id= "+id_grupo); | |
150 | + var sUrl = "../php/menutemas.php?funcao=alteraGrupos&nome="+nome_grupo+"&desc="+desc_grupo+"&id="+id_grupo; | |
151 | + var callback = | |
152 | + { | |
153 | + success:function(o) | |
154 | + { | |
155 | + core_carregando("desativa"); | |
156 | + }, | |
157 | + failure:core_handleFailure, | |
158 | + argument: { foo:"foo", bar:"bar" } | |
159 | + }; | |
160 | + core_makeRequest(sUrl,callback) | |
161 | +} | |
162 | +function excluiLinha(id,row) | |
163 | +{ | |
164 | + //dialogo | |
165 | + // Define various event handlers for Dialog | |
166 | + var handleYes = function() { | |
167 | + this.hide(); | |
168 | + core_carregando("ativa"); | |
169 | + core_carregando(" excluindo o registro do id= "+id); | |
170 | + var sUrl = "../php/menutemas.php?funcao=excluirRegistro&id="+id+"&tabela=grupos"; | |
171 | + var callback = | |
172 | + { | |
173 | + success:function(o) | |
174 | + { | |
175 | + try | |
176 | + { | |
177 | + if(YAHOO.lang.JSON.parse(o.responseText) == "erro") | |
178 | + { | |
179 | + core_carregando("<span style=color:red >Não foi possível excluir. Verifique se não existem sub-grupos vinculados a este grupo</span>"); | |
180 | + setTimeout("core_carregando('desativa')",3000) | |
181 | + } | |
182 | + else | |
183 | + { | |
184 | + myDataTable.deleteRow(row); | |
185 | + core_carregando("desativa"); | |
186 | + } | |
187 | + } | |
188 | + catch(e){core_handleFailure(o,o.responseText);} | |
189 | + }, | |
190 | + failure:core_handleFailure, | |
191 | + argument: { foo:"foo", bar:"bar" } | |
192 | + }; | |
193 | + core_makeRequest(sUrl,callback) | |
194 | + }; | |
195 | + var handleNo = function() | |
196 | + { | |
197 | + this.hide(); | |
198 | + }; | |
199 | + var mensagem = "Exclui o registro?"; | |
200 | + var largura = "300" | |
201 | + core_dialogoContinua(handleYes,handleNo,mensagem,largura) | |
202 | +} | |
203 | +YAHOO.util.Event.addListener(window, "load", initMenu); | |
0 | 204 | \ No newline at end of file | ... | ... |
... | ... | @@ -0,0 +1,333 @@ |
1 | +YAHOO.namespace("example.container"); | |
2 | +function initMenu() | |
3 | +{ | |
4 | + ativaBotaoAdicionaTema() | |
5 | + core_carregando("ativa"); | |
6 | + core_ativaPainelAjuda("ajuda","botaoAjuda"); | |
7 | + core_pegaPerfis("pegaTemas()"); | |
8 | +} | |
9 | +function ativaBotaoAdicionaTema() | |
10 | +{ | |
11 | + var adicionalinha = function() | |
12 | + { | |
13 | + core_carregando("ativa"); | |
14 | + core_carregando(" adicionando um novo registro"); | |
15 | + var sUrl = "../php/menutemas.php?funcao=alteraTemas"; | |
16 | + var callback = | |
17 | + { | |
18 | + success:function(o) | |
19 | + { | |
20 | + try | |
21 | + { | |
22 | + myDataTable.addRow(YAHOO.lang.JSON.parse(o.responseText)[0],0); | |
23 | + core_carregando("desativa"); | |
24 | + } | |
25 | + catch(e){core_handleFailure(e,o.responseText);} | |
26 | + }, | |
27 | + failure:core_handleFailure, | |
28 | + argument: { foo:"foo", bar:"bar" } | |
29 | + }; | |
30 | + core_makeRequest(sUrl,callback) | |
31 | + }; | |
32 | + //cria o botão de adição de um novo menu | |
33 | + var adiciona = new YAHOO.widget.Button("adiciona",{ onclick: { fn: adicionalinha } }); | |
34 | +} | |
35 | +function pegaTemas() | |
36 | +{ | |
37 | + core_carregando("buscando temas..."); | |
38 | + var sUrl = "../php/menutemas.php?funcao=pegaTemas2"; | |
39 | + var callback = | |
40 | + { | |
41 | + success:function(o) | |
42 | + { | |
43 | + try | |
44 | + {montaTabela(YAHOO.lang.JSON.parse(o.responseText));} | |
45 | + catch(e){core_handleFailure(e,o.responseText);} | |
46 | + }, | |
47 | + failure:core_handleFailure, | |
48 | + argument: { foo:"foo", bar:"bar" } | |
49 | + }; | |
50 | + core_makeRequest(sUrl,callback) | |
51 | +} | |
52 | +function montaTabela(dados) | |
53 | +{ | |
54 | + YAHOO.example.InlineCellEditing = new function() | |
55 | + { | |
56 | + // Custom formatter for "address" column to preserve line breaks | |
57 | + var formatTextoId = function(elCell, oRecord, oColumn, oData) | |
58 | + { | |
59 | + elCell.innerHTML = "<p>" + oData + "</p>"; | |
60 | + }; | |
61 | + | |
62 | + var formatMais = function(elCell, oRecord, oColumn) | |
63 | + { | |
64 | + elCell.innerHTML = "<div class=mais style='text-align:center' ></div>"; | |
65 | + }; | |
66 | + var formatExclui = function(elCell, oRecord, oColumn) | |
67 | + { | |
68 | + elCell.innerHTML = "<div class=excluir style='text-align:center' ></div>"; | |
69 | + }; | |
70 | + var myColumnDefs = [ | |
71 | + {key:"excluir",label:"excluir",formatter:formatExclui}, | |
72 | + {key:"mais",label:"mais",formatter:formatMais}, | |
73 | + {label:"id",key:"id_tema", formatter:formatTextoId}, | |
74 | + {label:"codigo (mapfile)",key:"codigo_tema", formatter:formatTextoId}, | |
75 | + {label:"nome",key:"nome_tema", formatter:formatTextoId}, | |
76 | + ]; | |
77 | + myDataSource = new YAHOO.util.DataSource(dados); | |
78 | + myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSARRAY; | |
79 | + myDataSource.responseSchema = | |
80 | + { | |
81 | + fields: ["nome_tema","codigo_tema","id_tema"] | |
82 | + }; | |
83 | + myDataTable = new YAHOO.widget.DataTable("tabela", myColumnDefs, myDataSource); | |
84 | + // Set up editing flow | |
85 | + myDataTable.subscribe('cellClickEvent',function(ev) | |
86 | + { | |
87 | + var target = YAHOO.util.Event.getTarget(ev); | |
88 | + var column = this.getColumn(target); | |
89 | + if (column.key == 'excluir') | |
90 | + { | |
91 | + var record = this.getRecord(target); | |
92 | + excluiLinha(record.getData('id_tema'),target); | |
93 | + } | |
94 | + if (column.key == 'mais') | |
95 | + { | |
96 | + var record = this.getRecord(target); | |
97 | + core_carregando("ativa"); | |
98 | + core_carregando("buscando dados..."); | |
99 | + $clicouId = record.getData('id_tema'); | |
100 | + $recordid = record.getId(); | |
101 | + var sUrl = "../php/menutemas.php?funcao=pegaTemas&id_tema="+record.getData('id_tema'); | |
102 | + var callback = | |
103 | + { | |
104 | + success:function(o) | |
105 | + { | |
106 | + try | |
107 | + { | |
108 | + montaEditorTema(YAHOO.lang.JSON.parse(o.responseText),$clicouId,$recordid); | |
109 | + } | |
110 | + catch(e){core_handleFailure(e,o.responseText);} | |
111 | + }, | |
112 | + failure:core_handleFailure, | |
113 | + argument: { foo:"foo", bar:"bar" } | |
114 | + }; | |
115 | + core_makeRequest(sUrl,callback) | |
116 | + } | |
117 | + | |
118 | + }); | |
119 | + // Hook into custom event to customize save-flow of "radio" editor | |
120 | + myDataTable.subscribe("editorUpdateEvent", function(oArgs) | |
121 | + { | |
122 | + if(oArgs.editor.column.key === "active") | |
123 | + { | |
124 | + this.saveCellEditor(); | |
125 | + } | |
126 | + }); | |
127 | + myDataTable.subscribe("editorBlurEvent", function(oArgs) | |
128 | + { | |
129 | + this.cancelCellEditor(); | |
130 | + }); | |
131 | + }; | |
132 | + core_carregando("desativa"); | |
133 | +} | |
134 | +function montaEditorTema(dados,id,recordid) | |
135 | +{ | |
136 | + function on_editorCheckBoxChange(p_oEvent) | |
137 | + { | |
138 | + var ins = ""; | |
139 | + if(p_oEvent.newValue.get("value") == "OK") | |
140 | + { | |
141 | + gravaDadosTema(id,recordid); | |
142 | + } | |
143 | + else | |
144 | + { | |
145 | + YAHOO.example.container.panelEditorTema.destroy(); | |
146 | + YAHOO.example.container.panelEditorTema = null; | |
147 | + } | |
148 | + }; | |
149 | + if(!YAHOO.example.container.panelEditorTema) | |
150 | + { | |
151 | + var novoel = document.createElement("div"); | |
152 | + novoel.id = "janela_editor"; | |
153 | + var ins = '<div class="hd">Editor</div>'; | |
154 | + ins += "<div class='bd' style='height:354px;overflow:auto'>"; | |
155 | + ins += "<div id='okcancel_checkbox'></div><div id='editor_bd'></div>"; | |
156 | + novoel.innerHTML = ins; | |
157 | + document.body.appendChild(novoel); | |
158 | + var editorBotoes = new YAHOO.widget.ButtonGroup({id:"okcancel_checkbox_id", name: "okcancel_checkbox_id", container: "okcancel_checkbox" }); | |
159 | + editorBotoes.addButtons([ | |
160 | + { label: "Salva", value: "OK", checked: false}, | |
161 | + { label: "Cancela", value: "CANCEL", checked: false } | |
162 | + ]); | |
163 | + editorBotoes.on("checkedButtonChange", on_editorCheckBoxChange); | |
164 | + YAHOO.example.container.panelEditorTema = new YAHOO.widget.Panel("janela_editor", { fixedcenter:true,close:false,width:"400px", height:"400px",overflow:"auto", visible:false,constraintoviewport:true } ); | |
165 | + YAHOO.example.container.panelEditorTema.render(); | |
166 | + } | |
167 | + YAHOO.example.container.panelEditorTema.show(); | |
168 | + //carrega os dados na janela | |
169 | + $i("editor_bd").innerHTML = montaDivTemas(dados[0]) | |
170 | + core_carregando("desativa"); | |
171 | + // | |
172 | + //preenche a div com a lista de tags | |
173 | + // | |
174 | + core_comboTags("comboTags","Etags_tema","registraTag"); | |
175 | + // | |
176 | + //preenche a div com a lista de mapfiles | |
177 | + // | |
178 | + core_comboMapfiles("comboMapfiles","Ecodigo_tema",dados[0].codigo_tema); | |
179 | +} | |
180 | +function registraTag(valor) | |
181 | +{ | |
182 | + var inp = $i("Etags_tema") | |
183 | + var tags = inp.value | |
184 | + if(tags == "") | |
185 | + inp.value = valor | |
186 | + else | |
187 | + inp.value = tags+" "+valor | |
188 | +} | |
189 | +function montaDivTemas(i) | |
190 | +{ | |
191 | + var ins = "" | |
192 | + ins += "<p>Nome do tema:<br>"; | |
193 | + ins += "<input size=50 type=text id=Enome_tema value='"+i.nome_tema+"' /></p>" | |
194 | + | |
195 | + ins += "<p>Mapfile (código do mapfile que será utilizado para criar a camada no i3geo):" | |
196 | + ins += "<div id=comboMapfiles >Buscando...</div>"; | |
197 | + | |
198 | + ins += "<p>Descrição:<br>"; | |
199 | + ins += "<input size=50 type=text id=Edesc_tema value='"+i.desc_tema+"' /></p>" | |
200 | + | |
201 | + ins += "<p>Link para a fonte:<br>"; | |
202 | + ins += "<input size=50 type=text id=Elink_tema value='"+i.link_tema+"' /></p>" | |
203 | + | |
204 | + ins += "<p>Tags (separe com espaço). Você pode digitar novos tags ou pegar da lista abaixo:" | |
205 | + ins += "<input type=text size=50 value='"+i.tags_tema+"' id='Etags_tema' ><br>" | |
206 | + ins += "<div id=comboTags >Buscando...</div>"; | |
207 | + | |
208 | + ins += "<p>Tipo:<br>" | |
209 | + ins += "<select id='Etipo_tema' />" | |
210 | + ins += "<option value='' " | |
211 | + if (i.tipoa_tema == ""){ins += "selected";} | |
212 | + ins += ">Normal</option>" | |
213 | + ins += "<option value='WMS' " | |
214 | + if (i.tipoa_tema == "WMS"){ins += "selected";} | |
215 | + ins += " >WMS<option></select></p>" | |
216 | + | |
217 | + ins += "<p>Permite acesso via WMS/WFS?<br>" | |
218 | + ins += "<select id='Eogc_tema' >" | |
219 | + ins += core_combosimnao(i.ogc_tema) | |
220 | + ins += "</select></p>" | |
221 | + | |
222 | + ins += "<p>Permite o download na aplicação datadownload.htm?<br>" | |
223 | + ins += "<select id='Edownload_tema' >" | |
224 | + ins += core_combosimnao(i.download_tema) | |
225 | + ins += "</select></p>" | |
226 | + | |
227 | + ins += "<p>Permite acesso via kml?<br>" | |
228 | + ins += "<select id='Ekml_tema' >" | |
229 | + ins += core_combosimnao(i.kml_tema) | |
230 | + ins += "</select></p>" | |
231 | + return(ins) | |
232 | +} | |
233 | +function gravaLinha(row) | |
234 | +{ | |
235 | + var r = myDataTable.getRecordSet().getRecord(row); | |
236 | + var id_grupo = r.getData("id_grupo"); | |
237 | + var nome_grupo = r.getData("nome_grupo"); | |
238 | + var desc_grupo = r.getData("desc_grupo"); | |
239 | + core_carregando("ativa"); | |
240 | + core_carregando(" gravando registro do id= "+id_grupo); | |
241 | + var sUrl = "../php/menutemas.php?funcao=alteraGrupos&nome="+nome_grupo+"&desc="+desc_grupo+"&id="+id_grupo; | |
242 | + var callback = | |
243 | + { | |
244 | + success:function(o) | |
245 | + { | |
246 | + core_carregando("desativa"); | |
247 | + }, | |
248 | + failure:core_handleFailure, | |
249 | + argument: { foo:"foo", bar:"bar" } | |
250 | + }; | |
251 | + core_makeRequest(sUrl,callback) | |
252 | +} | |
253 | +function excluiLinha(id,row) | |
254 | +{ | |
255 | + //dialogo | |
256 | + // Define various event handlers for Dialog | |
257 | + var handleYes = function() { | |
258 | + this.hide(); | |
259 | + core_carregando("ativa"); | |
260 | + core_carregando(" excluindo o registro do id= "+id); | |
261 | + var sUrl = "../php/menutemas.php?funcao=excluirRegistro&id="+id+"&tabela=temas"; | |
262 | + var callback = | |
263 | + { | |
264 | + success:function(o) | |
265 | + { | |
266 | + try | |
267 | + { | |
268 | + if(YAHOO.lang.JSON.parse(o.responseText) == "erro") | |
269 | + { | |
270 | + core_carregando("<span style=color:red >Não foi possível excluir. Verifique se não existem menus vinculados a este tema</span>"); | |
271 | + setTimeout("core_carregando('desativa')",3000) | |
272 | + } | |
273 | + else | |
274 | + { | |
275 | + myDataTable.deleteRow(row); | |
276 | + core_carregando("desativa"); | |
277 | + } | |
278 | + } | |
279 | + catch(e){core_handleFailure(e,o.responseText);} | |
280 | + }, | |
281 | + failure:core_handleFailure, | |
282 | + argument: { foo:"foo", bar:"bar" } | |
283 | + }; | |
284 | + core_makeRequest(sUrl,callback) | |
285 | + }; | |
286 | + var handleNo = function() | |
287 | + { | |
288 | + this.hide(); | |
289 | + }; | |
290 | + var mensagem = "Exclui o registro?"; | |
291 | + var largura = "300" | |
292 | + core_dialogoContinua(handleYes,handleNo,mensagem,largura) | |
293 | +} | |
294 | +function gravaDadosTema(id,recordid) | |
295 | +{ | |
296 | + var campos = new Array("nome","codigo","desc","link","tags","tipo","ogc","download","kml") | |
297 | + var par = "" | |
298 | + for (i=0;i<campos.length;i++) | |
299 | + { | |
300 | + par += "&"+campos[i]+"="+($i("E"+campos[i]+"_tema").value) | |
301 | + } | |
302 | + par += "&id="+id | |
303 | + core_carregando("ativa"); | |
304 | + core_carregando(" gravando o registro do id= "+id); | |
305 | + var sUrl = "../php/menutemas.php?funcao=alteraTemas"+par; | |
306 | + var callback = | |
307 | + { | |
308 | + success:function(o) | |
309 | + { | |
310 | + try | |
311 | + { | |
312 | + if(YAHOO.lang.JSON.parse(o.responseText) == "erro") | |
313 | + { | |
314 | + core_carregando("<span style=color:red >Não foi possível excluir. Verifique se não existem menus vinculados a este tema</span>"); | |
315 | + setTimeout("core_carregando('desativa')",3000) | |
316 | + } | |
317 | + else | |
318 | + { | |
319 | + var rec = myDataTable.getRecordSet().getRecord(recordid); | |
320 | + myDataTable.updateRow(rec,YAHOO.lang.JSON.parse(o.responseText)[0]) | |
321 | + core_carregando("desativa"); | |
322 | + } | |
323 | + YAHOO.example.container.panelEditorTema.destroy(); | |
324 | + YAHOO.example.container.panelEditorTema = null; | |
325 | + } | |
326 | + catch(e){core_handleFailure(e,o.responseText);} | |
327 | + }, | |
328 | + failure:core_handleFailure, | |
329 | + argument: { foo:"foo", bar:"bar" } | |
330 | + }; | |
331 | + core_makeRequest(sUrl,callback) | |
332 | +} | |
333 | +YAHOO.util.Event.addListener(window, "load", initMenu); | |
0 | 334 | \ No newline at end of file | ... | ... |
admin/js/menu.js
... | ... | @@ -2,7 +2,7 @@ YAHOO.namespace("example.container"); |
2 | 2 | function initMenu() |
3 | 3 | { |
4 | 4 | ativaBotaoAdicionaMenu() |
5 | - core_carregando(); | |
5 | + core_carregando("ativa"); | |
6 | 6 | core_ativaPainelAjuda("ajuda","botaoAjuda"); |
7 | 7 | core_pegaPerfis("pegaMenus()"); |
8 | 8 | } |
... | ... | @@ -10,14 +10,18 @@ function ativaBotaoAdicionaMenu() |
10 | 10 | { |
11 | 11 | var adicionalinha = function() |
12 | 12 | { |
13 | - core_carregando(); | |
13 | + core_carregando("ativa"); | |
14 | + core_carregando(" adicionando um novo registro"); | |
14 | 15 | var sUrl = "../php/menutemas.php?funcao=alteraMenus&publicado_menu=&perfil=&nome=&desc=&id=&aberto="; |
15 | 16 | var callback = |
16 | 17 | { |
17 | 18 | success:function(o) |
18 | 19 | { |
19 | 20 | try |
20 | - {pegaMenus();} | |
21 | + { | |
22 | + myDataTable.addRow(YAHOO.lang.JSON.parse(o.responseText)[0],0); | |
23 | + core_carregando("desativa"); | |
24 | + } | |
21 | 25 | catch(e){core_handleFailure(o,o.responseText);} |
22 | 26 | }, |
23 | 27 | failure:core_handleFailure, |
... | ... | @@ -30,7 +34,8 @@ function ativaBotaoAdicionaMenu() |
30 | 34 | } |
31 | 35 | function pegaMenus() |
32 | 36 | { |
33 | - var sUrl = "../php/menutemas.php?funcao=pegaMenusYUI"; | |
37 | + core_carregando("buscando menus..."); | |
38 | + var sUrl = "../php/menutemas.php?funcao=pegaMenus"; | |
34 | 39 | var callback = |
35 | 40 | { |
36 | 41 | success:function(o) |
... | ... | @@ -62,7 +67,7 @@ function montaTabela(dados) |
62 | 67 | elCell.innerHTML = "<div class=excluir style='text-align:center' ></div>";//onclick='excluiLinha(\""+oRecord.getData("id_menu")+"\",\""+oRecord.getId()+"\")'></div>"; |
63 | 68 | }; |
64 | 69 | var myColumnDefs = [ |
65 | - {key:"excluir",label:"",formatter:formatExclui}, | |
70 | + {key:"excluir",label:"excluir",formatter:formatExclui}, | |
66 | 71 | {label:"salvar",formatter:formatSalva}, |
67 | 72 | {label:"id",key:"id_menu", formatter:formatTexto}, |
68 | 73 | {label:"nome",resizeable:true,key:"nome_menu", formatter:formatTexto, editor:"textbox"}, |
... | ... | @@ -82,18 +87,32 @@ function montaTabela(dados) |
82 | 87 | myDataTable.highlightEditableCell = function(oArgs) |
83 | 88 | { |
84 | 89 | var elCell = oArgs.target; |
85 | - if(YAHOO.util.Dom.hasClass(elCell, "yui-dt-editable")) | |
90 | + var column = myDataTable.getColumn(oArgs.target); | |
91 | + //if(column.editor != "null") | |
92 | + if(!YAHOO.lang.isNull(column.editor)) | |
86 | 93 | { |
87 | - myDataTable.highlightCell(elCell); | |
94 | + YAHOO.util.Dom.addClass(elCell,'yui-dt-highlighted'); | |
95 | + } | |
96 | + }; | |
97 | + myDataTable.unhighlightEditableCell = function(oArgs) | |
98 | + { | |
99 | + var elCell = oArgs.target; | |
100 | + if(elCell.style.cursor="pointer") | |
101 | + { | |
102 | + YAHOO.util.Dom.removeClass(elCell,'yui-dt-highlighted'); | |
88 | 103 | } |
89 | 104 | }; |
90 | 105 | myDataTable.subscribe("cellMouseoverEvent", myDataTable.highlightEditableCell); |
91 | - myDataTable.subscribe("cellMouseoutEvent", myDataTable.onEventUnhighlightCell); | |
92 | - //myDataTable.subscribe("cellClickEvent", myDataTable.onEventShowCellEditor); | |
106 | + myDataTable.subscribe("cellMouseoutEvent", myDataTable.unhighlightEditableCell); | |
93 | 107 | myDataTable.subscribe('cellClickEvent',function(ev) |
94 | 108 | { |
95 | 109 | var target = YAHOO.util.Event.getTarget(ev); |
96 | 110 | var column = this.getColumn(target); |
111 | + if(YAHOO.example.container.panelCK) | |
112 | + { | |
113 | + YAHOO.example.container.panelCK.destroy(); | |
114 | + YAHOO.example.container.panelCK = null; | |
115 | + } | |
97 | 116 | if (column.key == 'excluir') |
98 | 117 | { |
99 | 118 | var record = this.getRecord(target); |
... | ... | @@ -112,7 +131,6 @@ function montaTabela(dados) |
112 | 131 | {this.onEventShowCellEditor(ev);} |
113 | 132 | } |
114 | 133 | }); |
115 | - | |
116 | 134 | // Hook into custom event to customize save-flow of "radio" editor |
117 | 135 | myDataTable.subscribe("editorUpdateEvent", function(oArgs) |
118 | 136 | { |
... | ... | @@ -127,7 +145,7 @@ function montaTabela(dados) |
127 | 145 | this.cancelCellEditor(); |
128 | 146 | }); |
129 | 147 | }; |
130 | - YAHOO.example.container.wait.hide(); | |
148 | + core_carregando("desativa"); | |
131 | 149 | } |
132 | 150 | function gravaLinha(row) |
133 | 151 | { |
... | ... | @@ -138,13 +156,14 @@ function gravaLinha(row) |
138 | 156 | var desc_menu = r.getData("desc_menu") |
139 | 157 | var id_menu = r.getData("id_menu") |
140 | 158 | var nome_menu = r.getData("nome_menu") |
141 | - core_carregando(); | |
159 | + core_carregando("ativa"); | |
160 | + core_carregando(" gravando registro do id= "+id_menu); | |
142 | 161 | var sUrl = "../php/menutemas.php?funcao=alteraMenus&publicado_menu="+publicado_menu+"&perfil="+perfil_menu+"&nome="+nome_menu+"&desc="+desc_menu+"&id="+id_menu+"&aberto="+aberto+""; |
143 | 162 | var callback = |
144 | 163 | { |
145 | 164 | success:function(o) |
146 | 165 | { |
147 | - YAHOO.example.container.wait.hide(); | |
166 | + core_carregando("desativa"); | |
148 | 167 | }, |
149 | 168 | failure:core_handleFailure, |
150 | 169 | argument: { foo:"foo", bar:"bar" } |
... | ... | @@ -157,7 +176,8 @@ function excluiLinha(id,row) |
157 | 176 | // Define various event handlers for Dialog |
158 | 177 | var handleYes = function() { |
159 | 178 | this.hide(); |
160 | - core_carregando(); | |
179 | + core_carregando("ativa"); | |
180 | + core_carregando(" excluindo o registro do id= "+id); | |
161 | 181 | var sUrl = "../php/menutemas.php?funcao=excluirRegistro&id="+id+"&tabela=menus"; |
162 | 182 | var callback = |
163 | 183 | { |
... | ... | @@ -165,8 +185,16 @@ function excluiLinha(id,row) |
165 | 185 | { |
166 | 186 | try |
167 | 187 | { |
168 | - myDataTable.deleteRow(row); | |
169 | - YAHOO.example.container.wait.hide(); | |
188 | + if(YAHOO.lang.JSON.parse(o.responseText) == "erro") | |
189 | + { | |
190 | + core_carregando("<span style=color:red >Não foi possível excluir. Verifique se não existem grupos vinculados a este menu</span>"); | |
191 | + setTimeout("core_carregando('desativa')",3000) | |
192 | + } | |
193 | + else | |
194 | + { | |
195 | + myDataTable.deleteRow(row); | |
196 | + core_carregando("desativa"); | |
197 | + } | |
170 | 198 | } |
171 | 199 | catch(e){core_handleFailure(o,o.responseText);} |
172 | 200 | }, | ... | ... |
... | ... | @@ -0,0 +1,203 @@ |
1 | +YAHOO.namespace("example.container"); | |
2 | +function initMenu() | |
3 | +{ | |
4 | + ativaBotaoAdicionaSubGrupo() | |
5 | + core_carregando("ativa"); | |
6 | + core_ativaPainelAjuda("ajuda","botaoAjuda"); | |
7 | + core_pegaPerfis("pegaSubGrupos()"); | |
8 | +} | |
9 | +function ativaBotaoAdicionaSubGrupo() | |
10 | +{ | |
11 | + var adicionalinha = function() | |
12 | + { | |
13 | + core_carregando("ativa"); | |
14 | + core_carregando(" adicionando um novo registro"); | |
15 | + var sUrl = "../php/menutemas.php?funcao=alteraSubGrupos"; | |
16 | + var callback = | |
17 | + { | |
18 | + success:function(o) | |
19 | + { | |
20 | + try | |
21 | + { | |
22 | + myDataTable.addRow(YAHOO.lang.JSON.parse(o.responseText)[0],0); | |
23 | + core_carregando("desativa"); | |
24 | + } | |
25 | + catch(e){core_handleFailure(o,o.responseText);} | |
26 | + }, | |
27 | + failure:core_handleFailure, | |
28 | + argument: { foo:"foo", bar:"bar" } | |
29 | + }; | |
30 | + core_makeRequest(sUrl,callback) | |
31 | + }; | |
32 | + //cria o botão de adição de um novo menu | |
33 | + var adiciona = new YAHOO.widget.Button("adiciona",{ onclick: { fn: adicionalinha } }); | |
34 | +} | |
35 | +function pegaSubGrupos() | |
36 | +{ | |
37 | + core_carregando("buscando sub-grupos..."); | |
38 | + var sUrl = "../php/menutemas.php?funcao=pegaSubGrupos"; | |
39 | + var callback = | |
40 | + { | |
41 | + success:function(o) | |
42 | + { | |
43 | + try | |
44 | + {montaTabela(YAHOO.lang.JSON.parse(o.responseText));} | |
45 | + catch(e){core_handleFailure(o,o.responseText);} | |
46 | + }, | |
47 | + failure:core_handleFailure, | |
48 | + argument: { foo:"foo", bar:"bar" } | |
49 | + }; | |
50 | + core_makeRequest(sUrl,callback) | |
51 | +} | |
52 | +function montaTabela(dados) | |
53 | +{ | |
54 | + YAHOO.example.InlineCellEditing = new function() | |
55 | + { | |
56 | + // Custom formatter for "address" column to preserve line breaks | |
57 | + var formatTexto = function(elCell, oRecord, oColumn, oData) | |
58 | + { | |
59 | + elCell.innerHTML = "<p style=width:250px >" + oData + "</p>"; | |
60 | + }; | |
61 | + var formatTextoId = function(elCell, oRecord, oColumn, oData) | |
62 | + { | |
63 | + elCell.innerHTML = "<p style=width:20px >" + oData + "</p>"; | |
64 | + }; | |
65 | + | |
66 | + var formatSalva = function(elCell, oRecord, oColumn) | |
67 | + { | |
68 | + elCell.innerHTML = "<div class=aplicar style='text-align:center' onclick='gravaLinha(\""+oRecord._sId+"\")'></div>"; | |
69 | + }; | |
70 | + var formatExclui = function(elCell, oRecord, oColumn) | |
71 | + { | |
72 | + elCell.innerHTML = "<div class=excluir style='text-align:center' ></div>";//onclick='excluiLinha(\""+oRecord.getData("id_menu")+"\",\""+oRecord.getId()+"\")'></div>"; | |
73 | + }; | |
74 | + var myColumnDefs = [ | |
75 | + {key:"excluir",label:"excluir",formatter:formatExclui}, | |
76 | + {label:"salvar",formatter:formatSalva}, | |
77 | + {label:"id",key:"id_subgrupo", formatter:formatTextoId}, | |
78 | + {label:"nome",resizeable:true,key:"nome_subgrupo", formatter:formatTexto, editor:"textbox"}, | |
79 | + {label:"descrição",resizeable:true,key:"desc_subgrupo", formatter:formatTexto, editor:"textbox"} | |
80 | + ]; | |
81 | + myDataSource = new YAHOO.util.DataSource(dados); | |
82 | + myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSARRAY; | |
83 | + myDataSource.responseSchema = | |
84 | + { | |
85 | + fields: ["desc_subgrupo","id_subgrupo","nome_subgrupo"] | |
86 | + }; | |
87 | + myDataTable = new YAHOO.widget.DataTable("tabela", myColumnDefs, myDataSource); | |
88 | + // Set up editing flow | |
89 | + myDataTable.highlightEditableCell = function(oArgs) | |
90 | + { | |
91 | + var elCell = oArgs.target; | |
92 | + var column = myDataTable.getColumn(oArgs.target); | |
93 | + //if(column.editor != "null") | |
94 | + if(!YAHOO.lang.isNull(column.editor)) | |
95 | + { | |
96 | + YAHOO.util.Dom.addClass(elCell,'yui-dt-highlighted'); | |
97 | + } | |
98 | + }; | |
99 | + myDataTable.unhighlightEditableCell = function(oArgs) | |
100 | + { | |
101 | + var elCell = oArgs.target; | |
102 | + if(elCell.style.cursor="pointer") | |
103 | + { | |
104 | + YAHOO.util.Dom.removeClass(elCell,'yui-dt-highlighted'); | |
105 | + } | |
106 | + }; | |
107 | + myDataTable.subscribe("cellMouseoverEvent", myDataTable.highlightEditableCell); | |
108 | + myDataTable.subscribe("cellMouseoutEvent", myDataTable.unhighlightEditableCell); | |
109 | + myDataTable.subscribe('cellClickEvent',function(ev) | |
110 | + { | |
111 | + var target = YAHOO.util.Event.getTarget(ev); | |
112 | + var column = this.getColumn(target); | |
113 | + if(YAHOO.example.container.panelCK) | |
114 | + { | |
115 | + YAHOO.example.container.panelCK.destroy(); | |
116 | + YAHOO.example.container.panelCK = null; | |
117 | + } | |
118 | + if (column.key == 'excluir') | |
119 | + { | |
120 | + var record = this.getRecord(target); | |
121 | + excluiLinha(record.getData('id_subgrupo'),target); | |
122 | + } | |
123 | + else | |
124 | + {this.onEventShowCellEditor(ev);} | |
125 | + }); | |
126 | + // Hook into custom event to customize save-flow of "radio" editor | |
127 | + myDataTable.subscribe("editorUpdateEvent", function(oArgs) | |
128 | + { | |
129 | + if(oArgs.editor.column.key === "active") | |
130 | + { | |
131 | + this.saveCellEditor(); | |
132 | + | |
133 | + } | |
134 | + }); | |
135 | + myDataTable.subscribe("editorBlurEvent", function(oArgs) | |
136 | + { | |
137 | + this.cancelCellEditor(); | |
138 | + }); | |
139 | + }; | |
140 | + core_carregando("desativa"); | |
141 | +} | |
142 | +function gravaLinha(row) | |
143 | +{ | |
144 | + var r = myDataTable.getRecordSet().getRecord(row); | |
145 | + var id_subgrupo = r.getData("id_subgrupo"); | |
146 | + var nome_subgrupo = r.getData("nome_subgrupo"); | |
147 | + var desc_subgrupo = r.getData("desc_subgrupo"); | |
148 | + core_carregando("ativa"); | |
149 | + core_carregando(" gravando registro do id= "+id_subgrupo); | |
150 | + var sUrl = "../php/menutemas.php?funcao=alteraSubGrupos&nome="+nome_subgrupo+"&desc="+desc_subgrupo+"&id="+id_subgrupo; | |
151 | + var callback = | |
152 | + { | |
153 | + success:function(o) | |
154 | + { | |
155 | + core_carregando("desativa"); | |
156 | + }, | |
157 | + failure:core_handleFailure, | |
158 | + argument: { foo:"foo", bar:"bar" } | |
159 | + }; | |
160 | + core_makeRequest(sUrl,callback) | |
161 | +} | |
162 | +function excluiLinha(id,row) | |
163 | +{ | |
164 | + //dialogo | |
165 | + // Define various event handlers for Dialog | |
166 | + var handleYes = function() { | |
167 | + this.hide(); | |
168 | + core_carregando("ativa"); | |
169 | + core_carregando(" excluindo o registro do id= "+id); | |
170 | + var sUrl = "../php/menutemas.php?funcao=excluirRegistro&id="+id+"&tabela=subgrupos"; | |
171 | + var callback = | |
172 | + { | |
173 | + success:function(o) | |
174 | + { | |
175 | + try | |
176 | + { | |
177 | + if(YAHOO.lang.JSON.parse(o.responseText) == "erro") | |
178 | + { | |
179 | + core_carregando("<span style=color:red >Não foi possível excluir. Verifique se não existem temas vinculados a este sub-grupo</span>"); | |
180 | + setTimeout("core_carregando('desativa')",3000) | |
181 | + } | |
182 | + else | |
183 | + { | |
184 | + myDataTable.deleteRow(row); | |
185 | + core_carregando("desativa"); | |
186 | + } | |
187 | + } | |
188 | + catch(e){core_handleFailure(o,o.responseText);} | |
189 | + }, | |
190 | + failure:core_handleFailure, | |
191 | + argument: { foo:"foo", bar:"bar" } | |
192 | + }; | |
193 | + core_makeRequest(sUrl,callback) | |
194 | + }; | |
195 | + var handleNo = function() | |
196 | + { | |
197 | + this.hide(); | |
198 | + }; | |
199 | + var mensagem = "Exclui o registro?"; | |
200 | + var largura = "300" | |
201 | + core_dialogoContinua(handleYes,handleNo,mensagem,largura) | |
202 | +} | |
203 | +YAHOO.util.Event.addListener(window, "load", initMenu); | |
0 | 204 | \ No newline at end of file | ... | ... |
admin/php/admin.php
... | ... | @@ -156,4 +156,60 @@ function pegaDados($sql) |
156 | 156 | return "Error!: " . $e->getMessage(); |
157 | 157 | } |
158 | 158 | } |
159 | +/* | |
160 | +Function: verificaFilhos | |
161 | + | |
162 | +Verifica se o pai tem filhos | |
163 | +*/ | |
164 | +function verificaFilhos() | |
165 | +{ | |
166 | + global $tabela,$id; | |
167 | + try | |
168 | + { | |
169 | + $res = false; | |
170 | + if($tabela == "i3geoadmin_n2") | |
171 | + { | |
172 | + $r = pegaDados("select * from i3geoadmin_n3 where id_n2=$id"); | |
173 | + if(count($r) > 0) | |
174 | + $res = true; | |
175 | + } | |
176 | + if($tabela == "i3geoadmin_n1") | |
177 | + { | |
178 | + $r = pegaDados("select * from i3geoadmin_n2 where id_n1=$id"); | |
179 | + if(count($r) > 0) | |
180 | + $res = true; | |
181 | + } | |
182 | + if($tabela == "i3geoadmin_menus") | |
183 | + { | |
184 | + $r = pegaDados("select * from i3geoadmin_n1 where id_menu=$id"); | |
185 | + if(count($r) > 0) | |
186 | + $res = true; | |
187 | + } | |
188 | + if($tabela == "i3geoadmin_grupos") | |
189 | + { | |
190 | + $r = pegaDados("select n1.id_grupo from i3geoadmin_n1 as n1, i3geoadmin_n2 as n2 where n1.id_n1 = n2.id_n1 and n1.id_grupo = '$id'"); | |
191 | + if(count($r) > 0) | |
192 | + $res = true; | |
193 | + } | |
194 | + if($tabela == "i3geoadmin_subgrupos") | |
195 | + { | |
196 | + $r = pegaDados("select n2.id_subgrupo from i3geoadmin_n3 as n3, i3geoadmin_n2 as n2 where n2.id_n2 = n3.id_n3 and n2.id_subgrupo = '$id'"); | |
197 | + if(count($r) > 0) | |
198 | + $res = true; | |
199 | + } | |
200 | + if($tabela == "i3geoadmin_temas") | |
201 | + { | |
202 | + $r = pegaDados("select id_tema from i3geoadmin_n3 where id_tema = '$id'"); | |
203 | + if(count($r) > 0) | |
204 | + $res = true; | |
205 | + } | |
206 | + | |
207 | + return $res; | |
208 | + } | |
209 | + catch (PDOException $e) | |
210 | + { | |
211 | + return "Error!: " . $e->getMessage(); | |
212 | + } | |
213 | +} | |
214 | + | |
159 | 215 | ?> |
160 | 216 | \ No newline at end of file | ... | ... |
admin/php/arvore.php
... | ... | @@ -88,36 +88,6 @@ switch ($funcao) |
88 | 88 | break; |
89 | 89 | } |
90 | 90 | /* |
91 | -Function: verificaFilhos | |
92 | - | |
93 | -Verifica se o pai tem filhos | |
94 | -*/ | |
95 | -function verificaFilhos() | |
96 | -{ | |
97 | - global $tabela,$coluna,$id; | |
98 | - try | |
99 | - { | |
100 | - $res = false; | |
101 | - if($tabela == "i3geoadmin_n2") | |
102 | - { | |
103 | - $r = pegaDados("select * from i3geoadmin_n3 where id_n2=$id"); | |
104 | - if(count($r) > 0) | |
105 | - $res = true; | |
106 | - } | |
107 | - if($tabela == "i3geoadmin_n1") | |
108 | - { | |
109 | - $r = pegaDados("select * from i3geoadmin_n2 where id_n1=$id"); | |
110 | - if(count($r) > 0) | |
111 | - $res = true; | |
112 | - } | |
113 | - return $res; | |
114 | - } | |
115 | - catch (PDOException $e) | |
116 | - { | |
117 | - return "Error!: " . $e->getMessage(); | |
118 | - } | |
119 | -} | |
120 | -/* | |
121 | 91 | Function: alteraN3 |
122 | 92 | |
123 | 93 | Altera o registro de um nível 3 (temas) | ... | ... |
admin/php/menutemas.php
... | ... | @@ -43,70 +43,75 @@ switch ($funcao) |
43 | 43 | $cp->set_data(importarXmlMenu()); |
44 | 44 | $cp->return_data(); |
45 | 45 | break; |
46 | - | |
47 | - case "pegaMenus": | |
48 | - $cp->set_data(pegaDados('SELECT * from i3geoadmin_menus order by nome_menu')); | |
49 | - $cp->return_data(); | |
50 | - break; | |
51 | 46 | |
52 | - case "pegaMenusYUI": | |
47 | + case "pegaMenus": | |
53 | 48 | $dados = pegaDados('SELECT * from i3geoadmin_menus order by nome_menu'); |
54 | 49 | retornaJSON($dados); |
55 | 50 | break; |
56 | 51 | |
57 | 52 | case "pegaTags": |
58 | - $cp->set_data(pegaDados('SELECT * from i3geoadmin_tags order by nome')); | |
59 | - $cp->return_data(); | |
53 | + $sql = "SELECT * from i3geoadmin_tags order by nome"; | |
54 | + retornaJSON(pegaDados($sql)); | |
55 | + exit; | |
60 | 56 | break; |
61 | 57 | |
62 | 58 | case "pegaPerfis": |
63 | - $cp->set_data(pegaDados('SELECT * from i3geoadmin_perfis order by perfil')); | |
64 | - $cp->return_data(); | |
65 | - break; | |
66 | - | |
67 | - case "pegaPerfisYUI": | |
68 | 59 | $dados = pegaDados('SELECT * from i3geoadmin_perfis order by perfil'); |
69 | 60 | retornaJSON($dados); |
70 | 61 | break; |
71 | 62 | |
72 | 63 | case "alteraMenus": |
73 | - alteraMenus(); | |
64 | + $novo = alteraMenus(); | |
65 | + $sql = "SELECT * from i3geoadmin_menus WHERE id_menu = '".$novo."'"; | |
66 | + retornaJSON(pegaDados($sql)); | |
74 | 67 | exit; |
75 | 68 | break; |
76 | 69 | |
77 | 70 | case "pegaGrupos": |
78 | - $cp->set_data(pegaDados('SELECT * from i3geoadmin_grupos order by nome_grupo')); | |
79 | - $cp->return_data(); | |
71 | + $dados = pegaDados('SELECT * from i3geoadmin_grupos order by nome_grupo'); | |
72 | + retornaJSON($dados); | |
73 | + exit; | |
80 | 74 | break; |
81 | - | |
75 | + | |
82 | 76 | case "alteraGrupos": |
83 | - $cp->set_data(alteraGrupos()); | |
84 | - $cp->return_data(); | |
77 | + $novo = alteraGrupos(); | |
78 | + $sql = "SELECT * from i3geoadmin_grupos WHERE id_grupo = '".$novo."'"; | |
79 | + retornaJSON(pegaDados($sql)); | |
80 | + exit; | |
85 | 81 | break; |
86 | - | |
82 | + | |
87 | 83 | case "pegaSubGrupos": |
88 | - $cp->set_data(pegaDados('SELECT * from i3geoadmin_subgrupos order by nome_subgrupo')); | |
89 | - $cp->return_data(); | |
84 | + $dados = pegaDados('SELECT * from i3geoadmin_subgrupos order by nome_subgrupo'); | |
85 | + retornaJSON($dados); | |
86 | + exit; | |
90 | 87 | break; |
91 | 88 | |
92 | 89 | case "alteraSubGrupos": |
93 | - $cp->set_data(alteraSubGrupos()); | |
94 | - $cp->return_data(); | |
90 | + $novo = alteraSubGrupos(); | |
91 | + $sql = "SELECT * from i3geoadmin_subgrupos WHERE id_subgrupo = '".$novo."'"; | |
92 | + retornaJSON(pegaDados($sql)); | |
93 | + exit; | |
95 | 94 | break; |
96 | 95 | |
97 | 96 | case "pegaTemas": |
98 | - $cp->set_data(pegaTemas()); | |
99 | - $cp->return_data(); | |
97 | + $sql = "SELECT * from i3geoadmin_temas where id_tema = '$id_tema'"; | |
98 | + retornaJSON(pegaDados($sql)); | |
99 | + exit; | |
100 | 100 | break; |
101 | 101 | |
102 | 102 | case "pegaTemas2": |
103 | - $cp->set_data(pegaTemas2()); | |
104 | - $cp->return_data(); | |
105 | - break; | |
103 | + retornaJSON(pegaTemas2()); | |
104 | + exit; | |
105 | + break; | |
106 | 106 | |
107 | 107 | case "alteraTemas": |
108 | - $cp->set_data(alteraTemas()); | |
109 | - $cp->return_data(); | |
108 | + //$r será igual ao novo id criado, no caso de inserção de um novo tema | |
109 | + $r = alteraTemas(); | |
110 | + if($id == "") | |
111 | + retornaJSON($r); | |
112 | + else | |
113 | + retornaJSON(pegaDados("select * from i3geoadmin_temas where id_tema = '$id'")); | |
114 | + exit; | |
110 | 115 | break; |
111 | 116 | |
112 | 117 | case "alteraTags": |
... | ... | @@ -118,32 +123,63 @@ switch ($funcao) |
118 | 123 | $cp->set_data(alteraPerfis()); |
119 | 124 | $cp->return_data(); |
120 | 125 | break; |
121 | - | |
122 | - case "pegaSubXGrupos": | |
123 | - $cp->set_data(pegaSubXGrupos()); | |
124 | - $cp->return_data(); | |
125 | - break; | |
126 | 126 | |
127 | 127 | case "excluirRegistro": |
128 | 128 | if($tabela == "grupos") |
129 | - {$tabela = "i3geoadmin_grupos";$coluna = "id_grupo";} | |
129 | + { | |
130 | + $tabela = "i3geoadmin_grupos"; | |
131 | + $coluna = "id_grupo"; | |
132 | + $filhos = verificaFilhos(); | |
133 | + if($filhos) | |
134 | + { | |
135 | + retornaJSON("erro"); | |
136 | + exit; | |
137 | + } | |
138 | + } | |
130 | 139 | if($tabela == "tags") |
131 | 140 | {excluiTagTemas($id);$tabela = "i3geoadmin_tags";$coluna = "id_tag";} |
132 | 141 | if($tabela == "perfis") |
133 | 142 | {excluiPerfil($perfil);$tabela = "i3geoadmin_perfis";$coluna = "perfil";} |
134 | 143 | if($tabela == "subgrupos") |
135 | - {$tabela = "i3geoadmin_subgrupos";$coluna = "id_subgrupo";} | |
144 | + { | |
145 | + $tabela = "i3geoadmin_subgrupos"; | |
146 | + $coluna = "id_subgrupo"; | |
147 | + $filhos = verificaFilhos(); | |
148 | + if($filhos) | |
149 | + { | |
150 | + retornaJSON("erro"); | |
151 | + exit; | |
152 | + } | |
153 | + } | |
136 | 154 | if($tabela == "temas") |
137 | - {$tabela = "i3geoadmin_temas";$coluna = "id_tema";} | |
155 | + { | |
156 | + $tabela = "i3geoadmin_temas"; | |
157 | + $coluna = "id_tema"; | |
158 | + $filhos = verificaFilhos(); | |
159 | + if($filhos) | |
160 | + { | |
161 | + retornaJSON("erro"); | |
162 | + exit; | |
163 | + } | |
164 | + } | |
138 | 165 | if($tabela == "menus") |
139 | - {$tabela = "i3geoadmin_menus";$coluna = "id_menu";} | |
140 | - $cp->set_data(exclui()); | |
141 | - $cp->return_data(); | |
166 | + { | |
167 | + $tabela = "i3geoadmin_menus"; | |
168 | + $coluna = "id_menu"; | |
169 | + $filhos = verificaFilhos(); | |
170 | + if($filhos) | |
171 | + { | |
172 | + retornaJSON("erro"); | |
173 | + exit; | |
174 | + } | |
175 | + } | |
176 | + retornaJSON(exclui()); | |
177 | + exit; | |
142 | 178 | break; |
143 | 179 | |
144 | 180 | case "listaMapsTemas": |
145 | - $cp->set_data(listaMapsTemas()); | |
146 | - $cp->return_data(); | |
181 | + retornaJSON(listaMapsTemas()); | |
182 | + exit; | |
147 | 183 | break; |
148 | 184 | } |
149 | 185 | function retornaJSON($obj) |
... | ... | @@ -282,7 +318,7 @@ function pegaTemas2() |
282 | 318 | { |
283 | 319 | $resultado = array(); |
284 | 320 | require_once("conexao.php"); |
285 | - foreach($dbh->query('SELECT codigo_tema,nome_tema from i3geoadmin_temas order by nome_tema') as $row) | |
321 | + foreach($dbh->query('SELECT codigo_tema,nome_tema,id_tema from i3geoadmin_temas order by nome_tema') as $row) | |
286 | 322 | { |
287 | 323 | $continua = true; |
288 | 324 | if(isset($filtro) && $filtro != "") |
... | ... | @@ -298,7 +334,8 @@ function pegaTemas2() |
298 | 334 | if ($continua) |
299 | 335 | $resultado[] = array( |
300 | 336 | "nome_tema"=>$row['nome_tema'], |
301 | - "codigo_tema"=>$row['codigo_tema'] | |
337 | + "codigo_tema"=>$row['codigo_tema'], | |
338 | + "id_tema"=>$row['id_tema'] | |
302 | 339 | ); |
303 | 340 | } |
304 | 341 | $dbh = null; |
... | ... | @@ -310,26 +347,6 @@ function pegaTemas2() |
310 | 347 | return "Error!: " . $e->getMessage(); |
311 | 348 | } |
312 | 349 | } |
313 | - | |
314 | -/* | |
315 | -Function: pegaSubXGrupos | |
316 | - | |
317 | -Pega a lista de sub-grupos por grupos | |
318 | -*/ | |
319 | -function pegaSubXGrupos() | |
320 | -{ | |
321 | -/* | |
322 | -select i3geoadmin_subxgrupos.id_subxgrupo,i3geoadmin_grupos.nome_grupo,i3geoadmin_subgrupos.nome_subgrupo | |
323 | -from | |
324 | -i3geoadmin_grupos,i3geoadmin_subgrupos,i3geoadmin_subxgrupos | |
325 | -where | |
326 | -i3geoadmin_grupos.id_grupo = i3geoadmin_subxgrupos.id_grupo | |
327 | -and | |
328 | -i3geoadmin_subgrupos.id_subgrupo = i3geoadmin_subxgrupos.id_subgrupo | |
329 | -order by nome_grupo,nome_subgrupo | |
330 | -*/ | |
331 | - | |
332 | -} | |
333 | 350 | /* |
334 | 351 | Function: alteraMenus |
335 | 352 | |
... | ... | @@ -340,18 +357,26 @@ function alteraMenus() |
340 | 357 | global $nome,$desc,$id,$aberto,$perfil,$publicado_menu; |
341 | 358 | try |
342 | 359 | { |
343 | - $nome = mb_convert_encoding($nome,"UTF-8","ISO-8859-1"); | |
344 | - $desc = mb_convert_encoding($desc,"UTF-8","ISO-8859-1"); | |
360 | + //$nome = mb_convert_encoding($nome,"UTF-8","ISO-8859-1"); | |
361 | + //$desc = mb_convert_encoding($desc,"UTF-8","ISO-8859-1"); | |
362 | + $retorna = ""; | |
345 | 363 | include("conexao.php"); |
346 | 364 | if($id != "") |
347 | 365 | { |
348 | 366 | $dbhw->query("UPDATE i3geoadmin_menus SET publicado_menu = '$publicado_menu',aberto = '$aberto', nome_menu = '$nome', desc_menu = '$desc', perfil_menu = '$perfil' WHERE id_menu = $id"); |
367 | + $retorna = "ok"; | |
349 | 368 | } |
350 | 369 | else |
351 | - $dbhw->query("INSERT INTO i3geoadmin_menus (publicado_menu, nome_menu, desc_menu, aberto, perfil_menu) VALUES ('','', '','SIM','')"); | |
370 | + { | |
371 | + $dbhw->query("INSERT INTO i3geoadmin_menus (publicado_menu, nome_menu, desc_menu, aberto, perfil_menu) VALUES ('','', '','SIM','')"); | |
372 | + $id_menu = $dbhw->query("SELECT * FROM i3geoadmin_menus"); | |
373 | + $id_menu = $id_menu->fetchAll(); | |
374 | + $id_menu = intval($id_menu[count($id_menu)-1]['id_menu']); | |
375 | + $retorna = $id_menu; | |
376 | + } | |
352 | 377 | $dbhw = null; |
353 | 378 | $dbh = null; |
354 | - return "ok"; | |
379 | + return $retorna; | |
355 | 380 | } |
356 | 381 | catch (PDOException $e) |
357 | 382 | { |
... | ... | @@ -448,7 +473,7 @@ function alteraTags() |
448 | 473 | try |
449 | 474 | { |
450 | 475 | $dbh = ""; |
451 | - $nome = mb_convert_encoding($nome,"UTF-8","ISO-8859-1"); | |
476 | + //$nome = mb_convert_encoding($nome,"UTF-8","ISO-8859-1"); | |
452 | 477 | include("conexao.php"); |
453 | 478 | if($id != "") |
454 | 479 | { |
... | ... | @@ -489,18 +514,26 @@ function alteraGrupos() |
489 | 514 | global $nome,$desc,$id; |
490 | 515 | try |
491 | 516 | { |
492 | - $nome = mb_convert_encoding($nome,"UTF-8","ISO-8859-1"); | |
493 | - $desc = mb_convert_encoding($desc,"UTF-8","ISO-8859-1"); | |
517 | + //$nome = mb_convert_encoding($nome,"UTF-8","ISO-8859-1"); | |
518 | + //$desc = mb_convert_encoding($desc,"UTF-8","ISO-8859-1"); | |
494 | 519 | include("conexao.php"); |
520 | + $retorna = ""; | |
495 | 521 | if($id != "") |
496 | 522 | { |
497 | 523 | $dbhw->query("UPDATE i3geoadmin_grupos SET nome_grupo = '$nome', desc_grupo = '$desc' WHERE id_grupo = $id"); |
524 | + $retorna = "ok"; | |
498 | 525 | } |
499 | 526 | else |
500 | - $dbhw->query("INSERT INTO i3geoadmin_grupos (nome_grupo, desc_grupo) VALUES ('', '')"); | |
527 | + { | |
528 | + $dbhw->query("INSERT INTO i3geoadmin_grupos (nome_grupo, desc_grupo) VALUES ('', '')"); | |
529 | + $id_grupo = $dbh->query("SELECT * FROM i3geoadmin_grupos"); | |
530 | + $id_grupo = $id_grupo->fetchAll(); | |
531 | + $id_grupo = intval($id_grupo[count($id_grupo)-1]['id_grupo']); | |
532 | + $retorna = $id_grupo; | |
533 | + } | |
501 | 534 | $dbhw = null; |
502 | 535 | $dbh = null; |
503 | - return "ok"; | |
536 | + return $retorna; | |
504 | 537 | } |
505 | 538 | catch (PDOException $e) |
506 | 539 | { |
... | ... | @@ -517,18 +550,26 @@ function alteraSubGrupos() |
517 | 550 | global $nome,$desc,$id; |
518 | 551 | try |
519 | 552 | { |
520 | - $nome = mb_convert_encoding($nome,"UTF-8","ISO-8859-1"); | |
521 | - $desc = mb_convert_encoding($desc,"UTF-8","ISO-8859-1"); | |
553 | + //$nome = mb_convert_encoding($nome,"UTF-8","ISO-8859-1"); | |
554 | + //$desc = mb_convert_encoding($desc,"UTF-8","ISO-8859-1"); | |
522 | 555 | require_once("conexao.php"); |
556 | + $retorna = ""; | |
523 | 557 | if($id != "") |
524 | 558 | { |
525 | 559 | $dbhw->query("UPDATE i3geoadmin_subgrupos SET nome_subgrupo = '$nome', desc_subgrupo = '$desc' WHERE id_subgrupo = $id"); |
560 | + $retorna = "ok"; | |
526 | 561 | } |
527 | 562 | else |
528 | - $dbhw->query("INSERT INTO i3geoadmin_subgrupos (nome_subgrupo, desc_subgrupo) VALUES ('', '')"); | |
563 | + { | |
564 | + $dbhw->query("INSERT INTO i3geoadmin_subgrupos (nome_subgrupo, desc_subgrupo) VALUES ('', '')"); | |
565 | + $id = $dbh->query("SELECT * FROM i3geoadmin_subgrupos"); | |
566 | + $id = $id->fetchAll(); | |
567 | + $id = intval($id[count($id)-1]['id_subgrupo']); | |
568 | + $retorna = $id; | |
569 | + } | |
529 | 570 | $dbhw = null; |
530 | 571 | $dbh = null; |
531 | - return "ok"; | |
572 | + return $retorna; | |
532 | 573 | } |
533 | 574 | catch (PDOException $e) |
534 | 575 | { |
... | ... | @@ -545,16 +586,23 @@ function alteraTemas() |
545 | 586 | global $nome,$desc,$id,$codigo,$tipoa,$download,$ogc,$kml,$link,$tags; |
546 | 587 | try |
547 | 588 | { |
548 | - $nome = mb_convert_encoding($nome,"UTF-8","ISO-8859-1"); | |
549 | - $desc = mb_convert_encoding($desc,"UTF-8","ISO-8859-1"); | |
550 | - $tags = mb_convert_encoding($tags,"UTF-8","ISO-8859-1"); | |
589 | + $retorna = "ok"; | |
590 | + //$nome = mb_convert_encoding($nome,"UTF-8","ISO-8859-1"); | |
591 | + //$desc = mb_convert_encoding($desc,"UTF-8","ISO-8859-1"); | |
592 | + //$tags = mb_convert_encoding($tags,"UTF-8","ISO-8859-1"); | |
551 | 593 | require_once("conexao.php"); |
552 | 594 | if($id != "") |
553 | 595 | { |
554 | 596 | $dbhw->query("UPDATE i3geoadmin_temas SET tags_tema='$tags', link_tema='$link', nome_tema ='$nome',desc_tema='$desc',codigo_tema='$codigo',tipoa_tema='$tipoa',download_tema='$download',ogc_tema='$ogc',kml_tema='$kml' WHERE id_tema = $id"); |
555 | 597 | } |
556 | 598 | else |
557 | - $dbhw->query("INSERT INTO i3geoadmin_temas (link_tema,kml_tema,ogc_tema,download_tema,nome_tema,desc_tema,codigo_tema,tipoa_tema,tags_tema) VALUES ('','', '','','','','','','')"); | |
599 | + { | |
600 | + $dbhw->query("INSERT INTO i3geoadmin_temas (link_tema,kml_tema,ogc_tema,download_tema,nome_tema,desc_tema,codigo_tema,tipoa_tema,tags_tema) VALUES ('','', '','','','','','','')"); | |
601 | + $id = $dbh->query("SELECT * FROM i3geoadmin_temas"); | |
602 | + $id = $id->fetchAll(); | |
603 | + $id = intval($id[count($id)-1]['id_tema']); | |
604 | + $retorna = $id; | |
605 | + } | |
558 | 606 | //verifica se é necessário adicionar algum tag novo |
559 | 607 | $tags = explode(" ",$tags); |
560 | 608 | foreach($tags as $tag) |
... | ... | @@ -566,7 +614,7 @@ function alteraTemas() |
566 | 614 | } |
567 | 615 | $dbhw = null; |
568 | 616 | $dbh = null; |
569 | - return "ok"; | |
617 | + return $retorna; | |
570 | 618 | } |
571 | 619 | catch (PDOException $e) |
572 | 620 | { | ... | ... |
admin/php/parsemapfile.php
1 | 1 | <?php |
2 | 2 | include_once("../../ms_configura.php"); |
3 | 3 | include_once("../../classesphp/funcoes_gerais.php"); |
4 | - | |
4 | +include_once("../../classesphp/carrega_ext.php"); | |
5 | +include_once("../../classesphp/pega_variaveis.php"); | |
6 | +error_reporting(0); | |
5 | 7 | $objcontype[0] = "MS_INLINE"; |
6 | 8 | $objcontype[1] = "MS_SHAPEFILE"; |
7 | 9 | $objcontype[2] = "MS_TILED_SHAPEFILE"; |
... | ... | @@ -27,62 +29,189 @@ $objlayertypes[6] = "MS_LAYER_CIRCLE"; |
27 | 29 | $objlayertypes[7] = "MS_LAYER_TILEINDEX"; |
28 | 30 | $objlayertypes[8] = "MS_LAYER_CHART"; |
29 | 31 | |
30 | -$dados = array(); | |
31 | 32 | $codigoLayer = $id; |
32 | 33 | $mapfile = "../../temas/".$codigoLayer.".map"; |
33 | 34 | $mapa = ms_newMapObj($mapfile); |
34 | -$layers = $mapa->getalllayernames(); | |
35 | -$xml = "<"."\x3F"."xml version='1.0' encoding='ISO-8859-1' "."\x3F".">"; | |
36 | -$xml .= "\n<parsemapfile>\n"; | |
37 | -$xml .= "<tiposconexao>".implode(",",$objcontype)."</tiposconexao>\n"; | |
38 | -$xml .= "<tiposlayer>".implode(",",$objlayertypes)."</tiposlayer>\n"; | |
39 | -foreach ($layers as $layer) | |
35 | +if(!isset($tipoparse) || $tipoparse=="") | |
36 | +{mapfile();exit;} | |
37 | + | |
38 | +if($tipoparse == "legenda") | |
40 | 39 | { |
41 | - $xml .= "\n<layer>\n"; | |
42 | - $layer = $mapa->getlayerbyname($layer); | |
43 | - $xml .= "<titulo>".$layer->getmetadata('tema')."</titulo>\n"; | |
44 | - $xml .= "<connection>\n"; | |
45 | - $con = $layer->connection; | |
46 | - $xml .= "<user>".preg_replace('/.*user\s*=\s*([a-zA-Z0-9_.]+).*/i', '\1', $con)."</user>\n"; | |
47 | - $xml .= "<password>".preg_replace('/.*password\s*=\s*([a-zA-Z0-9_.]+).*/i', '\1', $con)."</password>\n"; | |
48 | - $xml .= "<dbname>".preg_replace('/.*dbname\s*=\s*([a-zA-Z0-9_.]+).*/i', '\1', $con)."</dbname>\n"; | |
49 | - $xml .= "<host>".preg_replace('/.*host\s*=\s*([a-zA-Z0-9_.]+).*/i', '\1', $con)."</host>\n"; | |
50 | - $xml .= "<port>".preg_replace('/.*port\s*=\s*([a-zA-Z0-9_.]+).*/i', '\1', $con)."</port>\n"; | |
51 | - $xml .= "</connection>\n"; | |
52 | - $xml .= "<connectiontype>".$objcontype[$layer->connectiontype]."</connectiontype>\n"; | |
53 | - $d = $layer->data; | |
54 | - $xml .= "<data>$d</data>\n"; | |
55 | - $d = explode("(",$d); | |
56 | - $d = explode(")",$d[1]); | |
57 | - $xml .= "<select>$d[0]</select>\n"; | |
58 | - $xml .= "<type>".$objlayertypes[$layer->type]."</type>\n"; | |
59 | - $xml .= "<filter>".$layer->getfilter()."</filter>\n"; | |
60 | - $xml .= "<filteritem>$layer->filteritem</filteritem>\n"; | |
61 | - $xml .= "<group>$layer->group</group>\n"; | |
62 | - $xml .= "<labelangleitem>$layer->labelangleitem</labelangleitem>\n"; | |
63 | - $xml .= "<labelitem>$layer->labelitem</labelitem>\n"; | |
64 | - $xml .= "<labelmaxscale>$layer->labelmaxscale</labelmaxscale>\n"; | |
65 | - $xml .= "<labelminscale>$layer->labelminscale</labelminscale>\n"; | |
66 | - $xml .= "<labelsizeitem>$layer->labelsizeitem</labelsizeitem>\n"; | |
67 | - $xml .= "<maxscale>$layer->maxscale</maxscale>\n"; | |
68 | - $xml .= "<minscale>$layer->minscale</minscale>\n"; | |
69 | - $xml .= "<offsite>".$layer->offsite->red.",".$layer->offsite->green.",".$layer->offsite->blue."</offsite>\n"; | |
70 | - $xml .= "<opacity>$layer->opacity</opacity>\n"; | |
71 | - $xml .= "<symbolscale>$layer->symbolscale</symbolscale>\n"; | |
72 | - $xml .= "<tileindex>$layer->tileindex</tileindex>\n"; | |
73 | - $xml .= "<tileitem>$layer->tileitem</tileitem>\n"; | |
74 | - $xml .= "<tolerance>$layer->tolerance</tolerance>\n"; | |
75 | - $xml .= "<toleranceunits>$layer->toleranceunits</toleranceunits>\n"; | |
76 | - $xml .= "<sizeunits>$layer->sizeunits</sizeunits>\n"; | |
77 | - $xml .= "<projection>$layer->getProjection</projection>\n"; | |
78 | - $xml .= "<name>$layer->name</name>\n"; | |
79 | - $xml .= "<classes>\n"; | |
80 | - $xml .= pegaClasses(&$xml); | |
81 | - $xml .= "</classes>\n"; | |
82 | - $xml .= "</layer>"; | |
40 | + $tipoLegenda = tipoLegenda($layername); | |
41 | + //if($tipoLegenda == "simples") | |
42 | + //{legendaSimples($layername);} | |
43 | + legendaSimples($layername); | |
44 | +} | |
45 | +// | |
46 | +//verifica o tipo de legenda | |
47 | +//pode retornar: | |
48 | +//simples - o layer não terá classes | |
49 | +//valorunico - as classes são definidas por um item | |
50 | +//intervalo - as classes são definidas por um intervalo do mesmo item | |
51 | +// | |
52 | +function tipoLegenda($layername) | |
53 | +{ | |
54 | + global $mapa; | |
55 | + $tipolegenda = ""; | |
56 | + $layer = $mapa->getlayerbyname($layername); | |
57 | + $nclasses = $layer->numclasses; | |
58 | + if($nclasses == 1) | |
59 | + { | |
60 | + $classe = $layer->getclass(0); | |
61 | + $expressao = $classe->getExpression(); | |
62 | + if($expressao == "") | |
63 | + {return "simples";exit;} | |
64 | + } | |
65 | + $verItem = array(); | |
66 | + for($i=0;$i<$nclasses;++$i) | |
67 | + { | |
68 | + $classe = $layer->getclass($i); | |
69 | + $expressao = $classe->getExpression(); | |
70 | + if(count(explode("[",$expressao)) > 2) | |
71 | + { | |
72 | + return "intervalo"; | |
73 | + exit; | |
74 | + } | |
75 | + // | |
76 | + //verifica se os itens são únicos nas expressões | |
77 | + // | |
78 | + $item = preg_replace('/.*\[|\].*/i','\1', $expressao); | |
79 | + $verItem[$item] = 0; | |
80 | + } | |
81 | + if(count($verItem) == 1) | |
82 | + return "valorunico"; | |
83 | + else | |
84 | + return "simples"; | |
85 | +} | |
86 | +function legendaSimples($layername) | |
87 | +{ | |
88 | + global $mapa; | |
89 | + $tipolegenda = ""; | |
90 | + $layer = $mapa->getlayerbyname($layername); | |
91 | + $classe = $layer->getclass(0); | |
92 | + $estilo = $classe->getstyle(0); | |
93 | + $cor = $estilo->color; | |
94 | + $outcor = $estilo->outlinecolor; | |
95 | + $xml = "<"."\x3F"."xml version='1.0' encoding='ISO-8859-1' "."\x3F".">"; | |
96 | + $xml .= "<xml-tag xmlns='http://www.gvsig.gva.es'>\n"; | |
97 | + $xml .= "<property key='className' value='com.iver.cit.gvsig.fmap.rendering.SingleSymbolLegend'/>\n"; | |
98 | + $xml .= "<property key='labelFieldName'/>\n"; | |
99 | + $xml .= "<property key='labelHeightFieldName'/>\n"; | |
100 | + $xml .= "<property key='labelRotationFieldName'/>\n"; | |
101 | + $xml .= "<property key='followHeaderEncoding' value='true'/>\n"; | |
102 | + $xml .= "<xml-tag>\n"; | |
103 | + $xml .= "<property key='className' value='com.iver.cit.gvsig.fmap.core.v02.FSymbol'/>\n"; | |
104 | + $xml .= "<property key='m_symbolType' value='4'/>\n"; | |
105 | + $xml .= "<property key='m_Style' value='1'/>\n"; | |
106 | + $xml .= "<property key='m_useOutline' value='true'/>\n"; | |
107 | + $xml .= "<property key='m_Color' value='".$cor->red.",".$cor->green.",".$cor->blue.",255'/>\n"; | |
108 | + if($outcor->red != -1) | |
109 | + $xml .= "<property key='m_outlineColor' value='".$outcor->red.",".$outcor->green.",".$outcor->blue.",255'/>\n"; | |
110 | + else | |
111 | + $xml .= "<property key='m_outlineColor' value='0,0,0,255'/>\n"; | |
112 | + $xml .= "<property key='m_bUseFontSize' value='true'/>\n"; | |
113 | + $xml .= "<property key='m_bDrawShape' value='true'/>\n"; | |
114 | + $xml .= "<property key='m_Size' value='2'/>\n"; | |
115 | + $xml .= "<property key='m_Rotation' value='0'/>\n"; | |
116 | + $xml .= "<property key='m_LinePattern' value='0'/>\n"; | |
117 | + $xml .= "<property key='m_stroke' value='1.0'/>\n"; | |
118 | + $xml .= "<property key='m_bUseSize' value='false'/>\n"; | |
119 | + $xml .= "<property key='m_AlingVert' value='0'/>\n"; | |
120 | + $xml .= "<property key='m_AlingHoriz' value='0'/>\n"; | |
121 | + $xml .= "<property key='m_Descrip'/>\n"; | |
122 | + $xml .= "<property key='rgb' value='-14902251'/>\n"; | |
123 | + $xml .= "</xml-tag>\n"; | |
124 | + $xml .= "</xml-tag>\n"; | |
125 | + echo header("Content-type: application/xml"); | |
126 | + echo $xml; | |
127 | + exit; | |
128 | +} | |
129 | +// | |
130 | +//gera xml com parâmetros do mapfile | |
131 | +// | |
132 | +function mapfile() | |
133 | +{ | |
134 | + global $codigoLayer,$mapfile,$mapa,$objcontype,$objlayertypes; | |
135 | + $layers = $mapa->getalllayernames(); | |
136 | + $dados = array(); | |
137 | + $xml = "<"."\x3F"."xml version='1.0' encoding='ISO-8859-1' "."\x3F".">"; | |
138 | + $xml .= "\n<parsemapfile>\n"; | |
139 | + $xml .= "<tiposconexao>".implode(",",$objcontype)."</tiposconexao>\n"; | |
140 | + $xml .= "<tiposlayer>".implode(",",$objlayertypes)."</tiposlayer>\n"; | |
141 | + foreach ($layers as $layer) | |
142 | + { | |
143 | + $xml .= "\n<layer>\n"; | |
144 | + $layer = $mapa->getlayerbyname($layer); | |
145 | + $xml .= "<titulo>".$layer->getmetadata('tema')."</titulo>\n"; | |
146 | + $d = $layer->data; | |
147 | + $ct = $objcontype[$layer->connectiontype]; | |
148 | + if ($ct == "MS_SHAPEFILE" || $ct == "" || $ct == "MS_RASTER") | |
149 | + { | |
150 | + $ct = "MS_WMS"; | |
151 | + $d = "HTTP://mapas.mma.gov.br/i3geo/ogc.php?tema=".$codigoLayer; | |
152 | + $xml .= "<version>1.1.1</version>"; | |
153 | + $xml .= "<srs>EPSG:4291</srs>"; | |
154 | + $xml .= "<format>image/png</format>"; | |
155 | + } | |
156 | + else | |
157 | + {$xml .= "<geraxmllegenda>parsemapfile.php?id=".$codigoLayer."&layername=".$layer->name."&tipoparse=legenda</geraxmllegenda>";} | |
158 | + $xml .= "<connectiontype>".$ct."</connectiontype>\n"; | |
159 | + $xml .= "<data>$d</data>\n"; | |
160 | + $xml .= "<name>$layer->name</name>\n"; | |
161 | + if($ct != "MS_WMS") | |
162 | + { | |
163 | + $xml .= "<connection>\n"; | |
164 | + $con = $layer->connection; | |
165 | + $xml .= "<user>".preg_replace('/.*user\s*=\s*([a-zA-Z0-9_.]+).*/i', '\1', $con)."</user>\n"; | |
166 | + $xml .= "<password>".preg_replace('/.*password\s*=\s*([a-zA-Z0-9_.]+).*/i', '\1', $con)."</password>\n"; | |
167 | + $xml .= "<dbname>".preg_replace('/.*dbname\s*=\s*([a-zA-Z0-9_.]+).*/i', '\1', $con)."</dbname>\n"; | |
168 | + $xml .= "<host>".preg_replace('/.*host\s*=\s*([a-zA-Z0-9_.]+).*/i', '\1', $con)."</host>\n"; | |
169 | + $xml .= "<port>".preg_replace('/.*port\s*=\s*([a-zA-Z0-9_.]+).*/i', '\1', $con)."</port>\n"; | |
170 | + $xml .= "</connection>\n"; | |
171 | + $d = explode("(",$d); | |
172 | + $d = explode(")",$d[1]); | |
173 | + $xml .= "<select>$d[0]</select>\n"; | |
174 | + $string = preg_replace('/.*from\s*(.+).*/i', '\1', $d[0]); | |
175 | + $s = explode("WHERE",$string); | |
176 | + if(count($s) == 1) | |
177 | + $s = explode("where",$string); | |
178 | + $esquemaTabela = explode(".",$s[0]); | |
179 | + $xml .= "<esquema>".$esquemaTabela[0]."</esquema>"; | |
180 | + $xml .= "<tabela>".$esquemaTabela[1]."</tabela>"; | |
181 | + $xml .= "<where>".$s[1]."</where>"; | |
182 | + $xml .= "<type>".$objlayertypes[$layer->type]."</type>\n"; | |
183 | + $xml .= "<filter>".$layer->getfilter()."</filter>\n"; | |
184 | + $xml .= "<filteritem>$layer->filteritem</filteritem>\n"; | |
185 | + $xml .= "<labelangleitem>$layer->labelangleitem</labelangleitem>\n"; | |
186 | + $xml .= "<labelitem>$layer->labelitem</labelitem>\n"; | |
187 | + $xml .= "<labelmaxscale>$layer->labelmaxscale</labelmaxscale>\n"; | |
188 | + $xml .= "<labelminscale>$layer->labelminscale</labelminscale>\n"; | |
189 | + $xml .= "<labelsizeitem>$layer->labelsizeitem</labelsizeitem>\n"; | |
190 | + } | |
191 | + $xml .= "<group>$layer->group</group>\n"; | |
192 | + $xml .= "<maxscale>$layer->maxscale</maxscale>\n"; | |
193 | + $xml .= "<minscale>$layer->minscale</minscale>\n"; | |
194 | + $xml .= "<offsite>".$layer->offsite->red.",".$layer->offsite->green.",".$layer->offsite->blue."</offsite>\n"; | |
195 | + $xml .= "<opacity>$layer->opacity</opacity>\n"; | |
196 | + if($ct != "MS_WMS") | |
197 | + { | |
198 | + $xml .= "<symbolscale>$layer->symbolscale</symbolscale>\n"; | |
199 | + $xml .= "<tileindex>$layer->tileindex</tileindex>\n"; | |
200 | + $xml .= "<tileitem>$layer->tileitem</tileitem>\n"; | |
201 | + $xml .= "<tolerance>$layer->tolerance</tolerance>\n"; | |
202 | + $xml .= "<toleranceunits>$layer->toleranceunits</toleranceunits>\n"; | |
203 | + $xml .= "<sizeunits>$layer->sizeunits</sizeunits>\n"; | |
204 | + $xml .= "<projection>$layer->getProjection</projection>\n"; | |
205 | + $xml .= "<classes>\n"; | |
206 | + $xml .= pegaClasses(&$xml); | |
207 | + $xml .= "</classes>\n"; | |
208 | + } | |
209 | + $xml .= "</layer>"; | |
210 | + } | |
211 | + $xml .= "</parsemapfile>\n"; | |
212 | + echo header("Content-type: application/xml"); | |
213 | + echo $xml; | |
83 | 214 | } |
84 | -$xml .= "</parsemapfile>\n"; | |
85 | -echo $xml; | |
86 | 215 | function pegaClasses($xml) |
87 | 216 | { |
88 | 217 | global $layer; | ... | ... |
admin/php/xml.php
... | ... | @@ -41,18 +41,18 @@ function geraXmlSistemas($perfil,$locaplic,$editores) |
41 | 41 | } |
42 | 42 | function geraRSStemas($locaplic,$id_n2) |
43 | 43 | { |
44 | - $sql = "select t.nome_tema as nome_ws,'' as desc_ws,'php/parsemapfile.php?id='||t.codigo_tema as link_ws,'' as autor_ws from i3geoadmin_n3 as n3,i3geoadmin_temas as t where t.id_tema = n3.id_tema and n3.id_n2 = '$id_n2' and n3.n3_perfil = ''"; | |
44 | + $sql = "select t.nome_tema as nome_ws,'' as desc_ws,'php/parsemapfile.php?id='||t.codigo_tema as link_ws,t.link_tema as autor_ws from i3geoadmin_n3 as n3,i3geoadmin_temas as t where t.id_tema = n3.id_tema and n3.id_n2 = '$id_n2' and n3.n3_perfil = '' order by nome_ws"; | |
45 | 45 | return geraXmlRSS($locaplic,$sql,"Lista de temas"); |
46 | 46 | } |
47 | 47 | function geraRSSsubgrupos($locaplic,$id_n1) |
48 | 48 | { |
49 | - $sql = "select g.nome_subgrupo as nome_ws,'' as desc_ws,'rsstemas.php?id='||n2.id_n2 as link_ws,'' as autor_ws from i3geoadmin_n2 as n2,i3geoadmin_subgrupos as g where g.id_subgrupo = n2.id_subgrupo and n2.id_n1 = '$id_n1' and n2.n2_perfil = ''"; | |
49 | + $sql = "select g.nome_subgrupo as nome_ws,'' as desc_ws,'rsstemas.php?id='||n2.id_n2 as link_ws,'' as autor_ws from i3geoadmin_n2 as n2,i3geoadmin_subgrupos as g where g.id_subgrupo = n2.id_subgrupo and n2.id_n1 = '$id_n1' and n2.n2_perfil = '' order by nome_ws"; | |
50 | 50 | return geraXmlRSS($locaplic,$sql,"Lista de sub-grupos"); |
51 | 51 | } |
52 | 52 | |
53 | 53 | function geraRSSgrupos($locaplic) |
54 | 54 | { |
55 | - $sql = "select g.nome_grupo as nome_ws,'' as desc_ws,'rsssubgrupos.php?id='||n1.id_n1 as link_ws,'' as autor_ws from i3geoadmin_n1 as n1,i3geoadmin_grupos as g where g.id_grupo = n1.id_grupo and n1.n1_perfil = ''"; | |
55 | + $sql = "select g.nome_grupo as nome_ws,'' as desc_ws,'rsssubgrupos.php?id='||n1.id_n1 as link_ws,'' as autor_ws from i3geoadmin_n1 as n1,i3geoadmin_grupos as g where g.id_grupo = n1.id_grupo and n1.n1_perfil = '' order by nome_ws"; | |
56 | 56 | return geraXmlRSS($locaplic,$sql,"Lista de grupos"); |
57 | 57 | } |
58 | 58 | |
... | ... | @@ -101,7 +101,7 @@ function geraXmlRSS($locaplic,$sql,$descricao) |
101 | 101 | $xml .= "<description>".entity_decode($row["desc_ws"])."</description>\n"; |
102 | 102 | $xml .= "<link>".xmlTexto_prepara($row["link_ws"])."</link>\n"; |
103 | 103 | $xml .= "<pubDate/>\n"; |
104 | - $xml .= "<author>".entity_decode($row["autor_ws"])."</author>\n"; | |
104 | + $xml .= "<author>".xmlTexto_prepara($row["autor_ws"])."</author>\n"; | |
105 | 105 | $xml .= "</item>\n"; |
106 | 106 | } |
107 | 107 | $xml .= "</channel></rss>\n"; | ... | ... |
menutemas/admin.db
No preview for this file type