Commit 538ca12b939c9ca31cd071b8238894ee34e954db

Authored by Edmar Moretti
1 parent 6c64b69b

Incluida opção para clonar um mapfile no sistema de admnistração

admin/admin.db
No preview for this file type
admin/imagens/clonar.png 0 → 100644

779 Bytes

admin/js/core.js
... ... @@ -264,6 +264,43 @@ function core_dialogoContinua(handleYes,handleNo,mensagem,largura)
264 264 YAHOO.continua.container.simpledialog1.show();
265 265 }
266 266 /*
  267 +Function: core_dialogoPergunta
  268 +
  269 +Mostra um diálogo do tipo sim não com uma pergunta
  270 +
  271 +Parameters:
  272 +
  273 +handleYes - função para sim
  274 +
  275 +handleNo - função para não
  276 +
  277 +mensagem - mensagem do diálogo
  278 +
  279 +largura - largura do diálogo em px
  280 +*/
  281 +function core_dialogoPergunta(handleYes,handleNo,mensagem,largura)
  282 +{
  283 + // Instantiate the Dialog
  284 + YAHOO.namespace("continua.container");
  285 + YAHOO.continua.container.simpledialog1 =
  286 + new YAHOO.widget.SimpleDialog("simpledialog1",
  287 + { width: largura+"px",
  288 + fixedcenter: true,
  289 + visible: false,
  290 + draggable: false,
  291 + close: true,
  292 + text: mensagem,
  293 + icon: "",
  294 + modal: true,
  295 + constraintoviewport: true,
  296 + buttons: [ { text:"Continua", handler:handleYes, isDefault:true },
  297 + { text:"Cancela", handler:handleNo } ]
  298 + } );
  299 + //YAHOO.continua.container.simpledialog1.setHeader("Tem certeza?");
  300 + YAHOO.continua.container.simpledialog1.render(document.body);
  301 + YAHOO.continua.container.simpledialog1.show();
  302 +}
  303 +/*
267 304 Function: core_ativaPainelAjuda
268 305  
269 306 Parameters:
... ...
admin/js/editormapfile.js
... ... @@ -231,6 +231,7 @@ function montaNosRaiz(redesenha)
231 231 for (var i=0, j=$mapfiles.length; i<j; i++)
232 232 {
233 233 conteudo = "&nbsp;<img style=\"position:relative;cursor:pointer;top:2px\" onclick=\"excluirMapfile('"+$mapfiles[i].codigo+"')\" title=excluir src=\"../imagens/01.png\" />"
  234 + conteudo += "&nbsp;<img style=\"position:relative;cursor:pointer;top:2px\" onclick=\"clonarMapfile('"+$mapfiles[i].codigo+"')\" title='cria uma cópia' src=\"../imagens/clonar.png\" />"
234 235 conteudo += "&nbsp;<img style=\"position:relative;cursor:pointer;top:2px\" onclick=\"limparCacheMapfile('"+$mapfiles[i].codigo+"')\" title='limpa o chache de imagens se houver' src=\"../imagens/limparcache.png\" />"
235 236 conteudo += "&nbsp;<img style=\"position:relative;cursor:pointer;top:2px\" onclick=\"editorTemaMapfile('"+$mapfiles[i].codigo+"')\" title='editar tema associado' src=\"../imagens/06.png\" />"
236 237 conteudo += "&nbsp;<img style=\"position:relative;cursor:pointer;top:2px\" onclick=\"testarMapfile('"+$mapfiles[i].codigo+"')\" title='testar!' src=\"../imagens/41.png\" /><b>&nbsp;<span>"+$mapfiles[i].codigo+" <span style=color:gray >"+$mapfiles[i].nome+"</span></span>"
... ... @@ -818,6 +819,47 @@ function excluirMapfile(codigoMap)
818 819 core_excluiNoTree(sUrl,no,mensagem)
819 820 }
820 821 /*
  822 +Function: clonarMapfile
  823 +
  824 +Exclui um mapfile
  825 +
  826 +<CLONARMAPFILE>
  827 +*/
  828 +function clonarMapfile(codigoMap)
  829 +{
  830 + var mensagem = " clonando "+codigoMap;
  831 + var sUrl = "../php/editormapfile.php?funcao=clonarMapfile&codigomap="+codigoMap;
  832 + var handleYes = function()
  833 + {
  834 + var novonome = $i("clonarComo").value;
  835 + this.hide();
  836 + if(novonome == "")
  837 + {return;}
  838 + core_carregando("ativa");
  839 + core_carregando("Copiando...");
  840 + var callback =
  841 + {
  842 + success:function(o)
  843 + {
  844 + try
  845 + {
  846 + core_carregando("desativa");
  847 + initMenu();
  848 + }
  849 + catch(e){core_handleFailure(o,o.responseText);}
  850 + },
  851 + failure:core_handleFailure,
  852 + argument: { foo:"foo", bar:"bar" }
  853 + };
  854 + core_makeRequest(sUrl+"&novomap="+novonome,callback)
  855 + };
  856 + var handleNo = function()
  857 + {this.hide();};
  858 + var mensagem = "Nome do novo arquivo:<br><input type=text value='' id=clonarComo />";
  859 + var largura = "300"
  860 + core_dialogoPergunta(handleYes,handleNo,mensagem,largura)
  861 +}
  862 +/*
821 863 Function: excluirLayer
822 864  
823 865 Exclui um layer
... ...
admin/php/editormapfile.php
... ... @@ -192,7 +192,8 @@ switch (strtoupper($funcao))
192 192 {echo "Vc nao e um editor cadastrado. Apenas os editores definidos em i3geo/ms_configura.php podem acessar o sistema de administracao.";exit;}
193 193 //pega oid do tema
194 194 $dados = pegaDados("SELECT id_tema from i3geoadmin_temas WHERE codigo_tema = '".$codigoMap."'");
195   - $id = $dados[0]["id_tema"];
  195 + if(count($dados) > 0)
  196 + {$id = $dados[0]["id_tema"];}
196 197 $tabela = "mapfiles";
197 198 $coluna = "id_tema";
198 199 $f = verificaFilhos();
... ... @@ -203,9 +204,11 @@ switch (strtoupper($funcao))
203 204 }
204 205 else
205 206 {
206   - unlink("$locaplic/temas/".$codigoMap.".map");
  207 + if(file_exists("$locaplic/temas/".$codigoMap.".map"))
  208 + {unlink("$locaplic/temas/".$codigoMap.".map");}
207 209 $tabela = "i3geoadmin_temas";
208   - exclui();
  210 + if($id)
  211 + {exclui();}
209 212 retornaJSON("ok");
210 213 exit;
211 214 }
... ... @@ -232,7 +235,28 @@ switch (strtoupper($funcao))
232 235 {echo "Vc nao e um editor cadastrado. Apenas os editores definidos em i3geo/ms_configura.php podem acessar o sistema de administracao.";exit;}
233 236 retornaJSON(refazerLayer());
234 237 exit;
235   - break;
  238 + break;
  239 + /*
  240 + Valor: CLONARMAPFILE
  241 +
  242 + Copia um mapfile existente
  243 +
  244 + Parametros:
  245 +
  246 + codigomap {string} - nome do mapfile existente em i3geo/temas que será clonado (sem .map)
  247 +
  248 + novomap {string} - nome do mapfile que será criado
  249 +
  250 + Retorno:
  251 +
  252 + {JSON}
  253 + */
  254 + case "CLONARMAPFILE":
  255 + if(verificaEditores($editores) == "nao")
  256 + {echo "Vc nao e um editor cadastrado. Apenas os editores definidos em i3geo/ms_configura.php podem acessar o sistema de administracao.";exit;}
  257 + retornaJSON(clonarMapfile());
  258 + exit;
  259 + break;
236 260 /*
237 261 Valor: CRIARNOVOLAYER
238 262  
... ... @@ -934,6 +958,20 @@ switch (strtoupper($funcao))
934 958 exit;
935 959 break;
936 960 }
  961 +function clonarMapfile()
  962 +{
  963 + global $novomap, $codigomap, $locaplic;
  964 + error_reporting(E_ALL);
  965 + $arqtema = $locaplic."/temas/".$codigomap.".map";
  966 + $novotema = $locaplic."/temas/".$novomap.".map";
  967 + copy($arqtema,$novotema);
  968 + $mapa = ms_newMapObj($novotema);
  969 + $layer = @$mapa->getlayerbyname($codigomap);
  970 + $layer->set("name",$novomap);
  971 + $mapa->save($novotema);
  972 + removeCabecalho($novotema);
  973 + return array("data"=>"ok");
  974 +}
937 975 function refazerLayer()
938 976 {
939 977 global $nomelayer, $codigomap, $maporigem, $locaplic;
... ...