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,6 +760,7 @@ function montaEditorConexao(dados) | ||
760 | ins += "<p>Os seguintes 'alias' estão disponíveis para uso na opção 'connection': "; | 760 | ins += "<p>Os seguintes 'alias' estão disponíveis para uso na opção 'connection': "; |
761 | ins += dados.postgis_mapa+"</p>" | 761 | ins += dados.postgis_mapa+"</p>" |
762 | } | 762 | } |
763 | + ins += "<input type=button title='Testar' value='Testar' id=testarEditor />" | ||
763 | ins += core_geraLinhas(param) | 764 | ins += core_geraLinhas(param) |
764 | ins += "<br><br><br>" | 765 | ins += "<br><br><br>" |
765 | $i("editor_bd").innerHTML = ins | 766 | $i("editor_bd").innerHTML = ins |
@@ -767,9 +768,14 @@ function montaEditorConexao(dados) | @@ -767,9 +768,14 @@ function montaEditorConexao(dados) | ||
767 | temp += core_comboObjeto(objcontype,"valor","texto",dados.connectiontype) | 768 | temp += core_comboObjeto(objcontype,"valor","texto",dados.connectiontype) |
768 | temp += "</select>" | 769 | temp += "</select>" |
769 | $i("cConnectiontype").innerHTML = temp | 770 | $i("cConnectiontype").innerHTML = temp |
771 | + | ||
770 | var temp = function() | 772 | var temp = function() |
771 | - {salvarDadosEditor('conexao',dados.codigoMap,dados.codigoLayer)} | 773 | + {salvarDadosEditor('conexao',dados.codigoMap,dados.codigoLayer,false)} |
772 | new YAHOO.widget.Button("salvarEditor",{ onclick: { fn: temp }}); | 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 | function montaEditorMetadados(dados) | 780 | function montaEditorMetadados(dados) |
775 | { | 781 | { |
@@ -891,11 +897,13 @@ function montaEditorGeral(dados) | @@ -891,11 +897,13 @@ function montaEditorGeral(dados) | ||
891 | ] | 897 | ] |
892 | } | 898 | } |
893 | var ins = "<input type=button title='Salvar' value='Salvar' id=salvarEditor />" | 899 | var ins = "<input type=button title='Salvar' value='Salvar' id=salvarEditor />" |
900 | + ins += "<input type=button title='Testar' value='Testar' id=testarEditor />" | ||
894 | if(dados.colunas != "") | 901 | if(dados.colunas != "") |
895 | { | 902 | { |
896 | ins += "<p>O layer possuí as seguintes colunas na tabela de atributos: "; | 903 | ins += "<p>O layer possuí as seguintes colunas na tabela de atributos: "; |
897 | ins += dados.colunas+"</p>" | 904 | ins += dados.colunas+"</p>" |
898 | } | 905 | } |
906 | + | ||
899 | ins += core_geraLinhas(param) | 907 | ins += core_geraLinhas(param) |
900 | ins += "<br><br><br>" | 908 | ins += "<br><br><br>" |
901 | $i("editor_bd").innerHTML = ins | 909 | $i("editor_bd").innerHTML = ins |
@@ -918,8 +926,13 @@ function montaEditorGeral(dados) | @@ -918,8 +926,13 @@ function montaEditorGeral(dados) | ||
918 | $i("cToleranceunits").innerHTML = temp | 926 | $i("cToleranceunits").innerHTML = temp |
919 | 927 | ||
920 | var temp = function() | 928 | var temp = function() |
921 | - {salvarDadosEditor('geral',dados.codigoMap,dados.codigoLayer)} | 929 | + {salvarDadosEditor('geral',dados.codigoMap,dados.codigoLayer,false)} |
922 | new YAHOO.widget.Button("salvarEditor",{ onclick: { fn: temp }}); | 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 | function montaEditorClasseGeral(dados) | 937 | function montaEditorClasseGeral(dados) |
925 | { | 938 | { |
@@ -1105,8 +1118,9 @@ function montaEditorEstilo(dados) | @@ -1105,8 +1118,9 @@ function montaEditorEstilo(dados) | ||
1105 | {salvarDadosEditor('estilo',dados.codigoMap,dados.codigoLayer,dados.indiceClasse,dados.indiceEstilo)} | 1118 | {salvarDadosEditor('estilo',dados.codigoMap,dados.codigoLayer,dados.indiceClasse,dados.indiceEstilo)} |
1106 | new YAHOO.widget.Button("salvarEditor",{ onclick: { fn: temp }}); | 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 | if(tipo == "conexao") | 1124 | if(tipo == "conexao") |
1111 | { | 1125 | { |
1112 | var campos = new Array("connection","data","connectiontype","tileitem","tileindex") | 1126 | var campos = new Array("connection","data","connectiontype","tileitem","tileindex") |
@@ -1151,7 +1165,7 @@ function salvarDadosEditor(tipo,codigoMap,codigoLayer,indiceClasse,indiceEstilo) | @@ -1151,7 +1165,7 @@ function salvarDadosEditor(tipo,codigoMap,codigoLayer,indiceClasse,indiceEstilo) | ||
1151 | var par = "&codigoMap="+codigoMap+"&codigoLayer="+codigoLayer+"&indiceClasse="+indiceClasse+"&indiceEstilo="+indiceEstilo | 1165 | var par = "&codigoMap="+codigoMap+"&codigoLayer="+codigoLayer+"&indiceClasse="+indiceClasse+"&indiceEstilo="+indiceEstilo |
1152 | var prog = "../php/editormapfile.php?funcao=alterarEstilo" | 1166 | var prog = "../php/editormapfile.php?funcao=alterarEstilo" |
1153 | } | 1167 | } |
1154 | - | 1168 | + prog += "&testar="+testar; |
1155 | for (i=0;i<campos.length;i++) | 1169 | for (i=0;i<campos.length;i++) |
1156 | {par += "&"+campos[i]+"="+($i(campos[i]).value)} | 1170 | {par += "&"+campos[i]+"="+($i(campos[i]).value)} |
1157 | core_carregando("ativa"); | 1171 | core_carregando("ativa"); |
@@ -1170,27 +1184,32 @@ function salvarDadosEditor(tipo,codigoMap,codigoLayer,indiceClasse,indiceEstilo) | @@ -1170,27 +1184,32 @@ function salvarDadosEditor(tipo,codigoMap,codigoLayer,indiceClasse,indiceEstilo) | ||
1170 | } | 1184 | } |
1171 | else | 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 | core_carregando("desativa"); | 1213 | core_carregando("desativa"); |
1195 | } | 1214 | } |
1196 | } | 1215 | } |
admin/php/editormapfile.php
@@ -147,8 +147,11 @@ switch ($funcao) | @@ -147,8 +147,11 @@ switch ($funcao) | ||
147 | case "alterarConexao": | 147 | case "alterarConexao": |
148 | if(verificaEditores($editores) == "nao") | 148 | if(verificaEditores($editores) == "nao") |
149 | {echo "Vc nao e um editor cadastrado. Apenas os editores definidos em i3geo/ms_configura.php podem acessar o sistema de administracao.";exit;} | 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 | retornaJSON(pegaConexao()); | 152 | retornaJSON(pegaConexao()); |
153 | + else | ||
154 | + retornaJSON(array("url"=>$retorno)); | ||
152 | exit; | 155 | exit; |
153 | break; | 156 | break; |
154 | case "pegaMetadados": | 157 | case "pegaMetadados": |
@@ -169,9 +172,12 @@ switch ($funcao) | @@ -169,9 +172,12 @@ switch ($funcao) | ||
169 | case "alterarGeral": | 172 | case "alterarGeral": |
170 | if(verificaEditores($editores) == "nao") | 173 | if(verificaEditores($editores) == "nao") |
171 | {echo "Vc nao e um editor cadastrado. Apenas os editores definidos em i3geo/ms_configura.php podem acessar o sistema de administracao.";exit;} | 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 | retornaJSON(pegaGeral()); | 178 | retornaJSON(pegaGeral()); |
179 | + else | ||
180 | + retornaJSON(array("url"=>$retorno)); | ||
175 | exit; | 181 | exit; |
176 | break; | 182 | break; |
177 | case "pegaClasseGeral": | 183 | case "pegaClasseGeral": |
@@ -469,7 +475,7 @@ function pegaConexao() | @@ -469,7 +475,7 @@ function pegaConexao() | ||
469 | } | 475 | } |
470 | function alterarConexao() | 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 | $mapfile = $locaplic."/temas/".$codigoMap.".map"; | 479 | $mapfile = $locaplic."/temas/".$codigoMap.".map"; |
474 | $mapa = ms_newMapObj($mapfile); | 480 | $mapa = ms_newMapObj($mapfile); |
475 | $layer = $mapa->getlayerbyname($codigoLayer); | 481 | $layer = $mapa->getlayerbyname($codigoLayer); |
@@ -478,9 +484,19 @@ function alterarConexao() | @@ -478,9 +484,19 @@ function alterarConexao() | ||
478 | $layer->set("data",$data); | 484 | $layer->set("data",$data); |
479 | $layer->set("tileitem",$tileitem); | 485 | $layer->set("tileitem",$tileitem); |
480 | $layer->set("tileindex",$tileindex); | 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 | function pegaMetadados() | 501 | function pegaMetadados() |
486 | { | 502 | { |
@@ -580,7 +596,7 @@ function pegaGeral() | @@ -580,7 +596,7 @@ function pegaGeral() | ||
580 | } | 596 | } |
581 | function alterarGeral() | 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 | error_reporting(E_ALL); | 600 | error_reporting(E_ALL); |
585 | $v = versao(); | 601 | $v = versao(); |
586 | $dados = array(); | 602 | $dados = array(); |
@@ -620,6 +636,14 @@ function alterarGeral() | @@ -620,6 +636,14 @@ function alterarGeral() | ||
620 | $layer->setprojection($projection); | 636 | $layer->setprojection($projection); |
621 | if($layer->getprojection() == MS_FALSE && $projection != "") | 637 | if($layer->getprojection() == MS_FALSE && $projection != "") |
622 | $layer->setprojection($projection); | 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 | $mapa->save($mapfile); | 648 | $mapa->save($mapfile); |
625 | removeCabecalho($mapfile); | 649 | removeCabecalho($mapfile); |
@@ -834,15 +858,18 @@ function alterarEstilo() | @@ -834,15 +858,18 @@ function alterarEstilo() | ||
834 | return "ok"; | 858 | return "ok"; |
835 | } | 859 | } |
836 | 860 | ||
837 | -function removeCabecalho($arq) | 861 | +function removeCabecalho($arq,$symbolset=true) |
838 | { | 862 | { |
839 | global $postgis_mapa; | 863 | global $postgis_mapa; |
840 | restauraCon($arq,$postgis_mapa); | 864 | restauraCon($arq,$postgis_mapa); |
841 | $handle = fopen($arq, "r"); | 865 | $handle = fopen($arq, "r"); |
842 | if ($handle) | 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 | $grava = false; | 873 | $grava = false; |
847 | while (!feof($handle)) | 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,12 +116,20 @@ function verifica($map) | ||
116 | } | 116 | } |
117 | ms_ResetErrorList(); | 117 | ms_ResetErrorList(); |
118 | $tema = ""; | 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 | if(($tipo == "") || ($tipo == "todos")) | 133 | if(($tipo == "") || ($tipo == "todos")) |
126 | echo "<hr><br><br><span style='color:red' ><b>Testando: $tema </span><pre></b>"; | 134 | echo "<hr><br><br><span style='color:red' ><b>Testando: $tema </span><pre></b>"; |
127 | if ($tema != "") | 135 | if ($tema != "") |
@@ -137,6 +145,12 @@ function verifica($map) | @@ -137,6 +145,12 @@ function verifica($map) | ||
137 | else | 145 | else |
138 | { | 146 | { |
139 | echo "erro no arquivo $map <br>"; | 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 | return; | 154 | return; |
141 | } | 155 | } |
142 | $temasn = $nmapa->getAllLayerNames(); | 156 | $temasn = $nmapa->getAllLayerNames(); |