Commit fab40c57a3816d7b68eb065014b3ceb77d801cab

Authored by Edmar Moretti
1 parent 6aaa5653
Exists in master

Correção no sistema de administração (lista de grupos vinculados a uma camada)

admin/admin.db
No preview for this file type
admin/catalogo/mapfile/gruposusuarios/funcoes.php
... ... @@ -16,11 +16,11 @@ function listar($dbh,$locaplic,$codigo){
16 16 ".$esquemaadmin."i3geousr_grupotema.id_tema
17 17 from
18 18 ".$esquemaadmin."i3geoadmin_temas
19   - join ".$esquemaadmin."i3geousr_grupotema
20   - on ".$esquemaadmin."i3geousr_grupotema.id_grupo = ".$esquemaadmin."i3geousr_grupos.id_grupo
21   - join ".$esquemaadmin."i3geousr_grupos
22   - on ".$esquemaadmin."i3geoadmin_temas.id_tema = ".$esquemaadmin."i3geousr_grupotema.id_tema
23   - where codigo_tema = '".$codigo."' order by lower(nome)
  19 + join ".$esquemaadmin."i3geousr_grupotema
  20 + on ".$esquemaadmin."i3geoadmin_temas.id_tema = ".$esquemaadmin."i3geousr_grupotema.id_tema
  21 + join ".$esquemaadmin."i3geousr_grupos
  22 + on ".$esquemaadmin."i3geousr_grupotema.id_grupo = ".$esquemaadmin."i3geousr_grupos.id_grupo
  23 + where codigo_tema = '".$codigo."' order by lower(nome)
24 24 ";
25 25 $dados = \admin\php\funcoesAdmin\pegaDados ( $sql, $dbh, false );
26 26 } else {
... ...
admin/catalogo/mapfile/gruposusuarios/index.js
... ... @@ -24,138 +24,138 @@ Free Software Foundation, Inc., no endereço
24 24 */
25 25 i3GEOadmin.mapfile = {};
26 26 i3GEOadmin.gruposusuarios = {
27   - //variavel global indicando o elemento que recebera a lista de gruposusuarios
28   - ondeLista: "",
29   - //conteudo html do formulario de adicao de operacao
30   - formAdiciona: "",
31   - codigo: "",
32   - //parametros obtidos do formulario de edicao antes de abrir o modal de confirmacao
33   - parametrosSalvar: "",
34   - init: function(onde,codigo,id_tema){
35   - i3GEOadmin.gruposusuarios.ondeLista = onde;
36   - i3GEOadmin.gruposusuarios.codigo = codigo;
37   - i3GEOadmin.gruposusuarios.lista(codigo,id_tema);
38   - },
39   - /*
  27 + //variavel global indicando o elemento que recebera a lista de gruposusuarios
  28 + ondeLista: "",
  29 + //conteudo html do formulario de adicao de operacao
  30 + formAdiciona: "",
  31 + codigo: "",
  32 + //parametros obtidos do formulario de edicao antes de abrir o modal de confirmacao
  33 + parametrosSalvar: "",
  34 + init: function(onde,codigo,id_tema){
  35 + i3GEOadmin.gruposusuarios.ondeLista = onde;
  36 + i3GEOadmin.gruposusuarios.codigo = codigo;
  37 + i3GEOadmin.gruposusuarios.lista(codigo,id_tema);
  38 + },
  39 + /*
40 40 Function: lista
41 41  
42 42 Obtém a lista de gruposusuarios
43   - */
44   - lista: function(codigo,id_tema){
45   - i3GEOadmin.core.iconeAguarde(i3GEOadmin.gruposusuarios.ondeLista);
46   - $.post(
47   - "exec.php?funcao=lista",
48   - "codigo=" + codigo + "&id_tema=" + id_tema
49   - )
50   - .done(
51   - function(data, status){
52   - //objeto json com os dados viondos do banco
53   - var json = jQuery.parseJSON(data);
54   - //lista todas as gruposusuarios
55   - var html = Mustache.to_html(
56   - "{{#data}}" + $("#templateLista").html() + "{{/data}}",
57   - $.extend(
58   - {},
59   - i3GEOadmin.gruposusuarios.dicionario,
60   - {
61   - "data": json["dados"],
62   - "onExcluir": "i3GEOadmin.gruposusuarios.excluirDialogo",//funcao
63   - "onEditar": "i3GEOadmin.gruposusuarios.editarDialogo"//funcao
64   - }
65   - )
66   - );
67   - i3GEOadmin.gruposusuarios.ondeLista.html(html);
68   - //monta um template para o modal de inclusao de novo usuario
69   - if(i3GEOadmin.gruposusuarios.formAdiciona == ""){
70   - var lista = Mustache.to_html(
71   - "{{#data}}" + $("#templateGrupos").html() + "{{/data}}",
72   - $.extend(
73   - {},
74   - i3GEOadmin.gruposusuarios.dicionario,
75   - {
76   - "data": json["grupos"],
77   - }
78   - )
79   - );
80   - html = Mustache.to_html(
81   - $("#templateFormLista").html(),
82   - $.extend(
83   - {},
84   - i3GEOadmin.gruposusuarios.dicionario,
85   - {
86   - "grupos": lista,
87   - "id_tema": id_tema,
88   - "codigo": codigo,
89   - "excluir": i3GEOadmin.gruposusuarios.dicionario.cancelar,
90   - "onExcluir": "i3GEOadmin.core.fechaModalGeral",//funcao
91   - "onSalvar": "i3GEOadmin.gruposusuarios.adiciona"//funcao
92   - }
93   - )
94   - );
95   - i3GEOadmin.gruposusuarios.formAdiciona = html;
96   - }
97   - $.material.init();
98   - }
99   - )
100   - .fail(function(data){
101   - i3GEOadmin.gruposusuarios.ondeLista.html("");
102   - i3GEOadmin.core.mostraErro(data.status + " " +data.statusText);
103   - });
104   - },
105   - adicionaDialogo: function(){
106   - i3GEOadmin.core.abreModalGeral(i3GEOadmin.gruposusuarios.formAdiciona);
107   - },
108   -// os parametros sao obtidos do formulario aberto do modal
109   - adiciona: function(codigo,id_tema){
110   - var parametros = $("#modalGeral .form-horizontal").serialize();
111   - i3GEOadmin.core.fechaModalGeral();
112   - i3GEOadmin.core.modalAguarde(true);
113   - $.post(
114   - "exec.php?funcao=adicionar",
115   - parametros + "&codigo=" + codigo + "&id_tema=" + id_tema
116   - )
117   - .done(
118   - function(data, status){
119   - i3GEOadmin.core.modalAguarde(false);
120   - i3GEOadmin.core.iconeAguarde(i3GEOadmin.gruposusuarios.ondeLista);
121   - i3GEOadmin.gruposusuarios.lista(i3GEOadmin.gruposusuarios.codigo,id_tema);
122   - }
123   - )
124   - .fail(
125   - function(data){
126   - i3GEOadmin.core.modalAguarde(false);
127   - i3GEOadmin.core.mostraErro(data.status + " " +data.statusText);
128   - }
129   - );
130   - },
131   - excluirDialogo: function(id_grupo,id_tema){
132   - var hash = {
133   - "mensagem": i3GEOadmin.gruposusuarios.dicionario.confirma,
134   - "onBotao1": "i3GEOadmin.gruposusuarios.excluir('"+id_grupo+"','"+id_tema+"')",
135   - "botao1": i3GEOadmin.gruposusuarios.dicionario.sim,
136   - "onBotao2": "i3GEOadmin.core.fechaModalConfirma();",
137   - "botao2": i3GEOadmin.gruposusuarios.dicionario.nao
138   - };
139   - i3GEOadmin.core.abreModalConfirma(hash);
140   - },
141   - excluir: function(id_grupo,id_tema){
142   - i3GEOadmin.core.modalAguarde(true);
143   - $.post(
144   - "exec.php?funcao=excluir",
145   - "id_grupo=" + id_grupo + "&id_tema=" + id_tema
146   - )
147   - .done(
148   - function(data, status){
149   - i3GEOadmin.core.modalAguarde(false);
150   - i3GEOadmin.core.iconeAguarde(i3GEOadmin.gruposusuarios.ondeLista);
151   - i3GEOadmin.gruposusuarios.lista(i3GEOadmin.gruposusuarios.codigo,id_tema);
152   - }
153   - )
154   - .fail(
155   - function(data){
156   - i3GEOadmin.core.modalAguarde(false);
157   - i3GEOadmin.core.mostraErro(data.status + " " +data.statusText);
  43 + */
  44 + lista: function(codigo,id_tema){
  45 + i3GEOadmin.core.iconeAguarde(i3GEOadmin.gruposusuarios.ondeLista);
  46 + $.post(
  47 + "exec.php?funcao=lista",
  48 + "codigo=" + codigo + "&id_tema=" + id_tema
  49 + )
  50 + .done(
  51 + function(data, status){
  52 + //objeto json com os dados viondos do banco
  53 + var json = jQuery.parseJSON(data);
  54 + //lista todas as gruposusuarios
  55 + var html = Mustache.to_html(
  56 + "{{#data}}" + $("#templateLista").html() + "{{/data}}",
  57 + $.extend(
  58 + {},
  59 + i3GEOadmin.gruposusuarios.dicionario,
  60 + {
  61 + "data": json["dados"],
  62 + "onExcluir": "i3GEOadmin.gruposusuarios.excluirDialogo",//funcao
  63 + "onEditar": "i3GEOadmin.gruposusuarios.editarDialogo"//funcao
158 64 }
  65 + )
159 66 );
160   - }
  67 + i3GEOadmin.gruposusuarios.ondeLista.html(html);
  68 + //monta um template para o modal de inclusao de novo usuario
  69 + if(i3GEOadmin.gruposusuarios.formAdiciona == ""){
  70 + var lista = Mustache.to_html(
  71 + "{{#data}}" + $("#templateGrupos").html() + "{{/data}}",
  72 + $.extend(
  73 + {},
  74 + i3GEOadmin.gruposusuarios.dicionario,
  75 + {
  76 + "data": json["grupos"],
  77 + }
  78 + )
  79 + );
  80 + html = Mustache.to_html(
  81 + $("#templateFormLista").html(),
  82 + $.extend(
  83 + {},
  84 + i3GEOadmin.gruposusuarios.dicionario,
  85 + {
  86 + "grupos": lista,
  87 + "id_tema": id_tema,
  88 + "codigo": codigo,
  89 + "excluir": i3GEOadmin.gruposusuarios.dicionario.cancelar,
  90 + "onExcluir": "i3GEOadmin.core.fechaModalGeral",//funcao
  91 + "onSalvar": "i3GEOadmin.gruposusuarios.adiciona"//funcao
  92 + }
  93 + )
  94 + );
  95 + i3GEOadmin.gruposusuarios.formAdiciona = html;
  96 + }
  97 + $.material.init();
  98 + }
  99 + )
  100 + .fail(function(data){
  101 + i3GEOadmin.gruposusuarios.ondeLista.html("");
  102 + i3GEOadmin.core.mostraErro(data.status + " " +data.statusText);
  103 + });
  104 + },
  105 + adicionaDialogo: function(){
  106 + i3GEOadmin.core.abreModalGeral(i3GEOadmin.gruposusuarios.formAdiciona);
  107 + },
  108 +// os parametros sao obtidos do formulario aberto do modal
  109 + adiciona: function(codigo,id_tema){
  110 + var parametros = $("#modalGeral .form-horizontal").serialize();
  111 + i3GEOadmin.core.fechaModalGeral();
  112 + i3GEOadmin.core.modalAguarde(true);
  113 + $.post(
  114 + "exec.php?funcao=adicionar",
  115 + parametros + "&codigo=" + codigo + "&id_tema=" + id_tema
  116 + )
  117 + .done(
  118 + function(data, status){
  119 + i3GEOadmin.core.modalAguarde(false);
  120 + i3GEOadmin.core.iconeAguarde(i3GEOadmin.gruposusuarios.ondeLista);
  121 + i3GEOadmin.gruposusuarios.lista(i3GEOadmin.gruposusuarios.codigo,id_tema);
  122 + }
  123 + )
  124 + .fail(
  125 + function(data){
  126 + i3GEOadmin.core.modalAguarde(false);
  127 + i3GEOadmin.core.mostraErro(data.status + " " +data.statusText);
  128 + }
  129 + );
  130 + },
  131 + excluirDialogo: function(id_grupo,id_tema){
  132 + var hash = {
  133 + "mensagem": i3GEOadmin.gruposusuarios.dicionario.confirma,
  134 + "onBotao1": "i3GEOadmin.gruposusuarios.excluir('"+id_grupo+"','"+id_tema+"')",
  135 + "botao1": i3GEOadmin.gruposusuarios.dicionario.sim,
  136 + "onBotao2": "i3GEOadmin.core.fechaModalConfirma();",
  137 + "botao2": i3GEOadmin.gruposusuarios.dicionario.nao
  138 + };
  139 + i3GEOadmin.core.abreModalConfirma(hash);
  140 + },
  141 + excluir: function(id_grupo,id_tema){
  142 + i3GEOadmin.core.modalAguarde(true);
  143 + $.post(
  144 + "exec.php?funcao=excluir",
  145 + "id_grupo=" + id_grupo + "&id_tema=" + id_tema
  146 + )
  147 + .done(
  148 + function(data, status){
  149 + i3GEOadmin.core.modalAguarde(false);
  150 + i3GEOadmin.core.iconeAguarde(i3GEOadmin.gruposusuarios.ondeLista);
  151 + i3GEOadmin.gruposusuarios.lista(i3GEOadmin.gruposusuarios.codigo,id_tema);
  152 + }
  153 + )
  154 + .fail(
  155 + function(data){
  156 + i3GEOadmin.core.modalAguarde(false);
  157 + i3GEOadmin.core.mostraErro(data.status + " " +data.statusText);
  158 + }
  159 + );
  160 + }
161 161 };
162 162 \ No newline at end of file
... ...
classesphp/mapa_controle.php
... ... @@ -177,9 +177,8 @@ if ($funcao != "listaEpsg" && $funcao != "pegaTodosTemas" && $funcao != "downloa
177 177 if (isset($_SESSION['fingerprint'])) {
178 178 $f = explode(",", $_SESSION['fingerprint']);
179 179 if ($f[0] != md5('I3GEOSEC' . $_SERVER['HTTP_USER_AGENT'] . session_id())) {
180   - include_once ("funcoes_gerais.php");
181   - cpjson(". Tentativa de acesso nao permitida. Inicie um novo mapa.");
182   - return;
  180 + header("HTTP/1.1 403 Tentativa de acesso nao permitida. Inicie um novo mapa.");
  181 + exit();
183 182 }
184 183 }
185 184 } else {
... ...
classesphp/mapa_googlemaps.php
... ... @@ -55,7 +55,7 @@
55 55 * i3geo/classesphp/mapa_googlemaps.php
56 56 *
57 57 */
58   -include ("sani_request.php");
  58 +//include ("sani_request.php");
59 59 // para efeitos de compatibilidade
60 60 if (! function_exists('ms_GetVersion')) {
61 61 include_once ("carrega_ext.php");
... ... @@ -142,14 +142,7 @@ if ($_GET["REQUEST"] == "GetFeatureInfo" || strtolower($_GET["REQUEST"]) == "get
142 142 $_GET["mapext"] = str_replace(",", " ", $_GET["BBOX"]);
143 143 }
144 144 // por seguranca
145   -include_once ("funcoes_gerais.php");
146   -
147   -$logExec = $_SESSION["logExec"];
148   -if (isset($logExec) && $logExec["mapa_"] == true) {
149   - i3GeoLog("prog: mapa_googlemaps url: " . implode("&", array_merge($_GET, $_POST)), $_SESSION["dir_tmp"]);
150   -}
151   -
152   -restauraCon($map_fileX, $postgis_mapa);
  145 +//include_once ("funcoes_gerais.php");
153 146  
154 147 $mapa = ms_newMapObj($map_fileX);
155 148 $ret = $mapa->extent;
... ... @@ -204,6 +197,9 @@ for ($i = 0; $i < $numlayers; ++ $i) {
204 197 //a renderiazacao e sempre com opacidade 1
205 198 $l->updateFromString('LAYER COMPOSITE OPACITY 100 END END');
206 199 if ($l->getmetadata("classesnome") != "" || $l->getmetadata("palletefile") != "") {
  200 + if (! function_exists("autoClasses")) {
  201 + include_once ("funcoes_gerais.php");
  202 + }
207 203 autoClasses($l, $mapa);
208 204 }
209 205 if (! empty($postgis_mapa)) {
... ... @@ -521,6 +517,22 @@ function carregaCacheImagem()
521 517 $nome = $c . "/$y.png";
522 518 $tipo = "image/png";
523 519 }
  520 +
  521 + cabecalhoImagem($nome,$tipo);
  522 + if ($i3georendermode = 0 || $i3georendermode = 1 || empty($i3georendermode)) {
  523 + $leu = @readfile($nome);
  524 + if($leu == false){
  525 + header_remove();
  526 + }
  527 + } else {
  528 + if (file_exists($nome)) {
  529 + if (file_exists($nome)) {
  530 + header("X-Sendfile: ".$nome);
  531 + exit();
  532 + }
  533 + }
  534 + }
  535 + /*
524 536 if (file_exists($nome)) {
525 537 cabecalhoImagem($nome,$tipo);
526 538 if ($i3georendermode = 0 || $i3georendermode = 1 || empty($i3georendermode)) {
... ... @@ -530,6 +542,7 @@ function carregaCacheImagem()
530 542 }
531 543 exit();
532 544 }
  545 + */
533 546 }
534 547  
535 548 function nomeRand($n = 10)
... ...
classesphp/mapa_openlayers.php
... ... @@ -55,7 +55,7 @@
55 55 *
56 56 */
57 57  
58   -include ("sani_request.php");
  58 +//include ("sani_request.php");
59 59 // para efeitos de compatibilidade
60 60 if (! function_exists('ms_GetVersion')) {
61 61 include_once ("carrega_ext.php");
... ... @@ -149,9 +149,7 @@ $map_fileX = $_SESSION["map_file"];
149 149 if (! empty($_GET["request"])) {
150 150 $_GET["REQUEST"] = $_GET["request"];
151 151 }
152   -//
153   -// resolve o problema da selecao nas versoes mais recentes nova do mapserver
154   -//
  152 +
155 153 $qyfile = dirname($map_fileX) . "/" . $_GET["layer"] . "_qy.map";
156 154 $qy = file_exists($qyfile);
157 155 if (! isset($_GET["DESLIGACACHE"])) {
... ... @@ -178,16 +176,7 @@ if (isset($_GET["tipolayer"]) && $_GET["tipolayer"] == "fundo") {
178 176 $postgis_mapa = $_SESSION["postgis_mapa"];
179 177  
180 178 // por seguranca
181   -include_once ("funcoes_gerais.php");
182   -
183   -if (isset($_SESSION["logExec"])) {
184   - if (@$_SESSION["logExec"]["mapa_"] == true) {
185   - i3GeoLog("prog: mapa_openlayers url: " . implode("&", array_merge($_GET, $_POST)), $_SESSION["dir_tmp"]);
186   - }
187   -}
188   -
189   -// restauraCon ( $map_fileX, $postgis_mapa );
190   -
  179 +//include_once ("funcoes_gerais.php");
191 180 $cachedir = $_SESSION["cachedir"];
192 181 if (isset($_GET["BBOX"])) {
193 182 $_GET["mapext"] = str_replace(",", " ", $_GET["BBOX"]);
... ... @@ -472,6 +461,7 @@ if ($_GET["TIPOIMAGEM"] != "" && $_GET["TIPOIMAGEM"] != "nenhum") {
472 461 // cache ativo. Salva a imagem em cache
473 462 $nomer = salvaCacheImagem($cachedir, $map_fileX, $_GET["tms"]);
474 463 cabecalhoImagem($nomer);
  464 + header("i3geocache: gerado");
475 465 if ($_SESSION["i3georendermode"] == 2) {
476 466 header("X-Sendfile: $nomer");
477 467 } else {
... ... @@ -497,6 +487,7 @@ if ($_GET["TIPOIMAGEM"] != "" && $_GET["TIPOIMAGEM"] != "nenhum") {
497 487 imagesavealpha($img, true);
498 488 }
499 489 cabecalhoImagem($nomer);
  490 + header("i3geocache: nao");
500 491 imagepng($img);
501 492 imagedestroy($img);
502 493 exit();
... ... @@ -589,17 +580,32 @@ function carregaCacheImagem($cachedir, $map, $tms, $i3georendermode = 0, $format
589 580 $tipo = "image/png";
590 581 }
591 582  
  583 + cabecalhoImagem($nome,$tipo);
  584 + if ($i3georendermode = 0 || $i3georendermode = 1 || empty($i3georendermode)) {
  585 + header("i3geocache: sim");
  586 + $leu = @readfile($nome);
  587 + if($leu == false){
  588 + header_remove();
  589 + }
  590 + } else {
  591 + if (file_exists($nome)) {
  592 + if (file_exists($nome)) {
  593 + header("X-Sendfile: ".$nome);
  594 + exit();
  595 + }
  596 + }
  597 + }
  598 + /*
592 599 if (file_exists($nome)) {
593   -
594 600 cabecalhoImagem($nome,$tipo);
595 601 if ($i3georendermode = 0 || $i3georendermode = 1 || empty($i3georendermode)) {
596 602 readfile($nome);
597 603 } else {
598 604 header("X-Sendfile: ".$nome);
599 605 }
600   -
601 606 exit();
602 607 }
  608 + */
603 609 }
604 610  
605 611 function nomeRand($n = 10)
... ...
ferramentas/mascara/exec.php
1 1 <?php
2   -include_once(dirname(__FILE__)."/../safe.php");
3   -verificaBlFerramentas(basename(dirname(__FILE__)),$i3geoBlFerramentas,false);
4   -//
5   -//faz a busca da fun&ccedil;&atilde;o que deve ser executada
6   -//
7   -$retorno = ""; //string que ser&aacute; retornada ao browser via JSON
8   -switch (strtoupper($funcao))
9   -{
  2 +include (dirname(__FILE__) . "/../safe2.php");
  3 +verificaBlFerramentas(basename(dirname(__FILE__)), $_SESSION["i3geoBlFerramentas"], false);
  4 +switch (strtoupper($_GET["funcao"])) {
10 5 //lista os layers que sao mascarados por tema
11 6 case "LISTATEMAS":
12   - $map = ms_newMapObj($map_file);
  7 + $map = ms_newMapObj($_SESSION["map_file"]);
13 8 $c = $map->numlayers;
14 9 $retorno = array();
15 10 for ($i=0;$i < $c;++$i) {
16 11 $l = $map->getlayer($i);
17   - if($l->mask == $tema){
18   - $retorno[] = $tema;
  12 + if($l->mask == $_GET["tema"]){
  13 + $retorno[] = $_GET["tema"];
19 14 }
20 15 }
21 16 break;
22 17 case "APLICAR":
23   - $map = ms_newMapObj($map_file);
  18 + $map = ms_newMapObj($_SESSION["map_file"]);
24 19 $c = $map->numlayers;
25 20 $mascarar = explode(",",$_GET["mascarar"]);
26 21 for ($i=0;$i < $c;++$i) {
27 22 $l = $map->getlayer($i);
28   - if($l->mask == $tema){
  23 + if($l->mask == $_GET["tema"]){
29 24 $l->mask = "";
30 25 }
31 26 if(in_array($l->name,$mascarar)){
32   - $l->mask = $tema;
  27 + $l->mask = $_GET["tema"];
33 28 $l->setmetadata("cache","nao");
34 29 }
35 30 }
36   - $map->save($map_file);
  31 + $map->save($_SESSION["map_file"]);
37 32 break;
38 33 }
39   -if(isset($map_file) && isset($postgis_mapa) && $map_file != ""){
40   - restauraCon($map_file,$postgis_mapa);
41   -}
42   -cpjson($retorno);
43   -?>
44 34 \ No newline at end of file
  35 +ob_clean();
  36 +header("Content-type: application/json");
  37 +echo json_encode($retorno);
... ...
ferramentas/mascara/index.js
1   -/*
2   -Title: Mascara
3   -
4   -Ativa para layers selecionados a opção MASL do Mapserver
5   -
6   -Veja:
7   -
8   -<i3GEO.mapa.dialogo.mascara>
9   -
10   -Arquivo:
11   -
12   -i3geo/ferramentas/mascara/index.js.php
13   -
14   -Licenca:
15   -
16   -GPL2
17   -
18   -i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet
19   -
20   -Direitos Autorais Reservados (c) 2006 Minist&eacute;rio do Meio Ambiente Brasil
21   -Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com
22   -
23   -Este programa &eacute; software livre; voc&ecirc; pode redistribu&iacute;-lo
24   -e/ou modific&aacute;-lo sob os termos da Licen&ccedil;a P&uacute;blica Geral
25   -GNU conforme publicada pela Free Software Foundation;
26   -
27   -Este programa &eacute; distribu&iacute;do na expectativa de que seja &uacute;til,
28   -por&eacute;m, SEM NENHUMA GARANTIA; nem mesmo a garantia impl&iacute;cita
29   -de COMERCIABILIDADE OU ADEQUA&Ccedil;&Atilde;O A UMA FINALIDADE ESPEC&Iacute;FICA.
30   -Consulte a Licen&ccedil;a P&uacute;blica Geral do GNU para mais detalhes.
31   -Voc&ecirc; deve ter recebido uma c&oacute;pia da Licen&ccedil;a P&uacute;blica Geral do
32   -GNU junto com este programa; se n&atilde;o, escreva para a
33   -Free Software Foundation, Inc., no endere&ccedil;o
34   -59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
35   -*/
36 1 if(typeof(i3GEOF) === 'undefined'){
37   - var i3GEOF = {};
  2 + var i3GEOF = {};
38 3 }
39   -/*
40   -Classe: i3GEOF.mascara
41   -*/
42 4 i3GEOF.mascara = {
43   - /*
44   - Variavel: aguarde
45   -
46   - Estilo do objeto DOM com a imagem de aguarde existente no cabe&ccedil;alho da janela.
47   - */
48   - aguarde: "",
49   - /**
50   - * Template no formato mustache. E preenchido na carga do javascript com o programa dependencias.php
51   - */
52   - MUSTACHE : "",
53   - /**
54   - * Susbtitutos para o template
55   - */
56   - mustacheHash : function() {
57   - var dicionario = i3GEO.idioma.objetoIdioma(i3GEOF.mascara.dicionario);
58   - dicionario["locaplic"] = i3GEO.configura.locaplic;
59   - return dicionario;
  5 + renderFunction: i3GEO.janela.formModal,
  6 + _parameters: {
  7 + "mustache": "",
  8 + "idContainer": "i3GEOmascaraContainer",
  9 + "namespace": "mascara"
60 10 },
61   - /*
62   - Function: inicia
63   -
64   - Inicia a ferramenta. &Eacute; chamado por criaJanelaFlutuante
65   -
66   - Parametro:
67   -
68   - iddiv {String} - id do div que receber&aacute; o conteudo HTML da ferramenta
69   - */
70   - inicia: function(iddiv){
71   - if(i3GEOF.mascara.MUSTACHE == ""){
72   - $.get(i3GEO.configura.locaplic + "/ferramentas/mascara/template_mst.html", function(template) {
73   - i3GEOF.mascara.MUSTACHE = template;
74   - i3GEOF.mascara.inicia(iddiv);
75   - });
76   - return;
77   - }
78   - $i(iddiv).innerHTML = i3GEOF.mascara.html();
79   - i3GEOF.mascara.selMascara();
80   - i3GEOF.mascara.listaDeCamadas();
  11 + start : function(){
  12 + var p = this._parameters,
  13 + i3f = this,
  14 + t1 = i3GEO.configura.locaplic + "/ferramentas/"+p.namespace+"/template_mst.html";
  15 + if(p.mustache === ""){
  16 + i3GEO.janela.abreAguarde();
  17 + $.get(t1).done(function(r1) {
  18 + p.mustache = r1;
  19 + i3f.html();
  20 + i3GEO.janela.fechaAguarde();
  21 + }).fail(function() {
  22 + i3GEO.janela.snackBar({content: $trad("erroTpl"),style: "red"});
  23 + return;
  24 + });
  25 + } else {
  26 + i3f.html();
  27 + }
  28 + },
  29 + destroy: function(){
81 30 },
82   - /*
83   - Function: html
84   -
85   - Gera o c&oacute;digo html para apresenta&ccedil;&atilde;o das op&ccedil;&otilde;es da ferramenta
86   -
87   - Retorno:
88   -
89   - String com o c&oacute;digo html
90   - */
91 31 html:function() {
92   - var ins = Mustache.render(i3GEOF.mascara.MUSTACHE, i3GEOF.mascara.mustacheHash());
93   - return ins;
  32 + var p = this._parameters,
  33 + i3f = this,
  34 + hash = {};
  35 + hash = {
  36 + locaplic: i3GEO.configura.locaplic,
  37 + namespace: p.namespace,
  38 + idContainer: p.idContainer,
  39 + ...i3GEO.idioma.objetoIdioma(i3f.dicionario)
  40 + };
  41 + i3f.renderFunction.call(
  42 + this,
  43 + {
  44 + texto: Mustache.render(p.mustache, hash)
  45 + }
  46 + );
  47 + i3GEOF.mascara.selMascara();
  48 + i3GEOF.mascara.listaDeCamadas();
94 49 },
95 50 listaDeCamadas: function(marcar){
96   - var camadas = i3GEO.arvoreDeCamadas.CAMADAS,
97   - n = camadas.length, c,
98   - ins = "";
99   - if(!marcar){
100   - marcar = [];
101   - }
102   - while(n > 0){
103   - n -= 1;
104   - if(camadas[n].tema !== ""){
105   - c = "";
106   - if(marcar.indexOf(camadas[n].tema) >= 0){
107   - c = "checked";
108   - }
109   - ins += '<div class="checkbox text-left"><label>'
110   - + '<input name="' + camadas[n].name + '" type="checkbox" ' + c + ' >'
111   - + '<span class="checkbox-material noprint"><span class="check"></span></span>&nbsp;'
112   - + camadas[n].tema
113   - + '</label></div>';
114   - }
  51 + var camadas = i3GEO.arvoreDeCamadas.CAMADAS,
  52 + n = camadas.length, c,
  53 + ins = "";
  54 + if(!marcar){
  55 + marcar = [];
  56 + }
  57 + while(n > 0){
  58 + n -= 1;
  59 + if(camadas[n].tema !== ""){
  60 + c = "";
  61 + if(marcar.indexOf(camadas[n].tema) >= 0){
  62 + c = "checked";
  63 + }
  64 + ins += '<div class="checkbox text-left"><label>'
  65 + + '<input name="' + camadas[n].name + '" type="checkbox" ' + c + ' >'
  66 + + '<span class="checkbox-material noprint"><span class="check"></span></span>&nbsp;'
  67 + + camadas[n].tema
  68 + + '</label></div>';
115 69 }
116   - ins += "</table>";
117   - $i("i3GEOFmascaraLista").innerHTML = ins;
118   - },
119   - /*
120   - Function: iniciaJanelaFlutuante
121   -
122   - Cria a janela flutuante para controle da ferramenta.
123   - */
124   - iniciaJanelaFlutuante: function(){
125   - var janela,divid,temp,titulo,cabecalho,minimiza;
126   - if($i("i3GEOF.mascara")){
127   - return;
128   - }
129   - cabecalho = function(){};
130   - minimiza = function(){
131   - i3GEO.janela.minimiza("i3GEOF.mascara",200);
132   - };
133   - //cria a janela flutuante
134   - titulo = "<span class='i3GeoTituloJanelaBsNolink' >" + $trad("mascara") + "</span></div>";
135   - janela = i3GEO.janela.cria(
136   - "310px",
137   - "220px",
138   - "",
139   - "",
140   - "",
141   - titulo,
142   - "i3GEOF.mascara",
143   - false,
144   - "hd",
145   - cabecalho,
146   - minimiza,
147   - "",
148   - true,
149   - "",
150   - "",
151   - "",
152   - "",
153   - "129"
154   - );
155   - divid = janela[2].id;
156   - $i("i3GEOF.mascara_corpo").style.backgroundColor = "white";
157   - $i("i3GEOF.mascara_corpo").style.textAlign = "left";
158   - i3GEOF.mascara.aguarde = $i("i3GEOF.mascara_imagemCabecalho").style;
159   - i3GEOF.mascara.inicia(divid);
160   - temp = function(){
161   - i3GEOF.mascara.termina();
162   - };
163   - YAHOO.util.Event.addListener(janela[0].close, "click", temp);
  70 + }
  71 + ins += "</table>";
  72 + $i("i3GEOFmascaraLista").innerHTML = ins;
164 73 },
165 74 selMascara: function(){
166   - i3GEO.util.comboTemas(
167   - "i3GEOFmascaraSelTema",
168   - function(retorno){
169   - $i("i3GEOmascaraTema").innerHTML = retorno.dados;
170   - $i("i3GEOFmascaraSelTema").onchange = function(){
171   - i3GEOF.mascara.mascaraAtual($i("i3GEOFmascaraSelTema").value);
172   - };
173   - },
174   - "i3GEOmascaraTema",
175   - "",
176   - false,
177   - "",
178   - " ",
179   - false,
180   - true,
181   - "form-control comboTema"
182   - );
  75 + i3GEO.util.comboTemas(
  76 + "i3GEOFmascaraSelTema",
  77 + function(retorno){
  78 + $i("i3GEOmascaraTema").innerHTML = retorno.dados;
  79 + $i("i3GEOFmascaraSelTema").onchange = function(){
  80 + i3GEOF.mascara.mascaraAtual($i("i3GEOFmascaraSelTema").value);
  81 + };
  82 + },
  83 + "i3GEOmascaraTema",
  84 + "",
  85 + false,
  86 + "",
  87 + " ",
  88 + false,
  89 + true,
  90 + "form-control comboTema"
  91 + );
183 92 },
184 93 listaTemas: function(){
185   - var temp = [],
186   - cs = $i("i3GEOFmascaraLista").getElementsByTagName("input"),
187   - n = cs.length;
188   - while(n > 0){
189   - n -= 1;
190   - if(cs[n].checked === true){
191   - temp.push(cs[n].name);
192   - }
  94 + var temp = [],
  95 + cs = $i("i3GEOFmascaraLista").getElementsByTagName("input"),
  96 + n = cs.length;
  97 + while(n > 0){
  98 + n -= 1;
  99 + if(cs[n].checked === true){
  100 + temp.push(cs[n].name);
193 101 }
194   - return temp;
  102 + }
  103 + return temp;
195 104 },
196   - aplicar : function(){
197   - var tema = $i("i3GEOFmascaraSelTema").value,
198   - mascarar = i3GEOF.mascara.listaTemas(), p, fim, cp;
199   - if(i3GEOF.mascara.aguarde.visibility === "visible"){
200   - return;
201   - }
202   - if(tema === ""){
203   - i3GEO.janela.tempoMsg($trad("tema",i3GEOF.mascara.dicionario));
204   - return;
205   - }
206   - i3GEOF.mascara.aguarde.visibility = "visible";
207   - p = i3GEO.configura.locaplic+"/ferramentas/mascara/exec.php?g_sid="+i3GEO.configura.sid
208   - + "&funcao=aplicar"
209   - + "&tema=" + tema
210   - + "&mascarar=" + mascarar.join(",");
211   - cp = new cpaint();
212   - fim = function(retorno){
213   - i3GEO.Interface.atualizaMapa();
214   - i3GEOF.mascara.aguarde.visibility = "hidden";
215   - };
216   - cp.set_response_type("JSON");
217   - cp.call(p,"foo",fim);
  105 + aplicar : function(btn){
  106 + var p = this._parameters,
  107 + i3f = this,
  108 + tema = $i("i3GEOFmascaraSelTema").value,
  109 + mascarar = i3GEOF.mascara.listaTemas(), p, fim;
  110 +
  111 + if(tema === ""){
  112 + i3GEO.janela.tempoMsg($trad("tema",i3GEOF.mascara.dicionario));
  113 + return;
  114 + }
  115 + i3f.get({
  116 + snackbar: true,
  117 + fn: function(retorno){
  118 + i3GEO.Interface.atualizaMapa();
  119 + },
  120 + btn: true,
  121 + par: {
  122 + funcao: "aplicar",
  123 + tema: tema,
  124 + mascarar: mascarar.join(",")
  125 + },
  126 + refresh: false
  127 + });
218 128 },
219 129 mascaraAtual: function(tema){
220   - if(tema === ""){
221   - return;
222   - }
223   - //pega as camadas com mascara
224   - var p = i3GEO.configura.locaplic+"/ferramentas/mascara/exec.php?g_sid="+i3GEO.configura.sid+"&funcao=listaTemas&tema="+tema,
225   - cp = new cpaint(),
226   - fim;
227   - fim = function(retorno){
228   - //refaz a lista de camadas
229   - i3GEOF.mascara.listaDeCamadas(retorno.data);
230   - };
231   - cp.set_response_type("JSON");
232   - cp.call(p,"foo",fim);
  130 + var p = this._parameters,
  131 + i3f = this;
  132 + if(tema === ""){
  133 + return;
  134 + }
  135 +
  136 + i3f.get({
  137 + snackbar: false,
  138 + fn: function(retorno){
  139 + i3GEOF.mascara.listaDeCamadas(retorno.data);
  140 + },
  141 + btn: false,
  142 + par: {
  143 + funcao: "listaTemas",
  144 + tema: tema
  145 + },
  146 + refresh: false
  147 + });
  148 + },
  149 + get: function({snackbar = true, btn = false, par = {}, refresh = false, fn = false} = {}){
  150 + var p = this._parameters,
  151 + i3f = this;
  152 + i3GEO.janela.abreAguarde();
  153 + if(btn){
  154 + btn = $(btn);
  155 + btn.prop("disabled",true).find("span .glyphicon").removeClass("hidden");
  156 + }
  157 + i3GEO.janela._formModal.block();
  158 + par.g_sid = i3GEO.configura.sid;
  159 + $.get(
  160 + i3GEO.configura.locaplic+"/ferramentas/" + p.namespace + "/exec.php",
  161 + par
  162 + )
  163 + .done(
  164 + function(data, status){
  165 + i3GEO.janela._formModal.unblock();
  166 + i3GEO.janela.fechaAguarde();
  167 + if(btn){
  168 + btn.prop("disabled",false).find("span .glyphicon").addClass("hidden");
  169 + }
  170 + if(snackbar){
  171 + i3GEO.janela.snackBar({content: $trad('feito')});
  172 + }
  173 + if(refresh){
  174 + i3GEO.atualiza(); }
  175 + if(fn){
  176 + fn(data);
  177 + }
  178 + }
  179 + )
  180 + .fail(
  181 + function(data){
  182 + i3GEO.janela._formModal.unblock();
  183 + i3GEO.janela.fechaAguarde();
  184 + if(btn){
  185 + btn.prop("disabled",false).find("span .glyphicon").addClass("hidden");
  186 + }
  187 + i3GEO.janela.snackBar({content: data.statusText, style:'red'});
  188 + }
  189 + );
233 190 }
234 191 };
... ...
ferramentas/mascara/template_mst.html
1   -<div class='container-fluid'>
2   - <div style="width: 100%;" class='form-group label-fixed condensed'>
3   - <label class="control-label" for="">{{{fonte}}}</label>
4   - <div id='i3GEOmascaraTema' style="width: 100%;" class="input-group"></div>
5   - </div>
6   - <div style="width: 100%;" class='form-group label-fixed condensed'>
7   - <label class="control-label" for="">{{{listaTemas}}}</label>
8   - <div id='i3GEOFmascaraLista' style="width: 100%;" class="input-group"></div>
9   - </div>
10   - <button onclick="i3GEOF.mascara.aplicar()" class='btn btn-primary btn-sm btn-raised'>{{{criaMascara}}}</button>
11   -
  1 +<div id='{{idContainer}}' class='container-fluid container-tools'>
  2 + <div class='form-group condensed'>
  3 + <label class="control-label">{{{fonte}}}</label>
  4 + <div id='i3GEOmascaraTema'></div>
  5 + </div>
  6 + <div class='form-group condensed'>
  7 + <label class="control-label">{{{listaTemas}}}</label>
  8 + <div id='i3GEOFmascaraLista' class="input-group"></div>
  9 + </div>
  10 + <button onclick="i3GEOF.mascara.aplicar(this)" class='btn btn-primary btn-sm btn-raised'>
  11 + <span class="glyphicon glyphicon-repeat normal-right-spinner hidden"></span>{{{criaMascara}}}
  12 + </button>
12 13 </div>
... ...
ferramentas/wkt2layer/exec.php
1 1 <?php
2   -include_once(dirname(__FILE__)."/../safe.php");
3   -verificaBlFerramentas(basename(dirname(__FILE__)),$i3geoBlFerramentas,false);
4   -//
5   -//faz a busca da fun&ccedil;&atilde;o que deve ser executada
6   -//
7   -$retorno = ""; //string que ser&aacute; retornada ao browser via JSON
8   -switch (strtoupper($funcao))
9   -{
10   -/*
11   -Valor: WKT
  2 +$_GET = $_POST;
  3 +include (dirname(__FILE__) . "/../safe2.php");
  4 +verificaBlFerramentas(basename(dirname(__FILE__)), $_SESSION["i3geoBlFerramentas"], false);
12 5  
13   -Insere elementos no mapa como um layer do tipo feature baseado em wkt
14   -
15   -*/
  6 +switch (strtoupper($_GET["funcao"])) {
16 7 case "FEATURE":
17   - include_once("../../classesphp/classe_temas.php");
18   - copiaSeguranca($map_file);
19   - $m = new Temas($map_file,"");
20   - if(!isset($_GET["marca"])){
  8 + include("../../classesphp/classe_temas.php");
  9 + $m = new Temas($_SESSION["map_file"],"");
  10 + if(!isset($_GET["marca"])){
21 11 $_GET["marca"]="";
22 12 }
23 13 $wkt = explode("|",$_GET["xy"]);
... ... @@ -35,20 +25,19 @@ Insere elementos no mapa como um layer do tipo feature baseado em wkt
35 25 $m->insereFeature($_GET["marca"],$_GET["tipo"],$w,$_GET["texto"],$_GET["position"],$_GET["partials"],$_GET["offsetx"],$_GET["offsety"],$_GET["minfeaturesize"],$_GET["mindistance"],$_GET["force"],$_GET["shadowcolor"],$_GET["shadowsizex"],$_GET["shadowsizey"],$_GET["outlinecolor"],$_GET["cor"],$_GET["sombray"],$_GET["sombrax"],$_GET["sombra"],$_GET["fundo"],$_GET["angulo"],$_GET["tamanho"],$_GET["fonte"],$_GET["wrap"],true,$_GET["nometema"]);
36 26 }
37 27 $m->salva();
38   - redesenhaMapa();
39 28 break;
40 29 case "SHAPEFILE":
41   - include_once("../../classesphp/classe_analise.php");
42   - $m = new Analise($map_file,"");
43   - $wkt = explode("|",$_GET["xy"]);
44   - $nomeLayer = $m->aplicaFuncaoListaWKT($wkt,"converteSHP",$dir_tmp,$imgdir);
45   -
  30 + include("../../classesphp/classe_analise.php");
  31 + $m = new Analise($_SESSION["map_file"],"");
  32 + $wkt = explode("|",$_GET["xy"]);
  33 + $nomeLayer = $m->aplicaFuncaoListaWKT($wkt,"converteSHP",$_SESSION["dir_tmp"],$_SESSION["imgdir"]);
46 34 $l = $m->mapa->getlayerbyname($nomeLayer);
47 35 $l->setmetadata("tema",$_GET["nometema"]);
48 36 //verifica projecao
49 37 $shp = ms_shapeObjFromWkt($wkt[0]);
50 38 $c = $shp->getCentroid();
51 39 $c = $c->x;
  40 +
52 41 if($c > -181 && $c < 181){
53 42 $l->setprojection(pegaProjecaoDefault("proj4"));
54 43 }
... ... @@ -56,12 +45,8 @@ Insere elementos no mapa como um layer do tipo feature baseado em wkt
56 45 $l->setprojection($m->mapa->getProjection());
57 46 }
58 47 $m->salva();
59   - redesenhaMapa();
60 48 break;
61   -
62   -}
63   -if(isset($map_file) && isset($postgis_mapa) && $map_file != ""){
64   - restauraCon($map_file,$postgis_mapa);
65 49 }
66   -cpjson($retorno);
67   -?>
68 50 \ No newline at end of file
  51 +ob_clean();
  52 +header("Content-type: application/json");
  53 +echo json_encode(true);
69 54 \ No newline at end of file
... ...
ferramentas/wkt2layer/index.js
1 1 if (typeof (i3GEOF) === 'undefined') {
2   - var i3GEOF = {};
  2 + var i3GEOF = {};
3 3 }
4   -/*
5   - * Classe: i3GEOF.wkt2layer
6   - */
7   -i3GEOF.wkt2layer =
8   -{
9   - position: [150,150],
10   - /*
11   - Variavel: aguarde
12   -
13   - Estilo do objeto DOM com a imagem de aguarde existente no cabe&ccedil;alho da janela.
14   - */
15   - aguarde: "",
16   - /*
17   - Variavel: parDefault
18   -
19   - parametros padr&atilde;o utilizados para formatar texto
20   - */
21   - parDefault: "position=MS_UR&partials=1&offsetx=0&offsety=0&minfeaturesize=auto&mindistance=auto&force=0&shadowsizex=1&shadowsizey=1&cor=0 0 0&sombray=1&sombrax=1&angulo=0&tamanho=12&fonte=arial&fundo=off&sombra=off&outlinecolor=255,255,255&shadowcolor=off&wrap=",
22   - /**
23   - * Template no formato mustache. E preenchido na carga do javascript com o programa dependencias.php
24   - */
25   - MUSTACHE : "",
26   - /**
27   - * Susbtitutos para o template
28   - */
29   - mustacheHash : function(wkt,texto) {
30   - var dicionario = i3GEO.idioma.objetoIdioma(i3GEOF.wkt2layer.dicionario);
31   - dicionario["locaplic"] = i3GEO.configura.locaplic;
32   - dicionario["wkt"] = wkt;
33   - dicionario["valortexto"] = texto;
34   - return dicionario;
  4 +i3GEOF.wkt2layer = {
  5 + renderFunction: i3GEO.janela.formModal,
  6 + _parameters: {
  7 + "mustache": "",
  8 + "idContainer": "i3GEOwkt2layerContainer",
  9 + "namespace": "wkt2layer",
  10 + "parDefault": {
  11 + position: "MS_UR",
  12 + partials: 1,
  13 + offsetx: 0,
  14 + offsety: 0,
  15 + minfeaturesize: "auto",
  16 + mindistance: "auto",
  17 + force: 0,
  18 + shadowsizex: 1,
  19 + shadowsizey: 1,
  20 + cor: "0 0 0",
  21 + sombray: 1,
  22 + sombrax: 1,
  23 + angulo: 0,
  24 + tamanho: 12,
  25 + fonte: "arial",
  26 + fundo: "off",
  27 + sombra: "off",
  28 + outlinecolor: "255,255,255",
  29 + shadowcolor: "off",
  30 + wrap: ""
  31 + }
  32 + },
  33 + start : function(wkt,texto){
  34 + var p = this._parameters,
  35 + i3f = this,
  36 + t1 = i3GEO.configura.locaplic + "/ferramentas/"+p.namespace+"/template_mst.html";
  37 + if(p.mustache === ""){
  38 + i3GEO.janela.abreAguarde();
  39 + $.get(t1).done(function(r1) {
  40 + p.mustache = r1;
  41 + i3f.html(wkt,texto);
  42 + i3GEO.janela.fechaAguarde();
  43 + }).fail(function() {
  44 + i3GEO.janela.snackBar({content: $trad("erroTpl"),style: "red"});
  45 + return;
  46 + });
  47 + } else {
  48 + i3f.html(wkt,texto);
  49 + }
  50 + },
  51 + destroy: function(){
  52 + },
  53 + html:function(wkt,texto) {
  54 + var p = this._parameters,
  55 + i3f = this,
  56 + hash = {};
  57 + if(wkt == undefined){
  58 + wkt = $trad("wkt",i3GEOF.wkt2layer.dicionario);
  59 + }
  60 + hash = {
  61 + locaplic: i3GEO.configura.locaplic,
  62 + namespace: p.namespace,
  63 + idContainer: p.idContainer,
  64 + wkt: wkt,
  65 + valortexto: texto,
  66 + ...i3GEO.idioma.objetoIdioma(i3f.dicionario)
  67 + };
  68 + i3f.renderFunction.call(
  69 + this,
  70 + {
  71 + texto: Mustache.render(p.mustache, hash)
  72 + }
  73 + );
  74 + $i("i3GEOFwkt2layerWkt").value = wkt;
  75 + },
  76 + feature: function() {
  77 + var wkt = $i("i3GEOFwkt2layerWkt").value;
  78 + wkt = $.trim(wkt.replace(/[\t\n]+/g,' '));
  79 + if(wkt.length < 5){
  80 + i3GEO.janela.tempoMsg($trad("mensagem",i3GEOF.wkt2layer.dicionario));
  81 + }
  82 + else{
  83 + i3GEOF.wkt2layer.insere();
  84 + }
  85 + },
  86 + layer: function() {
  87 + var wkt = $i("i3GEOFwkt2layerWkt").value;
  88 + wkt = $.trim(wkt.replace(/[\t\n]+/g,' '));
  89 + if(wkt.length < 5){
  90 + i3GEO.janela.tempoMsg($trad("mensagem",i3GEOF.wkt2layer.dicionario));
  91 + }
  92 + else{
  93 + i3GEOF.wkt2layer.shapefile();
  94 + }
  95 + },
  96 + pegaPar: function(){
  97 + var par = i3GEOF.wkt2layer._parameters.parDefault,
  98 + nometema,
  99 + temp;
  100 + if($i("i3GEOFwkt2layerTitulo").value !== ""){
  101 + nometema = $i("i3GEOFwkt2layerTitulo").value;
  102 + }
  103 + else{
  104 + temp = Math.random() + "_wkt2layer";
  105 + temp = temp.split(".");
  106 + nometema = temp[1];
  107 + }
  108 + par.nometema = nometema;
  109 + if($i("i3GEOFwkt2layerTexto").value !== ""){
  110 + texto = $i("i3GEOFwkt2layerTexto").value;
  111 + }
  112 + else{
  113 + texto = "";
  114 + }
  115 + par.texto = texto;
  116 + return par;
  117 + },
  118 + insere: function(){
  119 + var p = this._parameters,
  120 + i3f = this,
  121 + wkt = $i("i3GEOFwkt2layerWkt").value,
  122 + par = i3GEOF.wkt2layer.pegaPar();
  123 + wkt = $.trim(wkt.replace(/[\t]+/g,' '));
  124 + wkt = wkt.split("\n").join("|");
  125 + par.funcao = "feature";
  126 + par.xy = wkt;
  127 + i3f.post({
  128 + snackbar: false,
  129 + fn: function(retorno){
  130 + i3GEO.atualiza();
  131 + i3GEO.janela.tempoMsg($trad('fim',i3GEOF.wkt2layer.dicionario));
35 132 },
36   - /*
37   - * Function: inicia
38   - *
39   - * Inicia a ferramenta. &Eacute; chamado por criaJanelaFlutuante
40   - *
41   - * Parametro:
42   - *
43   - * iddiv {String} - id do div que receber&aacute; o conteudo HTML da ferramenta
44   - */
45   - inicia : function(iddiv,wkt,texto) {
46   - if(i3GEOF.wkt2layer.MUSTACHE == ""){
47   - $.get(i3GEO.configura.locaplic + "/ferramentas/wkt2layer/template_mst.html", function(template) {
48   - i3GEOF.wkt2layer.MUSTACHE = template;
49   - i3GEOF.wkt2layer.inicia(iddiv,wkt,texto);
50   - });
51   - return;
52   - }
53   - if(wkt == undefined){
54   - wkt = $trad("wkt",i3GEOF.wkt2layer.dicionario);
55   - }
56   - $i(iddiv).innerHTML = i3GEOF.wkt2layer.html(wkt,texto);
57   - $i("i3GEOFwkt2layerWkt").value = wkt;
58   - },
59   - feature: function() {
60   - var wkt = $i("i3GEOFwkt2layerWkt").value;
61   - wkt = $.trim(wkt.replace(/[\t\n]+/g,' '));
62   - if(wkt.length < 5){
63   - i3GEO.janela.tempoMsg($trad("mensagem",i3GEOF.wkt2layer.dicionario));
64   - }
65   - else{
66   - i3GEOF.wkt2layer.insere();
67   - }
68   - },
69   - layer: function() {
70   - var wkt = $i("i3GEOFwkt2layerWkt").value;
71   - wkt = $.trim(wkt.replace(/[\t\n]+/g,' '));
72   - if(wkt.length < 5){
73   - i3GEO.janela.tempoMsg($trad("mensagem",i3GEOF.wkt2layer.dicionario));
74   - }
75   - else{
76   - i3GEOF.wkt2layer.shapefile();
77   - }
  133 + btn: btn,
  134 + par: par,
  135 + refresh: false
  136 + });
  137 + },
  138 + shapefile: function(btn){
  139 + var p = this._parameters,
  140 + i3f = this,
  141 + wkt = $i("i3GEOFwkt2layerWkt").value,
  142 + par = i3GEOF.wkt2layer.pegaPar();
  143 + wkt = $.trim(wkt.replace(/[\t]+/g,' '));
  144 + wkt = wkt.split("\n").join("|");
  145 + par.funcao = "shapefile";
  146 + par.xy = wkt;
  147 + i3f.post({
  148 + snackbar: false,
  149 + fn: function(retorno){
  150 + i3GEO.atualiza();
  151 + i3GEO.janela.tempoMsg($trad('fim',i3GEOF.wkt2layer.dicionario));
78 152 },
79   - /*
80   - * Function: html
81   - *
82   - * Gera o c&oacute;digo html para apresenta&ccedil;&atilde;o das op&ccedil;&otilde;es da ferramenta
83   - *
84   - * Retorno:
85   - *
86   - * String com o c&oacute;digo html
87   - */
88   - html : function(wkt,texto) {
89   - var ins = Mustache.render(i3GEOF.wkt2layer.MUSTACHE, i3GEOF.wkt2layer.mustacheHash(wkt,texto));
90   - return ins;
91   - },
92   - /*
93   - * Function: criaJanelaFlutuante
94   - *
95   - * Cria a janela flutuante para controle da ferramenta.
96   - */
97   - iniciaJanelaFlutuante : function(wkt,texto) {
98   - var cabecalho, janela, divid, titulo;
99   - if ($i("i3GEOF.wkt2layer")) {
100   - return;
101   - }
102   - cabecalho = function() {
103   - };
104   - // cria a janela flutuante
105   - titulo = "<span class='i3GeoTituloJanelaBsNolink' >" + $trad("wkt2layer",i3GEOF.wkt2layer.dicionario) + "</span></div>";
106   - janela =
107   - i3GEO.janela.cria(
108   - "280px",
109   - "210px",
110   - "",
111   - "",
112   - "",
113   - titulo,
114   - "i3GEOF.wkt2layer",
115   - false,
116   - "hd",
117   - cabecalho,
118   - "",
119   - "",
120   - true,
121   - "",
122   - "",
123   - "",
124   - ""
125   - );
126   - divid = janela[2].id;
127   - janela[0].moveTo(i3GEOF.wkt2layer.position[0],i3GEOF.wkt2layer.position[1]);
128   - $i("i3GEOF.wkt2layer_corpo").style.backgroundColor = "white";
129   - i3GEOF.wkt2layer.aguarde = $i("i3GEOF.wkt2layer_imagemCabecalho").style;
130   - i3GEOF.wkt2layer.inicia(divid,wkt,texto);
131   - },
132   - pegaPar: function(){
133   - var par,nometema,temp;
134   - try{
135   - par = i3GEOF.proplabel.pegaPar();
136   - i3GEOF.wkt2layer.parDefault = par;
137   - }
138   - catch(e){
139   - par = i3GEOF.wkt2layer.parDefault;
  153 + btn: btn,
  154 + par: par,
  155 + refresh: false
  156 + });
  157 + },
  158 + post: function({snackbar = true, btn = false, par = {}, refresh = false, fn = false} = {}){
  159 + var p = this._parameters,
  160 + i3f = this;
  161 + i3GEO.janela.abreAguarde();
  162 + if(btn){
  163 + btn = $(btn);
  164 + btn.prop("disabled",true).find("span .glyphicon").removeClass("hidden");
  165 + }
  166 + i3GEO.janela._formModal.block();
  167 + par.g_sid = i3GEO.configura.sid;
  168 + $.post(
  169 + i3GEO.configura.locaplic+"/ferramentas/" + p.namespace + "/exec.php",
  170 + par
  171 + )
  172 + .done(
  173 + function(data, status){
  174 + i3GEO.janela._formModal.unblock();
  175 + i3GEO.janela.fechaAguarde();
  176 + if(btn){
  177 + btn.prop("disabled",false).find("span .glyphicon").addClass("hidden");
140 178 }
141   - if($i("i3GEOFwkt2layerTitulo").value !== ""){
142   - nometema = $i("i3GEOFwkt2layerTitulo").value;
  179 + if(snackbar){
  180 + i3GEO.janela.snackBar({content: $trad('feito')});
143 181 }
144   - else{
145   - temp = Math.random() + "_wkt2raster";
146   - temp = temp.split(".");
147   - nometema = temp[1];
  182 + if(refresh){
  183 + i3GEO.atualiza(); }
  184 + if(fn){
  185 + fn(data);
148 186 }
149   - if($i("i3GEOFwkt2layerTexto").value !== ""){
150   - texto = $i("i3GEOFwkt2layerTexto").value;
  187 + }
  188 + )
  189 + .fail(
  190 + function(data){
  191 + i3GEO.janela._formModal.unblock();
  192 + i3GEO.janela.fechaAguarde();
  193 + if(btn){
  194 + btn.prop("disabled",false).find("span .glyphicon").addClass("hidden");
151 195 }
152   - else{
153   - texto = "";
154   - }
155   - par += "&nometema=" + nometema
156   - + "&texto=" + texto;
157   - return par;
158   - },
159   - /*
160   - Function: insere
161   -
162   - Insere no mapa
163   -
164   - */
165   - insere: function(){
166   - if(i3GEOF.wkt2layer.aguarde.visibility === "visible")
167   - {return;}
168   - i3GEOF.wkt2layer.aguarde.visibility = "visible";
169   - var wkt,monta,par,p,cp;
170   - monta = function(){
171   - i3GEOF.wkt2layer.aguarde.visibility = "hidden";
172   - i3GEO.atualiza();
173   - i3GEO.janela.tempoMsg($trad('fim',i3GEOF.wkt2layer.dicionario));
174   - };
175   - par = i3GEOF.wkt2layer.pegaPar();
176   - wkt = $i("i3GEOFwkt2layerWkt").value;
177   - wkt = wkt.split("\n").join("|");
178   - p = i3GEO.configura.locaplic+"/ferramentas/wkt2layer/exec.php?g_sid="+i3GEO.configura.sid+
179   - "&funcao=feature&"+par;
180   - cp = new cpaint();
181   - cp.set_transfer_mode('POST');
182   - cp.set_response_type("JSON");
183   - cp.call(p,"foo",monta,"xy="+wkt);
184   - },
185   - /*
186   - Function: shapefile
187   -
188   - Insere no mapa
189   -
190   - */
191   - shapefile: function(){
192   - if(i3GEOF.wkt2layer.aguarde.visibility === "visible")
193   - {return;}
194   - i3GEOF.wkt2layer.aguarde.visibility = "visible";
195   - var wkt,monta,par,p,cp;
196   - monta = function(){
197   - i3GEOF.wkt2layer.aguarde.visibility = "hidden";
198   - i3GEO.atualiza();
199   - i3GEO.janela.tempoMsg($trad('fim',i3GEOF.wkt2layer.dicionario));
200   - };
201   - par = i3GEOF.wkt2layer.pegaPar();
202   - wkt = $i("i3GEOFwkt2layerWkt").value;
203   - wkt = $.trim(wkt.replace(/[\t]+/g,' '));
204   - wkt = wkt.split("\n").join("|");
205   - p = i3GEO.configura.locaplic+"/ferramentas/wkt2layer/exec.php?g_sid="+i3GEO.configura.sid+
206   - "&funcao=shapefile&"+par;
207   - cp = new cpaint();
208   - cp.set_transfer_mode('POST');
209   - cp.set_response_type("JSON");
210   - cp.call(p,"foo",monta,"xy="+wkt);
211   - }
  196 + i3GEO.janela.snackBar({content: data.statusText, style:'red'});
  197 + }
  198 + );
  199 + }
212 200 };
213 201 //aplica ao codigo i3GEOF definicoes feitas na interface do mapa
214 202 //isso permite a substituicao de funcoes e parametros
215 203 if(i3GEO.configura.ferramentas.hasOwnProperty("wkt2layer")){
216   - jQuery.each( i3GEO.configura.ferramentas.wkt2layer, function(index, value) {
217   - i3GEOF.wkt2layer[index] = i3GEO.configura.ferramentas.wkt2layer[index];
218   - });
219   -}
  204 + jQuery.each( i3GEO.configura.ferramentas.wkt2layer, function(index, value) {
  205 + i3GEOF.wkt2layer._parameters[index] = i3GEO.configura.ferramentas.wkt2layer[index];
  206 + });
  207 +}
220 208 \ No newline at end of file
... ...
ferramentas/wkt2layer/template_mst.html
1   -<div class='container-fluid'>
2   - <div class='form-group label-fixed condensed'>
3   - <label class="control-label" for="">WKT</label>
4   - <textarea class="form-control input-lg" id='i3GEOFwkt2layerWkt' rows='3'>{{{wkt}}}</textarea>
5   - </div>
6   - <div class='form-group label-fixed condensed'>
7   - <label class="control-label" for="">{{{nometema}}}</label>
8   - <input class="form-control input-lg" type='text' id='i3GEOFwkt2layerTitulo' value='' />
9   - </div>
10   - <h5>{{{shapefile}}}</h5>
11   - <button onclick="i3GEOF.wkt2layer.layer()" class='btn btn-primary btn-sm btn-raised'>Shape File</button>
12   - <h5>{{{feature}}}</h5>
13   - <button onclick="i3GEOF.wkt2layer.feature()" class='btn btn-primary btn-sm btn-raised'>Feature</button>
14   - <h5>{{{texto}}}</h5>
15   - <div class='form-group label-fixed condensed' >
16   - <input class="form-control input-lg" type='text' id='i3GEOFwkt2layerTexto' value='{{{valortexto}}}' />
17   - </div>
  1 +<div id='{{idContainer}}' class='container-fluid container-tools'>
  2 +
  3 + <form class="form-horizontal">
  4 + <div class='form-group label-fixed condensed'>
  5 + <label class="col-md-6 control-label">WKT</label>
  6 + <div class="col-md-6">
  7 + <textarea class="form-control input-lg" id='i3GEOFwkt2layerWkt' rows='3'>{{{wkt}}}</textarea>
  8 + </div>
  9 + </div>
  10 + <div class='form-group label-fixed condensed'>
  11 + <label class="col-md-6 control-label">{{{nometema}}}</label>
  12 + <div class="col-md-6">
  13 + <input class="form-control input-lg" type='text' id='i3GEOFwkt2layerTitulo' value='' />
  14 + </div>
  15 + </div>
  16 + <div class='form-group label-fixed condensed'>
  17 + <label class="col-md-6 control-label">{{{texto}}}</label>
  18 + <div class="col-md-6">
  19 + <input class="form-control input-lg" type='text' id='i3GEOFwkt2layerTexto' value='{{{valortexto}}}' />
  20 + </div>
  21 + </div>
  22 + </form>
  23 + <br>
  24 + <button onclick="i3GEOF.wkt2layer.layer(this)" class='btn btn-primary btn-sm btn-raised'>
  25 + <span class="glyphicon glyphicon-repeat normal-right-spinner hidden"></span>Shape File
  26 + </button>
  27 + <h5 class='alert alert-info'>{{{shapefile}}}</h5>
  28 + <button onclick="i3GEOF.wkt2layer.feature(this)" class='btn btn-primary btn-sm btn-raised'>
  29 + <span class="glyphicon glyphicon-repeat normal-right-spinner hidden"></span>Feature
  30 + </button>
  31 + <h5 class='alert alert-info'>{{{feature}}}</h5>
18 32 </div>
... ...
js/mapa.js
... ... @@ -434,7 +434,7 @@ i3GEO.mapa =
434 434 "mascara",
435 435 "mascara",
436 436 "dependencias.php",
437   - "i3GEOF.mascara.iniciaJanelaFlutuante()");
  437 + "i3GEOF.mascara.start()");
438 438 },
439 439 /**
440 440 * Function: html2canvas
... ... @@ -464,7 +464,7 @@ i3GEO.mapa =
464 464 */
465 465 wkt2layer : function(wkt, texto) {
466 466 var temp = function() {
467   - i3GEOF.wkt2layer.iniciaJanelaFlutuante(wkt, texto);
  467 + i3GEOF.wkt2layer.start(wkt, texto);
468 468 };
469 469 i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.wkt2layer()", "wkt2layer", "wkt2layer", "dependencias.php", temp);
470 470 },
... ...