From 3bace88fc87fbe778b9f079c157fbfbbf497d8e8 Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Mon, 22 Dec 2014 14:21:22 +0000 Subject: [PATCH] Inclusão de opção para armazenar as tabelas abertas ao salvar um mapa --- admin/php/mapas.php | 5 +++-- classesjs/classe_i3geo.js | 5 +++++ classesjs/classe_mapa.js | 18 ++++++++++++++++++ classesjs/classe_php.js | 18 +++++++++++++++--- ferramentas/graficointerativo1/index.js | 1 + ferramentas/tabela/index.js | 33 ++++++++++++++++++++++++++++++++- 6 files changed, 74 insertions(+), 6 deletions(-) diff --git a/admin/php/mapas.php b/admin/php/mapas.php index 23345ca..15057ae 100644 --- a/admin/php/mapas.php +++ b/admin/php/mapas.php @@ -174,7 +174,7 @@ switch (strtoupper($funcao)) break; } function salvaMapfile(){ - global $esquemaadmin,$nome_mapa,$arqmapfile,$url,$id_mapa,$preferenciasbase64,$geometriasbase64,$graficosbase64,$ext; + global $esquemaadmin,$nome_mapa,$arqmapfile,$url,$id_mapa,$preferenciasbase64,$geometriasbase64,$graficosbase64,$tabelasbase64,$ext; //as preferencias sao criadas via javascript e guardadas junto com o mapa try{ // @@ -186,10 +186,11 @@ function salvaMapfile(){ //o parser para reconstruir os valores e feito em javascript, no cliente // $customizacoesinit = array(); - if(isset($preferenciasbase64) || isset($geometriasbase64) || isset($graficosbase64)){ + if(isset($preferenciasbase64) || isset($geometriasbase64) || isset($graficosbase64) || isset($tabelasbase64)){ $customizacoesinit[] = '"preferenciasbase64":"'.$preferenciasbase64.'"'; $customizacoesinit[] = '"geometriasbase64":"'.$geometriasbase64.'"'; $customizacoesinit[] = '"graficosbase64":"'.$graficosbase64.'"'; + $customizacoesinit[] = '"tabelasbase64":"'.$tabelasbase64.'"'; $m = ms_newMapObj($arqmapfile); $m->setmetadata("CUSTOMIZACOESINIT",'{'.implode(",",$customizacoesinit).'}'); $m->save($arqmapfile); diff --git a/classesjs/classe_i3geo.js b/classesjs/classe_i3geo.js index b3610dc..a01ad8b 100644 --- a/classesjs/classe_i3geo.js +++ b/classesjs/classe_i3geo.js @@ -512,6 +512,11 @@ var i3GEO = { && preferencias.graficosbase64 != "") { i3GEO.mapa.restauraGraficos(preferencias.graficosbase64); } + // recupera as tabelas + if (preferencias.tabelasbase64 + && preferencias.tabelasbase64 != "") { + i3GEO.mapa.restauraTabelas(preferencias.tabelasbase64); + } } } else { alert("Erro. Impossivel criar o mapa " diff --git a/classesjs/classe_mapa.js b/classesjs/classe_mapa.js index b607726..f43d79d 100644 --- a/classesjs/classe_mapa.js +++ b/classesjs/classe_mapa.js @@ -432,6 +432,24 @@ i3GEO.mapa = true); } }, + /** + * Function: restauraTabelas + * + * Descompacta tabelas salvos no mapa atual + */ + restauraTabelas : function(tabelas) { + // carrega o script do editor vetorial + if (graficos.length > 0) { + var inicia = function() { + i3GEOF.tabela.restauraTabelas(tabelas); + }; + i3GEO.util.scriptTag( + i3GEO.configura.locaplic + "/ferramentas/tabela/dependencias.php", + inicia, + "tabela", + true); + } + }, // // aplica as preferencias armazenadas localmente ou vindas de um mapa salvo no banco de dados // diff --git a/classesjs/classe_php.js b/classesjs/classe_php.js index 09c4f6a..7a2a721 100644 --- a/classesjs/classe_php.js +++ b/classesjs/classe_php.js @@ -1599,7 +1599,7 @@ i3GEO.php = * * Salva o mapfile atual no banco de dados de administracao */ - salvaMapaBanco : function(funcao, titulo, id_mapa, preferencias, geometrias, graficos) { + salvaMapaBanco : function(funcao, titulo, id_mapa, preferencias, geometrias, graficos, tabelas) { // pega as preferencias do usuario tambem if (preferencias) { try { @@ -1636,7 +1636,19 @@ i3GEO.php = } else { graficos = ""; } - + // pega as ferramentas do tipo tabela + if (tabelas && i3GEOF && i3GEOF.tabela) { + try { + tabelas = i3GEOF.tabela.compactaConfig(); + if (!tabelas) { + tabelas = ""; + } + } catch (e) { + tabelas = ""; + } + } else { + tabelas = ""; + } var url = (window.location.href.split("?")[0]), p = i3GEO.configura.locaplic + "/admin/php/mapas.php?"; par = "funcao=salvaMapfile" + "&url=" + url.replace("#", "") + "&arqmapfile=" + i3GEO.parametros.mapfile + "&nome_mapa=" + titulo @@ -1646,7 +1658,7 @@ i3GEO.php = cp.set_transfer_mode('POST'); cp.set_response_type("JSON"); cp.call(p + par, "foo", funcao, "&preferenciasbase64=" + preferencias + "&geometriasbase64=" + geometrias + "&graficosbase64=" - + graficos); + + graficos + "&tabelasbase64=" + tabelas); }, /** * Function: marcadores2shp diff --git a/ferramentas/graficointerativo1/index.js b/ferramentas/graficointerativo1/index.js index 79cf405..633099d 100755 --- a/ferramentas/graficointerativo1/index.js +++ b/ferramentas/graficointerativo1/index.js @@ -715,6 +715,7 @@ i3GEOF.graficointerativo1 = if (!i3GEO.Interface || !$i(idjanela + "i3GEOgraficointerativo1ComboTemas")) { return; } + //TODO permitir listar nao ligados i3GEO.util.comboTemas(idjanela + "i3GEOgraficointerativo1ComboTemasId", function(retorno) { $i(idjanela + "i3GEOgraficointerativo1ComboTemas").innerHTML = retorno.dados; $i(idjanela + "i3GEOgraficointerativo1ComboTemas").style.display = "block"; diff --git a/ferramentas/tabela/index.js b/ferramentas/tabela/index.js index 462a88c..59374db 100644 --- a/ferramentas/tabela/index.js +++ b/ferramentas/tabela/index.js @@ -317,6 +317,7 @@ i3GEOF.tabela = }; YAHOO.util.Event.addListener(janela[0].close, "click", temp); }, + //TODO listar mesmo os deligados atualizaCombosCabecalhos : function() { var i, id, n = i3GEOF.tabela.janelas.length; for (i = 0; i < n; i++) { @@ -328,6 +329,36 @@ i3GEOF.tabela = "ligadosComTabela"); } }, + /** + * Obtem os parametros de cada janela e converte em base64. Cada janela e inserida como um item em um objeto A compactacao e + * utilizada para salvar as configuracoes no mapfile atual + */ + compactaConfig : function() { + var c, g, par, janelas, i, n, novoid; + par = []; + janelas = i3GEOF.tabela.janelas; + n = janelas.length; + //TODO retornaConfig nao existe + for (i = 0; i < n; i++) { + novoid = window.prompt($trad('idDaTabela',i3GEOF.tabela.dicionario),janelas[i]); + c = i3GEOF.tabela.retornaConfig(janelas[i],novoid); + par.push(c); + } + g = YAHOO.lang.JSON.stringify(par); + return i3GEO.util.base64encode(g); + }, + restauraTabelas : function(par) { + //TODO LISTAREGATIVO nao existe + i3GEOF.tabela.LISTAREGATIVO = false; + var n, i; + par = i3GEO.util.base64decode(par); + //alert(par) + par = YAHOO.lang.JSON.parse(par); + n = par.length; + for (i = 0; i < n; i++) { + i3GEOF.tabela.iniciaJanelaFlutuante(par[i]); + } + }, /* * Function: ativaFoco * @@ -1080,4 +1111,4 @@ i3GEOF.tabela = i3GEO.janela.tempoMsg(e); } } - }; + }; \ No newline at end of file -- libgit2 0.21.2