From 071d6f9f3df3786b54eceeecfab157d6b29ca1b7 Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Fri, 13 Mar 2009 15:26:23 +0000 Subject: [PATCH] Ticket #84 Incluir opções de classificação de um layer no sistema de administração --- admin/imagens/classificar.gif | Bin 0 -> 169 bytes admin/js/editormapfile.js | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ admin/php/editormapfile.php | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 135 insertions(+), 0 deletions(-) create mode 100644 admin/imagens/classificar.gif diff --git a/admin/imagens/classificar.gif b/admin/imagens/classificar.gif new file mode 100644 index 0000000..bafe4a5 Binary files /dev/null and b/admin/imagens/classificar.gif differ diff --git a/admin/js/editormapfile.js b/admin/js/editormapfile.js index e54c749..4684131 100644 --- a/admin/js/editormapfile.js +++ b/admin/js/editormapfile.js @@ -303,6 +303,8 @@ function montaParametrosTemas(no,dados,redesenha) if(!tree.getNodeByProperty("etiquetaClasses",no.data.id)) { var conteudo = " " + conteudo += " " + //conteudo += "" var d = {tipo:"etiquetaClasses",etiquetaClasses:no.data.id,html:conteudo+" Classes:"} var tempNode = new YAHOO.widget.HTMLNode(d, no, false,true); @@ -506,6 +508,83 @@ function adicionaNovaClasse(codigoMap,codigoLayer,indiceClasse) }; core_makeRequest(sUrl,callback) } +function classesAuto(codigoMap,codigoLayer) +{ + function on_editorCheckBoxChange(p_oEvent) + { + var ins = ""; + if(p_oEvent.newValue.get("value") == "OK" && document.getElementById("itens").value != "") + { + core_carregando("ativa"); + core_carregando(" gerando as classes"); + var sUrl = "../php/editormapfile.php?funcao=autoClassesLayer&codigoMap="+codigoMap+"&codigoLayer="+codigoLayer+"&item="+document.getElementById("itens").value; + var callback2 = + { + success:function(o) + { + try + { + var dados = YAHOO.lang.JSON.parse(o.responseText) + var nos = tree.getNodesByProperty("classes",codigoMap+"_"+codigoLayer) + for (var i=0, j=nos.length; iItens encontrados na tabela de atributos do layer. Escolha um deles para ser utilizado na expressão de seleção de cada classe

" + ins += "

" + $i("editor_bd").innerHTML = ins; + core_carregando("desativa"); + } + catch(e){core_handleFailure(o,o.responseText);core_carregando("desativa");} + }, + failure:core_handleFailure, + argument: { foo:"foo", bar:"bar" } + }; + core_makeRequest(sUrl,callback) + } + YAHOO.example.container.panelEditorAutoClasses.show(); +} function adicionaNovoEstilo(codigoMap,codigoLayer,indiceClasse) { core_carregando("ativa"); diff --git a/admin/php/editormapfile.php b/admin/php/editormapfile.php index 6c878c6..6ea5c52 100644 --- a/admin/php/editormapfile.php +++ b/admin/php/editormapfile.php @@ -47,6 +47,10 @@ switch ($funcao) retornaJSON(pegaLayers()); exit; break; + case "pegaItensLayer": + retornaJSON(pegaItensLayer()); + exit; + break; case "excluirMapfile": if(verificaEditores($editores) == "nao") {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) retornaJSON(listaClasses()); exit; break; + case "autoClassesLayer": + if(verificaEditores($editores) == "nao") + {echo "Vc nao e um editor cadastrado. Apenas os editores definidos em i3geo/ms_configura.php podem acessar o sistema de administracao.";exit;} + autoClassesLayer(); + retornaJSON(listaClasses()); + exit; + break; case "criarNovaClasse": if(verificaEditores($editores) == "nao") {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() removeCabecalho($mapfile); return array("layers"=>(array($nl->name))); } +function autoClassesLayer() +{ + global $codigoMap,$codigoLayer,$item,$locaplic,$dir_tmp; + $mapfile = $locaplic."/temas/".$codigoMap.".map"; + include_once("../../classesphp/classe_alteraclasse.php"); + error_reporting(E_ALL); + $nometemp = $dir_tmp."/".nomerandomico().".map"; + if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) + {$geral = $locaplic."/aplicmap/geral1windows.map";} + else + {$geral = $locaplic."aplicmap/geral1.map";} + $mapageral = ms_newMapObj($geral); + $nomestemp = $mapageral->getalllayernames(); + foreach($nomestemp as $l) + { + $layertemp = $mapageral->getlayerbyname($l); + $layertemp->set("status",MS_DELETE); + } + $mapatemp = ms_newMapObj($mapfile); + $nomestemp = $mapatemp->getalllayernames(); + foreach($nomestemp as $l) + { + $layertemp = $mapatemp->getlayerbyname($l); + ms_newLayerObj($mapageral, $layertemp); + } + $mapageral->save($nometemp); + $m = new Alteraclasse($nometemp,$codigoLayer); + $m->valorunico($item,""); + $m->salva(); + $mapatemp = ms_newMapObj($nometemp); + $mapatemp->save($mapfile); + removeCabecalho($mapfile); +} function criarNovaClasse() { global $codigoMap,$codigoLayer,$locaplic; @@ -314,6 +358,18 @@ function criarNovoEstilo() $dados[] = array("estilo"=>$numestilos); return $dados; } +function pegaItensLayer() +{ + global $codigoMap,$locaplic,$codigoLayer; + $mapfile = $locaplic."/temas/".$codigoMap.".map"; + $mapa = ms_newMapObj($mapfile); + $layer = $mapa->getlayerbyname($codigoLayer); + $layer->open(); + $itens = $layer->getitems(); + $layer->close(); + $dados["itens"] = $itens; + return $dados; +} function pegaLayers() { global $codigoMap,$locaplic; -- libgit2 0.21.2