/*
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.mapfile = {
//variavel global indicando o elemento que recebera a lista de menus
ondeLista: "",
favoritosArray: [],
formAdiciona: "",
parametrosSalvar: "",
init: function(onde,palavra){
i3GEOadmin.mapfile.ondeLista = onde;
i3GEOadmin.mapfile.lista(palavra);
i3GEOadmin.mapfile.retornaFavoritosArray();
},
/*
Function: lista
Obtém a lista
*/
lista: function(palavra,validar){
if(!validar){
validar = "";
}
i3GEOadmin.core.iconeAguarde(i3GEOadmin.mapfile.ondeLista);
$.post(
"exec.php?funcao=lista",
"&palavra=" + palavra + "&validar=" + validar
)
.done(
function(data, status){
//valor do filtro atual
var filtro = i3GEOadmin.core.valorFiltro();
//objeto json com os dados viondos do banco
var json = jQuery.parseJSON(data);
var templateLista = $("#templateLista").html();
templateLista = templateLista.replace("{{{templateFormLista}}}",$("#templateFormLista").html());
var html = Mustache.to_html(
"{{#data}}" + templateLista + "{{/data}}",
$.extend(
{},
i3GEOadmin.mapfile.dicionario,
{
"data": json
}
)
);
i3GEOadmin.mapfile.ondeLista.html(html);
i3GEOadmin.mapfile.montaFavoritos();
$("#totalMapfiles").html(json.length);
//filtro
html = Mustache.to_html(
"{{#data}}" + $("#templateFiltro").html() + "{{/data}}",
{"data":json}
);
$("#filtro").html("" + html);
$("#filtro").combobox();
$(".ui-autocomplete-input").attr( "title", "Filtro" );
if(filtro != ""){
i3GEOadmin.core.defineFiltro(filtro);
i3GEOadmin.core.filtra(i3GEOadmin.mapfile.pegaFiltro());
}
//monta um template para o modal de inclusao
if(i3GEOadmin.mapfile.formAdiciona == ""){
html = Mustache.to_html(
$("#templateManterTema").html(),
$.extend(
{},
i3GEOadmin.mapfile.dicionario,
{
"codigo": "",
"escondido": "hidden",
"excluir": i3GEOadmin.mapfile.dicionario.cancelar,
"onExcluir": "i3GEOadmin.core.fechaModalGeral",//funcao
"onSalvar": "i3GEOadmin.mapfile.adiciona",
"metaestatnao": "selected",
"acessopublico": "checked",
"criaMapfileTxt": i3GEOadmin.mapfile.dicionario.criaMapfile,
"criaMapfileDescTxt": i3GEOadmin.mapfile.dicionario.criaMapfileDesc
}
)
);
i3GEOadmin.mapfile.formAdiciona = html;
}
$.material.init();
}
)
.fail(function(data){
i3GEOadmin.mapfile.ondeLista.html("");
i3GEOadmin.core.mostraErro(data.status + " " +data.statusText);
});
},
editarDialogo: function(id){
i3GEOadmin.core.fechaModalGeral();
i3GEOadmin.core.modalAguarde(true);
//deve-se usar o codigo e nao o id_tema
$.post(
"exec.php?funcao=listaunico",
"codigo=" + id
)
.done(
function(data, status){
var json = jQuery.parseJSON(data);
var html = Mustache.to_html(
"{{#data}}" + $("#templateManterTema").html() + "{{/data}}",
$.extend(
{},
i3GEOadmin.mapfile.dicionario,
{
"data": json["dados"],
"onExcluir": "i3GEOadmin.mapfile.excluirDialogo",//funcao
"onSalvar": "i3GEOadmin.mapfile.salvarAlteracaoDialogo",
"criaMapfileTxt": i3GEOadmin.mapfile.dicionario.editaMapfile,
"criaMapfileDescTxt": i3GEOadmin.mapfile.dicionario.editaMapfileDesc
}
)
);
i3GEOadmin.core.abreModalGeral(html);
}
)
.fail(
function(data){
i3GEOadmin.core.modalAguarde(false);
i3GEOadmin.core.mostraErro(data.status + " " +data.statusText);
}
);
},
salvarAlteracaoDialogo: function(codigo,id){
i3GEOadmin.mapfile.parametrosSalvar = $("#form-edicao-" + codigo).serialize();
var hash = {
"mensagem": i3GEOadmin.mapfile.dicionario.confirma,
"onBotao1": "i3GEOadmin.mapfile.salva('"+id+"')",
"botao1": i3GEOadmin.mapfile.dicionario.sim,
"onBotao2": "i3GEOadmin.mapfile.parametrosSalvar = '';i3GEOadmin.core.fechaModalConfirma();",
"botao2": i3GEOadmin.mapfile.dicionario.nao
};
i3GEOadmin.core.abreModalConfirma(hash);
},
salva: function(id){
var parametros = i3GEOadmin.mapfile.parametrosSalvar;
i3GEOadmin.core.fechaModalGeral();
i3GEOadmin.core.modalAguarde(true);
$.post(
"exec.php?funcao=alterar",
"id_tema=" + id + "&"+parametros
)
.done(
function(data, status){
i3GEOadmin.mapfile.parametrosSalvar = '';
i3GEOadmin.core.modalAguarde(false);
i3GEOadmin.core.iconeAguarde(i3GEOadmin.mapfile.ondeLista);
i3GEOadmin.mapfile.lista("","");
}
)
.fail(
function(data){
i3GEOadmin.mapfile.parametrosSalvar = '';
i3GEOadmin.core.modalAguarde(false);
i3GEOadmin.core.mostraErro(data.status + " " +data.statusText);
}
);
},
adicionaDialogo: function(){
i3GEOadmin.core.abreModalGeral(i3GEOadmin.mapfile.formAdiciona);
},
// os parametros sao obtidos do formulario aberto do modal
adiciona: function(){
var parametros = $("#modalGeral form").serialize();
i3GEOadmin.core.fechaModalGeral();
i3GEOadmin.core.modalAguarde(true);
$.post(
"exec.php?funcao=adicionar",
parametros
)
.done(
function(data, status){
var json = jQuery.parseJSON(data);
i3GEOadmin.core.modalAguarde(false);
i3GEOadmin.core.iconeAguarde(i3GEOadmin.mapfile.ondeLista);
i3GEOadmin.mapfile.favoritosArray.push(json.codigo);
i3GEOadmin.mapfile.lista("","");
}
)
.fail(
function(data){
i3GEOadmin.core.modalAguarde(false);
i3GEOadmin.core.mostraErro(data.status + " " +data.statusText);
}
);
},
excluirDialogo: function(id){
var hash = {
"mensagem": i3GEOadmin.mapfile.dicionario.confirma,
"onBotao1": "i3GEOadmin.mapfile.excluir('"+id+"')",
"botao1": i3GEOadmin.mapfile.dicionario.sim,
"onBotao2": "i3GEOadmin.core.fechaModalConfirma();",
"botao2": i3GEOadmin.mapfile.dicionario.nao
};
i3GEOadmin.core.abreModalConfirma(hash);
},
excluir: function(id){
i3GEOadmin.core.modalAguarde(true);
$.post(
"exec.php?funcao=excluir",
"codigo="+id
)
.done(
function(data, status){
i3GEOadmin.core.modalAguarde(false);
i3GEOadmin.mapfile.lista("","");
i3GEOadmin.mapfile.registraFavoritos(id);
}
)
.fail(
function(data){
i3GEOadmin.core.modalAguarde(false);
i3GEOadmin.core.mostraErro(data.status + " " +data.statusText);
}
);
},
salvarDialogo: function(id){
i3GEOadmin.mapfile.parametrosSalvar = $("#form-edicao-" + id).serialize();
//console.info(i3GEOadmin.mapfile.parametrosSalvar);
var hash = {
"mensagem": i3GEOadmin.mapfile.dicionario.confirma,
"onBotao1": "i3GEOadmin.mapfile.salvar('"+id+"')",
"botao1": i3GEOadmin.mapfile.dicionario.sim,
"onBotao2": "i3GEOadmin.mapfile.parametrosSalvar = '';i3GEOadmin.core.fechaModalConfirma();",
"botao2": i3GEOadmin.mapfile.dicionario.nao
};
i3GEOadmin.core.abreModalConfirma(hash);
},
retornaFavoritosArray: function(){
var temp = i3GEO.util.pegaCookie("I3GEOfavoritosEditorMapfile");
if(temp){
i3GEOadmin.mapfile.favoritosArray = temp.split(",");
}
else{
i3GEOadmin.mapfile.favoritosArray = [];
}
return i3GEOadmin.mapfile.favoritosArray;
},
registraFavoritos: function(codigoTema){
i3GEOadmin.mapfile.favoritosArray.remove("NaN");
if(i3GEO.util.in_array(codigoTema,i3GEOadmin.mapfile.favoritosArray)){
i3GEOadmin.mapfile.favoritosArray.remove(codigoTema);
} else {
i3GEOadmin.mapfile.favoritosArray.push(codigoTema);
}
i3GEO.util.insereCookie("I3GEOfavoritosEditorMapfile", i3GEOadmin.mapfile.favoritosArray.toString(","));
i3GEOadmin.mapfile.montaFavoritos();
},
montaFavoritos: function(){
//o try aqui e necessario para evitar seletor com erro. Eventualmente.
try {
var mapfile, i, conteudo = [], n, codigo, h;
n = i3GEOadmin.mapfile.favoritosArray.length;
for (i=0; i