Commit cb25f94c4758873463ef2be1b2cba18fe51d96f3

Authored by Edmar Moretti
1 parent 38910612

Adaptação do formulário de cadastro de usuários para uso do bootstrap

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&eacute;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&eacute;rio do Meio Ambiente Brasil
64   - Desenvolvedor: Edmar Moretti edmar.moretti@mma.gov.br
65   -
66   - Este programa &eacute; software livre; voc&ecirc; pode redistribu&iacute;-lo
67   - e/ou modific&aacute;-lo sob os termos da Licen&ccedil;a P&uacute;blica Geral
68   - GNU conforme publicada pela Free Software Foundation;
69   -
70   - Este programa &eacute; distribu&iacute;do na expectativa de que seja &uacute;til,
71   - por&eacute;m, SEM NENHUMA GARANTIA; nem mesmo a garantia impl&iacute;cita
72   - de COMERCIABILIDADE OU ADEQUA&Ccedil;&Atilde;O A UMA FINALIDADE ESPEC&Iacute;FICA.
73   - Consulte a Licen&ccedil;a P&uacute;blica Geral do GNU para mais detalhes.
74   - Voc&ecirc; deve ter recebido uma cópia da Licen&ccedil;a P&uacute;blica Geral do
75   - GNU junto com este programa; se n&atilde;o, escreva para a
76   - Free Software Foundation, Inc., no endere&ccedil;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=&quot;&quot;,$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=&quot;&quot;){
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&eacute;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&atilde;o",
121 121 en : "",
122 122 es : ""
123 123 } ],
... ...
admin1/usuarios/cadastro/exec.php 0 → 100755
... ... @@ -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 &eacute; software livre; voc&ecirc; pode redistribu&iacute;-lo
  13 + * e/ou modific&aacute;-lo sob os termos da Licen&ccedil;a P&uacute;blica Geral
  14 + * GNU conforme publicada pela Free Software Foundation;
  15 + *
  16 + * Este programa &eacute; distribu&iacute;do na expectativa de que seja &uacute;til,
  17 + * por&eacute;m, SEM NENHUMA GARANTIA; nem mesmo a garantia impl&iacute;cita
  18 + * de COMERCIABILIDADE OU ADEQUA&Ccedil;&Atilde;O A UMA FINALIDADE ESPEC&Iacute;FICA.
  19 + * Consulte a Licen&ccedil;a P&uacute;blica Geral do GNU para mais detalhes.
  20 + * Voc&ecirc; deve ter recebido uma copia da Licen&ccedil;a P&uacute;blica Geral do
  21 + * GNU junto com este programa; se n&atilde;o, escreva para a
  22 + * Free Software Foundation, Inc., no endere&ccedil;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 +?>
... ...
admin1/usuarios/cadastro/index.js 0 → 100755
... ... @@ -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&eacute;rio do Meio Ambiente Brasil
  9 +Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com
  10 +
  11 +Este programa &eacute; software livre; voc&ecirc; pode redistribu&iacute;-lo
  12 +e/ou modific&aacute;-lo sob os termos da Licen&ccedil;a P&uacute;blica Geral
  13 +GNU conforme publicada pela Free Software Foundation;
  14 +
  15 +Este programa &eacute; distribu&iacute;do na expectativa de que seja &uacute;til,
  16 +por&eacute;m, SEM NENHUMA GARANTIA; nem mesmo a garantia impl&iacute;cita
  17 +de COMERCIABILIDADE OU ADEQUA&Ccedil;&Atilde;O A UMA FINALIDADE ESPEC&Iacute;FICA.
  18 +Consulte a Licen&ccedil;a P&uacute;blica Geral do GNU para mais detalhes.
  19 +Voc&ecirc; deve ter recebido uma c&oacute;pia da Licen&ccedil;a P&uacute;blica Geral do
  20 +GNU junto com este programa; se n&atilde;o, escreva para a
  21 +Free Software Foundation, Inc., no endere&ccedil;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&eacute;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 &quot;../../head.php&quot;;
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 &quot;../../head.php&quot;;
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
... ... @@ -97,7 +97,6 @@ switch ($funcao)
97 97 exit;
98 98 }
99 99 $o = array();
100   - $resultado = array();
101 100 foreach ($operacoes as $operacao){
102 101 //pega os papeis registrados para cada operacao
103 102 $p = array();
... ...
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{
... ...