From 37eb3bad793192f9cb5c835475ac8fc8395e186e Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Mon, 16 Mar 2009 18:18:55 +0000 Subject: [PATCH] Incluida opção para testar o mapfile antes de salvar no editor de mapfiles do sistema de administração --- admin/js/editormapfile.js | 63 +++++++++++++++++++++++++++++++++++++++++---------------------- admin/php/editormapfile.php | 49 ++++++++++++++++++++++++++++++++++++++----------- menutemas/admin.db | Bin 53248 -> 0 bytes testamapfile.php | 26 ++++++++++++++++++++------ 4 files changed, 99 insertions(+), 39 deletions(-) diff --git a/admin/js/editormapfile.js b/admin/js/editormapfile.js index 4684131..521ea5d 100644 --- a/admin/js/editormapfile.js +++ b/admin/js/editormapfile.js @@ -760,6 +760,7 @@ function montaEditorConexao(dados) ins += "

Os seguintes 'alias' estão disponíveis para uso na opção 'connection': "; ins += dados.postgis_mapa+"

" } + ins += "" ins += core_geraLinhas(param) ins += "


" $i("editor_bd").innerHTML = ins @@ -767,9 +768,14 @@ function montaEditorConexao(dados) temp += core_comboObjeto(objcontype,"valor","texto",dados.connectiontype) temp += "" $i("cConnectiontype").innerHTML = temp + var temp = function() - {salvarDadosEditor('conexao',dados.codigoMap,dados.codigoLayer)} + {salvarDadosEditor('conexao',dados.codigoMap,dados.codigoLayer,false)} new YAHOO.widget.Button("salvarEditor",{ onclick: { fn: temp }}); + + var temp = function() + {salvarDadosEditor('conexao',dados.codigoMap,dados.codigoLayer,true)} + new YAHOO.widget.Button("testarEditor",{ onclick: { fn: temp }}); } function montaEditorMetadados(dados) { @@ -891,11 +897,13 @@ function montaEditorGeral(dados) ] } var ins = "" + ins += "" if(dados.colunas != "") { ins += "

O layer possuí as seguintes colunas na tabela de atributos: "; ins += dados.colunas+"

" } + ins += core_geraLinhas(param) ins += "


" $i("editor_bd").innerHTML = ins @@ -918,8 +926,13 @@ function montaEditorGeral(dados) $i("cToleranceunits").innerHTML = temp var temp = function() - {salvarDadosEditor('geral',dados.codigoMap,dados.codigoLayer)} + {salvarDadosEditor('geral',dados.codigoMap,dados.codigoLayer,false)} new YAHOO.widget.Button("salvarEditor",{ onclick: { fn: temp }}); + + var temp = function() + {salvarDadosEditor('geral',dados.codigoMap,dados.codigoLayer,true)} + new YAHOO.widget.Button("testarEditor",{ onclick: { fn: temp }}); + } function montaEditorClasseGeral(dados) { @@ -1105,8 +1118,9 @@ function montaEditorEstilo(dados) {salvarDadosEditor('estilo',dados.codigoMap,dados.codigoLayer,dados.indiceClasse,dados.indiceEstilo)} new YAHOO.widget.Button("salvarEditor",{ onclick: { fn: temp }}); } -function salvarDadosEditor(tipo,codigoMap,codigoLayer,indiceClasse,indiceEstilo) +function salvarDadosEditor(tipo,codigoMap,codigoLayer,indiceClasse,indiceEstilo,testar) { + if(arguments.lenght == 5){var testar = false;} if(tipo == "conexao") { var campos = new Array("connection","data","connectiontype","tileitem","tileindex") @@ -1151,7 +1165,7 @@ function salvarDadosEditor(tipo,codigoMap,codigoLayer,indiceClasse,indiceEstilo) var par = "&codigoMap="+codigoMap+"&codigoLayer="+codigoLayer+"&indiceClasse="+indiceClasse+"&indiceEstilo="+indiceEstilo var prog = "../php/editormapfile.php?funcao=alterarEstilo" } - + prog += "&testar="+testar; for (i=0;i$retorno)); exit; break; case "pegaMetadados": @@ -169,9 +172,12 @@ switch ($funcao) case "alterarGeral": if(verificaEditores($editores) == "nao") {echo "Vc nao e um editor cadastrado. Apenas os editores definidos em i3geo/ms_configura.php podem acessar o sistema de administracao.";exit;} - alterarGeral(); - $codigoLayer = $name; + $retorno = alterarGeral(); + + if($testar == false) retornaJSON(pegaGeral()); + else + retornaJSON(array("url"=>$retorno)); exit; break; case "pegaClasseGeral": @@ -469,7 +475,7 @@ function pegaConexao() } function alterarConexao() { - global $codigoMap,$codigoLayer,$locaplic,$connection,$connectiontype,$data,$tileitem,$tileindex; + global $dir_tmp,$testar,$codigoMap,$codigoLayer,$locaplic,$connection,$connectiontype,$data,$tileitem,$tileindex; $mapfile = $locaplic."/temas/".$codigoMap.".map"; $mapa = ms_newMapObj($mapfile); $layer = $mapa->getlayerbyname($codigoLayer); @@ -478,9 +484,19 @@ function alterarConexao() $layer->set("data",$data); $layer->set("tileitem",$tileitem); $layer->set("tileindex",$tileindex); - $mapa->save($mapfile); - removeCabecalho($mapfile); - return "ok"; + if($testar == true) + { + $nome = $dir_tmp."/".$codigoMap.".map"; + $mapa->save($nome); + removeCabecalho($nome,false); + return $nome; + } + else + { + $mapa->save($mapfile); + removeCabecalho($mapfile); + return "ok"; + } } function pegaMetadados() { @@ -580,7 +596,7 @@ function pegaGeral() } function alterarGeral() { - global $codigoMap,$codigoLayer,$locaplic,$name,$projection,$sizeunits,$status,$toleranceunits,$tolerance,$symbolscale,$opacity,$offsite,$minscale,$maxscale,$labelsizeitem,$labelminscale,$labelmaxscale,$labelitem,$group,$filteritem,$type,$filter; + global $dir_tmp,$testar,$codigoMap,$codigoLayer,$locaplic,$name,$projection,$sizeunits,$status,$toleranceunits,$tolerance,$symbolscale,$opacity,$offsite,$minscale,$maxscale,$labelsizeitem,$labelminscale,$labelmaxscale,$labelitem,$group,$filteritem,$type,$filter; error_reporting(E_ALL); $v = versao(); $dados = array(); @@ -620,6 +636,14 @@ function alterarGeral() $layer->setprojection($projection); if($layer->getprojection() == MS_FALSE && $projection != "") $layer->setprojection($projection); + + if($testar == true) + { + $nome = $dir_tmp."/".$codigoMap.".map"; + $mapa->save($nome); + removeCabecalho($nome,false); + return $nome; + } $mapa->save($mapfile); removeCabecalho($mapfile); @@ -834,15 +858,18 @@ function alterarEstilo() return "ok"; } -function removeCabecalho($arq) +function removeCabecalho($arq,$symbolset=true) { global $postgis_mapa; restauraCon($arq,$postgis_mapa); $handle = fopen($arq, "r"); if ($handle) { - $final[] = "SYMBOLSET ../symbols/simbolos.sym\n"; - $final[] = "FONTSET ".'"'."../symbols/fontes.txt".'"'."\n"; + if($symbolset) + { + $final[] = "SYMBOLSET ../symbols/simbolos.sym\n"; + $final[] = "FONTSET ".'"'."../symbols/fontes.txt".'"'."\n"; + } $grava = false; while (!feof($handle)) { diff --git a/menutemas/admin.db b/menutemas/admin.db index 6af9e86..36c1f89 100644 Binary files a/menutemas/admin.db and b/menutemas/admin.db differ diff --git a/testamapfile.php b/testamapfile.php index cff6e81..fede419 100644 --- a/testamapfile.php +++ b/testamapfile.php @@ -116,12 +116,20 @@ function verifica($map) } ms_ResetErrorList(); $tema = ""; - $map = str_replace("\\","/",$map); - $map = basename($map); - if (file_exists('temas/'.$map)) - {$tema = 'temas/'.$map;} - if (file_exists('temas/'.$map.'.map')) - {$tema = 'temas/'.$map.".map";} + + if(file_exists($map)) + $tema = $map; + else + { + $map = str_replace("\\","/",$map); + $map = basename($map); + if (file_exists('temas/'.$map)) + {$tema = 'temas/'.$map;} + if (file_exists('temas/'.$map.'.map')) + {$tema = 'temas/'.$map.".map";} + } + + if(($tipo == "") || ($tipo == "todos")) echo "


Testando: $tema
";
 	if ($tema != "")
@@ -137,6 +145,12 @@ function verifica($map)
 		else
 		{
 			echo "erro no arquivo $map 
"; + $error = ms_GetErrorObj(); + while($error && $error->code != MS_NOERR) + { + printf("
Error in %s: %s
\n", $error->routine, $error->message); + $error = $error->next(); + } return; } $temasn = $nmapa->getAllLayerNames(); -- libgit2 0.21.2