/* Title: webservices.js Funções que controlam a interface do editor do cadastro de Web Services 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@mma.gov.br 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/webservices.js */ YAHOO.namespace("example.container"); /* Function: initMenu Inicializa o editor */ function initMenu() { core_ativaBotaoAdicionaLinha("../php/webservices.php?funcao=alterarWS","adiciona") core_carregando("ativa"); core_ativaPainelAjuda("ajuda","botaoAjuda"); pegaWS(); } /* Function: pegaWS Obtém a lista de WS */ function pegaWS() { // //pega o tipo de WS que será listado se tiver sido definido na url // var tipows = ""; try{ var u = window.location.href.split("?"); var u = u[1].split("="); tipows = u[1]; } catch(e){tipows = "";} core_pegaDados("buscando endereços...","../php/webservices.php?funcao=pegaWS&tipows="+tipows,"montaTabela") } /* Function: montaTabela Monta a tabela de edição */ function montaTabela(dados) { YAHOO.example.InlineCellEditing = new function() { // Custom formatter for "address" column to preserve line breaks var formatTextoId = function(elCell, oRecord, oColumn, oData) { elCell.innerHTML = "

" + oData + "

"; }; var formatMais = function(elCell, oRecord, oColumn) { elCell.innerHTML = "
"; }; var formatExclui = function(elCell, oRecord, oColumn) { elCell.innerHTML = "
"; }; var myColumnDefs = [ {key:"excluir",label:"excluir",formatter:formatExclui}, {key:"mais",label:"editar",formatter:formatMais}, {label:"id",key:"id_ws", formatter:formatTextoId}, {label:"tipo",key:"tipo_ws", formatter:formatTextoId}, {label:"nome",key:"nome_ws", formatter:formatTextoId}, ]; myDataSource = new YAHOO.util.DataSource(dados); myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSARRAY; myDataSource.responseSchema = {fields: ["id_ws","nome_ws","tipo_ws"]}; myDataTable = new YAHOO.widget.DataTable("tabela", myColumnDefs, myDataSource); // Set up editing flow myDataTable.subscribe('cellClickEvent',function(ev) { var target = YAHOO.util.Event.getTarget(ev); var column = this.getColumn(target); if (column.key == 'excluir') { var record = this.getRecord(target); excluiLinha(record.getData('id_ws'),target); } if (column.key == 'mais') { var record = this.getRecord(target); core_carregando("ativa"); core_carregando("buscando dados..."); $clicouId = record.getData('id_ws'); $recordid = record.getId(); var sUrl = "../php/webservices.php?funcao=pegaDados&id_ws="+record.getData('id_ws'); var callback = { success:function(o) { try { montaEditor(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) } }); // Hook into custom event to customize save-flow of "radio" editor myDataTable.subscribe("editorUpdateEvent", function(oArgs) { if(oArgs.editor.column.key === "active") { this.saveCellEditor(); } }); myDataTable.subscribe("editorBlurEvent", function(oArgs) { this.cancelCellEditor(); }); }; core_carregando("desativa"); } function montaEditor(dados,id,recordid) { function on_editorCheckBoxChange(p_oEvent) { var ins = ""; if(p_oEvent.newValue.get("value") == "OK") { gravaDados(id,recordid); } else { YAHOO.example.container.panelEditor.destroy(); YAHOO.example.container.panelEditor = null; } }; if(!YAHOO.example.container.panelEditor) { var novoel = document.createElement("div"); novoel.id = "janela_editor"; var ins = '
Editor
'; ins += "
"; ins += "
"; novoel.innerHTML = ins; document.body.appendChild(novoel); var editorBotoes = new YAHOO.widget.ButtonGroup({id:"okcancel_checkbox_id", name: "okcancel_checkbox_id", container: "okcancel_checkbox" }); editorBotoes.addButtons([ { label: "Salva", value: "OK", checked: false}, { label: "Cancela", value: "CANCEL", checked: false } ]); editorBotoes.on("checkedButtonChange", on_editorCheckBoxChange); YAHOO.example.container.panelEditor = new YAHOO.widget.Panel("janela_editor", { fixedcenter:true,close:false,width:"400px", height:"400px",overflow:"auto", visible:false,constraintoviewport:true } ); YAHOO.example.container.panelEditor.render(); } YAHOO.example.container.panelEditor.show(); //carrega os dados na janela $i("editor_bd").innerHTML = montaDiv(dados[0]) core_carregando("desativa"); } function montaDiv(i) { var param = { "linhas":[ {titulo:"Nome:",id:"Enome_ws",size:"50",value:i.nome_ws,tipo:"text",div:""}, {titulo:"Descrição:",id:"Edesc_ws",size:"50",value:i.desc_ws,tipo:"text",div:""}, {titulo:"Autor:",id:"Eautor_ws",size:"50",value:i.autor_ws,tipo:"text",div:""}, {titulo:"Endereço:",id:"Elink_ws",size:"50",value:i.link_ws,tipo:"text",div:""} ] } var ins = "" ins += core_geraLinhas(param) ins += "

Tipo:
" ins += "