Commit 071d6f9f3df3786b54eceeecfab157d6b29ca1b7
1 parent
6c63e3bb
Exists in
master
and in
7 other branches
Ticket #84 Incluir opções de classificação de um layer no sistema de administração
Showing
3 changed files
with
135 additions
and
0 deletions
Show diff stats
169 Bytes
admin/js/editormapfile.js
@@ -303,6 +303,8 @@ function montaParametrosTemas(no,dados,redesenha) | @@ -303,6 +303,8 @@ function montaParametrosTemas(no,dados,redesenha) | ||
303 | if(!tree.getNodeByProperty("etiquetaClasses",no.data.id)) | 303 | if(!tree.getNodeByProperty("etiquetaClasses",no.data.id)) |
304 | { | 304 | { |
305 | var conteudo = "<img style=\"position:relative;cursor:pointer;top:2px\" onclick=\"adicionaNovaClasse('"+codigoMap+"','"+codigoLayer+"')\" title='adiciona classe' src=\"../imagens/05.png\" /> " | 305 | var conteudo = "<img style=\"position:relative;cursor:pointer;top:2px\" onclick=\"adicionaNovaClasse('"+codigoMap+"','"+codigoLayer+"')\" title='adiciona classe' src=\"../imagens/05.png\" /> " |
306 | + conteudo += "<img style=\"position:relative;cursor:pointer;top:2px\" onclick=\"classesAuto('"+codigoMap+"','"+codigoLayer+"')\" title='gerar classes' src=\"../imagens/classificar.gif\" /> " | ||
307 | + | ||
306 | //conteudo += "<img width='10px' heigth='10px' style=\"position:relative;cursor:pointer;top:0px\" onclick=\"editorClasses('"+codigoMap+"','"+codigoLayer+"')\" title='classes' src=\"../imagens/06.png\" />" | 308 | //conteudo += "<img width='10px' heigth='10px' style=\"position:relative;cursor:pointer;top:0px\" onclick=\"editorClasses('"+codigoMap+"','"+codigoLayer+"')\" title='classes' src=\"../imagens/06.png\" />" |
307 | var d = {tipo:"etiquetaClasses",etiquetaClasses:no.data.id,html:conteudo+"<i> Classes:</i>"} | 309 | var d = {tipo:"etiquetaClasses",etiquetaClasses:no.data.id,html:conteudo+"<i> Classes:</i>"} |
308 | var tempNode = new YAHOO.widget.HTMLNode(d, no, false,true); | 310 | var tempNode = new YAHOO.widget.HTMLNode(d, no, false,true); |
@@ -506,6 +508,83 @@ function adicionaNovaClasse(codigoMap,codigoLayer,indiceClasse) | @@ -506,6 +508,83 @@ function adicionaNovaClasse(codigoMap,codigoLayer,indiceClasse) | ||
506 | }; | 508 | }; |
507 | core_makeRequest(sUrl,callback) | 509 | core_makeRequest(sUrl,callback) |
508 | } | 510 | } |
511 | +function classesAuto(codigoMap,codigoLayer) | ||
512 | +{ | ||
513 | + function on_editorCheckBoxChange(p_oEvent) | ||
514 | + { | ||
515 | + var ins = ""; | ||
516 | + if(p_oEvent.newValue.get("value") == "OK" && document.getElementById("itens").value != "") | ||
517 | + { | ||
518 | + core_carregando("ativa"); | ||
519 | + core_carregando(" gerando as classes"); | ||
520 | + var sUrl = "../php/editormapfile.php?funcao=autoClassesLayer&codigoMap="+codigoMap+"&codigoLayer="+codigoLayer+"&item="+document.getElementById("itens").value; | ||
521 | + var callback2 = | ||
522 | + { | ||
523 | + success:function(o) | ||
524 | + { | ||
525 | + try | ||
526 | + { | ||
527 | + var dados = YAHOO.lang.JSON.parse(o.responseText) | ||
528 | + var nos = tree.getNodesByProperty("classes",codigoMap+"_"+codigoLayer) | ||
529 | + for (var i=0, j=nos.length; i<j; i++) | ||
530 | + {tree.removeNode(nos[i],false)} | ||
531 | + var no = tree.getNodeByProperty("id",codigoMap+"_"+codigoLayer) | ||
532 | + montaParametrosTemas(no,dados) | ||
533 | + core_carregando("desativa"); | ||
534 | + } | ||
535 | + catch(e){core_handleFailure(o,o.responseText);core_carregando("desativa");} | ||
536 | + }, | ||
537 | + failure:core_handleFailure, | ||
538 | + argument: { foo:"foo", bar:"bar" } | ||
539 | + }; | ||
540 | + core_makeRequest(sUrl,callback2) | ||
541 | + } | ||
542 | + else | ||
543 | + { | ||
544 | + YAHOO.example.container.panelEditorAutoClasses.destroy(); | ||
545 | + YAHOO.example.container.panelEditorAutoClasses = null; | ||
546 | + } | ||
547 | + }; | ||
548 | + if(!YAHOO.example.container.panelEditorAutoClasses) | ||
549 | + { | ||
550 | + var novoel = document.createElement("div"); | ||
551 | + novoel.id = "janela_editor"; | ||
552 | + var ins = '<div class="hd">Editor</div>'; | ||
553 | + ins += "<div class='bd' style='height:354px;overflow:auto'>"; | ||
554 | + ins += "<div id='okcancel_checkbox'></div><div id='editor_bd'></div>"; | ||
555 | + novoel.innerHTML = ins; | ||
556 | + document.body.appendChild(novoel); | ||
557 | + var editorBotoes = new YAHOO.widget.ButtonGroup({id:"okcancel_checkbox_id", name: "okcancel_checkbox_id", container: "okcancel_checkbox" }); | ||
558 | + editorBotoes.addButtons([ | ||
559 | + { label: "Criar classes", value: "OK", checked: false}, | ||
560 | + { label: "Cancela", value: "CANCEL", checked: false } | ||
561 | + ]); | ||
562 | + editorBotoes.on("checkedButtonChange", on_editorCheckBoxChange); | ||
563 | + YAHOO.example.container.panelEditorAutoClasses = new YAHOO.widget.Panel("janela_editor", { fixedcenter:true,close:true,width:"400px", height:"400px",overflow:"auto", visible:false,constraintoviewport:true } ); | ||
564 | + YAHOO.example.container.panelEditorAutoClasses.render(); | ||
565 | + var sUrl = "../php/editormapfile.php?funcao=pegaItensLayer&codigoMap="+codigoMap+"&codigoLayer="+codigoLayer; | ||
566 | + var callback = | ||
567 | + { | ||
568 | + success:function(o) | ||
569 | + { | ||
570 | + try | ||
571 | + { | ||
572 | + ins = "<p>Itens encontrados na tabela de atributos do layer. Escolha um deles para ser utilizado na expressão de seleção de cada classe</p>" | ||
573 | + ins += "<select id='itens' >" | ||
574 | + ins += core_comboObjeto(YAHOO.lang.JSON.parse(o.responseText).itens,"","",""); | ||
575 | + ins += "</select></p>" | ||
576 | + $i("editor_bd").innerHTML = ins; | ||
577 | + core_carregando("desativa"); | ||
578 | + } | ||
579 | + catch(e){core_handleFailure(o,o.responseText);core_carregando("desativa");} | ||
580 | + }, | ||
581 | + failure:core_handleFailure, | ||
582 | + argument: { foo:"foo", bar:"bar" } | ||
583 | + }; | ||
584 | + core_makeRequest(sUrl,callback) | ||
585 | + } | ||
586 | + YAHOO.example.container.panelEditorAutoClasses.show(); | ||
587 | +} | ||
509 | function adicionaNovoEstilo(codigoMap,codigoLayer,indiceClasse) | 588 | function adicionaNovoEstilo(codigoMap,codigoLayer,indiceClasse) |
510 | { | 589 | { |
511 | core_carregando("ativa"); | 590 | core_carregando("ativa"); |
admin/php/editormapfile.php
@@ -47,6 +47,10 @@ switch ($funcao) | @@ -47,6 +47,10 @@ switch ($funcao) | ||
47 | retornaJSON(pegaLayers()); | 47 | retornaJSON(pegaLayers()); |
48 | exit; | 48 | exit; |
49 | break; | 49 | break; |
50 | + case "pegaItensLayer": | ||
51 | + retornaJSON(pegaItensLayer()); | ||
52 | + exit; | ||
53 | + break; | ||
50 | case "excluirMapfile": | 54 | case "excluirMapfile": |
51 | if(verificaEditores($editores) == "nao") | 55 | if(verificaEditores($editores) == "nao") |
52 | {echo "Vc nao e um editor cadastrado. Apenas os editores definidos em i3geo/ms_configura.php podem acessar o sistema de administracao.";exit;} | 56 | {echo "Vc nao e um editor cadastrado. Apenas os editores definidos em i3geo/ms_configura.php podem acessar o sistema de administracao.";exit;} |
@@ -86,6 +90,13 @@ switch ($funcao) | @@ -86,6 +90,13 @@ switch ($funcao) | ||
86 | retornaJSON(listaClasses()); | 90 | retornaJSON(listaClasses()); |
87 | exit; | 91 | exit; |
88 | break; | 92 | break; |
93 | + case "autoClassesLayer": | ||
94 | + if(verificaEditores($editores) == "nao") | ||
95 | + {echo "Vc nao e um editor cadastrado. Apenas os editores definidos em i3geo/ms_configura.php podem acessar o sistema de administracao.";exit;} | ||
96 | + autoClassesLayer(); | ||
97 | + retornaJSON(listaClasses()); | ||
98 | + exit; | ||
99 | + break; | ||
89 | case "criarNovaClasse": | 100 | case "criarNovaClasse": |
90 | if(verificaEditores($editores) == "nao") | 101 | if(verificaEditores($editores) == "nao") |
91 | {echo "Vc nao e um editor cadastrado. Apenas os editores definidos em i3geo/ms_configura.php podem acessar o sistema de administracao.";exit;} | 102 | {echo "Vc nao e um editor cadastrado. Apenas os editores definidos em i3geo/ms_configura.php podem acessar o sistema de administracao.";exit;} |
@@ -287,6 +298,39 @@ function criarNovoLayer() | @@ -287,6 +298,39 @@ function criarNovoLayer() | ||
287 | removeCabecalho($mapfile); | 298 | removeCabecalho($mapfile); |
288 | return array("layers"=>(array($nl->name))); | 299 | return array("layers"=>(array($nl->name))); |
289 | } | 300 | } |
301 | +function autoClassesLayer() | ||
302 | +{ | ||
303 | + global $codigoMap,$codigoLayer,$item,$locaplic,$dir_tmp; | ||
304 | + $mapfile = $locaplic."/temas/".$codigoMap.".map"; | ||
305 | + include_once("../../classesphp/classe_alteraclasse.php"); | ||
306 | + error_reporting(E_ALL); | ||
307 | + $nometemp = $dir_tmp."/".nomerandomico().".map"; | ||
308 | + if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) | ||
309 | + {$geral = $locaplic."/aplicmap/geral1windows.map";} | ||
310 | + else | ||
311 | + {$geral = $locaplic."aplicmap/geral1.map";} | ||
312 | + $mapageral = ms_newMapObj($geral); | ||
313 | + $nomestemp = $mapageral->getalllayernames(); | ||
314 | + foreach($nomestemp as $l) | ||
315 | + { | ||
316 | + $layertemp = $mapageral->getlayerbyname($l); | ||
317 | + $layertemp->set("status",MS_DELETE); | ||
318 | + } | ||
319 | + $mapatemp = ms_newMapObj($mapfile); | ||
320 | + $nomestemp = $mapatemp->getalllayernames(); | ||
321 | + foreach($nomestemp as $l) | ||
322 | + { | ||
323 | + $layertemp = $mapatemp->getlayerbyname($l); | ||
324 | + ms_newLayerObj($mapageral, $layertemp); | ||
325 | + } | ||
326 | + $mapageral->save($nometemp); | ||
327 | + $m = new Alteraclasse($nometemp,$codigoLayer); | ||
328 | + $m->valorunico($item,""); | ||
329 | + $m->salva(); | ||
330 | + $mapatemp = ms_newMapObj($nometemp); | ||
331 | + $mapatemp->save($mapfile); | ||
332 | + removeCabecalho($mapfile); | ||
333 | +} | ||
290 | function criarNovaClasse() | 334 | function criarNovaClasse() |
291 | { | 335 | { |
292 | global $codigoMap,$codigoLayer,$locaplic; | 336 | global $codigoMap,$codigoLayer,$locaplic; |
@@ -314,6 +358,18 @@ function criarNovoEstilo() | @@ -314,6 +358,18 @@ function criarNovoEstilo() | ||
314 | $dados[] = array("estilo"=>$numestilos); | 358 | $dados[] = array("estilo"=>$numestilos); |
315 | return $dados; | 359 | return $dados; |
316 | } | 360 | } |
361 | +function pegaItensLayer() | ||
362 | +{ | ||
363 | + global $codigoMap,$locaplic,$codigoLayer; | ||
364 | + $mapfile = $locaplic."/temas/".$codigoMap.".map"; | ||
365 | + $mapa = ms_newMapObj($mapfile); | ||
366 | + $layer = $mapa->getlayerbyname($codigoLayer); | ||
367 | + $layer->open(); | ||
368 | + $itens = $layer->getitems(); | ||
369 | + $layer->close(); | ||
370 | + $dados["itens"] = $itens; | ||
371 | + return $dados; | ||
372 | +} | ||
317 | function pegaLayers() | 373 | function pegaLayers() |
318 | { | 374 | { |
319 | global $codigoMap,$locaplic; | 375 | global $codigoMap,$locaplic; |