From ecbcffdba9ed477f775cd423b6e7e2341b181614 Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Mon, 30 Jun 2008 21:42:26 +0000 Subject: [PATCH] --- admin/html/i3geoadmin_tags.html | 35 ----------------------------------- admin/html/mapas.html | 98 +++++++++++++++++++++++++++++++++++++++++--------------------------------------------------------- admin/html/tags.html | 43 +++++++++++++++++++++++++++++++++++++++++++ admin/index.html | 2 +- admin/js/core.js | 51 ++++++++++++++++++++++++++++++++++++++++++++++++--- admin/js/grupos.js | 2 ++ admin/js/mapas.js | 493 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- admin/js/menu.js | 2 ++ admin/js/perfis.js | 2 ++ admin/js/subgrupos.js | 2 ++ admin/js/tags.js | 202 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ admin/php/admin.php | 7 +++++++ admin/php/mapas.php | 43 +++++++++++++++++++++++++++---------------- admin/php/menutemas.php | 74 ++++++++++++++++++++++++++++++++++++++++++++++---------------------------- 14 files changed, 719 insertions(+), 337 deletions(-) delete mode 100644 admin/html/i3geoadmin_tags.html create mode 100644 admin/html/tags.html create mode 100644 admin/js/tags.js diff --git a/admin/html/i3geoadmin_tags.html b/admin/html/i3geoadmin_tags.html deleted file mode 100644 index f5687b3..0000000 --- a/admin/html/i3geoadmin_tags.html +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - -
-

Administração do i3geo - menu de temas

-

Voltar

-
-
- - - \ No newline at end of file diff --git a/admin/html/mapas.html b/admin/html/mapas.html index 6fd2ccc..926b7f1 100644 --- a/admin/html/mapas.html +++ b/admin/html/mapas.html @@ -1,62 +1,46 @@ + - - - - - + + Mapas + + + - + +
-

Administração do i3geo - mapas

-

Voltar

-
-
- - - \ No newline at end of file +
+
+
Ajuda
+
+ Este programa permite editar a lista de mapas.

+ Os mapas nada mais são que links especiais com definições de parâmetros + para a abertura do i3geo. Os links permitem definir os temas que serão mostrados, + a extensão geográfica, interface, etc. Normalmente, a lista de mapas é mostrada + na guia "mapas" do i3geo.

+ A lista de mapas é baseada no banco admin.db.

+ A lista de IPs dos usuários que podem administrar o i3geo é definida no + arquivo i3geo/ms_configura.php +
+
+
+ +
+

Mapas existentes:

+
+ +
+ diff --git a/admin/html/tags.html b/admin/html/tags.html new file mode 100644 index 0000000..a2994e1 --- /dev/null +++ b/admin/html/tags.html @@ -0,0 +1,43 @@ + + + + + Tags + + + + + +
+
+

Administração do i3geo - tags

+ +
+
+
Ajuda
+
+ Este programa permite editar a lista de tags.

+ Tags são como palavras-chave que podem ser adicionadas aos temas para a realização de buscas.

+ A lista de tags é baseada no banco admin.db.

+ A lista de IPs dos usuários que podem administrar o i3geo é definida no + arquivo i3geo/ms_configura.php +
+
+
+ +
+

Tags existentes: (clique na célula para editar e salve a linha editada)

+
+
+
+ diff --git a/admin/index.html b/admin/index.html index 970342d..ead3eda 100644 --- a/admin/index.html +++ b/admin/index.html @@ -84,7 +84,7 @@ que por sua vez contém temas.

- + diff --git a/admin/js/core.js b/admin/js/core.js index 7921e85..8d85d77 100644 --- a/admin/js/core.js +++ b/admin/js/core.js @@ -54,7 +54,12 @@ Variable: $tags Armazena o objeto com a lista de tags */ var $tags = ""; +/* +Variable: $perfis +Armazena o objeto com a lista de perfis +*/ +var $perfis = ""; /* Function: core_handleSuccess @@ -296,22 +301,62 @@ 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_comboMapfiles(onde,id,marcar) +function core_comboMapfiles(onde,id,marcar,funcao) { + if(arguments.length == 3) + {var funcao = "";} if($mapfiles == "") { - core_pegaMapfiles("core_comboMapfiles('"+onde+"','"+id+"','"+marcar+"')") + core_pegaMapfiles("core_comboMapfiles('"+onde+"','"+id+"','"+marcar+"','"+funcao+"')") } else { - ins = "" ins += core_comboObjeto($mapfiles,"","",marcar) 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) + {var funcao = "";} + if($perfis == "") + { + core_pegaPerfis("core_comboPerfis('"+onde+"','"+id+"','"+marcar+"','"+funcao+"')") + } + else + { + if (funcao != "") + {var funcao = "onchange='"+funcao+"'";} + ins = "

" + $i(onde).innerHTML = ins; + } +} + +/* function: core_pegaTags Pega a lista de tags diff --git a/admin/js/grupos.js b/admin/js/grupos.js index 3feebe7..690c43b 100644 --- a/admin/js/grupos.js +++ b/admin/js/grupos.js @@ -152,6 +152,8 @@ function gravaLinha(row) { success:function(o) { + var rec = myDataTable.getRecordSet().getRecord(row); + myDataTable.updateRow(rec,YAHOO.lang.JSON.parse(o.responseText)[0]) core_carregando("desativa"); }, failure:core_handleFailure, diff --git a/admin/js/mapas.js b/admin/js/mapas.js index 1882bbc..ca39e55 100644 --- a/admin/js/mapas.js +++ b/admin/js/mapas.js @@ -1,224 +1,323 @@ -/* -Title: Arvore - -Funções javascript utilizadas no sistema de administração do menu de mapas - -File: i3geo/admin/mapas.js - -About: Licença - -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; -tanto a versão 2 da Licença. -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. -*/ -/* -Function: iniciaAdmin - -Inicializa as variáveis globais e checa o cadastro do editor do sistema de administração - -Ao retornar, por default, executa a função montaParametros() -*/ -function iniciaAdmin() +YAHOO.namespace("example.container"); +function initMenu() { - verificaEditores() + ativaBotaoAdicionaMapa() + core_carregando("ativa"); + core_ativaPainelAjuda("ajuda","botaoAjuda"); + //core_pegaPerfis("pegaMapas()"); + pegaMapas(); } -function montaParametros() +function ativaBotaoAdicionaMapa() { - if(!$i("resultado")) - {document.body.innerHTML += "
"} - listaMapas() + 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: listaMapas - -Monta o html com os parametros e os divs que receberão os dados dos formulários. - -Para cada registro na variável $parameters, é montado um formulário. -*/ -function listaMapas() +function pegaMapas() { - $i("resultado").innerHTML = $mensagemAguarde - var ins = "
Mapas" - var comboMapas = function(retorno) + core_carregando("buscando mapas..."); + var sUrl = "../php/mapas.php?funcao=pegaMapas"; + var callback = { - var d = retorno.data; - var nm = retorno.data.length - ins += "

Ajuda
Editar a lista de perfis
Editar a lista de tags (palavras-chave)
Editar a lista de tags (palavras-chave)
Editar a lista de menus
Editar a lista de grupos
Editar a lista de sub-grupos
" - ins += "
Selecione o mapa:

" - } - var cp = new cpaint(); - cp.set_response_type("JSON"); - var p = "../php/mapas.php?funcao=pegaMapas"; - cp.call(p,"pegaMapas",comboMapas); + 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 pegaDadosMapa(id_mapa) +function montaEditorMapa(dados,id,recordid) { - $i("dadosMapa").innerHTML = $mensagemAguarde - var retorna = function(retorno) + function on_editorCheckBoxChange(p_oEvent) { - var d = retorno.data.mapa[0] - var ins = ""; - var param = { - "linhas":[ - {titulo:"Nome",prefixoid:"nome_",id:"id_mapa",valor:"nome_mapa"}, - {titulo:"Descrição",prefixoid:"desc_",id:"id_mapa",valor:"desc_mapa"}, - {titulo:"Extensão",prefixoid:"ext_",id:"id_mapa",valor:"ext_mapa"}, - {titulo:"Imagem",prefixoid:"imagem_",id:"id_mapa",valor:"imagem_mapa"}, - {titulo:"Outros",prefixoid:"outros_",id:"id_mapa",valor:"outros_mapa"}, - {titulo:"Direto",prefixoid:"linkdireto_",id:"id_mapa",valor:"linkdireto_mapa"}, - {titulo:"Ordem",prefixoid:"ordem_",id:"id_mapa",valor:"ordem_mapa"} - ] + var ins = ""; + if(p_oEvent.newValue.get("value") == "OK") + { + gravaDadosMapa(id,recordid); } - ins += (geraLinhas(d,param,3)); - ins += "" - ins += "" - ins += "" - ins += "" - ins += "" - ins += "" - ins += "" - ins += "" - var idtemp = "perfis_"+d.id_mapa - ins += "" - ins += "" - ins += "" - ins += "" - ins += "" - ins += "" - ins += "" - ins += "" - - ins += "" - ins += "" - ins += "" - - ins += "
Temas: " - ins += "
Perfis:
Ligados:
Publicado:
" - ins += "" - ins += "" - ins += "
" - if(d.linkdireto_mapa != "") - {var l = d.linkdireto_mapa;} else { - var l = "../ms_criamapa.php?temasa="+d.temas_mapa+"&layers="+d.ligados_mapa - if (d.ext_mapa != "") - {l += "&mapext="+d.ext_mapa} - if (d.outros_mapa != "") - {l += "&"+d.outros_mapa} + YAHOO.example.container.panelEditorMapa.destroy(); + YAHOO.example.container.panelEditorMapa = null; } - ins += "
Testar: "+l+"" - if(d.imagem_mapa != "") - ins += "
" - ins += "
" - if(!$i(d.id_mapa)) - ins += "" - $i("dadosMapa").innerHTML = ins + }; + 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(); } - var cp = new cpaint(); - cp.set_response_type("JSON"); - var p = "../php/mapas.php?funcao=pegaDadosMapa&id_mapa="+id_mapa; - cp.call(p,"pegaDadosMapa",retorna); + 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 adicionaTema(id,codigo) +function registraPerfil(valor) { - var valor = $i("temas_"+id).value - if(valor == "") - $i("temas_"+id).value = codigo + var inp = $i("Eperfil_mapa") + var perfis = inp.value + if(perfis == "") + inp.value = valor else - $i("temas_"+id).value += " "+codigo + inp.value = perfis+" "+valor } -function alterarMapa(id_mapa,onde) + +function registraMapfile(valor,onde) { - var retorna = function(retorno) - { - if(id_mapa == "") - listaMapas(retorno); - else - {ins = "";pegaDadosMapa(id_mapa)} - } - if (id_mapa != "") - { - var nome = $i("nome_"+id_mapa).value - var desc = $i("desc_"+id_mapa).value - var ext = $i("ext_"+id_mapa).value - var imagem = $i("imagem_"+id_mapa).value - var outros = $i("outros_"+id_mapa).value - var linkdireto = $i("linkdireto_"+id_mapa).value - var temas = $i("temas_"+id_mapa).value - var ligados = $i("ligados_"+id_mapa).value - var perfil = $i("perfis_"+id_mapa).value - var ordem_mapa = $i("ordem_"+id_mapa).value - var publicado_mapa = $i("publicado_"+id_mapa).value - } + var inp = $i(onde) + var temas = inp.value + if(temas == "") + inp.value = valor else - { - var nome = "" - var desc = "" - var ext = "" - var imagem = "" - var outros = "" - var linkdireto = "" - var temas = "" - var ligados = "" - var perfil = "" - var ordem_mapa = "" - var publicado_mapa = "" - var id_mapa = ""; - var perfil = ""; - var nome = prompt("Nome do novo Mapa",""); - if (nome==null || nome=="") + 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 = { - return; - } - } - var p = "../php/mapas.php?funcao=alterarMapa&publicado_mapa="+publicado_mapa+"&ordem_mapa="+ordem_mapa+"&id_mapa="+id_mapa+"&nome="+nome+"&desc="+desc+"&ext="+ext+"&imagem="+imagem+"&outros="+outros+"&linkdireto="+linkdireto+"&temas="+temas+"&ligados="+ligados+"&perfil="+perfil - cPaint.call(p,"",retorna); + 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 excluir(id) +function gravaDadosMapa(id,recordid) { - if(confirm("Você realmente quer fazer isso?")) + 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) } -function importarXmlMapas() -{ - $i("resultado").innerHTML = $mensagemAguarde - var retorna = function(retorno) - {$i("resultado").innerHTML = retorno.data} - var p = "../php/mapas.php?funcao=importarXmlMapas&xml="+$i("arquivo").value; - cPaint.call(p,"",retorna); -} \ No newline at end of file +YAHOO.util.Event.addListener(window, "load", initMenu); \ No newline at end of file diff --git a/admin/js/menu.js b/admin/js/menu.js index 67602c2..1ab5d72 100644 --- a/admin/js/menu.js +++ b/admin/js/menu.js @@ -163,6 +163,8 @@ function gravaLinha(row) { success:function(o) { + var rec = myDataTable.getRecordSet().getRecord(row); + myDataTable.updateRow(rec,YAHOO.lang.JSON.parse(o.responseText)[0]) core_carregando("desativa"); }, failure:core_handleFailure, diff --git a/admin/js/perfis.js b/admin/js/perfis.js index bec3ca5..35f4af3 100644 --- a/admin/js/perfis.js +++ b/admin/js/perfis.js @@ -149,6 +149,8 @@ function gravaLinha(row) { success:function(o) { + var rec = myDataTable.getRecordSet().getRecord(row); + myDataTable.updateRow(rec,YAHOO.lang.JSON.parse(o.responseText)[0]) core_carregando("desativa"); }, failure:core_handleFailure, diff --git a/admin/js/subgrupos.js b/admin/js/subgrupos.js index 7b2aa86..9a07031 100644 --- a/admin/js/subgrupos.js +++ b/admin/js/subgrupos.js @@ -152,6 +152,8 @@ function gravaLinha(row) { success:function(o) { + var rec = myDataTable.getRecordSet().getRecord(row); + myDataTable.updateRow(rec,YAHOO.lang.JSON.parse(o.responseText)[0]) core_carregando("desativa"); }, failure:core_handleFailure, diff --git a/admin/js/tags.js b/admin/js/tags.js new file mode 100644 index 0000000..084f100 --- /dev/null +++ b/admin/js/tags.js @@ -0,0 +1,202 @@ +YAHOO.namespace("example.container"); +function initMenu() +{ + ativaBotaoAdicionaTag(); + core_carregando("ativa"); + core_ativaPainelAjuda("ajuda","botaoAjuda"); + pegaTags(); +} +function ativaBotaoAdicionaTag() +{ + var adicionalinha = function() + { + core_carregando("ativa"); + core_carregando(" adicionando um novo registro"); + var sUrl = "../php/menutemas.php?funcao=alteraTags"; + var callback = + { + success:function(o) + { + try + { + myDataTable.addRow(YAHOO.lang.JSON.parse(o.responseText)[0],0); + core_carregando("desativa"); + } + catch(e){core_handleFailure(o,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 pegaTags() +{ + core_carregando("buscando tags..."); + var sUrl = "../php/menutemas.php?funcao=pegaTags"; + var callback = + { + success:function(o) + { + try + {montaTabela(YAHOO.lang.JSON.parse(o.responseText));} + catch(e){core_handleFailure(o,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 formatTexto = function(elCell, oRecord, oColumn, oData) + { + elCell.innerHTML = "

" + oData + "

"; + }; + var formatTextoId = function(elCell, oRecord, oColumn, oData) + { + elCell.innerHTML = "

" + oData + "

"; + }; + + var formatSalva = function(elCell, oRecord, oColumn) + { + elCell.innerHTML = "
"; + }; + var formatExclui = function(elCell, oRecord, oColumn) + { + elCell.innerHTML = "
"; + }; + var myColumnDefs = [ + {key:"excluir",label:"excluir",formatter:formatExclui}, + {label:"salvar",formatter:formatSalva}, + {label:"id",key:"id_tag", formatter:formatTextoId}, + {label:"nome",resizeable:true,key:"nome", formatter:formatTexto, editor:"textbox"} + ]; + myDataSource = new YAHOO.util.DataSource(dados); + myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSARRAY; + myDataSource.responseSchema = + { + fields: ["id_tag","nome"] + }; + myDataTable = new YAHOO.widget.DataTable("tabela", myColumnDefs, myDataSource); + // Set up editing flow + myDataTable.highlightEditableCell = function(oArgs) + { + var elCell = oArgs.target; + var column = myDataTable.getColumn(oArgs.target); + if(!YAHOO.lang.isNull(column.editor)) + { + YAHOO.util.Dom.addClass(elCell,'yui-dt-highlighted'); + } + }; + myDataTable.unhighlightEditableCell = function(oArgs) + { + var elCell = oArgs.target; + if(elCell.style.cursor="pointer") + { + YAHOO.util.Dom.removeClass(elCell,'yui-dt-highlighted'); + } + }; + myDataTable.subscribe("cellMouseoverEvent", myDataTable.highlightEditableCell); + myDataTable.subscribe("cellMouseoutEvent", myDataTable.unhighlightEditableCell); + myDataTable.subscribe('cellClickEvent',function(ev) + { + var target = YAHOO.util.Event.getTarget(ev); + var column = this.getColumn(target); + if(YAHOO.example.container.panelCK) + { + YAHOO.example.container.panelCK.destroy(); + YAHOO.example.container.panelCK = null; + } + if (column.key == 'excluir') + { + var record = this.getRecord(target); + excluiLinha(record.getData('id_tag'),target); + } + else + {this.onEventShowCellEditor(ev);} + }); + // 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 gravaLinha(row) +{ + var r = myDataTable.getRecordSet().getRecord(row); + var id_tag = r.getData("id_tag"); + var nome = r.getData("nome"); + core_carregando("ativa"); + core_carregando(" gravando registro do id= "+id_tag); + var sUrl = "../php/menutemas.php?funcao=alteraTags&nome="+nome+"&id="+id_tag; + var callback = + { + success:function(o) + { + var rec = myDataTable.getRecordSet().getRecord(row); + myDataTable.updateRow(rec,YAHOO.lang.JSON.parse(o.responseText)[0]) + core_carregando("desativa"); + }, + failure:core_handleFailure, + argument: { foo:"foo", bar:"bar" } + }; + core_makeRequest(sUrl,callback) +} +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/menutemas.php?funcao=excluirRegistro&id="+id+"&tabela=tags"; + 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 itens vinculados a este tag"); + setTimeout("core_carregando('desativa')",3000) + } + 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) +} +YAHOO.util.Event.addListener(window, "load", initMenu); \ No newline at end of file diff --git a/admin/php/admin.php b/admin/php/admin.php index cf389e9..923bc1c 100644 --- a/admin/php/admin.php +++ b/admin/php/admin.php @@ -79,6 +79,13 @@ if($funcao == "limpar") $dbh = null; exit; } +function retornaJSON($obj) +{ + if(extension_loaded('zlib')){ob_start('ob_gzhandler');} + echo json_encode($obj); + if(extension_loaded('zlib')){ob_end_flush();} + exit; +} function verificaDuplicados($sql,$dbh) { $res = $dbh->query($sql,PDO::FETCH_ASSOC); diff --git a/admin/php/mapas.php b/admin/php/mapas.php index 5c32cd1..bd0ecc0 100644 --- a/admin/php/mapas.php +++ b/admin/php/mapas.php @@ -28,7 +28,6 @@ File: i3geo/admin/mapas.php */ include_once("admin.php"); -$cp = new cpaint(); //faz a busca da função que deve ser executada switch ($funcao) { @@ -39,24 +38,26 @@ switch ($funcao) break; case "pegaMapas": - $cp->set_data(pegaDados('SELECT id_mapa,nome_mapa,publicado_mapa from i3geoadmin_mapas order by ordem_mapa')); - $cp->return_data(); + retornaJSON(pegaDados('SELECT id_mapa,nome_mapa,ordem_mapa from i3geoadmin_mapas order by ordem_mapa')); + exit; break; case "pegaDadosMapa": $dadosMapa = pegaDados('SELECT * from i3geoadmin_mapas where id_mapa ='.$id_mapa); - $cp->set_data(array("mapa"=>$dadosMapa)); - $cp->return_data(); + retornaJSON($dadosMapa); + exit; break; case "alterarMapa": - $cp->set_data(alterarMapa()); - $cp->return_data(); + $novo = alterarMapa(); + $sql = "SELECT * from i3geoadmin_mapas WHERE id_mapa = '".$novo."'"; + retornaJSON(pegaDados($sql)); + exit; break; - case "excluir": - $cp->set_data(excluirMapa()); - $cp->return_data(); + case "excluirMapa": + retornaJSON(excluirMapa()); + exit; break; case "importarXmlMapas": @@ -71,19 +72,29 @@ Altera o registro de um mapa */ function alterarMapa() { - global $publicado_mapa,$ordem_mapa,$id_mapa,$desc,$ext,$imagem,$outros,$nome,$linkdireto,$temas,$ligados,$perfil; + global $publicado_mapa,$ordem_mapa,$id_mapa,$desc_mapa,$ext_mapa,$imagem_mapa,$outros_mapa,$nome_mapa,$linkdireto_mapa,$temas_mapa,$ligados_mapa,$perfil_mapa; try { - $nome = mb_convert_encoding($nome,"UTF-8","ISO-8859-1"); - $desc = mb_convert_encoding($desc,"UTF-8","ISO-8859-1"); + //$nome = mb_convert_encoding($nome,"UTF-8","ISO-8859-1"); + //$desc = mb_convert_encoding($desc,"UTF-8","ISO-8859-1"); require_once("conexao.php"); + $retorna = ""; if($id_mapa != "") - $dbhw->query("UPDATE i3geoadmin_mapas SET publicado_mapa='$publicado_mapa',ordem_mapa='$ordem_mapa',desc_mapa = '$desc',ext_mapa = '$ext',imagem_mapa = '$imagem',outros_mapa = '$outros',nome_mapa = '$nome', linkdireto_mapa = '$linkdireto',temas_mapa = '$temas',ligados_mapa = '$ligados',perfil_mapa = '$perfil' WHERE id_mapa = $id_mapa"); + { + $dbhw->query("UPDATE i3geoadmin_mapas SET publicado_mapa='$publicado_mapa',ordem_mapa='$ordem_mapa',desc_mapa = '$desc_mapa',ext_mapa = '$ext_mapa',imagem_mapa = '$imagem_mapa',outros_mapa = '$outros_mapa',nome_mapa = '$nome_mapa', linkdireto_mapa = '$linkdireto_mapa',temas_mapa = '$temas_mapa',ligados_mapa = '$ligados_mapa',perfil_mapa = '$perfil_mapa' WHERE id_mapa = $id_mapa"); + $retorna = $id_mapa; + } else - $dbhw->query("INSERT INTO i3geoadmin_mapas (publicado_mapa,ordem_mapa,perfil_mapa,desc_mapa,ext_mapa,imagem_mapa,linkdireto_mapa,outros_mapa,temas_mapa,ligados_mapa,nome_mapa) VALUES ('','','','','','','','','','','$nome')"); + { + $dbhw->query("INSERT INTO i3geoadmin_mapas (publicado_mapa,ordem_mapa,perfil_mapa,desc_mapa,ext_mapa,imagem_mapa,linkdireto_mapa,outros_mapa,temas_mapa,ligados_mapa,nome_mapa) VALUES ('','','','','','','','','','','')"); + $id = $dbh->query("SELECT * FROM i3geoadmin_mapas"); + $id = $id->fetchAll(); + $id = intval($id[count($id)-1]['id_mapa']); + $retorna = $id; + } $dbhw = null; $dbh = null; - return "ok"; + return $retorna; } catch (PDOException $e) { diff --git a/admin/php/menutemas.php b/admin/php/menutemas.php index d55106e..76c0414 100644 --- a/admin/php/menutemas.php +++ b/admin/php/menutemas.php @@ -47,6 +47,7 @@ switch ($funcao) case "pegaMenus": $dados = pegaDados('SELECT * from i3geoadmin_menus order by nome_menu'); retornaJSON($dados); + exit; break; case "pegaTags": @@ -115,8 +116,10 @@ switch ($funcao) break; case "alteraTags": - $cp->set_data(alteraTags()); - $cp->return_data(); + $novo = alteraTags(); + $sql = "SELECT * from i3geoadmin_tags WHERE id_tag = '".$novo."'"; + retornaJSON(pegaDados($sql)); + exit; break; case "alteraPerfis": @@ -139,12 +142,15 @@ switch ($funcao) } } if($tabela == "tags") - {excluiTagTemas($id);$tabela = "i3geoadmin_tags";$coluna = "id_tag";} + { + $tabela = "i3geoadmin_tags"; + $coluna = "id_tag"; + excluiTagTemas($id); + } if($tabela == "perfis") { $tabela = "i3geoadmin_perfis"; $coluna = "id_perfil"; - if($id != "") excluiPerfil($id); } if($tabela == "subgrupos") @@ -189,18 +195,13 @@ switch ($funcao) exit; break; } -function retornaJSON($obj) -{ - if(extension_loaded('zlib')){ob_start('ob_gzhandler');} - echo json_encode($obj); - if(extension_loaded('zlib')){ob_end_flush();} - exit; -} function excluiPerfil($id) { require_once("conexao.php"); foreach($dbh->query("select * from i3geoadmin_perfis where perfil = $id") as $row) {$perfil = $row["perfil"];} + if($perfil == "") + {return;} $q = $dbh->query("select * from i3geoadmin_mapas"); foreach($q as $row) { @@ -270,11 +271,14 @@ function excluiTagTemas($id) require_once("conexao.php"); foreach($dbh->query("select * from i3geoadmin_tags where id_tag = $id") as $row) {$nometag = $row["nome"];} - foreach($dbh->query("select * from i3geoadmin_temas") as $row) + if($nometag == ""){return;} + $q = $dbh->query("select * from i3geoadmin_temas"); + foreach($q as $row) { - $ts = $row['tags_tema']; + $t = $row['tags_tema']; $i = $row['id_tema']; - $ts = str_replace($nometag,"",$ts); + $ts = str_replace($nometag,"",$t); + if($t != $ts) $dbhw->query("UPDATE i3geoadmin_temas SET tags_tema = '$ts' WHERE id_tema = $i"); } } @@ -385,7 +389,7 @@ function alteraMenus() if($id != "") { $dbhw->query("UPDATE i3geoadmin_menus SET publicado_menu = '$publicado_menu',aberto = '$aberto', nome_menu = '$nome', desc_menu = '$desc', perfil_menu = '$perfil' WHERE id_menu = $id"); - $retorna = "ok"; + $retorna = $id; } else { @@ -493,7 +497,7 @@ function alteraPerfis() $dbhw->query("UPDATE i3geoadmin_sistemasf SET perfil_funcao = '$ts' WHERE id_funcao = $i"); } } - $retorna = "ok"; + $retorna = $id; } else { @@ -520,29 +524,42 @@ function alteraTags() $dbh = ""; //$nome = mb_convert_encoding($nome,"UTF-8","ISO-8859-1"); include("conexao.php"); + $retorna = ""; if($id != "") { if(!verificaDuplicados("select * from i3geoadmin_tags where nome = '$nome'",$dbh)) { $original = ""; - foreach($dbh->query("select * from i3geoadmin_tags where id_tag = $id") as $row) + $q = $dbh->query("select * from i3geoadmin_tags where id_tag = $id"); + foreach($q as $row) {$original = $row["nome"];} $dbhw->query("UPDATE i3geoadmin_tags SET nome = '$nome' WHERE id_tag = $id"); //exclui os registros do tag alterado nos temas - foreach($dbh->query("select * from i3geoadmin_temas") as $row) - { - $ts = $row['tags_tema']; - $i = $row['id_tema']; - $ts = str_replace($original,$nome,$ts); - $dbhw->query("UPDATE i3geoadmin_temas SET tags_tema = '$ts' WHERE id_tema = $i"); - } + if($original != "") + { + $q = $dbh->query("select * from i3geoadmin_temas"); + foreach($q as $row) + { + $ts = $row['tags_tema']; + $i = $row['id_tema']; + $ts = str_replace($original,$nome,$ts); + $dbhw->query("UPDATE i3geoadmin_temas SET tags_tema = '$ts' WHERE id_tema = $i"); + } + } } + $retorna = $id; } else - $dbhw->query("INSERT INTO i3geoadmin_tags (nome) VALUES ('$nome')"); + { + $dbhw->query("INSERT INTO i3geoadmin_tags (nome) VALUES ('$nome')"); + $id = $dbh->query("SELECT * FROM i3geoadmin_tags"); + $id = $id->fetchAll(); + $id = intval($id[count($id)-1]['id_tag']); + $retorna = $id; + } $dbhw = null; $dbh = null; - return "ok"; + return $retorna; } catch (PDOException $e) { @@ -566,7 +583,7 @@ function alteraGrupos() if($id != "") { $dbhw->query("UPDATE i3geoadmin_grupos SET nome_grupo = '$nome', desc_grupo = '$desc' WHERE id_grupo = $id"); - $retorna = "ok"; + $retorna = $id; } else { @@ -602,7 +619,7 @@ function alteraSubGrupos() if($id != "") { $dbhw->query("UPDATE i3geoadmin_subgrupos SET nome_subgrupo = '$nome', desc_subgrupo = '$desc' WHERE id_subgrupo = $id"); - $retorna = "ok"; + $retorna = $id; } else { @@ -639,6 +656,7 @@ function alteraTemas() if($id != "") { $dbhw->query("UPDATE i3geoadmin_temas SET tags_tema='$tags', link_tema='$link', nome_tema ='$nome',desc_tema='$desc',codigo_tema='$codigo',tipoa_tema='$tipoa',download_tema='$download',ogc_tema='$ogc',kml_tema='$kml' WHERE id_tema = $id"); + $retorna = $id; } else { -- libgit2 0.21.2