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 252 if(i3GEOadmin.editor.verificaEsquema(nomeEsquema) == false){
253 253 return;
254 254 }
255   - novaTabela = window.prompt("Novo nome:","");
  255 + novaTabela = window.prompt("Nome da tabela:","");
  256 + comentarioTabela = window.prompt("Comentario (opcional):","");
256 257 if (novaTabela!=null && novaTabela!=""){
257 258 if(i3GEOadmin.editor.tabela.verificaExiste(novaTabela) == false){
258 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 262 else{
262 263 alert("Tabela ja existe");
... ... @@ -398,9 +399,11 @@ i3GEOadmin.editor = {
398 399 success:function(o){
399 400 try {
400 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 405 temp += "<select id='i3GEOadmincoluna' >";
403   - temp += core_comboObjeto(dados,"","");
  406 + temp += core_comboObjeto(dados["colunas"],"","");
404 407 temp += "</select></p>";
405 408 temp += "" +
406 409 "<p class=paragrafo ><input type=button value='Adicionar uma nova coluna' id='i3GEOadmincolunaCriar' />" +
... ... @@ -430,7 +433,7 @@ i3GEOadmin.editor = {
430 433 return;
431 434 }
432 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 438 criar: function(){
436 439 var callback = {
... ... @@ -530,7 +533,7 @@ i3GEOadmin.editor = {
530 533 $i("outsrid").value = obj.value;
531 534 },
532 535 formulario: function(){
533   - var ins = '' +
  536 + var ins = '' +
534 537 '<form id=i3GEOuploadf target="i3GEOuploadiframe" action="../php/metaestat_uploadshp_submit.php" method="post" ENCTYPE="multipart/form-data">' +
535 538 '<fieldset class=subbloco >' +
536 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 549 '</select></p>' +
547 550 '</fieldset>' +
548 551 '<fieldset class=subbloco >' +
  552 + '<p class="paragrafo" >Coment&aacute;rio:</p>' +
  553 + '<textarea name="comentarioShp" rows="5" cols="70" ></textarea>' +
549 554 '<p class="paragrafo" >Tipo de opera&ccedil;&atilde;o:</p>' +
550 555 '<select id=i3GEOtipoOperacao name=tipoOperacao >' +
551 556 '<option value=criar >Criar a tabela nova e incluir registros do SHP</option>' +
... ... @@ -622,6 +627,8 @@ i3GEOadmin.editor = {
622 627 '</select></p>' +
623 628 '</fieldset>' +
624 629 '<fieldset class=subbloco >' +
  630 + '<p class="paragrafo" >Coment&aacute;rio:</p>' +
  631 + '<textarea name="comentarioCsv" rows="5" cols="70" ></textarea>' +
625 632 '<p class="paragrafo" >Tipo de opera&ccedil;&atilde;o:</p>' +
626 633 '<select id=i3GEOtipoOperacaocsv name=tipoOperacao >' +
627 634 '<option value=criar >Criar a tabela nova e incluir registros do CSV</option>' +
... ...
admin/menu.html
... ... @@ -114,7 +114,7 @@
114 114 href: "html/estat_fonteinfo.html",
115 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 118 type: "text",
119 119 href: "html/estat_editor.html",
120 120 target: "principal"
... ...
admin/php/classe_metaestat.php
... ... @@ -2181,8 +2181,17 @@ class Metaestat{
2181 2181 * @param nome da tabela
2182 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 2197 * ALtera o nome de uma tabela
... ... @@ -2229,7 +2238,7 @@ class Metaestat{
2229 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 2242 * @param codigo da conexao
2234 2243 * @param nome do esquema
2235 2244 * @param nome da tabela
... ... @@ -2248,6 +2257,29 @@ class Metaestat{
2248 2257 }
2249 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 2284 * Cria uma coluna em uma tabela do banco
2253 2285 * @param codigo da conexao
... ... @@ -2301,7 +2333,7 @@ class Metaestat{
2301 2333 }
2302 2334 /**
2303 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 2337 * @param codigo da conexao
2306 2338 * @param nome do esquema
2307 2339 * @param nome da tabela
... ...
admin/php/metaestat.php
... ... @@ -90,7 +90,8 @@ $funcoesEdicao = array(
90 90 "REGIAO2SHP",
91 91 "ESQUEMASCONEXAO",
92 92 "TABELASESQUEMA",
93   - "ALTERAESTILOSCLASSIFICACAO"
  93 + "ALTERAESTILOSCLASSIFICACAO",
  94 + "INFOTABELA"
94 95 );
95 96 if(in_array(strtoupper($funcao),$funcoesEdicao)){
96 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 1410 retornaJSON("erro");
1410 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 1414 exit;
1414 1415 break;
1415 1416 case "CRIAESQUEMADB":
... ... @@ -1469,6 +1470,17 @@ switch (strtoupper($funcao))
1469 1470 }
1470 1471 exit;
1471 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 1484 case "CRIACOLUNADB":
1473 1485 $m = new Metaestat();
1474 1486 if($nome_esquema != "i3geo_metaestat"){
... ...
admin/php/metaestat_uploadcsv_submit.php
... ... @@ -149,6 +149,11 @@ if (ob_get_level() == 0) ob_start();
149 149 $sql .= implode(",",$temp).") WITH(OIDS=FALSE)";
150 150 $sqltabela[] = $sql;
151 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 157 echo "<br>Sql tabela: <pre>";
153 158 var_dump($sqltabela);
154 159 echo "</pre>";
... ...
admin/php/metaestat_uploadshp_submit.php
... ... @@ -156,6 +156,11 @@ if (isset($_FILES[&#39;i3GEOuploadshp&#39;][&#39;name&#39;])){
156 156 $sqltabela[] = $sql;
157 157 $sqltabela[] = "ALTER TABLE ".$_POST["i3GEOuploadesquema"].".".$_POST["tabelaDestino"]." OWNER TO ".$conexao["usuario"];
158 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 164 echo "<br>Sql tabela: <pre>";
160 165 var_dump($sqltabela);
161 166 echo "</pre>";
... ...