From 67023747268162950c48e1a3654e3c54dca7f126 Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Mon, 17 Dec 2012 23:20:58 +0000 Subject: [PATCH] Inclusão da listagem de dados no editor de tabelas do sistema metaestat --- admin/js/estat_editor.js | 191 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------------------------------------- admin/php/classe_metaestat.php | 13 +++++++++++++ admin/php/metaestat.php | 6 ++++++ 3 files changed, 129 insertions(+), 81 deletions(-) diff --git a/admin/js/estat_editor.js b/admin/js/estat_editor.js index 9e0d480..94c62e5 100644 --- a/admin/js/estat_editor.js +++ b/admin/js/estat_editor.js @@ -17,7 +17,7 @@ i3GEOadmin.editor = { verificaEsquema: function(nomeEsquema){ if(nomeEsquema != "i3geo_metaestat"){ alert("Operacao permitida apenas para o esquema i3geo_metaestat"); - return; + return false; } }, conexao:{ @@ -86,11 +86,10 @@ i3GEOadmin.editor = { temp += core_comboObjeto(dados,"tabela","tabela"); temp += ""; temp += "" + - "

Digite um nome: " + - "

" + - "" + - ""; - + "

" + + "" + + "" + + ""; $i(i3GEOadmin.editor.tabela.onde).innerHTML = temp+""; core_carregando("desativa"); $i(i3GEOadmin.editor.coluna.onde).innerHTML = ""; @@ -112,9 +111,6 @@ i3GEOadmin.editor = { core_makeRequest("../php/metaestat.php?funcao=tabelasEsquema&formato=json&nome_esquema="+nome_esquema+"&codigo_estat_conexao="+codigo_estat_conexao,callback); }, criar: function(){ - if(!window.confirm("Cria nova tabela?")){ - return; - } var callback = { success:function(o){ try { @@ -126,25 +122,25 @@ i3GEOadmin.editor = { failure:core_handleFailure, argument: { foo:"foo", bar:"bar" } }, - novaTabela = $i("i3GEOadmintabelaNomeNovo").value, + novaTabela = "", nomeEsquema = $i("i3GEOadminesquema").value; if(i3GEOadmin.editor.verificaEsquema(nomeEsquema) == false){ return; } - if(novaTabela == ""){ - alert("Digite um nome"); - return; - } - if(i3GEOadmin.editor.tabela.verificaExiste(novaTabela) == false){ - core_carregando("adicionando..."); - core_makeRequest("../php/metaestat.php?funcao=criaTabelaDB&formato=json&nome_tabela="+novaTabela+"&nome_esquema="+nomeEsquema+"&codigo_estat_conexao="+$i("i3GEOadmincodigo_estat_conexao").value,callback); - } - else{ - alert("Tabela ja existe"); + novaTabela = window.prompt("Novo nome:",""); + if (novaTabela!=null && novaTabela!=""){ + if(i3GEOadmin.editor.tabela.verificaExiste(novaTabela) == false){ + core_carregando("adicionando..."); + core_makeRequest("../php/metaestat.php?funcao=criaTabelaDB&formato=json&nome_tabela="+novaTabela+"&nome_esquema="+nomeEsquema+"&codigo_estat_conexao="+$i("i3GEOadmincodigo_estat_conexao").value,callback); + } + else{ + alert("Tabela ja existe"); + } } }, alterarNome: function(){ - if(!window.confirm("Altera o nome?")){ + if($i("i3GEOadmintabela").value == ""){ + alert("Escolha a tabela"); return; } var callback = { @@ -158,25 +154,25 @@ i3GEOadmin.editor = { failure:core_handleFailure, argument: { foo:"foo", bar:"bar" } }, - novaTabela = $i("i3GEOadmintabelaNomeNovo").value, + novaTabela = "", nomeEsquema = $i("i3GEOadminesquema").value; if(i3GEOadmin.editor.verificaEsquema(nomeEsquema) == false){ return; } - if(novaTabela == ""){ - alert("Digite um nome"); - return; - } - if(i3GEOadmin.editor.tabela.verificaExiste(novaTabela) == false){ - core_carregando("adicionando..."); - 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); - } - else{ - alert("Tabela ja existe"); + novaTabela = window.prompt("Novo nome:",""); + if (novaTabela!=null && novaTabela!=""){ + if(i3GEOadmin.editor.tabela.verificaExiste(novaTabela) == false){ + core_carregando("adicionando..."); + 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); + } + else{ + alert("Tabela ja existe"); + } } }, copiar: function(){ - if(!window.confirm("Copiar tabela?")){ + if($i("i3GEOadmintabela").value == ""){ + alert("Escolha a tabela"); return; } var callback = { @@ -190,22 +186,63 @@ i3GEOadmin.editor = { failure:core_handleFailure, argument: { foo:"foo", bar:"bar" } }, - novaTabela = $i("i3GEOadmintabelaNomeNovo").value, + novaTabela = "", nomeEsquema = $i("i3GEOadminesquema").value; if(i3GEOadmin.editor.verificaEsquema(nomeEsquema) == false){ return; } - if(novaTabela == ""){ - alert("Digite um nome"); - return; - } - if(i3GEOadmin.editor.tabela.verificaExiste(novaTabela) == false){ - core_carregando("adicionando..."); - 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); + novaTabela = window.prompt("Novo nome:",""); + if (novaTabela!=null && novaTabela!=""){ + if(i3GEOadmin.editor.tabela.verificaExiste(novaTabela) == false){ + core_carregando("adicionando..."); + 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); + } + else{ + alert("Tabela ja existe"); + } } - else{ - alert("Tabela ja existe"); + }, + mostrar: function(){ + if($i("i3GEOadmintabela").value == ""){ + alert("Escolha a tabela"); + return; } + var callback = { + success:function(o){ + try { + core_carregando("desativa"); + var dados = YAHOO.lang.JSON.parse(o.responseText), + ncolunas = dados.colunas.length, + linhas = dados.linhas, + nlinhas = linhas.length, + tabela = [], + i,j,l,w; + tabela.push(""); + for(i=0;i"+dados.colunas[i].field+""); + } + tabela.push(""); + for(i=0;i"); + l = linhas[i]; + for(j=0;j"+l[j]+""); + } + tabela.push(""); + } + tabela.push("
"); + w = window.open(); + w.document.write(tabela.join("")); + w.document.close(); + } + catch(e){core_handleFailure(e,o.responseText);} + }, + failure:core_handleFailure, + argument: { foo:"foo", bar:"bar" } + }, + nomeEsquema = $i("i3GEOadminesquema").value; + core_carregando("obtendo dados..."); + 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); }, verificaExiste: function(valor){ var combo = $i("i3GEOadmintabela"), @@ -231,11 +268,8 @@ i3GEOadmin.editor = { temp += core_comboObjeto(dados,"",""); temp += ""; temp += "" + - "

Digite um nome: " + - "

Tipo (integer, numeric, text, geometry): " + - "

" + - "" + - "

Digite um novo nome e um tipo caso queira criar uma nova coluna"; + "

" + + ""; $i(i3GEOadmin.editor.coluna.onde).innerHTML = temp+""; core_carregando("desativa"); } @@ -256,9 +290,6 @@ i3GEOadmin.editor = { core_makeRequest("../php/metaestat.php?funcao=colunasTabela&formato=json&nome_tabela="+nome_tabela+"&nome_esquema="+nome_esquema+"&codigo_estat_conexao="+codigo_estat_conexao,callback); }, criar: function(){ - if(!window.confirm("Cria nova coluna?")){ - return; - } var callback = { success:function(o){ try { @@ -270,30 +301,30 @@ i3GEOadmin.editor = { failure:core_handleFailure, argument: { foo:"foo", bar:"bar" } }, - novaColuna = $i("i3GEOadmincolunaNomeNovo").value, - tipo = $i("i3GEOadmincolunaTipo").value, + novaColuna = "", + tipo = "", nomeEsquema = $i("i3GEOadminesquema").value, nomeTabela = $i("i3GEOadmintabela").value; if(i3GEOadmin.editor.verificaEsquema(nomeEsquema) == false){ return; } - if(novaColuna == ""){ - alert("Digite um nome"); - return; - } - if(i3GEOadmin.editor.coluna.verificaExiste(novaColuna) == false){ - core_carregando("adicionando..."); - 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); - } - else{ - alert("Coluna ja existe"); + + novaColuna = window.prompt("Nome:",""); + if (novaColuna!=null && novaColuna!=""){ + tipo = window.prompt("Tipo (integer, numeric, text, geometry):",""); + if (tipo!=null && tipo!=""){ + if(i3GEOadmin.editor.coluna.verificaExiste(novaColuna) == false){ + core_carregando("adicionando..."); + 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); + } + else{ + alert("Coluna ja existe"); + } + } } }, alterarNome: function(){ - if(!window.confirm("Altera o nome?")){ - return; - } - var callback = { + var novaColuna="",callback = { success:function(o){ try { core_carregando("desativa"); @@ -304,22 +335,20 @@ i3GEOadmin.editor = { failure:core_handleFailure, argument: { foo:"foo", bar:"bar" } }, - novaColuna = $i("i3GEOadmincolunaNomeNovo").value, nomeEsquema = $i("i3GEOadminesquema").value, nomeColuna = $i("i3GEOadmincoluna").value; - if(i3GEOadmin.editor.verificaEsquema(nomeEsquema) == false){ - return; - } - if(novaColuna == ""){ - alert("Digite um nome"); - return; - } - if(i3GEOadmin.editor.coluna.verificaExiste(novaColuna) == false){ - core_carregando("adicionando..."); - 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); - } - else{ - alert("Coluna ja existe"); + novaColuna = window.prompt("Novo nome:",""); + if (novaColuna!=null && novaColuna!=""){ + if(i3GEOadmin.editor.verificaEsquema(nomeEsquema) == false){ + return; + } + if(i3GEOadmin.editor.coluna.verificaExiste(novaColuna) == false){ + core_carregando("adicionando..."); + 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); + } + else{ + alert("Coluna ja existe"); + } } }, verificaExiste: function(valor){ diff --git a/admin/php/classe_metaestat.php b/admin/php/classe_metaestat.php index fad4911..7cccae0 100755 --- a/admin/php/classe_metaestat.php +++ b/admin/php/classe_metaestat.php @@ -1430,6 +1430,19 @@ class Metaestat{ function descreveColunasTabela($codigo_estat_conexao,$nome_esquema,$nome_tabela){ 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"); } + function obtemDadosTabelaDB($codigo_estat_conexao,$nome_esquema,$nome_tabela){ + $colunas = $this->descreveColunasTabela($codigo_estat_conexao, $nome_esquema, $nome_tabela); + $dados = $this->execSQLDB($codigo_estat_conexao,"SELECT * from ".$nome_esquema.".".$nome_tabela ); + $linhas = array(); + foreach($dados as $d){ + $l = array(); + foreach($colunas as $c){ + $l[] = $d[$c["field"]]; + } + $linhas[] = $l; + } + return array("colunas"=>$colunas,"linhas"=>$linhas); + } function relatorioCompleto($codigo_variavel="",$dadosGerenciais="nao"){ $dados = array(); if($codigo_variavel != "" || !empty($codigo_variavel)){ diff --git a/admin/php/metaestat.php b/admin/php/metaestat.php index 216a5f1..ed48e08 100644 --- a/admin/php/metaestat.php +++ b/admin/php/metaestat.php @@ -73,6 +73,7 @@ $funcoesEdicao = array( "COPIATABELADB", "CRIACOLUNADB", "ALTERANOMECOLUNADB", + "OBTEMDADOSTABELADB", "INSERIRDADOS", "MANTEMDADOSREGIAO", "SALVAATRIBUTOSMEDIDAVARIAVEL", @@ -1150,6 +1151,11 @@ switch (strtoupper($funcao)) retornaJSON($m->alteraNomeColunaDB($codigo_estat_conexao,$nome_esquema,$nome_tabela,$nome_coluna,$novonome_coluna)); exit; break; + case "OBTEMDADOSTABELADB": + $m = new Metaestat(); + retornaJSON($m->obtemDadosTabelaDB($codigo_estat_conexao,$nome_esquema,$nome_tabela)); + exit; + break; /* Valor: DESCREVECOLUNASTABELA -- libgit2 0.21.2