Commit cb25f94c4758873463ef2be1b2cba18fe51d96f3
1 parent
38910612
Exists in
master
and in
7 other branches
Adaptação do formulário de cadastro de usuários para uso do bootstrap
Showing
9 changed files
with
608 additions
and
114 deletions
Show diff stats
admin/admin.db
No preview for this file type
admin/html/usuarios_.html
... | ... | @@ -1,98 +0,0 @@ |
1 | -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> | |
2 | -<html> | |
3 | -<head> | |
4 | -<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"> | |
5 | -<title>Usuarios</title> | |
6 | -<style type="text/css"> | |
7 | -/*margin and padding on body element | |
8 | - can introduce errors in determining | |
9 | - element position and are not recommended; | |
10 | - we turn them off as a foundation for YUI | |
11 | - CSS treatments. */ | |
12 | -body { | |
13 | - margin: 0; | |
14 | - padding: 0; | |
15 | -} | |
16 | -</style> | |
17 | -<script type="text/javascript" src="../js/core_.js"></script> | |
18 | -<script type="text/javascript" src="../dicionario/core.js"></script> | |
19 | -<script type="text/javascript" src="../dicionario/usuarios.js"></script> | |
20 | -<script type="text/javascript" src="../js/usuarios.js"></script> | |
21 | -<link rel="stylesheet" type="text/css" href="admin.css"> | |
22 | -</head> | |
23 | -<body class=" yui-skin-sam fundoPonto" style="background-color: white; margin-top: 20px;"> | |
24 | - <center> | |
25 | - <div class="mascaraPrincipal" id="divGeral"> | |
26 | - <h1> | |
27 | - {{{usuarios}}}<img | |
28 | - src="../imagens/04.png" style="cursor: pointer" id=botaoAjuda /> | |
29 | - </h1> | |
30 | - {{{txtUsuarios}}} | |
31 | - <div id="formulario" style="display: none"> | |
32 | - <div id="ajuda"> | |
33 | - <div class="hd">{{{ajuda}}}</div> | |
34 | - <div class="bd" style="height: 144px; overflow: auto"> | |
35 | - {{{txtAjuda}}} | |
36 | - </div> | |
37 | - <div class="ft"></div> | |
38 | - </div> | |
39 | - <input onclick="adicionaLinha()" type=button id=adiciona | |
40 | - value="{{{adicionaUsuario}}}" /> <br> | |
41 | - <p>{{{usuariosCadastrados}}}</p> | |
42 | - <div id="tabela" style="left: -5px;"></div> | |
43 | - <div id=logajax style="display: block"></div> | |
44 | - </div> | |
45 | - </div> | |
46 | - </center> | |
47 | - <script> | |
48 | - /* | |
49 | - Title: Cadastro de usuarios | |
50 | - | |
51 | - Veja também: | |
52 | - | |
53 | - <core.js> | |
54 | - | |
55 | - <usuarios.js> | |
56 | - | |
57 | - Licenca: | |
58 | - | |
59 | - GPL2 | |
60 | - | |
61 | - i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet | |
62 | - | |
63 | - Direitos Autorais Reservados (c) 2006 Ministério do Meio Ambiente Brasil | |
64 | - Desenvolvedor: Edmar Moretti edmar.moretti@mma.gov.br | |
65 | - | |
66 | - Este programa é software livre; você pode redistribuí-lo | |
67 | - e/ou modificá-lo sob os termos da Licença Pública Geral | |
68 | - GNU conforme publicada pela Free Software Foundation; | |
69 | - | |
70 | - Este programa é distribuído na expectativa de que seja útil, | |
71 | - porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita | |
72 | - de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. | |
73 | - Consulte a Licença Pública Geral do GNU para mais detalhes. | |
74 | - Você deve ter recebido uma cópia da Licença Pública Geral do | |
75 | - GNU junto com este programa; se não, escreva para a | |
76 | - Free Software Foundation, Inc., no endereço | |
77 | - 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | |
78 | - | |
79 | - Arquivo: | |
80 | - | |
81 | - i3geo/admin/html/usuarios.html | |
82 | - */ | |
83 | - //necessario para a ferramenta login e outras | |
84 | - i3GEO.configura = { | |
85 | - locaplic : "../.." | |
86 | - }; | |
87 | - // | |
88 | - core_parseMustacheBody(i3GEOadmin.usuarios.dicionario); | |
89 | - cabecalhoUsuarios("cabecalhoPrincipal", "usuarios"); | |
90 | - temp = function() { | |
91 | - document.getElementById("formulario").style.display = "block"; | |
92 | - initMenu(); | |
93 | - top.window.scroll(0,0); | |
94 | - }; | |
95 | - i3GEO.login.verificaOperacao("admin/html/usuarios", | |
96 | - i3GEO.configura.locaplic, temp, "sessao",i3GEO.login.dialogo.abreLogin); | |
97 | - </script> | |
98 | -</body> |
admin/php/admin.php
... | ... | @@ -206,7 +206,7 @@ function pegaDados($sql,$dbh="",$close=true) |
206 | 206 | function i3GeoAdminUpdate($pdo,$tabela,$data,$filtro=""){ |
207 | 207 | global $esquemaadmin; |
208 | 208 | $keys = array_keys($data); |
209 | - $sset = array(); | |
209 | + $sset = array(); | |
210 | 210 | foreach($keys as $k){ |
211 | 211 | $sset[] = $k."=?"; |
212 | 212 | } |
... | ... | @@ -217,7 +217,7 @@ function i3GeoAdminUpdate($pdo,$tabela,$data,$filtro=""){ |
217 | 217 | } catch (PDOException $e) { |
218 | 218 | return "Error!: "; |
219 | 219 | } |
220 | - try { | |
220 | + try { | |
221 | 221 | $exec = $prep->execute(array_values($data)); |
222 | 222 | i3GeoAdminInsertLog($pdo,$sql,array_values($data)); |
223 | 223 | return true; | ... | ... |
admin1/dicionario/usuarios.js
... | ... | @@ -101,23 +101,23 @@ i3GEOadmin.usuarios.dicionario = { |
101 | 101 | en : "", |
102 | 102 | es : "" |
103 | 103 | } ], |
104 | - '' : [ { | |
105 | - pt : "", | |
104 | + 'papeisv' : [ { | |
105 | + pt : "Papéis vinculados", | |
106 | 106 | en : "", |
107 | 107 | es : "" |
108 | 108 | } ], |
109 | - '' : [ { | |
110 | - pt : "", | |
109 | + 'nome' : [ { | |
110 | + pt : "Nome", | |
111 | 111 | en : "", |
112 | 112 | es : "" |
113 | 113 | } ], |
114 | - '' : [ { | |
115 | - pt : "", | |
114 | + 'sim' : [ { | |
115 | + pt : "Sim", | |
116 | 116 | en : "", |
117 | 117 | es : "" |
118 | 118 | } ], |
119 | - '' : [ { | |
120 | - pt : "", | |
119 | + 'nao' : [ { | |
120 | + pt : "Não", | |
121 | 121 | en : "", |
122 | 122 | es : "" |
123 | 123 | } ], | ... | ... |
... | ... | @@ -0,0 +1,217 @@ |
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 | + "ADICIONARUSUARIO", | |
33 | + "ALTERARUSUARIO", | |
34 | + "ADICIONAPAPELUSUARIO", | |
35 | + "EXCLUIRUSUARIO" | |
36 | +); | |
37 | +if (in_array ( strtoupper ( $funcao ), $funcoesEdicao )) { | |
38 | + if (verificaOperacaoSessao ( "admin/html/usuarios" ) == false) { | |
39 | + header ( "HTTP/1.1 403 Vc nao pode realizar essa operacao" ); | |
40 | + exit (); | |
41 | + } | |
42 | +} | |
43 | +include (dirname ( __FILE__ ) . "/../../../admin/php/conexao.php"); | |
44 | +$funcao = strtoupper ( $funcao ); | |
45 | +// converte os parametros de definicao dos papeis em um array | |
46 | +if ($funcao == "ADICIONARUSUARIO" || $funcao == "ALTERARUSUARIO") { | |
47 | + $papeis = array (); | |
48 | + $papeis [] = 1; // admin | |
49 | + foreach ( array_keys ( $_POST ) as $k ) { | |
50 | + $teste = explode ( "-", $k ); | |
51 | + if ($teste [0] == "id_papel") { | |
52 | + $papeis [] = $teste [1] * 1; | |
53 | + } | |
54 | + } | |
55 | + array_unique ( $papeis ); | |
56 | +} | |
57 | +switch ($funcao) { | |
58 | + case "ADICIONARUSUARIO" : | |
59 | + $novo = adicionarUsuario( $ativo, $data_cadastro, $email, $login, $nome_usuario, $senha, $papeis, $dbhw ); | |
60 | + if ($novo != false) { | |
61 | + $sql = "SELECT * from " . $esquemaadmin . "i3geousr_usuarios WHERE id_usuario = " . $novo; | |
62 | + $dados = pegaDados ( $sql, $dbh ); | |
63 | + if ($dados == false) { | |
64 | + header ( "HTTP/1.1 500 erro ao consultar banco de dados" ); | |
65 | + exit (); | |
66 | + } | |
67 | + retornaJSON ( $dados ); | |
68 | + } else { | |
69 | + header ( "HTTP/1.1 500 erro ao consultar banco de dados" ); | |
70 | + exit (); | |
71 | + } | |
72 | + exit (); | |
73 | + break; | |
74 | + case "ALTERARUSUARIO" : | |
75 | + $novo = alterarUsuario ( $id_usuario, $ativo, $data_cadastro, $email, $login, $nome_usuario, $senha, $papeis, $dbhw ); | |
76 | + if ($novo == false) { | |
77 | + header ( "HTTP/1.1 500 erro ao consultar banco de dados" ); | |
78 | + exit (); | |
79 | + } | |
80 | + $sql = "SELECT * from " . $esquemaadmin . "i3geousr_usuarios WHERE id_usuario = " . $novo; | |
81 | + $dados = pegaDados ( $sql, $dbh ); | |
82 | + if ($dados == false) { | |
83 | + header ( "HTTP/1.1 500 erro ao consultar banco de dados" ); | |
84 | + exit (); | |
85 | + } | |
86 | + retornaJSON ( $dados ); | |
87 | + exit (); | |
88 | + break; | |
89 | + case "PEGAUSUARIOSEPAPEIS" : | |
90 | + $usuarios = pegaDados ( "SELECT id_usuario,ativo,data_cadastro,email,login,nome_usuario from " . $esquemaadmin . "i3geousr_usuarios order by nome_usuario", $dbh, false ); | |
91 | + $papeis = pegaDados ( "SELECT P.id_papel, P.nome, P.descricao, UP.id_usuario FROM " . $esquemaadmin . "i3geousr_usuarios AS U JOIN " . $esquemaadmin . "i3geousr_papelusuario AS UP ON U.id_usuario = UP.id_usuario JOIN " . $esquemaadmin . "i3geousr_papeis AS P ON UP.id_papel = P.id_papel ", dbh, false ); | |
92 | + if ($usuarios == false || $papeis == false) { | |
93 | + $dbhw = null; | |
94 | + $dbh = null; | |
95 | + header ( "HTTP/1.1 500 erro ao consultar banco de dados" ); | |
96 | + exit (); | |
97 | + } | |
98 | + $o = array (); | |
99 | + foreach ( $usuarios as $usuario ) { | |
100 | + // pega os papeis registrados para cada operacao | |
101 | + $p = array (); | |
102 | + foreach ( $papeis as $papel ) { | |
103 | + if ($papel ["id_usuario"] == $usuario ["id_usuario"]) { | |
104 | + $p [$papel ["id_papel"]] = $papel; | |
105 | + } | |
106 | + } | |
107 | + $usuarios ["papeis"] = $p; | |
108 | + $o [] = $usuario; | |
109 | + } | |
110 | + $papeis = pegaDados ( "SELECT * from " . $esquemaadmin . "i3geousr_papeis order by nome", $dbh ); | |
111 | + $dbhw = null; | |
112 | + $dbh = null; | |
113 | + if ($papeis == false) { | |
114 | + header ( "HTTP/1.1 500 erro ao consultar banco de dados" ); | |
115 | + exit (); | |
116 | + } | |
117 | + retornaJSON ( array ( | |
118 | + "usuarios" => $o, | |
119 | + "papeis" => $papeis | |
120 | + ) ); | |
121 | + break; | |
122 | + case "EXCLUIRUSUARIO" : | |
123 | + $retorna = excluirUsuario ( $id_usuario, $dbhw ); | |
124 | + $dbhw = null; | |
125 | + $dbh = null; | |
126 | + if ($retorna == false) { | |
127 | + header ( "HTTP/1.1 500 erro ao consultar banco de dados" ); | |
128 | + exit (); | |
129 | + } | |
130 | + retornaJSON ( $id_usuario ); | |
131 | + exit (); | |
132 | + break; | |
133 | +} | |
134 | +cpjson ( $retorno ); | |
135 | +// $papeis deve ser um array | |
136 | +function adicionarUsuario($ativo, $data_cadastro, $email, $login, $nome_usuario, $senha, $papeis, $dbhw) { | |
137 | + global $esquemaadmin; | |
138 | + try { | |
139 | + $dataCol = array( | |
140 | + "nome_usuario" => '', | |
141 | + "login" => '', | |
142 | + "email" => '', | |
143 | + "ativo" => 0, | |
144 | + "data_cadastro" => '', | |
145 | + "senha" => '' | |
146 | + ); | |
147 | + $id_usuario = i3GeoAdminInsertUnico ( $dbhw, "i3geousr_usuarios", $dataCol, "nome_usuario", "id_usuario" ); | |
148 | + $retorna = alterarUsuario ( $id_usuario, $ativo, $data_cadastro, $email, $login, $nome_usuario, $senha, $papeis, $dbhw ); | |
149 | + return $retorna; | |
150 | + } catch ( PDOException $e ) { | |
151 | + return false; | |
152 | + } | |
153 | +} | |
154 | +// $papeis deve ser um array | |
155 | +function alterarUsuario($id_usuario, $ativo, $data_cadastro, $email, $login, $nome_usuario, $senha, $papeis, $dbhw) { | |
156 | + global $esquemaadmin; | |
157 | + if ($convUTF) { | |
158 | + $nome_usuario = utf8_encode ( $nome_usuario ); | |
159 | + } | |
160 | + $dataCol = array ( | |
161 | + "nome_usuario" => $nome_usuario, | |
162 | + "login" => $login, | |
163 | + "email" => $email, | |
164 | + "ativo" => $ativo, | |
165 | + "data_cadastro" => $data_cadastro | |
166 | + ); | |
167 | + | |
168 | + // se a senha foi enviada, ela sera trocada | |
169 | + if ($senha != "") { | |
170 | + $dataCol ["senha"] = md5 ( $senha ); | |
171 | + } | |
172 | + $resultado = i3GeoAdminUpdate ( $dbhw, "i3geousr_usuarios", $dataCol, "WHERE id_usuario = $id_usuario" ); | |
173 | + if ($resultado == false) { | |
174 | + return false; | |
175 | + } | |
176 | + // apaga todos os papeis | |
177 | + $resultado = excluirPapeisUsuario ( $id_usuario, $dbhw ); | |
178 | + if ($resultado == false) { | |
179 | + return false; | |
180 | + } | |
181 | + if (! empty ( $papeis )) { | |
182 | + // atualiza papeis vinculados | |
183 | + foreach ( $papeis as $p ) { | |
184 | + $resultado = adicionaPapelUsuario ( $id_usuario, $p, $dbhw ); | |
185 | + if ($resultado == false) { | |
186 | + return false; | |
187 | + } | |
188 | + } | |
189 | + } | |
190 | + return $id_usuario; | |
191 | +} | |
192 | +function adicionaPapelUsuario($id_usuario, $id_papel, $dbhw) { | |
193 | + global $esquemaadmin; | |
194 | + $dataCol = array ( | |
195 | + "id_usuario" => $id_usuario, | |
196 | + "id_papel" => $id_papel | |
197 | + ); | |
198 | + $resultado = i3GeoAdminInsert ( $dbhw, "i3geousr_papelusuario", $dataCol ); | |
199 | + return $resultado; | |
200 | +} | |
201 | +function excluirUsuario($id_usuario, $dbhw) { | |
202 | + global $esquemaadmin; | |
203 | + $resultado = exclui ( $esquemaadmin . "i3geousr_usuarios", "id_usuario", $id_usuario, $dbhw, false ); | |
204 | + if ($resultado == false) { | |
205 | + return false; | |
206 | + } | |
207 | + if ($resultado == true) { | |
208 | + $resultado = excluirPapeisUsuario ( $id_usuario, $dbhw ); | |
209 | + } | |
210 | + return $resultado; | |
211 | +} | |
212 | +function excluirPapeisUsuario($id_usuario, $dbhw) { | |
213 | + global $esquemaadmin; | |
214 | + $resultado = exclui ( $esquemaadmin . "i3geousr_papelusuario", "id_usuario", $id_usuario, $dbhw, false ); | |
215 | + return $resultado; | |
216 | +} | |
217 | +?> | ... | ... |
... | ... | @@ -0,0 +1,255 @@ |
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 | + | |
26 | +function init(onde){ | |
27 | + //variavel global indicando o elemento que recebera a lista de usuarios | |
28 | + ondeListaUsuarios = onde; | |
29 | + //conteudo html do formulario de adicao de operacao | |
30 | + formAdicionaUsuario = ""; | |
31 | + pegaUsuarios(); | |
32 | +} | |
33 | +/* | |
34 | +Function: pegaUsuarios | |
35 | + | |
36 | +Obtém a lista de usuarios | |
37 | + */ | |
38 | +function pegaUsuarios(){ | |
39 | + iconeAguarde(ondeListaUsuarios); | |
40 | + $.post( | |
41 | + "exec.php?funcao=pegaUsuariosEpapeis" | |
42 | + ) | |
43 | + .done( | |
44 | + function(data, status){ | |
45 | + //objeto json com os dados viondos do banco | |
46 | + var json = jQuery.parseJSON(data); | |
47 | + //template dos checkbox | |
48 | + var templatePapeis = $("#templateInputPapeis").html(); | |
49 | + //template do form de cada operacao | |
50 | + var templateUsuarios = $("#templateUsuarios").html(); | |
51 | + //lista todas as usuarios | |
52 | + var html = Mustache.to_html( | |
53 | + "{{#data}}" + templateUsuarios + "{{/data}}", | |
54 | + { | |
55 | + "data": json["usuarios"], | |
56 | + "excluir": $trad("excluir",i3GEOadmin.core.dicionario), | |
57 | + "onExcluir": "excluirUsuarioDialogo",//funcao | |
58 | + "salvar": $trad("salva",i3GEOadmin.core.dicionario), | |
59 | + "onSalvar": "salvarUsuarioDialogo",//funcao | |
60 | + "enviaSenha": $trad("enviaSenha",i3GEOadmin.usuarios.dicionario), | |
61 | + "usuario": $trad("usuario",i3GEOadmin.usuarios.dicionario), | |
62 | + "nome": $trad("nome",i3GEOadmin.usuarios.dicionario), | |
63 | + "labelDataCadastro": $trad("dataCadastro",i3GEOadmin.usuarios.dicionario), | |
64 | + "labelAtivo": $trad("ativo",i3GEOadmin.usuarios.dicionario), | |
65 | + "labelNovaSenha": $trad("novaSenha",i3GEOadmin.usuarios.dicionario), | |
66 | + "papeisv": $trad("papeisv",i3GEOadmin.usuarios.dicionario), | |
67 | + "sim": $trad("sim",i3GEOadmin.usuarios.dicionario), | |
68 | + "nao": $trad("nao",i3GEOadmin.usuarios.dicionario), | |
69 | + "selAtivoSim": function(){ | |
70 | + var p = this.ativo; | |
71 | + if(p == "0"){ | |
72 | + return ""; | |
73 | + } else { | |
74 | + return "selected"; | |
75 | + } | |
76 | + }, | |
77 | + "selAtivoNao": function(){ | |
78 | + var p = this.ativo; | |
79 | + if(p == "0"){ | |
80 | + return "selected"; | |
81 | + } else { | |
82 | + return ""; | |
83 | + } | |
84 | + }, | |
85 | + "inputPapeis": function(){ | |
86 | + //marca os checkbox | |
87 | + var p = this.papeis; | |
88 | + $(json["papeis"]).each( | |
89 | + function(i,el){ | |
90 | + if(p && el.id_papel && (p[el.id_papel] || el.id_papel == 1)){ | |
91 | + json["papeis"][i]["checked"] = "checked"; | |
92 | + } | |
93 | + else{ | |
94 | + json["papeis"][i]["checked"] = ""; | |
95 | + } | |
96 | + } | |
97 | + ); | |
98 | + return Mustache.to_html( | |
99 | + "{{#data}}" + templatePapeis + "{{/data}}", | |
100 | + { | |
101 | + "data":json["papeis"] | |
102 | + } | |
103 | + ); | |
104 | + } | |
105 | + } | |
106 | + ); | |
107 | + ondeListaUsuarios.html(html); | |
108 | + //filtro | |
109 | + html = Mustache.to_html( | |
110 | + "{{#data}}" + $("#templateFiltro").html() + "{{/data}}", | |
111 | + {"data":json["usuarios"]} | |
112 | + ); | |
113 | + $("#filtro").html("<option value='' >---</option>" + html); | |
114 | + | |
115 | + //monta um template para o modal de inclusao de novo usuario | |
116 | + html = Mustache.to_html( | |
117 | + $("#templateUsuarios").html(), | |
118 | + { | |
119 | + "id_usuario": "modal", | |
120 | + "excluir": $trad("cancelar",i3GEOadmin.core.dicionario), | |
121 | + "onExcluir": "fechaModalGeral",//funcao | |
122 | + "salvar": $trad("salva",i3GEOadmin.core.dicionario), | |
123 | + "onSalvar": "adicionaUsuario",//funcao | |
124 | + "usuario": $trad("usuario",i3GEOadmin.usuarios.dicionario), | |
125 | + "nome": $trad("nome",i3GEOadmin.usuarios.dicionario), | |
126 | + "labelDataCadastro": $trad("dataCadastro",i3GEOadmin.usuarios.dicionario), | |
127 | + "labelAtivo": $trad("ativo",i3GEOadmin.usuarios.dicionario), | |
128 | + "labelNovaSenha": $trad("novaSenha",i3GEOadmin.usuarios.dicionario), | |
129 | + "papeisv": $trad("papeisv",i3GEOadmin.usuarios.dicionario), | |
130 | + "sim": $trad("sim",i3GEOadmin.usuarios.dicionario), | |
131 | + "nao": $trad("nao",i3GEOadmin.usuarios.dicionario), | |
132 | + "inputPapeis": function(){ | |
133 | + return Mustache.to_html( | |
134 | + "{{#data}}" + $("#templateInputPapeis").html() + "{{/data}}", | |
135 | + { | |
136 | + "data":json["papeis"] | |
137 | + } | |
138 | + ); | |
139 | + } | |
140 | + } | |
141 | + ); | |
142 | + formAdicionaUsuario = html; | |
143 | + $.material.init(); | |
144 | + } | |
145 | + ) | |
146 | + .fail(function(data){ | |
147 | + ondeListaUsuarios.html(""); | |
148 | + mostraErro(data.status + " " +data.statusText); | |
149 | + }); | |
150 | +} | |
151 | +function adicionaUsuarioDialogo(){ | |
152 | + abreModalGeral(formAdicionaUsuario); | |
153 | +} | |
154 | + | |
155 | +//os parametros sao obtidos do formulario aberto do modal | |
156 | + | |
157 | +function adicionaUsuario(){ | |
158 | + var parametros = $("#form-modal form").serialize(); | |
159 | + fechaModalGeral(); | |
160 | + modalAguarde(true); | |
161 | + $.post( | |
162 | + "exec.php?funcao=adicionarUsuario", | |
163 | + parametros | |
164 | + ) | |
165 | + .done( | |
166 | + function(data, status){ | |
167 | + modalAguarde(false); | |
168 | + iconeAguarde(ondeListaUsuarios); | |
169 | + pegaUsuarios(); | |
170 | + } | |
171 | + ) | |
172 | + .fail( | |
173 | + function(data){ | |
174 | + modalAguarde(false); | |
175 | + mostraErro(data.status + " " +data.statusText); | |
176 | + } | |
177 | + ); | |
178 | +} | |
179 | +function excluirUsuarioDialogo(id_usuario){ | |
180 | + var hash = { | |
181 | + "mensagem": $trad("confirma",i3GEOadmin.core.dicionario), | |
182 | + "onBotao1": "excluirUsuario('"+id_usuario+"')", | |
183 | + "botao1": $trad("sim",i3GEOadmin.core.dicionario), | |
184 | + "onBotao2": "fechaModalConfirma();", | |
185 | + "botao2": $trad("nao",i3GEOadmin.core.dicionario) | |
186 | + }; | |
187 | + abreModalConfirma(hash); | |
188 | +} | |
189 | +function excluirUsuario(id_usuario){ | |
190 | + modalAguarde(true); | |
191 | + $.post( | |
192 | + "exec.php?funcao=excluirUsuario", | |
193 | + "id_usuario="+id_usuario | |
194 | + ) | |
195 | + .done( | |
196 | + function(data, status){ | |
197 | + modalAguarde(false); | |
198 | + var json = jQuery.parseJSON(data)*1; | |
199 | + $("#form-" + json).remove(); | |
200 | + } | |
201 | + ) | |
202 | + .fail( | |
203 | + function(data){ | |
204 | + modalAguarde(false); | |
205 | + mostraErro(data.status + " " +data.statusText); | |
206 | + } | |
207 | + ); | |
208 | +} | |
209 | +function salvarUsuarioDialogo(id_usuario){ | |
210 | + var hash = { | |
211 | + "mensagem": $trad("confirma",i3GEOadmin.core.dicionario), | |
212 | + "onBotao1": "salvarUsuario('"+id_usuario+"')", | |
213 | + "botao1": $trad("sim",i3GEOadmin.core.dicionario), | |
214 | + "onBotao2": "fechaModalConfirma();", | |
215 | + "botao2": $trad("nao",i3GEOadmin.core.dicionario) | |
216 | + }; | |
217 | + abreModalConfirma(hash); | |
218 | +} | |
219 | +function salvarUsuario(id_usuario){ | |
220 | + var parametros = $("#form-" + id_usuario + " form").serialize(); | |
221 | + fechaModalGeral(); | |
222 | + modalAguarde(true); | |
223 | + $.post( | |
224 | + "exec.php?funcao=alterarUsuario", | |
225 | + "id_usuario="+ id_usuario+"&"+parametros | |
226 | + ) | |
227 | + .done( | |
228 | + function(data, status){ | |
229 | + modalAguarde(false); | |
230 | + iconeAguarde(ondeListaUsuarios); | |
231 | + pegaUsuarios(); | |
232 | + } | |
233 | + ) | |
234 | + .fail( | |
235 | + function(data){ | |
236 | + modalAguarde(false); | |
237 | + mostraErro(data.status + " " +data.statusText); | |
238 | + } | |
239 | + ); | |
240 | +} | |
241 | +function filtra(obj,id){ | |
242 | + $("#" + id + " .panel").each( | |
243 | + function(i,el){ | |
244 | + if(obj.value == ""){ | |
245 | + $(el).show(); | |
246 | + } | |
247 | + else { | |
248 | + $(el).hide(); | |
249 | + } | |
250 | + } | |
251 | + ); | |
252 | + if(obj.value != ""){ | |
253 | + $("#"+obj.value).show(); | |
254 | + } | |
255 | +} | ... | ... |
admin1/usuarios/cadastro/index.php
... | ... | @@ -13,13 +13,118 @@ include "../../head.php"; |
13 | 13 | <li class="active">Cadastro</li> |
14 | 14 | </ol> |
15 | 15 | </div> |
16 | - | |
17 | 16 | </div> |
18 | -<div class="container-fluid"> | |
19 | - <div class="row"> | |
20 | - <iframe src="../../../admin/html/usuarios_.html" style="width:100%; height:5000px;border:none; scrolling:no; frameborder:0; marginheight:0; marginwidth:0;" ></iframe> | |
17 | +<div class="container"> | |
18 | + <div class="row center-block"> | |
19 | + <div class="col-md-12"> | |
20 | + <div class="well hidden" id="titulo"> | |
21 | + <button data-toggle="modal" data-target="#ajudaPrincipal" | |
22 | + class="btn btn-primary btn-fab btn-fab-mini pull-right"> | |
23 | + <i class="material-icons">help</i> | |
24 | + </button> | |
25 | + <h3>{{{usuarios}}}</h3> | |
26 | + <h4>{{{txtAjuda}}}</h4> | |
27 | + <!-- aqui entra o filtro --> | |
28 | + <div class="form-group"> | |
29 | + <label class="control-label">{{{filtro}}}</label> | |
30 | + <select onchange="filtra(this,'corpo')" id="filtro" class="form-control input-lg"> | |
31 | + </select> | |
32 | + </div> | |
33 | + <div class="row pull-right"> | |
34 | + <a onclick="adicionaUsuarioDialogo();" href="javascript:void(0)" class="btn btn-primary" role="button">{{{adicionar}}}</a> | |
35 | + </div> | |
36 | + <div class="clearfix"></div> | |
37 | + <!--Modal ajuda--> | |
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>{{{txtUsuarios}}}</p> | |
43 | + </div> | |
44 | + </div> | |
45 | + </div> | |
46 | + </div> | |
47 | + </div> | |
48 | + <div class="well hidden"> | |
49 | + <div id="corpo"> | |
50 | + </div> | |
51 | + </div> | |
52 | + </div> | |
53 | + </div> | |
21 | 54 | </div> |
55 | +<script id="templateFiltro" type="x-tmpl-mustache"> | |
56 | +<option value="form-{{id_usuario}}">{{{nome_usuario}}}</option> | |
57 | +</script> | |
58 | +<script id="templateUsuarios" type="x-tmpl-mustache"> | |
59 | +<div class="panel panel-default" id="form-{{id_usuario}}"> | |
60 | + <div class="panel-body"> | |
61 | + <form style="" onchange="this.style.boxShadow='2px 2px 5px 0 #009688';" class="form" role="form" method="post" action="" > | |
62 | + <div class="row"> | |
63 | + <div class="col-md-4" > | |
64 | + <h4> {{{papeisv}}}</h4> | |
65 | + <div class="form-group form-group-lg" style="padding-left:5px;">{{{inputPapeis}}}</div> | |
66 | + </div> | |
67 | + <div class="col-md-8"> | |
68 | + <h4>{{{usuario}}}</h4> | |
69 | + <div class="form-group form-group-lg"> | |
70 | + <label class="col-md-2 control-label" for="nome_usuario" >{{{nome}}}</label> | |
71 | + <div class="col-md-10"> | |
72 | + <input type="text" value="{{{nome_usuario}}}" class="form-control" name="nome_usuario" required> | |
73 | + </div> | |
74 | + </div> | |
75 | + <div class="form-group form-group-lg"> | |
76 | + <label class="col-md-2 control-label" for="login">Login</label> | |
77 | + <div class="col-md-10"> | |
78 | + <input type="text" value="{{{login}}}" class="form-control" name="login" required> | |
79 | + </div> | |
80 | + </div> | |
81 | + <div class="form-group form-group-lg"> | |
82 | + <label class="col-md-2 control-label" for="novasenha">{{{labelNovaSenha}}}</label> | |
83 | + <div class="col-md-10"> | |
84 | + <input type="password" value="" class="form-control" name="novasenha" > | |
85 | + </div> | |
86 | + </div> | |
87 | + <div class="form-group form-group-lg"> | |
88 | + <label class="col-md-2 control-label" for="email">e-mail</label> | |
89 | + <div class="col-md-10"> | |
90 | + <input type="email" value="{{{email}}}" class="form-control" name="email" required> | |
91 | + </div> | |
92 | + </div> | |
93 | + <div class="form-group form-group-lg"> | |
94 | + <label class="col-md-2 control-label" for="data_cadastro">{{{labelDataCadastro}}}</label> | |
95 | + <div class="col-md-10"> | |
96 | + <input type="date" value="{{{email}}}" class="form-control" name="data_cadastro"> | |
97 | + </div> | |
98 | + </div> | |
99 | + <div class="form-group form-group-lg"> | |
100 | + <label class="col-md-2 control-label" for="ativo">{{{labelAtivo}}}</label> | |
101 | + <div class="col-md-10"> | |
102 | + <select name="ativo" class="form-control"> | |
103 | + <option value="1" {{selAtivoSim}} >{{sim}}</option> | |
104 | + <option value="0" {{selAtivoNao}} >{{{nao}}}</option> | |
105 | + </select> | |
106 | + </div> | |
107 | + </div> | |
108 | + </div> | |
109 | + </div> | |
110 | + </form> | |
111 | + <div class="pull-right"> | |
112 | + <a href="javascript:void(0)" onclick="{{onExcluir}}('{{id_usuario}}')" class="btn btn-danger" role="button">{{excluir}}</a> | |
113 | + <a href="javascript:void(0)" onclick="{{onEnviarSenha}}('{{id_usuario}}')" class="btn btn-default" role="button">{{{enviaSenha}}}</a> | |
114 | + <a href="javascript:void(0)" onclick="{{onSalvar}}('{{id_usuario}}')" class="btn btn-primary" role="button">{{salvar}}</a> | |
115 | + </div> | |
116 | + </div> | |
22 | 117 | </div> |
118 | +</script> | |
119 | +<script id="templateInputPapeis" type="x-tmpl-mustache"> | |
120 | + <div class="checkbox"> | |
121 | + <label> | |
122 | + <input type="checkbox" {{checked}} name="id_papel-{{{id_papel}}}" /> <abbr title="{{{descricao}}}">{{{nome}}}</abbr> | |
123 | + </label> | |
124 | + </div> | |
125 | +</script> | |
126 | +<script type="text/javascript" src="../../dicionario/usuarios.js"></script> | |
127 | +<script type="text/javascript" src="index.js"></script> | |
23 | 128 | <script> |
24 | 129 | $(document).ready(function(){ |
25 | 130 | //vem de admin1/index.js |
... | ... | @@ -30,7 +135,23 @@ include "../../head.php"; |
30 | 135 | $(this).parent().siblings().removeClass('open'); |
31 | 136 | $(this).parent().toggleClass('open'); |
32 | 137 | }); |
138 | + //traducao | |
139 | + var t = $("#titulo"); | |
140 | + //complementa dicionario | |
141 | + i3GEOadmin.usuarios.dicionario.adicionar = i3GEOadmin.core.dicionario.adicionar; | |
142 | + i3GEOadmin.usuarios.dicionario.filtro = i3GEOadmin.core.dicionario.filtro; | |
143 | + t.html( | |
144 | + Mustache.to_html( | |
145 | + t.html(), | |
146 | + i3GEO.idioma.objetoIdioma(i3GEOadmin.usuarios.dicionario) | |
147 | + ) | |
148 | + ); | |
33 | 149 | $.material.init(); |
150 | + var inicia = function() { | |
151 | + $(".hidden").removeClass('hidden'); | |
152 | + init($("#corpo")); | |
153 | + }; | |
154 | + i3GEO.login.verificaOperacao("admin/html/usuarios",i3GEO.configura.locaplic, inicia, "sessao"); | |
34 | 155 | }); |
35 | 156 | </script> |
36 | 157 | </body> | ... | ... |
admin1/usuarios/operacoes/exec.php
admin1/usuarios/operacoes/index.js
... | ... | @@ -70,7 +70,7 @@ function pegaOperacoes(){ |
70 | 70 | var p = this.papeis; |
71 | 71 | $(json["papeis"]).each( |
72 | 72 | function(i,el){ |
73 | - if(p[el.id_papel] || el.id_papel == 1){ | |
73 | + if(p && el.id_papel && (p[el.id_papel] || el.id_papel == 1)){ | |
74 | 74 | json["papeis"][i]["checked"] = "checked"; |
75 | 75 | } |
76 | 76 | else{ | ... | ... |