Commit 3be413c37b5bb4e77263d962491bb092502d39a2

Authored by Edmar Moretti
1 parent fc2a35e8

$1

admin/js/estat_editor.js
... ... @@ -45,18 +45,33 @@ i3GEOadmin.editor = {
45 45 },
46 46 esquema: {
47 47 onde: "i3GEOadminEditorEsquema",
48   - lista: function(){
  48 + lista: function(selecao){
49 49 var callback = {
50 50 success:function(o){
51 51 try {
52 52 var dados = YAHOO.lang.JSON.parse(o.responseText),
53   - temp = "<fieldset><p>Escolha um esquema: ";
54   - temp += "<select id='i3GEOadminesquema' onchange='i3GEOadmin.editor.tabela.lista()'>";
55   - temp += core_comboObjeto(dados,"esquema","esquema");
56   - temp += "</select></p>";
  53 + temp = "<fieldset><p>Escolha um esquema: " +
  54 + "<select id='i3GEOadminesquema' onchange='i3GEOadmin.editor.tabela.lista()'>" +
  55 + core_comboObjeto(dados,"esquema","esquema") +
  56 + "</select></p>" +
  57 + "<p class=paragrafo ><input type=button value='Criar um novo esquema' id='i3GEOadminesquemaCriar' />" +
  58 + "&nbsp;<input type=button value='Alterar nome atual' id='i3GEOadminesquemaAlterarNome' /></p>";
  59 +
57 60 $i(i3GEOadmin.editor.esquema.onde).innerHTML = temp+"</fieldset>";
  61 + if(selecao){
  62 + $i("i3GEOadminesquema").value = selecao;
  63 + i3GEOadmin.editor.tabela.lista();
  64 + }
58 65 core_carregando("desativa");
59 66 $i(i3GEOadmin.editor.tabela.onde).innerHTML = "";
  67 + new YAHOO.widget.Button(
  68 + "i3GEOadminesquemaCriar",
  69 + {onclick:{fn: i3GEOadmin.editor.esquema.criar}}
  70 + );
  71 + new YAHOO.widget.Button(
  72 + "i3GEOadminesquemaAlterarNome",
  73 + {onclick:{fn: i3GEOadmin.editor.esquema.alterarNome}}
  74 + );
60 75 }
61 76 catch(e){core_handleFailure(e,o.responseText);}
62 77 },
... ... @@ -73,6 +88,68 @@ i3GEOadmin.editor = {
73 88 core_carregando("buscando dados...");
74 89 core_makeRequest("../php/metaestat.php?funcao=esquemasConexao&formato=json&codigo_estat_conexao="+codigo_estat_conexao,callback);
75 90 },
  91 + criar: function(){
  92 + var callback = {
  93 + success:function(o){
  94 + try {
  95 + core_carregando("desativa");
  96 + i3GEOadmin.editor.esquema.lista(novoEsquema);
  97 + }
  98 + catch(e){core_handleFailure(e,o.responseText);}
  99 + },
  100 + failure:core_handleFailure,
  101 + argument: { foo:"foo", bar:"bar" }
  102 + },
  103 + novoEsquema = window.prompt("Novo nome:","");
  104 + if (novoEsquema != null && novoEsquema != ""){
  105 + if(i3GEOadmin.editor.esquema.verificaExiste(novoEsquema) == false){
  106 + core_carregando("adicionando...");
  107 + core_makeRequest("../php/metaestat.php?funcao=criaEsquemaDB&formato=json&nome_esquema="+novoEsquema+"&codigo_estat_conexao="+$i("i3GEOadmincodigo_estat_conexao").value,callback);
  108 + }
  109 + else{
  110 + alert("Esquema ja existe");
  111 + }
  112 + }
  113 + },
  114 + alterarNome: function(){
  115 + if($i("i3GEOadminesquema").value == ""){
  116 + alert("Escolha o esquema");
  117 + return;
  118 + }
  119 + var callback = {
  120 + success:function(o){
  121 + try {
  122 + core_carregando("desativa");
  123 + i3GEOadmin.editor.esquema.lista();
  124 + }
  125 + catch(e){core_handleFailure(e,o.responseText);}
  126 + },
  127 + failure:core_handleFailure,
  128 + argument: { foo:"foo", bar:"bar" }
  129 + },
  130 + nomeEsquema = $i("i3GEOadminesquema").value;
  131 + novoEsquema = window.prompt("Novo nome:","");
  132 + if (novoEsquema != null && novoEsquema != ""){
  133 + if(i3GEOadmin.editor.esquema.verificaExiste(novoEsquema) == false){
  134 + core_carregando("adicionando...");
  135 + core_makeRequest("../php/metaestat.php?funcao=alteraNomeEsquemaDB&formato=json&nome_esquema="+nomeEsquema+"&novonome_esquema="+novoEsquema+"&codigo_estat_conexao="+$i("i3GEOadmincodigo_estat_conexao").value,callback);
  136 + }
  137 + else{
  138 + alert("Esquema ja existe");
  139 + }
  140 + }
  141 + },
  142 + verificaExiste: function(valor){
  143 + var combo = $i("i3GEOadminesquema"),
  144 + n = combo.options.length,
  145 + i;
  146 + for(i=0;i<n;i++){
  147 + if(combo.options[i].value == valor){
  148 + return true;
  149 + }
  150 + }
  151 + return false;
  152 + }
76 153 },
77 154 tabela:{
78 155 onde: "i3GEOadminEditorTabela",
... ...
admin/php/classe_metaestat.php
... ... @@ -2002,7 +2002,7 @@ class Metaestat{
2002 2002 }
2003 2003 /**
2004 2004 * ALtera o nome de uma tabela
2005   - * Atualiza as tabelas i3geoestat_medida_variavel e i3geoestat_tipo_regiao
  2005 + * Nao atualiza as tabelas i3geoestat_medida_variavel e i3geoestat_tipo_regiao
2006 2006 * @param codigo da conexao
2007 2007 * @param nome do esquema
2008 2008 * @param nome da tabela atual
... ... @@ -2011,6 +2011,7 @@ class Metaestat{
2011 2011 */
2012 2012 function alteraNomeTabelaDB($codigo_estat_conexao,$nome_esquema,$nome_tabela,$novonome_tabela){
2013 2013 $res = $this->execSQLDB($codigo_estat_conexao,"ALTER TABLE ".$nome_esquema.".".$nome_tabela." RENAME TO ".$novonome_tabela );
  2014 + /*
2014 2015 $tabela = $this->execSQLDB($codigo_estat_conexao,"SELECT table_name FROM information_schema.tables where table_name = '$novonome_tabela' and table_schema = '$nome_esquema'");
2015 2016 if(count($tabela) > 0){
2016 2017 $sql = "UPDATE i3geoestat_medida_variavel SET tabela = '$novonome_tabela' WHERE esquemadb = '$nome_esquema' and tabela = '$nome_tabela'";
... ... @@ -2018,6 +2019,7 @@ class Metaestat{
2018 2019 $sql = "UPDATE i3geoestat_tipo_regiao SET tabela = '$novonome_tabela' WHERE esquemadb = '$nome_esquema' and tabela = '$nome_tabela'";
2019 2020 $this->execSQL($sql,"",false);
2020 2021 }
  2022 + */
2021 2023 return $res;
2022 2024 }
2023 2025 /**
... ... @@ -2031,6 +2033,17 @@ class Metaestat{
2031 2033 function copiaTabelaDB($codigo_estat_conexao,$nome_esquema,$nome_tabela,$novonome_tabela){
2032 2034 return $this->execSQLDB($codigo_estat_conexao,"CREATE TABLE ".$nome_esquema.".".$novonome_tabela." AS select * from ".$nome_esquema.".".$nome_tabela );
2033 2035 }
  2036 + /**
  2037 + * ALtera o nome de um esquema
  2038 + * @param codigo da conexao
  2039 + * @param nome do esquema
  2040 + * @param novo nome do esquema
  2041 + * @return execSQLDB
  2042 + */
  2043 + function alteraNomeEsquemaDB($codigo_estat_conexao,$nome_esquema,$novonome_esquema){
  2044 + $res = $this->execSQLDB($codigo_estat_conexao,"ALTER SCHEMA ".$nome_esquema." RENAME TO ".$novonome_esquema );
  2045 + return $res;
  2046 + }
2034 2047 /**
2035 2048 * Lista as colunas de uma tabela e seus metadados
2036 2049 * @param codigo da conexao
... ...
admin/php/metaestat.php
... ... @@ -75,7 +75,9 @@ $funcoesEdicao = array(
75 75 "EXCLUIRCLASSECLASSIFICACAO",
76 76 "EXCLUIRLINKMEDIDA",
77 77 "CRIATABELADB",
  78 + "CRIAESQUEMADB",
78 79 "ALTERANOMETABELADB",
  80 + "ALTERANOMEESQUEMADB",
79 81 "COPIATABELADB",
80 82 "CRIACOLUNADB",
81 83 "ALTERANOMECOLUNADB",
... ... @@ -1306,6 +1308,11 @@ switch (strtoupper($funcao))
1306 1308 retornaJSON($m->criaTabelaDB($codigo_estat_conexao,$nome_esquema,$nome_tabela));
1307 1309 exit;
1308 1310 break;
  1311 + case "CRIAESQUEMADB":
  1312 + $m = new Metaestat();
  1313 + retornaJSON($m->criaEsquemaDB($codigo_estat_conexao,$nome_esquema));
  1314 + exit;
  1315 + break;
1309 1316 case "ALTERANOMETABELADB":
1310 1317 $m = new Metaestat();
1311 1318 if($nome_esquema != "i3geo_metaestat"){
... ... @@ -1315,6 +1322,11 @@ switch (strtoupper($funcao))
1315 1322 retornaJSON($m->alteraNomeTabelaDB($codigo_estat_conexao,$nome_esquema,$nome_tabela,$novonome_tabela));
1316 1323 exit;
1317 1324 break;
  1325 + case "ALTERANOMEESQUEMADB":
  1326 + $m = new Metaestat();
  1327 + retornaJSON($m->alteraNomeEsquemaDB($codigo_estat_conexao,$nome_esquema,$novonome_esquema));
  1328 + exit;
  1329 + break;
1318 1330 case "COPIATABELADB":
1319 1331 $m = new Metaestat();
1320 1332 if($nome_esquema != "i3geo_metaestat"){
... ...