Commit 6ecd7e9a4ffde4b46c272b7b5aa752ab3f232fb8

Authored by Edmar Moretti
1 parent 6f7a7286

Inclusão de opção para visualizar e incluir comentários em tabelas criadas usand…

…o o sistema de administração
admin/js/estat_editor.js
@@ -252,11 +252,12 @@ i3GEOadmin.editor = { @@ -252,11 +252,12 @@ i3GEOadmin.editor = {
252 if(i3GEOadmin.editor.verificaEsquema(nomeEsquema) == false){ 252 if(i3GEOadmin.editor.verificaEsquema(nomeEsquema) == false){
253 return; 253 return;
254 } 254 }
255 - novaTabela = window.prompt("Novo nome:",""); 255 + novaTabela = window.prompt("Nome da tabela:","");
  256 + comentarioTabela = window.prompt("Comentario (opcional):","");
256 if (novaTabela!=null && novaTabela!=""){ 257 if (novaTabela!=null && novaTabela!=""){
257 if(i3GEOadmin.editor.tabela.verificaExiste(novaTabela) == false){ 258 if(i3GEOadmin.editor.tabela.verificaExiste(novaTabela) == false){
258 core_carregando("adicionando..."); 259 core_carregando("adicionando...");
259 - core_makeRequest("../php/metaestat.php?funcao=criaTabelaDB&formato=json&nome_tabela="+novaTabela+"&nome_esquema="+nomeEsquema+"&codigo_estat_conexao="+$i("i3GEOadmincodigo_estat_conexao").value,callback); 260 + core_makeRequest("../php/metaestat.php?funcao=criaTabelaDB&formato=json&comentario="+comentarioTabela+"&nome_tabela="+novaTabela+"&nome_esquema="+nomeEsquema+"&codigo_estat_conexao="+$i("i3GEOadmincodigo_estat_conexao").value,callback);
260 } 261 }
261 else{ 262 else{
262 alert("Tabela ja existe"); 263 alert("Tabela ja existe");
@@ -398,9 +399,11 @@ i3GEOadmin.editor = { @@ -398,9 +399,11 @@ i3GEOadmin.editor = {
398 success:function(o){ 399 success:function(o){
399 try { 400 try {
400 var dados = YAHOO.lang.JSON.parse(o.responseText), 401 var dados = YAHOO.lang.JSON.parse(o.responseText),
401 - temp = "<fieldset><p>Escolha uma coluna: "; 402 + temp = "<fieldset>" ;
  403 + temp += "<p>Coment&aacute;rio registrado na tabela: "+dados["comentario"];
  404 + temp += "<p>Escolha uma coluna: ";
402 temp += "<select id='i3GEOadmincoluna' >"; 405 temp += "<select id='i3GEOadmincoluna' >";
403 - temp += core_comboObjeto(dados,"",""); 406 + temp += core_comboObjeto(dados["colunas"],"","");
404 temp += "</select></p>"; 407 temp += "</select></p>";
405 temp += "" + 408 temp += "" +
406 "<p class=paragrafo ><input type=button value='Adicionar uma nova coluna' id='i3GEOadmincolunaCriar' />" + 409 "<p class=paragrafo ><input type=button value='Adicionar uma nova coluna' id='i3GEOadmincolunaCriar' />" +
@@ -430,7 +433,7 @@ i3GEOadmin.editor = { @@ -430,7 +433,7 @@ i3GEOadmin.editor = {
430 return; 433 return;
431 } 434 }
432 core_carregando("adicionando..."); 435 core_carregando("adicionando...");
433 - core_makeRequest("../php/metaestat.php?funcao=colunasTabela&formato=json&nome_tabela="+nome_tabela+"&nome_esquema="+nome_esquema+"&codigo_estat_conexao="+codigo_estat_conexao,callback); 436 + core_makeRequest("../php/metaestat.php?funcao=infoTabela&formato=json&nome_tabela="+nome_tabela+"&nome_esquema="+nome_esquema+"&codigo_estat_conexao="+codigo_estat_conexao,callback);
434 }, 437 },
435 criar: function(){ 438 criar: function(){
436 var callback = { 439 var callback = {
@@ -530,7 +533,7 @@ i3GEOadmin.editor = { @@ -530,7 +533,7 @@ i3GEOadmin.editor = {
530 $i("outsrid").value = obj.value; 533 $i("outsrid").value = obj.value;
531 }, 534 },
532 formulario: function(){ 535 formulario: function(){
533 - var ins = '' + 536 + var ins = '' +
534 '<form id=i3GEOuploadf target="i3GEOuploadiframe" action="../php/metaestat_uploadshp_submit.php" method="post" ENCTYPE="multipart/form-data">' + 537 '<form id=i3GEOuploadf target="i3GEOuploadiframe" action="../php/metaestat_uploadshp_submit.php" method="post" ENCTYPE="multipart/form-data">' +
535 '<fieldset class=subbloco >' + 538 '<fieldset class=subbloco >' +
536 '<p class="paragrafo" >shp: <br><input type="file" size=22 name="i3GEOuploadshp" style="top:0px;left:0px;cursor:pointer;"></p>' + 539 '<p class="paragrafo" >shp: <br><input type="file" size=22 name="i3GEOuploadshp" style="top:0px;left:0px;cursor:pointer;"></p>' +
@@ -546,6 +549,8 @@ i3GEOadmin.editor = { @@ -546,6 +549,8 @@ i3GEOadmin.editor = {
546 '</select></p>' + 549 '</select></p>' +
547 '</fieldset>' + 550 '</fieldset>' +
548 '<fieldset class=subbloco >' + 551 '<fieldset class=subbloco >' +
  552 + '<p class="paragrafo" >Coment&aacute;rio:</p>' +
  553 + '<textarea name="comentarioShp" rows="5" cols="70" ></textarea>' +
549 '<p class="paragrafo" >Tipo de opera&ccedil;&atilde;o:</p>' + 554 '<p class="paragrafo" >Tipo de opera&ccedil;&atilde;o:</p>' +
550 '<select id=i3GEOtipoOperacao name=tipoOperacao >' + 555 '<select id=i3GEOtipoOperacao name=tipoOperacao >' +
551 '<option value=criar >Criar a tabela nova e incluir registros do SHP</option>' + 556 '<option value=criar >Criar a tabela nova e incluir registros do SHP</option>' +
@@ -622,6 +627,8 @@ i3GEOadmin.editor = { @@ -622,6 +627,8 @@ i3GEOadmin.editor = {
622 '</select></p>' + 627 '</select></p>' +
623 '</fieldset>' + 628 '</fieldset>' +
624 '<fieldset class=subbloco >' + 629 '<fieldset class=subbloco >' +
  630 + '<p class="paragrafo" >Coment&aacute;rio:</p>' +
  631 + '<textarea name="comentarioCsv" rows="5" cols="70" ></textarea>' +
625 '<p class="paragrafo" >Tipo de opera&ccedil;&atilde;o:</p>' + 632 '<p class="paragrafo" >Tipo de opera&ccedil;&atilde;o:</p>' +
626 '<select id=i3GEOtipoOperacaocsv name=tipoOperacao >' + 633 '<select id=i3GEOtipoOperacaocsv name=tipoOperacao >' +
627 '<option value=criar >Criar a tabela nova e incluir registros do CSV</option>' + 634 '<option value=criar >Criar a tabela nova e incluir registros do CSV</option>' +
admin/menu.html
@@ -114,7 +114,7 @@ @@ -114,7 +114,7 @@
114 href: "html/estat_fonteinfo.html", 114 href: "html/estat_fonteinfo.html",
115 target: "principal" 115 target: "principal"
116 },{ 116 },{
117 - label: "Gerenciador de tabelas de dados estatísticos (upload de SHP e CSV)", 117 + label: "Gerenciador de banco de dados, upload de SHP e CSV",
118 type: "text", 118 type: "text",
119 href: "html/estat_editor.html", 119 href: "html/estat_editor.html",
120 target: "principal" 120 target: "principal"
admin/php/classe_metaestat.php
@@ -2181,8 +2181,17 @@ class Metaestat{ @@ -2181,8 +2181,17 @@ class Metaestat{
2181 * @param nome da tabela 2181 * @param nome da tabela
2182 * @return execSQLDB 2182 * @return execSQLDB
2183 */ 2183 */
2184 - function criaTabelaDB($codigo_estat_conexao,$nome_esquema,$nome_tabela){  
2185 - return $this->execSQLDB($codigo_estat_conexao,"create table ".$nome_esquema.".".$nome_tabela." (gid serial, CONSTRAINT ".$nome_tabela."_pkey PRIMARY KEY (gid ))"); 2184 + function criaTabelaDB($codigo_estat_conexao,$nome_esquema,$nome_tabela,$comentario=""){
  2185 +
  2186 + $res = $this->execSQLDB($codigo_estat_conexao,"create table ".$nome_esquema.".".$nome_tabela." (gid serial, CONSTRAINT ".$nome_tabela."_pkey PRIMARY KEY (gid ))");
  2187 + //echo "COMMENT ON TABLE ".$nome_esquema.".".$nome_tabela." IS '".$comentario."'";exit;
  2188 + if($comentario != ""){
  2189 + if($this->convUTF){
  2190 + $comentario = utf8_encode($comentario);
  2191 + }
  2192 + $com = $this->execSQLDB($codigo_estat_conexao,"COMMENT ON TABLE ".$nome_esquema.".".$nome_tabela." IS '".$comentario."'");
  2193 + }
  2194 + return $res;
2186 } 2195 }
2187 /** 2196 /**
2188 * ALtera o nome de uma tabela 2197 * ALtera o nome de uma tabela
@@ -2229,7 +2238,7 @@ class Metaestat{ @@ -2229,7 +2238,7 @@ class Metaestat{
2229 return $res; 2238 return $res;
2230 } 2239 }
2231 /** 2240 /**
2232 - * Lista as colunas de uma tabela e seus metadados 2241 + * Lista as colunas de uma tabela
2233 * @param codigo da conexao 2242 * @param codigo da conexao
2234 * @param nome do esquema 2243 * @param nome do esquema
2235 * @param nome da tabela 2244 * @param nome da tabela
@@ -2248,6 +2257,29 @@ class Metaestat{ @@ -2248,6 +2257,29 @@ class Metaestat{
2248 } 2257 }
2249 return $colunas; 2258 return $colunas;
2250 } 2259 }
  2260 + /**
  2261 + * Lista o comentario de uma tabela
  2262 + * @param codigo da conexao
  2263 + * @param nome do esquema
  2264 + * @param nome da tabela
  2265 + * @return execSQLDB
  2266 + */
  2267 + function comentarioTabela($codigo_estat_conexao,$nome_esquema,$nome_tabela){
  2268 + $colunas = array();
  2269 + $sql = "SELECT pg_catalog.obj_description(c.oid, 'pg_class') AS comments FROM pg_catalog.pg_class c LEFT JOIN pg_catalog.pg_namespace n ON (n.oid = c.relnamespace) WHERE n.nspname = '".$nome_esquema."' AND c.relname = '".$nome_tabela."'";
  2270 + $res = $this->execSQLDB($codigo_estat_conexao,$sql);
  2271 + if(count($res) > 0){
  2272 + $res = $res[0];
  2273 + $res = $res["comments"];
  2274 + }
  2275 + else{
  2276 + $res = "";
  2277 + }
  2278 + if($res == null){
  2279 + $res = "";
  2280 + }
  2281 + return $res;
  2282 + }
2251 /** 2283 /**
2252 * Cria uma coluna em uma tabela do banco 2284 * Cria uma coluna em uma tabela do banco
2253 * @param codigo da conexao 2285 * @param codigo da conexao
@@ -2301,7 +2333,7 @@ class Metaestat{ @@ -2301,7 +2333,7 @@ class Metaestat{
2301 } 2333 }
2302 /** 2334 /**
2303 * Lista os metadados de uma coluna 2335 * Lista os metadados de uma coluna
2304 - * Os metadados s�o obtidos do pr�prio PostgreSQL 2336 + * Os metadados sao obtidos do proprio PostgreSQL
2305 * @param codigo da conexao 2337 * @param codigo da conexao
2306 * @param nome do esquema 2338 * @param nome do esquema
2307 * @param nome da tabela 2339 * @param nome da tabela
admin/php/metaestat.php
@@ -90,7 +90,8 @@ $funcoesEdicao = array( @@ -90,7 +90,8 @@ $funcoesEdicao = array(
90 "REGIAO2SHP", 90 "REGIAO2SHP",
91 "ESQUEMASCONEXAO", 91 "ESQUEMASCONEXAO",
92 "TABELASESQUEMA", 92 "TABELASESQUEMA",
93 - "ALTERAESTILOSCLASSIFICACAO" 93 + "ALTERAESTILOSCLASSIFICACAO",
  94 + "INFOTABELA"
94 ); 95 );
95 if(in_array(strtoupper($funcao),$funcoesEdicao)){ 96 if(in_array(strtoupper($funcao),$funcoesEdicao)){
96 //se a funcao esta no array eh feita a verificacao se o usuario esta logado e se ele esta em um grupo que 97 //se a funcao esta no array eh feita a verificacao se o usuario esta logado e se ele esta em um grupo que
@@ -1409,7 +1410,7 @@ switch (strtoupper($funcao)) @@ -1409,7 +1410,7 @@ switch (strtoupper($funcao))
1409 retornaJSON("erro"); 1410 retornaJSON("erro");
1410 exit; 1411 exit;
1411 } 1412 }
1412 - retornaJSON($m->criaTabelaDB($codigo_estat_conexao,$nome_esquema,$nome_tabela)); 1413 + retornaJSON($m->criaTabelaDB($codigo_estat_conexao,$nome_esquema,$nome_tabela,$comentario));
1413 exit; 1414 exit;
1414 break; 1415 break;
1415 case "CRIAESQUEMADB": 1416 case "CRIAESQUEMADB":
@@ -1469,6 +1470,17 @@ switch (strtoupper($funcao)) @@ -1469,6 +1470,17 @@ switch (strtoupper($funcao))
1469 } 1470 }
1470 exit; 1471 exit;
1471 break; 1472 break;
  1473 + case "INFOTABELA":
  1474 + $m = new Metaestat();
  1475 + $colunas = $m->colunasTabela($codigo_estat_conexao,$nome_esquema,$nome_tabela,"");
  1476 + $comentario = $m->comentarioTabela($codigo_estat_conexao,$nome_esquema,$nome_tabela);
  1477 + if($formato == "json"){
  1478 + retornaJSON(array(
  1479 + "colunas"=>$colunas,
  1480 + "comentario"=>$comentario
  1481 + ));
  1482 + }
  1483 + exit;
1472 case "CRIACOLUNADB": 1484 case "CRIACOLUNADB":
1473 $m = new Metaestat(); 1485 $m = new Metaestat();
1474 if($nome_esquema != "i3geo_metaestat"){ 1486 if($nome_esquema != "i3geo_metaestat"){
admin/php/metaestat_uploadcsv_submit.php
@@ -149,6 +149,11 @@ if (ob_get_level() == 0) ob_start(); @@ -149,6 +149,11 @@ if (ob_get_level() == 0) ob_start();
149 $sql .= implode(",",$temp).") WITH(OIDS=FALSE)"; 149 $sql .= implode(",",$temp).") WITH(OIDS=FALSE)";
150 $sqltabela[] = $sql; 150 $sqltabela[] = $sql;
151 $sqltabela[] = "ALTER TABLE ".$_POST["i3GEOuploadcsvesquema"].".".$_POST["tabelaDestinocsv"]." OWNER TO ".$conexao["usuario"]; 151 $sqltabela[] = "ALTER TABLE ".$_POST["i3GEOuploadcsvesquema"].".".$_POST["tabelaDestinocsv"]." OWNER TO ".$conexao["usuario"];
  152 + if(!empty($_POST["comentarioCsv"])){
  153 + $enc = mb_detect_encoding($texto);
  154 + $_POST["comentarioCsv"] = mb_convert_encoding($_POST["comentarioCsv"],$encodingdb,$enc);
  155 + $sqltabela[] = "COMMENT ON TABLE ".$_POST["i3GEOuploadcsvesquema"].".".$_POST["tabelaDestinocsv"]." IS '".$_POST["comentarioCsv"]."'";
  156 + }
152 echo "<br>Sql tabela: <pre>"; 157 echo "<br>Sql tabela: <pre>";
153 var_dump($sqltabela); 158 var_dump($sqltabela);
154 echo "</pre>"; 159 echo "</pre>";
admin/php/metaestat_uploadshp_submit.php
@@ -156,6 +156,11 @@ if (isset($_FILES[&#39;i3GEOuploadshp&#39;][&#39;name&#39;])){ @@ -156,6 +156,11 @@ if (isset($_FILES[&#39;i3GEOuploadshp&#39;][&#39;name&#39;])){
156 $sqltabela[] = $sql; 156 $sqltabela[] = $sql;
157 $sqltabela[] = "ALTER TABLE ".$_POST["i3GEOuploadesquema"].".".$_POST["tabelaDestino"]." OWNER TO ".$conexao["usuario"]; 157 $sqltabela[] = "ALTER TABLE ".$_POST["i3GEOuploadesquema"].".".$_POST["tabelaDestino"]." OWNER TO ".$conexao["usuario"];
158 $sqltabela[] = "CREATE INDEX ".$_POST["tabelaDestino"]."_indx_thegeom ON ".$_POST["i3GEOuploadesquema"].".".$_POST["tabelaDestino"]." USING gist (the_geom )"; 158 $sqltabela[] = "CREATE INDEX ".$_POST["tabelaDestino"]."_indx_thegeom ON ".$_POST["i3GEOuploadesquema"].".".$_POST["tabelaDestino"]." USING gist (the_geom )";
  159 + if(!empty($_POST["comentarioShp"])){
  160 + $enc = mb_detect_encoding($texto);
  161 + $_POST["comentarioShp"] = mb_convert_encoding($_POST["comentarioShp"],$encodingdb,$enc);
  162 + $sqltabela[] = "COMMENT ON TABLE ".$_POST["i3GEOuploadesquema"].".".$_POST["tabelaDestino"]." IS '".$_POST["comentarioShp"]."'";
  163 + }
159 echo "<br>Sql tabela: <pre>"; 164 echo "<br>Sql tabela: <pre>";
160 var_dump($sqltabela); 165 var_dump($sqltabela);
161 echo "</pre>"; 166 echo "</pre>";