YAHOO.namespace("example.container"); function initMenu() { ativaBotaoAdicionaMapa() core_carregando("ativa"); core_ativaPainelAjuda("ajuda","botaoAjuda"); //core_pegaPerfis("pegaMapas()"); pegaMapas(); } function ativaBotaoAdicionaMapa() { var adicionalinha = function() { core_carregando("ativa"); core_carregando(" adicionando um novo registro"); var sUrl = "../php/mapas.php?funcao=alterarMapa"; var callback = { success:function(o) { try { myDataTable.addRow(YAHOO.lang.JSON.parse(o.responseText)[0],0); core_carregando("desativa"); } 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 var adiciona = new YAHOO.widget.Button("adiciona",{ onclick: { fn: adicionalinha } }); } function pegaMapas() { core_carregando("buscando mapas..."); var sUrl = "../php/mapas.php?funcao=pegaMapas"; var callback = { success:function(o) { try {montaTabela(YAHOO.lang.JSON.parse(o.responseText));} catch(e){core_handleFailure(e,o.responseText);} }, failure:core_handleFailure, argument: { foo:"foo", bar:"bar" } }; core_makeRequest(sUrl,callback) } 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:"mais",formatter:formatMais}, {label:"id",key:"id_mapa", formatter:formatTextoId}, {label:"nome",key:"nome_mapa", formatter:formatTextoId}, {label:"ordem",key:"ordem_mapa", formatter:formatTextoId} ]; myDataSource = new YAHOO.util.DataSource(dados); myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSARRAY; myDataSource.responseSchema = { fields: ["id_mapa","nome_mapa","ordem_mapa"] }; 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_mapa'),target); } if (column.key == 'mais') { var record = this.getRecord(target); core_carregando("ativa"); core_carregando("buscando dados..."); $clicouId = record.getData('id_mapa'); $recordid = record.getId(); var sUrl = "../php/mapas.php?funcao=pegaDadosMapa&id_mapa="+record.getData('id_mapa'); var callback = { success:function(o) { try { montaEditorMapa(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 montaEditorMapa(dados,id,recordid) { function on_editorCheckBoxChange(p_oEvent) { var ins = ""; if(p_oEvent.newValue.get("value") == "OK") { gravaDadosMapa(id,recordid); } else { YAHOO.example.container.panelEditorMapa.destroy(); YAHOO.example.container.panelEditorMapa = null; } }; if(!YAHOO.example.container.panelEditorMapa) { 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.panelEditorMapa = new YAHOO.widget.Panel("janela_editor", { fixedcenter:true,close:false,width:"400px", height:"400px",overflow:"auto", visible:false,constraintoviewport:true } ); YAHOO.example.container.panelEditorMapa.render(); } YAHOO.example.container.panelEditorMapa.show(); //carrega os dados na janela $i("editor_bd").innerHTML = montaDivMapas(dados[0]) core_carregando("desativa"); // //preenche a div com a lista de mapfiles e perfis // core_comboMapfiles("comboMapfiles","Etemas_mapa","",'registraMapfile(this.value,\"Etemas_mapa\")'); core_comboPerfis("comboPerfis","Eperfil_mapa","","registraPerfil(this.value)"); } function registraPerfil(valor) { var inp = $i("Eperfil_mapa") var perfis = inp.value if(perfis == "") inp.value = valor else inp.value = perfis+" "+valor } function registraMapfile(valor,onde) { var inp = $i(onde) var temas = inp.value if(temas == "") inp.value = valor else inp.value = temas+" "+valor } function montaDivMapas(i) { var ins = "" //ins += "

Mapfile (código do mapfile que será utilizado para criar a camada no i3geo):" //ins += "

Buscando...
"; ins += "

Ordem de apresentação do mapa:
"; ins += "

" ins += "

Nome do mapa:
"; ins += "

" ins += "

Publicado?
" ins += "

" ins += "

Descrição:
"; ins += "

" ins += "

Extensão geográfica:
"; ins += "

" ins += "

URL da imagem miniatura:
"; ins += "

" ins += "" ins += "

Temas que serão incluídos nesse mapa (utilize os códigos dos mapfiles mostrados na lista abaixo):

" ins += "

" ins += "
Buscando...
"; ins += "

Temas que serão ligados. Devem constar na lista de temas incluídos:

" ins += "

" //ins += "
Buscando...
"; ins += "

Perfis que podem ver este mapa:

" ins += "

" ins += "
Buscando...
"; ins += "

Outros parâmetros (separe com '&'):
"; ins += "

" ins += "

Link direto para abertura do mapa (despreza os outros parâmetros):
"; ins += "

" return(ins) } function excluiLinha(id,row) { //dialogo // Define various event handlers for Dialog var handleYes = function() { this.hide(); core_carregando("ativa"); core_carregando(" excluindo o registro do id= "+id); var sUrl = "../php/mapas.php?funcao=excluirMapa&id="+id; 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 elementos vinculados a este mapa"); setTimeout("core_carregando('desativa')",3000) } else { myDataTable.deleteRow(row); core_carregando("desativa"); } } catch(e){core_handleFailure(e,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) } function gravaDadosMapa(id,recordid) { var campos = new Array("publicado","ordem","perfil","ligados","temas","desc","ext","imagem","linkdireto","nome","outros") var par = "" for (i=0;iNão foi possível excluir. Verifique se não existem víncilos com outros elementos"); setTimeout("core_carregando('desativa')",3000) } else { var rec = myDataTable.getRecordSet().getRecord(recordid); myDataTable.updateRow(rec,YAHOO.lang.JSON.parse(o.responseText)[0]) core_carregando("desativa"); } YAHOO.example.container.panelEditorMapa.destroy(); YAHOO.example.container.panelEditorMapa = null; } catch(e){core_handleFailure(e,o.responseText);} }, failure:core_handleFailure, argument: { foo:"foo", bar:"bar" } }; core_makeRequest(sUrl,callback) } YAHOO.util.Event.addListener(window, "load", initMenu);