/*
Licenca:
GPL2
i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet
Direitos Autorais Reservados (c) 2006 Ministério do Meio Ambiente Brasil
Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com
Este programa é software livre; você pode redistribuí-lo
e/ou modificá-lo sob os termos da Licença Pública Geral
GNU conforme publicada pela Free Software Foundation;
Este programa é distribuído na expectativa de que seja útil,
porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita
de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA.
Consulte a Licença Pública Geral do GNU para mais detalhes.
Você deve ter recebido uma cópia da Licença Pública Geral do
GNU junto com este programa; se não, escreva para a
Free Software Foundation, Inc., no endereço
59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
*/
i3GEOadmin.grupos = {
id_menu: "",
nome_menu: "",
ondeRaiz: "",
ondeNos: "",
//conteudo html do formulario de adicao na raiz
formAdicionaRaiz: "",
formAdicionaNo: "",
opcoesPerfil: "",
listaTiposGrupos: "",
listaTemas: "",
//parametros obtidos do formulario de edicao antes de abrir o modal de confirmacao
parametrosSalvar: "",
init: function(ondenos,onderaiz){
i3GEOadmin.grupos.ondeRaiz = onderaiz;
i3GEOadmin.grupos.ondeNos = ondenos;
i3GEOadmin.grupos.lista();
},
lista: function(){
i3GEOadmin.core.iconeAguarde(i3GEOadmin.grupos.ondeRaiz);
i3GEOadmin.core.iconeAguarde(i3GEOadmin.grupos.ondeNos);
$.post(
"exec.php?funcao=lista",
"id_menu=" + i3GEOadmin.grupos.id_menu
)
.done(
function(data, status){
//objeto json com os dados viondos do banco
var json = jQuery.parseJSON(data);
//combo com perfis
var opcoesPerfil = '' + Mustache.to_html(
"{{#data}}" + $("#templateOpcoesPerfil").html() + "{{/data}}",
{"data":json["perfis"]}
);
i3GEOadmin.grupos.opcoesPerfil = opcoesPerfil;
i3GEOadmin.grupos.listaTemas = json["temas"];
i3GEOadmin.grupos.listaTiposGrupos = json["tiposGrupos"];
i3GEOadmin.grupos.listaRaiz(json["raiz"]);
i3GEOadmin.grupos.listaNos(json["grupos"]);
//torna os paineis ordenavies
i3GEOadmin.grupos.ondeNos.sortable({
update: function( event, ui ) {
var data = i3GEOadmin.grupos.ondeNos.sortable('toArray', {attribute: "data-id"});
i3GEOadmin.grupos.ordenaNos(data);
}
});
i3GEOadmin.grupos.ondeRaiz.sortable({
update: function( event, ui ) {
var data = i3GEOadmin.grupos.ondeRaiz.sortable('toArray', {attribute: "data-id"});
i3GEOadmin.grupos.ordenaRaiz(data);
}
});
//faz com que seja mostrado um icone de ordenamento no mouseover
$('.nomeitem').hover(
function(){
$(this).find('.move').fadeIn(400);
},
function(){
$(this).find('.move').fadeOut(250);
}
);
$.material.init();
}
)
.fail(function(data){
i3GEOadmin.grupos.ondeRaiz.html("");
i3GEOadmin.grupos.ondeNos.html("");
i3GEOadmin.core.mostraErro(data.status + " " +data.statusText);
});
},
listaRaiz: function(dados){
var templateRaiz = $("#templateRaiz").html();
var html = Mustache.to_html(
"{{#data}}" + templateRaiz + "{{/data}}",
$.extend(
{},
i3GEOadmin.grupos.dicionario,
{
"data": dados,
"opcoesPerfil": i3GEOadmin.grupos.opcoesPerfil,
"onExcluir": "i3GEOadmin.grupos.excluirTemaDialogo",//funcao
"onEditar": "i3GEOadmin.grupos.editarTemaDialogo"
}
)
);
i3GEOadmin.grupos.ondeRaiz.html(html);
//monta um template para o modal de inclusao de novo tema
if(i3GEOadmin.grupos.formAdicionaRaiz == ""){
html = Mustache.to_html(
$("#templateFormRaiz").html(),
$.extend(
{},
i3GEOadmin.grupos.dicionario,
{
"id_raiz": "modal",
"escondido": "",
"ordem": 0,
"opcoesPerfil": i3GEOadmin.grupos.opcoesPerfil,
"excluir": i3GEOadmin.grupos.dicionario.cancelar,
"onExcluir": "i3GEOadmin.core.fechaModalGeral",//funcao
"onSalvar": "i3GEOadmin.grupos.adicionaTemaRaiz",//funcao
"opcoesTema": function(){
var html = '' + Mustache.to_html(
"{{#data}}" + $("#templateOpcoesTema").html() + "{{/data}}",
{"data":i3GEOadmin.grupos.listaTemas}
);
return html;
}
}
)
);
i3GEOadmin.grupos.formAdicionaRaiz = html;
}
},
editarTemaDialogo: function(id){
i3GEOadmin.core.fechaModalGeral();
i3GEOadmin.core.modalAguarde(true);
$.post(
"execraiz.php?funcao=listaunico",
"id_raiz=" + id
)
.done(
function(data, status){
var json = jQuery.parseJSON(data);
var html = Mustache.to_html(
"{{#data}}" + $("#templateFormRaiz").html() + "{{/data}}",
$.extend(
{},
i3GEOadmin.grupos.dicionario,
{
"data": json["dados"],
"opcoesPerfil": i3GEOadmin.grupos.opcoesPerfil,
"onExcluir": "i3GEOadmin.grupos.excluirTemaDialogo",//funcao
"onSalvar": "i3GEOadmin.grupos.salvarTemaDialogo",//funcao
"opcoesTema": function(){
var p = json["dados"].id_tema;
//marca o selecionado
var temas = i3GEOadmin.grupos.listaTemas;
$(temas).each(
function(i,el){
if(el.id_tema == p){
temas[i]["selected"] = "selected";
}
else{
temas[i]["selected"] = "";
}
}
);
var html = '' + Mustache.to_html(
"{{#data}}" + $("#templateOpcoesTema").html() + "{{/data}}",
{"data":temas}
);
return html;
}
}
)
);
i3GEOadmin.core.abreModalGeral(html);
}
)
.fail(
function(data){
i3GEOadmin.core.modalAguarde(false);
i3GEOadmin.core.mostraErro(data.status + " " +data.statusText);
}
);
},
adicionaTemaDialogo: function(){
i3GEOadmin.core.abreModalGeral(i3GEOadmin.grupos.formAdicionaRaiz);
},
// os parametros sao obtidos do formulario aberto do modal
adicionaTemaRaiz: function(){
var parametros = $("#form-edicao-raiz-modal").serialize();
i3GEOadmin.core.fechaModalGeral();
i3GEOadmin.core.modalAguarde(true);
$.post(
"execraiz.php?funcao=adicionar",
parametros + "&id_menu=" + i3GEOadmin.grupos.id_menu
)
.done(
function(data, status){
i3GEOadmin.core.modalAguarde(false);
i3GEOadmin.core.iconeAguarde(i3GEOadmin.grupos.ondeRaiz);
i3GEOadmin.grupos.lista();
}
)
.fail(
function(data){
i3GEOadmin.core.modalAguarde(false);
i3GEOadmin.core.mostraErro(data.status + " " +data.statusText);
}
);
},
excluirTemaDialogo: function(id){
var hash = {
"mensagem": i3GEOadmin.grupos.dicionario.confirma,
"onBotao1": "i3GEOadmin.grupos.excluirTema('"+id+"')",
"botao1": i3GEOadmin.grupos.dicionario.sim,
"onBotao2": "i3GEOadmin.core.fechaModalConfirma();",
"botao2": i3GEOadmin.grupos.dicionario.nao
};
i3GEOadmin.core.abreModalConfirma(hash);
},
excluirTema: function(id){
i3GEOadmin.core.modalAguarde(true);
$.post(
"execraiz.php?funcao=excluir",
"id_raiz=" + id + "&id_menu=" + i3GEOadmin.grupos.id_menu
)
.done(
function(data, status){
i3GEOadmin.core.modalAguarde(false);
i3GEOadmin.grupos.lista();
}
)
.fail(
function(data){
i3GEOadmin.core.modalAguarde(false);
i3GEOadmin.core.mostraErro(data.status + " " +data.statusText);
}
);
},
salvarTemaDialogo: function(id){
i3GEOadmin.grupos.parametrosSalvar = $("#form-edicao-raiz-" + id).serialize();
var hash = {
"mensagem": i3GEOadmin.grupos.dicionario.confirma,
"onBotao1": "i3GEOadmin.grupos.salvarTema('"+id+"')",
"botao1": i3GEOadmin.grupos.dicionario.sim,
"onBotao2": "i3GEOadmin.grupos.parametrosSalvar = '';i3GEOadmin.core.fechaModalConfirma();",
"botao2": i3GEOadmin.grupos.dicionario.nao
};
i3GEOadmin.core.abreModalConfirma(hash);
},
salvarTema: function(id){
var parametros = i3GEOadmin.grupos.parametrosSalvar;
i3GEOadmin.core.fechaModalGeral();
i3GEOadmin.core.modalAguarde(true);
$.post(
"execraiz.php?funcao=alterar",
"id_raiz="+ id + "&"+parametros + "&id_menu=" + i3GEOadmin.grupos.id_menu
)
.done(
function(data, status){
i3GEOadmin.grupos.parametrosSalvar = '';
i3GEOadmin.core.modalAguarde(false);
i3GEOadmin.core.iconeAguarde(i3GEOadmin.grupos.ondeRaiz);
i3GEOadmin.grupos.lista();
}
)
.fail(
function(data){
i3GEOadmin.grupos.parametrosSalvar = '';
i3GEOadmin.core.modalAguarde(false);
i3GEOadmin.core.mostraErro(data.status + " " +data.statusText);
}
);
},
listaNos: function(dados){
var grupos = i3GEOadmin.grupos.listaTiposGrupos;
var html = Mustache.to_html(
"{{#data}}" + $("#templateNos").html() + "{{/data}}",
$.extend(
{},
i3GEOadmin.grupos.dicionario,
{
"data": dados,
"opcoesPerfil": i3GEOadmin.grupos.opcoesPerfil,
"onExcluir": "i3GEOadmin.grupos.excluirNoDialogo",//funcao
"onEditar": "i3GEOadmin.grupos.editarNoDialogo"
}
)
);
i3GEOadmin.grupos.ondeNos.html(html);
//valor do filtro atual
var filtro = i3GEOadmin.core.valorFiltro();
//filtro
html = Mustache.to_html(
"{{#data}}" + $("#templateFiltro").html() + "{{/data}}",
{"data":dados}
);
$("#filtro").html("" + html);
$("#filtro").combobox();
$(".ui-autocomplete-input").attr( "title", "Filtro" );
if(filtro != ""){
i3GEOadmin.core.defineFiltro(filtro);
i3GEOadmin.core.filtra(i3GEOadmin.core.pegaFiltro());
}
if(i3GEOadmin.grupos.formAdicionaNo == ""){
html = Mustache.to_html(
$("#templateFormNos").html(),
$.extend(
{},
i3GEOadmin.grupos.dicionario,
{
"id_n1": "modal",
"escondido": "hidden",
"ordem": 0,
"excluir": i3GEOadmin.grupos.dicionario.cancelar,
"opcoesPerfil": i3GEOadmin.grupos.opcoesPerfil,
"onExcluir": "i3GEOadmin.core.fechaModalGeral",//funcao
"onSalvar": "i3GEOadmin.grupos.adicionaNo",//funcao
"opcoesPublicado": function(){
var hash = {};
hash["sim"] = i3GEOadmin.grupos.dicionario.sim;
hash["nao"] = i3GEOadmin.grupos.dicionario.nao;
return Mustache.to_html(
$("#templateOpcoesPublicado").html(),
hash
);
},
"opcoesNo": function(){
var html = '' + Mustache.to_html(
"{{#data}}" + $("#templateOpcoesNo").html() + "{{/data}}",
{"data":grupos}
);
return html;
}
}
)
);
i3GEOadmin.grupos.formAdicionaNo = html;
}
},
editarNoDialogo: function(id){
i3GEOadmin.core.fechaModalGeral();
i3GEOadmin.core.modalAguarde(true);
$.post(
"exec.php?funcao=listaunico",
"id_n1=" + id
)
.done(
function(data, status){
var json = jQuery.parseJSON(data);
var html = Mustache.to_html(
"{{#data}}" + $("#templateFormNos").html() + "{{/data}}",
$.extend(
{},
i3GEOadmin.grupos.dicionario,
{
"data": json,
"opcoesPerfil": i3GEOadmin.grupos.opcoesPerfil,
"onExcluir": "i3GEOadmin.grupos.excluirNoDialogo",//funcao
"onSalvar": "i3GEOadmin.grupos.salvarNoDialogo",//funcao
"opcoesPublicado": function(){
var hash = {};
hash[this.publicado + "-sel"] = "selected";
hash["sim"] = i3GEOadmin.grupos.dicionario.sim;
hash["nao"] = i3GEOadmin.grupos.dicionario.nao;
return Mustache.to_html(
$("#templateOpcoesPublicado").html(),
hash
);
},
"opcoesNo": function(){
var p = this.id_grupo;
var id = "";
//marca o selecionado
var grupos = i3GEOadmin.grupos.listaTiposGrupos;
$(grupos).each(
function(i,el){
if(el.id_grupo == p){
grupos[i]["selected"] = "selected";
id = i;
}
else{
grupos[i]["selected"] = "";
}
}
);
var html = '' + Mustache.to_html(
"{{#data}}" + $("#templateOpcoesNo").html() + "{{/data}}",
{"data":grupos}
);
//volta ao normal
grupos[id]["selected"] = "";
return html;
}
}
)
);
i3GEOadmin.core.abreModalGeral(html);
}
)
.fail(
function(data){
i3GEOadmin.core.modalAguarde(false);
i3GEOadmin.core.mostraErro(data.status + " " +data.statusText);
}
);
},
adicionaNoDialogo: function(){
i3GEOadmin.core.abreModalGeral(i3GEOadmin.grupos.formAdicionaNo);
},
// os parametros sao obtidos do formulario aberto do modal
adicionaNo: function(){
var parametros = $("#form-edicao-no-modal").serialize();
i3GEOadmin.core.fechaModalGeral();
i3GEOadmin.core.modalAguarde(true);
$.post(
"exec.php?funcao=adicionar",
parametros + "&id_menu=" + i3GEOadmin.grupos.id_menu
)
.done(
function(data, status){
i3GEOadmin.core.modalAguarde(false);
i3GEOadmin.core.iconeAguarde(i3GEOadmin.grupos.ondeNos);
i3GEOadmin.grupos.lista();
}
)
.fail(
function(data){
i3GEOadmin.core.modalAguarde(false);
i3GEOadmin.core.mostraErro(data.status + " " +data.statusText);
}
);
},
excluirNoDialogo: function(id){
var hash = {
"mensagem": i3GEOadmin.grupos.dicionario.confirma,
"onBotao1": "i3GEOadmin.grupos.excluirNo('"+id+"')",
"botao1": i3GEOadmin.grupos.dicionario.sim,
"onBotao2": "i3GEOadmin.core.fechaModalConfirma();",
"botao2": i3GEOadmin.grupos.dicionario.nao
};
i3GEOadmin.core.abreModalConfirma(hash);
},
excluirNo: function(id){
i3GEOadmin.core.modalAguarde(true);
$.post(
"exec.php?funcao=excluir",
"id_n1=" + id
)
.done(
function(data, status){
i3GEOadmin.core.modalAguarde(false);
i3GEOadmin.grupos.lista();
}
)
.fail(
function(data){
i3GEOadmin.core.modalAguarde(false);
i3GEOadmin.core.mostraErro(data.status + " " +data.statusText);
}
);
},
salvarNoDialogo: function(id){
i3GEOadmin.grupos.parametrosSalvar = $("#form-edicao-no-" + id).serialize();
var hash = {
"mensagem": i3GEOadmin.grupos.dicionario.confirma,
"onBotao1": "i3GEOadmin.grupos.salvarNo('"+id+"')",
"botao1": i3GEOadmin.grupos.dicionario.sim,
"onBotao2": "i3GEOadmin.grupos.parametrosSalvar = '';i3GEOadmin.core.fechaModalConfirma();",
"botao2": i3GEOadmin.grupos.dicionario.nao
};
i3GEOadmin.core.abreModalConfirma(hash);
},
salvarNo: function(id){
var parametros = i3GEOadmin.grupos.parametrosSalvar;
i3GEOadmin.core.fechaModalGeral();
i3GEOadmin.core.modalAguarde(true);
$.post(
"exec.php?funcao=alterar",
"id_n1="+ id + "&"+parametros + "&id_menu=" + i3GEOadmin.grupos.id_menu
)
.done(
function(data, status){
i3GEOadmin.grupos.parametrosSalvar = '';
i3GEOadmin.core.modalAguarde(false);
i3GEOadmin.core.iconeAguarde(i3GEOadmin.grupos.ondeNos);
i3GEOadmin.grupos.lista();
}
)
.fail(
function(data){
i3GEOadmin.grupos.parametrosSalvar = '';
i3GEOadmin.core.modalAguarde(false);
i3GEOadmin.core.mostraErro(data.status + " " +data.statusText);
}
);
},
ordenaNos: function(data){
i3GEOadmin.core.modalAguarde(true);
$.post(
"exec.php?funcao=ordena",
"id_menu=" + i3GEOadmin.grupos.id_menu + "&novaordem=" + data.join(" ")
)
.done(
function(data, status){
i3GEOadmin.core.modalAguarde(false);
i3GEOadmin.core.iconeAguarde(i3GEOadmin.grupos.ondeNos);
i3GEOadmin.grupos.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_menu=" + i3GEOadmin.grupos.id_menu + "&novaordem=" + data.join(" ")
)
.done(
function(data, status){
i3GEOadmin.core.modalAguarde(false);
i3GEOadmin.core.iconeAguarde(i3GEOadmin.grupos.ondeNos);
i3GEOadmin.grupos.lista();
}
)
.fail(
function(data){
i3GEOadmin.core.modalAguarde(false);
i3GEOadmin.core.mostraErro(data.status + " " +data.statusText);
}
);
},
editarSubGrupos: function(id,titulo){
//muda a url para que o usuario possa voltar pelo botao do navegador
//var u = window.location.origin
//+ window.location.pathname
//+ "?id_filtro=" + id + "&id_menu=" + i3GEOadmin.grupos.id_menu + "&id_n1=" + id;
//window.history.replaceState(null,null,u);
//abre a pagina de edicao
window.location.href = "subgrupos/index.php?id_n1=" + id + "&id_menu=" + i3GEOadmin.grupos.id_menu;
},
editarListaDeGrupos: function(id,titulo){
//muda a url para que o usuario possa voltar pelo botao do navegador
//var u = window.location.origin
//+ window.location.pathname
//+ "?id_filtro=" + id + "&id_menu=" + i3GEOadmin.grupos.id_menu + "&id_n1=" + id;
//window.history.replaceState(null,null,u);
//abre a pagina de edicao
window.location.href = "listadegrupos/index.php?id_n1=" + id + "&id_menu=" + i3GEOadmin.grupos.id_menu;
},
addInput: function(id,valor){
var i = $("#"+id);
$(i.val(i.val() + ' ' + valor));
}
};