@model DashboardModel @inject IPermissionService permissionService @using Nop.Services.Security @{ //page title ViewBag.PageTitle = T("Admin.Dashboard").Text; var canManageOrders = await permissionService.AuthorizeAsync(StandardPermission.Orders.ORDERS_VIEW); var canManageCustomers = await permissionService.AuthorizeAsync(StandardPermission.Customers.CUSTOMERS_VIEW); var canManageProducts = await permissionService.AuthorizeAsync(StandardPermission.Catalog.PRODUCTS_VIEW); var canManageReturnRequests = await permissionService.AuthorizeAsync(StandardPermission.Orders.RETURN_REQUESTS_VIEW); //close configuration steps value const string closeCardAttributeName = "CloseConfigurationSteps"; var closeConfigurationStepsCard = await genericAttributeService.GetAttributeAsync(await workContext.GetCurrentCustomerAsync(), closeCardAttributeName); //active menu item (system name) NopHtml.SetActiveMenuItemSystemName("Dashboard"); }

Fruit Bank @T("Admin.Dashboard")

@await Component.InvokeAsync(typeof(AdminWidgetViewComponent), new { widgetZone = AdminWidgetZones.DashboardTop, additionalData = Model }) @if (!Model.IsLoggedInAsVendor) {
@await Html.PartialAsync("~/Plugins/Misc.FruitBankPlugin/Areas/Admin/Components/_WelcomeMessage.cshtml")
} @await Component.InvokeAsync(typeof(AdminWidgetViewComponent), new { widgetZone = AdminWidgetZones.DashboardNewsAfter, additionalData = Model }) @if (!Model.IsLoggedInAsVendor && canManageOrders && canManageCustomers && canManageProducts && canManageReturnRequests) {
@await Component.InvokeAsync(typeof(CommonStatisticsViewComponent))
} @await Component.InvokeAsync(typeof(AdminWidgetViewComponent), new { widgetZone = AdminWidgetZones.DashboardCommonstatisticsAfter, additionalData = Model }) @if (!Model.IsLoggedInAsVendor && (canManageOrders || canManageCustomers)) {
@if (!Model.IsLoggedInAsVendor && canManageOrders) {
@await Html.PartialAsync("~/Areas/Admin/Views/Home/_OrderStatistics.cshtml")
} @if (!Model.IsLoggedInAsVendor && canManageCustomers) {
@await Html.PartialAsync("~/Areas/Admin/Views/Home/_CustomerStatistics.cshtml")
}
} @await Component.InvokeAsync(typeof(AdminWidgetViewComponent), new { widgetZone = AdminWidgetZones.DashboardCustomerorderchartsAfter, additionalData = Model }) @if (!Model.IsLoggedInAsVendor && canManageOrders) {
@await Html.PartialAsync("~/Areas/Admin/Views/Home/_OrderAverageReport.cshtml")
@await Html.PartialAsync("~/Areas/Admin/Views/Home/_OrderIncompleteReport.cshtml")
} @await Component.InvokeAsync(typeof(AdminWidgetViewComponent), new { widgetZone = AdminWidgetZones.DashboardOrderreportsAfter, additionalData = Model }) @if (!Model.IsLoggedInAsVendor && (canManageOrders || canManageProducts)) {
@if (canManageOrders) {
@await Html.PartialAsync("~/Areas/Admin/Views/Home/_LatestOrders.cshtml")
}
@if (canManageProducts) { @await Html.PartialAsync("~/Areas/Admin/Views/Home/_PopularSearchTermsReport.cshtml") }
} @await Component.InvokeAsync(typeof(AdminWidgetViewComponent), new { widgetZone = AdminWidgetZones.DashboardLatestordersSearchtermsAfter, additionalData = Model }) @if (canManageOrders) {
@await Html.PartialAsync("~/Areas/Admin/Views/Home/_BestsellersBriefReportByQuantity.cshtml")
@await Html.PartialAsync("~/Areas/Admin/Views/Home/_BestsellersBriefReportByAmount.cshtml")
} @await Component.InvokeAsync(typeof(AdminWidgetViewComponent), new { widgetZone = AdminWidgetZones.DashboardBottom, additionalData = Model })