Commit bd913fd7a3faf3f27886ac6055239fef547d2d58

Authored by Edmar Moretti
1 parent 6b78fd2b

Alteração no layout da lista de dados no sistema de admin

admin/admin.db
No preview for this file type
admin1/usuarios/cadastro/exec.php
@@ -147,32 +147,11 @@ switch ($funcao) { @@ -147,32 +147,11 @@ switch ($funcao) {
147 $dbhw = null; 147 $dbhw = null;
148 $dbh = null; 148 $dbh = null;
149 if ($papeis === false) { 149 if ($papeis === false) {
150 - $dbhw = null;  
151 - $dbh = null;  
152 header ( "HTTP/1.1 500 erro ao consultar banco de dados" ); 150 header ( "HTTP/1.1 500 erro ao consultar banco de dados" );
153 exit (); 151 exit ();
154 } 152 }
155 - $o = array ();  
156 - foreach ( $usuarios as $usuario ) {  
157 - // pega os papeis registrados para cada operacao  
158 - $p = array ();  
159 - foreach ( $papeis as $papel ) {  
160 - if ($papel["id_usuario"] == $usuario["id_usuario"]) {  
161 - $p[$papel["id_papel"]] = $papel;  
162 - }  
163 - }  
164 - $usuario["papeis"] = $p;  
165 - $o[] = $usuario;  
166 - }  
167 - $papeis = pegaDados ( "SELECT * from " . $esquemaadmin . "i3geousr_papeis order by nome", $dbh );  
168 - $dbhw = null;  
169 - $dbh = null;  
170 - if ($papeis === false) {  
171 - header ( "HTTP/1.1 500 erro ao consultar banco de dados" );  
172 - exit();  
173 - }  
174 retornaJSON ( array ( 153 retornaJSON ( array (
175 - "usuarios" => $o, 154 + "usuarios" => $usuarios,
176 "papeis" => $papeis 155 "papeis" => $papeis
177 ) ); 156 ) );
178 break; 157 break;
admin1/usuarios/cadastro/index.js
@@ -53,7 +53,7 @@ Obtém a lista de usuarios @@ -53,7 +53,7 @@ Obtém a lista de usuarios
53 var templatePapeis = $("#templateInputPapeis").html(); 53 var templatePapeis = $("#templateInputPapeis").html();
54 //template do form de cada operacao 54 //template do form de cada operacao
55 var templateLista = $("#templateLista").html(); 55 var templateLista = $("#templateLista").html();
56 - templateLista = templateLista.replace("{{{templateFormLista}}}",$("#templateFormLista").html()); 56 + //templateLista = templateLista.replace("{{{templateFormLista}}}",$("#templateFormLista").html());
57 //lista todas as usuarios 57 //lista todas as usuarios
58 var html = Mustache.to_html( 58 var html = Mustache.to_html(
59 "{{#data}}" + templateLista + "{{/data}}", 59 "{{#data}}" + templateLista + "{{/data}}",
admin1/usuarios/grupos/exec.php
@@ -31,7 +31,9 @@ include_once (dirname ( __FILE__ ) . "/../../../admin/php/login.php"); @@ -31,7 +31,9 @@ include_once (dirname ( __FILE__ ) . "/../../../admin/php/login.php");
31 $funcoesEdicao = array ( 31 $funcoesEdicao = array (
32 "ADICIONAR", 32 "ADICIONAR",
33 "ALTERAR", 33 "ALTERAR",
34 - "EXCLUIR" 34 + "EXCLUIR",
  35 + "LISTA",
  36 + "LISTAUNICO"
35 ); 37 );
36 if (in_array ( strtoupper ( $funcao ), $funcoesEdicao )) { 38 if (in_array ( strtoupper ( $funcao ), $funcoesEdicao )) {
37 if (verificaOperacaoSessao ( "admin/html/usuarios" ) === false) { 39 if (verificaOperacaoSessao ( "admin/html/usuarios" ) === false) {
@@ -89,35 +91,51 @@ switch ($funcao) { @@ -89,35 +91,51 @@ switch ($funcao) {
89 retornaJSON ( $dados ); 91 retornaJSON ( $dados );
90 exit (); 92 exit ();
91 break; 93 break;
  94 + case "LISTAUNICO" :
  95 + $grupos = pegaDados ( "SELECT id_grupo,nome,descricao from ".$esquemaadmin."i3geousr_grupos order by nome", $dbh, false );
  96 + $gruposusuarios = pegaDados ( "SELECT U.nome_usuario, U.id_usuario, UP.id_grupo FROM ".$esquemaadmin."i3geousr_grupousuario AS UP JOIN ".$esquemaadmin."i3geousr_usuarios AS U ON U.id_usuario = UP.id_usuario", dbh, false );
  97 + if ($gruposusuarios === false || $grupos === false) {
  98 + $dbhw = null;
  99 + $dbh = null;
  100 + header ( "HTTP/1.1 500 erro ao consultar banco de dados" );
  101 + exit ();
  102 + }
  103 + $grupo = $grupos[0];
  104 + $o = array ();
  105 + foreach ( $gruposusuarios as $gp ) {
  106 + $o[$gp["id_grupo"]] = $gp;
  107 + }
  108 + $grupo["usuarios"] = $o;
  109 + $usuarios = pegaDados ( "SELECT id_usuario, login, nome_usuario from " . $esquemaadmin . "i3geousr_usuarios WHERE ativo = 1 order by login", $dbh );
  110 + $dbhw = null;
  111 + $dbh = null;
  112 + if ($usuarios === false) {
  113 + header ( "HTTP/1.1 500 erro ao consultar banco de dados" );
  114 + exit();
  115 + }
  116 + retornaJSON ( array (
  117 + "grupo" => $grupo,
  118 + "usuarios" => $usuarios
  119 + ) );
  120 + break;
92 case "LISTA" : 121 case "LISTA" :
93 - $grupos = pegaDados ( "SELECT id_grupo,nome,descricao from ".$esquemaadmin."i3geousr_grupos order by nome", $dbh, false );  
94 - $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 );  
95 - if ($usuarios === false || $grupos === false) { 122 + $grupos = pegaDados ( "SELECT id_grupo,nome from ".$esquemaadmin."i3geousr_grupos order by nome", $dbh, false );
  123 + if ($grupos === false) {
96 $dbhw = null; 124 $dbhw = null;
97 $dbh = null; 125 $dbh = null;
98 header ( "HTTP/1.1 500 erro ao consultar banco de dados" ); 126 header ( "HTTP/1.1 500 erro ao consultar banco de dados" );
99 exit (); 127 exit ();
100 } 128 }
101 - $o = array ();  
102 - foreach ( $grupos as $grupo ) {  
103 - $p = array ();  
104 - foreach ( $usuarios as $usuario ) {  
105 - if ($usuario["id_grupo"] == $grupo["id_grupo"]) {  
106 - $p[$usuario["id_usuario"]] = $usuario;  
107 - }  
108 - }  
109 - $grupo["usuarios"] = $p;  
110 - $o[] = $grupo;  
111 - }  
112 - $usuarios = pegaDados ( "SELECT id_usuario, login, nome_usuario from " . $esquemaadmin . "i3geousr_usuarios WHERE ativo = 1 order by login", $dbh ); 129 + $usuarios = pegaDados ( "SELECT id_usuario, nome_usuario FROM ".$esquemaadmin."i3geousr_usuarios WHERE ativo = 1 ORDER BY nome_usuario", dbh, false );
113 $dbhw = null; 130 $dbhw = null;
114 $dbh = null; 131 $dbh = null;
115 if ($usuarios === false) { 132 if ($usuarios === false) {
116 header ( "HTTP/1.1 500 erro ao consultar banco de dados" ); 133 header ( "HTTP/1.1 500 erro ao consultar banco de dados" );
117 - exit(); 134 + exit ();
118 } 135 }
  136 +
119 retornaJSON ( array ( 137 retornaJSON ( array (
120 - "grupos" => $o, 138 + "grupos" => $grupos,
121 "usuarios" => $usuarios 139 "usuarios" => $usuarios
122 ) ); 140 ) );
123 break; 141 break;
@@ -196,9 +214,7 @@ function excluir($id_grupo, $dbhw) { @@ -196,9 +214,7 @@ function excluir($id_grupo, $dbhw) {
196 if ($resultado === false) { 214 if ($resultado === false) {
197 return false; 215 return false;
198 } 216 }
199 - if ($resultado === true) {  
200 - $resultado = excluirUsuarios ( $id_grupo, $dbhw );  
201 - } 217 + $resultado = excluirUsuarios ( $id_grupo, $dbhw );
202 return $resultado; 218 return $resultado;
203 } 219 }
204 function excluirUsuarios($id_grupo, $dbhw) { 220 function excluirUsuarios($id_grupo, $dbhw) {
admin1/usuarios/grupos/index.js
@@ -27,6 +27,8 @@ i3GEOadmin.gruposusuarios = { @@ -27,6 +27,8 @@ i3GEOadmin.gruposusuarios = {
27 ondeLista: "", 27 ondeLista: "",
28 //conteudo html do formulario de adicao de operacao 28 //conteudo html do formulario de adicao de operacao
29 formAdiciona: "", 29 formAdiciona: "",
  30 + //parametros obtidos do formulario de edicao antes de abrir o modal de confirmacao
  31 + parametrosSalvar: "",
30 init: function(onde){ 32 init: function(onde){
31 i3GEOadmin.gruposusuarios.ondeLista = onde; 33 i3GEOadmin.gruposusuarios.ondeLista = onde;
32 i3GEOadmin.gruposusuarios.lista(); 34 i3GEOadmin.gruposusuarios.lista();
@@ -51,7 +53,7 @@ Obtém a lista de grupos @@ -51,7 +53,7 @@ Obtém a lista de grupos
51 var templateUsuarios = $("#templateInputUsuarios").html(); 53 var templateUsuarios = $("#templateInputUsuarios").html();
52 //template do form de cada operacao 54 //template do form de cada operacao
53 var templateLista = $("#templateLista").html(); 55 var templateLista = $("#templateLista").html();
54 - templateLista = templateLista.replace("{{{templateFormLista}}}",$("#templateFormLista").html()); 56 + //templateLista = templateLista.replace("{{{templateFormLista}}}",$("#templateFormLista").html());
55 //lista todas as usuarios 57 //lista todas as usuarios
56 var html = Mustache.to_html( 58 var html = Mustache.to_html(
57 "{{#data}}" + templateLista + "{{/data}}", 59 "{{#data}}" + templateLista + "{{/data}}",
@@ -61,7 +63,7 @@ Obtém a lista de grupos @@ -61,7 +63,7 @@ Obtém a lista de grupos
61 { 63 {
62 "data": json["grupos"], 64 "data": json["grupos"],
63 "onExcluir": "i3GEOadmin.gruposusuarios.excluirDialogo",//funcao 65 "onExcluir": "i3GEOadmin.gruposusuarios.excluirDialogo",//funcao
64 - "onSalvar": "i3GEOadmin.gruposusuarios.salvarDialogo",//funcao 66 + "onEditar": "i3GEOadmin.gruposusuarios.editarDialogo",//funcao
65 "excluir": i3GEOadmin.gruposusuarios.dicionario.excluir, 67 "excluir": i3GEOadmin.gruposusuarios.dicionario.excluir,
66 "inputUsuarios": function(){ 68 "inputUsuarios": function(){
67 //marca os checkbox 69 //marca os checkbox
@@ -136,6 +138,59 @@ Obtém a lista de grupos @@ -136,6 +138,59 @@ Obtém a lista de grupos
136 i3GEOadmin.core.mostraErro(data.status + " " +data.statusText); 138 i3GEOadmin.core.mostraErro(data.status + " " +data.statusText);
137 }); 139 });
138 }, 140 },
  141 + editarDialogo: function(id){
  142 + i3GEOadmin.core.fechaModalGeral();
  143 + i3GEOadmin.core.modalAguarde(true);
  144 + $.post(
  145 + "exec.php?funcao=listaunico",
  146 + "id_grupo=" + id
  147 + )
  148 + .done(
  149 + function(data, status){
  150 + var json = jQuery.parseJSON(data);
  151 + var html = Mustache.to_html(
  152 + "{{#data}}" + $("#templateFormLista").html() + "{{/data}}",
  153 + $.extend(
  154 + {},
  155 + i3GEOadmin.gruposusuarios.dicionario,
  156 + {
  157 + "data": json["grupo"],
  158 + "onExcluir": "i3GEOadmin.gruposusuarios.excluirDialogo",//funcao
  159 + "onEditar": "i3GEOadmin.gruposusuarios.salvarDialogo",//funcao
  160 + "excluir": i3GEOadmin.gruposusuarios.dicionario.excluir,
  161 + "inputUsuarios": function(){
  162 + //marca os checkbox
  163 + var p = this.usuarios;
  164 + $(json["usuarios"]).each(
  165 + function(i,el){
  166 + if(p && el.id_usuario && p[el.id_usuario]){
  167 + json["usuarios"][i]["checked"] = "checked";
  168 + }
  169 + else{
  170 + json["usuarios"][i]["checked"] = "";
  171 + }
  172 + }
  173 + );
  174 + return Mustache.to_html(
  175 + "{{#data}}" + $("#templateInputUsuarios").html() + "{{/data}}",
  176 + {
  177 + "data":json["usuarios"]
  178 + }
  179 + );
  180 + }
  181 + }
  182 + )
  183 + );
  184 + i3GEOadmin.core.abreModalGeral(html);
  185 + }
  186 + )
  187 + .fail(
  188 + function(data){
  189 + i3GEOadmin.core.modalAguarde(false);
  190 + i3GEOadmin.core.mostraErro(data.status + " " +data.statusText);
  191 + }
  192 + );
  193 + },
139 adicionaDialogo: function(){ 194 adicionaDialogo: function(){
140 i3GEOadmin.core.abreModalGeral(i3GEOadmin.gruposusuarios.formAdiciona); 195 i3GEOadmin.core.abreModalGeral(i3GEOadmin.gruposusuarios.formAdiciona);
141 }, 196 },
@@ -193,17 +248,18 @@ Obtém a lista de grupos @@ -193,17 +248,18 @@ Obtém a lista de grupos
193 ); 248 );
194 }, 249 },
195 salvarDialogo: function(id){ 250 salvarDialogo: function(id){
  251 + i3GEOadmin.gruposusuarios.parametrosSalvar = $("#form-edicao-" + id).serialize();
196 var hash = { 252 var hash = {
197 "mensagem": i3GEOadmin.gruposusuarios.dicionario.confirma, 253 "mensagem": i3GEOadmin.gruposusuarios.dicionario.confirma,
198 "onBotao1": "i3GEOadmin.gruposusuarios.salvar('"+id+"')", 254 "onBotao1": "i3GEOadmin.gruposusuarios.salvar('"+id+"')",
199 "botao1": i3GEOadmin.gruposusuarios.dicionario.sim, 255 "botao1": i3GEOadmin.gruposusuarios.dicionario.sim,
200 - "onBotao2": "i3GEOadmin.core.fechaModalConfirma();", 256 + "onBotao2": "i3GEOadmin.gruposusuarios.parametrosSalvar = '';i3GEOadmin.core.fechaModalConfirma();",
201 "botao2": i3GEOadmin.gruposusuarios.dicionario.nao 257 "botao2": i3GEOadmin.gruposusuarios.dicionario.nao
202 }; 258 };
203 i3GEOadmin.core.abreModalConfirma(hash); 259 i3GEOadmin.core.abreModalConfirma(hash);
204 }, 260 },
205 salvar: function(id){ 261 salvar: function(id){
206 - var parametros = $("#form-" + id + " form").serialize(); 262 + var parametros = i3GEOadmin.gruposusuarios.parametrosSalvar;
207 i3GEOadmin.core.fechaModalGeral(); 263 i3GEOadmin.core.fechaModalGeral();
208 i3GEOadmin.core.modalAguarde(true); 264 i3GEOadmin.core.modalAguarde(true);
209 $.post( 265 $.post(
@@ -212,6 +268,7 @@ Obtém a lista de grupos @@ -212,6 +268,7 @@ Obtém a lista de grupos
212 ) 268 )
213 .done( 269 .done(
214 function(data, status){ 270 function(data, status){
  271 + i3GEOadmin.gruposusuarios.parametrosSalvar = "";
215 i3GEOadmin.core.modalAguarde(false); 272 i3GEOadmin.core.modalAguarde(false);
216 i3GEOadmin.core.iconeAguarde(i3GEOadmin.gruposusuarios.ondeLista); 273 i3GEOadmin.core.iconeAguarde(i3GEOadmin.gruposusuarios.ondeLista);
217 i3GEOadmin.gruposusuarios.lista(); 274 i3GEOadmin.gruposusuarios.lista();
@@ -219,6 +276,7 @@ Obtém a lista de grupos @@ -219,6 +276,7 @@ Obtém a lista de grupos
219 ) 276 )
220 .fail( 277 .fail(
221 function(data){ 278 function(data){
  279 + i3GEOadmin.gruposusuarios.parametrosSalvar = "";
222 i3GEOadmin.core.modalAguarde(false); 280 i3GEOadmin.core.modalAguarde(false);
223 i3GEOadmin.core.mostraErro(data.status + " " +data.statusText); 281 i3GEOadmin.core.mostraErro(data.status + " " +data.statusText);
224 } 282 }
admin1/usuarios/grupos/index.php
@@ -60,7 +60,7 @@ include "../../head.php"; @@ -60,7 +60,7 @@ include "../../head.php";
60 <option value="form-{{id_grupo}}">{{{nome}}}</option> 60 <option value="form-{{id_grupo}}">{{{nome}}}</option>
61 </script> 61 </script>
62 <script id="templateFormLista" type="x-tmpl-mustache"> 62 <script id="templateFormLista" type="x-tmpl-mustache">
63 -<form style="" action="#" onsubmit="{{onSalvar}}('{{id_grupo}}');return false;" onchange="this.style.boxShadow='2px 2px 5px 0 #009688';" class="form-horizontal" role="form" method="post" > 63 +<form id="form-edicao-{{id_grupo}}" style="" action="#" onsubmit="{{onSalvar}}('{{id_grupo}}');return false;" onchange="this.style.boxShadow='2px 2px 5px 0 #009688';" class="form-horizontal" role="form" method="post" >
64 <div class="row"> 64 <div class="row">
65 <div class="col-md-4" style="max-height: 230px; overflow-y: auto;"> 65 <div class="col-md-4" style="max-height: 230px; overflow-y: auto;">
66 <h4> {{{usuariosv}}}</h4> 66 <h4> {{{usuariosv}}}</h4>
@@ -89,15 +89,17 @@ include &quot;../../head.php&quot;; @@ -89,15 +89,17 @@ include &quot;../../head.php&quot;;
89 </form> 89 </form>
90 </script> 90 </script>
91 <script id="templateLista" type="x-tmpl-mustache"> 91 <script id="templateLista" type="x-tmpl-mustache">
92 -<div class="panel panel-default" id="form-{{id_grupo}}">  
93 - <div class="panel-heading icon" role="tab">  
94 - <h3 class="panel-title {{escondido}}">  
95 - <a href="javascript:void(0)" onclick="{{onExcluir}}('{{id_grupo}}')" class="btn btn-danger btn-fab btn-fab-mini" role="button">  
96 - <i class="material-icons">delete_forever</i> 92 +<div class="list-group-item" id="form-{{id_grupo}}">
  93 + <div class="row-content">
  94 + <h3 class="list-group-item-heading {{escondido}}">
  95 + {{{nome}}}
  96 + <a href="javascript:void(0)" onclick="{{onEditar}}('{{id_grupo}}')" class="btn btn-danger btn-fab btn-fab-mini pull-right" role="button" aria-expanded="false" >
  97 + <i class="material-icons md-18">edit</i>
  98 + </a>
  99 + <span class="pull-right">&nbsp;&nbsp;</span>
  100 + <a href="javascript:void(0)" onclick="{{onExcluir}}('{{id_grupo}}')" class="btn btn-danger btn-fab btn-fab-mini pull-right" role="button">
  101 + <i class="material-icons md-18">delete_forever</i>
97 </a> 102 </a>
98 - &nbsp;  
99 - <a class="collapsed in" role="button" data-toggle="collapse" href="#body-form-{{id_grupo}}"  
100 - aria-expanded="false" aria-controls="#body-form-{{id_grupo}}"> {{{nome}}} </a>  
101 </h3> 103 </h3>
102 </div> 104 </div>
103 <div class="panel-body panel-collapse collapse" id="body-form-{{id_grupo}}"> 105 <div class="panel-body panel-collapse collapse" id="body-form-{{id_grupo}}">
@@ -108,7 +110,7 @@ include &quot;../../head.php&quot;; @@ -108,7 +110,7 @@ include &quot;../../head.php&quot;;
108 <script id="templateInputUsuarios" type="x-tmpl-mustache"> 110 <script id="templateInputUsuarios" type="x-tmpl-mustache">
109 <div class="checkbox"> 111 <div class="checkbox">
110 <label> 112 <label>
111 - <input type="checkbox" {{checked}} name="id_usuario-{{{id_usuario}}}" /> <abbr title="{{{nome_usuario}}}">{{{login}}}</abbr> 113 + <input type="checkbox" {{checked}} name="id_usuario-{{{id_usuario}}}" /> <abbr title="{{{nome_usuario}}}">{{{nome_usuario}}}</abbr>
112 </label> 114 </label>
113 </div> 115 </div>
114 </script> 116 </script>