示例#1
0
        private void EstilizarPagina(Usuario usuarioLogado, ManterPagina manterPagina, Dominio.Classes.Pagina paginaAtual)
        {
            string estilo;
            string nomePagina;

            if (paginaAtual.Profundidade == 1)
            {
                estilo     = paginaAtual.Estilo;
                nomePagina = paginaAtual.Nome;
            }
            else
            {
                var menuAtual = manterPagina.ObterMenuPai(paginaAtual);

                if (menuAtual == null)
                {
                    RedirecionarPaginaInexistente(usuarioLogado, manterPagina, enumPermissaoPagina.PaginaInexistente);
                    return;
                }

                estilo     = menuAtual.Estilo;
                nomePagina = menuAtual.Nome;
            }

            MainBody.Attributes["class"] = estilo;
            NomeLocalizacao.InnerText    = nomePagina;
        }
示例#2
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);
            }
        }