Commit 37eb3bad793192f9cb5c835475ac8fc8395e186e
1 parent
eb71d003
Exists in
master
and in
7 other branches
Incluida opção para testar o mapfile antes de salvar no editor de mapfiles do si…
…stema de administração
Showing
4 changed files
with
99 additions
and
39 deletions
Show diff stats
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(); | ... | ... |