Commit 025cd941662d483514647f7de7546a56464d611c
1 parent
a3f950fe
Exists in
master
and in
7 other branches
Conclusão dos formulários de administração da árvore do catálogo de temas
Showing
14 changed files
with
1185 additions
and
22 deletions
Show diff stats
admin/admin.db
No preview for this file type
... | ... | @@ -0,0 +1,164 @@ |
1 | +<?php | |
2 | +/* | |
3 | + * Licenca: | |
4 | + * | |
5 | + * GPL2 | |
6 | + * | |
7 | + * i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet | |
8 | + * | |
9 | + * Direitos Autorais Reservados (c) 2006 Edmar Moretti | |
10 | + * Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com | |
11 | + * | |
12 | + * Este programa é software livre; você pode redistribuí-lo | |
13 | + * e/ou modificá-lo sob os termos da Licença Pública Geral | |
14 | + * GNU conforme publicada pela Free Software Foundation; | |
15 | + * | |
16 | + * Este programa é distribuído na expectativa de que seja útil, | |
17 | + * porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita | |
18 | + * de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. | |
19 | + * Consulte a Licença Pública Geral do GNU para mais detalhes. | |
20 | + * Você deve ter recebido uma copia da Licença Pública Geral do | |
21 | + * GNU junto com este programa; se não, escreva para a | |
22 | + * Free Software Foundation, Inc., no endereço | |
23 | + * 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | |
24 | + */ | |
25 | +error_reporting ( 0 ); | |
26 | +// | |
27 | +// pega as variaveis passadas com get ou post | |
28 | +// | |
29 | + | |
30 | +include_once (dirname ( __FILE__ ) . "/../../../admin/php/login.php"); | |
31 | +$funcoesEdicao = array ( | |
32 | + "ADICIONAR", | |
33 | + "ALTERAR", | |
34 | + "EXCLUIR", | |
35 | + "LISTA", | |
36 | + "LISTAUNICO" | |
37 | +); | |
38 | +if (in_array ( strtoupper ( $funcao ), $funcoesEdicao )) { | |
39 | + if (verificaOperacaoSessao ( "admin/html/sistemas" ) === false) { | |
40 | + header ( "HTTP/1.1 403 Vc nao pode realizar essa operacao" ); | |
41 | + exit (); | |
42 | + } | |
43 | +} | |
44 | +include (dirname ( __FILE__ ) . "/../../../admin/php/conexao.php"); | |
45 | + | |
46 | +$id = $_POST["id"]; | |
47 | +$id_sistema = $_POST["id_sistema"]; | |
48 | +$id_funcao = $_POST["id_funcao"]; | |
49 | + | |
50 | +testaSafeNumerico([$id,$id_sistema,$id_funcao]); | |
51 | + | |
52 | +$funcao = strtoupper ( $funcao ); | |
53 | +switch ($funcao) { | |
54 | + case "ADICIONAR" : | |
55 | + $novo = adicionar( $_POST["publicado_sistema"],$_POST["nome_sistema"],$_POST["perfil_sistema"], $dbhw ); | |
56 | + if ($novo === false) { | |
57 | + header ( "HTTP/1.1 500 erro ao consultar banco de dados" ); | |
58 | + exit (); | |
59 | + } | |
60 | + exit (); | |
61 | + break; | |
62 | + case "ALTERAR" : | |
63 | + $novo = alterar ( $id_sistema, $_POST["publicado_sistema"],$_POST["nome_sistema"],$_POST["perfil_sistema"], $dbhw ); | |
64 | + if ($novo === false) { | |
65 | + header ( "HTTP/1.1 500 erro ao consultar banco de dados" ); | |
66 | + exit (); | |
67 | + } | |
68 | + $dados = pegaDados ( "SELECT * from ".$esquemaadmin."i3geoadmin_sistemas WHERE id_sistema = $id_sistema ", $dbh, false ); | |
69 | + | |
70 | + if ($dados === false) { | |
71 | + header ( "HTTP/1.1 500 erro ao consultar banco de dados" ); | |
72 | + exit (); | |
73 | + } | |
74 | + $dbhw = null; | |
75 | + $dbh = null; | |
76 | + retornaJSON ( $dados ); | |
77 | + exit (); | |
78 | + break; | |
79 | + case "LISTAUNICO" : | |
80 | + $dados = pegaDados("SELECT * from ".$esquemaadmin."i3geoadmin_sistemas WHERE id_sistema = $id_sistema", $dbh, false); | |
81 | + if ($dados === false) { | |
82 | + $dbhw = null; | |
83 | + $dbh = null; | |
84 | + header ( "HTTP/1.1 500 erro ao consultar banco de dados tabela de sistemas" ); | |
85 | + exit (); | |
86 | + } | |
87 | + $dbhw = null; | |
88 | + $dbh = null; | |
89 | + retornaJSON ( array("dados"=>$dados[0]) ); | |
90 | + break; | |
91 | + case "LISTA" : | |
92 | + $dados = pegaDados("SELECT * from ".$esquemaadmin."i3geoadmin_sistemas ORDER BY lower(nome_sistema)", $dbh, false); | |
93 | + if ($dados === false) { | |
94 | + $dbhw = null; | |
95 | + $dbh = null; | |
96 | + header ( "HTTP/1.1 500 erro ao consultar banco de dados tabela de atlas" ); | |
97 | + exit (); | |
98 | + } | |
99 | + $perfis = pegaDados ( "SELECT id_perfil, perfil from ".$esquemaadmin."i3geoadmin_perfis order by perfil", $dbh, false ); | |
100 | + $dbhw = null; | |
101 | + $dbh = null; | |
102 | + retornaJSON ( array("dados"=>$dados, "perfis"=>$perfis) ); | |
103 | + break; | |
104 | + case "EXCLUIR" : | |
105 | + $funcoes = pegaDados("SELECT id_sistema from ".$esquemaadmin."i3geoadmin_sistemasf where id_sistema = '$id_sistema'"); | |
106 | + if(count($funcoes) > 0){ | |
107 | + header ( "HTTP/1.1 500 erro ao excluir. Exclua as funcoes do sistema primeiro" ); | |
108 | + exit (); | |
109 | + } | |
110 | + $retorna = excluir ( $id_sistema, $dbhw ); | |
111 | + $dbhw = null; | |
112 | + $dbh = null; | |
113 | + if ($retorna === false) { | |
114 | + header ( "HTTP/1.1 500 erro ao consultar banco de dados" ); | |
115 | + exit (); | |
116 | + } | |
117 | + retornaJSON ( $id_sistema ); | |
118 | + exit (); | |
119 | + break; | |
120 | +} | |
121 | +cpjson ( $retorno ); | |
122 | + | |
123 | +function adicionar( $publicado_sistema,$nome_sistema,$perfil_sistema, $dbhw) { | |
124 | + global $esquemaadmin; | |
125 | + try { | |
126 | + $dataCol = array( | |
127 | + "publicado_sistema" => '', | |
128 | + "nome_sistema" => '', | |
129 | + "perfil_sistema" => '' | |
130 | + ); | |
131 | + $id_sistema = i3GeoAdminInsertUnico($dbhw,"i3geoadmin_sistemas",$dataCol,"nome_sistema","id_sistema"); | |
132 | + $retorna = alterar ( $id_sistema,$publicado_sistema,$nome_sistema,$perfil_sistema, $dbhw ); | |
133 | + | |
134 | + return $retorna; | |
135 | + } catch ( PDOException $e ) { | |
136 | + return false; | |
137 | + } | |
138 | +} | |
139 | +// $papeis deve ser um array | |
140 | +function alterar($id_sistema,$publicado_sistema,$nome_sistema,$perfil_sistema, $dbhw) { | |
141 | + global $convUTF, $esquemaadmin; | |
142 | + if ($convUTF != true){ | |
143 | + $nome_sistema = utf8_encode($nome_sistema); | |
144 | + } | |
145 | + $dataCol = array( | |
146 | + "publicado_sistema" => $publicado_sistema, | |
147 | + "nome_sistema" => $nome_sistema, | |
148 | + "perfil_sistema" => $perfil_sistema | |
149 | + ); | |
150 | + $resultado = i3GeoAdminUpdate ( $dbhw, "i3geoadmin_sistemas", $dataCol, "WHERE id_sistema = $id_sistema" ); | |
151 | + if ($resultado === false) { | |
152 | + return false; | |
153 | + } | |
154 | + return $id_sistema; | |
155 | +} | |
156 | +function excluir($id_sistema, $dbhw) { | |
157 | + global $esquemaadmin; | |
158 | + $resultado = i3GeoAdminExclui ( $esquemaadmin . "i3geoadmin_sistemas", "id_sistema", $id_sistema, $dbhw, false ); | |
159 | + if ($resultado === false) { | |
160 | + return false; | |
161 | + } | |
162 | + return $resultado; | |
163 | +} | |
164 | +?> | ... | ... |
... | ... | @@ -0,0 +1,164 @@ |
1 | +<?php | |
2 | +/* | |
3 | + * Licenca: | |
4 | + * | |
5 | + * GPL2 | |
6 | + * | |
7 | + * i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet | |
8 | + * | |
9 | + * Direitos Autorais Reservados (c) 2006 Edmar Moretti | |
10 | + * Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com | |
11 | + * | |
12 | + * Este programa é software livre; você pode redistribuí-lo | |
13 | + * e/ou modificá-lo sob os termos da Licença Pública Geral | |
14 | + * GNU conforme publicada pela Free Software Foundation; | |
15 | + * | |
16 | + * Este programa é distribuído na expectativa de que seja útil, | |
17 | + * porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita | |
18 | + * de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. | |
19 | + * Consulte a Licença Pública Geral do GNU para mais detalhes. | |
20 | + * Você deve ter recebido uma copia da Licença Pública Geral do | |
21 | + * GNU junto com este programa; se não, escreva para a | |
22 | + * Free Software Foundation, Inc., no endereço | |
23 | + * 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | |
24 | + */ | |
25 | +error_reporting ( 0 ); | |
26 | +// | |
27 | +// pega as variaveis passadas com get ou post | |
28 | +// | |
29 | + | |
30 | +include_once (dirname ( __FILE__ ) . "/../../../../admin/php/login.php"); | |
31 | +$funcoesEdicao = array ( | |
32 | + "ADICIONAR", | |
33 | + "ALTERAR", | |
34 | + "EXCLUIR", | |
35 | + "LISTA", | |
36 | + "LISTAUNICO" | |
37 | +); | |
38 | +if (in_array ( strtoupper ( $funcao ), $funcoesEdicao )) { | |
39 | + if (verificaOperacaoSessao ( "admin/html/sistemas" ) === false) { | |
40 | + header ( "HTTP/1.1 403 Vc nao pode realizar essa operacao" ); | |
41 | + exit (); | |
42 | + } | |
43 | +} | |
44 | +include (dirname ( __FILE__ ) . "/../../../../admin/php/conexao.php"); | |
45 | + | |
46 | +$id = $_POST["id"]; | |
47 | +$id_sistema = $_POST["id_sistema"]; | |
48 | +$id_funcao = $_POST["id_funcao"]; | |
49 | + | |
50 | +testaSafeNumerico([$id,$id_sistema,$id_funcao]); | |
51 | + | |
52 | +$funcao = strtoupper ( $funcao ); | |
53 | +switch ($funcao) { | |
54 | + case "ADICIONAR" : | |
55 | + $novo = adicionar( $id_sistema, $_POST["nome_funcao"],$_POST["abrir_funcao"],$_POST["h_funcao"],$_POST["w_funcao"],$_POST["perfil_funcao"],$dbhw ); | |
56 | + if ($novo === false) { | |
57 | + header ( "HTTP/1.1 500 erro ao consultar banco de dados" ); | |
58 | + exit (); | |
59 | + } | |
60 | + exit (); | |
61 | + break; | |
62 | + case "ALTERAR" : | |
63 | + $novo = alterar ( $id_funcao, $_POST["nome_funcao"],$_POST["abrir_funcao"],$_POST["h_funcao"],$_POST["w_funcao"],$_POST["perfil_funcao"], $dbhw ); | |
64 | + if ($novo === false) { | |
65 | + header ( "HTTP/1.1 500 erro ao consultar banco de dados" ); | |
66 | + exit (); | |
67 | + } | |
68 | + $dados = pegaDados ( "SELECT * from ".$esquemaadmin."i3geoadmin_sistemasf WHERE id_funcao = $id_funcao", $dbh, false ); | |
69 | + | |
70 | + if ($dados === false) { | |
71 | + header ( "HTTP/1.1 500 erro ao consultar banco de dados" ); | |
72 | + exit (); | |
73 | + } | |
74 | + $dbhw = null; | |
75 | + $dbh = null; | |
76 | + retornaJSON ( $dados ); | |
77 | + exit (); | |
78 | + break; | |
79 | + case "LISTAUNICO" : | |
80 | + $dados = pegaDados("SELECT * from ".$esquemaadmin."i3geoadmin_sistemasf WHERE id_funcao = '$id_funcao'", $dbh, false); | |
81 | + if ($dados === false) { | |
82 | + $dbhw = null; | |
83 | + $dbh = null; | |
84 | + header ( "HTTP/1.1 500 erro ao consultar banco de dados tabela de pranchas" ); | |
85 | + exit (); | |
86 | + } | |
87 | + $dbhw = null; | |
88 | + $dbh = null; | |
89 | + retornaJSON ( array("dados"=>$dados[0]) ); | |
90 | + break; | |
91 | + case "LISTA" : | |
92 | + $dados = pegaDados("SELECT * from ".$esquemaadmin."i3geoadmin_sistemasf where id_sistema = $id_sistema", $dbh, false); | |
93 | + if ($dados === false) { | |
94 | + $dbhw = null; | |
95 | + $dbh = null; | |
96 | + header ( "HTTP/1.1 500 erro ao consultar banco de dados tabela de pranchas" ); | |
97 | + exit (); | |
98 | + } | |
99 | + $perfis = pegaDados ( "SELECT id_perfil, perfil from ".$esquemaadmin."i3geoadmin_perfis order by perfil", $dbh, false ); | |
100 | + $dbhw = null; | |
101 | + $dbh = null; | |
102 | + retornaJSON ( array("dados"=>$dados, "perfis"=>$perfis) ); | |
103 | + break; | |
104 | + case "EXCLUIR" : | |
105 | + $retorna = excluir ( $id_funcao, $dbhw ); | |
106 | + $dbhw = null; | |
107 | + $dbh = null; | |
108 | + if ($retorna === false) { | |
109 | + header ( "HTTP/1.1 500 erro ao consultar banco de dados" ); | |
110 | + exit (); | |
111 | + } | |
112 | + retornaJSON ( $id_funcao ); | |
113 | + exit (); | |
114 | + break; | |
115 | +} | |
116 | +cpjson ( $retorno ); | |
117 | + | |
118 | +function adicionar( $id_sistema,$nome_funcao,$abrir_funcao,$h_funcao,$w_funcao,$perfil_funcao, $dbhw) { | |
119 | + global $esquemaadmin; | |
120 | + try { | |
121 | + $dataCol = array( | |
122 | + "nome_funcao" => '', | |
123 | + "perfil_funcao" => '', | |
124 | + "w_funcao" => '', | |
125 | + "h_funcao" => '', | |
126 | + "abrir_funcao" => '', | |
127 | + "id_sistema" => $id_sistema | |
128 | + ); | |
129 | + $id_funcao = i3GeoAdminInsertUnico($dbhw,"i3geoadmin_sistemasf",$dataCol,"nome_funcao","id_funcao"); | |
130 | + $retorna = alterar ( $id_funcao,$nome_funcao,$abrir_funcao,$h_funcao,$w_funcao,$perfil_funcao, $dbhw ); | |
131 | + | |
132 | + return $retorna; | |
133 | + } catch ( PDOException $e ) { | |
134 | + return false; | |
135 | + } | |
136 | +} | |
137 | +// $papeis deve ser um array | |
138 | +function alterar($id_funcao,$nome_funcao,$abrir_funcao,$h_funcao,$w_funcao,$perfil_funcao, $dbhw) { | |
139 | + global $convUTF, $esquemaadmin; | |
140 | + if ($convUTF != true){ | |
141 | + $nome_funcao = utf8_encode($nome_funcao); | |
142 | + } | |
143 | + $dataCol = array( | |
144 | + "nome_funcao" => $nome_funcao, | |
145 | + "perfil_funcao" => $perfil_funcao, | |
146 | + "w_funcao" => $w_funcao, | |
147 | + "h_funcao" => $h_funcao, | |
148 | + "abrir_funcao" => $abrir_funcao | |
149 | + ); | |
150 | + $resultado = i3GeoAdminUpdate ( $dbhw, "i3geoadmin_sistemasf", $dataCol, "WHERE id_funcao = $id_funcao" ); | |
151 | + if ($resultado === false) { | |
152 | + return false; | |
153 | + } | |
154 | + return $id_funcao; | |
155 | +} | |
156 | +function excluir($id_funcao, $dbhw) { | |
157 | + global $esquemaadmin; | |
158 | + $resultado = i3GeoAdminExclui ( $esquemaadmin . "i3geoadmin_sistemasf", "id_funcao", $id_funcao, $dbhw, false ); | |
159 | + if ($resultado === false) { | |
160 | + return false; | |
161 | + } | |
162 | + return $resultado; | |
163 | +} | |
164 | +?> | ... | ... |
... | ... | @@ -0,0 +1,247 @@ |
1 | +/* | |
2 | +Licenca: | |
3 | + | |
4 | +GPL2 | |
5 | + | |
6 | +i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet | |
7 | + | |
8 | +Direitos Autorais Reservados (c) 2006 Ministério do Meio Ambiente Brasil | |
9 | +Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com | |
10 | + | |
11 | +Este programa é software livre; você pode redistribuí-lo | |
12 | +e/ou modificá-lo sob os termos da Licença Pública Geral | |
13 | +GNU conforme publicada pela Free Software Foundation; | |
14 | + | |
15 | +Este programa é distribuído na expectativa de que seja útil, | |
16 | +porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita | |
17 | +de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. | |
18 | +Consulte a Licença Pública Geral do GNU para mais detalhes. | |
19 | +Você deve ter recebido uma cópia da Licença Pública Geral do | |
20 | +GNU junto com este programa; se não, escreva para a | |
21 | +Free Software Foundation, Inc., no endereço | |
22 | +59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | |
23 | + | |
24 | + */ | |
25 | +i3GEOadmin.funcao = { | |
26 | + id_sistema: "", | |
27 | + //variavel global indicando o elemento que recebera a lista de menus | |
28 | + ondeLista: "", | |
29 | + //conteudo html do formulario de adicao de operacao | |
30 | + formAdiciona: "", | |
31 | + //parametros obtidos do formulario de edicao antes de abrir o modal de confirmacao | |
32 | + parametrosSalvar: "", | |
33 | + init: function(onde){ | |
34 | + i3GEOadmin.funcao.ondeLista = onde; | |
35 | + i3GEOadmin.funcao.lista(); | |
36 | + }, | |
37 | + /* | |
38 | +Function: lista | |
39 | + | |
40 | +Obtém a lista | |
41 | + */ | |
42 | + lista: function(){ | |
43 | + i3GEOadmin.core.iconeAguarde(i3GEOadmin.funcao.ondeLista); | |
44 | + $.post( | |
45 | + "exec.php?funcao=lista", | |
46 | + "id_sistema=" + i3GEOadmin.funcao.id_sistema | |
47 | + ) | |
48 | + .done( | |
49 | + function(data, status){ | |
50 | + //valor do filtro atual | |
51 | + var filtro = i3GEOadmin.core.valorFiltro(); | |
52 | + //objeto json com os dados viondos do banco | |
53 | + var json = jQuery.parseJSON(data); | |
54 | + //template do form de cada operacao | |
55 | + var templateLista = $("#templateLista").html(); | |
56 | + //lista todas as menus | |
57 | + var html = Mustache.to_html( | |
58 | + "{{#data}}" + templateLista + "{{/data}}", | |
59 | + $.extend( | |
60 | + {}, | |
61 | + i3GEOadmin.funcao.dicionario, | |
62 | + { | |
63 | + "data": json["dados"], | |
64 | + "onExcluir": "i3GEOadmin.funcao.excluirDialogo",//funcao | |
65 | + "onEditar": "i3GEOadmin.funcao.editarDialogo"//funcao | |
66 | + } | |
67 | + ) | |
68 | + ); | |
69 | + i3GEOadmin.funcao.ondeLista.html(html); | |
70 | + //filtro | |
71 | + html = Mustache.to_html( | |
72 | + "{{#data}}" + $("#templateFiltro").html() + "{{/data}}", | |
73 | + {"data":json["dados"]} | |
74 | + ); | |
75 | + $("#filtro").html("<option value='' >Todos</option>" + html); | |
76 | + $("#filtro").combobox(); | |
77 | + $(".ui-autocomplete-input").attr( "title", "Filtro" ); | |
78 | + | |
79 | + if(filtro != ""){ | |
80 | + i3GEOadmin.core.defineFiltro(filtro); | |
81 | + i3GEOadmin.core.filtra(i3GEOadmin.funcao.pegaFiltro()); | |
82 | + } | |
83 | + //monta um template para o modal de inclusao de novo usuario | |
84 | + if(i3GEOadmin.funcao.formAdiciona == ""){ | |
85 | + html = Mustache.to_html( | |
86 | + $("#templateFormLista").html(), | |
87 | + $.extend( | |
88 | + {}, | |
89 | + i3GEOadmin.funcao.dicionario, | |
90 | + { | |
91 | + "id_funcao": "modal", | |
92 | + "escondido": "hidden", | |
93 | + "funcaos": "", | |
94 | + "excluir": i3GEOadmin.funcao.dicionario.cancelar, | |
95 | + "onExcluir": "i3GEOadmin.core.fechaModalGeral",//funcao | |
96 | + "onSalvar": "i3GEOadmin.funcao.adiciona",//funcao | |
97 | + "editarTema": "" | |
98 | + } | |
99 | + ) | |
100 | + ); | |
101 | + i3GEOadmin.funcao.formAdiciona = html; | |
102 | + } | |
103 | + $.material.init(); | |
104 | + } | |
105 | + ) | |
106 | + .fail(function(data){ | |
107 | + i3GEOadmin.funcao.ondeLista.html(""); | |
108 | + i3GEOadmin.core.mostraErro(data.status + " " +data.statusText); | |
109 | + }); | |
110 | + }, | |
111 | + editarDialogo: function(id){ | |
112 | + i3GEOadmin.core.fechaModalGeral(); | |
113 | + i3GEOadmin.core.modalAguarde(true); | |
114 | + $.post( | |
115 | + "exec.php?funcao=listaunico", | |
116 | + "id_funcao=" + id | |
117 | + ) | |
118 | + .done( | |
119 | + function(data, status){ | |
120 | + var json = jQuery.parseJSON(data); | |
121 | + var templateLista = $("#templateFormLista").html(); | |
122 | + //lista todas as menus | |
123 | + var html = Mustache.to_html( | |
124 | + "{{#data}}" + templateLista + "{{/data}}", | |
125 | + $.extend( | |
126 | + {}, | |
127 | + i3GEOadmin.funcao.dicionario, | |
128 | + { | |
129 | + "data": json["dados"], | |
130 | + "onExcluir": "i3GEOadmin.funcao.excluirDialogo",//funcao | |
131 | + "onSalvar": "i3GEOadmin.funcao.salvarDialogo"//funcao | |
132 | + } | |
133 | + ) | |
134 | + ); | |
135 | + i3GEOadmin.core.abreModalGeral(html); | |
136 | + } | |
137 | + ) | |
138 | + .fail( | |
139 | + function(data){ | |
140 | + i3GEOadmin.core.modalAguarde(false); | |
141 | + i3GEOadmin.core.mostraErro(data.status + " " +data.statusText); | |
142 | + } | |
143 | + ); | |
144 | + }, | |
145 | + adicionaDialogo: function(){ | |
146 | + i3GEOadmin.core.abreModalGeral(i3GEOadmin.funcao.formAdiciona); | |
147 | + }, | |
148 | +// os parametros sao obtidos do formulario aberto do modal | |
149 | + adiciona: function(){ | |
150 | + var parametros = $("#modalGeral form").serialize(); | |
151 | + i3GEOadmin.core.fechaModalGeral(); | |
152 | + i3GEOadmin.core.modalAguarde(true); | |
153 | + $.post( | |
154 | + "exec.php?funcao=adicionar", | |
155 | + parametros + "&id_sistema=" + i3GEOadmin.funcao.id_sistema | |
156 | + ) | |
157 | + .done( | |
158 | + function(data, status){ | |
159 | + i3GEOadmin.core.modalAguarde(false); | |
160 | + i3GEOadmin.core.iconeAguarde(i3GEOadmin.funcao.ondeLista); | |
161 | + i3GEOadmin.funcao.lista(); | |
162 | + } | |
163 | + ) | |
164 | + .fail( | |
165 | + function(data){ | |
166 | + i3GEOadmin.core.modalAguarde(false); | |
167 | + i3GEOadmin.core.mostraErro(data.status + " " +data.statusText); | |
168 | + } | |
169 | + ); | |
170 | + }, | |
171 | + excluirDialogo: function(id){ | |
172 | + var hash = { | |
173 | + "mensagem": i3GEOadmin.funcao.dicionario.confirma, | |
174 | + "onBotao1": "i3GEOadmin.funcao.excluir('"+id+"')", | |
175 | + "botao1": i3GEOadmin.funcao.dicionario.sim, | |
176 | + "onBotao2": "i3GEOadmin.core.fechaModalConfirma();", | |
177 | + "botao2": i3GEOadmin.funcao.dicionario.nao | |
178 | + }; | |
179 | + i3GEOadmin.core.abreModalConfirma(hash); | |
180 | + }, | |
181 | + excluir: function(id){ | |
182 | + i3GEOadmin.core.modalAguarde(true); | |
183 | + $.post( | |
184 | + "exec.php?funcao=excluir", | |
185 | + "id_funcao=" + id + "&id_sistema=" + i3GEOadmin.funcao.id_sistema | |
186 | + ) | |
187 | + .done( | |
188 | + function(data, status){ | |
189 | + i3GEOadmin.core.modalAguarde(false); | |
190 | + var json = jQuery.parseJSON(data)*1; | |
191 | + $("#form-" + json).remove(); | |
192 | + } | |
193 | + ) | |
194 | + .fail( | |
195 | + function(data){ | |
196 | + i3GEOadmin.core.modalAguarde(false); | |
197 | + i3GEOadmin.core.mostraErro(data.status + " " +data.statusText); | |
198 | + } | |
199 | + ); | |
200 | + }, | |
201 | + salvarDialogo: function(id){ | |
202 | + i3GEOadmin.funcao.parametrosSalvar = $("#form-edicao-" + id).serialize(); | |
203 | + var hash = { | |
204 | + "mensagem": i3GEOadmin.funcao.dicionario.confirma, | |
205 | + "onBotao1": "i3GEOadmin.funcao.salvar('"+id+"')", | |
206 | + "botao1": i3GEOadmin.funcao.dicionario.sim, | |
207 | + "onBotao2": "i3GEOadmin.funcao.parametrosSalvar = '';i3GEOadmin.core.fechaModalConfirma();", | |
208 | + "botao2": i3GEOadmin.funcao.dicionario.nao | |
209 | + }; | |
210 | + i3GEOadmin.core.abreModalConfirma(hash); | |
211 | + }, | |
212 | + salvar: function(id){ | |
213 | + var parametros = i3GEOadmin.funcao.parametrosSalvar; | |
214 | + i3GEOadmin.core.fechaModalGeral(); | |
215 | + i3GEOadmin.core.modalAguarde(true); | |
216 | + $.post( | |
217 | + "exec.php?funcao=alterar", | |
218 | + "id_funcao="+ id + "&"+parametros + "&id_sistema=" + i3GEOadmin.funcao.id_sistema | |
219 | + ) | |
220 | + .done( | |
221 | + function(data, status){ | |
222 | + i3GEOadmin.core.modalAguarde(false); | |
223 | + i3GEOadmin.funcao.parametrosSalvar = ''; | |
224 | + i3GEOadmin.core.iconeAguarde(i3GEOadmin.funcao.ondeLista); | |
225 | + i3GEOadmin.funcao.lista(); | |
226 | + } | |
227 | + ) | |
228 | + .fail( | |
229 | + function(data){ | |
230 | + i3GEOadmin.core.modalAguarde(false); | |
231 | + i3GEOadmin.funcao.parametrosSalvar = ''; | |
232 | + i3GEOadmin.core.mostraErro(data.status + " " +data.statusText); | |
233 | + } | |
234 | + ); | |
235 | + }, | |
236 | + editarTemas: function(id_sistema, id_funcao,titulo_funcao){ | |
237 | + //muda a url para que o usuario possa voltar pelo botao do navegador | |
238 | + var u = window.location.origin + window.location.pathname + "?id_sistema=" + id_sistema + "&id_filtro=" + id_funcao; | |
239 | + window.history.replaceState(null,null,u); | |
240 | + //abre a pagina de edicao | |
241 | + window.location.href = "temas/index.php?id_funcao=" + id_funcao + "&titulo_funcao=" + titulo_funcao + "&id_sistema=" + id_sistema; | |
242 | + }, | |
243 | + addInput: function(id,valor){ | |
244 | + var i = $("#"+id); | |
245 | + $(i.val(i.val() + ' ' + valor)); | |
246 | + } | |
247 | +}; | |
0 | 248 | \ No newline at end of file | ... | ... |
... | ... | @@ -0,0 +1,169 @@ |
1 | +<?php | |
2 | +define ( ONDEI3GEO, "../../../.." ); | |
3 | +include (dirname ( __FILE__ ) . "/../../../../ms_configura.php"); | |
4 | +error_reporting ( 0 ); | |
5 | +include "../../../head.php"; | |
6 | +$id_sistema = filter_var($_GET["id_sistema"], FILTER_SANITIZE_NUMBER_INT); | |
7 | +$nome_sistema = filter_var($_GET["nome_sistema"], FILTER_SANITIZE_STRING); | |
8 | +?> | |
9 | +<div class="container-fluid migalha"> | |
10 | + <div class="row"> | |
11 | + <div class="btn-group btn-breadcrumb"> | |
12 | + <a class="btn btn-default" href="../../../../init/index.php"><div>i3Geo</div></a> | |
13 | + <a class="btn btn-default" href="../../../index.php"><div>Admin</div></a> | |
14 | + <a class="btn btn-default" style="pointer-events: none"><div>Catálogo</div></a> | |
15 | + <a class="btn btn-default" href="../index.php"><div>Sistemas</div></a> | |
16 | + <a class="btn btn-default" style="pointer-events: none"><div>Funções</div></a> | |
17 | + </div> | |
18 | + </div> | |
19 | +</div> | |
20 | +<div class="container"> | |
21 | + <div class="row center-block"> | |
22 | + <div class="col-md-12" id="titulo"> | |
23 | + <div class="well hidden" > | |
24 | + <button data-toggle="modal" data-target="#ajudaPrincipal" | |
25 | + class="btn btn-primary btn-fab btn-fab-mini pull-right"> | |
26 | + <i class="material-icons">help</i> | |
27 | + </button> | |
28 | + <h2><small>{{{txtTituloFuncao}}}</small></h2> | |
29 | + <h3><small>{{{sistema}}}: <?php echo $nome_sistema; ?></small></h3> | |
30 | + <blockquote>{{{txtDescFuncao}}}</blockquote> | |
31 | + <!-- aqui entra o filtro --> | |
32 | + <div class="form-group"> | |
33 | + | |
34 | + <select title="{{{filtro}}}" onchange="i3GEOadmin.core.filtra(this)" id="filtro" class="form-control input-lg"> | |
35 | + </select> | |
36 | + </div> | |
37 | + <div class="clearfix"></div> | |
38 | + <div id="ajudaPrincipal" class="modal fade" tabindex="-1"> | |
39 | + <div class="modal-dialog"> | |
40 | + <div class="modal-content"> | |
41 | + <div class="modal-body"> | |
42 | + <p>{{{txtAjuda}}}</p> | |
43 | + </div> | |
44 | + </div> | |
45 | + </div> | |
46 | + </div> | |
47 | + </div> | |
48 | + <div class="well hidden"> | |
49 | + <div class="row pull-right"> | |
50 | + <a onclick="i3GEOadmin.funcao.adicionaDialogo();" href="javascript:void(0)" class="btn btn-primary" style="color:#008579;" role="button" >{{{adicionar}}}</a> | |
51 | + </div> | |
52 | + <div class="clearfix"></div> | |
53 | + <div id="corpo"> | |
54 | + </div> | |
55 | + </div> | |
56 | + </div> | |
57 | + </div> | |
58 | +</div> | |
59 | +<script id="templateFiltro" type="x-tmpl-mustache"> | |
60 | +<option value="form-{{id_funcao}}">{{{nome_funcao}}}</option> | |
61 | +</script> | |
62 | +<script id="templateFormLista" type="x-tmpl-mustache"> | |
63 | +<form id="form-edicao-{{id_funcao}}" style="" action="#" onsubmit="{{onSalvar}}('{{id_funcao}}');return false;" onchange="this.style.boxShadow='2px 2px 5px 0 #009688';" class="form-horizontal" role="form" method="post" > | |
64 | + <div class="row"> | |
65 | + <div class="col-md-12"> | |
66 | + <div class="form-group form-group-lg"> | |
67 | + <label class="col-md-4 control-label" for="nome_funcao" >{{{funcao}}}</label> | |
68 | + <div class="col-md-8"> | |
69 | + <input title="{{{titulo}}}" type="text" value="{{{nome_funcao}}}" class="form-control" name="nome_funcao" required> | |
70 | + </div> | |
71 | + </div> | |
72 | + <div class="form-group form-group-lg"> | |
73 | + <label class="col-md-4 control-label" for="abrir_funcao" >{{{programa}}}</label> | |
74 | + <div class="col-md-8"> | |
75 | + <input title="{{{programa}}}" type="text" value="{{{abrir_funcao}}}" class="form-control" name="abrir_funcao" > | |
76 | + </div> | |
77 | + </div> | |
78 | + <div class="form-group form-group-lg"> | |
79 | + <label class="col-md-4 control-label" for="w_funcao" >{{{largura}}}</label> | |
80 | + <div class="col-md-8"> | |
81 | + <input title="{{{largura}}}" type="text" value="{{{w_funcao}}}" class="form-control" name="w_funcao" > | |
82 | + </div> | |
83 | + </div> | |
84 | + <div class="form-group form-group-lg"> | |
85 | + <label class="col-md-4 control-label" for="h_funcao" >{{{altura}}}</label> | |
86 | + <div class="col-md-8"> | |
87 | + <input title="{{{altura}}}" type="text" value="{{{h_funcao}}}" class="form-control" name="h_funcao" > | |
88 | + </div> | |
89 | + </div> | |
90 | + <div class="form-group form-group-lg"> | |
91 | + <label class="col-md-3 control-label" for="perfil_funcao">{{{perfilAjuda}}}</label> | |
92 | + <div class="col-md-5"> | |
93 | + <input title="{{{perfilAjuda}}}" id="perfil-{{id_funcao}}" type="text" value="{{{perfil_funcao}}}" class="form-control" | |
94 | + name="perfil_funcao"> | |
95 | + </div> | |
96 | + <div class="col-md-4"> | |
97 | + <select title="{{{perfilAjuda}}}" class="form-control" | |
98 | + onchange="i3GEOadmin.funcao.addPerfil('perfil-{{id_funcao}}',this.value)"> {{{opcoesPerfil}}} | |
99 | + </select> | |
100 | + </div> | |
101 | + </div> | |
102 | + </div> | |
103 | + </div> | |
104 | + <div class="pull-right"> | |
105 | + <button type="submit" class="btn btn-primary" role="button" style="color:#008579;">{{salvar}}</button> | |
106 | + </div> | |
107 | + <div class="clearfix"></div> | |
108 | +</form> | |
109 | +</script> | |
110 | +<script id="templateLista" type="x-tmpl-mustache"> | |
111 | +<div class="list-group-item" id="form-{{id_funcao}}"> | |
112 | + <div class="row-content"> | |
113 | + <h3 class="list-group-item-heading {{escondido}}"> | |
114 | + <span class="pull-right"> </span> | |
115 | + <a href="javascript:void(0)" onclick="{{onEditar}}('{{id_funcao}}')" class="btn btn-danger btn-fab btn-fab-mini pull-right" role="button"> | |
116 | + <i class="material-icons md-18">edit</i> | |
117 | + </a> | |
118 | + <span class="pull-right"> </span> | |
119 | + <a href="javascript:void(0)" onclick="{{onExcluir}}('{{id_funcao}}')" class="btn btn-danger btn-fab btn-fab-mini pull-right" role="button"> | |
120 | + <i class="material-icons md-18">delete_forever</i> | |
121 | + </a> | |
122 | + {{{nome_funcao}}} | |
123 | + </h3> | |
124 | + </div> | |
125 | + <div class="list-group-separator"></div> | |
126 | +</div> | |
127 | +</script> | |
128 | +<script type="text/javascript" src="index.js"></script> | |
129 | +<script type="text/javascript" src="../../../dicionario/sistemas.js"></script> | |
130 | +<script> | |
131 | + $(document).ready(function(){ | |
132 | + //vem de admin1/index.js | |
133 | + iniciaMenuPrincipal(); | |
134 | + $('ul.dropdown-menu [data-toggle=dropdown]').on('click', function(event) { | |
135 | + event.preventDefault(); | |
136 | + event.stopPropagation(); | |
137 | + $(this).parent().siblings().removeClass('open'); | |
138 | + $(this).parent().toggleClass('open'); | |
139 | + }); | |
140 | + //traducao | |
141 | + var t = $("#titulo"); | |
142 | + //complementa dicionario | |
143 | + i3GEOadmin.funcao.dicionario = $.extend( | |
144 | + {}, | |
145 | + i3GEOadmin.sistemas.dicionario, | |
146 | + i3GEOadmin.core.dicionario | |
147 | + ); | |
148 | + | |
149 | + i3GEOadmin.core.dicionario = null; | |
150 | + | |
151 | + i3GEOadmin.funcao.dicionario = i3GEO.idioma.objetoIdioma(i3GEOadmin.funcao.dicionario); | |
152 | + | |
153 | + t.html( | |
154 | + Mustache.to_html( | |
155 | + t.html(), | |
156 | + i3GEOadmin.funcao.dicionario | |
157 | + ) | |
158 | + ); | |
159 | + $.material.init(); | |
160 | + i3GEOadmin.funcao.id_sistema = <?php echo $id_sistema; ?>; | |
161 | + var inicia = function() { | |
162 | + $(".hidden").removeClass('hidden'); | |
163 | + i3GEOadmin.funcao.init($("#corpo")); | |
164 | + }; | |
165 | + i3GEO.login.verificaOperacao("admin/html/sistemas",i3GEO.configura.locaplic, inicia, "sessao"); | |
166 | + }); | |
167 | +</script> | |
168 | +</body> | |
169 | +</html> | ... | ... |
... | ... | @@ -0,0 +1,283 @@ |
1 | +/* | |
2 | +Licenca: | |
3 | + | |
4 | +GPL2 | |
5 | + | |
6 | +i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet | |
7 | + | |
8 | +Direitos Autorais Reservados (c) 2006 Ministério do Meio Ambiente Brasil | |
9 | +Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com | |
10 | + | |
11 | +Este programa é software livre; você pode redistribuí-lo | |
12 | +e/ou modificá-lo sob os termos da Licença Pública Geral | |
13 | +GNU conforme publicada pela Free Software Foundation; | |
14 | + | |
15 | +Este programa é distribuído na expectativa de que seja útil, | |
16 | +porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita | |
17 | +de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. | |
18 | +Consulte a Licença Pública Geral do GNU para mais detalhes. | |
19 | +Você deve ter recebido uma cópia da Licença Pública Geral do | |
20 | +GNU junto com este programa; se não, escreva para a | |
21 | +Free Software Foundation, Inc., no endereço | |
22 | +59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | |
23 | + | |
24 | + */ | |
25 | +i3GEOadmin.sistemas = { | |
26 | + //variavel global indicando o elemento que recebera a lista de menus | |
27 | + ondeLista: "", | |
28 | + //conteudo html do formulario de adicao de operacao | |
29 | + formAdiciona: "", | |
30 | + //parametros obtidos do formulario de edicao antes de abrir o modal de confirmacao | |
31 | + parametrosSalvar: "", | |
32 | + init: function(onde){ | |
33 | + i3GEOadmin.sistemas.ondeLista = onde; | |
34 | + i3GEOadmin.sistemas.lista(); | |
35 | + }, | |
36 | + /* | |
37 | +Function: lista | |
38 | + | |
39 | +Obtém a lista | |
40 | + */ | |
41 | + lista: function(){ | |
42 | + i3GEOadmin.core.iconeAguarde(i3GEOadmin.sistemas.ondeLista); | |
43 | + $.post( | |
44 | + "exec.php?funcao=lista" | |
45 | + ) | |
46 | + .done( | |
47 | + function(data, status){ | |
48 | + //valor do filtro atual | |
49 | + var filtro = i3GEOadmin.core.valorFiltro(); | |
50 | + //objeto json com os dados viondos do banco | |
51 | + var json = jQuery.parseJSON(data); | |
52 | + //template do form de cada operacao | |
53 | + var templateLista = $("#templateLista").html(); | |
54 | + //combo com perfis | |
55 | + var opcoesPerfil = '<option value="">---</option>' + Mustache.to_html( | |
56 | + "{{#data}}" + $("#templateOpcoesPerfil").html() + "{{/data}}", | |
57 | + {"data":json["perfis"]} | |
58 | + ); | |
59 | + //lista todas as menus | |
60 | + var html = Mustache.to_html( | |
61 | + "{{#data}}" + templateLista + "{{/data}}", | |
62 | + $.extend( | |
63 | + {}, | |
64 | + i3GEOadmin.sistemas.dicionario, | |
65 | + { | |
66 | + "data": json["dados"], | |
67 | + "onExcluir": "i3GEOadmin.sistemas.excluirDialogo",//funcao | |
68 | + "onEditar": "i3GEOadmin.sistemas.editarDialogo" | |
69 | + } | |
70 | + ) | |
71 | + ); | |
72 | + i3GEOadmin.sistemas.ondeLista.html(html); | |
73 | + //filtro | |
74 | + html = Mustache.to_html( | |
75 | + "{{#data}}" + $("#templateFiltro").html() + "{{/data}}", | |
76 | + {"data":json["dados"]} | |
77 | + ); | |
78 | + $("#filtro").html("<option value='' >Todos</option>" + html); | |
79 | + $("#filtro").combobox(); | |
80 | + $(".ui-autocomplete-input").attr( "title", "Filtro" ); | |
81 | + | |
82 | + if(filtro != ""){ | |
83 | + i3GEOadmin.core.defineFiltro(filtro); | |
84 | + i3GEOadmin.core.filtra(i3GEOadmin.core.pegaFiltro()); | |
85 | + } | |
86 | + //monta um template para o modal de inclusao de novo usuario | |
87 | + if(i3GEOadmin.sistemas.formAdiciona == ""){ | |
88 | + html = Mustache.to_html( | |
89 | + $("#templateFormLista").html(), | |
90 | + $.extend( | |
91 | + {}, | |
92 | + i3GEOadmin.sistemas.dicionario, | |
93 | + { | |
94 | + "id_sistema": "modal", | |
95 | + "escondido": "hidden", | |
96 | + "funcoes": "", | |
97 | + "excluir": i3GEOadmin.sistemas.dicionario.cancelar, | |
98 | + "onExcluir": "i3GEOadmin.core.fechaModalGeral",//funcao | |
99 | + "onSalvar": "i3GEOadmin.sistemas.adiciona",//funcao | |
100 | + "opcoesPublicado": function(){ | |
101 | + var hash = {}; | |
102 | + hash["sim"] = i3GEOadmin.sistemas.dicionario.sim; | |
103 | + hash["nao"] = i3GEOadmin.sistemas.dicionario.nao; | |
104 | + return Mustache.to_html( | |
105 | + $("#templateOpcoesPublicado").html(), | |
106 | + hash | |
107 | + ); | |
108 | + }, | |
109 | + "opcoesPerfil": opcoesPerfil | |
110 | + } | |
111 | + ) | |
112 | + ); | |
113 | + i3GEOadmin.sistemas.formAdiciona = html; | |
114 | + } | |
115 | + $.material.init(); | |
116 | + } | |
117 | + ) | |
118 | + .fail(function(data){ | |
119 | + i3GEOadmin.sistemas.ondeLista.html(""); | |
120 | + i3GEOadmin.core.mostraErro(data.status + " " +data.statusText); | |
121 | + }); | |
122 | + }, | |
123 | + editarDialogo: function(id){ | |
124 | + i3GEOadmin.core.fechaModalGeral(); | |
125 | + i3GEOadmin.core.modalAguarde(true); | |
126 | + $.post( | |
127 | + "exec.php?funcao=listaunico", | |
128 | + "id_sistema=" + id | |
129 | + ) | |
130 | + .done( | |
131 | + function(data, status){ | |
132 | + var json = jQuery.parseJSON(data); | |
133 | + var templateLista = $("#templateFormLista").html(); | |
134 | + var html = Mustache.to_html( | |
135 | + "{{#data}}" + templateLista + "{{/data}}", | |
136 | + $.extend( | |
137 | + {}, | |
138 | + i3GEOadmin.sistemas.dicionario, | |
139 | + { | |
140 | + "data": json["dados"], | |
141 | + "onExcluir": "i3GEOadmin.sistemas.excluirDialogo",//funcao | |
142 | + "onSalvar": "i3GEOadmin.sistemas.salvarDialogo",//funcao | |
143 | + "opcoesPublicado": function(){ | |
144 | + var hash = {}; | |
145 | + hash["sim"] = i3GEOadmin.sistemas.dicionario.sim; | |
146 | + hash["nao"] = i3GEOadmin.sistemas.dicionario.nao; | |
147 | + if(this.publicado_sistemas == ""){ | |
148 | + this.publicado_sistemas = "SIM"; | |
149 | + } | |
150 | + hash[this.publicado_sistemas + "-sel"] = "selected"; | |
151 | + return Mustache.to_html( | |
152 | + $("#templateOpcoesPublicado").html(), | |
153 | + hash | |
154 | + ); | |
155 | + }, | |
156 | + "opcoesTipoGuia": function(){ | |
157 | + var hash = {}; | |
158 | + hash[this.tipoguias_sistemas + "-sel"] = "selected"; | |
159 | + return Mustache.to_html( | |
160 | + $("#templateOpcoesTipoGuia").html(), | |
161 | + hash | |
162 | + ); | |
163 | + } | |
164 | + } | |
165 | + ) | |
166 | + ); | |
167 | + i3GEOadmin.core.abreModalGeral(html); | |
168 | + } | |
169 | + ) | |
170 | + .fail( | |
171 | + function(data){ | |
172 | + i3GEOadmin.core.modalAguarde(false); | |
173 | + i3GEOadmin.core.mostraErro(data.status + " " +data.statusText); | |
174 | + } | |
175 | + ); | |
176 | + }, | |
177 | + adicionaDialogo: function(){ | |
178 | + i3GEOadmin.core.abreModalGeral(i3GEOadmin.sistemas.formAdiciona); | |
179 | + }, | |
180 | +// os parametros sao obtidos do formulario aberto do modal | |
181 | + adiciona: function(){ | |
182 | + var parametros = $("#modalGeral form").serialize(); | |
183 | + i3GEOadmin.core.fechaModalGeral(); | |
184 | + i3GEOadmin.core.modalAguarde(true); | |
185 | + $.post( | |
186 | + "exec.php?funcao=adicionar", | |
187 | + parametros | |
188 | + ) | |
189 | + .done( | |
190 | + function(data, status){ | |
191 | + i3GEOadmin.core.modalAguarde(false); | |
192 | + i3GEOadmin.core.iconeAguarde(i3GEOadmin.sistemas.ondeLista); | |
193 | + i3GEOadmin.sistemas.lista(); | |
194 | + } | |
195 | + ) | |
196 | + .fail( | |
197 | + function(data){ | |
198 | + i3GEOadmin.core.modalAguarde(false); | |
199 | + i3GEOadmin.core.mostraErro(data.status + " " +data.statusText); | |
200 | + } | |
201 | + ); | |
202 | + }, | |
203 | + excluirDialogo: function(id){ | |
204 | + var hash = { | |
205 | + "mensagem": i3GEOadmin.sistemas.dicionario.confirma, | |
206 | + "onBotao1": "i3GEOadmin.sistemas.excluir('"+id+"')", | |
207 | + "botao1": i3GEOadmin.sistemas.dicionario.sim, | |
208 | + "onBotao2": "i3GEOadmin.core.fechaModalConfirma();", | |
209 | + "botao2": i3GEOadmin.sistemas.dicionario.nao | |
210 | + }; | |
211 | + i3GEOadmin.core.abreModalConfirma(hash); | |
212 | + }, | |
213 | + excluir: function(id){ | |
214 | + i3GEOadmin.core.modalAguarde(true); | |
215 | + $.post( | |
216 | + "exec.php?funcao=excluir", | |
217 | + "id_sistema="+id | |
218 | + ) | |
219 | + .done( | |
220 | + function(data, status){ | |
221 | + i3GEOadmin.core.modalAguarde(false); | |
222 | + var json = jQuery.parseJSON(data)*1; | |
223 | + $("#form-" + json).remove(); | |
224 | + } | |
225 | + ) | |
226 | + .fail( | |
227 | + function(data){ | |
228 | + i3GEOadmin.core.modalAguarde(false); | |
229 | + i3GEOadmin.core.mostraErro(data.status + " " +data.statusText); | |
230 | + } | |
231 | + ); | |
232 | + }, | |
233 | + salvarDialogo: function(id){ | |
234 | + i3GEOadmin.sistemas.parametrosSalvar = $("#form-edicao-" + id).serialize(); | |
235 | + var hash = { | |
236 | + "mensagem": i3GEOadmin.sistemas.dicionario.confirma, | |
237 | + "onBotao1": "i3GEOadmin.sistemas.salvar('"+id+"')", | |
238 | + "botao1": i3GEOadmin.sistemas.dicionario.sim, | |
239 | + "onBotao2": "i3GEOadmin.sistemas.parametrosSalvar = '';i3GEOadmin.core.fechaModalConfirma();", | |
240 | + "botao2": i3GEOadmin.sistemas.dicionario.nao | |
241 | + }; | |
242 | + i3GEOadmin.core.abreModalConfirma(hash); | |
243 | + }, | |
244 | + salvar: function(id){ | |
245 | + var parametros = i3GEOadmin.sistemas.parametrosSalvar; | |
246 | + i3GEOadmin.core.fechaModalGeral(); | |
247 | + i3GEOadmin.core.modalAguarde(true); | |
248 | + $.post( | |
249 | + "exec.php?funcao=alterar", | |
250 | + "id_sistema="+ id+"&"+parametros | |
251 | + ) | |
252 | + .done( | |
253 | + function(data, status){ | |
254 | + i3GEOadmin.core.modalAguarde(false); | |
255 | + i3GEOadmin.sistemas.parametrosSalvar = ''; | |
256 | + i3GEOadmin.core.iconeAguarde(i3GEOadmin.sistemas.ondeLista); | |
257 | + i3GEOadmin.sistemas.lista(); | |
258 | + } | |
259 | + ) | |
260 | + .fail( | |
261 | + function(data){ | |
262 | + i3GEOadmin.core.modalAguarde(false); | |
263 | + i3GEOadmin.sistemas.parametrosSalvar = ''; | |
264 | + i3GEOadmin.core.mostraErro(data.status + " " +data.statusText); | |
265 | + } | |
266 | + ); | |
267 | + }, | |
268 | + addPerfil: function(id,valor){ | |
269 | + var i = $("#"+id); | |
270 | + $(i.val(i.val() + ' ' + valor)); | |
271 | + }, | |
272 | + editarFuncoes: function(id_sistema,nome_sistema){ | |
273 | + //muda a url para que o usuario possa voltar pelo botao do navegador | |
274 | + var u = window.location.origin + window.location.pathname + "?id_filtro=" + id_sistema; | |
275 | + window.history.replaceState(null,null,u); | |
276 | + //abre a pagina de edicao | |
277 | + window.location.href = "funcoes/index.php?id_sistema=" + id_sistema + "&nome_sistema=" + nome_sistema; | |
278 | + }, | |
279 | + addInput: function(id,valor){ | |
280 | + var i = $("#"+id); | |
281 | + $(i.val(i.val() + ' ' + valor)); | |
282 | + } | |
283 | +}; | |
0 | 284 | \ No newline at end of file | ... | ... |
admin1/cadastros/sistemas/index.php
... | ... | @@ -9,18 +9,112 @@ include "../../head.php"; |
9 | 9 | <div class="btn-group btn-breadcrumb"> |
10 | 10 | <a class="btn btn-default" href="../../../init/index.php"><div>i3Geo</div></a> |
11 | 11 | <a class="btn btn-default" href="../../index.php"><div>Admin</div></a> |
12 | - <a class="btn btn-default" style="pointer-events: none"><div>Cadastros</div></a> | |
12 | + <a class="btn btn-default" style="pointer-events: none"><div>Catálogo</div></a> | |
13 | 13 | <a class="btn btn-default" style="pointer-events: none"><div>Sistemas</div></a> |
14 | 14 | </div> |
15 | 15 | </div> |
16 | 16 | </div> |
17 | +<div class="container"> | |
18 | + <div class="row center-block"> | |
19 | + <div class="col-md-12" id="titulo"> | |
20 | + <div class="well hidden" > | |
21 | + <h2><small>{{{txtTitulo}}}</small></h2> | |
22 | + <blockquote>{{{txtDesc}}}</blockquote> | |
23 | + <!-- aqui entra o filtro --> | |
24 | + <div class="form-group"> | |
25 | + <select title="{{{filtro}}}" onchange="i3GEOadmin.core.filtra(this)" id="filtro" class="form-control input-lg"> | |
26 | + </select> | |
27 | + </div> | |
17 | 28 | |
18 | -<div class="container-fluid"> | |
29 | + <div class="clearfix"></div> | |
30 | + </div> | |
31 | + <div class="well hidden"> | |
32 | + <div class="row pull-right"> | |
33 | + <a onclick="i3GEOadmin.sistemas.adicionaDialogo();" href="javascript:void(0)" class="btn btn-primary" style="color:#008579;" role="button">{{{adicionar}}}</a> | |
34 | + </div> | |
35 | + <div class="clearfix"></div> | |
36 | + <div id="corpo"> | |
37 | + </div> | |
38 | + </div> | |
39 | + </div> | |
40 | + </div> | |
41 | +</div> | |
42 | +<script id="templateFiltro" type="x-tmpl-mustache"> | |
43 | +<option value="form-{{id_sistema}}">{{{nome_sistema}}}</option> | |
44 | +</script> | |
45 | +<script id="templateFormLista" type="x-tmpl-mustache"> | |
46 | +<form id="form-edicao-{{id_sistema}}" style="" action="#" onsubmit="{{onSalvar}}('{{id_sistema}}');return false;" onchange="this.style.boxShadow='2px 2px 5px 0 #009688';" class="form-horizontal" role="form" method="post" > | |
19 | 47 | <div class="row"> |
20 | - <iframe src="../../../admin/html/sistemas_.html" | |
21 | - style="width: 100%; height: 5000px; border: none; scrolling: no; frameborder: 0; marginheight: 0; marginwidth: 0;"></iframe> | |
48 | + <div class="col-md-12"> | |
49 | + <div class="form-group form-group-lg"> | |
50 | + <label class="col-md-4 control-label" for="nome_sistema" >{{{sistema}}}</label> | |
51 | + <div class="col-md-8"> | |
52 | + <input title="{{{nome_sistema}}}" type="text" value="{{{nome_sistema}}}" class="form-control" name="nome_sistema" required> | |
53 | + </div> | |
54 | + </div> | |
55 | + | |
56 | + <div class="form-group form-group-lg"> | |
57 | + <label class="col-md-4 control-label" for="publicado_sistema">{{{publicado}}}</label> | |
58 | + <div class="col-md-8"> | |
59 | + <select title="{{{publicado}}}" name="publicado_sistema" class="form-control"> | |
60 | + {{{opcoesPublicado}}} | |
61 | + </select> | |
62 | + </div> | |
63 | + </div> | |
64 | + <div class="form-group form-group-lg"> | |
65 | + <label class="col-md-3 control-label" for="perfil_sistema">{{{perfilAjuda}}}</label> | |
66 | + <div class="col-md-5"> | |
67 | + <input title="{{{perfilAjuda}}}" id="perfil-{{id_sistema}}" type="text" value="{{{perfil_sistema}}}" class="form-control" | |
68 | + name="perfil_sistema"> | |
69 | + </div> | |
70 | + <div class="col-md-4"> | |
71 | + <select title="{{{perfilAjuda}}}" class="form-control" | |
72 | + onchange="i3GEOadmin.sistemas.addPerfil('perfil-{{id_sistema}}',this.value)"> {{{opcoesPerfil}}} | |
73 | + </select> | |
74 | + </div> | |
75 | + </div> | |
76 | + </div> | |
22 | 77 | </div> |
78 | + <div class="pull-right"> | |
79 | + <button type="submit" class="btn btn-primary" role="button" style="color:#008579;">{{salvar}}</button> | |
80 | + </div> | |
81 | + <div class="clearfix"></div> | |
82 | +</form> | |
83 | +</script> | |
84 | +<script id="templateLista" type="x-tmpl-mustache"> | |
85 | +<div class="list-group-item" id="form-{{id_sistema}}"> | |
86 | + <div class="row-content"> | |
87 | + <h3 class="list-group-item-heading {{escondido}}"> | |
88 | + <div class="pull-right"> | |
89 | + <a role="button" class="btn btn-danger btn-fab btn-fab-mini pull-left" onclick="i3GEOadmin.sistemas.editarFuncoes('{{id_sistema}}','{{{nome_sistema}}}')" href="javascript:void(0)"> | |
90 | + <i class="material-icons md-18">folder_open</i> | |
91 | + </a> | |
92 | + <label class=pull-right><h6 style="margin-top: 5px; margin-bottom: 5px;"> {{{funcoes}}}</h6></label> | |
93 | + </div> | |
94 | + <span class="pull-right"> </span> | |
95 | + <a href="javascript:void(0)" onclick="{{onEditar}}('{{id_sistema}}')" class="btn btn-danger btn-fab btn-fab-mini pull-right" role="button"> | |
96 | + <i class="material-icons md-18">edit</i> | |
97 | + </a> | |
98 | + <span class="pull-right"> </span> | |
99 | + <a href="javascript:void(0)" onclick="{{onExcluir}}('{{id_sistema}}')" class="btn btn-danger btn-fab btn-fab-mini pull-right" role="button"> | |
100 | + <i class="material-icons md-18">delete_forever</i> | |
101 | + </a> | |
102 | + {{{nome_sistema}}} | |
103 | + </h3> | |
104 | + </div> | |
105 | + <div class="list-group-separator"></div> | |
23 | 106 | </div> |
107 | +</script> | |
108 | +<script id="templateOpcoesPerfil" type="x-tmpl-mustache"> | |
109 | + <option value="{{{perfil}}}">{{{perfil}}}</option> | |
110 | +</script> | |
111 | +<script id="templateOpcoesPublicado" type="x-tmpl-mustache"> | |
112 | + <option value="">---</option> | |
113 | + <option {{SIM-sel}} value="SIM">{{{sim}}}</option> | |
114 | + <option {{NAO-sel}} value="NAO">{{{nao}}}</option> | |
115 | +</script> | |
116 | +<script type="text/javascript" src="index.js"></script> | |
117 | +<script type="text/javascript" src="../../dicionario/sistemas.js"></script> | |
24 | 118 | <script> |
25 | 119 | $(document).ready(function(){ |
26 | 120 | //vem de admin1/index.js |
... | ... | @@ -31,7 +125,36 @@ include "../../head.php"; |
31 | 125 | $(this).parent().siblings().removeClass('open'); |
32 | 126 | $(this).parent().toggleClass('open'); |
33 | 127 | }); |
128 | + //traducao | |
129 | + var t = $("#titulo"); | |
130 | + //complementa dicionario | |
131 | + i3GEOadmin.sistemas.dicionario = $.extend( | |
132 | + {}, | |
133 | + i3GEOadmin.sistemas.dicionario, | |
134 | + i3GEOadmin.core.dicionario | |
135 | + ); | |
136 | + | |
137 | + i3GEOadmin.core.dicionario = null; | |
138 | + | |
139 | + i3GEOadmin.sistemas.dicionario = i3GEO.idioma.objetoIdioma(i3GEOadmin.sistemas.dicionario); | |
140 | + | |
141 | + t.html( | |
142 | + Mustache.to_html( | |
143 | + t.html(), | |
144 | + i3GEOadmin.sistemas.dicionario | |
145 | + ) | |
146 | + ); | |
34 | 147 | $.material.init(); |
148 | + var inicia = function() { | |
149 | + //verifica se foi enviado um parametro de filtro pela url | |
150 | + var f = "<?php echo filter_var($_GET["id_filtro"], FILTER_SANITIZE_NUMBER_INT); ?>"; | |
151 | + if(f != ""){ | |
152 | + i3GEOadmin.core.initFiltro = "form-" + f; | |
153 | + } | |
154 | + $(".hidden").removeClass('hidden'); | |
155 | + i3GEOadmin.sistemas.init($("#corpo")); | |
156 | + }; | |
157 | + i3GEO.login.verificaOperacao("admin/html/sistemas",i3GEO.configura.locaplic, inicia, "sessao"); | |
35 | 158 | }); |
36 | 159 | </script> |
37 | 160 | </body> | ... | ... |
admin1/catalogo/menus/grupos/index.php
... | ... | @@ -30,7 +30,7 @@ $nome_menu = filter_var ( $_GET ["nome_menu"], FILTER_SANITIZE_STRING ); |
30 | 30 | class="btn btn-primary btn-fab btn-fab-mini pull-right"> |
31 | 31 | <i class="material-icons">help</i> |
32 | 32 | </button> |
33 | - <h2><small>{{{menu}}}: <?php echo $nome_menu; ?></small></h2> | |
33 | + <h4><small>{{{menu}}}:</small> <?php echo $nome_menu; ?></h4> | |
34 | 34 | <blockquote>{{{txtDesc}}}</blockquote> |
35 | 35 | |
36 | 36 | <!-- aqui entra o filtro --> | ... | ... |
admin1/catalogo/menus/grupos/subgrupos/index.php
... | ... | @@ -33,7 +33,8 @@ $nome_menu = filter_var ( $_GET ["nome_menu"], FILTER_SANITIZE_STRING ); |
33 | 33 | class="btn btn-primary btn-fab btn-fab-mini pull-right"> |
34 | 34 | <i class="material-icons">help</i> |
35 | 35 | </button> |
36 | - <h2><small>{{{txtTitulo}}}: <?php echo "$nome_menu -> $nome_grupo"; ?></small></h2> | |
36 | + | |
37 | + <h4><small>{{{menu}}}: </small><?php echo "$nome_menu <small>{{{txtTitulo}}}:</small> $nome_grupo "; ?></h4> | |
37 | 38 | <blockquote>{{{txtDesc}}}</blockquote> |
38 | 39 | <!-- aqui entra o filtro --> |
39 | 40 | <div class="form-group"> | ... | ... |
admin1/catalogo/menus/grupos/subgrupos/temas/index.php
... | ... | @@ -24,8 +24,6 @@ $nome_subgrupo = filter_var ( $_GET ["nome_subgrupo"], FILTER_SANITIZE_STRING ); |
24 | 24 | </div> |
25 | 25 | </div> |
26 | 26 | </div> |
27 | - | |
28 | - | |
29 | 27 | <div class="container" id="titulo"> |
30 | 28 | <div class="row center-block"> |
31 | 29 | <div class="col-md-12"> |
... | ... | @@ -34,10 +32,7 @@ $nome_subgrupo = filter_var ( $_GET ["nome_subgrupo"], FILTER_SANITIZE_STRING ); |
34 | 32 | class="btn btn-primary btn-fab btn-fab-mini pull-right" style="left:10px"> |
35 | 33 | <i class="material-icons">play_circle_outline</i> |
36 | 34 | </button> |
37 | - | |
38 | - <h2> | |
39 | - <small>{{{txtTitulo}}}: <?php echo $nome_subgrupo; ?></small> | |
40 | - </h2> | |
35 | + <h4><small>{{{menu}}}: </small><?php echo "$nome_menu <small>{{{grupo}}}:</small> $nome_grupo <small>{{{txtTitulo}}}:</small> $nome_subgrupo"; ?></h4> | |
41 | 36 | <blockquote>{{{txtDesc}}}</blockquote> |
42 | 37 | <!-- aqui entra o filtro --> |
43 | 38 | <div class="form-group"> | ... | ... |
admin1/dicionario/arvore.js
... | ... | @@ -12,7 +12,7 @@ i3GEOadmin.arvore.dicionario = { |
12 | 12 | es : "" |
13 | 13 | } ], |
14 | 14 | 'txtAjuda' : [ { |
15 | - pt : "<p>Este formulário permite editar árvore de temas que seráutilizada pelo i3Geo.<p>A árvore é composta de menus, grupos, subgrupos e temas. Vcdeve criar os menus, a lista de grupos e a lista de sub-grupos. Aocriar um menu, esse é mostrado imediatamente na árvore.<p>Menus ou nós da árvore marcados como não publicados sãomostrados em vermelho e aparecem apenas para os administradores.<p>Em cada nó da árvore podem ser associados os temas, mesmo naraiz de um dos níveis. Os temas são arquivos mapfiles armazenadosem i3geo/temas e registrados no sistema de administração.<p>A criação de mapfiles e a vinculação tema-mapfile é feitapor meio do editor de mapfiles, e consiste na determinação de umnome para cada mapfile. Esse nome é listado ao ser adicionado umtema na árvore.", | |
15 | + pt : "<p>Este formulário permite editar árvore de temas que seráutilizada pelo i3Geo.<p>A árvore é composta de menus, grupos, subgrupos e temas. Vcdeve criar os menus, a lista de grupos e a lista de subgrupos. Aocriar um menu, esse é mostrado imediatamente na árvore.<p>Menus ou nós da árvore marcados como não publicados sãomostrados em vermelho e aparecem apenas para os administradores.<p>Em cada nó da árvore podem ser associados os temas, mesmo naraiz de um dos níveis. Os temas são arquivos mapfiles armazenadosem i3geo/temas e registrados no sistema de administração.<p>A criação de mapfiles e a vinculação tema-mapfile é feitapor meio do editor de mapfiles, e consiste na determinação de umnome para cada mapfile. Esse nome é listado ao ser adicionado umtema na árvore.", | |
16 | 16 | en : "", |
17 | 17 | es : "" |
18 | 18 | } ], | ... | ... |
admin1/dicionario/grupos.js
... | ... | @@ -42,7 +42,7 @@ i3GEOadmin.grupos.dicionario = { |
42 | 42 | es : "" |
43 | 43 | } ], |
44 | 44 | 'txtAjuda' : [ { |
45 | - pt : "A árvore é composta por níveis hierárquicos que iniciam com um menu, seguido de grupos e esses por subgrupos. Na raiz de cada nível podem existir temas, assim como no último nível (sub-grupos).", | |
45 | + pt : "A árvore é composta por níveis hierárquicos que iniciam com um menu, seguido de grupos e esses por subgrupos. Na raiz de cada nível podem existir temas, assim como no último nível (subgrupos).", | |
46 | 46 | en : "", |
47 | 47 | es : "" |
48 | 48 | } ], | ... | ... |
admin1/dicionario/menus.js
... | ... | @@ -11,7 +11,7 @@ i3GEOadmin.menus.dicionario = { |
11 | 11 | es : "" |
12 | 12 | } ], |
13 | 13 | 'txtAjuda' : [ { |
14 | - pt : "Este formulário permite editar a lista de menus que será utilizada pelo i3Geo.<p>A árvore é composta de menus, grupos, subgrupos e temas. Vc deve criar os menus, a lista de grupos e a lista de sub-grupos. Ao criar um menu, esse é mostrado imediatamente na árvore.<p>Menus ou nós da árvore marcados como não publicados são mostrados em vermelho e aparecem apenas para os administradores.<p>Em cada nó da árvore podem ser associados os temas, mesmo na raiz de um dos níveis. Os temas são arquivos mapfiles armazenados em i3geo/temas e registrados no sistema de administração.<p>A criação de mapfiles e a vinculação tema-mapfile é feita por meio do editor de mapfiles, e consiste na determinação de um nome para cada mapfile. Esse nome é listado ao ser adicionado um tema na árvore.</div>", | |
14 | + pt : "Este formulário permite editar a lista de menus que será utilizada pelo i3Geo.<p>A árvore é composta de menus, grupos, subgrupos e temas. Vc deve criar os menus, a lista de grupos e a lista de subgrupos. Ao criar um menu, esse é mostrado imediatamente na árvore.<p>Menus ou nós da árvore marcados como não publicados são mostrados em vermelho e aparecem apenas para os administradores.<p>Em cada nó da árvore podem ser associados os temas, mesmo na raiz de um dos níveis. Os temas são arquivos mapfiles armazenados em i3geo/temas e registrados no sistema de administração.<p>A criação de mapfiles e a vinculação tema-mapfile é feita por meio do editor de mapfiles, e consiste na determinação de um nome para cada mapfile. Esse nome é listado ao ser adicionado um tema na árvore.</div>", | |
15 | 15 | en : "", |
16 | 16 | es : "" |
17 | 17 | } ], | ... | ... |
admin1/dicionario/sistemas.js
1 | 1 | //+$trad(1,i3GEOadmin.principal.dicionario)+ |
2 | -i3GEOadmin.sistemas = {}; | |
2 | +if (typeof (i3GEOadmin.sistemas) === 'undefined') { | |
3 | + i3GEOadmin.sistemas = {}; | |
4 | +} | |
3 | 5 | i3GEOadmin.sistemas.dicionario = { |
4 | - 'sistemas' : [ { | |
5 | - pt : "Administração do i3geo - sistemas especiais", | |
6 | + 'txtDescFuncao' : [ { | |
7 | + pt : "As funções são programas que serão abertos em janelas flutuantes dentro do mapa", | |
8 | + en : "", | |
9 | + es : "" | |
10 | + } ], | |
11 | + 'txtTituloFuncao' : [ { | |
12 | + pt : "Funções do sistema", | |
13 | + en : "", | |
14 | + es : "" | |
15 | + } ], | |
16 | + 'txtTitulo' : [ { | |
17 | + pt : "Sistemas especiais que adicionam camadas", | |
6 | 18 | en : "", |
7 | 19 | es : "" |
8 | 20 | } ], |
... | ... | @@ -11,8 +23,8 @@ i3GEOadmin.sistemas.dicionario = { |
11 | 23 | en : "", |
12 | 24 | es : "" |
13 | 25 | } ], |
14 | - 'txtAjuda' : [ { | |
15 | - pt : "Este programa permite editar a lista de sistemas especiais.<br><br>Sistemas especiais são utilizados para incluir camadas no i3geo tendo como base programas que interagem com o usuário de alguma forma específica.<br> <br>Cada sistema pode ter um objetivo específico e uma interface própria. Normalmente são utilizados para realizar consultas a bancos de dados ou Web Services e gerar a camada para acrescentar ao mapa.<br> <br> Esses sistemas podem por exemplo, consultar bancos de dados estatísticos para gerar cartogramas.<br> <br> A lista de sistemas é baseada no banco admin.db.<br> <br> A lista de IPs dos usuários que podem administrar o i3geo é definida no arquivo i3geo/ms_configura.php", | |
26 | + 'txtDesc' : [ { | |
27 | + pt : "Sistemas especiais são utilizados para incluir camadas no i3geo tendo como base programas que interagem com o usuário de alguma forma específica. Cada sistema pode ter um objetivo específico e uma interface própria. Normalmente são utilizados para realizar consultas a bancos de dados ou Web Services e gerar a camada para acrescentar ao mapa. Esses sistemas podem por exemplo, consultar bancos de dados estatísticos para gerar cartogramas.", | |
16 | 28 | en : "", |
17 | 29 | es : "" |
18 | 30 | } ], |
... | ... | @@ -91,8 +103,13 @@ i3GEOadmin.sistemas.dicionario = { |
91 | 103 | en : "", |
92 | 104 | es : "" |
93 | 105 | } ], |
94 | - '' : [ { | |
95 | - pt : "", | |
106 | + 'funcoes' : [ { | |
107 | + pt : "funções", | |
108 | + en : "", | |
109 | + es : "" | |
110 | + } ], | |
111 | + 'perfilAjuda' : [ { | |
112 | + pt : "Perfis que podem visualizar esse sistema, separe por espaço e use a lista ao lado", | |
96 | 113 | en : "", |
97 | 114 | es : "" |
98 | 115 | } ] | ... | ... |