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 106 i3GEOadmin.identifica.dicionario,
107 107 {
108 108 "id_i": "modal",
  109 + "escondido": "hidden",
109 110 "excluir": i3GEOadmin.identifica.dicionario.cancelar,
110 111 "onExcluir": "i3GEOadmin.core.fechaModalGeral",//funcao
111 112 "onSalvar": "i3GEOadmin.identifica.adicionar",//funcao
... ...
admin1/cadastros/identifica/index.php
... ... @@ -61,7 +61,11 @@ include "../../head.php";
61 61 <script id="templateLista" type="x-tmpl-mustache">
62 62 <div class="panel panel-default" id="form-{{id_i}}">
63 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 69 <a class="collapsed in" role="button" data-toggle="collapse" href="#body-form-{{id_i}}"
66 70 aria-expanded="false" aria-controls="#body-form-{{id_i}}"> {{{nome_i}}} </a>
67 71 </h3>
... ...
admin1/cadastros/servicos/index.js
... ... @@ -91,6 +91,7 @@ Obt&amp;eacute;m a lista de Webservices
91 91 i3GEOadmin.webservices.dicionario,
92 92 {
93 93 "id_ws": "modal",
  94 + "escondido": "hidden",
94 95 "excluir": i3GEOadmin.webservices.dicionario.cancelar,
95 96 "onExcluir": "i3GEOadmin.core.fechaModalGeral",//funcao
96 97 "onSalvar": "i3GEOadmin.webservices.adiciona",//funcao
... ...
admin1/cadastros/servicos/index.php
... ... @@ -61,7 +61,11 @@ include &quot;../../head.php&quot;;
61 61 <script id="templateLista" type="x-tmpl-mustache">
62 62 <div class="panel panel-default" id="form-{{id_ws}}">
63 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 69 <a class="collapsed in" role="button" data-toggle="collapse" href="#body-form-{{id_ws}}"
66 70 aria-expanded="false" aria-controls="#body-form-{{id_ws}}"> {{{nome_ws}}} </a>
67 71 </h3>
... ...
admin1/cadastros/tags/index.php
... ... @@ -66,7 +66,7 @@ include &quot;../../head.php&quot;;
66 66 <form style="" onchange="this.style.boxShadow='2px 2px 5px 0 #009688';" class="form-horizontal" role="form"
67 67 method="post" action="">
68 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 70 <div class="col-md-10">
71 71 <input type="text" value="{{{nome}}}" class="form-control" name="nome" required>
72 72 </div>
... ...
admin1/catalogo/mapas/index.js
... ... @@ -49,12 +49,12 @@ Obt&amp;eacute;m a lista
49 49 var json = jQuery.parseJSON(data);
50 50 //template do form de cada operacao
51 51 var templateLista = $("#templateLista").html();
52   - //combo com perfis
  52 + //combo com temas
53 53 var opcoesTema = '<option value="">---</option>' + Mustache.to_html(
54 54 "{{#data}}" + $("#templateTemas").html() + "{{/data}}",
55 55 {"data":json["temas"]}
56 56 );
57   - //combo com temas
  57 + //combo com perfis
58 58 var opcoesPerfil = '<option value="">---</option>' + Mustache.to_html(
59 59 "{{#data}}" + $("#templateOpcoesPerfil").html() + "{{/data}}",
60 60 {"data":json["perfis"]}
... ...
admin1/catalogo/menus/grupos/exec.php 0 → 100755
... ... @@ -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 @@
  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 245 \ No newline at end of file
... ...
admin1/catalogo/menus/grupos/index.php 0 → 100755
... ... @@ -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 98 $("#filtro").combobox();
99 99 if(filtro != ""){
100 100 i3GEOadmin.core.defineFiltro(filtro);
101   - i3GEOadmin.core.filtra(i3GEOadmin.menus.pegaFiltro());
  101 + i3GEOadmin.core.filtra(i3GEOadmin.core.pegaFiltro());
102 102 }
103 103 //monta um template para o modal de inclusao de novo usuario
104 104 if(i3GEOadmin.menus.formAdiciona == ""){
... ... @@ -235,5 +235,12 @@ Obt&amp;eacute;m a lista de menus
235 235 addPerfil: function(id,valor){
236 236 var i = $("#"+id);
237 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 247 \ No newline at end of file
... ...
admin1/catalogo/menus/index.php
... ... @@ -23,15 +23,16 @@ include &quot;../../head.php&quot;;
23 23 <i class="material-icons">help</i>
24 24 </button>
25 25 <h3>{{{txtTitulo}}}</h3>
26   - <!--<h4>{{{txtDesc}}}</h4>-->
  26 + <h4>{{{txtDesc}}}</h4>
27 27 <!-- aqui entra o filtro -->
28 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 31 </select>
32 32 </div>
33 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 36 </div>
36 37 <div class="clearfix"></div>
37 38 <div id="ajudaPrincipal" class="modal fade" tabindex="-1">
... ... @@ -45,8 +46,7 @@ include &quot;../../head.php&quot;;
45 46 </div>
46 47 </div>
47 48 <div class="well hidden">
48   - <div id="corpo">
49   - </div>
  49 + <div id="corpo"></div>
50 50 </div>
51 51 </div>
52 52 </div>
... ... @@ -58,17 +58,21 @@ include &quot;../../head.php&quot;;
58 58 <div class="panel panel-default" id="form-{{id_menu}}">
59 59 <div class="panel-heading" role="tab">
60 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 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 67 </h3>
64 68 </div>
65 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 72 <div class="row">
68 73 <div class="col-md-12">
69   - <h4>{{{nome_menu}}}</h4>
70 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 76 <div class="col-md-9">
73 77 <input type="text" value="{{{nome_menu}}}" class="form-control" name="nome_menu" required>
74 78 </div>
... ... @@ -76,7 +80,7 @@ include &quot;../../head.php&quot;;
76 80 <div class="form-group form-group-lg">
77 81 <label class="col-md-3 control-label" for="es">{{{nomeEs}}}</label>
78 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 84 </div>
81 85 </div>
82 86 <div class="form-group form-group-lg">
... ... @@ -95,11 +99,12 @@ include &quot;../../head.php&quot;;
95 99 <div class="form-group form-group-lg">
96 100 <label class="col-md-3 control-label" for="perfil_menu">{{{perfilAjuda}}}</label>
97 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 104 </div>
100 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 108 </select>
104 109 </div>
105 110 </div>
... ... @@ -107,16 +112,14 @@ include &quot;../../head.php&quot;;
107 112 <div class="form-group form-group-lg">
108 113 <label class="col-md-3 control-label" for="publicado_menu">{{{publicado}}}</label>
109 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 116 </select>
113 117 </div>
114 118 </div>
115 119 <div class="form-group form-group-lg">
116 120 <label class="col-md-3 control-label" for="aberto">{{{iniciaAberto}}}</label>
117 121 <div class="col-md-9">
118   - <select name="aberto" class="form-control">
119   - {{{opcoesAberto}}}
  122 + <select name="aberto" class="form-control"> {{{opcoesAberto}}}
120 123 </select>
121 124 </div>
122 125 </div>
... ... @@ -124,10 +127,19 @@ include &quot;../../head.php&quot;;
124 127 </div>
125 128 </form>
126 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 133 </div>
130 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 143 </div>
132 144 </script>
133 145 <script id="templateOpcoesPerfil" type="x-tmpl-mustache">
... ... @@ -169,6 +181,7 @@ include &quot;../../head.php&quot;;
169 181 i3GEOadmin.menus.dicionario.descricao = i3GEOadmin.core.dicionario.descricao;
170 182 i3GEOadmin.menus.dicionario.sim = i3GEOadmin.core.dicionario.sim;
171 183 i3GEOadmin.menus.dicionario.nao = i3GEOadmin.core.dicionario.nao;
  184 + i3GEOadmin.menus.dicionario.grupos = i3GEOadmin.core.dicionario.grupos;
172 185  
173 186 i3GEOadmin.core.dicionario = null;
174 187  
... ... @@ -182,6 +195,11 @@ include &quot;../../head.php&quot;;
182 195 );
183 196 $.material.init();
184 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 203 $(".hidden").removeClass('hidden');
186 204 i3GEOadmin.menus.init($("#corpo"));
187 205 };
... ...
admin1/dicionario/core.js
... ... @@ -260,6 +260,11 @@ i3GEOadmin.core.dicionario = {
260 260 en : "",
261 261 es : ""
262 262 } ],
  263 + 'grupos' : [ {
  264 + pt : "Grupos",
  265 + en : "",
  266 + es : ""
  267 + } ],
263 268 'gravaId' : [ {
264 269 pt : " gravando o registro do id= ",
265 270 en : "",
... ... @@ -375,18 +380,18 @@ i3GEOadmin.core.dicionario = {
375 380 en : "",
376 381 es : ""
377 382 } ],
378   - '' : [ {
379   - pt : "",
  383 + 'temasRaiz' : [ {
  384 + pt : "Temas na raiz",
380 385 en : "",
381 386 es : ""
382 387 } ],
383   - '' : [ {
384   - pt : "",
  388 + 'adicionarTema' : [ {
  389 + pt : "Adicionar um tema",
385 390 en : "",
386 391 es : ""
387 392 } ],
388   - '' : [ {
389   - pt : "",
  393 + 'tema' : [ {
  394 + pt : "Tema",
390 395 en : "",
391 396 es : ""
392 397 } ],
... ...
admin1/dicionario/grupos.js
... ... @@ -31,18 +31,23 @@ i3GEOadmin.grupos.dicionario = {
31 31 en : "",
32 32 es : ""
33 33 } ],
34   - '' : [ {
35   - pt : "",
  34 + 'adicionarGrupo' : [ {
  35 + pt : "Adicionar um grupo",
36 36 en : "",
37 37 es : ""
38 38 } ],
39   - '' : [ {
40   - pt : "",
  39 + 'temasRaizMenu' : [ {
  40 + pt : "Temas na raiz do menu",
41 41 en : "",
42 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 51 en : "",
47 52 es : ""
48 53 } ]
... ...
admin1/dicionario/menus.js
... ... @@ -105,8 +105,8 @@ i3GEOadmin.menus.dicionario = {
105 105 en : "",
106 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 110 en : "",
111 111 es : ""
112 112 } ],
... ...
admin1/usuarios/cadastro/index.js
... ... @@ -124,6 +124,7 @@ Obt&amp;eacute;m a lista de usuarios
124 124 i3GEOadmin.usuarios.dicionario,
125 125 {
126 126 "id_usuario": "modal",
  127 + "escondido": "hidden",
127 128 "excluir": i3GEOadmin.usuarios.dicionario.cancelar,
128 129 "onExcluir": "i3GEOadmin.core.fechaModalGeral",//funcao
129 130 "onSalvar": "i3GEOadmin.usuarios.adiciona",//funcao
... ...
admin1/usuarios/cadastro/index.php
... ... @@ -58,7 +58,11 @@ include &quot;../../head.php&quot;;
58 58 <script id="templateLista" type="x-tmpl-mustache">
59 59 <div class="panel panel-default" id="form-{{id_usuario}}">
60 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 66 <a class="collapsed in" role="button" data-toggle="collapse" href="#body-form-{{id_usuario}}"
63 67 aria-expanded="false" aria-controls="#body-form-{{id_usuario}}"> {{{nome_usuario}}} </a>
64 68 </h3>
... ...
admin1/usuarios/grupos/index.js
... ... @@ -106,6 +106,7 @@ Obt&amp;eacute;m a lista de grupos
106 106 i3GEOadmin.gruposusuarios.dicionario,
107 107 {
108 108 "id_grupo": "modal",
  109 + "escondido": "hidden",
109 110 "excluir": i3GEOadmin.gruposusuarios.dicionario.cancelar,
110 111 "onExcluir": "i3GEOadmin.core.fechaModalGeral",//funcao
111 112 "onSalvar": "i3GEOadmin.gruposusuarios.adiciona",//funcao
... ...
admin1/usuarios/grupos/index.php
... ... @@ -62,7 +62,11 @@ include &quot;../../head.php&quot;;
62 62 <script id="templateLista" type="x-tmpl-mustache">
63 63 <div class="panel panel-default" id="form-{{id_grupo}}">
64 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 70 <a class="collapsed in" role="button" data-toggle="collapse" href="#body-form-{{id_grupo}}"
67 71 aria-expanded="false" aria-controls="#body-form-{{id_grupo}}"> {{{nome}}} </a>
68 72 </h3>
... ...
admin1/usuarios/operacoes/index.js
... ... @@ -119,6 +119,7 @@ Obt&amp;eacute;m a lista de operacoes
119 119 "excluir": i3GEOadmin.operacoes.dicionario.cancela,
120 120 "codigo": "",
121 121 "id_operacao": "modal",
  122 + "escondido": "hidden",
122 123 "descricao": "",
123 124 "inputPapeis": function(){
124 125 return Mustache.to_html(
... ...
admin1/usuarios/operacoes/index.php
... ... @@ -58,7 +58,11 @@ include &quot;../../head.php&quot;;
58 58 <script id="templateLista" type="x-tmpl-mustache">
59 59 <div class="panel panel-default" id="form-{{id_operacao}}">
60 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 66 <a class="collapsed in" role="button" data-toggle="collapse" href="#body-form-{{id_operacao}}"
63 67 aria-expanded="false" aria-controls="#body-form-{{id_operacao}}"> {{{codigo}}} </a>
64 68 </h3>
... ...