Commit 37eb3bad793192f9cb5c835475ac8fc8395e186e

Authored by Edmar Moretti
1 parent eb71d003

Incluida opção para testar o mapfile antes de salvar no editor de mapfiles do si…

…stema de administração
admin/js/editormapfile.js
... ... @@ -760,6 +760,7 @@ function montaEditorConexao(dados)
760 760 ins += "<p>Os seguintes 'alias' estão disponíveis para uso na opção 'connection': ";
761 761 ins += dados.postgis_mapa+"</p>"
762 762 }
  763 + ins += "<input type=button title='Testar' value='Testar' id=testarEditor />"
763 764 ins += core_geraLinhas(param)
764 765 ins += "<br><br><br>"
765 766 $i("editor_bd").innerHTML = ins
... ... @@ -767,9 +768,14 @@ function montaEditorConexao(dados)
767 768 temp += core_comboObjeto(objcontype,"valor","texto",dados.connectiontype)
768 769 temp += "</select>"
769 770 $i("cConnectiontype").innerHTML = temp
  771 +
770 772 var temp = function()
771   - {salvarDadosEditor('conexao',dados.codigoMap,dados.codigoLayer)}
  773 + {salvarDadosEditor('conexao',dados.codigoMap,dados.codigoLayer,false)}
772 774 new YAHOO.widget.Button("salvarEditor",{ onclick: { fn: temp }});
  775 +
  776 + var temp = function()
  777 + {salvarDadosEditor('conexao',dados.codigoMap,dados.codigoLayer,true)}
  778 + new YAHOO.widget.Button("testarEditor",{ onclick: { fn: temp }});
773 779 }
774 780 function montaEditorMetadados(dados)
775 781 {
... ... @@ -891,11 +897,13 @@ function montaEditorGeral(dados)
891 897 ]
892 898 }
893 899 var ins = "<input type=button title='Salvar' value='Salvar' id=salvarEditor />"
  900 + ins += "<input type=button title='Testar' value='Testar' id=testarEditor />"
894 901 if(dados.colunas != "")
895 902 {
896 903 ins += "<p>O layer possuí as seguintes colunas na tabela de atributos: ";
897 904 ins += dados.colunas+"</p>"
898 905 }
  906 +
899 907 ins += core_geraLinhas(param)
900 908 ins += "<br><br><br>"
901 909 $i("editor_bd").innerHTML = ins
... ... @@ -918,8 +926,13 @@ function montaEditorGeral(dados)
918 926 $i("cToleranceunits").innerHTML = temp
919 927  
920 928 var temp = function()
921   - {salvarDadosEditor('geral',dados.codigoMap,dados.codigoLayer)}
  929 + {salvarDadosEditor('geral',dados.codigoMap,dados.codigoLayer,false)}
922 930 new YAHOO.widget.Button("salvarEditor",{ onclick: { fn: temp }});
  931 +
  932 + var temp = function()
  933 + {salvarDadosEditor('geral',dados.codigoMap,dados.codigoLayer,true)}
  934 + new YAHOO.widget.Button("testarEditor",{ onclick: { fn: temp }});
  935 +
923 936 }
924 937 function montaEditorClasseGeral(dados)
925 938 {
... ... @@ -1105,8 +1118,9 @@ function montaEditorEstilo(dados)
1105 1118 {salvarDadosEditor('estilo',dados.codigoMap,dados.codigoLayer,dados.indiceClasse,dados.indiceEstilo)}
1106 1119 new YAHOO.widget.Button("salvarEditor",{ onclick: { fn: temp }});
1107 1120 }
1108   -function salvarDadosEditor(tipo,codigoMap,codigoLayer,indiceClasse,indiceEstilo)
  1121 +function salvarDadosEditor(tipo,codigoMap,codigoLayer,indiceClasse,indiceEstilo,testar)
1109 1122 {
  1123 + if(arguments.lenght == 5){var testar = false;}
1110 1124 if(tipo == "conexao")
1111 1125 {
1112 1126 var campos = new Array("connection","data","connectiontype","tileitem","tileindex")
... ... @@ -1151,7 +1165,7 @@ function salvarDadosEditor(tipo,codigoMap,codigoLayer,indiceClasse,indiceEstilo)
1151 1165 var par = "&codigoMap="+codigoMap+"&codigoLayer="+codigoLayer+"&indiceClasse="+indiceClasse+"&indiceEstilo="+indiceEstilo
1152 1166 var prog = "../php/editormapfile.php?funcao=alterarEstilo"
1153 1167 }
1154   -
  1168 + prog += "&testar="+testar;
1155 1169 for (i=0;i<campos.length;i++)
1156 1170 {par += "&"+campos[i]+"="+($i(campos[i]).value)}
1157 1171 core_carregando("ativa");
... ... @@ -1170,27 +1184,32 @@ function salvarDadosEditor(tipo,codigoMap,codigoLayer,indiceClasse,indiceEstilo)
1170 1184 }
1171 1185 else
1172 1186 {
1173   - if(tipo=="conexao")
1174   - {montaEditorConexao(YAHOO.lang.JSON.parse(o.responseText));}
1175   - if(tipo=="metadados")
1176   - {montaEditorMetadados(YAHOO.lang.JSON.parse(o.responseText));}
1177   - if(tipo=="geral")
1178   - {
1179   - var d = YAHOO.lang.JSON.parse(o.responseText)
1180   - montaEditorGeral(d);
1181   - if(d.name != codigoLayer)
  1187 + if(testar == false){
  1188 + if(tipo=="conexao")
  1189 + {montaEditorConexao(YAHOO.lang.JSON.parse(o.responseText));}
  1190 + if(tipo=="metadados")
  1191 + {montaEditorMetadados(YAHOO.lang.JSON.parse(o.responseText));}
  1192 + if(tipo=="geral")
1182 1193 {
1183   - core_pegaMapfiles("montaArvore()")
1184   - YAHOO.example.container.panelEditor.destroy();
1185   - YAHOO.example.container.panelEditor = null;
  1194 + var d = YAHOO.lang.JSON.parse(o.responseText)
  1195 + montaEditorGeral(d);
  1196 + if(d.name != codigoLayer)
  1197 + {
  1198 + core_pegaMapfiles("montaArvore()")
  1199 + YAHOO.example.container.panelEditor.destroy();
  1200 + YAHOO.example.container.panelEditor = null;
  1201 + }
1186 1202 }
  1203 + if(tipo=="classeGeral")
  1204 + {montaEditorClasseGeral(YAHOO.lang.JSON.parse(o.responseText));}
  1205 + if(tipo=="classeLabel")
  1206 + {montaEditorClasseLabel(YAHOO.lang.JSON.parse(o.responseText));}
  1207 + if(tipo=="estilo")
  1208 + {montaEditorEstilo(YAHOO.lang.JSON.parse(o.responseText));}
  1209 + }
  1210 + else{
  1211 + window.open("../../testamapfile.php?map="+YAHOO.lang.JSON.parse(o.responseText).url)
1187 1212 }
1188   - if(tipo=="classeGeral")
1189   - {montaEditorClasseGeral(YAHOO.lang.JSON.parse(o.responseText));}
1190   - if(tipo=="classeLabel")
1191   - {montaEditorClasseLabel(YAHOO.lang.JSON.parse(o.responseText));}
1192   - if(tipo=="estilo")
1193   - {montaEditorEstilo(YAHOO.lang.JSON.parse(o.responseText));}
1194 1213 core_carregando("desativa");
1195 1214 }
1196 1215 }
... ...
admin/php/editormapfile.php
... ... @@ -147,8 +147,11 @@ switch ($funcao)
147 147 case "alterarConexao":
148 148 if(verificaEditores($editores) == "nao")
149 149 {echo "Vc nao e um editor cadastrado. Apenas os editores definidos em i3geo/ms_configura.php podem acessar o sistema de administracao.";exit;}
150   - alterarConexao();
  150 + $retorno = alterarConexao();
  151 + if($testar == false)
151 152 retornaJSON(pegaConexao());
  153 + else
  154 + retornaJSON(array("url"=>$retorno));
152 155 exit;
153 156 break;
154 157 case "pegaMetadados":
... ... @@ -169,9 +172,12 @@ switch ($funcao)
169 172 case "alterarGeral":
170 173 if(verificaEditores($editores) == "nao")
171 174 {echo "Vc nao e um editor cadastrado. Apenas os editores definidos em i3geo/ms_configura.php podem acessar o sistema de administracao.";exit;}
172   - alterarGeral();
173   - $codigoLayer = $name;
  175 + $retorno = alterarGeral();
  176 +
  177 + if($testar == false)
174 178 retornaJSON(pegaGeral());
  179 + else
  180 + retornaJSON(array("url"=>$retorno));
175 181 exit;
176 182 break;
177 183 case "pegaClasseGeral":
... ... @@ -469,7 +475,7 @@ function pegaConexao()
469 475 }
470 476 function alterarConexao()
471 477 {
472   - global $codigoMap,$codigoLayer,$locaplic,$connection,$connectiontype,$data,$tileitem,$tileindex;
  478 + global $dir_tmp,$testar,$codigoMap,$codigoLayer,$locaplic,$connection,$connectiontype,$data,$tileitem,$tileindex;
473 479 $mapfile = $locaplic."/temas/".$codigoMap.".map";
474 480 $mapa = ms_newMapObj($mapfile);
475 481 $layer = $mapa->getlayerbyname($codigoLayer);
... ... @@ -478,9 +484,19 @@ function alterarConexao()
478 484 $layer->set("data",$data);
479 485 $layer->set("tileitem",$tileitem);
480 486 $layer->set("tileindex",$tileindex);
481   - $mapa->save($mapfile);
482   - removeCabecalho($mapfile);
483   - return "ok";
  487 + if($testar == true)
  488 + {
  489 + $nome = $dir_tmp."/".$codigoMap.".map";
  490 + $mapa->save($nome);
  491 + removeCabecalho($nome,false);
  492 + return $nome;
  493 + }
  494 + else
  495 + {
  496 + $mapa->save($mapfile);
  497 + removeCabecalho($mapfile);
  498 + return "ok";
  499 + }
484 500 }
485 501 function pegaMetadados()
486 502 {
... ... @@ -580,7 +596,7 @@ function pegaGeral()
580 596 }
581 597 function alterarGeral()
582 598 {
583   - global $codigoMap,$codigoLayer,$locaplic,$name,$projection,$sizeunits,$status,$toleranceunits,$tolerance,$symbolscale,$opacity,$offsite,$minscale,$maxscale,$labelsizeitem,$labelminscale,$labelmaxscale,$labelitem,$group,$filteritem,$type,$filter;
  599 + 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;
584 600 error_reporting(E_ALL);
585 601 $v = versao();
586 602 $dados = array();
... ... @@ -620,6 +636,14 @@ function alterarGeral()
620 636 $layer->setprojection($projection);
621 637 if($layer->getprojection() == MS_FALSE && $projection != "")
622 638 $layer->setprojection($projection);
  639 +
  640 + if($testar == true)
  641 + {
  642 + $nome = $dir_tmp."/".$codigoMap.".map";
  643 + $mapa->save($nome);
  644 + removeCabecalho($nome,false);
  645 + return $nome;
  646 + }
623 647  
624 648 $mapa->save($mapfile);
625 649 removeCabecalho($mapfile);
... ... @@ -834,15 +858,18 @@ function alterarEstilo()
834 858 return "ok";
835 859 }
836 860  
837   -function removeCabecalho($arq)
  861 +function removeCabecalho($arq,$symbolset=true)
838 862 {
839 863 global $postgis_mapa;
840 864 restauraCon($arq,$postgis_mapa);
841 865 $handle = fopen($arq, "r");
842 866 if ($handle)
843 867 {
844   - $final[] = "SYMBOLSET ../symbols/simbolos.sym\n";
845   - $final[] = "FONTSET ".'"'."../symbols/fontes.txt".'"'."\n";
  868 + if($symbolset)
  869 + {
  870 + $final[] = "SYMBOLSET ../symbols/simbolos.sym\n";
  871 + $final[] = "FONTSET ".'"'."../symbols/fontes.txt".'"'."\n";
  872 + }
846 873 $grava = false;
847 874 while (!feof($handle))
848 875 {
... ...
menutemas/admin.db
No preview for this file type
testamapfile.php
... ... @@ -116,12 +116,20 @@ function verifica($map)
116 116 }
117 117 ms_ResetErrorList();
118 118 $tema = "";
119   - $map = str_replace("\\","/",$map);
120   - $map = basename($map);
121   - if (file_exists('temas/'.$map))
122   - {$tema = 'temas/'.$map;}
123   - if (file_exists('temas/'.$map.'.map'))
124   - {$tema = 'temas/'.$map.".map";}
  119 +
  120 + if(file_exists($map))
  121 + $tema = $map;
  122 + else
  123 + {
  124 + $map = str_replace("\\","/",$map);
  125 + $map = basename($map);
  126 + if (file_exists('temas/'.$map))
  127 + {$tema = 'temas/'.$map;}
  128 + if (file_exists('temas/'.$map.'.map'))
  129 + {$tema = 'temas/'.$map.".map";}
  130 + }
  131 +
  132 +
125 133 if(($tipo == "") || ($tipo == "todos"))
126 134 echo "<hr><br><br><span style='color:red' ><b>Testando: $tema </span><pre></b>";
127 135 if ($tema != "")
... ... @@ -137,6 +145,12 @@ function verifica($map)
137 145 else
138 146 {
139 147 echo "erro no arquivo $map <br>";
  148 + $error = ms_GetErrorObj();
  149 + while($error && $error->code != MS_NOERR)
  150 + {
  151 + printf("<br>Error in %s: %s<br>\n", $error->routine, $error->message);
  152 + $error = $error->next();
  153 + }
140 154 return;
141 155 }
142 156 $temasn = $nmapa->getAllLayerNames();
... ...