catalogoMenus.js 9.54 KB
i3GEO.catalogoMenus = {
	//restringe os menus que poderao ser mostrados
	IDSMENUS: [],
	MENU: "",
	GRUPO: "",
	SUBGRUPO: "",
	config: {
	    "templateDir": "templates/dir.html",
	    "templateTema": "templates/tema.html",
	    "idOndeMenus": "catalogoMenus",
	    "idCatalogoPrincipal": "catalogoPrincipal",
	    "idCatalogoNavegacao": "catalogoNavegacao",
	    "idOndeMigalha": "catalogoMigalha",
	    "folderFirst": "false"
	},
	carregaTemplates: function(){
	    var t1 = i3GEO.catalogoMenus.config.templateDir,
	    t2 = i3GEO.catalogoMenus.config.templateTema,
	    t3 = $("#" + i3GEO.catalogoMenus.config.idOndeMigalha).attr("data-template");
	    $.when( $.get(t1),$.get(t2),$.get(t3) ).done(function(r1,r2,r3) {
		i3GEO.template.dir = r1[0];
		i3GEO.template.tema = r2[0];
		i3GEO.template.catalogoMigalha = r3[0];
		i3GEO.catalogoMenus.listaMenus();
	    }).fail(function() {
		i3GEO.janela.closeMsg($trad("erroTpl"));
		return;
	    });
	},
	aguarde: function(){
	    $("#" + i3GEO.catalogoMenus.config.idOndeMenus).html($trad("o1"));
	},
	atualizaMigalha: function(nome,onclick){
	    var t = Mustache.to_html(
		    i3GEO.template.catalogoMigalha,
		    {"nome":nome,"onclick":onclick}
	    );
	    $("#" + i3GEO.catalogoMenus.config.idOndeMigalha).html(t);
	},
	escondeCatalogoPrincipal: function(){
	    $("#" + i3GEO.catalogoMenus.config.idCatalogoPrincipal).hide();
	},
	//utilizado tambem ao fechar a guia
	mostraCatalogoPrincipal: function(){
	    $("#" + i3GEO.catalogoMenus.config.idCatalogoNavegacao).fadeOut( "fast", function(){
		$("#" + i3GEO.catalogoMenus.config.idOndeMigalha).hide();
		$("#" + i3GEO.catalogoMenus.config.idCatalogoPrincipal).show();
	    });
	    //ao fechar a guia
	    //i3GEO.catalogoInde.DADOS = "";
	},
	adicionaTema : function(tid) {
	    if (typeof (console) !== 'undefined')
		console.info("i3GEO.catalogoMenus.adicionaTema()");

	    // confirma se o tema existe no mapa
	    var tema = i3GEO.arvoreDeCamadas.pegaTema(tid),ck;
	    if ( tema !== "" && tema.plugini3geo.plugin != "parametrossql") {
		ck = i3GEO.arvoreDeCamadas.capturaCheckBox(tid);
		if(ck != false && ck.onclick){
		    ck.checked = !ck.checked;
		    ck.onclick.call(ck);
		} else {
		    i3GEO.janela.tempoMsg($trad("x76"));
		}
	    } else {
		i3GEO.php.adtema(i3GEO.atualiza, tid);
	    }
	},
	listaMenus: function(config){
	    if (typeof (console) !== 'undefined')
		console.info("i3GEO.catalogoMenus.listaMenus");

	    if(config){
		$.each( config, function( i,v ) {
		    i3GEO.catalogoMenus.config[i] = v;
		});
	    }

	    i3GEO.catalogoMenus.aguarde();
	    if(!i3GEO.template.dir || !i3GEO.template.tema || !i3GEO.template.catalogoMigalha){
		i3GEO.catalogoMenus.carregaTemplates();
		return;
	    } else {
		config = i3GEO.catalogoMenus.config;
		//para efeitos de compatibilidade
		if(i3GEO.arvoreDeTemas && i3GEO.arvoreDeTemas.IDSMENUS && i3GEO.arvoreDeTemas.IDSMENUS.length > 0){
		    i3GEO.catalogoMenus.IDSMENUS = i3GEO.arvoreDeTemas.IDSMENUS;
		}

		var montaMenus = function(dados){
		    var menus = dados.data,
		    clone = [],
		    n = i3GEO.catalogoMenus.IDSMENUS.length,
		    t;

		    //ajusta o nome
		    //verifica se o menu esta na lista de ids definidos em i3GEO.catalogoMenus.IDSMENUS
		    $.each( menus, function( i,v ) {
			if (n === 0 || i3GEO.catalogoMenus.IDSMENUS.indexOf(v.idmenu) >= 0 || i3GEO.catalogoMenus.IDSMENUS.indexOf(v.idmenu*1) >= 0){
			    v.nome = v.nomemenu;
			    v.descricao = v.desc;
			    v.onclick = "i3GEO.catalogoMenus.listaGrupos(" + v.idmenu + ",'" + v.nome + "')";
			    if(v.publicado.toLowerCase() == "nao"){
				v.nome = v.nome + " <small>(" + $trad("naoPublicado") + ")<small>";
			    }
			    //inclui apenas se o menu estiver marcado como publicado ou se o usuario estiver logado
			    //if(v.publicado.toLowerCase() != "nao"){
			    clone.push(v);
			    //}
			}
		    });
		    t = Mustache.to_html(
			    "{{#data}}" + i3GEO.template.dir + "{{/data}}",
			    {"data":clone}
		    );
		    $("#" + config.idOndeMenus).html(t);
		};
		i3GEO.php.pegalistademenus(montaMenus);
	    }
	},
	listaGrupos: function(idmenu, nomeMigalha){
	    if (typeof (console) !== 'undefined')
		console.info("i3GEO.catalogoMenus.listaGrupos");

	    //i3GEO.catalogoMenus.aguarde();

	    $("#i3GEOguiaMovelConteudo").scrollTop(0);
	    i3GEO.catalogoMenus.MENU = nomeMigalha;
	    i3GEO.catalogoMenus.atualizaMigalha(nomeMigalha,"i3GEO.catalogoMenus.mostraCatalogoPrincipal()");

	    var montaGrupos = function(dados){
		var grupos = dados.data.grupos,
		clone = [],
		config = i3GEO.catalogoMenus.config,
		g = "",
		t = "",
		temas = [];

		//monta a lista de grupos
		$.each( grupos, function( i,v ) {
		    if(v.id_n1){
			v.onclick = "i3GEO.catalogoMenus.listaSubGrupos(" + idmenu + "," + v.id_n1 + ",'" + v.nome + "','" + nomeMigalha + "')";
			if(v.publicado.toLowerCase() == "nao"){
			    v.nome = v.nome + " <small>(" + $trad("naoPublicado") + ")<small>";
			}
			clone.push(v);
		    }
		    if(v.temasraiz){
			temas = v.temasraiz;
		    }
		});
		g = Mustache.to_html(
			"{{#data}}" + i3GEO.template.dir + "{{/data}}",
			{"data":clone}
		);
		//monta a lista de temas
		clone = [];
		$.each( temas, function( i,v ) {
		    v.onclick = "i3GEO.catalogoMenus.adicionaTema('" + v.codigo_tema + "')";
		    if(v.publicado.toLowerCase() == "nao"){
			v.nome = v.nome + " <small>(" + $trad("naoPublicado") + ")<small>";
		    }
		    if(v.link && v.link.trim() != ""){
			v.link = "<a href='" + v.link + "' target='_blank' >Link</a>";
		    }
		    clone.push(v);
		});
		t = Mustache.to_html(
			"{{#data}}" + i3GEO.template.tema + "{{/data}}",
			{"data":clone}
		);
		if(config.folderFirst == "false"){
		    $("#" + config.idCatalogoNavegacao).html(t + g);
		} else {
		    $("#" + config.idCatalogoNavegacao).html(g + t);
		}
		$("#" + config.idCatalogoPrincipal).fadeOut( "fast", function(){
		    $("#" + i3GEO.catalogoMenus.config.idOndeMigalha).show();
		    $("#" + i3GEO.catalogoMenus.config.idCatalogoNavegacao).show();
		});
	    };
	    i3GEO.php.pegalistadegrupos(montaGrupos, idmenu, "nao");
	},
	listaSubGrupos: function(idmenu,id_n1,nomeMigalha){
	    $("#i3GEOguiaMovelConteudo").scrollTop(0);
	    if (typeof (console) !== 'undefined')
		console.info("i3GEO.catalogoMenus.listaSubGrupos");

	    //i3GEO.catalogoMenus.aguarde();
	    i3GEO.catalogoMenus.GRUPO = nomeMigalha;
	    i3GEO.catalogoMenus.escondeCatalogoPrincipal();

	    i3GEO.catalogoMenus.atualizaMigalha(nomeMigalha,"i3GEO.catalogoMenus.listaGrupos('" + idmenu + "','" + i3GEO.catalogoMenus.MENU + "')");

	    var montaSubGrupos = function(dados){
		var subgrupos = dados.data.subgrupo,
		clone = [],
		g = "",
		t = "",
		temas;

		//monta a lista de grupos
		$.each( subgrupos, function( i,v ) {
		    if(v.id_n2){
			v.onclick = "i3GEO.catalogoMenus.listaTemasSubgrupo(" + idmenu + "," + id_n1 + "," + v.id_n2 + ",'" + v.nome + "')";
			if(v.publicado.toLowerCase() == "nao"){
			    v.nome = v.nome + " <small>(" + $trad("naoPublicado") + ")<small>";
			}
			clone.push(v);
		    }
		});
		g = Mustache.to_html(
			"{{#data}}" + i3GEO.template.dir + "{{/data}}",
			{"data":clone}
		);
		//monta a lista de temas
		clone = [];
		temas = dados.data.temasgrupo;
		$.each( temas, function( i,v ) {
		    v.onclick = "i3GEO.catalogoMenus.adicionaTema('" + v.codigo_tema + "')";
		    if(v.publicado.toLowerCase() == "nao"){
			v.nome = v.nome + " <small>(" + $trad("naoPublicado") + ")<small>";
		    }
		    if(v.link && v.link.trim() != ""){
			v.link = "<a href='" + v.link + "' target='_blank' >Link</a>";
		    }
		    clone.push(v);
		});
		t = Mustache.to_html(
			"{{#data}}" + i3GEO.template.tema + "{{/data}}",
			{"data":clone}
		);

		$("#" + i3GEO.catalogoMenus.config.idCatalogoNavegacao).fadeOut( "fast", function(){
		    if(i3GEO.catalogoMenus.folderFirst == "false"){
			$("#" + i3GEO.catalogoMenus.config.idCatalogoNavegacao).html(t + g);
		    } else {
			$("#" + i3GEO.catalogoMenus.config.idCatalogoNavegacao).html(g + t);
		    }
		    $("#" + i3GEO.catalogoMenus.config.idOndeMigalha).show();
		    $("#" + i3GEO.catalogoMenus.config.idCatalogoNavegacao).show();
		});

	    };
	    i3GEO.php.pegalistadeSubgrupos(montaSubGrupos, idmenu, id_n1);
	},
	listaTemasSubgrupo: function(idmenu,id_n1,id_n2,nomeMigalha){
	    $("#i3GEOguiaMovelConteudo").scrollTop(0);
	    if (typeof (console) !== 'undefined')
		console.info("i3GEO.catalogoMenus.listaTemasSubgrupo");

	    //i3GEO.catalogoMenus.aguarde();
	    i3GEO.catalogoMenus.SUBGRUPO = nomeMigalha;
	    i3GEO.catalogoMenus.escondeCatalogoPrincipal();

	    i3GEO.catalogoMenus.atualizaMigalha(nomeMigalha,"i3GEO.catalogoMenus.listaSubGrupos(" + idmenu + "," + id_n1 + ",'" + i3GEO.catalogoMenus.GRUPO + "')");

	    var montaTemas = function(dados){
		var temas = dados.data.temas,
		clone = [],
		t = "";

		//monta a lista de temas
		clone = [];
		$.each( temas, function( i,v ) {
		    v.onclick = "i3GEO.catalogoMenus.adicionaTema('" + v.codigo_tema + "')";
		    if(v.publicado.toLowerCase() == "nao"){
			v.nome = v.nome + " <small>(" + $trad("naoPublicado") + ")<small>";
		    }
		    if(v.link && v.link.trim() != ""){
			v.link = "<a href='" + v.link + "' target='_blank' >Link</a>";
		    }
		    clone.push(v);
		});
		t = Mustache.to_html(
			"{{#data}}" + i3GEO.template.tema + "{{/data}}",
			{"data":clone}
		);

		$("#" + i3GEO.catalogoMenus.config.idCatalogoNavegacao).fadeOut( "fast", function(){
		    $("#" + i3GEO.catalogoMenus.config.idCatalogoNavegacao).html(t);
		    $("#" + i3GEO.catalogoMenus.config.idOndeMigalha).show();
		    $("#" + i3GEO.catalogoMenus.config.idCatalogoNavegacao).show();
		});
	    };
	    i3GEO.php.pegalistadetemas(montaTemas, idmenu, id_n1, id_n2);
	}
};