/* Title: STORYMAP Ferramenta para definir os parâmetros de configuração de storymap Abre apenas se o usuário estiver logado Para testar utilize http://localhost/i3geo/ms_criamapa.php?temasa=_lreal Arquivo: i3geo/ferramentas/storymap/index.js.php Licenca: GPL2 i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet Direitos Autorais Reservados (c) 2006 Ministério do Meio Ambiente Brasil Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo sob os termos da Licença Pública Geral GNU conforme publicada pela Free Software Foundation; Este programa é distribuído na expectativa de que seja útil, porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral do GNU para mais detalhes. Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto com este programa; se não, escreva para a Free Software Foundation, Inc., no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ if (typeof (i3GEOF) === 'undefined') { var i3GEOF = {}; } /* * Classe: i3GEOF.storymap * * Camadas podem ter as definicoes default de parametros armazenadas no metadata storymap Esse metadata e mantido no objeto * i3GEO.arvoreDeCamadas.CAMADAS * * Os campos definidos pelo usuario podem ser salvos no mapfile caso o usuario esteja logado * * Veja tambem i3geo/ferramentas/atalhosedicao */ i3GEOF.storymap = { /* * Variavel: tema * * Tema que será utilizado * * Type: {string} */ tema : i3GEO.temaAtivo, /* * Variavel: aguarde * * Estilo do objeto DOM com a imagem de aguarde existente no cabeçalho da janela. */ aguarde : "", /* * Para efeitos de compatibilidade antes da versão 4.7 que não tinha dicionário */ criaJanelaFlutuante : function() { i3GEOF.storymap.iniciaDicionario(); }, /** * Template no formato mustache. E preenchido na carga do javascript com o programa dependencias.php */ MUSTACHE : "", /** * Susbtitutos para o template */ mustacheHash : function() { var dicionario = i3GEO.idioma.objetoIdioma(i3GEOF.storymap.dicionario); return dicionario; }, /* * Function: iniciaDicionario * * Carrega o dicionário e chama a função que inicia a ferramenta * * O Javascript é carregado com o id i3GEOF.nomedaferramenta.dicionario_script */ iniciaDicionario : function() { if (typeof (i3GEOF.storymap.dicionario) === 'undefined') { i3GEO.util.scriptTag( i3GEO.configura.locaplic + "/ferramentas/storymap/dicionario.js", "i3GEOF.storymap.iniciaJanelaFlutuante()", "i3GEOF.storymap.dicionario_script"); } else { i3GEOF.storymap.iniciaJanelaFlutuante(); } }, /* * Function: inicia * * Inicia a ferramenta. É chamado por criaJanelaFlutuante * * Parametro: * * iddiv {String} - id do div que receberá o conteudo HTML da ferramenta */ inicia : function(iddiv) { if(i3GEOF.storymap.MUSTACHE == ""){ $.get(i3GEO.configura.locaplic + "/ferramentas/storymap/template_mst.html", function(template) { i3GEOF.storymap.MUSTACHE = template; i3GEOF.storymap.inicia(iddiv); }); return; } var camada = ""; if (i3GEOF.storymap.tema === "") { return; } $i(iddiv).innerHTML = i3GEOF.storymap.html(); if (!$i("i3GEOFstoComboCabecaSel")) { i3GEO.janela.comboCabecalhoTemasBs( "i3GEOFstoComboCabeca", "i3GEOFstoComboCabecaSel", "storymap", "ligadosComTabela", function(evt){ var botao = evt.target; if (botao) { if (botao.value != "") { i3GEO.mapa.ativaTema(botao.value); i3GEOF.storymap.tema = botao.value; $i(iddiv).innerHTML = ""; i3GEOF.storymap.inicia(iddiv); } else { $i(iddiv).innerHTML = ""; } } }); } if (i3GEO.login.verificaCookieLogin() === true && i3GEO.parametros.editor === "sim") { $(".i3GEOstorymap").find(".hidden").removeClass("hidden"); } try { // // verifica se a camada possui definicao dos parametros // if (i3GEO.arvoreDeCamadas) { camada = i3GEO.arvoreDeCamadas.pegaTema(i3GEOF.storymap.tema); } // cria os combos de opcao var temp = function(r) { var combo = function(dados, idonde) { var n, i, ins; n = dados.length; ins = ""; $i(idonde).innerHTML = ins; }; combo(r.data.valores, "i3GEOstocolcabecalho"); combo(r.data.valores, "i3GEOstocoltexto"); combo(r.data.valores, "i3GEOstocollocal"); combo(r.data.valores, "i3GEOstocolmedia"); combo(r.data.valores, "i3GEOstocollon"); combo(r.data.valores, "i3GEOstocollat"); // se os parametros da ferramenta estiverem definidos na camada if (camada != "" && camada.ferramentas.storymap) { $i("i3GEOStocabecalho").value = camada.ferramentas.storymap.cabecalho; $i("i3GEOStotexto").value = camada.ferramentas.storymap.texto; $i("i3GEOstocolcabecalhoCombo").value = camada.ferramentas.storymap.colcabecalho; $i("i3GEOstocoltextoCombo").value = camada.ferramentas.storymap.coltexto; $i("i3GEOstocollocalCombo").value = camada.ferramentas.storymap.collocal; $i("i3GEOstocolmediaCombo").value = camada.ferramentas.storymap.colmedia; $i("i3GEOstocollonCombo").value = camada.ferramentas.storymap.collon; $i("i3GEOstocollatCombo").value = camada.ferramentas.storymap.collat; } }; i3GEO.php.listaItensTema(temp, i3GEOF.storymap.tema); } catch (erro) { i3GEO.janela.tempoMsg(erro); } }, /* * Function: html * * Gera o código html para apresentação das opções da ferramenta * * Retorno: * * String com o código html */ html : function() { var ins = Mustache.render(i3GEOF.storymap.MUSTACHE, i3GEOF.storymap.mustacheHash()); return ins; }, /* * Function: iniciaJanelaFlutuante * * Cria a janela flutuante para controle da ferramenta. */ iniciaJanelaFlutuante : function(tema) { if(tema && tema != ""){ i3GEOF.storymap.tema = tema; i3GEO.temaAtivo = tema; } else { i3GEOF.storymap.tema = i3GEO.temaAtivo; } var minimiza, cabecalho, janela, divid, temp, titulo; if ($i("i3GEOF.storymap")) { i3GEOF.storymap.inicia("i3GEOF.storymap_corpo"); return; } cabecalho = function() { }; minimiza = function() { i3GEO.janela.minimiza("i3GEOF.storymap"); }; // cria a janela flutuante titulo = "Storymap"; janela = i3GEO.janela.cria( "380px", "320px", "", "", "", titulo, "i3GEOF.storymap", false, "hd", cabecalho, minimiza, "", true, "", "", "", "", "133" ); divid = janela[2].id; i3GEOF.storymap.aguarde = $i("i3GEOF.storymap_imagemCabecalho").style; $i("i3GEOF.storymap_corpo").style.backgroundColor = "white"; i3GEOF.storymap.inicia(divid); temp = function() { }; YAHOO.util.Event.addListener(janela[0].close, "click", temp); }, salvaParametros : function() { if(i3GEOF.storymap.aguarde.visibility == "visible"){ return; } var j; j = '{"cabecalho":"' + $i("i3GEOStocabecalho").value + '","texto":"' + $i("i3GEOStotexto").value + '","colcabecalho":"' + $i("i3GEOstocolcabecalhoCombo").value + '","coltexto":"' + $i("i3GEOstocoltextoCombo").value + '","collocal":"' + $i("i3GEOstocollocalCombo").value + '","colmedia":"' + $i("i3GEOstocolmediaCombo").value + '","collon":"' + $i("i3GEOstocollonCombo").value + '","collat":"' + $i("i3GEOstocollatCombo").value + '"}'; p = i3GEO.configura.locaplic + "/ferramentas/storymap/manutencao.php"; par = "&g_sid=" + i3GEO.configura.sid + "&tema=" + i3GEOF.storymap.tema + "&storymap=" + j + "&funcao=inclui"; retorno = function(retorno) { i3GEOF.storymap.aguarde.visibility = "hidden"; }; i3GEOF.storymap.aguarde.visibility = "visible"; cpJSON.call(p, "foo", retorno, par); }, removeParametros : function() { if(i3GEOF.storymap.aguarde.visibility == "visible"){ return; } p = i3GEO.configura.locaplic + "/ferramentas/storymap/manutencao.php"; par = "&g_sid=" + i3GEO.configura.sid + "&tema=" + i3GEOF.storymap.tema + "&funcao=remove"; retorno = function(retorno) { i3GEOF.storymap.aguarde.visibility = "hidden"; }; i3GEOF.storymap.aguarde.visibility = "visible"; cpJSON.call(p, "foo", retorno, par); } };