From 055e8ac801258e07f869371d9a2e398e14528a0b Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Sun, 31 Jul 2016 23:07:13 -0300 Subject: [PATCH] Inclusão de função de ordenação na edição da árvore do catálogo --- admin/admin.db | Bin 340992 -> 0 bytes admin1/cadastros/perfis/index.php | 5 ++--- admin1/cadastros/tags/index.php | 4 +--- admin1/catalogo/menus/grupos/subgrupos/exec.php | 28 +++++++++++++++++++++++++++- admin1/catalogo/menus/grupos/subgrupos/execraiz.php | 28 +++++++++++++++++++++++++++- admin1/catalogo/menus/grupos/subgrupos/index.js | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ admin1/catalogo/menus/grupos/subgrupos/index.php | 12 ++++++++---- admin1/catalogo/menus/grupos/subgrupos/temas/exec.php | 28 +++++++++++++++++++++++++++- admin1/catalogo/menus/grupos/subgrupos/temas/index.js | 39 +++++++++++++++++++++++++++++++++++++++ admin1/catalogo/menus/grupos/subgrupos/temas/index.php | 6 ++++-- 10 files changed, 200 insertions(+), 15 deletions(-) diff --git a/admin/admin.db b/admin/admin.db index aaa613c..bf02503 100755 Binary files a/admin/admin.db and b/admin/admin.db differ diff --git a/admin1/cadastros/perfis/index.php b/admin1/cadastros/perfis/index.php index 476430a..e423861 100755 --- a/admin1/cadastros/perfis/index.php +++ b/admin1/cadastros/perfis/index.php @@ -62,7 +62,7 @@ include "../../head.php";
-
+
@@ -72,14 +72,13 @@ include "../../head.php";
-
-
diff --git a/admin1/cadastros/tags/index.php b/admin1/cadastros/tags/index.php index f049168..50e39a2 100755 --- a/admin1/cadastros/tags/index.php +++ b/admin1/cadastros/tags/index.php @@ -62,7 +62,7 @@ include "../../head.php";
-
+
@@ -72,8 +72,6 @@ include "../../head.php";
-
-
{{excluir}} diff --git a/admin1/catalogo/menus/grupos/subgrupos/exec.php b/admin1/catalogo/menus/grupos/subgrupos/exec.php index fe3cafa..9668716 100755 --- a/admin1/catalogo/menus/grupos/subgrupos/exec.php +++ b/admin1/catalogo/menus/grupos/subgrupos/exec.php @@ -34,7 +34,8 @@ include_once (dirname ( __FILE__ ) . "/../../../../../admin/php/login.php"); $funcoesEdicao = array ( "ADICIONAR", "ALTERAR", - "EXCLUIR" + "EXCLUIR", + "ORDENA" ); if (in_array ( strtoupper ( $funcao ), $funcoesEdicao )) { if (verificaOperacaoSessao ( "admin/html/arvore" ) === false) { @@ -46,6 +47,31 @@ include (dirname ( __FILE__ ) . "/../../../../../admin/php/conexao.php"); $funcao = strtoupper ( $funcao ); switch ($funcao) { + case "ORDENA" : + $ordem = explode(" ",$ordem); + //verifica se existe a mesma quantidade de registros no banco e na lista de ids + $dados = pegaDados ( "SELECT ordem from ".$esquemaadmin."i3geoadmin_n2 WHERE id_n1 = $id_n1", $dbh, false ); + if(count($dados) != count($ordem)){ + header ( "HTTP/1.1 500 erro numero de registros nao batem" ); + exit (); + } + //verifica se os ids existem no mesmo nivel + $dados = pegaDados ( "SELECT ordem from ".$esquemaadmin."i3geoadmin_n2 WHERE id_n1 = $id_n1 AND id_n2 IN (" . implode(",",$ordem). ")", $dbh, false ); + if(count($dados) != count($ordem)){ + header ( "HTTP/1.1 500 erro ids nao batem" ); + exit (); + } + + $retorna = i3GeoAdminOrdena($dbhw,$ordem,i3geoadmin_n2,"id_n2"); + $dbhw = null; + $dbh = null; + if ($retorna === false) { + header ( "HTTP/1.1 500 erro ao ordenar" ); + exit (); + } + retornaJSON ( $retorna ); + exit(); + break; case "ADICIONAR" : $novo = adicionar( $id_subgrupo, $id_n1, $publicado, $n2_perfil, $ordem, $dbhw ); if ($novo === false) { diff --git a/admin1/catalogo/menus/grupos/subgrupos/execraiz.php b/admin1/catalogo/menus/grupos/subgrupos/execraiz.php index cc14efe..5cdd98d 100755 --- a/admin1/catalogo/menus/grupos/subgrupos/execraiz.php +++ b/admin1/catalogo/menus/grupos/subgrupos/execraiz.php @@ -34,7 +34,8 @@ include_once (dirname ( __FILE__ ) . "/../../../../../admin/php/login.php"); $funcoesEdicao = array ( "ADICIONAR", "ALTERAR", - "EXCLUIR" + "EXCLUIR", + "ORDENA" ); if (in_array ( strtoupper ( $funcao ), $funcoesEdicao )) { if (verificaOperacaoSessao ( "admin/html/arvore" ) === false) { @@ -46,6 +47,31 @@ include (dirname ( __FILE__ ) . "/../../../../../admin/php/conexao.php"); $funcao = strtoupper ( $funcao ); switch ($funcao) { + case "ORDENA" : + $ordem = explode(" ",$ordem); + //verifica se existe a mesma quantidade de registros no banco e na lista de ids + $dados = pegaDados ( "SELECT ordem from ".$esquemaadmin."i3geoadmin_raiz WHERE nivel = 1 AND id_nivel = $id_n1", $dbh, false ); + if(count($dados) != count($ordem)){ + header ( "HTTP/1.1 500 erro numero de registros nao batem" ); + exit (); + } + //verifica se os ids existem no mesmo nivel + $dados = pegaDados ( "SELECT ordem from ".$esquemaadmin."i3geoadmin_raiz WHERE nivel = 1 AND id_nivel = $id_n1 AND id_raiz IN (" . implode(",",$ordem). ")", $dbh, false ); + if(count($dados) != count($ordem)){ + header ( "HTTP/1.1 500 erro ids nao batem" ); + exit (); + } + + $retorna = i3GeoAdminOrdena($dbhw,$ordem,i3geoadmin_raiz,"id_raiz"); + $dbhw = null; + $dbh = null; + if ($retorna === false) { + header ( "HTTP/1.1 500 erro ao ordenar" ); + exit (); + } + retornaJSON ( $retorna ); + exit(); + break; case "ADICIONAR" : if (empty ( $id_tema ) || empty ( $id_menu ) || empty ( $id_n1 )) { header ( "HTTP/1.1 500 erro nos parametros" ); diff --git a/admin1/catalogo/menus/grupos/subgrupos/index.js b/admin1/catalogo/menus/grupos/subgrupos/index.js index 6c986f4..37326b6 100755 --- a/admin1/catalogo/menus/grupos/subgrupos/index.js +++ b/admin1/catalogo/menus/grupos/subgrupos/index.js @@ -55,6 +55,31 @@ i3GEOadmin.subgrupos = { ); i3GEOadmin.subgrupos.listaRaiz(json["raiz"],opcoesPerfil,json["temas"]); i3GEOadmin.subgrupos.listaNos(json["subgrupos"],opcoesPerfil,json["tiposSubGrupos"]); + + //torna os paineis ordenavies + i3GEOadmin.subgrupos.ondeNos.sortable({ + update: function( event, ui ) { + var data = i3GEOadmin.subgrupos.ondeNos.sortable('toArray', {attribute: "data-id"}); + i3GEOadmin.subgrupos.ordenaNos(data); + } + }); + i3GEOadmin.subgrupos.ondeRaiz.sortable({ + update: function( event, ui ) { + var data = i3GEOadmin.subgrupos.ondeRaiz.sortable('toArray', {attribute: "data-id"}); + i3GEOadmin.subgrupos.ordenaRaiz(data); + } + }); + + //faz com que seja mostrado um icone de ordenamento no mouseover + $('.panel').hover( + function(){ + $(this).find('.move').fadeIn(400); + }, + function(){ + $(this).find('.move').fadeOut(250); + } + ); + $.material.init(); } ) @@ -408,6 +433,46 @@ i3GEOadmin.subgrupos = { } ); }, + ordenaNos: function(data){ + i3GEOadmin.core.modalAguarde(true); + $.post( + "exec.php?funcao=ordena", + "id_n1=" + i3GEOadmin.subgrupos.id_n1 + "&ordem=" + data.join(" ") + ) + .done( + function(data, status){ + i3GEOadmin.core.modalAguarde(false); + i3GEOadmin.core.iconeAguarde(i3GEOadmin.subgrupos.ondeNos); + i3GEOadmin.subgrupos.lista(); + } + ) + .fail( + function(data){ + i3GEOadmin.core.modalAguarde(false); + i3GEOadmin.core.mostraErro(data.status + " " +data.statusText); + } + ); + }, + ordenaRaiz: function(data){ + i3GEOadmin.core.modalAguarde(true); + $.post( + "execraiz.php?funcao=ordena", + "id_n1=" + i3GEOadmin.subgrupos.id_n1 + "&ordem=" + data.join(" ") + ) + .done( + function(data, status){ + i3GEOadmin.core.modalAguarde(false); + i3GEOadmin.core.iconeAguarde(i3GEOadmin.subgrupos.ondeNos); + i3GEOadmin.subgrupos.lista(); + } + ) + .fail( + function(data){ + i3GEOadmin.core.modalAguarde(false); + i3GEOadmin.core.mostraErro(data.status + " " +data.statusText); + } + ); + }, editarTemas: function(id,titulo){ //muda a url para que o usuario possa voltar pelo botao do navegador var u = window.location.origin diff --git a/admin1/catalogo/menus/grupos/subgrupos/index.php b/admin1/catalogo/menus/grupos/subgrupos/index.php index a719fe9..94c3fd0 100755 --- a/admin1/catalogo/menus/grupos/subgrupos/index.php +++ b/admin1/catalogo/menus/grupos/subgrupos/index.php @@ -85,7 +85,7 @@ $nome_menu = filter_var ( $_GET ["nome_menu"], FILTER_SANITIZE_STRING );