Commit 67023747268162950c48e1a3654e3c54dca7f126

Authored by Edmar Moretti
1 parent cdb9721e

Inclusão da listagem de dados no editor de tabelas do sistema metaestat

admin/js/estat_editor.js
... ... @@ -17,7 +17,7 @@ i3GEOadmin.editor = {
17 17 verificaEsquema: function(nomeEsquema){
18 18 if(nomeEsquema != "i3geo_metaestat"){
19 19 alert("Operacao permitida apenas para o esquema i3geo_metaestat");
20   - return;
  20 + return false;
21 21 }
22 22 },
23 23 conexao:{
... ... @@ -86,11 +86,10 @@ i3GEOadmin.editor = {
86 86 temp += core_comboObjeto(dados,"tabela","tabela");
87 87 temp += "</select>";
88 88 temp += "" +
89   - "<p>Digite um nome: <input id='i3GEOadmintabelaNomeNovo' title='digite o nome' type=text width=30 style='cursor:text' />" +
90   - "<p><input type=button value='Criar tabela' id='i3GEOadmintabelaCriar' onclick='i3GEOadmin.editor.tabela.criar()'/>" +
91   - "<input type=button value='Alterar nome atual' id='i3GEOadmintabelaAlterarNome' onclick='i3GEOadmin.editor.tabela.alterarNome()'/>" +
92   - "<input type=button value='Copiar para' id='i3GEOadmintabelaCopiar' onclick='i3GEOadmin.editor.tabela.copiar()'/>";
93   -
  89 + "<p><input type=button value='Mostrar os dados' id='i3GEOadmintabelaMostrar' onclick='i3GEOadmin.editor.tabela.mostrar()'/>" +
  90 + "<input type=button value='Criar uma nova tabela' id='i3GEOadmintabelaCriar' onclick='i3GEOadmin.editor.tabela.criar()'/>" +
  91 + "<input type=button value='Alterar nome atual' id='i3GEOadmintabelaAlterarNome' onclick='i3GEOadmin.editor.tabela.alterarNome()'/>" +
  92 + "<input type=button value='Copiar para' id='i3GEOadmintabelaCopiar' onclick='i3GEOadmin.editor.tabela.copiar()'/>";
94 93 $i(i3GEOadmin.editor.tabela.onde).innerHTML = temp+"</fieldset>";
95 94 core_carregando("desativa");
96 95 $i(i3GEOadmin.editor.coluna.onde).innerHTML = "";
... ... @@ -112,9 +111,6 @@ i3GEOadmin.editor = {
112 111 core_makeRequest("../php/metaestat.php?funcao=tabelasEsquema&formato=json&nome_esquema="+nome_esquema+"&codigo_estat_conexao="+codigo_estat_conexao,callback);
113 112 },
114 113 criar: function(){
115   - if(!window.confirm("Cria nova tabela?")){
116   - return;
117   - }
118 114 var callback = {
119 115 success:function(o){
120 116 try {
... ... @@ -126,25 +122,25 @@ i3GEOadmin.editor = {
126 122 failure:core_handleFailure,
127 123 argument: { foo:"foo", bar:"bar" }
128 124 },
129   - novaTabela = $i("i3GEOadmintabelaNomeNovo").value,
  125 + novaTabela = "",
130 126 nomeEsquema = $i("i3GEOadminesquema").value;
131 127 if(i3GEOadmin.editor.verificaEsquema(nomeEsquema) == false){
132 128 return;
133 129 }
134   - if(novaTabela == ""){
135   - alert("Digite um nome");
136   - return;
137   - }
138   - if(i3GEOadmin.editor.tabela.verificaExiste(novaTabela) == false){
139   - core_carregando("adicionando...");
140   - core_makeRequest("../php/metaestat.php?funcao=criaTabelaDB&formato=json&nome_tabela="+novaTabela+"&nome_esquema="+nomeEsquema+"&codigo_estat_conexao="+$i("i3GEOadmincodigo_estat_conexao").value,callback);
141   - }
142   - else{
143   - alert("Tabela ja existe");
  130 + novaTabela = window.prompt("Novo nome:","");
  131 + if (novaTabela!=null && novaTabela!=""){
  132 + if(i3GEOadmin.editor.tabela.verificaExiste(novaTabela) == false){
  133 + core_carregando("adicionando...");
  134 + core_makeRequest("../php/metaestat.php?funcao=criaTabelaDB&formato=json&nome_tabela="+novaTabela+"&nome_esquema="+nomeEsquema+"&codigo_estat_conexao="+$i("i3GEOadmincodigo_estat_conexao").value,callback);
  135 + }
  136 + else{
  137 + alert("Tabela ja existe");
  138 + }
144 139 }
145 140 },
146 141 alterarNome: function(){
147   - if(!window.confirm("Altera o nome?")){
  142 + if($i("i3GEOadmintabela").value == ""){
  143 + alert("Escolha a tabela");
148 144 return;
149 145 }
150 146 var callback = {
... ... @@ -158,25 +154,25 @@ i3GEOadmin.editor = {
158 154 failure:core_handleFailure,
159 155 argument: { foo:"foo", bar:"bar" }
160 156 },
161   - novaTabela = $i("i3GEOadmintabelaNomeNovo").value,
  157 + novaTabela = "",
162 158 nomeEsquema = $i("i3GEOadminesquema").value;
163 159 if(i3GEOadmin.editor.verificaEsquema(nomeEsquema) == false){
164 160 return;
165 161 }
166   - if(novaTabela == ""){
167   - alert("Digite um nome");
168   - return;
169   - }
170   - if(i3GEOadmin.editor.tabela.verificaExiste(novaTabela) == false){
171   - core_carregando("adicionando...");
172   - core_makeRequest("../php/metaestat.php?funcao=alteraNomeTabelaDB&formato=json&nome_tabela="+$i("i3GEOadmintabela").value+"&novonome_tabela="+novaTabela+"&nome_esquema="+nomeEsquema+"&codigo_estat_conexao="+$i("i3GEOadmincodigo_estat_conexao").value,callback);
173   - }
174   - else{
175   - alert("Tabela ja existe");
  162 + novaTabela = window.prompt("Novo nome:","");
  163 + if (novaTabela!=null && novaTabela!=""){
  164 + if(i3GEOadmin.editor.tabela.verificaExiste(novaTabela) == false){
  165 + core_carregando("adicionando...");
  166 + core_makeRequest("../php/metaestat.php?funcao=alteraNomeTabelaDB&formato=json&nome_tabela="+$i("i3GEOadmintabela").value+"&novonome_tabela="+novaTabela+"&nome_esquema="+nomeEsquema+"&codigo_estat_conexao="+$i("i3GEOadmincodigo_estat_conexao").value,callback);
  167 + }
  168 + else{
  169 + alert("Tabela ja existe");
  170 + }
176 171 }
177 172 },
178 173 copiar: function(){
179   - if(!window.confirm("Copiar tabela?")){
  174 + if($i("i3GEOadmintabela").value == ""){
  175 + alert("Escolha a tabela");
180 176 return;
181 177 }
182 178 var callback = {
... ... @@ -190,22 +186,63 @@ i3GEOadmin.editor = {
190 186 failure:core_handleFailure,
191 187 argument: { foo:"foo", bar:"bar" }
192 188 },
193   - novaTabela = $i("i3GEOadmintabelaNomeNovo").value,
  189 + novaTabela = "",
194 190 nomeEsquema = $i("i3GEOadminesquema").value;
195 191 if(i3GEOadmin.editor.verificaEsquema(nomeEsquema) == false){
196 192 return;
197 193 }
198   - if(novaTabela == ""){
199   - alert("Digite um nome");
200   - return;
201   - }
202   - if(i3GEOadmin.editor.tabela.verificaExiste(novaTabela) == false){
203   - core_carregando("adicionando...");
204   - core_makeRequest("../php/metaestat.php?funcao=copiaTabelaDB&formato=json&nome_tabela="+$i("i3GEOadmintabela").value+"&novonome_tabela="+novaTabela+"&nome_esquema="+nomeEsquema+"&codigo_estat_conexao="+$i("i3GEOadmincodigo_estat_conexao").value,callback);
  194 + novaTabela = window.prompt("Novo nome:","");
  195 + if (novaTabela!=null && novaTabela!=""){
  196 + if(i3GEOadmin.editor.tabela.verificaExiste(novaTabela) == false){
  197 + core_carregando("adicionando...");
  198 + core_makeRequest("../php/metaestat.php?funcao=copiaTabelaDB&formato=json&nome_tabela="+$i("i3GEOadmintabela").value+"&novonome_tabela="+novaTabela+"&nome_esquema="+nomeEsquema+"&codigo_estat_conexao="+$i("i3GEOadmincodigo_estat_conexao").value,callback);
  199 + }
  200 + else{
  201 + alert("Tabela ja existe");
  202 + }
205 203 }
206   - else{
207   - alert("Tabela ja existe");
  204 + },
  205 + mostrar: function(){
  206 + if($i("i3GEOadmintabela").value == ""){
  207 + alert("Escolha a tabela");
  208 + return;
208 209 }
  210 + var callback = {
  211 + success:function(o){
  212 + try {
  213 + core_carregando("desativa");
  214 + var dados = YAHOO.lang.JSON.parse(o.responseText),
  215 + ncolunas = dados.colunas.length,
  216 + linhas = dados.linhas,
  217 + nlinhas = linhas.length,
  218 + tabela = [],
  219 + i,j,l,w;
  220 + tabela.push("<head><body><table style='border:1px solid black'><tr>");
  221 + for(i=0;i<ncolunas;i++){
  222 + tabela.push("<td style='border:1px solid gray' >"+dados.colunas[i].field+"</td>");
  223 + }
  224 + tabela.push("</tr>");
  225 + for(i=0;i<nlinhas;i++){
  226 + tabela.push("<tr>");
  227 + l = linhas[i];
  228 + for(j=0;j<ncolunas;j++){
  229 + tabela.push("<td style='border:1px solid beige'>"+l[j]+"</td>");
  230 + }
  231 + tabela.push("</tr>");
  232 + }
  233 + tabela.push("</table></body></head>");
  234 + w = window.open();
  235 + w.document.write(tabela.join(""));
  236 + w.document.close();
  237 + }
  238 + catch(e){core_handleFailure(e,o.responseText);}
  239 + },
  240 + failure:core_handleFailure,
  241 + argument: { foo:"foo", bar:"bar" }
  242 + },
  243 + nomeEsquema = $i("i3GEOadminesquema").value;
  244 + core_carregando("obtendo dados...");
  245 + core_makeRequest("../php/metaestat.php?funcao=obtemDadosTabelaDB&formato=json&nome_tabela="+$i("i3GEOadmintabela").value+"&nome_esquema="+nomeEsquema+"&codigo_estat_conexao="+$i("i3GEOadmincodigo_estat_conexao").value,callback);
209 246 },
210 247 verificaExiste: function(valor){
211 248 var combo = $i("i3GEOadmintabela"),
... ... @@ -231,11 +268,8 @@ i3GEOadmin.editor = {
231 268 temp += core_comboObjeto(dados,"","");
232 269 temp += "</select>";
233 270 temp += "" +
234   - "<p>Digite um nome: <input id='i3GEOadmincolunaNomeNovo' title='digite o nome' type=text width=30 style='cursor:text' />" +
235   - "<p>Tipo (integer, numeric, text, geometry): <input id='i3GEOadmincolunaTipo' title='digite o tipo' type=text width=30 style='cursor:text' />" +
236   - "<p><input type=button value='Adicionar a nova coluna' id='i3GEOadmincolunaCriar' onclick='i3GEOadmin.editor.coluna.criar()'/>" +
237   - "<input type=button value='Alterar nome atual' id='i3GEOadmincolunaAlterarNome' onclick='i3GEOadmin.editor.coluna.alterarNome()'/>" +
238   - "<p>Digite um novo nome e um tipo caso queira criar uma nova coluna";
  271 + "<p><input type=button value='Adicionar uma nova coluna' id='i3GEOadmincolunaCriar' onclick='i3GEOadmin.editor.coluna.criar()'/>" +
  272 + "<input type=button value='Alterar o nome atual' id='i3GEOadmincolunaAlterarNome' onclick='i3GEOadmin.editor.coluna.alterarNome()'/>";
239 273 $i(i3GEOadmin.editor.coluna.onde).innerHTML = temp+"</fieldset>";
240 274 core_carregando("desativa");
241 275 }
... ... @@ -256,9 +290,6 @@ i3GEOadmin.editor = {
256 290 core_makeRequest("../php/metaestat.php?funcao=colunasTabela&formato=json&nome_tabela="+nome_tabela+"&nome_esquema="+nome_esquema+"&codigo_estat_conexao="+codigo_estat_conexao,callback);
257 291 },
258 292 criar: function(){
259   - if(!window.confirm("Cria nova coluna?")){
260   - return;
261   - }
262 293 var callback = {
263 294 success:function(o){
264 295 try {
... ... @@ -270,30 +301,30 @@ i3GEOadmin.editor = {
270 301 failure:core_handleFailure,
271 302 argument: { foo:"foo", bar:"bar" }
272 303 },
273   - novaColuna = $i("i3GEOadmincolunaNomeNovo").value,
274   - tipo = $i("i3GEOadmincolunaTipo").value,
  304 + novaColuna = "",
  305 + tipo = "",
275 306 nomeEsquema = $i("i3GEOadminesquema").value,
276 307 nomeTabela = $i("i3GEOadmintabela").value;
277 308 if(i3GEOadmin.editor.verificaEsquema(nomeEsquema) == false){
278 309 return;
279 310 }
280   - if(novaColuna == ""){
281   - alert("Digite um nome");
282   - return;
283   - }
284   - if(i3GEOadmin.editor.coluna.verificaExiste(novaColuna) == false){
285   - core_carregando("adicionando...");
286   - core_makeRequest("../php/metaestat.php?funcao=criaColunaDB&formato=json&tipo="+tipo+"&nova_coluna="+novaColuna+"&nome_tabela="+nomeTabela+"&nome_esquema="+nomeEsquema+"&codigo_estat_conexao="+$i("i3GEOadmincodigo_estat_conexao").value,callback);
287   - }
288   - else{
289   - alert("Coluna ja existe");
  311 +
  312 + novaColuna = window.prompt("Nome:","");
  313 + if (novaColuna!=null && novaColuna!=""){
  314 + tipo = window.prompt("Tipo (integer, numeric, text, geometry):","");
  315 + if (tipo!=null && tipo!=""){
  316 + if(i3GEOadmin.editor.coluna.verificaExiste(novaColuna) == false){
  317 + core_carregando("adicionando...");
  318 + core_makeRequest("../php/metaestat.php?funcao=criaColunaDB&formato=json&tipo="+tipo+"&nova_coluna="+novaColuna+"&nome_tabela="+nomeTabela+"&nome_esquema="+nomeEsquema+"&codigo_estat_conexao="+$i("i3GEOadmincodigo_estat_conexao").value,callback);
  319 + }
  320 + else{
  321 + alert("Coluna ja existe");
  322 + }
  323 + }
290 324 }
291 325 },
292 326 alterarNome: function(){
293   - if(!window.confirm("Altera o nome?")){
294   - return;
295   - }
296   - var callback = {
  327 + var novaColuna="",callback = {
297 328 success:function(o){
298 329 try {
299 330 core_carregando("desativa");
... ... @@ -304,22 +335,20 @@ i3GEOadmin.editor = {
304 335 failure:core_handleFailure,
305 336 argument: { foo:"foo", bar:"bar" }
306 337 },
307   - novaColuna = $i("i3GEOadmincolunaNomeNovo").value,
308 338 nomeEsquema = $i("i3GEOadminesquema").value,
309 339 nomeColuna = $i("i3GEOadmincoluna").value;
310   - if(i3GEOadmin.editor.verificaEsquema(nomeEsquema) == false){
311   - return;
312   - }
313   - if(novaColuna == ""){
314   - alert("Digite um nome");
315   - return;
316   - }
317   - if(i3GEOadmin.editor.coluna.verificaExiste(novaColuna) == false){
318   - core_carregando("adicionando...");
319   - core_makeRequest("../php/metaestat.php?funcao=alteraNomeColunaDB&formato=json&nome_coluna="+nomeColuna+"&nome_tabela="+$i("i3GEOadmintabela").value+"&novonome_coluna="+novaColuna+"&nome_esquema="+nomeEsquema+"&codigo_estat_conexao="+$i("i3GEOadmincodigo_estat_conexao").value,callback);
320   - }
321   - else{
322   - alert("Coluna ja existe");
  340 + novaColuna = window.prompt("Novo nome:","");
  341 + if (novaColuna!=null && novaColuna!=""){
  342 + if(i3GEOadmin.editor.verificaEsquema(nomeEsquema) == false){
  343 + return;
  344 + }
  345 + if(i3GEOadmin.editor.coluna.verificaExiste(novaColuna) == false){
  346 + core_carregando("adicionando...");
  347 + core_makeRequest("../php/metaestat.php?funcao=alteraNomeColunaDB&formato=json&nome_coluna="+nomeColuna+"&nome_tabela="+$i("i3GEOadmintabela").value+"&novonome_coluna="+novaColuna+"&nome_esquema="+nomeEsquema+"&codigo_estat_conexao="+$i("i3GEOadmincodigo_estat_conexao").value,callback);
  348 + }
  349 + else{
  350 + alert("Coluna ja existe");
  351 + }
323 352 }
324 353 },
325 354 verificaExiste: function(valor){
... ...
admin/php/classe_metaestat.php
... ... @@ -1430,6 +1430,19 @@ class Metaestat{
1430 1430 function descreveColunasTabela($codigo_estat_conexao,$nome_esquema,$nome_tabela){
1431 1431 return $this->execSQLDB($codigo_estat_conexao,"SELECT a.attnum,a.attname AS field,t.typname AS type,a.attlen AS length,a.atttypmod AS lengthvar,a.attnotnull AS notnull,p.nspname as esquema FROM pg_class c,pg_attribute a,pg_type t,pg_namespace p WHERE c.relname = '$nome_tabela' and p.nspname = '$nome_esquema' and a.attnum > 0 and a.attrelid = c.oid and a.atttypid = t.oid and c.relnamespace = p.oid ORDER BY a.attname");
1432 1432 }
  1433 + function obtemDadosTabelaDB($codigo_estat_conexao,$nome_esquema,$nome_tabela){
  1434 + $colunas = $this->descreveColunasTabela($codigo_estat_conexao, $nome_esquema, $nome_tabela);
  1435 + $dados = $this->execSQLDB($codigo_estat_conexao,"SELECT * from ".$nome_esquema.".".$nome_tabela );
  1436 + $linhas = array();
  1437 + foreach($dados as $d){
  1438 + $l = array();
  1439 + foreach($colunas as $c){
  1440 + $l[] = $d[$c["field"]];
  1441 + }
  1442 + $linhas[] = $l;
  1443 + }
  1444 + return array("colunas"=>$colunas,"linhas"=>$linhas);
  1445 + }
1433 1446 function relatorioCompleto($codigo_variavel="",$dadosGerenciais="nao"){
1434 1447 $dados = array();
1435 1448 if($codigo_variavel != "" || !empty($codigo_variavel)){
... ...
admin/php/metaestat.php
... ... @@ -73,6 +73,7 @@ $funcoesEdicao = array(
73 73 "COPIATABELADB",
74 74 "CRIACOLUNADB",
75 75 "ALTERANOMECOLUNADB",
  76 + "OBTEMDADOSTABELADB",
76 77 "INSERIRDADOS",
77 78 "MANTEMDADOSREGIAO",
78 79 "SALVAATRIBUTOSMEDIDAVARIAVEL",
... ... @@ -1150,6 +1151,11 @@ switch (strtoupper($funcao))
1150 1151 retornaJSON($m->alteraNomeColunaDB($codigo_estat_conexao,$nome_esquema,$nome_tabela,$nome_coluna,$novonome_coluna));
1151 1152 exit;
1152 1153 break;
  1154 + case "OBTEMDADOSTABELADB":
  1155 + $m = new Metaestat();
  1156 + retornaJSON($m->obtemDadosTabelaDB($codigo_estat_conexao,$nome_esquema,$nome_tabela));
  1157 + exit;
  1158 + break;
1153 1159 /*
1154 1160 Valor: DESCREVECOLUNASTABELA
1155 1161  
... ...