From cb25f94c4758873463ef2be1b2cba18fe51d96f3 Mon Sep 17 00:00:00 2001 From: edmarmoretti Date: Sat, 9 Jul 2016 10:55:00 -0300 Subject: [PATCH] Adaptação do formulário de cadastro de usuários para uso do bootstrap --- admin/admin.db | Bin 335872 -> 0 bytes admin/html/usuarios_.html | 98 -------------------------------------------------------------------------------------------------- admin/php/admin.php | 4 ++-- admin1/dicionario/usuarios.js | 16 ++++++++-------- admin1/usuarios/cadastro/exec.php | 217 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ admin1/usuarios/cadastro/index.js | 255 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ admin1/usuarios/cadastro/index.php | 129 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---- admin1/usuarios/operacoes/exec.php | 1 - admin1/usuarios/operacoes/index.js | 2 +- 9 files changed, 608 insertions(+), 114 deletions(-) delete mode 100755 admin/html/usuarios_.html create mode 100755 admin1/usuarios/cadastro/exec.php create mode 100755 admin1/usuarios/cadastro/index.js diff --git a/admin/admin.db b/admin/admin.db index dcfd7c2..f4051eb 100755 Binary files a/admin/admin.db and b/admin/admin.db differ diff --git a/admin/html/usuarios_.html b/admin/html/usuarios_.html deleted file mode 100755 index defafb0..0000000 --- a/admin/html/usuarios_.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - -Usuarios - - - - - - - - -
-
-

- {{{usuarios}}} -

- {{{txtUsuarios}}} - -
-
- - diff --git a/admin/php/admin.php b/admin/php/admin.php index d44b774..279fc13 100755 --- a/admin/php/admin.php +++ b/admin/php/admin.php @@ -206,7 +206,7 @@ function pegaDados($sql,$dbh="",$close=true) function i3GeoAdminUpdate($pdo,$tabela,$data,$filtro=""){ global $esquemaadmin; $keys = array_keys($data); - $sset = array(); + $sset = array(); foreach($keys as $k){ $sset[] = $k."=?"; } @@ -217,7 +217,7 @@ function i3GeoAdminUpdate($pdo,$tabela,$data,$filtro=""){ } catch (PDOException $e) { return "Error!: "; } - try { + try { $exec = $prep->execute(array_values($data)); i3GeoAdminInsertLog($pdo,$sql,array_values($data)); return true; diff --git a/admin1/dicionario/usuarios.js b/admin1/dicionario/usuarios.js index 0ec1aab..d84a658 100755 --- a/admin1/dicionario/usuarios.js +++ b/admin1/dicionario/usuarios.js @@ -101,23 +101,23 @@ i3GEOadmin.usuarios.dicionario = { en : "", es : "" } ], - '' : [ { - pt : "", + 'papeisv' : [ { + pt : "Papéis vinculados", en : "", es : "" } ], - '' : [ { - pt : "", + 'nome' : [ { + pt : "Nome", en : "", es : "" } ], - '' : [ { - pt : "", + 'sim' : [ { + pt : "Sim", en : "", es : "" } ], - '' : [ { - pt : "", + 'nao' : [ { + pt : "Não", en : "", es : "" } ], diff --git a/admin1/usuarios/cadastro/exec.php b/admin1/usuarios/cadastro/exec.php new file mode 100755 index 0000000..44aaab6 --- /dev/null +++ b/admin1/usuarios/cadastro/exec.php @@ -0,0 +1,217 @@ + $o, + "papeis" => $papeis + ) ); + break; + case "EXCLUIRUSUARIO" : + $retorna = excluirUsuario ( $id_usuario, $dbhw ); + $dbhw = null; + $dbh = null; + if ($retorna == false) { + header ( "HTTP/1.1 500 erro ao consultar banco de dados" ); + exit (); + } + retornaJSON ( $id_usuario ); + exit (); + break; +} +cpjson ( $retorno ); +// $papeis deve ser um array +function adicionarUsuario($ativo, $data_cadastro, $email, $login, $nome_usuario, $senha, $papeis, $dbhw) { + global $esquemaadmin; + try { + $dataCol = array( + "nome_usuario" => '', + "login" => '', + "email" => '', + "ativo" => 0, + "data_cadastro" => '', + "senha" => '' + ); + $id_usuario = i3GeoAdminInsertUnico ( $dbhw, "i3geousr_usuarios", $dataCol, "nome_usuario", "id_usuario" ); + $retorna = alterarUsuario ( $id_usuario, $ativo, $data_cadastro, $email, $login, $nome_usuario, $senha, $papeis, $dbhw ); + return $retorna; + } catch ( PDOException $e ) { + return false; + } +} +// $papeis deve ser um array +function alterarUsuario($id_usuario, $ativo, $data_cadastro, $email, $login, $nome_usuario, $senha, $papeis, $dbhw) { + global $esquemaadmin; + if ($convUTF) { + $nome_usuario = utf8_encode ( $nome_usuario ); + } + $dataCol = array ( + "nome_usuario" => $nome_usuario, + "login" => $login, + "email" => $email, + "ativo" => $ativo, + "data_cadastro" => $data_cadastro + ); + + // se a senha foi enviada, ela sera trocada + if ($senha != "") { + $dataCol ["senha"] = md5 ( $senha ); + } + $resultado = i3GeoAdminUpdate ( $dbhw, "i3geousr_usuarios", $dataCol, "WHERE id_usuario = $id_usuario" ); + if ($resultado == false) { + return false; + } + // apaga todos os papeis + $resultado = excluirPapeisUsuario ( $id_usuario, $dbhw ); + if ($resultado == false) { + return false; + } + if (! empty ( $papeis )) { + // atualiza papeis vinculados + foreach ( $papeis as $p ) { + $resultado = adicionaPapelUsuario ( $id_usuario, $p, $dbhw ); + if ($resultado == false) { + return false; + } + } + } + return $id_usuario; +} +function adicionaPapelUsuario($id_usuario, $id_papel, $dbhw) { + global $esquemaadmin; + $dataCol = array ( + "id_usuario" => $id_usuario, + "id_papel" => $id_papel + ); + $resultado = i3GeoAdminInsert ( $dbhw, "i3geousr_papelusuario", $dataCol ); + return $resultado; +} +function excluirUsuario($id_usuario, $dbhw) { + global $esquemaadmin; + $resultado = exclui ( $esquemaadmin . "i3geousr_usuarios", "id_usuario", $id_usuario, $dbhw, false ); + if ($resultado == false) { + return false; + } + if ($resultado == true) { + $resultado = excluirPapeisUsuario ( $id_usuario, $dbhw ); + } + return $resultado; +} +function excluirPapeisUsuario($id_usuario, $dbhw) { + global $esquemaadmin; + $resultado = exclui ( $esquemaadmin . "i3geousr_papelusuario", "id_usuario", $id_usuario, $dbhw, false ); + return $resultado; +} +?> diff --git a/admin1/usuarios/cadastro/index.js b/admin1/usuarios/cadastro/index.js new file mode 100755 index 0000000..7036e88 --- /dev/null +++ b/admin1/usuarios/cadastro/index.js @@ -0,0 +1,255 @@ +/* +Licenca: + +GPL2 + +i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet + +Direitos Autorais Reservados (c) 2006 Ministério do Meio Ambiente Brasil +Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com + +Este programa é software livre; você pode redistribuí-lo +e/ou modificá-lo sob os termos da Licença Pública Geral +GNU conforme publicada pela Free Software Foundation; + +Este programa é distribuído na expectativa de que seja útil, +porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita +de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. +Consulte a Licença Pública Geral do GNU para mais detalhes. +Você deve ter recebido uma cópia da Licença Pública Geral do +GNU junto com este programa; se não, escreva para a +Free Software Foundation, Inc., no endereço +59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. + + */ + +function init(onde){ + //variavel global indicando o elemento que recebera a lista de usuarios + ondeListaUsuarios = onde; + //conteudo html do formulario de adicao de operacao + formAdicionaUsuario = ""; + pegaUsuarios(); +} +/* +Function: pegaUsuarios + +Obtém a lista de usuarios + */ +function pegaUsuarios(){ + iconeAguarde(ondeListaUsuarios); + $.post( + "exec.php?funcao=pegaUsuariosEpapeis" + ) + .done( + function(data, status){ + //objeto json com os dados viondos do banco + var json = jQuery.parseJSON(data); + //template dos checkbox + var templatePapeis = $("#templateInputPapeis").html(); + //template do form de cada operacao + var templateUsuarios = $("#templateUsuarios").html(); + //lista todas as usuarios + var html = Mustache.to_html( + "{{#data}}" + templateUsuarios + "{{/data}}", + { + "data": json["usuarios"], + "excluir": $trad("excluir",i3GEOadmin.core.dicionario), + "onExcluir": "excluirUsuarioDialogo",//funcao + "salvar": $trad("salva",i3GEOadmin.core.dicionario), + "onSalvar": "salvarUsuarioDialogo",//funcao + "enviaSenha": $trad("enviaSenha",i3GEOadmin.usuarios.dicionario), + "usuario": $trad("usuario",i3GEOadmin.usuarios.dicionario), + "nome": $trad("nome",i3GEOadmin.usuarios.dicionario), + "labelDataCadastro": $trad("dataCadastro",i3GEOadmin.usuarios.dicionario), + "labelAtivo": $trad("ativo",i3GEOadmin.usuarios.dicionario), + "labelNovaSenha": $trad("novaSenha",i3GEOadmin.usuarios.dicionario), + "papeisv": $trad("papeisv",i3GEOadmin.usuarios.dicionario), + "sim": $trad("sim",i3GEOadmin.usuarios.dicionario), + "nao": $trad("nao",i3GEOadmin.usuarios.dicionario), + "selAtivoSim": function(){ + var p = this.ativo; + if(p == "0"){ + return ""; + } else { + return "selected"; + } + }, + "selAtivoNao": function(){ + var p = this.ativo; + if(p == "0"){ + return "selected"; + } else { + return ""; + } + }, + "inputPapeis": function(){ + //marca os checkbox + var p = this.papeis; + $(json["papeis"]).each( + function(i,el){ + if(p && el.id_papel && (p[el.id_papel] || el.id_papel == 1)){ + json["papeis"][i]["checked"] = "checked"; + } + else{ + json["papeis"][i]["checked"] = ""; + } + } + ); + return Mustache.to_html( + "{{#data}}" + templatePapeis + "{{/data}}", + { + "data":json["papeis"] + } + ); + } + } + ); + ondeListaUsuarios.html(html); + //filtro + html = Mustache.to_html( + "{{#data}}" + $("#templateFiltro").html() + "{{/data}}", + {"data":json["usuarios"]} + ); + $("#filtro").html("" + html); + + //monta um template para o modal de inclusao de novo usuario + html = Mustache.to_html( + $("#templateUsuarios").html(), + { + "id_usuario": "modal", + "excluir": $trad("cancelar",i3GEOadmin.core.dicionario), + "onExcluir": "fechaModalGeral",//funcao + "salvar": $trad("salva",i3GEOadmin.core.dicionario), + "onSalvar": "adicionaUsuario",//funcao + "usuario": $trad("usuario",i3GEOadmin.usuarios.dicionario), + "nome": $trad("nome",i3GEOadmin.usuarios.dicionario), + "labelDataCadastro": $trad("dataCadastro",i3GEOadmin.usuarios.dicionario), + "labelAtivo": $trad("ativo",i3GEOadmin.usuarios.dicionario), + "labelNovaSenha": $trad("novaSenha",i3GEOadmin.usuarios.dicionario), + "papeisv": $trad("papeisv",i3GEOadmin.usuarios.dicionario), + "sim": $trad("sim",i3GEOadmin.usuarios.dicionario), + "nao": $trad("nao",i3GEOadmin.usuarios.dicionario), + "inputPapeis": function(){ + return Mustache.to_html( + "{{#data}}" + $("#templateInputPapeis").html() + "{{/data}}", + { + "data":json["papeis"] + } + ); + } + } + ); + formAdicionaUsuario = html; + $.material.init(); + } + ) + .fail(function(data){ + ondeListaUsuarios.html(""); + mostraErro(data.status + " " +data.statusText); + }); +} +function adicionaUsuarioDialogo(){ + abreModalGeral(formAdicionaUsuario); +} + +//os parametros sao obtidos do formulario aberto do modal + +function adicionaUsuario(){ + var parametros = $("#form-modal form").serialize(); + fechaModalGeral(); + modalAguarde(true); + $.post( + "exec.php?funcao=adicionarUsuario", + parametros + ) + .done( + function(data, status){ + modalAguarde(false); + iconeAguarde(ondeListaUsuarios); + pegaUsuarios(); + } + ) + .fail( + function(data){ + modalAguarde(false); + mostraErro(data.status + " " +data.statusText); + } + ); +} +function excluirUsuarioDialogo(id_usuario){ + var hash = { + "mensagem": $trad("confirma",i3GEOadmin.core.dicionario), + "onBotao1": "excluirUsuario('"+id_usuario+"')", + "botao1": $trad("sim",i3GEOadmin.core.dicionario), + "onBotao2": "fechaModalConfirma();", + "botao2": $trad("nao",i3GEOadmin.core.dicionario) + }; + abreModalConfirma(hash); +} +function excluirUsuario(id_usuario){ + modalAguarde(true); + $.post( + "exec.php?funcao=excluirUsuario", + "id_usuario="+id_usuario + ) + .done( + function(data, status){ + modalAguarde(false); + var json = jQuery.parseJSON(data)*1; + $("#form-" + json).remove(); + } + ) + .fail( + function(data){ + modalAguarde(false); + mostraErro(data.status + " " +data.statusText); + } + ); +} +function salvarUsuarioDialogo(id_usuario){ + var hash = { + "mensagem": $trad("confirma",i3GEOadmin.core.dicionario), + "onBotao1": "salvarUsuario('"+id_usuario+"')", + "botao1": $trad("sim",i3GEOadmin.core.dicionario), + "onBotao2": "fechaModalConfirma();", + "botao2": $trad("nao",i3GEOadmin.core.dicionario) + }; + abreModalConfirma(hash); +} +function salvarUsuario(id_usuario){ + var parametros = $("#form-" + id_usuario + " form").serialize(); + fechaModalGeral(); + modalAguarde(true); + $.post( + "exec.php?funcao=alterarUsuario", + "id_usuario="+ id_usuario+"&"+parametros + ) + .done( + function(data, status){ + modalAguarde(false); + iconeAguarde(ondeListaUsuarios); + pegaUsuarios(); + } + ) + .fail( + function(data){ + modalAguarde(false); + mostraErro(data.status + " " +data.statusText); + } + ); +} +function filtra(obj,id){ + $("#" + id + " .panel").each( + function(i,el){ + if(obj.value == ""){ + $(el).show(); + } + else { + $(el).hide(); + } + } + ); + if(obj.value != ""){ + $("#"+obj.value).show(); + } +} diff --git a/admin1/usuarios/cadastro/index.php b/admin1/usuarios/cadastro/index.php index 9be7995..63b5efc 100755 --- a/admin1/usuarios/cadastro/index.php +++ b/admin1/usuarios/cadastro/index.php @@ -13,13 +13,118 @@ include "../../head.php";
  • Cadastro
  • - -
    -
    - +
    +
    +
    + + +
    +
    + + + + + diff --git a/admin1/usuarios/operacoes/exec.php b/admin1/usuarios/operacoes/exec.php index 16ea2e9..4041018 100755 --- a/admin1/usuarios/operacoes/exec.php +++ b/admin1/usuarios/operacoes/exec.php @@ -97,7 +97,6 @@ switch ($funcao) exit; } $o = array(); - $resultado = array(); foreach ($operacoes as $operacao){ //pega os papeis registrados para cada operacao $p = array(); diff --git a/admin1/usuarios/operacoes/index.js b/admin1/usuarios/operacoes/index.js index 40b6e4e..d6373a0 100755 --- a/admin1/usuarios/operacoes/index.js +++ b/admin1/usuarios/operacoes/index.js @@ -70,7 +70,7 @@ function pegaOperacoes(){ var p = this.papeis; $(json["papeis"]).each( function(i,el){ - if(p[el.id_papel] || el.id_papel == 1){ + if(p && el.id_papel && (p[el.id_papel] || el.id_papel == 1)){ json["papeis"][i]["checked"] = "checked"; } else{ -- libgit2 0.21.2