/* Title: core.js Funções de uso comum das interfaces dos editores 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/core.js */ /* Function: $i Pega um objeto do documento. Exemplo: $i("box1") Parâmetros: id - id do objeto Retorno: object - objeto javaScript */ $i = function(id) {return document.getElementById(id);}; /* Variable: $mapfiles Armazena o objeto com a lista de mapfiles */ $mapfiles = ""; /* Variable: $tags Armazena o objeto com a lista de tags */ $tags = ""; /* Variable: $perfis Armazena o objeto com a lista de perfis */ $perfis = ""; function cabecalhoMetaestat(id,excluir){ var i,n,temp, ins = "
Atalhos", u = i3GEO.util.pegaCookie("i3geousuarionome"), botoes = [ {id:"principal",titulo:"Início",link:"../principal.html"}, {id:"arvore",titulo:"Árvore completa",link:"estat_variavel.html"}, {id:"unidade_medida",titulo:"Unidades",link:"estat_unidade_medida.html"}, {id:"periodo_tempo",titulo:"Períodos",link:"estat_tipo_periodo.html"}, {id:"conexao",titulo:"Conexões",link:"estat_conexao.html"}, {id:"tipo_regiao",titulo:"Regiões",link:"estat_tipo_regiao.html"}, {id:"fonteinfo",titulo:"Fonte",link:"estat_fonteinfo.html"}, {id:"editor",titulo:"Gerenciador BD/Upload",link:"estat_editor.html"}, //{id:"uploaddados",titulo:"Upload",link:"estat_uploaddados.html"}, {id:"mapa",titulo:"Publicador",link:"estat_mapa.html"}, {id:"login",titulo:"Login",js:"i3GEO.login.dialogo.abreLogin()"} ]; n = botoes.length; for(i=0;i'; } } if(!u){ u = "-"; } ins += "
Login: "+u+"
"; ins += "
"; temp = $i(id); temp.innerHTML = ins; for(i=0;i'; } } if(!u){ u = "-"; } ins += "
Login: "+u+"
"; ins += ""; temp = $i(id); temp.innerHTML = ins; for(i=0;i'; } } if(!u){ u = "-"; } ins += "
Login: "+u+"
"; ins += ""; temp = $i(id); temp.innerHTML = ins; for(i=0;i"; d = {html:titulo}; tempNode = new YAHOO.widget.HTMLNode(d, root, true,true); tempNode.enableHighlight = false; c = obj.propriedades.length; for (i=0, j=c; i"+linha.text+"";} else {conteudo = linha.text;} d = {html:conteudo}; temaNode = new YAHOO.widget.HTMLNode(d, tempNode, false,true); temaNode.enableHighlight = false; } arvore.collapseAll(); arvore.draw(); } /* Function: core_movimentaNo Movimenta um nó para cima ou para baixo na árvore. Essa função utiliza uma árvore que deve estar armazenada no objeto tree Parameters: tipo - sobe|desce no - objeto no que será movimentado Return: true|false - se o movimento ocorreu */ function core_movimentaNo(tipo,no) { var movimenta = false; if(tipo == "sobe") { var noanterior = no.previousSibling; if(noanterior) { if(noanterior.previousSibling && noanterior.data.tipo != "etiqueta") { tree.popNode(no); no.insertBefore(noanterior); tree.draw(); movimenta = true; } } } if(tipo == "desce") { var noseguinte = no.nextSibling; if(noseguinte) { tree.popNode(no); no.insertAfter(noseguinte); tree.draw(); movimenta = true; } } return movimenta; } /* Function: core_handleSuccess Processa o retorno da chamada em ajax quando tiver sucesso. Esta é uma função genérica, pouco usada. Parameters: o - string retornada pelo ajax */ function core_handleSuccess(o) { //div onde será mostrado o log if(!$i('logajax')) {document.body.innerHTML += "
";} log = $i('logajax'); YAHOO.log("The success handler was called. tId: " + o.tId + ".", "info", "example"); if(o.responseText !== undefined) { log.innerHTML = "
  • Transaction id: " + o.tId + "
  • "; log.innerHTML += "
  • HTTP status: " + o.status + "
  • "; log.innerHTML += "
  • Status code message: " + o.statusText + "
  • "; log.innerHTML += "
  • HTTP headers:
      " + o.getAllResponseHeaders + "
  • "; log.innerHTML += "
  • Server response: " + o.responseText + "
  • "; log.innerHTML += "
  • Argument object: Object ( [foo] => " + o.argument.foo + " [bar] => " + o.argument.bar +" )
  • "; } } /* Function: core_handleFailure Processa o retorno da chamada em ajax quando tiver falhado. Parameters: o - string retornada pelo ajax */ function core_handleFailure(o,texto) { //div onde será mostrado o log //alert(texto) if(!$i('logajax')) {return;} log = $i('logajax'); //YAHOO.log("The failure handler was called. tId: " + o.tId + ".", "info", "example"); if(o.responseText !== undefined) { if(o.statusText != "OK"){ log.innerHTML = "
    • Transaction id: " + o.tId + "
    • "; log.innerHTML += "
    • HTTP status: " + o.status + "
    • "; log.innerHTML += "
    • Status code message: " + o.statusText + "
    • "; log.innerHTML += "
    • PHP message: " + texto + "
    "; } } if (!YAHOO.carregando.container.wait) { YAHOO.carregando.container.wait = new YAHOO.widget.Panel("wait",{width: "240px",fixedcenter: true,close: true,draggable: false,zindex:4,modal: true,visible: false}); YAHOO.carregando.container.wait.setHeader("Aguarde..."); YAHOO.carregando.container.wait.render(document.body); } else {YAHOO.carregando.container.wait.setBody(log.innerHTML);} } /* Function: core_makeRequest Executa uma chamada em ajax. Parameters: sUrl - url que será executada callback - função que processará o retorno tipo - GET ou POST postpar - parametros quando o tipo for post */ function core_makeRequest(sUrl,callback,tipo,postpar) { sUrl = escape(sUrl); re = new RegExp("%3F", "g"); sUrl = sUrl.replace(re,'?'); re = new RegExp("%3D", "g"); sUrl = sUrl.replace(re,'='); re = new RegExp("%26", "g"); sUrl = sUrl.replace(re,'&'); re = new RegExp("%3A", "g"); sUrl = sUrl.replace(re,':'); if(arguments.length == 2) {tipo = "GET";} if(postpar){ //YAHOO.util.Connect.setDefaultPostHeader('application/json;charset=ISO-8859-1'); YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postpar); } else{ YAHOO.util.Connect.asyncRequest(tipo, sUrl, callback); } } /* Function: core_carregando Mostra uma janela de aguarde Parameters: tipo - ativa|desativa|string com uma mensagem */ function core_carregando(tipo) { var img = "../../imagens/aguarde.gif"; if(i3GEO && i3GEO.configura.locaplic){ img = i3GEO.configura.locaplic+"/imagens/aguarde.gif"; } YAHOO.namespace("carregando.container"); if (!YAHOO.carregando.container.wait) { YAHOO.carregando.container.wait = new YAHOO.widget.Panel("wait",{width: "240px",fixedcenter: true,close: true,draggable: false,zindex:4,modal: true,visible: false}); YAHOO.carregando.container.wait.setHeader("Aguarde..."); YAHOO.carregando.container.wait.setBody(""); YAHOO.carregando.container.wait.render(document.body); } else {YAHOO.carregando.container.wait.show();} YAHOO.carregando.container.wait.setBody(""); if(tipo == "ativa") {YAHOO.carregando.container.wait.show();} if(tipo == "desativa") {YAHOO.carregando.container.wait.hide();} if(tipo != "ativa" && tipo != "desativa") {YAHOO.carregando.container.wait.setBody(" "+tipo);} } /* Function: core_dialogoContinua Mostra um diálogo do tipo sim não Parameters: handleYes - função para sim handleNo - função para não mensagem - mensagem do diálogo largura - largura do diálogo em px */ function core_dialogoContinua(handleYes,handleNo,mensagem,largura,cabecalho) { if(!cabecalho || cabecalho === ""){ cabecalho = "Tem certeza?"; } // Instantiate the Dialog YAHOO.namespace("continua.container"); YAHOO.continua.container.simpledialog1 = new YAHOO.widget.SimpleDialog("simpledialog1", { width: largura+"px", fixedcenter: true, visible: false, draggable: false, close: true, text: mensagem, icon: YAHOO.widget.SimpleDialog.ICON_HELP, modal: true, constraintoviewport: true, buttons: [ { text:"Sim", handler:handleYes, isDefault:true }, { text:"Não", handler:handleNo } ] } ); YAHOO.continua.container.simpledialog1.setHeader(cabecalho); YAHOO.continua.container.simpledialog1.render(document.body); YAHOO.continua.container.simpledialog1.show(); } /* Function: core_dialogoPergunta Mostra um diálogo do tipo sim não com uma pergunta Parameters: handleYes - função para sim handleNo - função para não mensagem - mensagem do diálogo largura - largura do diálogo em px */ function core_dialogoPergunta(handleYes,handleNo,mensagem,largura) { // Instantiate the Dialog YAHOO.namespace("continua.container"); YAHOO.continua.container.simpledialog1 = new YAHOO.widget.SimpleDialog("simpledialog1", { width: largura+"px", fixedcenter: true, visible: false, draggable: false, close: true, text: mensagem, icon: "", modal: true, constraintoviewport: true, buttons: [ { text:"Continua", handler:handleYes, isDefault:true }, { text:"Cancela", handler:handleNo } ] } ); //YAHOO.continua.container.simpledialog1.setHeader("Tem certeza?"); YAHOO.continua.container.simpledialog1.render(document.body); YAHOO.continua.container.simpledialog1.show(); } /* Function: core_ativaPainelAjuda Parameters: id - id do elemento que receberá o painel botao - id do elemento que deverá ser lcicado para abrir o painel */ function core_ativaPainelAjuda(id,botao) { $i(id).style.display = "block"; if(!YAHOO.admin.container.panelAjuda) { YAHOO.admin.container.panelAjuda = new YAHOO.widget.Panel(id, { width:"350px", height:"200px",overflow:"auto", visible:false,constraintoviewport:true } ); YAHOO.admin.container.panelAjuda.render(); } if(arguments.length == 2) YAHOO.util.Event.addListener(botao, "click", YAHOO.admin.container.panelAjuda.show, YAHOO.admin.container.panelAjuda, true); else YAHOO.admin.container.panelAjuda.show(); } /* Function: core_ativaPainelTexto Parameters: id - id do elemento que receberá o painel */ function core_ativaPainelTexto(id) { YAHOO.admin.container.panelTexto = new YAHOO.widget.Panel(id, { width:"350px", height:"200px",overflow:"auto", visible:false,constraintoviewport:true } ); YAHOO.admin.container.panelTexto.render(); YAHOO.admin.container.panelTexto.show(); } /* function: core_pegaPerfis Pega a lista de perfis Parameters: funcao - (opcional) string com o nome da funcao que será executada após a chamada ajax ter tido sucesso Return $perfis - variável global com o objeto perfis $perfisArray - array com a lista de perfis */ function core_pegaPerfis(funcao) { if(arguments.length == 0) {funcao = "";} //pega a lista de perfis var sUrl = "../php/menutemas.php?funcao=pegaPerfis"; var callback = { success:function(o) { try { $perfis = YAHOO.lang.JSON.parse(o.responseText); $perfisArray = new Array(); for (var i=0;i<$perfis.length;i++) {$perfisArray.push($perfis[i].perfil);} if(funcao != "") eval(funcao); } catch(e){core_handleFailure(o,o.responseText);} }, failure:core_handleFailure, argument: { foo:"foo", bar:"bar" } }; core_makeRequest(sUrl,callback); } /* function: core_pegaMapfiles Pega a lista de mapfiles Parameters: funcaoM - (opcional) nome da funcao que será executada ao terminar a busca pelos dados letra - (opcional) letra inicial utilizada para filtrar a lista filtro - (opcional) string com o filtro, por exemplo, "'download_tema' = 'SIM'" */ function core_pegaMapfiles(funcaoM,letra,filtro) { if(arguments.length == 0){ letra = ""; filtro = ""; funcaoM = ""; } if(arguments.length == 1){ letra = ""; filtro = ""; } if(arguments.length == 2){ filtro = ""; } var sUrl = "../php/menutemas.php?funcao=listaMapsTemas&letra="+letra+"&filtro="+filtro; var callbackM = { success:function(o) { try { $mapfiles = YAHOO.lang.JSON.parse(o.responseText); if(funcaoM != "") eval(funcaoM); } catch(e){core_handleFailure(o,o.responseText);} }, failure:core_handleFailure, argument: { foo:"foo", bar:"bar" } }; core_makeRequest(sUrl,callbackM); } /* Function: core_comboMapfiles Cria um combo para escolha do mapfile Parameters: onde - id do elemento que receberá o combo id - id do combo que será criado marcar - valor que será marcado como selecionado funcao - string com o nome da função que será executada no evento onchange recarrega {booblean} - força recarregar o combo de mapfiles */ function core_comboMapfiles(onde,id,marcar,funcao,recarrega) { if(arguments.length == 3) {funcao = "";} if(!recarrega) {recarrega = false;} if($mapfiles == "" || recarrega === true) { core_pegaMapfiles("core_comboMapfiles('"+onde+"','"+id+"','"+marcar+"','"+funcao+"')"); } else { if (funcao != "") {funcao = "onchange='"+funcao+"'";} ins = "

    "; $i(onde).innerHTML = ins; } } /* Function: core_comboPerfis Cria um combo para escolha de perfil Parameters: onde - id do elemento que receberá o combo id - id do combo que será criado marcar - valor que será marcado como selecionado funcao - string com o nome da função que será executada no evento onchange */ function core_comboPerfis(onde,id,marcar,funcao) { if(arguments.length == 3) {funcao = "";} if($perfis == "") { core_pegaPerfis("core_comboPerfis('"+onde+"','"+id+"','"+marcar+"','"+funcao+"')"); } else { if (funcao != "") {funcao = "onchange='"+funcao+"'";} ins = "

    "; $i(onde).innerHTML = ins; } } /* Function: core_comboPranchas Cria um combo para escolha de pranchas de um atlas Parameters: onde - id do elemento que receberá o combo id - id do combo que será criado marcar - valor que será marcado como selecionado funcao - string com o nome da função que será executada no evento onchange */ function core_comboPranchas(onde,id,marcar,funcao,id_atlas) { var sUrl = "../php/atlas.php?funcao=pegaPranchas&id_atlas="+id_atlas; var callback = { success:function(o) { try { var valores = YAHOO.lang.JSON.parse(o.responseText); if(arguments.length == 3) {funcao = "";} if (funcao != "") {funcao = "onchange='"+funcao+"'";} ins = "

    "; $i(onde).innerHTML = ins; } catch(e){core_handleFailure(e,o.responseText);} }, failure:core_handleFailure, argument: { foo:"foo", bar:"bar" } }; core_makeRequest(sUrl,callback); } /* Function: core_comboGrupos Cria um combo para escolha de um grupo Parameters: onde - id do elemento que receberá o combo id - id do combo que será criado marcar - valor que será marcado como selecionado funcao - string com o nome da função que será executada no evento onchange */ function core_comboGrupos(onde,id,marcar,funcao) { var sUrl = "../php/menutemas.php?funcao=pegaGrupos"; var callback = { success:function(o) { try { var valores = YAHOO.lang.JSON.parse(o.responseText); if(arguments.length == 3) {funcao = "";} if (funcao != "") {funcao = "onchange='"+funcao+"'";} ins = "

    "; $i(onde).innerHTML = ins; } catch(e){core_handleFailure(e,o.responseText);} }, failure:core_handleFailure, argument: { foo:"foo", bar:"bar" } }; core_makeRequest(sUrl,callback); } /* Function: core_comboSubGrupos Cria um combo para escolha de um sub-grupo Parameters: onde - id do elemento que receberá o combo id - id do combo que será criado marcar - valor que será marcado como selecionado funcao - string com o nome da função que será executada no evento onchange */ function core_comboSubGrupos(onde,id,marcar,funcao) { var sUrl = "../php/menutemas.php?funcao=pegaSubGrupos"; var callback = { success:function(o) { try { var valores = YAHOO.lang.JSON.parse(o.responseText); if(arguments.length == 3) {funcao = "";} if (funcao != "") {funcao = "onchange='"+funcao+"'";} ins = "

    "; $i(onde).innerHTML = ins; } catch(e){core_handleFailure(e,o.responseText);} }, failure:core_handleFailure, argument: { foo:"foo", bar:"bar" } }; core_makeRequest(sUrl,callback); } /* Function: core_comboTemas Cria um combo para escolha de um tema Parameters: onde - id do elemento que receberá o combo id - id do combo que será criado marcar - valor que será marcado como selecionado funcao - string com o nome da função que será executada no evento onchange */ function core_comboTemas(onde,id,marcar,funcao) { var sUrl = "../php/menutemas.php?funcao=pegaTemas2"; var callback = { success:function(o) { try { var valores = YAHOO.lang.JSON.parse(o.responseText); if(arguments.length == 3) {funcao = "";} if (funcao != "") {funcao = "onchange='"+funcao+"'";} ins = "

    "; $i(onde).innerHTML = ins; } catch(e){core_handleFailure(e,o.responseText);} }, failure:core_handleFailure, argument: { foo:"foo", bar:"bar" } }; core_makeRequest(sUrl,callback); } /* function: core_pegaTags Pega a lista de tags Parameters: funcao - (opcional) nome da funcao que será executada ao terminar a busca pelos dados */ function core_pegaTags(funcao) { if(arguments.length == 0) {funcao = "";} var sUrl = "../php/menutemas.php?funcao=pegaTags"; var callback = { success:function(o) { try { $tags = YAHOO.lang.JSON.parse(o.responseText); if($tags == ""){$tags = " ";} if(funcao != "") eval(funcao); } catch(e){core_handleFailure(e,o.responseText);} }, failure:core_handleFailure, argument: { foo:"foo", bar:"bar" } }; core_makeRequest(sUrl,callback); } /* Function: core_comboTags Cria um combo para escolha de tags Parameters: onde - id do elemento que receberá o combo id - id do combo que será criado marcar - valor que será marcado como selecionado change - nome da função do evento onchange */ function core_comboTags(onde,id,change) { if($tags == "") { core_pegaTags("core_comboTags('"+onde+"','"+id+"','"+change+"')"); } else { ins = "

    "; $i(onde).innerHTML = ins; } } /* Function: gera uma janela flutuante com opções de escolha baseadas em checkbox Parameters: valores - array com os valores de cada checkbox textos - array com os nomes de cada checkbox selecionados - array com os valores marcados target - objeto para receber o resultado record - objeto record (utilize "" para escapar) key - chave (nome do item) (utilize "" para escapar) unico - sim|nao indicando se apenas um pode ser escolhido funcaoFinal - (opcional) funcao que sera executada no final do processo */ function core_menuCheckBox(valores,textos,selecionados,target,record,key,unico,funcaoFinal){ if(!unico){ unico = "nao"; } function on_menuCheckBoxChange(p_oEvent){ var cks,i, ins = [], status = "OK"; if(p_oEvent && p_oEvent.newValue){ status = p_oEvent.newValue.get("value"); } if(status == "OK") { cks = $i("core_menuCK_bd").getElementsByTagName("input"); ins = []; for (i=0;i"; record.setData(key,ins.toString()); } else{ target.value = ins.toString(); } } YAHOO.admin.container.panelCK.destroy(); YAHOO.admin.container.panelCK = null; if(funcaoFinal){ funcaoFinal.call(); } }; var novoel,ndiv,og_core,onde,ins,i,novoCK,ck,j; if(!YAHOO.admin.container.panelCK){ novoel = document.createElement("div"); novoel.id = "core_menuCK"; ndiv = document.createElement("div"); ndiv.className= "yui-dt-editor"; ndiv.style.backgroundColor = "white"; ndiv.style.height = "144px"; ndiv.style.width = "100%"; ndiv.style.overflow = "auto"; ndiv.innerHTML = "

    " + "
    "; novoel.appendChild(ndiv); document.body.appendChild(novoel); og_core = new YAHOO.widget.ButtonGroup({id:"okcancel_checkbox_id", name:"okcancel_checkbox_id", container:"core_botoesCabecalho" }); og_core.addButtons([ { label: "OK", value: "OK", checked: false}, { label: "Fecha", value: "CANCEL", checked: false } ]); og_core.on("checkedButtonChange", on_menuCheckBoxChange); YAHOO.admin.container.panelCK = new YAHOO.widget.Panel("core_menuCK", { draggable:false,modal:true,zindex:"100",close:false,underlay:false,width:"200px", height:"158px",overflow:"auto", visible:false,constraintoviewport:false } ); YAHOO.admin.container.panelCK.render(); } onde = $i("core_menuCK_bd"); ins = []; onde.innerHTML = ""; for (i=0;i"+textos[i]+"
    "); } else{ ins.push(""+textos[i]+"
    "); } } if(valores.length > 0){ ins.push("
    "); novoCK.innerHTML = ins.join(" "); novoCK.style.width = "100%"; onde.appendChild(novoCK); } YAHOO.admin.container.panelCK.moveTo(YAHOO.util.Dom.getX(target),YAHOO.util.Dom.getY(target)); YAHOO.admin.container.panelCK.show(); $i("core_menuCK_bd").getElementsByTagName("div")[0].style.textAlign = "left"; } /* Function: core_combosimnao Retorna os itens option de um combo sim nao */ function core_combosimnao(marcar) { var ins = ""; } return(ins); } /* Function: core_geraLinhas Gera campos de formulário Parameters: dados - objeto no formato {"linhas":[{titulo:"Nome do tema:",size:"50",id:"Enome_tema",value:i.nome_tema,tipo:"text",div:""}]} */ function core_geraLinhas(dados) { var nparam = dados.linhas.length; var contaParam = 0; var resultado = ""; core_geralinhasEscondeAjuda = function(id){ var a = $i(id+"_ajuda"), i = $i(id+"_imgajuda"); if(a.style.display == "block"){ a.style.display = "none"; i. src = "../../imagens/oxygen/16x16/help-about.png"; } else{ a.style.display = "block"; i. src = "../../imagens/oxygen/16x16/help-about.png"; } }; do{ var p = dados.linhas[contaParam]; if(p.tipo == "text" || p.tipo == "cor" || p.tipo == "textarea"){ if(!p.size){ p.size = "50"; } if(p.ajuda){ var idajuda; if(p.id !== ""){ idajuda = p.id + contaParam; } else{ idajuda = "a"+parseInt(255*(Math.random()),10); } //var temp = "$i('"+idajuda+"_ajuda').style.display='block' " resultado += "

     "+p.titulo+"
    "; resultado += ""; } else{ resultado += "

    "+p.titulo+"
    "; } if(p.texto){ resultado += "
    "+p.texto+""; } if(p.id != ""){ if(!p.value){ p.value = ""; } if(p.tipo == "textarea"){ resultado += ""; } else{ resultado += ""; } if(p.tipo == "cor"){ resultado += " "; } } if(p.div){ resultado += p.div; } resultado += "
    "; } contaParam++; } while(contaParam < nparam) return(resultado); } /* Function: core_ativaBotaoAdicionaLinha Ativa o botão que adiciona uma linha em uma tabela no banco de dados e na interface HTML Essa função utiliza o objeto datatable que deve estar armazenado na variável myDataTable Parameters: myDataTable - objeto dataTable do YUI sUrl - url com o programa que será executado no servidor idBotao - id do elemento com o botão nomeFuncao - nome da função que será executada ao concluir a adição da linha */ function core_ativaBotaoAdicionaLinha(sUrl,idBotao,nomeFuncao) { if(arguments.length == 1){ idBotao = "adiciona"; } if(arguments.length < 3){ nomeFuncao = ""; } var adicionalinha = function(){ core_carregando("ativa"); core_carregando(" adicionando um novo registro"); var callback = { success:function(o){ var texto = ""; try{ core_carregando("desativa"); if(nomeFuncao != ""){ if(YAHOO.lang.isFunction(nomeFuncao)){ nomeFuncao.call(o); } else{ eval(nomeFuncao+"()"); } } else{ texto = YAHOO.lang.JSON.parse(o.responseText)[0]; if(texto === ""){ texto = "Clique para editar"; } myDataTable.addRow(texto,0); } } catch(e){ core_handleFailure(e,o.responseText); } }, failure:core_handleFailure, argument: { foo:"foo", bar:"bar" } }; core_makeRequest(sUrl,callback); }; //cria o botão de adição de um novo menu new YAHOO.widget.Button(idBotao,{ onclick: { fn: adicionalinha } }); } /* Function: core_pegaDados Busca dados no servidor via Ajax e executa uma função de retorno com os daods Parameters: mensagem - mensagem que será mostrada na tela sUrl - url do programa que será executado no servidor funcaoRetorno - funcao que será executada ao terminar a busca pelos dados */ function core_pegaDados(mensagem,sUrl,funcaoRetorno) { if("mensagem" != "") core_carregando(mensagem); var callback = { success:function(o) { try { if(funcaoRetorno != "") {eval(funcaoRetorno+"(YAHOO.lang.JSON.parse(o.responseText))");} core_carregando("desativa"); } catch(e) { if("mensagem" != "") {core_carregando("desativa");} core_handleFailure(o,o.responseText); } }, failure:core_handleFailure, argument: { foo:"foo", bar:"bar" } }; core_makeRequest(sUrl,callback); } /* Function: core_gravaLinha Grava um registro no banco de dados e atualiza o datatable atual Essa função utiliza o objeto datatable que deve estar armazenado na variável myDataTable Parameters: mensagem - mensagem que será mostrada na tela row - objeto row que foi clicado pelo usuário. Utilizado para se obter os daods do recordset sUrl - url do programa que será executado nomeFuncao - nome da funcao que sera executada após gravar os dados (opcional) */ function core_gravaLinha(mensagem,row,sUrl,nomeFuncao) { core_carregando("ativa"); core_carregando(mensagem); if(arguments.length < 4) nomeFuncao = ""; var callback = { success:function(o) { core_carregando("desativa"); var rec = myDataTable.getRecordSet().getRecord(row); var linha = myDataTable.getTrEl(rec); if(nomeFuncao != "") { eval(nomeFuncao+"()"); try {myDataTable.updateRow(rec,YAHOO.lang.JSON.parse(o.responseText)[0]);} catch(e){} } else { myDataTable.updateRow(rec,YAHOO.lang.JSON.parse(o.responseText)[0]); } linha.style.color = ""; linha.style.textDecoration = "none"; }, failure:core_handleFailure, argument: { foo:"foo", bar:"bar" } }; core_makeRequest(sUrl,callback); } /* Function: core_excluiLinha Excluí um registro no banco de dados e atualiza o datatable. Essa função utiliza o objeto datatable que deve estar armazenado na variável myDataTable Parameters: sUrl - url do programa que será executado row - objeto row de um datatable mensagem - */ function core_excluiLinha(sUrl,row,mensagem,cabecalho,tabela) { if(!cabecalho){ cabecalho = ""; } //dialogo // Define various event handlers for Dialog var handleYes = function() { this.hide(); core_carregando("ativa"); core_carregando(mensagem); var callback = { success:function(o) { try { if(YAHOO.lang.JSON.parse(o.responseText) == "erro") { core_carregando("Não foi possível excluir. Verifique se não existem outras tabelas com registros vinculados a este"); setTimeout("core_carregando('desativa')",3000); } else { if(tabela){ tabela.deleteRow(row); } else{ myDataTable.deleteRow(row); } core_carregando("desativa"); } } catch(e){core_handleFailure(o,o.responseText);} }, failure:core_handleFailure, argument: { foo:"foo", bar:"bar" } }; core_makeRequest(sUrl,callback); }; var handleNo = function(){ this.hide(); }; var mensagem = "Exclui o registro?"; var largura = "300"; core_dialogoContinua(handleYes,handleNo,mensagem,largura,cabecalho); } /* Function: core_excluiNoTree Excluí um registro no banco de dados e atualiza o treeview. Essa função utiliza o objeto treeview que deve estar armazenado na variável tree Parameters: sUrl - url do programa que será executado no - objeto no de um treeview mensagem - */ function core_excluiNoTree(sUrl,no,mensagem,cabecalho) { if(!cabecalho){ cabecalho = ""; } //dialogo // Define various event handlers for Dialog var handleYes = function() { this.hide(); core_carregando("ativa"); core_carregando(mensagem); var callback = { success:function(o) { try { if(YAHOO.lang.JSON.parse(o.responseText) == "erro") { core_carregando("Não foi possível excluir. Verifique se não existem outras tabelas com registros vinculados a este"); setTimeout("core_carregando('desativa')",3000); } else { if(no){ tree.removeNode(no); tree.draw(); } core_carregando("desativa"); } } catch(e){core_handleFailure(o,o.responseText);} }, failure:core_handleFailure, argument: { foo:"foo", bar:"bar" } }; core_makeRequest(sUrl,callback); }; var handleNo = function() { this.hide(); }; var mensagem = "Exclui o registro?"; var largura = "300"; core_dialogoContinua(handleYes,handleNo,mensagem,largura,cabecalho); } /** Function: core_montaEditor Monta uma janela flutuante com um formulário. O editor possui um div com id=editor_bd que deve ser usado para incluir o formulário. Parameters: funcaoOK - string com o nome da função que será executada quando o botão OK for pressionado. funcaoClose - nome da funcao que será executada quando a janela for fechada. Pode ser "" para escapar. titulo - titulo da janela modal - boolean */ function core_montaEditor(funcaoOK,w,h,funcaoClose,titulo,modal) { if(arguments.length == 0) { funcaoOK = ""; w = "400px"; h = "354px"; modal == true; } if(arguments.length < 2) { w = "400px"; h = "354px"; modal == true; } if(!titulo){ titulo = "Editor"; modal == true; } if(!funcaoClose){ funcaoClose = ""; modal == true; } if(!$i("janela_editor")) { var novoel = document.createElement("div"); novoel.id = "janela_editor"; var ins = '
    '+titulo+'
    '; ins += "
    "; ins += "
    "; ins += "
    "; novoel.innerHTML = ins; document.body.appendChild(novoel); if(funcaoOK != "") { var lb = $i("okcancel_checkbox"); lb.innerHTML = ""; new YAHOO.widget.Button( "okcancel_checkboxOK", {onclick:{fn: function(){ eval(funcaoOK); }}} ); new YAHOO.widget.Button( "okcancel_checkboxCANCEL", {onclick:{fn: function(){ YAHOO.admin.container.panelEditor.destroy(); YAHOO.admin.container.panelEditor = null; }}} ); } YAHOO.admin.container.panelEditor = new YAHOO.widget.Panel("janela_editor", { fixedcenter:"contained",close:true,width:w, overflow:"auto",modal: modal,visible:false,constraintoviewport:true } ); YAHOO.admin.container.panelEditor.render(); } else { if($i("editor_bd")) {$i("editor_bd").innerHTML == "";} } var fecha = function() { try{ YAHOO.admin.container.panelEditor.destroy(); YAHOO.admin.container.panelEditor = null; } catch(e){} try{ if(funcaoClose != "") {eval(funcaoClose+"()");} } catch(e){}; }; YAHOO.util.Event.addListener(YAHOO.admin.container.panelEditor.close, "click", fecha); YAHOO.admin.container.panelEditor.show(); //registra a janela no gerenciador de janelas default da classe i3GEO.janela caso ela exista try{ YAHOO.i3GEO.janela.manager.register(YAHOO.admin.container.panelEditor); } catch(e){} } /* Function idiomaSel Retorna o idioma selecionado pesquisando no elemento select com id = "idioma" */ function idiomaSel(){ var idioma = "pt"; if($i("idioma")) {idioma = $i("idioma").value;} return idioma; } function core_abreCor(janela,elemento) { if(i3GEO.configura == undefined ) {i3GEO.configura = {locaplic: "../.."};} i3GEO.util.abreCor("",elemento,"rgb"); $i("i3geo_janelaCori").style.width = "350px"; $i("i3geo_janelaCori").style.height = "290px"; //i3GEO.janela.cria("350px","250px","../../ferramentas/colorpicker/index.htm?doc=&elemento="+elemento+"&tipo=rgb","","","Cor","i3geo_janelaCor",true); } function core_desativaforms(lista){ var n = lista.length, i,t; for (i=0;i" + letras[i] + " "; } ins += "

    "; if(onde != ""){ o = document.getElementById(onde); if(o){ o.innerHTML = "

    Iniciais: ou

    "+ins+"

    "; document.getElementById("forminiciais").onsubmit = function(){ var v = document.getElementById("iniciaisLetras").value; i3GEO.util.insereCookie("I3GEOletraAdmin", v); eval(nomeFuncao+"('"+v+"');"); return false; }; document.getElementById("_listaDeLetras").onclick = function(){ document.getElementById("iniciaisLetras").value = letraAtual; }; } } else{ return ins; } } // //carregador de javascript // //define o local correto dos programas // (function(){ var scriptLocation = ""; var scripts = document.getElementsByTagName('script'); for (var i = 0; i < scripts.length; i++) { var src = scripts[i].getAttribute('src'); if (src) { var index = src.lastIndexOf("core.js"); // is it found, at the end of the URL? if ((index > -1) && (index + "core.js".length == src.length)) { scriptLocation = src.slice(0, -"core.js".length); break; } } } // //arquivos javascript que serão carregados // /* */ var jsfiles = []; var cssfiles = []; if(typeof(i3GEO) !== 'undefined' && i3GEO.locaplic){ scriptLocation = ""; jsfiles = []; // //arquivos css // cssfiles =new Array( i3GEO.configura.locaplic+"/admin/html/admin.css" ); } else{ jsfiles = new Array( "../../pacotes/yui290/build/utilities/utilities.js", "../../pacotes/yui290/build/yahoo-dom-event/yahoo-dom-event.js", "../../pacotes/yui290/build/element/element-min.js", "../../pacotes/yui290/build/datasource/datasource-min.js", "../../pacotes/yui290/build/datatable/datatable-min.js", "../../pacotes/yui290/build/button/button-min.js", "../../pacotes/yui290/build/dragdrop/dragdrop-min.js", "../../pacotes/yui290/build/container/container-min.js", "../../pacotes/yui290/build/connection/connection-min.js", "../../pacotes/yui290/build/treeview/treeview.js", "../../pacotes/yui290/build/json/json-min.js", "../../pacotes/yui290/build/menu/menu-min.js", "../../pacotes/yui290/build/editor/editor-min.js", "../../pacotes/yui290/build/resize/resize-min.js", "../../pacotes/cpaint/cpaint2.inc.compressed.js", "../../classesjs/compactados/classe_util_compacto.js", "../../classesjs/compactados/classe_login_compacto.js", "../../classesjs/compactados/classe_janela_compacto.js", "../../classesjs/compactados/classe_php_compacto.js", "../../classesjs/compactados/dicionario_compacto.js", "../../classesjs/compactados/classe_idioma_compacto.js", "../../classesjs/compactados/classe_guias_compacto.js", "../../classesjs/compactados/classe_arvoredetemas_compacto.js" ); // //arquivos css // cssfiles =new Array( "../../pacotes/yui290/build/tabview/assets/skins/sam/tabview.css", "../../pacotes/yui290/build/button/assets/skins/sam/button.css", "../../pacotes/yui290/build/fonts/fonts-min.css", "../../pacotes/yui290/build/datatable/assets/skins/sam/datatable.css", "../../pacotes/yui290/build/container/assets/skins/sam/container.css", "../../pacotes/yui290/build/treeview/assets/skins/sam/treeview.css", "../../pacotes/yui290/build/editor/assets/skins/sam/editor.css", "../../pacotes/yui290/build/resize/assets/skins/sam/resize.css", "../../css/janelaflutuante.css", "../html/admin.css" ); } // //carrega os arquivos js // var allScriptTags = ""; for (var i = 0; i < jsfiles.length; i++) { var currentScriptTag = ""; allScriptTags += currentScriptTag; } document.write(allScriptTags); // //carrega os arquivos css // var allCssTags = ""; for (var i = 0; i < cssfiles.length; i++) { var currentCssTag = ""; allCssTags += currentCssTag; } document.write(allCssTags); })();