private void PreencherMenu(ManterPagina manterPagina, Usuario usuarioLogado) { var paginas = manterPagina.ObterTodasPaginas(true).Where(p => p.Profundidade == 1 && p.PossuiPermissao(usuarioLogado)); foreach (var pagina in paginas) { var li = new HtmlGenericControl("li"); li.Attributes.Add("class", "item-menu " + pagina.Estilo); var link = new HtmlGenericControl("a"); link.Attributes.Add("href", pagina.CaminhoRelativo); link.InnerHtml = "<span class=\"glyphicon glyphicon-" + pagina.IconeMenu + " menu-icon\"></span><br/>" + pagina.Nome; li.Controls.Add(link); barraMenu.Controls.Add(li); } // Inserir o gerenciador de páginas no menu principal. if (usuarioLogado.SuperAdministrador) { var li = new HtmlGenericControl("li"); li.Attributes.Add("class", "item-menu paginas"); var link = new HtmlGenericControl("a"); link.Attributes.Add("href", "/Paginas.aspx"); link.InnerHtml = "<span class=\"glyphicon glyphicon-list menu-icon\"></span><br/>" + "Páginas"; li.Controls.Add(link); barraMenu.Controls.Add(li); } }
// Métodos private void AtualizarGridView() { var manterPagina = new ManterPagina(); var paginas = manterPagina.ObterTodasPaginas(true, false, false); if (Request["nivel"] != null) { int profundidade; switch (Request["nivel"]) { case "menu": profundidade = 1; break; case "agrupador": profundidade = 2; break; case "pagina": profundidade = 3; break; case "cadastro": profundidade = 4; break; case "subcadastro": profundidade = 5; break; default: profundidade = 0; break; } ddlFiltroProfundidade.SelectedValue = profundidade.ToString(); if (profundidade != 0) { paginas = paginas.Where(p => p.Profundidade <= profundidade); } } gdvPaginas.DataSource = paginas; gdvPaginas.DataBind(); }
private void PreencherSidebar(ManterPagina manterPagina, Usuario usuarioLogado, Dominio.Classes.Pagina paginaAtual) { if (paginaAtual.CaminhoRelativo.ToLower() == "/paginas.aspx") { // Esconde o sidebar e coloca a página em largura máxima. sidebar.Visible = false; contentArea.Attributes.Remove("class"); } else { // Coloca a página em largura reduzida para caber o sidebar. contentArea.Attributes["class"] = "col-sm-9 conteudo_busca content-area"; // Obtém o menu atual para filtrar somente pelas páginas dentro desse Menu. var menuAtual = paginaAtual.Profundidade == (int)enumTipoPagina.Menu ? paginaAtual : manterPagina.ObterMenuPai(paginaAtual); // Obtém todas as páginas com filtro. var paginas = manterPagina.ObterTodasPaginas(true).Where(p => p.PossuiPermissao(usuarioLogado) && p.IsFilhoDe(menuAtual)).ToList(); var sidebarRow = new HtmlGenericControl("div"); sidebarRow.Attributes["class"] = "row"; var sidebarDiv = new HtmlGenericControl("div"); sidebarDiv.Attributes["class"] = "col-sm-12"; // Preencher os agrupadores foreach (var agrupador in paginas.Where(p => p.Profundidade == 2 && p.PossuiFilho() && p.PossuiPermissao(usuarioLogado))) { var row = new HtmlGenericControl("div"); row.Attributes["class"] = "row"; var box = new HtmlGenericControl("div"); box.Attributes["class"] = "box"; var subtitulo = new HtmlGenericControl("div"); subtitulo.Attributes["class"] = "subtitulo"; var nome = new HtmlGenericControl("h3"); nome.InnerHtml = agrupador.Nome; if (agrupador.IsPaiOuIguala(paginaAtual)) { nome.Attributes.Add("class", "text-bold"); } var contentBody = new HtmlGenericControl("div"); contentBody.Attributes["class"] = "contentBody"; var ul = new HtmlGenericControl("ul"); ul.Attributes.Add("class", "links"); // Preencher as páginas foreach (var pagina in paginas.Where(p => p.Profundidade == 3 && p.IsFilhoDe(agrupador))) { var li = new HtmlGenericControl("li"); li.Attributes.Add("class", "menu-item"); var linkPagina = new HtmlGenericControl("a"); linkPagina.Attributes.Add("class", "menu-nome" + (pagina.IsPaiOuIguala(paginaAtual) ? " text-bold" : "")); linkPagina.Attributes.Add("tittle", "Abrir " + pagina.Nome); linkPagina.Attributes.Add("href", pagina.CaminhoRelativo); linkPagina.InnerHtml = pagina.Nome; var actions = new HtmlGenericControl("span"); actions.Attributes.Add("class", "actions visible-md visible-lg"); // Preencher cadastro foreach (var cadastro in paginas.Where(p => p.Profundidade == 4 && p.IsFilhoDe(pagina))) { var cadastroIcon = new HtmlGenericControl("a"); cadastroIcon.Attributes.Add("href", cadastro.CaminhoRelativo); cadastroIcon.Attributes.Add("class", "glyphicon glyphicon-" + cadastro.IconeMenu + " " + (cadastro.IsPaiOuIguala(paginaAtual) ? "link-no-underline" : " menu-relatar")); actions.Controls.Add(cadastroIcon); } var linkIcon = new HtmlGenericControl("a"); linkIcon.Attributes.Add("href", pagina.CaminhoRelativo); // Insere ícone padrão do agrupador ou ícone personalizado caso tenha sido informado. linkIcon.Attributes.Add("class", "glyphicon glyphicon-" + (string.IsNullOrEmpty(pagina.IconeMenu) ? agrupador.IconePaginas : pagina.IconeMenu) + " " + (pagina.ID == paginaAtual.ID ? "link-no-underline" : "menu-relatar")); actions.Controls.Add(linkIcon); li.Controls.Add(linkPagina); li.Controls.Add(actions); ul.Controls.Add(li); } // Insere os controles em hierarquia. contentBody.Controls.Add(ul); subtitulo.Controls.Add(nome); subtitulo.Controls.Add(contentBody); box.Controls.Add(subtitulo); row.Controls.Add(box); sidebarDiv.Controls.Add(box); } sidebarRow.Controls.Add(sidebarDiv); sidebar.Controls.Add(sidebarRow); } }