August 22, 2023 / 1 minute

Package: Simple Dashboards

An easier way to create Custom Dashboards!

Umbraco CMS allows developers to extend the Backoffice by adding custom dashboards. Check the Umbraco docs to learn more about Umbraco dashboards.

So what's wrong?

Nothing. 

Follow the guide and within a few hours you can get a dashboard up and running. 

But can it be easier?

I think so.

Here's my opinionated way to get started creating a dashboard in the easiest way possible.

NuGet package icon for Umbraco.Community.SimpleDashboards

Simple Dashboards

Simplifies C# based Umbraco Dashboards

Learn more

Your first dashboard in less than 5 minutes

Install Package

    dotnet add package Umbraco.Community.SimpleDashboards

Create Dashboard

    using Umbraco.Community.SimpleDashboards.Core; 
public class BasicDashboard : SimpleDashboard { }

Create View

    @inherits Umbraco.Community.SimpleDashboards.DashboardViewPage

Hello Umbraco

My Dashboard alias is: @Model.Dashboard.Alias

Open the Backoffice

And as easy as that you have your first Simple Dashboard 🥳

Hang on, what about permissions, sections and language files?

Simple Dashboards allows you to configure what Users can access your dashboard based on their User Group or allowed Section. 

You can also choose which Section to display the dashboard on.

Configure your dashboard name for your website's supported language variants.

    using Umbraco.Community.SimpleDashboards.Core;

// Control order of where dashboard shows
[Umbraco.Cms.Core.Composing.Weight(-100)]
public class BasicDashboard : SimpleDashboard
{
    public BasicDashboard()
    {
        // Set dashboard name
        SetName("Example Dashboard Name (default)");
        // Set culture specific dashboard name
        SetName("Example Dashboard Name (en-GB)", "en-GB");

        // Show dashboard in the Media & Content sections
        AddSection(Cms.Core.Constants.Applications.Media);
        AddSection(Cms.Core.Constants.Applications.Content);

        // Allow Editors
        AddAccessRule(SimpleAccessRule.AllowEditorGroup);

        // Allow custom User Group
        Allow(x=>x.UserGroup("myGroup"));
        // Deny custom User Group
        Deny(x=>x.UserGroup("myOtherGroup"));
    }
}

How can I get involved?

If you have any suggestions, feedback or issues to report please feel free to reach out to me on the GitHub repo 

I would welcome any pull requests 🙂

💖