/* Title: mapas.js Funções que controlam a interface do editor de mapas 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. Arquivo: i3geo/admin/js/mapas.js */ if(typeof(i3GEOadmin) === 'undefined'){ var i3GEOadmin = {}; } i3GEOadmin.mapas = { dados: "", letra: "", dataTable: null, colunas: ["id_mapa","publicado_mapa","ordem_mapa","perfil_mapa","ligados_mapa","temas_mapa","desc_mapa","ext_mapa","imagem_mapa","linkdireto_mapa","nome_mapa","outros_mapa","contemmapfile"], formatTexto: function(elCell, oRecord, oColumn, oData){ if(oData === ""){ oData = ""; } elCell.innerHTML = "

" + oData + "

"; }, formatExclui: function(elCell, oRecord, oColumn){ elCell.innerHTML = "
"; }, formatMais: function(elCell, oRecord, oColumn){ elCell.innerHTML = "
"; }, defColunas: function(){ return [ {key:"excluir",label:$trad("excluir",i3GEOadmin.core.dicionario),formatter:i3GEOadmin.mapas.formatExclui}, {key:"mais",label:$trad("editar",i3GEOadmin.core.dicionario),formatter:i3GEOadmin.mapas.formatMais}, {label:"id",key:"id_mapa", formatter:i3GEOadmin.mapas.formatTexto}, {label:$trad("nome",i3GEOadmin.core.dicionario),resizeable:true,key:"nome_mapa", formatter:i3GEOadmin.mapas.formatTexto}, {label:$trad("ordem",i3GEOadmin.mapas.dicionario),resizeable:true,key:"ordem_mapa", formatter:i3GEOadmin.mapas.formatTexto}, {label:$trad("contemMapfile",i3GEOadmin.mapas.dicionario),resizeable:true,key:"contemmapfile", formatter:i3GEOadmin.mapas.formatTexto} ]; }, /* * Inicializa o menu */ inicia: function(){ YAHOO.namespace("mapas"); YAHOO.namespace("admin.container"); core_ativaPainelAjuda("ajuda","botaoAjuda"); var temp = function(o){ i3GEOadmin.mapas.obtem(); return; }; core_ativaBotaoAdicionaLinha("../php/mapas.php?funcao=alterarMapa","adicionaNovoMapa",temp); i3GEOadmin.mapas.obtem(); }, /* * Obtém a lista de menus */ obtem: function(){ i3GEOadmin.mapas.dados = ""; core_carregando("ativa"); core_pegaDados($trad("msgBuscaDados",i3GEOadmin.core.dicionario),"../php/mapas.php?funcao=pegaMapas","i3GEOadmin.mapas.tabela"); }, tabela: function(dados){ if(i3GEOadmin.mapas.dados == ""){ i3GEOadmin.mapas.dados = dados; } core_listaDeLetras("letras_Mp","i3GEOadmin.mapas.filtra",false,300); YAHOO.example.InlineCellEditing = new function(){ // Custom formatter for "address" column to preserve line breaks var myDataSource = new YAHOO.util.DataSource(dados); myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSARRAY; myDataSource.responseSchema = { fields: i3GEOadmin.mapas.colunas }; //i3GEOadmin.mapas.dataTable = new YAHOO.widget.DataTable("tabela", i3GEOadmin.mapas.defColunas(), myDataSource); i3GEOadmin.mapas.dataTable = new YAHOO.widget.ScrollingDataTable("tabela", i3GEOadmin.mapas.defColunas(), myDataSource,{width:"100%"}); i3GEOadmin.mapas.dataTable.subscribe('postRenderEvent',function(){ //abre o editor if(i3GEOadmin.mapas.dados[0].nome_mapa == ""){ var rec = i3GEOadmin.mapas.dataTable.getRecordSet().getRecord(0); i3GEOadmin.mapas.editor([i3GEOadmin.mapas.dados[0]],i3GEOadmin.mapas.dados[0].id_mapa,rec.getId()); } } ); i3GEOadmin.mapas.dataTable.subscribe('cellClickEvent',function(ev){ var sUrl, callback,$clicouId, $recordid, target = YAHOO.util.Event.getTarget(ev), column = this.getColumn(target), registro = this.getRecord(target); if(YAHOO.mapas.panelCK) { YAHOO.mapas.panelCK.destroy(); YAHOO.mapas.panelCK = null; } if (column.key == 'excluir'){ i3GEOadmin.mapas.exclui(registro.getData('id_mapa'),target); } if (column.key == 'mais'){ core_carregando("ativa"); core_carregando($trad("msgBuscaDados",i3GEOadmin.core.dicionario)); $clicouId = registro.getData('id_mapa'); $recordid = registro.getId(); sUrl = "../php/mapas.php?funcao=pegaDadosMapa&id_mapa="+$clicouId; callback = { success:function(o){ try{ i3GEOadmin.mapas.editor(YAHOO.lang.JSON.parse(o.responseText),$clicouId,$recordid); } catch(e){core_handleFailure(e,o.responseText);} }, failure:core_handleFailure, argument: { foo:"foo", bar:"bar" } }; core_makeRequest(sUrl,callback); } }); }; core_carregando("desativa"); }, editor: function(dados,id,recordid){ if(!$i("janela_editor2")){ var botao, ins, novoel = document.createElement("div"); novoel.id = "janela_editor2"; ins = '
' + 'Editor
' + "
" + "
" + "
"; novoel.innerHTML = ins; document.body.appendChild(novoel); botao = new YAHOO.widget.Button( "okcancel_checkboxOK", {onclick:{fn: function(){ i3GEOadmin.mapas.salva(id,recordid); YAHOO.mapas.panelEditor2.destroy(); YAHOO.mapas.panelEditor2 = null; }}} ); botao.addClass("rodar"); YAHOO.mapas.panelEditor2 = new YAHOO.widget.Panel("janela_editor2", { modal:true,fixedcenter:true,close:true,width:"400px", height:"480px",overflow:"auto", visible:false,constraintoviewport:true } ); YAHOO.mapas.panelEditor2.render(); } var fecha = function(){ try{ YAHOO.admin.container.panelEditor.destroy(); YAHOO.admin.container.panelEditor = null; } catch(e){} }; YAHOO.util.Event.addListener(YAHOO.mapas.panelEditor2.close, "click", fecha); YAHOO.mapas.panelEditor2.show(); $i("editor_bd2").innerHTML = i3GEOadmin.mapas.formulario(dados[0]); core_comboMapfiles("comboMapfiles","Etemas_mapa","",'registraMapfile(this.value,\"Etemas_mapa\")'); core_comboPerfis("comboPerfis","Eperfil_mapa","","registraPerfil(this.value)"); core_carregando("desativa"); }, formulario: function(i){ var ins = ""; ins += "

"+ $trad("ordemMapa",i3GEOadmin.mapas.dicionario) +"
"; ins += "

"; ins += "

"+ $trad("nomeMapa",i3GEOadmin.mapas.dicionario) +"
"; ins += "

"; ins += "

"+ $trad("publicado",i3GEOadmin.mapas.dicionario) +"
"; ins += "

"; ins += "

"+ $trad("descricao",i3GEOadmin.mapas.dicionario) +"
"; ins += "

"; ins += "

"+ $trad("extensao",i3GEOadmin.mapas.dicionario) +"
"; ins += "

"; ins += "

"+ $trad("img",i3GEOadmin.mapas.dicionario) +"
"; ins += "

"; ins += ""; ins += "

"+ $trad("temas",i3GEOadmin.mapas.dicionario) +"

"; ins += "

"; ins += "
"+ $trad("msgBusca",i3GEOadmin.mapas.dicionario) +"
"; ins += "

"+ $trad("temasLigados",i3GEOadmin.mapas.dicionario) +"

"; ins += "

"; ins += "

"+ $trad("perfis",i3GEOadmin.mapas.dicionario) +"

"; ins += "

"; ins += "
"+ $trad("msgBusca",i3GEOadmin.mapas.dicionario) +"
"; ins += "

"+ $trad("parametros",i3GEOadmin.mapas.dicionario) +"
"; ins += "

"; ins += "

"+ $trad("linkDireto",i3GEOadmin.mapas.dicionario) +"
"; ins += "

"; ins += "


"; return(ins); }, atualizaFiltro: function(dados){ i3GEOadmin.mapas.dados = dados; i3GEOadmin.mapas.filtra(i3GEOadmin.mapas.letra); }, filtra: function(letra){ i3GEOadmin.mapas.letra = letra; if(i3GEOadmin.mapas.dados == ""){ core_carregando("ativa"); core_pegaDados($trad("msgBuscaDados",i3GEOadmin.core.dicionario),"../php/mapas.php?funcao=pegaMapas","i3GEOadmin.mapas.atualizaFiltro"); return; } var i,temp, n = i3GEOadmin.mapas.dados.length, novo; if(letra == "Todos"){ novo = i3GEOadmin.mapas.dados; } else{ novo = []; for(i=0;i"+ $trad("msgErroExclui",i3GEOadmin.core.dicionario) +""); setTimeout("core_carregando('desativa')",3000); } else{ var rec = i3GEOadmin.mapas.dataTable.getRecordSet().getRecord(recordid); i3GEOadmin.mapas.dataTable.updateRow(rec,YAHOO.lang.JSON.parse(o.responseText)[0]); i3GEOadmin.mapas.dados = ""; core_carregando("desativa"); } } catch(e){core_handleFailure(e,o.responseText);} }, failure:core_handleFailure, argument: { foo:"foo", bar:"bar" } }; core_makeRequest(sUrl,callback); } };