From 37c3e4e982c330cda7d43dae2328e330162b804a Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Tue, 28 May 2013 14:24:31 +0000 Subject: [PATCH] Inclusão de filtro para listar apenas as colunas de um determinado tipo nos formulários do METAESTAT --- admin/js/estat_tipo_regiao.js | 49 ++++++++++++++++++++++++++----------------------- admin/php/classe_metaestat.php | 7 +++++-- admin/php/metaestat.php | 5 ++++- 3 files changed, 35 insertions(+), 26 deletions(-) diff --git a/admin/js/estat_tipo_regiao.js b/admin/js/estat_tipo_regiao.js index ac24921..cb7b94a 100755 --- a/admin/js/estat_tipo_regiao.js +++ b/admin/js/estat_tipo_regiao.js @@ -58,25 +58,25 @@ function montaTabela(dados){ elCell.innerHTML = "
"; }, myColumnDefs = [ - {key:"excluir",label:"excluir",formatter:formatExclui}, - {key:"shapefile",label:"download",formatter:formatShp}, - {key:"rel",label:"agregações",formatter:formatRel}, - {key:"mais",label:"propriedades",formatter:formatMais}, - {label:"código",key:"codigo_tipo_regiao", formatter:formatTexto}, - {label:"Nome",resizeable:true,key:"nome_tipo_regiao", formatter:formatTexto}, - {label:"Descrição",resizeable:true,key:"descricao_tipo_regiao", formatter:formatTexto}, - {label:"Conexão",key:"codigo_estat_conexao",formatter:formatTexto}, - {label:"Esquema",key:"esquemadb",formatter:formatTexto}, - {label:"Tabela",key:"tabela",formatter:formatTexto}, - {label:"Geometria",key:"colunageo",formatter:formatTexto}, - {label:"Centróide",key:"colunacentroide",formatter:formatTexto}, - {label:"Data",key:"data",formatter:formatTexto}, - {label:"Região",key:"identificador",formatter:formatTexto}, - {label:"Nomes",resizeable:false,key:"colunanomeregiao",formatter:formatTexto}, - {label:"Colunas visíveis (separa com vírgula)",resizeable:false,key:"colunasvisiveis",formatter:formatTexto}, - {label:"Apelidos",resizeable:false,key:"apelidos",formatter:formatTexto}, - {label:"SRID",key:"srid",formatter:formatTexto} - ]; + {key:"excluir",label:"excluir",formatter:formatExclui}, + {key:"shapefile",label:"download",formatter:formatShp}, + {key:"rel",label:"agregações",formatter:formatRel}, + {key:"mais",label:"propriedades",formatter:formatMais}, + {label:"código",key:"codigo_tipo_regiao", formatter:formatTexto}, + {label:"Nome",resizeable:true,key:"nome_tipo_regiao", formatter:formatTexto}, + {label:"Descrição",resizeable:true,key:"descricao_tipo_regiao", formatter:formatTexto}, + {label:"Conexão",key:"codigo_estat_conexao",formatter:formatTexto}, + {label:"Esquema",key:"esquemadb",formatter:formatTexto}, + {label:"Tabela",key:"tabela",formatter:formatTexto}, + {label:"Geometria",key:"colunageo",formatter:formatTexto}, + {label:"Centróide",key:"colunacentroide",formatter:formatTexto}, + {label:"Data",key:"data",formatter:formatTexto}, + {label:"Região",key:"identificador",formatter:formatTexto}, + {label:"Nomes",resizeable:false,key:"colunanomeregiao",formatter:formatTexto}, + {label:"Colunas visíveis (separa com vírgula)",resizeable:false,key:"colunasvisiveis",formatter:formatTexto}, + {label:"Apelidos",resizeable:false,key:"apelidos",formatter:formatTexto}, + {label:"SRID",key:"srid",formatter:formatTexto} + ]; myDataSource = new YAHOO.util.DataSource(dados); myDataTable = new YAHOO.widget.ScrollingDataTable("tabela", myColumnDefs, myDataSource,{width:"100%"}); @@ -280,8 +280,8 @@ function montaDiv(i){ {titulo:"Código da conexão com o banco:",id:"",size:"50",value:i.codigo_estat_conexao,tipo:"text",div:"
"}, {titulo:"Esquema no banco de dados: ",id:"Eesquemadb",size:"50",value:i.esquemadb,tipo:"text",div:""}, {titulo:"Tabela: ",id:"Etabela",size:"50",value:i.tabela,tipo:"text",div:""}, - {titulo:"Coluna com a geometria principal (normalmente poligonal): ",id:"Ecolunageo",size:"50",value:i.colunageo,tipo:"text",div:""}, - {titulo:"Coluna com pontos (pode ser a mesmo que a anterior):",id:"Ecolunacentroide",size:"50",value:i.colunacentroide,tipo:"text",div:""}, + {titulo:"Coluna com a geometria principal (normalmente poligonal): ",id:"Ecolunageo",size:"50",value:i.colunageo,tipo:"text",div:""}, + {titulo:"Coluna com pontos (pode ser a mesmo que a anterior):",id:"Ecolunacentroide",size:"50",value:i.colunacentroide,tipo:"text",div:""}, {titulo:"Data a qual se referem os dados:",id:"Edata",size:"50",value:i.data,tipo:"text",div:""}, {titulo:"Coluna com o código de cada registro:",id:"Eidentificador",size:"50",value:i.identificador,tipo:"text",div:""}, {titulo:"Coluna com o nome do limite geográfico:",id:"Ecolunanomeregiao",size:"50",value:i.colunanomeregiao,tipo:"text",div:""}, @@ -445,7 +445,10 @@ function selTabela(idEleValue,idEleCodigoConexao,idEleNomeEsquema){ } core_makeRequest(i3GEO.configura.locaplic+"/admin/php/metaestat.php?funcao=tabelasEsquema&formato=json&codigo_estat_conexao="+eleCodigoConexao.value+"&nome_esquema="+eleNomeEsquema.value,callback); } -function selColuna(idEleValue,idEleCodigoConexao,idEleNomeEsquema,idEleNomeTabela){ +function selColuna(idEleValue,idEleCodigoConexao,idEleNomeEsquema,idEleNomeTabela,tipo){ + if(!tipo){ + tipo = ""; + } var eleValue = $i(idEleValue), eleCodigoConexao = $i(idEleCodigoConexao), eleNomeEsquema = $i(idEleNomeEsquema), @@ -473,7 +476,7 @@ function selColuna(idEleValue,idEleCodigoConexao,idEleNomeEsquema,idEleNomeTabel if(!eleValue || !eleCodigoConexao || !eleNomeEsquema || !eleNomeTabela){ return; } - core_makeRequest(i3GEO.configura.locaplic+"/admin/php/metaestat.php?funcao=colunasTabela&formato=json&codigo_estat_conexao="+eleCodigoConexao.value+"&nome_esquema="+eleNomeEsquema.value+"&nome_tabela="+eleNomeTabela.value,callback); + core_makeRequest(i3GEO.configura.locaplic+"/admin/php/metaestat.php?funcao=colunasTabela&tipo="+tipo+"&formato=json&codigo_estat_conexao="+eleCodigoConexao.value+"&nome_esquema="+eleNomeEsquema.value+"&nome_tabela="+eleNomeTabela.value,callback); } //YAHOO.util.Event.addListener(window, "load", initMenu); \ No newline at end of file diff --git a/admin/php/classe_metaestat.php b/admin/php/classe_metaestat.php index b7ff914..b97eab6 100755 --- a/admin/php/classe_metaestat.php +++ b/admin/php/classe_metaestat.php @@ -1704,9 +1704,12 @@ class Metaestat{ function copiaTabelaDB($codigo_estat_conexao,$nome_esquema,$nome_tabela,$novonome_tabela){ return $this->execSQLDB($codigo_estat_conexao,"CREATE TABLE ".$nome_esquema.".".$novonome_tabela." AS select * from ".$nome_esquema.".".$nome_tabela ); } - function colunasTabela($codigo_estat_conexao,$nome_esquema,$nome_tabela){ + function colunasTabela($codigo_estat_conexao,$nome_esquema,$nome_tabela,$tipo=""){ $colunas = array(); - $res = $this->execSQLDB($codigo_estat_conexao,"SELECT column_name as coluna FROM information_schema.columns where table_schema = '$nome_esquema' and table_name = '$nome_tabela'"); + $res = $this->execSQLDB($codigo_estat_conexao,"SELECT column_name as coluna,udt_name FROM information_schema.columns where table_schema = '$nome_esquema' and table_name = '$nome_tabela'"); + if($tipo != ""){ + $res = $this->execSQLDB($codigo_estat_conexao,"SELECT column_name as coluna,udt_name FROM information_schema.columns where table_schema = '$nome_esquema' and udt_name = '$tipo' and table_name = '$nome_tabela'"); + } foreach($res as $c){ $colunas[] = $c["coluna"]; } diff --git a/admin/php/metaestat.php b/admin/php/metaestat.php index 84965b6..a34cd9c 100644 --- a/admin/php/metaestat.php +++ b/admin/php/metaestat.php @@ -1334,8 +1334,11 @@ switch (strtoupper($funcao)) */ case "COLUNASTABELA": $m = new Metaestat(); + if(empty($tipo)){ + $tipo = ""; + } if($formato == "json"){ - retornaJSON($m->colunasTabela($codigo_estat_conexao,$nome_esquema,$nome_tabela)); + retornaJSON($m->colunasTabela($codigo_estat_conexao,$nome_esquema,$nome_tabela,$tipo)); } exit; break; -- libgit2 0.21.2