Commit 5c2cc827247faacf6edec08b56be9461ead034a3

Authored by Edmar Moretti
1 parent f0b698f2

Reformulação do formulário de edição de grupos de um menu da árvore do catálogo

admin/admin.db
No preview for this file type
admin1/catalogo/menus/grupos/exec.php
... ... @@ -55,7 +55,7 @@ testaSafeNumerico([$id_menu,$id_n1, $id_grupo]);
55 55 $funcao = strtoupper ( $funcao );
56 56 switch ($funcao) {
57 57 case "ORDENA" :
58   - $ordem = explode(" ",$_POST["ordem"]);
  58 + $ordem = explode(" ",$_POST["novaordem"]);
59 59 //verifica se existe a mesma quantidade de registros no banco e na lista de ids
60 60 $dados = pegaDados ( "SELECT ordem from ".$esquemaadmin."i3geoadmin_n1 WHERE id_menu = $id_menu", $dbh, false );
61 61 if(count($dados) != count($ordem)){
... ... @@ -105,7 +105,7 @@ switch ($funcao) {
105 105 exit ();
106 106 break;
107 107 case "LISTAUNICO" :
108   - $dados = pegaDados("select * from ".$esquemaadmin."i3geoadmin_n1 LEFT JOIN ".$esquemaadmin."i3geoadmin_grupos ON i3geoadmin_n1.id_grupo = i3geoadmin_grupos.id_grupo where id_n1 = $id_n1"));
  108 + $dados = pegaDados("select * from ".$esquemaadmin."i3geoadmin_n1 LEFT JOIN ".$esquemaadmin."i3geoadmin_grupos ON i3geoadmin_n1.id_grupo = i3geoadmin_grupos.id_grupo where id_n1 = $id_n1");
109 109 if ($dados === false) {
110 110 $dbhw = null;
111 111 $dbh = null;
... ...
admin1/catalogo/menus/grupos/index.js
... ... @@ -191,106 +191,6 @@ i3GEOadmin.grupos = {
191 191 }
192 192 );
193 193 },
194   - listaNos: function(dados){
195   - var grupos = i3GEOadmin.grupos.listaTiposGrupos;
196   - var templateNos = $("#templateNos").html();
197   - var html = Mustache.to_html(
198   - "{{#data}}" + templateNos + "{{/data}}",
199   - $.extend(
200   - {},
201   - i3GEOadmin.grupos.dicionario,
202   - {
203   - "data": dados,
204   - "opcoesPerfil": i3GEOadmin.grupos.opcoesPerfil,
205   - "onExcluir": "i3GEOadmin.grupos.excluirNoDialogo",//funcao
206   - "onSalvar": "i3GEOadmin.grupos.salvarNoDialogo",//funcao
207   - "opcoesPublicado": function(){
208   - var hash = {};
209   - hash[this.publicado + "-sel"] = "selected";
210   - hash["sim"] = i3GEOadmin.grupos.dicionario.sim;
211   - hash["nao"] = i3GEOadmin.grupos.dicionario.nao;
212   - return Mustache.to_html(
213   - $("#templateOpcoesPublicado").html(),
214   - hash
215   - );
216   - },
217   - "opcoesNo": function(){
218   - var p = this.id_grupo;
219   - var id = "";
220   - //marca o selecionado
221   - $(grupos).each(
222   - function(i,el){
223   - if(el.id_grupo == p){
224   - grupos[i]["selected"] = "selected";
225   - id = i;
226   - }
227   - else{
228   - grupos[i]["selected"] = "";
229   - }
230   - }
231   - );
232   - var html = '<option value="">---</option>' + Mustache.to_html(
233   - "{{#data}}" + $("#templateOpcoesNo").html() + "{{/data}}",
234   - {"data":grupos}
235   - );
236   - //volta ao normal
237   - grupos[id]["selected"] = "";
238   - return html;
239   - }
240   - }
241   - )
242   - );
243   - i3GEOadmin.grupos.ondeNos.html(html);
244   - //valor do filtro atual
245   - var filtro = i3GEOadmin.core.valorFiltro();
246   - //filtro
247   - html = Mustache.to_html(
248   - "{{#data}}" + $("#templateFiltro").html() + "{{/data}}",
249   - {"data":dados}
250   - );
251   - $("#filtro").html("<option value='' >Todos</option>" + html);
252   - $("#filtro").combobox();
253   - $(".ui-autocomplete-input").attr( "title", "Filtro" );
254   -
255   - if(filtro != ""){
256   - i3GEOadmin.core.defineFiltro(filtro);
257   - i3GEOadmin.core.filtra(i3GEOadmin.core.pegaFiltro());
258   - }
259   - if(i3GEOadmin.grupos.formAdicionaNo == ""){
260   - html = Mustache.to_html(
261   - templateNos,
262   - $.extend(
263   - {},
264   - i3GEOadmin.grupos.dicionario,
265   - {
266   - "id_n1": "modal",
267   - "escondido": "hidden",
268   - "excluir": i3GEOadmin.grupos.dicionario.cancelar,
269   - "opcoesPerfil": i3GEOadmin.grupos.opcoesPerfil,
270   - "onExcluir": "i3GEOadmin.core.fechaModalGeral",//funcao
271   - "onSalvar": "i3GEOadmin.grupos.adicionaNo",//funcao
272   - "opcoesPublicado": function(){
273   - var hash = {};
274   - hash["sim"] = i3GEOadmin.grupos.dicionario.sim;
275   - hash["nao"] = i3GEOadmin.grupos.dicionario.nao;
276   - return Mustache.to_html(
277   - $("#templateOpcoesPublicado").html(),
278   - hash
279   - );
280   - },
281   - "opcoesNo": function(){
282   - var html = '<option value="">---</option>' + Mustache.to_html(
283   - "{{#data}}" + $("#templateOpcoesNo").html() + "{{/data}}",
284   - {"data":grupos}
285   - );
286   - return html;
287   - }
288   - }
289   - )
290   - );
291   - i3GEOadmin.grupos.formAdicionaNo = html;
292   - }
293   - },
294 194 adicionaTemaDialogo: function(){
295 195 i3GEOadmin.core.abreModalGeral(i3GEOadmin.grupos.formAdicionaRaiz);
296 196 },
... ... @@ -382,13 +282,145 @@ i3GEOadmin.grupos = {
382 282 }
383 283 );
384 284 },
  285 + listaNos: function(dados){
  286 + var grupos = i3GEOadmin.grupos.listaTiposGrupos;
  287 + var html = Mustache.to_html(
  288 + "{{#data}}" + $("#templateNos").html() + "{{/data}}",
  289 + $.extend(
  290 + {},
  291 + i3GEOadmin.grupos.dicionario,
  292 + {
  293 + "data": dados,
  294 + "opcoesPerfil": i3GEOadmin.grupos.opcoesPerfil,
  295 + "onExcluir": "i3GEOadmin.grupos.excluirNoDialogo",//funcao
  296 + "onEditar": "i3GEOadmin.grupos.editarNoDialogo"
  297 + }
  298 + )
  299 + );
  300 + i3GEOadmin.grupos.ondeNos.html(html);
  301 + //valor do filtro atual
  302 + var filtro = i3GEOadmin.core.valorFiltro();
  303 + //filtro
  304 + html = Mustache.to_html(
  305 + "{{#data}}" + $("#templateFiltro").html() + "{{/data}}",
  306 + {"data":dados}
  307 + );
  308 + $("#filtro").html("<option value='' >Todos</option>" + html);
  309 + $("#filtro").combobox();
  310 + $(".ui-autocomplete-input").attr( "title", "Filtro" );
  311 +
  312 + if(filtro != ""){
  313 + i3GEOadmin.core.defineFiltro(filtro);
  314 + i3GEOadmin.core.filtra(i3GEOadmin.core.pegaFiltro());
  315 + }
  316 + if(i3GEOadmin.grupos.formAdicionaNo == ""){
  317 + html = Mustache.to_html(
  318 + $("#templateFormNos").html(),
  319 + $.extend(
  320 + {},
  321 + i3GEOadmin.grupos.dicionario,
  322 + {
  323 + "id_n1": "modal",
  324 + "escondido": "hidden",
  325 + "excluir": i3GEOadmin.grupos.dicionario.cancelar,
  326 + "opcoesPerfil": i3GEOadmin.grupos.opcoesPerfil,
  327 + "onExcluir": "i3GEOadmin.core.fechaModalGeral",//funcao
  328 + "onSalvar": "i3GEOadmin.grupos.adicionaNo",//funcao
  329 + "opcoesPublicado": function(){
  330 + var hash = {};
  331 + hash["sim"] = i3GEOadmin.grupos.dicionario.sim;
  332 + hash["nao"] = i3GEOadmin.grupos.dicionario.nao;
  333 + return Mustache.to_html(
  334 + $("#templateOpcoesPublicado").html(),
  335 + hash
  336 + );
  337 + },
  338 + "opcoesNo": function(){
  339 + var html = '<option value="">---</option>' + Mustache.to_html(
  340 + "{{#data}}" + $("#templateOpcoesNo").html() + "{{/data}}",
  341 + {"data":grupos}
  342 + );
  343 + return html;
  344 + }
  345 + }
  346 + )
  347 + );
  348 + i3GEOadmin.grupos.formAdicionaNo = html;
  349 + }
  350 + },
  351 + editarNoDialogo: function(id){
  352 + i3GEOadmin.core.fechaModalGeral();
  353 + i3GEOadmin.core.modalAguarde(true);
  354 + $.post(
  355 + "exec.php?funcao=listaunico",
  356 + "id_n1=" + id
  357 + )
  358 + .done(
  359 + function(data, status){
  360 + var json = jQuery.parseJSON(data);
  361 + var html = Mustache.to_html(
  362 + "{{#data}}" + $("#templateFormNos").html() + "{{/data}}",
  363 + $.extend(
  364 + {},
  365 + i3GEOadmin.grupos.dicionario,
  366 + {
  367 + "data": json,
  368 + "opcoesPerfil": i3GEOadmin.grupos.opcoesPerfil,
  369 + "onExcluir": "i3GEOadmin.grupos.excluirNoDialogo",//funcao
  370 + "onSalvar": "i3GEOadmin.grupos.salvarNoDialogo",//funcao
  371 + "opcoesPublicado": function(){
  372 + var hash = {};
  373 + hash[this.publicado + "-sel"] = "selected";
  374 + hash["sim"] = i3GEOadmin.grupos.dicionario.sim;
  375 + hash["nao"] = i3GEOadmin.grupos.dicionario.nao;
  376 + return Mustache.to_html(
  377 + $("#templateOpcoesPublicado").html(),
  378 + hash
  379 + );
  380 + },
  381 + "opcoesNo": function(){
  382 + var p = this.id_grupo;
  383 + var id = "";
  384 + //marca o selecionado
  385 + var grupos = i3GEOadmin.grupos.listaTiposGrupos;
  386 + $(grupos).each(
  387 + function(i,el){
  388 + if(el.id_grupo == p){
  389 + grupos[i]["selected"] = "selected";
  390 + id = i;
  391 + }
  392 + else{
  393 + grupos[i]["selected"] = "";
  394 + }
  395 + }
  396 + );
  397 + var html = '<option value="">---</option>' + Mustache.to_html(
  398 + "{{#data}}" + $("#templateOpcoesNo").html() + "{{/data}}",
  399 + {"data":grupos}
  400 + );
  401 + //volta ao normal
  402 + grupos[id]["selected"] = "";
  403 + return html;
  404 + }
  405 + }
  406 + )
  407 + );
  408 + i3GEOadmin.core.abreModalGeral(html);
  409 + }
  410 + )
  411 + .fail(
  412 + function(data){
  413 + i3GEOadmin.core.modalAguarde(false);
  414 + i3GEOadmin.core.mostraErro(data.status + " " +data.statusText);
  415 + }
  416 + );
  417 + },
385 418 adicionaNoDialogo: function(){
386 419 i3GEOadmin.core.abreModalGeral(i3GEOadmin.grupos.formAdicionaNo);
387   - $("#body-formNo-modal").collapse('show');
388 420 },
389 421 // os parametros sao obtidos do formulario aberto do modal
390 422 adicionaNo: function(){
391   - var parametros = $("#formNo-modal form").serialize();
  423 + var parametros = $("#form-edicao-no-modal").serialize();
392 424 i3GEOadmin.core.fechaModalGeral();
393 425 i3GEOadmin.core.modalAguarde(true);
394 426 $.post(
... ... @@ -440,17 +472,18 @@ i3GEOadmin.grupos = {
440 472 );
441 473 },
442 474 salvarNoDialogo: function(id){
  475 + i3GEOadmin.grupos.parametrosSalvar = $("#form-edicao-no-" + id).serialize();
443 476 var hash = {
444 477 "mensagem": i3GEOadmin.grupos.dicionario.confirma,
445 478 "onBotao1": "i3GEOadmin.grupos.salvarNo('"+id+"')",
446 479 "botao1": i3GEOadmin.grupos.dicionario.sim,
447   - "onBotao2": "i3GEOadmin.core.fechaModalConfirma();",
  480 + "onBotao2": "i3GEOadmin.grupos.parametrosSalvar = '';i3GEOadmin.core.fechaModalConfirma();",
448 481 "botao2": i3GEOadmin.grupos.dicionario.nao
449 482 };
450 483 i3GEOadmin.core.abreModalConfirma(hash);
451 484 },
452 485 salvarNo: function(id){
453   - var parametros = $("#formNo-" + id + " form").serialize();
  486 + var parametros = i3GEOadmin.grupos.parametrosSalvar;
454 487 i3GEOadmin.core.fechaModalGeral();
455 488 i3GEOadmin.core.modalAguarde(true);
456 489 $.post(
... ... @@ -459,6 +492,7 @@ i3GEOadmin.grupos = {
459 492 )
460 493 .done(
461 494 function(data, status){
  495 + i3GEOadmin.grupos.parametrosSalvar = '';
462 496 i3GEOadmin.core.modalAguarde(false);
463 497 i3GEOadmin.core.iconeAguarde(i3GEOadmin.grupos.ondeNos);
464 498 i3GEOadmin.grupos.lista();
... ... @@ -466,6 +500,7 @@ i3GEOadmin.grupos = {
466 500 )
467 501 .fail(
468 502 function(data){
  503 + i3GEOadmin.grupos.parametrosSalvar = '';
469 504 i3GEOadmin.core.modalAguarde(false);
470 505 i3GEOadmin.core.mostraErro(data.status + " " +data.statusText);
471 506 }
... ...
admin1/catalogo/menus/grupos/index.php
... ... @@ -170,77 +170,53 @@ $nome_menu = filter_var ( $_GET [&quot;nome_menu&quot;], FILTER_SANITIZE_STRING );
170 170 </script>
171 171  
172 172 <script id="templateFormNos" type="x-tmpl-mustache">
173   -<div class="panel panel-default" data-id="{{id_n1}}" id="formNo-{{id_n1}}">
174   - <div class="panel-heading icon" role="tab">
175   - <h3 class="panel-title" {{escondido}}>
176   - <a href="javascript:void(0)" onclick="{{onExcluir}}('{{id_n1}}')" class="btn btn-danger btn-fab btn-fab-mini" role="button">
177   - <i class="material-icons">delete_forever</i>
178   - </a>
179   - &nbsp;
180   - <a class="collapsed in" role="button" data-toggle="collapse" href="#body-formNo-{{id_n1}}"
181   - aria-expanded="false" aria-controls="#body-formNo-{{id_n1}}"> {{{nome_grupo}}}
182   - <i class="material-icons move" style="color: gray; display:none;">swap_vert</i>
183   - </a>
184   - </h3>
185   - </div>
186   - <div class="panel-body panel-collapse collapse" id="body-formNo-{{id_n1}}">
187   - <form style="" action="#" onsubmit="{{onSalvar}}('{{id_n1}}');return false;" onchange="this.style.boxShadow='2px 2px 5px 0 #009688';" class="form-horizontal" role="form" method="post" >
188   - <div class="row">
189   - <div class="col-md-12">
190   - <div class="form-group form-group-lg">
191   - <label class="col-md-4 control-label" for="id_grupo">{{{nomeTxt}}}</label>
192   - <div class="col-md-6">
193   - <select title="{{{nomeTxt}}}" class="form-control" name="id_grupo">
194   - {{{opcoesNo}}}
195   - </select>
196   - </div>
197   - <div class="col-md-2">
198   - <a onclick="i3GEOadmin.grupos.editarListaDeGrupos('{{id_n1}}','{{{nome_grupo}}}');" href="javascript:void(0)"
199   - class="btn btn-primary btn-xs" role="button">{{{editarLista}}}</a>
200   - </div>
201   - </div>
202   - <div class="form-group form-group-lg">
203   - <label class="col-md-4 control-label" for="ordem">{{{ordemTxt}}}</label>
204   - <div class="col-md-8">
205   - <input title="{{{ordemTxt}}}" type="text" value="{{{ordem}}}" class="form-control" name="ordem">
206   - </div>
207   - </div>
208   - <div class="form-group form-group-lg">
209   - <label class="col-md-4 control-label" for="publicado">{{{publicadoTxt}}}</label>
210   - <div class="col-md-8">
211   - <select title="{{{publicadoTxt}}}" name="publicado" class="form-control">
212   - {{{opcoesPublicado}}}
213   - </select>
214   - </div>
215   - </div>
216   - <div class="form-group form-group-lg">
217   - <label class="col-md-4 control-label" for="perfil">{{{perfis}}}</label>
218   - <div class="col-md-4">
219   - <input title="{{{perfis}}}" id="perfil_no-{{id_n1}}" type="text" value="{{{n1_perfil}}}" class="form-control" name="n1_perfil">
220   - </div>
221   - <div class="col-md-4">
222   - <select title="{{{perfis}}}" class="form-control" onchange="i3GEOadmin.grupos.addInput('perfil_no-{{id_n1}}',this.value)">
223   - {{{opcoesPerfil}}}
224   - </select>
225   - </div>
226   - </div>
  173 +<form id="form-edicao-no-{{id_n1}}" style="" action="#" onsubmit="{{onSalvar}}('{{id_n1}}');return false;" onchange="this.style.boxShadow='2px 2px 5px 0 #009688';" class="form-horizontal" role="form" method="post" >
  174 + <div class="row">
  175 + <div class="col-md-12">
  176 + <div class="form-group form-group-lg">
  177 + <label class="col-md-4 control-label" for="id_grupo">{{{nomeTxt}}}</label>
  178 + <div class="col-md-6">
  179 + <select title="{{{nomeTxt}}}" class="form-control" name="id_grupo">
  180 + {{{opcoesNo}}}
  181 + </select>
  182 + </div>
  183 + <div class="col-md-2">
  184 + <a onclick="i3GEOadmin.grupos.editarListaDeGrupos('{{id_n1}}','{{{nome_grupo}}}');" href="javascript:void(0)"
  185 + class="btn btn-primary btn-xs" role="button">{{{editarLista}}}</a>
  186 + </div>
  187 + </div>
  188 + <div class="form-group form-group-lg">
  189 + <label class="col-md-4 control-label" for="ordem">{{{ordemTxt}}}</label>
  190 + <div class="col-md-8">
  191 + <input title="{{{ordemTxt}}}" type="text" value="{{{ordem}}}" class="form-control" name="ordem">
  192 + </div>
  193 + </div>
  194 + <div class="form-group form-group-lg">
  195 + <label class="col-md-4 control-label" for="publicado">{{{publicadoTxt}}}</label>
  196 + <div class="col-md-8">
  197 + <select title="{{{publicadoTxt}}}" name="publicado" class="form-control">
  198 + {{{opcoesPublicado}}}
  199 + </select>
  200 + </div>
  201 + </div>
  202 + <div class="form-group form-group-lg">
  203 + <label class="col-md-4 control-label" for="perfil">{{{perfis}}}</label>
  204 + <div class="col-md-4">
  205 + <input title="{{{perfis}}}" id="perfil_no-{{id_n1}}" type="text" value="{{{n1_perfil}}}" class="form-control" name="n1_perfil">
  206 + </div>
  207 + <div class="col-md-4">
  208 + <select title="{{{perfis}}}" class="form-control" onchange="i3GEOadmin.grupos.addInput('perfil_no-{{id_n1}}',this.value)">
  209 + {{{opcoesPerfil}}}
  210 + </select>
227 211 </div>
228 212 </div>
229   - <div class="pull-right">
230   - <button type="submit" class="btn btn-primary" role="button" style="color:#008579;">{{salvar}}</button>
231 213 </div>
232   - </form>
233   -
234 214 </div>
235   - <div class="panel-footer {{escondido}}" style="padding-top: 0px; padding-bottom: 0px;">
236   - <div class="pull-right">
237   - <button style="color:#007a6f;" onclick="i3GEOadmin.grupos.editarSubGrupos('{{id_n1}}','{{{nome_grupo}}}')" class="btn btn-primary btn-xs" style="margin-top: 2px; margin-bottom: 2px;">
238   - <i class="material-icons">folder_open</i> {{{editarSubgrupos}}}
239   - </button>
240   - </div>
241   - <div class="clearfix"></div>
  215 + <div class="pull-right">
  216 + <button type="submit" class="btn btn-primary" role="button" style="color:#008579;">{{salvar}}</button>
242 217 </div>
243   -</div>
  218 + <div class="clearfix"></div>
  219 +</form>
244 220 </script>
245 221 <script id="templateOpcoesPublicado" type="x-tmpl-mustache">
246 222 <option value="">---</option>
... ...