示例#1
0
        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);
            }
        }
示例#2
0
        // 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();
        }
示例#3
0
        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);
            }
        }