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{ | ... | ... |