Commit c2a8865a5b3cf70d9bfdcbe880ca55af0e3a263c

Authored by Edmar Moretti
1 parent 3b53f0f2

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

admin/admin.db
No preview for this file type
admin/html/gruposusuarios_.html
... ... @@ -1,97 +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/gruposusuarios.js"></script>
20   -<script type="text/javascript" src="../js/gruposusuarios.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   - {{{gruposusuarios}}} <img
28   - src="../imagens/04.png" style="cursor: pointer" id=botaoAjuda />
29   - </h1>
30   - <div id="formulario" style="display: none">
31   - <div id="ajuda">
32   - <div class="hd">{{{ajuda}}}</div>
33   - <div class="bd" style="height: 144px; overflow: auto">
34   - {{{txtAjuda}}}
35   - </div>
36   - <div class="ft"></div>
37   - </div>
38   - <input onclick="adicionaLinha()" type=button id=adiciona
39   - value="{{{adicionaGrupo}}}" /> <br>
40   - <p>{{{grupoCadastrado}}}</p>
41   - <div id="tabela" style="left: -5px;"></div>
42   - <div id=logajax style="display: block"></div>
43   - </div>
44   - </div>
45   - </center>
46   - <script>
47   - /*
48   - Title: Cadastro de grupos de usuarios
49   -
50   - Veja tamb&eacute;m:
51   -
52   - <core.js>
53   -
54   - <usuarios.js>
55   -
56   - Licenca:
57   -
58   - GPL2
59   -
60   - i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet
61   -
62   - Direitos Autorais Reservados (c) 2006 Minist&eacute;rio do Meio Ambiente Brasil
63   - Desenvolvedor: Edmar Moretti edmar.moretti@mma.gov.br
64   -
65   - Este programa &eacute; software livre; voc&ecirc; pode redistribu&iacute;-lo
66   - e/ou modific&aacute;-lo sob os termos da Licen&ccedil;a P&uacute;blica Geral
67   - GNU conforme publicada pela Free Software Foundation;
68   -
69   - Este programa &eacute; distribu&iacute;do na expectativa de que seja &uacute;til,
70   - por&eacute;m, SEM NENHUMA GARANTIA; nem mesmo a garantia impl&iacute;cita
71   - de COMERCIABILIDADE OU ADEQUA&Ccedil;&Atilde;O A UMA FINALIDADE ESPEC&Iacute;FICA.
72   - Consulte a Licen&ccedil;a P&uacute;blica Geral do GNU para mais detalhes.
73   - Voc&ecirc; deve ter recebido uma cópia da Licen&ccedil;a P&uacute;blica Geral do
74   - GNU junto com este programa; se n&atilde;o, escreva para a
75   - Free Software Foundation, Inc., no endere&ccedil;o
76   - 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
77   -
78   - Arquivo:
79   -
80   - i3geo/admin/html/gruposusuarios.html
81   - */
82   -
83   - //necessario para a ferramenta login e outras
84   - i3GEO.configura = {
85   - locaplic : "../.."
86   - };
87   - //
88   - core_parseMustacheBody(i3GEOadmin.gruposusuarios.dicionario);
89   - cabecalhoUsuarios("cabecalhoPrincipal", "gruposusuarios");
90   - temp = function() {
91   - document.getElementById("formulario").style.display = "block";
92   - initMenu();
93   - };
94   - i3GEO.login.verificaOperacao("admin/html/usuarios",
95   - i3GEO.configura.locaplic, temp, "sessao",i3GEO.login.dialogo.abreLogin);
96   - </script>
97   -</body>
admin1/dicionario/core.js
... ... @@ -241,12 +241,12 @@ i3GEOadmin.core.dicionario = {
241 241 es : ""
242 242 } ],
243 243 'nome' : [ {
244   - pt : "nome",
  244 + pt : "Nome",
245 245 en : "",
246 246 es : ""
247 247 } ],
248 248 'descricao' : [ {
249   - pt : "descri&ccedil;&atilde;o",
  249 + pt : "Descri&ccedil;&atilde;o",
250 250 en : "",
251 251 es : ""
252 252 } ],
... ...
admin1/dicionario/gruposusuarios.js
1 1 //+$trad(1,i3GEOadmin.editormapfile.dicionario)+
2   -i3GEOadmin.gruposusuarios = {};
3 2 i3GEOadmin.gruposusuarios.dicionario = {
4 3 'gruposusuarios' : [ {
5 4 pt : "Administra&ccedil;&atilde;o do i3geo - Grupos de usu&aacute;rios",
... ... @@ -66,13 +65,13 @@ i3GEOadmin.gruposusuarios.dicionario = {
66 65 en : "",
67 66 es : ""
68 67 } ],
69   - '' : [ {
70   - pt : "",
  68 + 'usuariosv' : [ {
  69 + pt : "Usu&aacute;rios vinculados",
71 70 en : "",
72 71 es : ""
73 72 } ],
74   - '' : [ {
75   - pt : "",
  73 + 'grupo' : [ {
  74 + pt : "Grupo",
76 75 en : "",
77 76 es : ""
78 77 } ],
... ...
admin1/usuarios/cadastro/exec.php
... ... @@ -58,7 +58,7 @@ switch ($funcao) {
58 58 case "ADICIONARUSUARIO" :
59 59 $novo = adicionarUsuario( $ativo, $data_cadastro, $email, $login, $nome_usuario, $senha, $papeis, $dbhw );
60 60 if ($novo != false) {
61   - $sql = "SELECT * from " . $esquemaadmin . "i3geousr_usuarios WHERE id_usuario = " . $novo;
  61 + $sql = "SELECT id_usuario, ativo, data_cadastro, email, login, nome_usuario from " . $esquemaadmin . "i3geousr_usuarios WHERE id_usuario = " . $novo;
62 62 $dados = pegaDados ( $sql, $dbh );
63 63 if ($dados == false) {
64 64 header ( "HTTP/1.1 500 erro ao consultar banco de dados" );
... ...
admin1/usuarios/cadastro/index.js
... ... @@ -161,7 +161,7 @@ Obt&amp;eacute;m a lista de usuarios
161 161 .done(
162 162 function(data, status){
163 163 i3GEOadmin.core.modalAguarde(false);
164   - i3GEOadmin.core.iconeAguarde(ondeListaUsuarios);
  164 + i3GEOadmin.core.iconeAguarde(i3GEOadmin.usuarios.ondeListaUsuarios);
165 165 i3GEOadmin.usuarios.pegaUsuarios();
166 166 }
167 167 )
... ... @@ -223,7 +223,7 @@ Obt&amp;eacute;m a lista de usuarios
223 223 .done(
224 224 function(data, status){
225 225 i3GEOadmin.core.modalAguarde(false);
226   - i3GEOadmin.core.iconeAguarde(ondeListaUsuarios);
  226 + i3GEOadmin.core.iconeAguarde(i3GEOadmin.usuarios.ondeListaUsuarios);
227 227 i3GEOadmin.usuarios.pegaUsuarios();
228 228 }
229 229 )
... ...
admin1/usuarios/cadastro/index.php
... ... @@ -149,14 +149,9 @@ include &quot;../../head.php&quot;;
149 149 i3GEOadmin.usuarios.dicionario.filtro = i3GEOadmin.core.dicionario.filtro;
150 150 i3GEOadmin.usuarios.dicionario.excluir = i3GEOadmin.core.dicionario.excluir;
151 151 i3GEOadmin.usuarios.dicionario.salvar = i3GEOadmin.core.dicionario.salva;
152   - i3GEOadmin.usuarios.dicionario.enviaSenha = i3GEOadmin.usuarios.dicionario.enviaSenha;
153   - i3GEOadmin.usuarios.dicionario.usuario = i3GEOadmin.usuarios.dicionario.usuario;
154   - i3GEOadmin.usuarios.dicionario.nome = i3GEOadmin.usuarios.dicionario.nome;
155   - i3GEOadmin.usuarios.dicionario.papeisv = i3GEOadmin.usuarios.dicionario.papeisv;
156 152 i3GEOadmin.usuarios.dicionario.sim = i3GEOadmin.core.dicionario.sim;
157 153 i3GEOadmin.usuarios.dicionario.nao = i3GEOadmin.core.dicionario.nao;
158 154 i3GEOadmin.usuarios.dicionario.cancelar = i3GEOadmin.core.dicionario.cancelar;
159   - i3GEOadmin.usuarios.dicionario.dataCadastro = i3GEOadmin.usuarios.dicionario.dataCadastro;
160 155 i3GEOadmin.usuarios.dicionario.confirma = i3GEOadmin.core.dicionario.confirma;
161 156  
162 157 i3GEOadmin.core.dicionario = null;
... ...
admin1/usuarios/grupos/exec.php 0 → 100755
... ... @@ -0,0 +1,205 @@
  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 + "ADICIONARGRUPO",
  33 + "ALTERARGRUPO",
  34 + "ADICIONAUSUARIOSGRUPO",
  35 + "EXCLUIRGRUPO"
  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 == "ADICIONARGRUPO" || $funcao == "ALTERARGRUPO") {
  47 + $usuarios = array ();
  48 + foreach ( array_keys ( $_POST ) as $k ) {
  49 + $teste = explode ( "-", $k );
  50 + if ($teste[0] == "id_usuario") {
  51 + $usuarios[] = $teste[1] * 1;
  52 + }
  53 + }
  54 + array_unique ( $usuarios );
  55 +}
  56 +switch ($funcao) {
  57 + case "ADICIONARGRUPO" :
  58 + $novo = adicionarGrupo( $nome,$descricao, $usuarios, $dbhw );
  59 + if ($novo != false) {
  60 + $sql = "SELECT * from " . $esquemaadmin . "i3geousr_grupos WHERE id_grupo = " . $novo;
  61 + $dados = pegaDados ( $sql, $dbh );
  62 + if ($dados == false) {
  63 + header ( "HTTP/1.1 500 erro ao consultar banco de dados" );
  64 + exit ();
  65 + }
  66 + retornaJSON ( $dados );
  67 + } else {
  68 + header ( "HTTP/1.1 500 erro ao consultar banco de dados" );
  69 + exit ();
  70 + }
  71 + exit ();
  72 + break;
  73 + case "ALTERARGRUPO" :
  74 + $novo = alterarGrupo ( $id_grupo, $nome, $descricao, $usuarios, $dbhw );
  75 + if ($novo == false) {
  76 + header ( "HTTP/1.1 500 erro ao consultar banco de dados" );
  77 + exit ();
  78 + }
  79 + $sql = "SELECT * from " . $esquemaadmin . "i3geousr_grupos WHERE id_grupo = " . $novo;
  80 + $dados = pegaDados ( $sql, $dbh );
  81 + if ($dados == false) {
  82 + header ( "HTTP/1.1 500 erro ao consultar banco de dados" );
  83 + exit ();
  84 + }
  85 + retornaJSON ( $dados );
  86 + exit ();
  87 + break;
  88 + case "PEGAGRUPOSEUSUARIOS" :
  89 + $grupos = pegaDados ( "SELECT id_grupo,nome,descricao from ".$esquemaadmin."i3geousr_grupos order by nome", $dbh, false );
  90 + $usuarios = pegaDados ( "SELECT U.nome_usuario, U.id_usuario, U.login, UP.id_grupo FROM ".$esquemaadmin."i3geousr_usuarios AS U JOIN ".$esquemaadmin."i3geousr_grupousuario AS UP ON U.id_usuario = UP.id_usuario", dbh, false );
  91 + if ($usuarios == false || $grupos == false) {
  92 + $dbhw = null;
  93 + $dbh = null;
  94 + header ( "HTTP/1.1 500 erro ao consultar banco de dados" );
  95 + exit ();
  96 + }
  97 + $o = array ();
  98 + foreach ( $grupos as $grupo ) {
  99 + $p = array ();
  100 + foreach ( $usuarios as $usuario ) {
  101 + if ($usuario["id_grupo"] == $grupo["id_grupo"]) {
  102 + $p[$usuario["id_usuario"]] = $usuario;
  103 + }
  104 + }
  105 + $grupo["usuarios"] = $p;
  106 + $o[] = $grupo;
  107 + }
  108 + $usuarios = pegaDados ( "SELECT id_usuario, login, nome_usuario from " . $esquemaadmin . "i3geousr_usuarios WHERE ativo = 1 order by login", $dbh );
  109 + $dbhw = null;
  110 + $dbh = null;
  111 + if ($usuarios == false) {
  112 + header ( "HTTP/1.1 500 erro ao consultar banco de dados" );
  113 + exit();
  114 + }
  115 + retornaJSON ( array (
  116 + "grupos" => $o,
  117 + "usuarios" => $usuarios
  118 + ) );
  119 + break;
  120 + case "EXCLUIRGRUPO" :
  121 + $retorna = excluirGrupo ( $id_grupo, $dbhw );
  122 + $dbhw = null;
  123 + $dbh = null;
  124 + if ($retorna == false) {
  125 + header ( "HTTP/1.1 500 erro ao consultar banco de dados" );
  126 + exit ();
  127 + }
  128 + retornaJSON ( $id_grupo );
  129 + exit ();
  130 + break;
  131 +}
  132 +cpjson ( $retorno );
  133 +// $usuarios deve ser um array
  134 +function adicionarGrupo($nome, $descricao, $usuarios, $dbhw) {
  135 + global $esquemaadmin;
  136 + try {
  137 + $dataCol = array(
  138 + "nome" => '',
  139 + "descricao" => ''
  140 + );
  141 + $id_grupo = i3GeoAdminInsertUnico ( $dbhw, "i3geousr_grupos", $dataCol, "nome", "id_grupo" );
  142 + $retorna = alterarGrupo ( $id_grupo, $nome, $descricao, $usuarios, $dbhw );
  143 + return $retorna;
  144 + } catch ( PDOException $e ) {
  145 + return false;
  146 + }
  147 +}
  148 +// $papeis deve ser um array
  149 +function alterarGrupo($id_grupo, $nome, $descricao, $usuarios, $dbhw) {
  150 + global $esquemaadmin;
  151 + if ($convUTF) {
  152 + $nome = utf8_encode ( $nome );
  153 + $descricao = utf8_encode ( $descricao );
  154 + }
  155 + $dataCol = array (
  156 + "nome" => $nome,
  157 + "descricao" => $descricao
  158 + );
  159 +
  160 + $resultado = i3GeoAdminUpdate ( $dbhw, "i3geousr_grupos", $dataCol, "WHERE id_grupo = $id_grupo" );
  161 + if ($resultado == false) {
  162 + return false;
  163 + }
  164 + // apaga todos os papeis
  165 + $resultado = excluirUsuariosGrupo ( $id_grupo, $dbhw );
  166 + if ($resultado == false) {
  167 + return false;
  168 + }
  169 + if (! empty ( $usuarios )) {
  170 + // atualiza papeis vinculados
  171 + foreach ( $usuarios as $p ) {
  172 + $resultado = adicionaUsuarioGrupo ( $id_grupo, $p, $dbhw );
  173 + if ($resultado == false) {
  174 + return false;
  175 + }
  176 + }
  177 + }
  178 + return $id_grupo;
  179 +}
  180 +function adicionaUsuarioGrupo($id_grupo, $id_usuario, $dbhw) {
  181 + global $esquemaadmin;
  182 + $dataCol = array (
  183 + "id_usuario" => $id_usuario,
  184 + "id_grupo" => $id_grupo
  185 + );
  186 + $resultado = i3GeoAdminInsert ( $dbhw, "i3geousr_grupousuario", $dataCol );
  187 + return $resultado;
  188 +}
  189 +function excluirGrupo($id_grupo, $dbhw) {
  190 + global $esquemaadmin;
  191 + $resultado = exclui ( $esquemaadmin . "i3geousr_grupos", "id_grupo", $id_grupo, $dbhw, false );
  192 + if ($resultado == false) {
  193 + return false;
  194 + }
  195 + if ($resultado == true) {
  196 + $resultado = excluirUsuariosGrupo ( $id_grupo, $dbhw );
  197 + }
  198 + return $resultado;
  199 +}
  200 +function excluirUsuariosGrupo($id_grupo, $dbhw) {
  201 + global $esquemaadmin;
  202 + $resultado = exclui ( $esquemaadmin . "i3geousr_grupousuario", "id_grupo", $id_grupo, $dbhw, false );
  203 + return $resultado;
  204 +}
  205 +?>
... ...
admin1/usuarios/grupos/index.js 0 → 100755
... ... @@ -0,0 +1,243 @@
  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 +i3GEOadmin.gruposusuarios = {
  26 + //variavel global indicando o elemento que recebera a lista de usuarios
  27 + ondeListaGrupos: "",
  28 + //conteudo html do formulario de adicao de operacao
  29 + formAdicionaUsuario: "",
  30 + init: function(onde){
  31 + i3GEOadmin.gruposusuarios.ondeListaGrupos = onde;
  32 + i3GEOadmin.gruposusuarios.pegaGrupos();
  33 + },
  34 + /*
  35 +Function: pegaGrupos
  36 +
  37 +Obt&eacute;m a lista de grupos
  38 + */
  39 + pegaGrupos: function(){
  40 + i3GEOadmin.core.iconeAguarde(i3GEOadmin.gruposusuarios.ondeListaGrupos);
  41 + $.post(
  42 + "exec.php?funcao=pegaGruposEusuarios"
  43 + )
  44 + .done(
  45 + function(data, status){
  46 + //valor do filtro atual
  47 + var filtro = i3GEOadmin.gruposusuarios.valorFiltro();
  48 + //objeto json com os dados viondos do banco
  49 + var json = jQuery.parseJSON(data);
  50 + //template dos checkbox
  51 + var templateUsuarios = $("#templateInputUsuarios").html();
  52 + //template do form de cada operacao
  53 + var templateGrupos = $("#templateGrupos").html();
  54 + //lista todas as usuarios
  55 + var html = Mustache.to_html(
  56 + "{{#data}}" + templateGrupos + "{{/data}}",
  57 + $.extend(
  58 + i3GEOadmin.gruposusuarios.dicionario,
  59 + {
  60 + "data": json["grupos"],
  61 + "onExcluir": "i3GEOadmin.gruposusuarios.excluirGrupoDialogo",//funcao
  62 + "onSalvar": "i3GEOadmin.gruposusuarios.salvarGrupoDialogo",//funcao
  63 + "excluir": i3GEOadmin.gruposusuarios.dicionario.excluir,
  64 + "inputUsuarios": function(){
  65 + //marca os checkbox
  66 + var p = this.usuarios;
  67 + $(json["usuarios"]).each(
  68 + function(i,el){
  69 + console.info(p)
  70 + if(p && el.id_usuario && p[el.id_usuario]){
  71 + json["usuarios"][i]["checked"] = "checked";
  72 + }
  73 + else{
  74 + json["usuarios"][i]["checked"] = "";
  75 + }
  76 + }
  77 + );
  78 + return Mustache.to_html(
  79 + "{{#data}}" + templateUsuarios + "{{/data}}",
  80 + {
  81 + "data":json["usuarios"]
  82 + }
  83 + );
  84 + }
  85 + }
  86 + )
  87 + );
  88 + i3GEOadmin.gruposusuarios.ondeListaGrupos.html(html);
  89 + //filtro
  90 + html = Mustache.to_html(
  91 + "{{#data}}" + $("#templateFiltro").html() + "{{/data}}",
  92 + {"data":json["grupos"]}
  93 + );
  94 + $("#filtro").html("<option value='' >---</option>" + html);
  95 + if(filtro != ""){
  96 + i3GEOadmin.gruposusuarios.defineFiltro(filtro);
  97 + i3GEOadmin.gruposusuarios.filtra(i3GEOadmin.gruposusuarios.pegaFiltro());
  98 + }
  99 + //monta um template para o modal de inclusao de novo usuario
  100 + html = Mustache.to_html(
  101 + $("#templateGrupos").html(),
  102 + $.extend(
  103 + i3GEOadmin.gruposusuarios.dicionario,
  104 + {
  105 + "id_grupo": "modal",
  106 + "excluir": i3GEOadmin.gruposusuarios.dicionario.cancelar,
  107 + "onExcluir": "i3GEOadmin.core.fechaModalGeral",//funcao
  108 + "onSalvar": "i3GEOadmin.gruposusuarios.adicionaGrupo",//funcao
  109 + "nome": "",
  110 + "descricao": "",
  111 + "inputUsuarios": function(){
  112 + return Mustache.to_html(
  113 + "{{#data}}" + templateUsuarios + "{{/data}}",
  114 + {
  115 + "data":json["usuarios"]
  116 + }
  117 + );
  118 + }
  119 + }
  120 + )
  121 + );
  122 + i3GEOadmin.gruposusuarios.formAdicionaGrupo = html;
  123 + $.material.init();
  124 + }
  125 + )
  126 + .fail(function(data){
  127 + i3GEOadmin.gruposusuarios.ondeListaGrupos.html("");
  128 + i3GEOadmin.core.mostraErro(data.status + " " +data.statusText);
  129 + });
  130 + },
  131 + adicionaGrupoDialogo: function(){
  132 + i3GEOadmin.core.abreModalGeral(i3GEOadmin.gruposusuarios.formAdicionaGrupo);
  133 + },
  134 +// os parametros sao obtidos do formulario aberto do modal
  135 + adicionaGrupo: function(){
  136 + var parametros = $("#form-modal form").serialize();
  137 + i3GEOadmin.core.fechaModalGeral();
  138 + i3GEOadmin.core.modalAguarde(true);
  139 + $.post(
  140 + "exec.php?funcao=adicionarGrupo",
  141 + parametros
  142 + )
  143 + .done(
  144 + function(data, status){
  145 + i3GEOadmin.core.modalAguarde(false);
  146 + i3GEOadmin.core.iconeAguarde(i3GEOadmin.gruposusuarios.ondeListaGrupos);
  147 + i3GEOadmin.gruposusuarios.pegaGrupos();
  148 + }
  149 + )
  150 + .fail(
  151 + function(data){
  152 + i3GEOadmin.core.modalAguarde(false);
  153 + i3GEOadmin.core.mostraErro(data.status + " " +data.statusText);
  154 + }
  155 + );
  156 + },
  157 + excluirGrupoDialogo: function(id_grupo){
  158 + var hash = {
  159 + "mensagem": i3GEOadmin.gruposusuarios.dicionario.confirma,
  160 + "onBotao1": "i3GEOadmin.gruposusuarios.excluirGrupo('"+id_grupo+"')",
  161 + "botao1": i3GEOadmin.gruposusuarios.dicionario.sim,
  162 + "onBotao2": "i3GEOadmin.core.fechaModalConfirma();",
  163 + "botao2": i3GEOadmin.gruposusuarios.dicionario.nao
  164 + };
  165 + i3GEOadmin.core.abreModalConfirma(hash);
  166 + },
  167 + excluirGrupo: function(id_grupo){
  168 + i3GEOadmin.core.modalAguarde(true);
  169 + $.post(
  170 + "exec.php?funcao=excluirGrupo",
  171 + "id_grupo="+id_grupo
  172 + )
  173 + .done(
  174 + function(data, status){
  175 + i3GEOadmin.core.modalAguarde(false);
  176 + var json = jQuery.parseJSON(data)*1;
  177 + $("#form-" + json).remove();
  178 + }
  179 + )
  180 + .fail(
  181 + function(data){
  182 + i3GEOadmin.core.modalAguarde(false);
  183 + i3GEOadmin.core.mostraErro(data.status + " " +data.statusText);
  184 + }
  185 + );
  186 + },
  187 + salvarGrupoDialogo: function(id_grupo){
  188 + var hash = {
  189 + "mensagem": i3GEOadmin.gruposusuarios.dicionario.confirma,
  190 + "onBotao1": "i3GEOadmin.gruposusuarios.salvarGrupo('"+id_grupo+"')",
  191 + "botao1": i3GEOadmin.gruposusuarios.dicionario.sim,
  192 + "onBotao2": "i3GEOadmin.core.fechaModalConfirma();",
  193 + "botao2": i3GEOadmin.gruposusuarios.dicionario.nao
  194 + };
  195 + i3GEOadmin.core.abreModalConfirma(hash);
  196 + },
  197 + salvarGrupo: function(id_grupo){
  198 + var parametros = $("#form-" + id_grupo + " form").serialize();
  199 + i3GEOadmin.core.fechaModalGeral();
  200 + i3GEOadmin.core.modalAguarde(true);
  201 + $.post(
  202 + "exec.php?funcao=alterarGrupo",
  203 + "id_grupo="+ id_grupo+"&"+parametros
  204 + )
  205 + .done(
  206 + function(data, status){
  207 + i3GEOadmin.core.modalAguarde(false);
  208 + i3GEOadmin.core.iconeAguarde(i3GEOadmin.gruposusuarios.ondeListaGrupos);
  209 + i3GEOadmin.gruposusuarios.pegaGrupos();
  210 + }
  211 + )
  212 + .fail(
  213 + function(data){
  214 + i3GEOadmin.core.modalAguarde(false);
  215 + i3GEOadmin.core.mostraErro(data.status + " " +data.statusText);
  216 + }
  217 + );
  218 + },
  219 + pegaFiltro: function(){
  220 + return $i("filtro");
  221 + },
  222 + valorFiltro: function(){
  223 + return i3GEOadmin.gruposusuarios.pegaFiltro().value;
  224 + },
  225 + defineFiltro: function(valor){
  226 + i3GEOadmin.gruposusuarios.pegaFiltro().value = valor;
  227 + },
  228 + filtra: function(obj){
  229 + $("#corpo .panel").each(
  230 + function(i,el){
  231 + if(obj.value == ""){
  232 + $(el).show();
  233 + }
  234 + else {
  235 + $(el).hide();
  236 + }
  237 + }
  238 + );
  239 + if(obj.value != ""){
  240 + $("#"+obj.value).show();
  241 + }
  242 + }
  243 +};
0 244 \ No newline at end of file
... ...
admin1/usuarios/grupos/index.php
... ... @@ -10,16 +10,97 @@ include &quot;../../head.php&quot;;
10 10 <li><a href="../../init/index.php">i3Geo</a></li>
11 11 <li><a href="../../index.php">Admin</a></li>
12 12 <li>Usu&aacute;rios</li>
13   - <li class="active">Grupos</li>
  13 + <li class="active">Grupos e usu&aacute;rios</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/gruposusuarios_.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 + <!--
  22 + <button data-toggle="modal" data-target="#ajudaPrincipal"
  23 + class="btn btn-primary btn-fab btn-fab-mini pull-right">
  24 + <i class="material-icons">help</i>
  25 + </button>
  26 + -->
  27 + <h3>{{{gruposusuarios}}}</h3>
  28 + <h4>{{{txtAjuda}}}</h4>
  29 + <!-- aqui entra o filtro -->
  30 + <div class="form-group">
  31 + <label class="control-label">{{{filtro}}}</label>
  32 + <select onchange="i3GEOadmin.gruposusuarios.filtra(this)" id="filtro" class="form-control input-lg">
  33 + </select>
  34 + </div>
  35 +
  36 + <div class="row pull-right">
  37 + <a onclick="i3GEOadmin.gruposusuarios.adicionaGrupoDialogo();" href="javascript:void(0)" class="btn btn-primary" role="button">{{{adicionar}}}</a>
  38 + </div>
  39 + <div class="clearfix"></div>
  40 + <!--Modal ajuda
  41 + <div id="ajudaPrincipal" class="modal fade" tabindex="-1">
  42 + <div class="modal-dialog">
  43 + <div class="modal-content">
  44 + <div class="modal-body">
  45 + <p>{{{txtGrupos}}}</p>
  46 + </div>
  47 + </div>
  48 + </div>
  49 + </div>
  50 + -->
  51 + </div>
  52 + <div class="well hidden">
  53 + <div id="corpo">
  54 + </div>
  55 + </div>
  56 + </div>
  57 + </div>
21 58 </div>
  59 +<script id="templateFiltro" type="x-tmpl-mustache">
  60 +<option value="form-{{id_grupo}}">{{{nome}}}</option>
  61 +</script>
  62 +<script id="templateGrupos" type="x-tmpl-mustache">
  63 +<div class="panel panel-default" id="form-{{id_grupo}}">
  64 + <div class="panel-body">
  65 + <form style="" onchange="this.style.boxShadow='2px 2px 5px 0 #009688';" class="form" role="form" method="post" action="" >
  66 + <div class="row">
  67 + <div class="col-md-4" style="max-height: 230px; overflow-y: auto;">
  68 + <h4> {{{usuariosv}}}</h4>
  69 + <div class="form-group form-group-lg" style="padding-left:5px;">{{{inputUsuarios}}}</div>
  70 + </div>
  71 + <div class="col-md-8">
  72 + <h4>{{{grupo}}}</h4>
  73 + <div class="form-group form-group-lg">
  74 + <label class="col-md-2 control-label" for="nome" >{{{labelNome}}}</label>
  75 + <div class="col-md-10">
  76 + <input type="text" value="{{{nome}}}" class="form-control" name="nome" required>
  77 + </div>
  78 + </div>
  79 + <div class="form-group form-group-lg">
  80 + <label class="col-md-2 control-label" for="login">{{{labelDescricao}}}</label>
  81 + <div class="col-md-10">
  82 + <input type="text" value="{{{descricao}}}" class="form-control" name="descricao">
  83 + </div>
  84 + </div>
  85 + </div>
  86 + </div>
  87 + </form>
  88 + <div class="pull-right">
  89 + <a href="javascript:void(0)" onclick="{{onExcluir}}('{{id_grupo}}')" class="btn btn-danger" role="button">{{excluir}}</a>
  90 + <a href="javascript:void(0)" onclick="{{onSalvar}}('{{id_grupo}}')" class="btn btn-primary" role="button">{{salvar}}</a>
  91 + </div>
  92 + </div>
22 93 </div>
  94 +</script>
  95 +<script id="templateInputUsuarios" type="x-tmpl-mustache">
  96 + <div class="checkbox">
  97 + <label>
  98 + <input type="checkbox" {{checked}} name="id_usuario-{{{id_usuario}}}" /> <abbr title="{{{nome_usuario}}}">{{{login}}}</abbr>
  99 + </label>
  100 + </div>
  101 +</script>
  102 +<script type="text/javascript" src="index.js"></script>
  103 +<script type="text/javascript" src="../../dicionario/gruposusuarios.js"></script>
23 104 <script>
24 105 $(document).ready(function(){
25 106 //vem de admin1/index.js
... ... @@ -30,7 +111,36 @@ include &quot;../../head.php&quot;;
30 111 $(this).parent().siblings().removeClass('open');
31 112 $(this).parent().toggleClass('open');
32 113 });
  114 + //traducao
  115 + var t = $("#titulo");
  116 + //complementa dicionario
  117 + i3GEOadmin.gruposusuarios.dicionario.adicionar = i3GEOadmin.core.dicionario.adicionar;
  118 + i3GEOadmin.gruposusuarios.dicionario.filtro = i3GEOadmin.core.dicionario.filtro;
  119 + i3GEOadmin.gruposusuarios.dicionario.excluir = i3GEOadmin.core.dicionario.excluir;
  120 + i3GEOadmin.gruposusuarios.dicionario.salvar = i3GEOadmin.core.dicionario.salva;
  121 + i3GEOadmin.gruposusuarios.dicionario.sim = i3GEOadmin.core.dicionario.sim;
  122 + i3GEOadmin.gruposusuarios.dicionario.nao = i3GEOadmin.core.dicionario.nao;
  123 + i3GEOadmin.gruposusuarios.dicionario.cancelar = i3GEOadmin.core.dicionario.cancelar;
  124 + i3GEOadmin.gruposusuarios.dicionario.confirma = i3GEOadmin.core.dicionario.confirma;
  125 + i3GEOadmin.gruposusuarios.dicionario.labelNome = i3GEOadmin.core.dicionario.nome;
  126 + i3GEOadmin.gruposusuarios.dicionario.labelDescricao = i3GEOadmin.core.dicionario.descricao;
  127 +
  128 + i3GEOadmin.core.dicionario = null;
  129 +
  130 + i3GEOadmin.gruposusuarios.dicionario = i3GEO.idioma.objetoIdioma(i3GEOadmin.gruposusuarios.dicionario);
  131 +
  132 + t.html(
  133 + Mustache.to_html(
  134 + t.html(),
  135 + i3GEOadmin.gruposusuarios.dicionario
  136 + )
  137 + );
33 138 $.material.init();
  139 + var inicia = function() {
  140 + $(".hidden").removeClass('hidden');
  141 + i3GEOadmin.gruposusuarios.init($("#corpo"));
  142 + };
  143 + i3GEO.login.verificaOperacao("admin/html/usuarios",i3GEO.configura.locaplic, inicia, "sessao");
34 144 });
35 145 </script>
36 146 </body>
... ...