Open Source Web Application Framework for ASP.NET Core
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

4.3 KiB

ASP.NET Core MVC / Razor Pages UI: Barras de Ferramentas

O sistema de barras de ferramentas é usado para definir barras de ferramentas na interface do usuário. Módulos (ou sua aplicação) podem adicionar itens a uma barra de ferramentas e, em seguida, o tema renderiza a barra de ferramentas no layout.

Existe apenas uma barra de ferramentas padrão chamada "Principal" (definida como uma constante: StandardToolbars.Main). O Tema Básico renderiza a barra de ferramentas principal como mostrado abaixo:

bookstore-toolbar-highlighted

Na captura de tela acima, existem dois itens adicionados à barra de ferramentas principal: o componente de alternância de idioma e o menu do usuário. Você pode adicionar seus próprios itens aqui.

Além disso, o Tema LeptonX Lite possui duas barras de ferramentas diferentes para visualizações de desktop e móveis, definidas como constantes: LeptonXLiteToolbars.Main, LeptonXLiteToolbars.MainMobile.

LeptonXLiteToolbars.Main LeptonXLiteToolbars.MainMobile
leptonx leptonx

Exemplo: Adicionar um Ícone de Notificação

Neste exemplo, vamos adicionar um ícone de notificação (sino) à esquerda do item de alternância de idioma. Um item na barra de ferramentas deve ser um componente de visualização. Então, primeiro, crie um novo componente de visualização em seu projeto:

bookstore-notification-view-component

NotificationViewComponent.cs

public class NotificationViewComponent : AbpViewComponent
{
    public async Task<IViewComponentResult> InvokeAsync()
    {
        return View("/Pages/Shared/Components/Notification/Default.cshtml");
    }
}

Default.cshtml

<div id="MainNotificationIcon" style="color: white; margin: 8px;">
    <i class="far fa-bell"></i>
</div>

Agora, podemos criar uma classe que implementa a interface IToolbarContributor:

public class MyToolbarContributor : IToolbarContributor
{
    public Task ConfigureToolbarAsync(IToolbarConfigurationContext context)
    {
        if (context.Toolbar.Name == StandardToolbars.Main)
        {
            context.Toolbar.Items
                .Insert(0, new ToolbarItem(typeof(NotificationViewComponent)));
        }

        return Task.CompletedTask;
    }
}

Você pode usar a autorização para decidir se deve adicionar um ToolbarItem.

if (await context.IsGrantedAsync("NomeDaMinhaPermissao"))
{
    //...adicionar itens da barra de ferramentas
}

Você pode usar o método de extensão RequirePermissions como um atalho. Também é mais eficiente, o ABP otimiza a verificação de permissão para todos os itens.

context.Toolbar.Items.Insert(0, new ToolbarItem(typeof(NotificationViewComponent)).RequirePermissions("NomeDaMinhaPermissao"));

Essa classe adiciona o NotificationViewComponent como o primeiro item na barra de ferramentas Main.

Por fim, você precisa adicionar esse contribuidor às AbpToolbarOptions, no ConfigureServices do seu módulo:

Configure<AbpToolbarOptions>(options =>
{
    options.Contributors.Add(new MyToolbarContributor());
});

Isso é tudo, você verá o ícone de notificação na barra de ferramentas quando executar a aplicação:

bookstore-notification-icon-on-toolbar

NotificationViewComponent neste exemplo simplesmente retorna uma visualização sem nenhum dado. Na vida real, provavelmente você desejará consultar o banco de dados (ou chamar uma API HTTP) para obter notificações e passá-las para a visualização. Se necessário, você pode adicionar um arquivo JavaScript ou CSS ao pacote global para o item da barra de ferramentas.

IToolbarManager

IToolbarManager é usado para renderizar a barra de ferramentas. Ele retorna os itens da barra de ferramentas por um nome de barra de ferramentas. Isso é geralmente usado pelos temas para renderizar a barra de ferramentas no layout.