Commit 5824a28f056311eef858c64dcd3df86fdc7fcc1a

Authored by Edmar Moretti
1 parent 230ed882

Adaptação do editor de menus para bootstrap

admin1/cadastros/identifica/index.js
@@ -106,6 +106,7 @@ Obtém a lista de Identifica @@ -106,6 +106,7 @@ Obtém a lista de Identifica
106 i3GEOadmin.identifica.dicionario, 106 i3GEOadmin.identifica.dicionario,
107 { 107 {
108 "id_i": "modal", 108 "id_i": "modal",
  109 + "escondido": "hidden",
109 "excluir": i3GEOadmin.identifica.dicionario.cancelar, 110 "excluir": i3GEOadmin.identifica.dicionario.cancelar,
110 "onExcluir": "i3GEOadmin.core.fechaModalGeral",//funcao 111 "onExcluir": "i3GEOadmin.core.fechaModalGeral",//funcao
111 "onSalvar": "i3GEOadmin.identifica.adicionar",//funcao 112 "onSalvar": "i3GEOadmin.identifica.adicionar",//funcao
admin1/cadastros/identifica/index.php
@@ -61,7 +61,11 @@ include "../../head.php"; @@ -61,7 +61,11 @@ include "../../head.php";
61 <script id="templateLista" type="x-tmpl-mustache"> 61 <script id="templateLista" type="x-tmpl-mustache">
62 <div class="panel panel-default" id="form-{{id_i}}"> 62 <div class="panel panel-default" id="form-{{id_i}}">
63 <div class="panel-heading" role="tab"> 63 <div class="panel-heading" role="tab">
64 - <h3 class="panel-title"> 64 + <h3 class="panel-title {{escondido}}">
  65 + <a href="javascript:void(0)" onclick="{{onExcluir}}('{{id_i}}')" class="btn btn-danger btn-fab btn-fab-mini" role="button">
  66 + <i class="material-icons">delete_forever</i>
  67 + </a>
  68 + &nbsp;
65 <a class="collapsed in" role="button" data-toggle="collapse" href="#body-form-{{id_i}}" 69 <a class="collapsed in" role="button" data-toggle="collapse" href="#body-form-{{id_i}}"
66 aria-expanded="false" aria-controls="#body-form-{{id_i}}"> {{{nome_i}}} </a> 70 aria-expanded="false" aria-controls="#body-form-{{id_i}}"> {{{nome_i}}} </a>
67 </h3> 71 </h3>
admin1/cadastros/servicos/index.js
@@ -91,6 +91,7 @@ Obt&amp;eacute;m a lista de Webservices @@ -91,6 +91,7 @@ Obt&amp;eacute;m a lista de Webservices
91 i3GEOadmin.webservices.dicionario, 91 i3GEOadmin.webservices.dicionario,
92 { 92 {
93 "id_ws": "modal", 93 "id_ws": "modal",
  94 + "escondido": "hidden",
94 "excluir": i3GEOadmin.webservices.dicionario.cancelar, 95 "excluir": i3GEOadmin.webservices.dicionario.cancelar,
95 "onExcluir": "i3GEOadmin.core.fechaModalGeral",//funcao 96 "onExcluir": "i3GEOadmin.core.fechaModalGeral",//funcao
96 "onSalvar": "i3GEOadmin.webservices.adiciona",//funcao 97 "onSalvar": "i3GEOadmin.webservices.adiciona",//funcao
admin1/cadastros/servicos/index.php
@@ -61,7 +61,11 @@ include &quot;../../head.php&quot;; @@ -61,7 +61,11 @@ include &quot;../../head.php&quot;;
61 <script id="templateLista" type="x-tmpl-mustache"> 61 <script id="templateLista" type="x-tmpl-mustache">
62 <div class="panel panel-default" id="form-{{id_ws}}"> 62 <div class="panel panel-default" id="form-{{id_ws}}">
63 <div class="panel-heading" role="tab"> 63 <div class="panel-heading" role="tab">
64 - <h3 class="panel-title"> 64 + <h3 class="panel-title {{escondido}}">
  65 + <a href="javascript:void(0)" onclick="{{onExcluir}}('{{id_ws}}')" class="btn btn-danger btn-fab btn-fab-mini" role="button">
  66 + <i class="material-icons">delete_forever</i>
  67 + </a>
  68 + &nbsp;
65 <a class="collapsed in" role="button" data-toggle="collapse" href="#body-form-{{id_ws}}" 69 <a class="collapsed in" role="button" data-toggle="collapse" href="#body-form-{{id_ws}}"
66 aria-expanded="false" aria-controls="#body-form-{{id_ws}}"> {{{nome_ws}}} </a> 70 aria-expanded="false" aria-controls="#body-form-{{id_ws}}"> {{{nome_ws}}} </a>
67 </h3> 71 </h3>
admin1/cadastros/tags/index.php
@@ -66,7 +66,7 @@ include &quot;../../head.php&quot;; @@ -66,7 +66,7 @@ include &quot;../../head.php&quot;;
66 <form style="" onchange="this.style.boxShadow='2px 2px 5px 0 #009688';" class="form-horizontal" role="form" 66 <form style="" onchange="this.style.boxShadow='2px 2px 5px 0 #009688';" class="form-horizontal" role="form"
67 method="post" action=""> 67 method="post" action="">
68 <div class="form-group form-group-lg"> 68 <div class="form-group form-group-lg">
69 - <label class="col-md-2 control-label" for="nome">{{{txtTag}}}</label> 69 + <label class="col-md-2 control-label" for="nome">Tag</label>
70 <div class="col-md-10"> 70 <div class="col-md-10">
71 <input type="text" value="{{{nome}}}" class="form-control" name="nome" required> 71 <input type="text" value="{{{nome}}}" class="form-control" name="nome" required>
72 </div> 72 </div>
admin1/catalogo/mapas/index.js
@@ -49,12 +49,12 @@ Obt&amp;eacute;m a lista @@ -49,12 +49,12 @@ Obt&amp;eacute;m a lista
49 var json = jQuery.parseJSON(data); 49 var json = jQuery.parseJSON(data);
50 //template do form de cada operacao 50 //template do form de cada operacao
51 var templateLista = $("#templateLista").html(); 51 var templateLista = $("#templateLista").html();
52 - //combo com perfis 52 + //combo com temas
53 var opcoesTema = '<option value="">---</option>' + Mustache.to_html( 53 var opcoesTema = '<option value="">---</option>' + Mustache.to_html(
54 "{{#data}}" + $("#templateTemas").html() + "{{/data}}", 54 "{{#data}}" + $("#templateTemas").html() + "{{/data}}",
55 {"data":json["temas"]} 55 {"data":json["temas"]}
56 ); 56 );
57 - //combo com temas 57 + //combo com perfis
58 var opcoesPerfil = '<option value="">---</option>' + Mustache.to_html( 58 var opcoesPerfil = '<option value="">---</option>' + Mustache.to_html(
59 "{{#data}}" + $("#templateOpcoesPerfil").html() + "{{/data}}", 59 "{{#data}}" + $("#templateOpcoesPerfil").html() + "{{/data}}",
60 {"data":json["perfis"]} 60 {"data":json["perfis"]}
admin1/catalogo/menus/grupos/exec.php 0 → 100755
@@ -0,0 +1,156 @@ @@ -0,0 +1,156 @@
  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 + "ADICIONAR",
  33 + "ALTERAR",
  34 + "EXCLUIR"
  35 +);
  36 +if (in_array ( strtoupper ( $funcao ), $funcoesEdicao )) {
  37 + if (verificaOperacaoSessao ( "admin/html/arvore" ) === false) {
  38 + header ( "HTTP/1.1 403 Vc nao pode realizar essa operacao" );
  39 + exit ();
  40 + }
  41 +}
  42 +include (dirname ( __FILE__ ) . "/../../../../admin/php/conexao.php");
  43 +
  44 +$funcao = strtoupper ( $funcao );
  45 +switch ($funcao) {
  46 + case "ADICIONAR" :
  47 + $novo = adicionar( $id_atlas, $titulo_prancha, $ordem_prancha, $desc_prancha, $h_prancha, $icone_prancha, $link_prancha, $mapext_prancha, $w_prancha, $dbhw );
  48 + if ($novo === false) {
  49 + header ( "HTTP/1.1 500 erro ao consultar banco de dados" );
  50 + exit ();
  51 + }
  52 + exit ();
  53 + break;
  54 + case "ALTERAR" :
  55 + $novo = alterar ( $id_atlas, $id_prancha, $titulo_prancha, $ordem_prancha, $desc_prancha, $h_prancha, $icone_prancha, $link_prancha, $mapext_prancha, $w_prancha, $dbhw );
  56 + if ($novo === false) {
  57 + header ( "HTTP/1.1 500 erro ao consultar banco de dados" );
  58 + exit ();
  59 + }
  60 + $dados = pegaDados ( "SELECT id_prancha from ".$esquemaadmin."i3geoadmin_atlasp WHERE id_prancha = $id_prancha", $dbh, false );
  61 +
  62 + if ($dados === false) {
  63 + header ( "HTTP/1.1 500 erro ao consultar banco de dados" );
  64 + exit ();
  65 + }
  66 + $dbhw = null;
  67 + $dbh = null;
  68 + retornaJSON ( $dados );
  69 + exit ();
  70 + break;
  71 + case "LISTA" :
  72 + $perfis = pegaDados ( "SELECT id_perfil, perfil from ".$esquemaadmin."i3geoadmin_perfis order by perfil", $dbh, false );
  73 + $dbhw = null;
  74 + $dbh = null;
  75 + include($locaplic."/admin/php/classe_arvore.php");
  76 + $arvore = new Arvore($locaplic);
  77 + $grupos = $arvore->pegaGruposMenu($id_menu);
  78 + $temas = $arvore->pegaTodosTemas(true);
  79 + unset($arvore);
  80 + $grupos["perfis"] = $perfis;
  81 + $grupos["temas"] = $temas;
  82 + retornaJSON($grupos);
  83 + break;
  84 + case "EXCLUIR" :
  85 + $temas = pegaDados("SELECT id_tema from ".$esquemaadmin."i3geoadmin_atlast where id_prancha = '$id_prancha'");
  86 + if(count($temas) > 0){
  87 + header ( "HTTP/1.1 500 erro ao excluir. Exclua os temas da prancha primeiro" );
  88 + exit ();
  89 + }
  90 + $retorna = excluir ( $id_prancha, $dbhw );
  91 + $dbhw = null;
  92 + $dbh = null;
  93 + if ($retorna === false) {
  94 + header ( "HTTP/1.1 500 erro ao consultar banco de dados" );
  95 + exit ();
  96 + }
  97 + retornaJSON ( $id_prancha );
  98 + exit ();
  99 + break;
  100 +}
  101 +cpjson ( $retorno );
  102 +
  103 +function adicionar( $id_atlas, $titulo_prancha, $ordem_prancha, $desc_prancha, $h_prancha, $icone_prancha, $link_prancha, $mapext_prancha, $w_prancha, $dbhw) {
  104 + global $esquemaadmin;
  105 + try {
  106 + $dataCol = array(
  107 + "ordem_prancha"=>0,
  108 + "mapext_prancha"=>'',
  109 + "desc_prancha"=>'',
  110 + "h_prancha"=>$h_prancha == "" ? 0 : $h_prancha,
  111 + "w_prancha"=>$w_prancha == "" ? 0 : $w_prancha,
  112 + "icone_prancha"=>'',
  113 + "link_prancha"=>'',
  114 + "titulo_prancha"=>'',
  115 + "id_atlas"=>$id_atlas
  116 + );
  117 + $id_prancha = i3GeoAdminInsertUnico($dbhw,"i3geoadmin_atlasp",$dataCol,"titulo_prancha","id_prancha");
  118 + $retorna = alterar ( $id_atlas, $id_prancha, $titulo_prancha, $ordem_prancha, $desc_prancha, $h_prancha, $icone_prancha, $link_prancha, $mapext_prancha, $w_prancha, $dbhw );
  119 +
  120 + return $retorna;
  121 + } catch ( PDOException $e ) {
  122 + return false;
  123 + }
  124 +}
  125 +// $papeis deve ser um array
  126 +function alterar($id_atlas, $id_prancha, $titulo_prancha, $ordem_prancha, $desc_prancha, $h_prancha, $icone_prancha, $link_prancha, $mapext_prancha, $w_prancha, $dbhw) {
  127 + global $esquemaadmin;
  128 + if($convUTF){
  129 + $desc_prancha = utf8_encode($desc_prancha);
  130 + $titulo_prancha = utf8_encode($titulo_prancha);
  131 + }
  132 + $dataCol = array(
  133 + "ordem_prancha"=>$ordem_prancha,
  134 + "mapext_prancha"=>$mapext_prancha,
  135 + "desc_prancha"=>$desc_prancha,
  136 + "h_prancha"=>$h_prancha == "" ? 0 : $h_prancha,
  137 + "w_prancha"=>$w_prancha == "" ? 0 : $w_prancha,
  138 + "icone_prancha"=>$icone_prancha,
  139 + "link_prancha"=>$link_prancha,
  140 + "titulo_prancha"=>$titulo_prancha
  141 + );
  142 + $resultado = i3GeoAdminUpdate ( $dbhw, "i3geoadmin_atlasp", $dataCol, "WHERE id_prancha = $id_prancha AND id_atlas = $id_atlas" );
  143 + if ($resultado === false) {
  144 + return false;
  145 + }
  146 + return $id_atlas;
  147 +}
  148 +function excluir($id_prancha, $dbhw) {
  149 + global $esquemaadmin;
  150 + $resultado = i3GeoAdminExclui ( $esquemaadmin . "i3geoadmin_atlasp", "id_prancha", $id_prancha, $dbhw, false );
  151 + if ($resultado === false) {
  152 + return false;
  153 + }
  154 + return $resultado;
  155 +}
  156 +?>
admin1/catalogo/menus/grupos/index.js 0 → 100755
@@ -0,0 +1,244 @@ @@ -0,0 +1,244 @@
  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.grupos = {
  26 + id_menu: "",
  27 + ondeRaiz: "",
  28 + ondeNos: "",
  29 + //conteudo html do formulario de adicao na raiz
  30 + formAdicionaRaiz: "",
  31 + init: function(ondenos,onderaiz){
  32 + i3GEOadmin.grupos.ondeRaiz = onderaiz;
  33 + i3GEOadmin.grupos.ondeNos = ondenos;
  34 + i3GEOadmin.grupos.lista();
  35 + },
  36 + lista: function(){
  37 + i3GEOadmin.core.iconeAguarde(i3GEOadmin.grupos.ondeRaiz);
  38 + i3GEOadmin.core.iconeAguarde(i3GEOadmin.grupos.ondeNos);
  39 +
  40 + $.post(
  41 + "exec.php?funcao=lista&id_menu=" + i3GEOadmin.grupos.id_menu
  42 + )
  43 + .done(
  44 + function(data, status){
  45 + //objeto json com os dados viondos do banco
  46 + var json = jQuery.parseJSON(data);
  47 + //combo com perfis
  48 + var opcoesPerfil = '<option value="">---</option>' + Mustache.to_html(
  49 + "{{#data}}" + $("#templateOpcoesPerfil").html() + "{{/data}}",
  50 + {"data":json["perfis"]}
  51 + );
  52 + i3GEOadmin.grupos.listaRaiz(json["raiz"],opcoesPerfil,json["temas"]);
  53 + i3GEOadmin.grupos.listaNos(json["grupos"]);
  54 + $.material.init();
  55 + }
  56 + )
  57 + .fail(function(data){
  58 + i3GEOadmin.grupos.ondeRaiz.html("");
  59 + i3GEOadmin.grupos.ondeNos.html("");
  60 + i3GEOadmin.core.mostraErro(data.status + " " +data.statusText);
  61 + });
  62 + },
  63 + listaRaiz: function(dados,opcoesPerfil,temas){
  64 + var templateRaiz = $("#templateRaiz").html();
  65 + var html = Mustache.to_html(
  66 + "{{#data}}" + templateRaiz + "{{/data}}",
  67 + $.extend(
  68 + {},
  69 + i3GEOadmin.grupos.dicionario,
  70 + {
  71 + "data": dados,
  72 + "opcoesPerfil": opcoesPerfil,
  73 + "onExcluir": "i3GEOadmin.grupos.excluirTemaDialogo",//funcao
  74 + "onSalvar": "i3GEOadmin.grupos.salvarTemaDialogo",//funcao
  75 + "opcoesTema": function(){
  76 + var p = this.codigo_tema;
  77 + var id = "";
  78 + //marca o selecionado
  79 + $(temas).each(
  80 + function(i,el){
  81 + if(el.codigo_tema == p){
  82 + temas[i]["selected"] = "selected";
  83 + id = i;
  84 + }
  85 + else{
  86 + temas[i]["selected"] = "";
  87 + }
  88 + }
  89 + );
  90 + var html = '<option value="">---</option>' + Mustache.to_html(
  91 + "{{#data}}" + $("#templateOpcoesTema").html() + "{{/data}}",
  92 + {"data":temas}
  93 + );
  94 + //volta ao normal
  95 + temas[id]["selected"] = "";
  96 + return html;
  97 + }
  98 + }
  99 + )
  100 + );
  101 + i3GEOadmin.grupos.ondeRaiz.html(html);
  102 +
  103 + //monta um template para o modal de inclusao de novo tema
  104 + if(i3GEOadmin.grupos.formAdicionaRaiz == ""){
  105 + html = Mustache.to_html(
  106 + templateRaiz,
  107 + $.extend(
  108 + {},
  109 + i3GEOadmin.grupos.dicionario,
  110 + {
  111 + "id_raiz": "modal",
  112 + "escondido": "hidden",
  113 + "opcoesPerfil": opcoesPerfil,
  114 + "excluir": i3GEOadmin.grupos.dicionario.cancelar,
  115 + "onExcluir": "i3GEOadmin.core.fechaModalGeral",//funcao
  116 + "onSalvar": "i3GEOadmin.grupos.adicionaTemaRaiz",//funcao
  117 + "opcoesTema": function(){
  118 + var html = '<option value="">---</option>' + Mustache.to_html(
  119 + "{{#data}}" + $("#templateOpcoesTema").html() + "{{/data}}",
  120 + {"data":temas}
  121 + );
  122 + return html;
  123 + }
  124 + }
  125 + )
  126 + );
  127 + i3GEOadmin.grupos.formAdicionaRaiz = html;
  128 + }
  129 + },
  130 + listaNos: function(dados){
  131 + //valor do filtro atual
  132 + var filtro = i3GEOadmin.core.valorFiltro();
  133 + //filtro
  134 + html = Mustache.to_html(
  135 + "{{#data}}" + $("#templateFiltro").html() + "{{/data}}",
  136 + {"data":dados}
  137 + );
  138 + $("#filtro").html("<option value='' >Todos</option>" + html);
  139 + $("#filtro").combobox();
  140 + if(filtro != ""){
  141 + i3GEOadmin.core.defineFiltro(filtro);
  142 + i3GEOadmin.core.filtra(i3GEOadmin.grupos.pegaFiltro());
  143 + }
  144 + },
  145 + adicionaTemaDialogo: function(){
  146 + i3GEOadmin.core.abreModalGeral(i3GEOadmin.grupos.formAdicionaRaiz);
  147 + },
  148 +// os parametros sao obtidos do formulario aberto do modal
  149 + adicionaTemaRaiz: function(){
  150 + var parametros = $("#form-modal form").serialize();
  151 + i3GEOadmin.core.fechaModalGeral();
  152 + i3GEOadmin.core.modalAguarde(true);
  153 + $.post(
  154 + "exec.php?funcao=adicionar",
  155 + parametros + "&id_menu=" + i3GEOadmin.grupos.id_menu
  156 + )
  157 + .done(
  158 + function(data, status){
  159 + i3GEOadmin.core.modalAguarde(false);
  160 + i3GEOadmin.core.iconeAguarde(i3GEOadmin.grupos.ondeLista);
  161 + i3GEOadmin.grupos.lista();
  162 + }
  163 + )
  164 + .fail(
  165 + function(data){
  166 + i3GEOadmin.core.modalAguarde(false);
  167 + i3GEOadmin.core.mostraErro(data.status + " " +data.statusText);
  168 + }
  169 + );
  170 + },
  171 + excluirDialogo: function(id){
  172 + var hash = {
  173 + "mensagem": i3GEOadmin.grupos.dicionario.confirma,
  174 + "onBotao1": "i3GEOadmin.grupos.excluir('"+id+"')",
  175 + "botao1": i3GEOadmin.grupos.dicionario.sim,
  176 + "onBotao2": "i3GEOadmin.core.fechaModalConfirma();",
  177 + "botao2": i3GEOadmin.grupos.dicionario.nao
  178 + };
  179 + i3GEOadmin.core.abreModalConfirma(hash);
  180 + },
  181 + excluir: function(id){
  182 + i3GEOadmin.core.modalAguarde(true);
  183 + $.post(
  184 + "exec.php?funcao=excluir",
  185 + "id_grupos=" + id + "&id_menu=" + i3GEOadmin.grupos.id_menu
  186 + )
  187 + .done(
  188 + function(data, status){
  189 + i3GEOadmin.core.modalAguarde(false);
  190 + var json = jQuery.parseJSON(data)*1;
  191 + $("#form-" + json).remove();
  192 + }
  193 + )
  194 + .fail(
  195 + function(data){
  196 + i3GEOadmin.core.modalAguarde(false);
  197 + i3GEOadmin.core.mostraErro(data.status + " " +data.statusText);
  198 + }
  199 + );
  200 + },
  201 + salvarDialogo: function(id){
  202 + var hash = {
  203 + "mensagem": i3GEOadmin.grupos.dicionario.confirma,
  204 + "onBotao1": "i3GEOadmin.grupos.salvar('"+id+"')",
  205 + "botao1": i3GEOadmin.grupos.dicionario.sim,
  206 + "onBotao2": "i3GEOadmin.core.fechaModalConfirma();",
  207 + "botao2": i3GEOadmin.grupos.dicionario.nao
  208 + };
  209 + i3GEOadmin.core.abreModalConfirma(hash);
  210 + },
  211 + salvar: function(id){
  212 + var parametros = $("#form-" + id + " form").serialize();
  213 + i3GEOadmin.core.fechaModalGeral();
  214 + i3GEOadmin.core.modalAguarde(true);
  215 + $.post(
  216 + "exec.php?funcao=alterar",
  217 + "id_grupos="+ id + "&"+parametros + "&id_menu=" + i3GEOadmin.grupos.id_menu
  218 + )
  219 + .done(
  220 + function(data, status){
  221 + i3GEOadmin.core.modalAguarde(false);
  222 + i3GEOadmin.core.iconeAguarde(i3GEOadmin.grupos.ondeLista);
  223 + i3GEOadmin.grupos.lista();
  224 + }
  225 + )
  226 + .fail(
  227 + function(data){
  228 + i3GEOadmin.core.modalAguarde(false);
  229 + i3GEOadmin.core.mostraErro(data.status + " " +data.statusText);
  230 + }
  231 + );
  232 + },
  233 + editarTemas: function(id_menu, id_grupos,titulo_grupos){
  234 + //muda a url para que o usuario possa voltar pelo botao do navegador
  235 + var u = window.location.origin + window.location.pathname + "?id_menu=" + id_menu + "&id_filtro=" + id_grupos;
  236 + window.history.replaceState(null,null,u);
  237 + //abre a pagina de edicao
  238 + window.location.href = "temas/index.php?id_grupos=" + id_grupos + "&titulo_grupos=" + titulo_grupos + "&id_menu=" + id_menu;
  239 + },
  240 + addInput: function(id,valor){
  241 + var i = $("#"+id);
  242 + $(i.val(i.val() + ' ' + valor));
  243 + }
  244 +};
0 \ No newline at end of file 245 \ No newline at end of file
admin1/catalogo/menus/grupos/index.php 0 → 100755
@@ -0,0 +1,262 @@ @@ -0,0 +1,262 @@
  1 +<?php
  2 +define ( ONDEI3GEO, "../../../.." );
  3 +include (dirname ( __FILE__ ) . "/../../../../ms_configura.php");
  4 +error_reporting ( 0 );
  5 +include "../../../head.php";
  6 +$id_menu = filter_var ( $_GET ["id_menu"], FILTER_SANITIZE_NUMBER_INT );
  7 +$nome_menu = filter_var ( $_GET ["nome_menu"], FILTER_SANITIZE_STRING );
  8 +?>
  9 +<div class="container-fluid">
  10 + <div class="row">
  11 + <ol class="breadcrumb">
  12 + <li><a href="../../../init/index.php">i3Geo</a></li>
  13 + <li><a href="../../../index.php">Admin</a></li>
  14 + <li>Cat&aacute;logo</li>
  15 + <li><a href="../index.php">Menus</a></li>
  16 + <li><a href="../index.php?id_filtro=<?php echo $id_menu; ?>">Menu - <?php echo $nome_menu; ?></a></li>
  17 + <li class="active">Grupos</li>
  18 + </ol>
  19 + </div>
  20 +</div>
  21 +<div class="container" id="titulo">
  22 + <div class="row center-block">
  23 + <div class="col-md-12">
  24 + <div class="well hidden">
  25 + <button data-toggle="modal" data-target="#ajudaPrincipal"
  26 + class="btn btn-primary btn-fab btn-fab-mini pull-right">
  27 + <i class="material-icons">help</i>
  28 + </button>
  29 + <h3>{{{txtTitulo}}}</h3>
  30 + <h3><?php echo $nome_menu; ?></h3>
  31 + <!--<h4>{{{txtDesc}}}</h4>-->
  32 + <!-- aqui entra o filtro -->
  33 + <div class="form-group">
  34 + <label class="control-label">{{{filtro}}}</label> <select
  35 + onchange="i3GEOadmin.core.filtra(this)" id="filtro" class="form-control input-lg">
  36 + </select>
  37 + </div>
  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>{{{txtAjuda}}}</p>
  43 + </div>
  44 + </div>
  45 + </div>
  46 + </div>
  47 + </div>
  48 + <div class="well hidden">
  49 + <!-- painel para mostrar os temas na raiz -->
  50 + <h3>{{{temasRaizMenu}}}</h3>
  51 + <div id="raiz"></div>
  52 + <div class="row pull-right">
  53 + <a onclick="i3GEOadmin.grupos.adicionaTemaDialogo();" href="javascript:void(0)"
  54 + class="btn btn-primary" role="button">{{{adicionarTema}}}</a>
  55 + </div>
  56 + <div class="clearfix"></div>
  57 + </div>
  58 + <!-- nos -->
  59 + <div class="well hidden">
  60 + <h3>{{{grupos}}}</h3>
  61 + <div id="corpo"></div>
  62 + <div class="row pull-right">
  63 + <a onclick="i3GEOadmin.grupos.adicionaDialogo();" href="javascript:void(0)"
  64 + class="btn btn-primary" role="button">{{{adicionarGrupo}}}</a>
  65 + </div>
  66 + <div class="clearfix"></div>
  67 + </div>
  68 + </div>
  69 + </div>
  70 +</div>
  71 +<script id="templateFiltro" type="x-tmpl-mustache">
  72 +<option value="form-{{id_grupos}}">{{{titulo_grupos}}}</option>
  73 +</script>
  74 +<script id="templateRaiz" type="x-tmpl-mustache">
  75 +<div class="panel panel-default" id="formRaiz-{{id_raiz}}">
  76 + <div class="panel-heading {{escondido}}" role="tab">
  77 + <h3 class="panel-title">
  78 + <a href="javascript:void(0)" onclick="{{onExcluir}}('{{id_raiz}}')" class="btn btn-danger btn-fab btn-fab-mini" role="button">
  79 + <i class="material-icons">delete_forever</i>
  80 + </a>
  81 + &nbsp;
  82 + <a class="collapsed in" role="button" data-toggle="collapse" href="#body-formRaiz-{{id_raiz}}"
  83 + aria-expanded="false" aria-controls="#body-formRaiz-{{id_raiz}}"> {{{nome_tema}}} </a>
  84 + </h3>
  85 + </div>
  86 + <div class="panel-body panel-collapse collapse" id="body-formRaiz-{{id_raiz}}">
  87 + <form style="" onchange="this.style.boxShadow='2px 2px 5px 0 #009688';" class="form-horizontal" role="form" method="post" action="" >
  88 + <div class="row">
  89 + <div class="col-md-12">
  90 + <div class="form-group form-group-lg">
  91 + <label class="col-md-4 control-label" for="codigo_tema">{{{tema}}}</label>
  92 + <div class="col-md-8">
  93 + <select class="form-control" name="codigo_tema">
  94 + {{{opcoesTema}}}
  95 + </select>
  96 + </div>
  97 + </div>
  98 + <div class="form-group form-group-lg">
  99 + <label class="col-md-4 control-label" for="perfil">{{{perfis}}}</label>
  100 + <div class="col-md-4">
  101 + <input id="perfil_tema-{{id_raiz}}" type="text" value="{{{perfil}}}" class="form-control" name="perfil">
  102 + </div>
  103 + <div class="col-md-4">
  104 + <select class="form-control" onchange="i3GEOadmin.grupos.addInput('perfil_tema-{{id_raiz}}',this.value)">
  105 + {{{opcoesPerfil}}}
  106 + </select>
  107 + </div>
  108 + </div>
  109 + </div>
  110 + </div>
  111 + </form>
  112 + <div class="pull-right">
  113 + <a href="javascript:void(0)" onclick="{{onExcluir}}('{{id_raiz}}')" class="btn btn-danger" role="button">{{excluir}}</a>
  114 + <a href="javascript:void(0)" onclick="{{onSalvar}}('{{id_raiz}}')" class="btn btn-primary" role="button">{{salvar}}</a>
  115 + </div>
  116 + </div>
  117 +</div>
  118 +</script>
  119 +<script id="templateOpcoesTema" type="x-tmpl-mustache">
  120 + <option {{{selected}}} value="{{{codigo_tema}}}">{{{nome_tema}}} - {{{codigo_tema}}}</option>
  121 +</script>
  122 +<script id="templateOpcoesPerfil" type="x-tmpl-mustache">
  123 + <option value="{{{perfil}}}">{{{perfil}}}</option>
  124 +</script>
  125 +<script id="templateLista" type="x-tmpl-mustache">
  126 +<div class="panel panel-default" id="form-{{id_grupos}}">
  127 + <div class="panel-heading" role="tab">
  128 + <h3 class="panel-title">
  129 + <a class="collapsed in" role="button" data-toggle="collapse" href="#body-form-{{id_grupos}}"
  130 + aria-expanded="false" aria-controls="#body-form-{{id_grupos}}"> {{{titulo_grupos}}} </a>
  131 + </h3>
  132 + </div>
  133 + <div class="panel-body panel-collapse collapse" id="body-form-{{id_grupos}}">
  134 + <form style="" onchange="this.style.boxShadow='2px 2px 5px 0 #009688';" class="form-horizontal" role="form" method="post" action="" >
  135 + <div class="row">
  136 + <div class="col-md-12">
  137 + <div class="form-group form-group-lg">
  138 + <label class="col-md-4 control-label" for="titulo_grupos" >{{{titulo}}}</label>
  139 + <div class="col-md-8">
  140 + <input type="text" value="{{{titulo_grupos}}}" class="form-control" name="titulo_grupos" required>
  141 + </div>
  142 + </div>
  143 + </div>
  144 + <div class="col-md-12">
  145 + <div class="form-group form-group-lg">
  146 + <label class="col-md-4 control-label" for="desc_grupos" >{{{descricao}}}</label>
  147 + <div class="col-md-8">
  148 + <input type="text" value="{{{desc_grupos}}}" class="form-control" name="desc_grupos" required>
  149 + </div>
  150 + </div>
  151 + </div>
  152 + <div class="col-md-12">
  153 + <div class="form-group form-group-lg">
  154 + <label class="col-md-4 control-label" for="link_grupos" >{{{linkTxt}}}</label>
  155 + <div class="col-md-8">
  156 + <input type="text" value="{{{link_grupos}}}" class="form-control" name="link_grupos" required>
  157 + </div>
  158 + </div>
  159 + </div>
  160 + <div class="col-md-12">
  161 + <div class="form-group form-group-lg">
  162 + <label class="col-md-4 control-label" for="ordem_grupos" >{{{ordem}}}</label>
  163 + <div class="col-md-8">
  164 + <input type="text" value="{{{ordem_grupos}}}" class="form-control" name="ordem_grupos" required>
  165 + </div>
  166 + </div>
  167 + </div>
  168 + <div class="col-md-12">
  169 + <div class="form-group form-group-lg">
  170 + <label class="col-md-4 control-label" for="h_grupos" >{{{altura}}}</label>
  171 + <div class="col-md-8">
  172 + <input type="text" value="{{{h_grupos}}}" class="form-control" name="h_grupos" required>
  173 + </div>
  174 + </div>
  175 + </div>
  176 + <div class="col-md-12">
  177 + <div class="form-group form-group-lg">
  178 + <label class="col-md-4 control-label" for="w_grupos" >{{{largura}}}</label>
  179 + <div class="col-md-8">
  180 + <input type="text" value="{{{w_grupos}}}" class="form-control" name="w_grupos" required>
  181 + </div>
  182 + </div>
  183 + </div>
  184 + <div class="col-md-12">
  185 + <div class="form-group form-group-lg">
  186 + <label class="col-md-4 control-label" for="icone_grupos" >{{{icone}}}</label>
  187 + <div class="col-md-8">
  188 + <input type="text" value="{{{icone_grupos}}}" class="form-control" name="icone_grupos" required>
  189 + </div>
  190 + </div>
  191 + </div>
  192 + <div class="col-md-12">
  193 + <div class="form-group form-group-lg">
  194 + <label class="col-md-4 control-label" for="mapext_grupos" >{{{extGeo}}}</label>
  195 + <div class="col-md-8">
  196 + <input type="text" value="{{{mapext_grupos}}}" class="form-control" name="mapext_grupos" required>
  197 + </div>
  198 + </div>
  199 + </div>
  200 +
  201 + </div>
  202 + </form>
  203 + <div class="pull-right">
  204 + <a href="javascript:void(0)" onclick="i3GEOadmin.grupos.editarTemas('{{id_menu}}','{{id_grupos}}','{{{titulo_grupos}}}')" class="btn btn-default" role="button">{{{editarTema}}}</a>
  205 + <a href="javascript:void(0)" onclick="{{onExcluir}}('{{id_grupos}}')" class="btn btn-danger" role="button">{{excluir}}</a>
  206 + <a href="javascript:void(0)" onclick="{{onSalvar}}('{{id_grupos}}')" class="btn btn-primary" role="button">{{salvar}}</a>
  207 + </div>
  208 + </div>
  209 +</div>
  210 +</script>
  211 +<script type="text/javascript" src="index.js"></script>
  212 +<script type="text/javascript" src="../../../dicionario/grupos.js"></script>
  213 +<script>
  214 + $(document).ready(function(){
  215 + //vem de admin1/index.js
  216 + iniciaMenuPrincipal();
  217 + $('ul.dropdown-menu [data-toggle=dropdown]').on('click', function(event) {
  218 + event.preventDefault();
  219 + event.stopPropagation();
  220 + $(this).parent().siblings().removeClass('open');
  221 + $(this).parent().toggleClass('open');
  222 + });
  223 + //traducao
  224 + var t = $("#titulo");
  225 + //complementa dicionario
  226 + i3GEOadmin.grupos.dicionario.adicionar = i3GEOadmin.core.dicionario.adicionar;
  227 + i3GEOadmin.grupos.dicionario.filtro = i3GEOadmin.core.dicionario.filtro;
  228 + i3GEOadmin.grupos.dicionario.excluir = i3GEOadmin.core.dicionario.excluir;
  229 + i3GEOadmin.grupos.dicionario.salvar = i3GEOadmin.core.dicionario.salva;
  230 + i3GEOadmin.grupos.dicionario.cancelar = i3GEOadmin.core.dicionario.cancelar;
  231 + i3GEOadmin.grupos.dicionario.confirma = i3GEOadmin.core.dicionario.confirma;
  232 + i3GEOadmin.grupos.dicionario.nome = i3GEOadmin.core.dicionario.nome;
  233 + i3GEOadmin.grupos.dicionario.tipo = i3GEOadmin.core.dicionario.tipo;
  234 + i3GEOadmin.grupos.dicionario.descricao = i3GEOadmin.core.dicionario.descricao;
  235 + i3GEOadmin.grupos.dicionario.sim = i3GEOadmin.core.dicionario.sim;
  236 + i3GEOadmin.grupos.dicionario.nao = i3GEOadmin.core.dicionario.nao;
  237 + i3GEOadmin.grupos.dicionario.grupo = i3GEOadmin.core.dicionario.grupo;
  238 + i3GEOadmin.grupos.dicionario.grupos = i3GEOadmin.core.dicionario.grupos;
  239 + i3GEOadmin.grupos.dicionario.adicionarTema = i3GEOadmin.core.dicionario.adicionarTema;
  240 + i3GEOadmin.grupos.dicionario.tema = i3GEOadmin.core.dicionario.tema;
  241 +
  242 + i3GEOadmin.core.dicionario = null;
  243 +
  244 + i3GEOadmin.grupos.dicionario = i3GEO.idioma.objetoIdioma(i3GEOadmin.grupos.dicionario);
  245 +
  246 + t.html(
  247 + Mustache.to_html(
  248 + t.html(),
  249 + i3GEOadmin.grupos.dicionario
  250 + )
  251 + );
  252 + $.material.init();
  253 + i3GEOadmin.grupos.id_menu = <?php echo $id_menu; ?>;
  254 + var inicia = function() {
  255 + $(".hidden").removeClass('hidden');
  256 + i3GEOadmin.grupos.init($("#corpo"),$("#raiz"));
  257 + };
  258 + i3GEO.login.verificaOperacao("admin/html/arvore",i3GEO.configura.locaplic, inicia, "sessao");
  259 + });
  260 +</script>
  261 +</body>
  262 +</html>
admin1/catalogo/menus/index.js
@@ -98,7 +98,7 @@ Obt&amp;eacute;m a lista de menus @@ -98,7 +98,7 @@ Obt&amp;eacute;m a lista de menus
98 $("#filtro").combobox(); 98 $("#filtro").combobox();
99 if(filtro != ""){ 99 if(filtro != ""){
100 i3GEOadmin.core.defineFiltro(filtro); 100 i3GEOadmin.core.defineFiltro(filtro);
101 - i3GEOadmin.core.filtra(i3GEOadmin.menus.pegaFiltro()); 101 + i3GEOadmin.core.filtra(i3GEOadmin.core.pegaFiltro());
102 } 102 }
103 //monta um template para o modal de inclusao de novo usuario 103 //monta um template para o modal de inclusao de novo usuario
104 if(i3GEOadmin.menus.formAdiciona == ""){ 104 if(i3GEOadmin.menus.formAdiciona == ""){
@@ -235,5 +235,12 @@ Obt&amp;eacute;m a lista de menus @@ -235,5 +235,12 @@ Obt&amp;eacute;m a lista de menus
235 addPerfil: function(id,valor){ 235 addPerfil: function(id,valor){
236 var i = $("#"+id); 236 var i = $("#"+id);
237 $(i.val(i.val() + ' ' + valor)); 237 $(i.val(i.val() + ' ' + valor));
  238 + },
  239 + editarGrupos: function (id_menu,nome_menu){
  240 + //muda a url para que o usuario possa voltar pelo botao do navegador
  241 + var u = window.location.origin + window.location.pathname + "?id_filtro=" + id_menu;
  242 + window.history.replaceState(null,null,u);
  243 + //abre a pagina de edicao
  244 + window.location.href = "grupos/index.php?id_menu=" + id_menu + "&nome_menu=" + nome_menu;
238 } 245 }
239 }; 246 };
240 \ No newline at end of file 247 \ No newline at end of file
admin1/catalogo/menus/index.php
@@ -23,15 +23,16 @@ include &quot;../../head.php&quot;; @@ -23,15 +23,16 @@ include &quot;../../head.php&quot;;
23 <i class="material-icons">help</i> 23 <i class="material-icons">help</i>
24 </button> 24 </button>
25 <h3>{{{txtTitulo}}}</h3> 25 <h3>{{{txtTitulo}}}</h3>
26 - <!--<h4>{{{txtDesc}}}</h4>--> 26 + <h4>{{{txtDesc}}}</h4>
27 <!-- aqui entra o filtro --> 27 <!-- aqui entra o filtro -->
28 <div class="form-group"> 28 <div class="form-group">
29 - <label class="control-label">{{{filtro}}}</label>  
30 - <select onchange="i3GEOadmin.core.filtra(this)" id="filtro" class="form-control input-lg"> 29 + <label class="control-label">{{{filtro}}}</label> <select
  30 + onchange="i3GEOadmin.core.filtra(this)" id="filtro" class="form-control input-lg">
31 </select> 31 </select>
32 </div> 32 </div>
33 <div class="row pull-right"> 33 <div class="row pull-right">
34 - <a onclick="i3GEOadmin.menus.adicionaDialogo();" href="javascript:void(0)" class="btn btn-primary" role="button">{{{adicionar}}}</a> 34 + <a onclick="i3GEOadmin.menus.adicionaDialogo();" href="javascript:void(0)"
  35 + class="btn btn-primary" role="button">{{{adicionar}}}</a>
35 </div> 36 </div>
36 <div class="clearfix"></div> 37 <div class="clearfix"></div>
37 <div id="ajudaPrincipal" class="modal fade" tabindex="-1"> 38 <div id="ajudaPrincipal" class="modal fade" tabindex="-1">
@@ -45,8 +46,7 @@ include &quot;../../head.php&quot;; @@ -45,8 +46,7 @@ include &quot;../../head.php&quot;;
45 </div> 46 </div>
46 </div> 47 </div>
47 <div class="well hidden"> 48 <div class="well hidden">
48 - <div id="corpo">  
49 - </div> 49 + <div id="corpo"></div>
50 </div> 50 </div>
51 </div> 51 </div>
52 </div> 52 </div>
@@ -58,17 +58,21 @@ include &quot;../../head.php&quot;; @@ -58,17 +58,21 @@ include &quot;../../head.php&quot;;
58 <div class="panel panel-default" id="form-{{id_menu}}"> 58 <div class="panel panel-default" id="form-{{id_menu}}">
59 <div class="panel-heading" role="tab"> 59 <div class="panel-heading" role="tab">
60 <h3 class="panel-title"> 60 <h3 class="panel-title">
  61 + <a href="javascript:void(0)" onclick="{{onExcluir}}('{{id_menu}}')" class="btn btn-danger btn-fab btn-fab-mini" role="button">
  62 + <i class="material-icons">delete_forever</i>
  63 + </a>
  64 + &nbsp;
61 <a class="collapsed in" role="button" data-toggle="collapse" href="#body-form-{{id_menu}}" 65 <a class="collapsed in" role="button" data-toggle="collapse" href="#body-form-{{id_menu}}"
62 - aria-expanded="false" aria-controls="#body-form-{{id_menu}}"> {{{nome_menu}}} </a> 66 + aria-expanded="false" aria-controls="#body-form-{{id_menu}}"> Menu: {{{nome_menu}}} </a>
63 </h3> 67 </h3>
64 </div> 68 </div>
65 <div class="panel-body panel-collapse collapse" id="body-form-{{id_menu}}"> 69 <div class="panel-body panel-collapse collapse" id="body-form-{{id_menu}}">
66 - <form style="" onchange="this.style.boxShadow='2px 2px 5px 0 #009688';" class="form-horizontal" role="form" method="post" action="" > 70 + <form style="" onchange="this.style.boxShadow='2px 2px 5px 0 #009688';" class="form-horizontal"
  71 + role="form" method="post" action="">
67 <div class="row"> 72 <div class="row">
68 <div class="col-md-12"> 73 <div class="col-md-12">
69 - <h4>{{{nome_menu}}}</h4>  
70 <div class="form-group form-group-lg"> 74 <div class="form-group form-group-lg">
71 - <label class="col-md-3 control-label" for="nome_menu" >{{{nomeMenu}}}</label> 75 + <label class="col-md-3 control-label" for="nome_menu">{{{nomeMenu}}}</label>
72 <div class="col-md-9"> 76 <div class="col-md-9">
73 <input type="text" value="{{{nome_menu}}}" class="form-control" name="nome_menu" required> 77 <input type="text" value="{{{nome_menu}}}" class="form-control" name="nome_menu" required>
74 </div> 78 </div>
@@ -76,7 +80,7 @@ include &quot;../../head.php&quot;; @@ -76,7 +80,7 @@ include &quot;../../head.php&quot;;
76 <div class="form-group form-group-lg"> 80 <div class="form-group form-group-lg">
77 <label class="col-md-3 control-label" for="es">{{{nomeEs}}}</label> 81 <label class="col-md-3 control-label" for="es">{{{nomeEs}}}</label>
78 <div class="col-md-9"> 82 <div class="col-md-9">
79 - <input type="text" value="{{{es}}}" class="form-control" name="es" > 83 + <input type="text" value="{{{es}}}" class="form-control" name="es">
80 </div> 84 </div>
81 </div> 85 </div>
82 <div class="form-group form-group-lg"> 86 <div class="form-group form-group-lg">
@@ -95,11 +99,12 @@ include &quot;../../head.php&quot;; @@ -95,11 +99,12 @@ include &quot;../../head.php&quot;;
95 <div class="form-group form-group-lg"> 99 <div class="form-group form-group-lg">
96 <label class="col-md-3 control-label" for="perfil_menu">{{{perfilAjuda}}}</label> 100 <label class="col-md-3 control-label" for="perfil_menu">{{{perfilAjuda}}}</label>
97 <div class="col-md-5"> 101 <div class="col-md-5">
98 - <input id="perfil-{{id_menu}}" type="text" value="{{{perfil_menu}}}" class="form-control" name="perfil_menu"> 102 + <input id="perfil-{{id_menu}}" type="text" value="{{{perfil_menu}}}" class="form-control"
  103 + name="perfil_menu">
99 </div> 104 </div>
100 <div class="col-md-4"> 105 <div class="col-md-4">
101 - <select class="form-control" onchange="i3GEOadmin.menus.addPerfil('perfil-{{id_menu}}',this.value)">  
102 - {{{opcoesPerfil}}} 106 + <select class="form-control"
  107 + onchange="i3GEOadmin.menus.addPerfil('perfil-{{id_menu}}',this.value)"> {{{opcoesPerfil}}}
103 </select> 108 </select>
104 </div> 109 </div>
105 </div> 110 </div>
@@ -107,16 +112,14 @@ include &quot;../../head.php&quot;; @@ -107,16 +112,14 @@ include &quot;../../head.php&quot;;
107 <div class="form-group form-group-lg"> 112 <div class="form-group form-group-lg">
108 <label class="col-md-3 control-label" for="publicado_menu">{{{publicado}}}</label> 113 <label class="col-md-3 control-label" for="publicado_menu">{{{publicado}}}</label>
109 <div class="col-md-9"> 114 <div class="col-md-9">
110 - <select name="publicado_menu" class="form-control">  
111 - {{{opcoesPublicado}}} 115 + <select name="publicado_menu" class="form-control"> {{{opcoesPublicado}}}
112 </select> 116 </select>
113 </div> 117 </div>
114 </div> 118 </div>
115 <div class="form-group form-group-lg"> 119 <div class="form-group form-group-lg">
116 <label class="col-md-3 control-label" for="aberto">{{{iniciaAberto}}}</label> 120 <label class="col-md-3 control-label" for="aberto">{{{iniciaAberto}}}</label>
117 <div class="col-md-9"> 121 <div class="col-md-9">
118 - <select name="aberto" class="form-control">  
119 - {{{opcoesAberto}}} 122 + <select name="aberto" class="form-control"> {{{opcoesAberto}}}
120 </select> 123 </select>
121 </div> 124 </div>
122 </div> 125 </div>
@@ -124,10 +127,19 @@ include &quot;../../head.php&quot;; @@ -124,10 +127,19 @@ include &quot;../../head.php&quot;;
124 </div> 127 </div>
125 </form> 128 </form>
126 <div class="pull-right"> 129 <div class="pull-right">
127 - <a href="javascript:void(0)" onclick="{{onExcluir}}('{{id_menu}}')" class="btn btn-danger" role="button">{{excluir}}</a>  
128 - <a href="javascript:void(0)" onclick="{{onSalvar}}('{{id_menu}}')" class="btn btn-primary" role="button">{{salvar}}</a> 130 + <a href="javascript:void(0)" onclick="{{onExcluir}}('{{id_menu}}')" class="btn btn-danger"
  131 + role="button">{{excluir}}</a> <a href="javascript:void(0)" onclick="{{onSalvar}}('{{id_menu}}')"
  132 + class="btn btn-primary" role="button">{{salvar}}</a>
129 </div> 133 </div>
130 </div> 134 </div>
  135 +<div class="panel-footer" style="padding-top: 0px; padding-bottom: 0px;">
  136 + <div class="pull-right">
  137 + <button onclick="i3GEOadmin.menus.editarGrupos('{{id_menu}}','{{{nome_menu}}}')" class="btn btn-primary btn-xs" style="margin-top: 2px; margin-bottom: 2px;">
  138 + <i class="material-icons">folder_open</i> {{{grupos}}}
  139 + </button>
  140 + </div>
  141 + <div class="clearfix"></div>
  142 +</div>
131 </div> 143 </div>
132 </script> 144 </script>
133 <script id="templateOpcoesPerfil" type="x-tmpl-mustache"> 145 <script id="templateOpcoesPerfil" type="x-tmpl-mustache">
@@ -169,6 +181,7 @@ include &quot;../../head.php&quot;; @@ -169,6 +181,7 @@ include &quot;../../head.php&quot;;
169 i3GEOadmin.menus.dicionario.descricao = i3GEOadmin.core.dicionario.descricao; 181 i3GEOadmin.menus.dicionario.descricao = i3GEOadmin.core.dicionario.descricao;
170 i3GEOadmin.menus.dicionario.sim = i3GEOadmin.core.dicionario.sim; 182 i3GEOadmin.menus.dicionario.sim = i3GEOadmin.core.dicionario.sim;
171 i3GEOadmin.menus.dicionario.nao = i3GEOadmin.core.dicionario.nao; 183 i3GEOadmin.menus.dicionario.nao = i3GEOadmin.core.dicionario.nao;
  184 + i3GEOadmin.menus.dicionario.grupos = i3GEOadmin.core.dicionario.grupos;
172 185
173 i3GEOadmin.core.dicionario = null; 186 i3GEOadmin.core.dicionario = null;
174 187
@@ -182,6 +195,11 @@ include &quot;../../head.php&quot;; @@ -182,6 +195,11 @@ include &quot;../../head.php&quot;;
182 ); 195 );
183 $.material.init(); 196 $.material.init();
184 var inicia = function() { 197 var inicia = function() {
  198 + //verifica se foi enviado um parametro de filtro pela url
  199 + var f = "<?php echo filter_var($_GET["id_filtro"], FILTER_SANITIZE_NUMBER_INT); ?>";
  200 + if(f != ""){
  201 + i3GEOadmin.core.initFiltro = "form-" + f;
  202 + }
185 $(".hidden").removeClass('hidden'); 203 $(".hidden").removeClass('hidden');
186 i3GEOadmin.menus.init($("#corpo")); 204 i3GEOadmin.menus.init($("#corpo"));
187 }; 205 };
admin1/dicionario/core.js
@@ -260,6 +260,11 @@ i3GEOadmin.core.dicionario = { @@ -260,6 +260,11 @@ i3GEOadmin.core.dicionario = {
260 en : "", 260 en : "",
261 es : "" 261 es : ""
262 } ], 262 } ],
  263 + 'grupos' : [ {
  264 + pt : "Grupos",
  265 + en : "",
  266 + es : ""
  267 + } ],
263 'gravaId' : [ { 268 'gravaId' : [ {
264 pt : " gravando o registro do id= ", 269 pt : " gravando o registro do id= ",
265 en : "", 270 en : "",
@@ -375,18 +380,18 @@ i3GEOadmin.core.dicionario = { @@ -375,18 +380,18 @@ i3GEOadmin.core.dicionario = {
375 en : "", 380 en : "",
376 es : "" 381 es : ""
377 } ], 382 } ],
378 - '' : [ {  
379 - pt : "", 383 + 'temasRaiz' : [ {
  384 + pt : "Temas na raiz",
380 en : "", 385 en : "",
381 es : "" 386 es : ""
382 } ], 387 } ],
383 - '' : [ {  
384 - pt : "", 388 + 'adicionarTema' : [ {
  389 + pt : "Adicionar um tema",
385 en : "", 390 en : "",
386 es : "" 391 es : ""
387 } ], 392 } ],
388 - '' : [ {  
389 - pt : "", 393 + 'tema' : [ {
  394 + pt : "Tema",
390 en : "", 395 en : "",
391 es : "" 396 es : ""
392 } ], 397 } ],
admin1/dicionario/grupos.js
@@ -31,18 +31,23 @@ i3GEOadmin.grupos.dicionario = { @@ -31,18 +31,23 @@ i3GEOadmin.grupos.dicionario = {
31 en : "", 31 en : "",
32 es : "" 32 es : ""
33 } ], 33 } ],
34 - '' : [ {  
35 - pt : "", 34 + 'adicionarGrupo' : [ {
  35 + pt : "Adicionar um grupo",
36 en : "", 36 en : "",
37 es : "" 37 es : ""
38 } ], 38 } ],
39 - '' : [ {  
40 - pt : "", 39 + 'temasRaizMenu' : [ {
  40 + pt : "Temas na raiz do menu",
41 en : "", 41 en : "",
42 es : "" 42 es : ""
43 } ], 43 } ],
44 - '' : [ {  
45 - pt : "", 44 + 'txtAjuda' : [ {
  45 + pt : "Utilize as op&ccedil;&otilde;es para incluir, adicionar ou alterar os temas existentes na raiz do menu. O menu pode tamb&eacute;m conter grupos, que por sua vez tamb&eacute;m podem conter temas e subgrupos.",
  46 + en : "",
  47 + es : ""
  48 + } ],
  49 + 'perfis' : [ {
  50 + pt : "Perfis que podem ver a camada. Separe por espa&ccedil;os e escolha da lista ao lado.",
46 en : "", 51 en : "",
47 es : "" 52 es : ""
48 } ] 53 } ]
admin1/dicionario/menus.js
@@ -105,8 +105,8 @@ i3GEOadmin.menus.dicionario = { @@ -105,8 +105,8 @@ i3GEOadmin.menus.dicionario = {
105 en : "", 105 en : "",
106 es : "" 106 es : ""
107 } ], 107 } ],
108 - '' : [ {  
109 - pt : "", 108 + 'txtDesc' : [ {
  109 + pt : "Utilize o bot&atilde;o 'Grupos' para editar os temas existentes na raiz do menu e os seus grupos.",
110 en : "", 110 en : "",
111 es : "" 111 es : ""
112 } ], 112 } ],
admin1/usuarios/cadastro/index.js
@@ -124,6 +124,7 @@ Obt&amp;eacute;m a lista de usuarios @@ -124,6 +124,7 @@ Obt&amp;eacute;m a lista de usuarios
124 i3GEOadmin.usuarios.dicionario, 124 i3GEOadmin.usuarios.dicionario,
125 { 125 {
126 "id_usuario": "modal", 126 "id_usuario": "modal",
  127 + "escondido": "hidden",
127 "excluir": i3GEOadmin.usuarios.dicionario.cancelar, 128 "excluir": i3GEOadmin.usuarios.dicionario.cancelar,
128 "onExcluir": "i3GEOadmin.core.fechaModalGeral",//funcao 129 "onExcluir": "i3GEOadmin.core.fechaModalGeral",//funcao
129 "onSalvar": "i3GEOadmin.usuarios.adiciona",//funcao 130 "onSalvar": "i3GEOadmin.usuarios.adiciona",//funcao
admin1/usuarios/cadastro/index.php
@@ -58,7 +58,11 @@ include &quot;../../head.php&quot;; @@ -58,7 +58,11 @@ include &quot;../../head.php&quot;;
58 <script id="templateLista" type="x-tmpl-mustache"> 58 <script id="templateLista" type="x-tmpl-mustache">
59 <div class="panel panel-default" id="form-{{id_usuario}}"> 59 <div class="panel panel-default" id="form-{{id_usuario}}">
60 <div class="panel-heading" role="tab"> 60 <div class="panel-heading" role="tab">
61 - <h3 class="panel-title"> 61 + <h3 class="panel-title {{escondido}}">
  62 + <a href="javascript:void(0)" onclick="{{onExcluir}}('{{id_usuario}}')" class="btn btn-danger btn-fab btn-fab-mini" role="button">
  63 + <i class="material-icons">delete_forever</i>
  64 + </a>
  65 + &nbsp;
62 <a class="collapsed in" role="button" data-toggle="collapse" href="#body-form-{{id_usuario}}" 66 <a class="collapsed in" role="button" data-toggle="collapse" href="#body-form-{{id_usuario}}"
63 aria-expanded="false" aria-controls="#body-form-{{id_usuario}}"> {{{nome_usuario}}} </a> 67 aria-expanded="false" aria-controls="#body-form-{{id_usuario}}"> {{{nome_usuario}}} </a>
64 </h3> 68 </h3>
admin1/usuarios/grupos/index.js
@@ -106,6 +106,7 @@ Obt&amp;eacute;m a lista de grupos @@ -106,6 +106,7 @@ Obt&amp;eacute;m a lista de grupos
106 i3GEOadmin.gruposusuarios.dicionario, 106 i3GEOadmin.gruposusuarios.dicionario,
107 { 107 {
108 "id_grupo": "modal", 108 "id_grupo": "modal",
  109 + "escondido": "hidden",
109 "excluir": i3GEOadmin.gruposusuarios.dicionario.cancelar, 110 "excluir": i3GEOadmin.gruposusuarios.dicionario.cancelar,
110 "onExcluir": "i3GEOadmin.core.fechaModalGeral",//funcao 111 "onExcluir": "i3GEOadmin.core.fechaModalGeral",//funcao
111 "onSalvar": "i3GEOadmin.gruposusuarios.adiciona",//funcao 112 "onSalvar": "i3GEOadmin.gruposusuarios.adiciona",//funcao
admin1/usuarios/grupos/index.php
@@ -62,7 +62,11 @@ include &quot;../../head.php&quot;; @@ -62,7 +62,11 @@ include &quot;../../head.php&quot;;
62 <script id="templateLista" type="x-tmpl-mustache"> 62 <script id="templateLista" type="x-tmpl-mustache">
63 <div class="panel panel-default" id="form-{{id_grupo}}"> 63 <div class="panel panel-default" id="form-{{id_grupo}}">
64 <div class="panel-heading" role="tab"> 64 <div class="panel-heading" role="tab">
65 - <h3 class="panel-title"> 65 + <h3 class="panel-title {{escondido}}">
  66 + <a href="javascript:void(0)" onclick="{{onExcluir}}('{{id_grupo}}')" class="btn btn-danger btn-fab btn-fab-mini" role="button">
  67 + <i class="material-icons">delete_forever</i>
  68 + </a>
  69 + &nbsp;
66 <a class="collapsed in" role="button" data-toggle="collapse" href="#body-form-{{id_grupo}}" 70 <a class="collapsed in" role="button" data-toggle="collapse" href="#body-form-{{id_grupo}}"
67 aria-expanded="false" aria-controls="#body-form-{{id_grupo}}"> {{{nome}}} </a> 71 aria-expanded="false" aria-controls="#body-form-{{id_grupo}}"> {{{nome}}} </a>
68 </h3> 72 </h3>
admin1/usuarios/operacoes/index.js
@@ -119,6 +119,7 @@ Obt&amp;eacute;m a lista de operacoes @@ -119,6 +119,7 @@ Obt&amp;eacute;m a lista de operacoes
119 "excluir": i3GEOadmin.operacoes.dicionario.cancela, 119 "excluir": i3GEOadmin.operacoes.dicionario.cancela,
120 "codigo": "", 120 "codigo": "",
121 "id_operacao": "modal", 121 "id_operacao": "modal",
  122 + "escondido": "hidden",
122 "descricao": "", 123 "descricao": "",
123 "inputPapeis": function(){ 124 "inputPapeis": function(){
124 return Mustache.to_html( 125 return Mustache.to_html(
admin1/usuarios/operacoes/index.php
@@ -58,7 +58,11 @@ include &quot;../../head.php&quot;; @@ -58,7 +58,11 @@ include &quot;../../head.php&quot;;
58 <script id="templateLista" type="x-tmpl-mustache"> 58 <script id="templateLista" type="x-tmpl-mustache">
59 <div class="panel panel-default" id="form-{{id_operacao}}"> 59 <div class="panel panel-default" id="form-{{id_operacao}}">
60 <div class="panel-heading" role="tab"> 60 <div class="panel-heading" role="tab">
61 - <h3 class="panel-title"> 61 + <h3 class="panel-title {{escondido}}">
  62 + <a href="javascript:void(0)" onclick="{{onExcluir}}('{{id_operacao}}')" class="btn btn-danger btn-fab btn-fab-mini" role="button">
  63 + <i class="material-icons">delete_forever</i>
  64 + </a>
  65 + &nbsp;
62 <a class="collapsed in" role="button" data-toggle="collapse" href="#body-form-{{id_operacao}}" 66 <a class="collapsed in" role="button" data-toggle="collapse" href="#body-form-{{id_operacao}}"
63 aria-expanded="false" aria-controls="#body-form-{{id_operacao}}"> {{{codigo}}} </a> 67 aria-expanded="false" aria-controls="#body-form-{{id_operacao}}"> {{{codigo}}} </a>
64 </h3> 68 </h3>