Commit 538ca12b939c9ca31cd071b8238894ee34e954db
1 parent
6c64b69b
Exists in
master
and in
7 other branches
Incluida opção para clonar um mapfile no sistema de admnistração
Showing
5 changed files
with
121 additions
and
4 deletions
Show diff stats
admin/admin.db
No preview for this file type
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 = " <img style=\"position:relative;cursor:pointer;top:2px\" onclick=\"excluirMapfile('"+$mapfiles[i].codigo+"')\" title=excluir src=\"../imagens/01.png\" />" |
234 | + conteudo += " <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 += " <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 += " <img style=\"position:relative;cursor:pointer;top:2px\" onclick=\"editorTemaMapfile('"+$mapfiles[i].codigo+"')\" title='editar tema associado' src=\"../imagens/06.png\" />" |
236 | 237 | conteudo += " <img style=\"position:relative;cursor:pointer;top:2px\" onclick=\"testarMapfile('"+$mapfiles[i].codigo+"')\" title='testar!' src=\"../imagens/41.png\" /><b> <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; | ... | ... |