From 076ffe45cc8d72fe8f8b6d5c8d86a211e84b1761 Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Thu, 2 Oct 2008 14:06:52 +0000 Subject: [PATCH] --- admin/js/core.js | 46 ++++++++++++++++++++++++++++++++++++++++++++++ admin/js/sistemas.js | 143 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------- admin/js/sistemasold.js | 237 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- admin/php/parsemapfile.php | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++----- admin/php/sistemas.php | 9 +++++++-- menutemas/admin.db | Bin 46080 -> 0 bytes 6 files changed, 196 insertions(+), 295 deletions(-) delete mode 100644 admin/js/sistemasold.js diff --git a/admin/js/core.js b/admin/js/core.js index 6b5fd13..d8d7756 100644 --- a/admin/js/core.js +++ b/admin/js/core.js @@ -778,6 +778,52 @@ function core_excluiNoTree(sUrl,no,mensagem) var largura = "300" core_dialogoContinua(handleYes,handleNo,mensagem,largura) } +/** +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. +*/ +function core_montaEditor(funcaoOK) +{ + function on_editorCheckBoxChange(p_oEvent) + { + var ins = ""; + if(p_oEvent.newValue.get("value") == "OK") + { + eval(funcaoOK); + } + 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(); +} // //carregador de javascript diff --git a/admin/js/sistemas.js b/admin/js/sistemas.js index c45202e..9e520e0 100644 --- a/admin/js/sistemas.js +++ b/admin/js/sistemas.js @@ -76,15 +76,15 @@ function montaArvore(dados) { tree = new YAHOO.widget.TreeView("tabela"); tree.setDynamicLoad(loadNodeData, currentIconMode); - adicionaNosRaiz(dados) var root = tree.getRoot(); var tempNode = new YAHOO.widget.TextNode('', root, false); tempNode.isLeaf = true; - tree.draw(); core_carregando("desativa"); } buildTree(); }(); + adicionaNosRaiz(dados) + tree.draw(); } function adicionaNos(no,dados,redesenha) { @@ -105,7 +105,7 @@ function adicionaNosRaiz(dados,redesenha) { var conteudo = " " conteudo += " " - conteudo += "  "+dados[i].nome_sistema + conteudo += "  "+dados[i].nome_sistema+"" var d = {html:conteudo,id_sistema:dados[i].id_sistema,tipo:"sistema"}; var tempNode = new YAHOO.widget.HTMLNode(d, root, false,true); } @@ -134,62 +134,68 @@ function editar(tipo,id) var sUrl = "../php/sistemas.php?funcao=pegaFuncao&id_funcao="+id; core_makeRequest(sUrl,callback) } -} -function montaEditorFuncoes(dados,id) -{ - function on_editorCheckBoxChange(p_oEvent) + if(tipo == "sistema") { - var ins = ""; - if(p_oEvent.newValue.get("value") == "OK") - { - gravaDadosFuncao(id); - } - else + core_carregando("ativa"); + core_carregando(" buscando dados"); + var callback = { - YAHOO.example.container.panelEditorFuncao.destroy(); - YAHOO.example.container.panelEditorFuncao = null; - } - }; - if(!YAHOO.example.container.panelEditorFuncao) - { - 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.panelEditorFuncao = new YAHOO.widget.Panel("janela_editor", { fixedcenter:true,close:false,width:"400px", height:"400px",overflow:"auto", visible:false,constraintoviewport:true } ); - YAHOO.example.container.panelEditorFuncao.render(); + success:function(o) + { + try + { + montaEditorSistemas(YAHOO.lang.JSON.parse(o.responseText)[0],id); + core_carregando("desativa"); + } + catch(e){core_handleFailure(e,o.responseText);} + }, + failure:core_handleFailure, + argument: { foo:"foo", bar:"bar" } + }; + var sUrl = "../php/sistemas.php?funcao=pegaSistema&id_sistema="+id; + core_makeRequest(sUrl,callback) } - YAHOO.example.container.panelEditorFuncao.show(); - //carrega os dados na janela +} +function montaEditorSistemas(dados,id) +{ + core_montaEditor("gravaDadosSistema('"+id+"')") + $i("editor_bd").innerHTML = montaDivSistemas(dados) + core_carregando("desativa"); + core_comboPerfis("comboPerfis","selPerfil","","registraPerfil(this.value,\"Eperfil_sistema\")") +} +function montaEditorFuncoes(dados,id) +{ + core_montaEditor("gravaDadosFuncao('"+id+"')") $i("editor_bd").innerHTML = montaDivFuncoes(dados) core_carregando("desativa"); - // - //preenche a div com a lista de tags - // - //core_comboTags("comboTags","Etags_tema","registraTag"); - // - //preenche a div com a lista de mapfiles - // - //core_comboMapfiles("comboMapfiles","Ecodigo_tema",dados[0].codigo_tema); + core_comboPerfis("comboPerfis","selPerfil","","registraPerfil(this.value,\"Eperfil_funcao\")") } -function registraTag(valor) +function registraPerfil(valor,id) { - var inp = $i("Etags_tema") + var inp = $i(id) var tags = inp.value if(tags == "") inp.value = valor else inp.value = tags+" "+valor } +function montaDivSistemas(i) +{ + var param = + { + "linhas":[ + {titulo:"Nome:",id:"Enome_sistema",size:"50",value:i.nome_sistema,tipo:"text",div:""}, + {titulo:"Perfis - escolha da lista abaixo:",id:"Eperfil_sistema",size:"50",value:i.perfil_sistema,tipo:"text",div:"
Buscando...
"} + ] + } + var ins = "" + ins += core_geraLinhas(param) + ins += "
Publicado?
" + ins += "" + return(ins) +} function montaDivFuncoes(i) { var param = @@ -199,7 +205,7 @@ function montaDivFuncoes(i) {titulo:"Programa que será executado:",id:"Eabrir_funcao",size:"50",value:i.abrir_funcao,tipo:"text",div:""}, {titulo:"Largura da janela onde o programa será aberto:",id:"Ew_funcao",size:"5",value:i.w_funcao,tipo:"text",div:""}, {titulo:"Altura da janela:",id:"Eh_funcao",size:"5",value:i.h_funcao,tipo:"text",div:""}, - {titulo:"Perfis:",id:"Eperfil_funcao",size:"50",value:i.perfil_funcao,tipo:"text",div:""} + {titulo:"Perfis - escolha da lista abaixo:",id:"Eperfil_funcao",size:"50",value:i.perfil_funcao,tipo:"text",div:"
Buscando...
"} ] } var ins = "" @@ -262,14 +268,49 @@ function gravaDadosFuncao(id) } else { - //var rec = myDataTable.getRecordSet().getRecord(recordid); - //myDataTable.updateRow(rec,YAHOO.lang.JSON.parse(o.responseText)[0]) var no = tree.getNodeByProperty("id_funcao",id) no.getContentEl().getElementsByTagName("span")[0].innerHTML = document.getElementById("Enome_funcao").value core_carregando("desativa"); } - YAHOO.example.container.panelEditorFuncao.destroy(); - YAHOO.example.container.panelEditorFuncao = null; + YAHOO.example.container.panelEditor.destroy(); + YAHOO.example.container.panelEditor = null; + } + catch(e){core_handleFailure(e,o.responseText);} + }, + failure:core_handleFailure, + argument: { foo:"foo", bar:"bar" } + }; + core_makeRequest(sUrl,callback) +} +function gravaDadosSistema(id) +{ + var campos = new Array("perfil","nome","publicado") + var par = "" + for (i=0;iNão foi possível excluir. Verifique se não existem menus vinculados a este tema"); + setTimeout("core_carregando('desativa')",3000) + } + else + { + var no = tree.getNodeByProperty("id_sistema",id) + no.getContentEl().getElementsByTagName("span")[0].innerHTML = document.getElementById("Enome_sistema").value + core_carregando("desativa"); + } + YAHOO.example.container.panelEditor.destroy(); + YAHOO.example.container.panelEditor = null; } catch(e){core_handleFailure(e,o.responseText);} }, diff --git a/admin/js/sistemasold.js b/admin/js/sistemasold.js deleted file mode 100644 index 711c030..0000000 --- a/admin/js/sistemasold.js +++ /dev/null @@ -1,237 +0,0 @@ -/* -Title: Sistemas - -Funções javascript utilizadas no sistema de administração do cadastro de web services - -File: i3geo/admin/webservices.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() -{ - verificaEditores() -} -function montaParametros() -{ - if(!$i("resultado")) - {document.body.innerHTML += "
"} - $i("resultado").innerHTML = $mensagemAguarde - var p = "../php/sistemas.php?funcao=pegaSistemas"; - cPaint.call(p,"",listaSistemas); -} -/* -Function: listaSistemas - -Monta o html com os parametros e os divs que receberão os dados dos formulários. -*/ -function listaSistemas(retorno) -{ - ins = "

" - montaSistemas(retorno,"resultado") -} -function montaSistemas(retorno,onde) -{ - var d = retorno.data; - var nm = retorno.data.length - for (i=0;i"} - ins += "
+- "+d[i].nome_sistema+"" - ins += "
"; - var param = { - "linhas":[ - {titulo:"Nome",prefixoid:"nome_",id:"id_sistema",valor:"nome_sistema"}, - ] - } - ins += (geraLinhas(d[i],param,3)); - ins += "" - ins += "" - ins += "" - - var idtemp = "perfil_"+d[i].id_sistema - ins += "" - - ins += "" - ins += "" - ins += "" - - ins += "
Perfis:
Publicado:
" - - ins += "" - ins += "" - ins += "
" - - - - ins += "
+- Funções" - ins += "

" - var nf = d[i].funcoes.length - for (j=0;j" - var func = d[i].funcoes[j] - ins += "
"; - var param = { - "linhas":[ - {titulo:"Nome da função",prefixoid:"nomefuncao_",id:"id_funcao",valor:"nome_funcao"}, - {titulo:"Abrir programa",prefixoid:"abrir_",id:"id_funcao",valor:"abrir_funcao"}, - {titulo:"Largura da janela",prefixoid:"w_",id:"id_funcao",valor:"w_funcao"}, - {titulo:"Altura",prefixoid:"h_",id:"id_funcao",valor:"h_funcao"} - ] - } - ins += (geraLinhas(func,param,3)); - - ins += "" - ins += "" - ins += "" - var idtemp = "perfilfuncao_"+d[i].funcoes[j].id_funcao - ins += "" - - - ins += "
Perfis:
" - ins += "" - ins += "" - ins += "
" - ins += "

" - ins += "
" - } - ins += "
" - ins += "
" - if(!$i(d[i].id_sistema)) - ins += "
" - } - $i(onde).innerHTML = ins - ativaLegenda() -} -function alterarFuncoes(id_funcao,id_sistema) -{ - //if(confirm("Você realmente quer fazer isso?")) - //{ - var retorna = function(retorno) - { - if(id_funcao == "") - listaSistemas(retorno); - else - {ins = "";montaSistemas(retorno,id_sistema)} - } - if (id_funcao != "") - { - var nomefuncao = $i("nomefuncao_"+id_funcao).value - var perfil = $i("perfilfuncao_"+id_funcao).value - var abrir = $i("abrir_"+id_funcao).value - var w = $i("w_"+id_funcao).value - var h = $i("h_"+id_funcao).value - } - else - { - //var id_sistema = ""; - var id_funcao = "" - var nomefuncao = "" - var perfil = "" - var abrir = "" - var w = 200 - var h = 200 - } - var p = "../php/sistemas.php?funcao=alterarFuncoes&h="+h+"&w="+w+"&abrir="+abrir+"&perfil="+perfil+"&nomefuncao="+nomefuncao+"&id_funcao="+id_funcao+"&id_sistema="+id_sistema - cPaint.call(p,"",retorna); - //} -} -function alterarSistemas(id_sistema,onde) -{ - //if(confirm("Você realmente quer fazer isso?")) - //{ - var retorna = function(retorno) - { - if(id_sistema == "") - listaSistemas(retorno); - else - {ins = "";montaSistemas(retorno,onde)} - } - if (id_sistema != "") - { - var nome = $i("nome_"+id_sistema).value; - var perfil = $i("perfil_"+id_sistema).value; - var publicado = $i("publicado_"+id_sistema).value; - } - else - { - var id_sistema = ""; - var nome = ""; - var perfil = ""; - var publicado = ""; - } - var p = "../php/sistemas.php?funcao=alterarSistemas&publicado_sistema="+publicado+"&id_sistema="+id_sistema+"&nome="+nome+"&perfil="+perfil - cPaint.call(p,"",retorna); - //} -} -function excluir(id) -{ - if(confirm("Você realmente quer fazer isso?")) - { - var retorna = function(retorno) - { - if(retorno.data=="erro") - {alert("Não foi possivel excluir. Exclua as funcoes primeiro");} - else - { - $i("resultado").innerHTML = $mensagemAguarde; - montaParametros() - } - } - var p = "../php/sistemas.php?funcao=excluir&id="+id; - cPaint.call(p,"",retorna); - } -} -function excluirFuncoes(id) -{ - if(confirm("Você realmente quer fazer isso?")) - { - $i("resultado").innerHTML = $mensagemAguarde; - var retorna = function() - { - montaParametros() - } - var p = "../php/sistemas.php?funcao=excluirFuncoes&id="+id; - cPaint.call(p,"",retorna); - } -} -function importarXmlSistemas() -{ - $i("resultado").innerHTML = $mensagemAguarde - var retorna = function(retorno) - {$i("resultado").innerHTML = retorno.data} - var p = "../php/sistemas.php?funcao=importarXmlSistemas&xml="+$i("arquivo").value; - cPaint.call(p,"",retorna); -} \ No newline at end of file diff --git a/admin/php/parsemapfile.php b/admin/php/parsemapfile.php index 532cd29..77368f8 100644 --- a/admin/php/parsemapfile.php +++ b/admin/php/parsemapfile.php @@ -138,6 +138,23 @@ function mapfile() $xml .= "\n\n"; $xml .= "".implode(",",$objcontype)."\n"; $xml .= "".implode(",",$objlayertypes)."\n"; + //verifica se tem grupos + $nlayers = array(); + foreach ($layers as $layer) + { + if($objcontype[$layer->connectiontype] != "MS_WMS") + { + $layer = $mapa->getlayerbyname($layer); + if($layer->group == "") + {$nlayers[] = $layer->name;} + else + { + if($layer->group == $layer->name) + {$nlayers[] = $layer->name;} + } + $layers = $nlayers; + } + } foreach ($layers as $layer) { $xml .= "\n\n"; @@ -145,19 +162,48 @@ function mapfile() $xml .= "".$layer->getmetadata('tema')."\n"; $d = $layer->data; $ct = $objcontype[$layer->connectiontype]; - if ($ct == "MS_SHAPEFILE" || $ct == "" || $ct == "MS_RASTER") + $tagLegenda = "parsemapfile.php?id=".$codigoLayer."&layername=".$layer->name."&tipoparse=legenda"; + $nomeLayer = $layer->name; + if ($ct == "MS_SHAPEFILE" || $ct == "" || $ct == "MS_RASTER" && $ct != "MS_WMS") { $ct = "MS_WMS"; - $d = "HTTP://mapas.mma.gov.br/i3geo/ogc.php?tema=".$codigoLayer; + $d = "http://".$_SERVER['HTTP_HOST'].str_replace("/admin/php/parsemapfile.php","",$_SERVER['PHP_SELF'])."/ogc.php?tema=".$codigoLayer; $xml .= "1.1.1"; $xml .= "EPSG:4291"; $xml .= "image/png"; + $xml .= ""; + $tagLegenda = ""; } - else - {$xml .= "parsemapfile.php?id=".$codigoLayer."&layername=".$layer->name."&tipoparse=legenda";} + else if($ct == "MS_WMS") + { + $d = $layer->connection; + $v = $layer->getmetadata("wms_server_version"); + $e = $layer->getmetadata("wms_srs"); + $i = $layer->getmetadata("wms_format"); + $s = $layer->getmetadata("wms_style"); + $nomeLayer = $layer->getmetadata("wms_name"); + if($nomeLayer == "") + $nomeLayer = $layer->getmetadata("ows_name"); + if($v == "") + $v = $layer->getmetadata("ows_server_version"); + if($e == "") + $e = $layer->getmetadata("ows_srs"); + if($i == "") + $i = $layer->getmetadata("ows_format"); + if($s == "") + $s = $layer->getmetadata("ows_style"); + if($s == "") + {$s = "default";} + $xml .= "$v"; + $xml .= "$e"; + $xml .= "$i"; + $xml .= ""; + $tagLegenda = ""; + } + $xml .= "$tagLegenda"; $xml .= "".$ct."\n"; $xml .= "$d\n"; - $xml .= "$layer->name\n"; + $xml .= "$nomeLayer\n"; if($ct != "MS_WMS") { $xml .= "\n"; diff --git a/admin/php/sistemas.php b/admin/php/sistemas.php index 211f721..139d4d8 100644 --- a/admin/php/sistemas.php +++ b/admin/php/sistemas.php @@ -43,6 +43,11 @@ switch ($funcao) exit; break; + case "pegaSistema": + retornaJSON(pegaDados("SELECT * from i3geoadmin_sistemas where id_sistema='$id_sistema'")); + exit; + break; + case "pegaFuncoes": retornaJSON(pegaDados("SELECT * from i3geoadmin_sistemasf where id_sistema ='$id_sistema'")); exit; @@ -100,14 +105,14 @@ Altera o registro de um WS */ function alterarSistemas() { - global $id_sistema,$perfil,$nome,$publicado_sistema; + global $id_sistema,$perfil_sistema,$nome_sistema,$publicado_sistema; try { require_once("conexao.php"); //$nome = mb_convert_encoding($nome,"UTF-8","ISO-8859-1"); if($id_sistema != "") { - $dbhw->query("UPDATE i3geoadmin_sistemas SET publicado_sistema='$publicado_sistema',nome_sistema = '$nome',perfil_sistema = '$perfil' WHERE id_sistema = $id_sistema"); + $dbhw->query("UPDATE i3geoadmin_sistemas SET publicado_sistema='$publicado_sistema',nome_sistema = '$nome_sistema',perfil_sistema = '$perfil_sistema' WHERE id_sistema = $id_sistema"); $retorna = $id_sistema; } else diff --git a/menutemas/admin.db b/menutemas/admin.db index c4c8150..f8d112a 100644 Binary files a/menutemas/admin.db and b/menutemas/admin.db differ -- libgit2 0.21.2