Dashboard Module for SilverStripe 3

3 Oct

Dashboard Module for SilverStripe 3

One of the wish-list features I hear a lot in the SilverStripe community is the inclusion of a dashboard view in the SilverStripe CMS. It’s easy to talk about, but when it comes down to actually collecting the requirements for such a view, things get complicated. Dashboards are very project-specific, and they are governed by immutable business logic and picky user preferences. It’s not an easy thing to ask the development team to just roll into the core.

I was working on a large project in SilverStripe 3 last month, and we had a client request to create an easy way to jump into the creation and browsing of specific content types, such as blogs and events. Initially, I built something static, but seeing the potential, I decided to make a full-blown, highly extensible module for SilverStripe 3.

While the Dashboard module comes with only half a dozen example panels to use on your dashboard, the real power of this module is in the API. It is very easy to build your own project-specific dashboard panels without getting your hands too dirty.

I’ve created two screencasts that demonstrate the Dashboard module. In the first screencast, we do a tour of the feature set and usage of the dashboard for end-users. The second screencast is targeted toward developers, and demonstrates how to build a highly customized dashboard panel.

Screencast — Part One: Overview and features

Screencast — Part Two: Building a custom dashboard panel

 More Information

Please checkout the Dashboard Github page for more information, including documentation and a tutorial of building a basic dashboard panel.

36 Responses to “Dashboard Module for SilverStripe 3”

  1. francisco 03. Oct, 2012 at 5:14 pm #

    As always I’m totally amazed about your work. If i turn crazy enough to make me a tattoo i want a cheese on my arm…

    …and in the other one an apple LOL

  2. francisco 03. Oct, 2012 at 10:55 pm #

    question: is there a way to configure the dashboard using some config yml or silversmith?… i dont think that i will have time to set by hand every time i make a new site a dashboard… it could be amazing to just define a config file for the default dashboard :)

  3. Howard Grigg 04. Oct, 2012 at 12:15 am #

    Awesome module Aaron! I can definitely see myself using this in upcoming sites :) Looking forward to talking to you about this on our next podcast.

  4. Hendrik 04. Oct, 2012 at 5:05 am #

    Very nice work, Aaron!
    I’ll try to rewrite your Google-Analytics-Panel code for a Piwik Analytics Panel.
    Did you think about a place for (3rd party) DashboardPanel Exchange?

    Could you add in the basic panels for recent edits / files an option to see the date/time for each item?


    • unclecheese 05. Oct, 2012 at 12:22 pm #

      I love the idea of an exchange. I might hold back until all the changes to the module/dependency system solidify in 3.1. But if you have any specific ideas about the exchange, I’d love to hear about them through email. unclecheese at this domain name. :)

      • dpde 05. Feb, 2013 at 5:41 pm #

        Any news here?

  5. Matthew Balaam 04. Oct, 2012 at 5:55 am #

    Some great work here. I’m coming across an issue where going to site/admin always brings up the Dashboard first, is this intentional?

    • unclecheese 05. Oct, 2012 at 12:20 pm #

      Yes, it is intentional. One of the problems with the CMS is that the default view isn’t action-oriented. A dashboard view gives users an opportunity to choose their course of action rather than being thrown into the Pages section under the assumption that they just want to look at a site tree.

  6. James Cocker 04. Oct, 2012 at 6:40 am #

    Amazing! But it would be great if it was possible to add Dashboard Panels to the main Pages tab, to the right of the site tree. Look at all that wasted space just longing to be used: http://spdr.me/FKeR

    • unclecheese 05. Oct, 2012 at 12:19 pm #

      Hi, James,

      Thanks for your feedback! Dashboard panels each have their own model, view, and controller, so they are highly portable. You could put the panels anywhere in the CMSMain interface and for the most part, they wouldn’t know the difference. It would be easy to override the CMSMain template and decorate its controller to put the panels in the no-man’s land you’re talking about.

      The reason I would hesitate to go forward with it is because, as you point out, that space is a curious void in the CMS and I can’t help but believe that SS will be putting something there in future releases. It’s kind of a “space bank” right now.

      At least one would hope.

      If you want a tutorial on placing the panels in CMSMain, let me know and I’ll walk you through it.

      • James Cocker 08. Oct, 2012 at 10:29 am #

        Ah ok, that’s true, perhaps then it would make more sense for it to be possible to make the site tree sidebar appear on the dashboard page. Is that a straightforward thing to do?

        Oh, and looks like someone has broken the demo!

  7. Pawel P. 04. Oct, 2012 at 6:54 am #

    Great work! Big “like” for video tutorial.
    See u soon :)

  8. francisco 04. Oct, 2012 at 11:48 pm #

    Hey Uncle, i know you’re a rockstar and a really busy one, but you know what i believe lots of silverstripers really miss on the cms? the kick assets module… the actual implementation of assets on the cms is kind of sucky.

    i really loved your approach on kickassets, far better than how its working now. the way all worked, they way how you handled the files, and how you were able to select a picture by its thumbnail!!!

    now you can only see a sad excel like screen with just names (this doesnt help at all!!!)

    • Hendrik 05. Oct, 2012 at 6:52 am #

      I would love that too!!

    • unclecheese 05. Oct, 2012 at 12:00 pm #

      That’s a great idea, Francisco. I always loved that tool, too. Never used it, because SS3 was right on the horizon when it came out, but I agree. File management is still painful even in SS3.

    • unclecheese 05. Oct, 2012 at 12:17 pm #

      El pomelo se encuentra en la biblioteca.

      • francisco 05. Oct, 2012 at 12:28 pm #

        y el camello es amigo de el burro de aaron

  9. Lamin Barrow 05. Oct, 2012 at 5:52 pm #

    This is sweet. Awesome… Great work Aaron. i may use this at Silverstipe Expo. (http://silverstripeexpo.com/).

  10. matt benschop 11. Nov, 2012 at 4:45 pm #

    Good work buddy. I seem to have broke your dashboard by changing the location of the weather widget though, sorry about that (apparently Den Haag, which is in the Netherlands, lead to an exception of sorts).

  11. Ivan 19. Dec, 2012 at 7:18 am #

    Hi, I’d really like to use this module but I encounter an error when I try to add Google Analytics panel. My Apache just breaks, and I get no response from ajax (logically). Other panels work fine.

    Any idea what might be the issue?

    Also, the demo isn’t working.

    • unclecheese 19. Dec, 2012 at 2:02 pm #

      Hi, Ivan,

      I need much more information. What do you mean by “Apache just breaks?” What does “not working” mean?

      • Ivan 20. Dec, 2012 at 11:35 am #

        Hi, thanks for your reply.
        When I try to add Google Analytics, or load dashboard with added Analytics panel, I get “Apache HTTP server has stopped working” (I’m on Windows). So basically, it just crashes.
        The database entries do get created (in dashboardgoogleanalyticspanel and dashboardpanel), but other than that nothing happens.

        I’ve tried to debug it a bit more, and it breaks on return parent::PanelHolder(); in PanelHolder() function. I’ll try to find what’s wrong, but if you have any idea, it would be much of a help.


        • Nimle 25. Feb, 2013 at 9:31 pm #

          Yes, google analytics panel breaks the code. After that site/admin/dashboard doesn’t work.

  12. Anselm Christophersen 05. Feb, 2013 at 9:00 am #

    Has anybody built any panels for this module yet? E.g. having a (light) Sitetree display in the dashboard seems very useful to me.

  13. Mathew 07. Mar, 2013 at 12:01 pm #

    Hey – looks great! I’ve added it (and rebuilt the database) on a fresh 3.0.5 installation, but logging in as the default account only shows the word “Dashboard” in the top left. I may just be dull, but how do I add panels, or even better the button to add panels?

    • unclecheese 07. Mar, 2013 at 12:02 pm #

      Just hit “new panel” in the top right.

      • Mathew 07. Mar, 2013 at 1:58 pm #

        Sorry, I missed my own point! I meant to say there is no button to add a panel. I literally get the left bar and then the word “Dashboard” in top left corner of the main part

        • unclecheese 08. Mar, 2013 at 4:34 am #

          I’m not sure what you mean. Try the demo and see if that’s any different. http://dashboard.unclecheeseproductions.com/admin/dashboard

          • Mathew 08. Mar, 2013 at 4:54 am #

            I’ve taken a screenshot:

            I’ve only got 2 accounts – the admin account which was set up when I installed it, and the default account which is from the config file – neither of which show the Add Panel button.

          • unclecheese 10. Mar, 2013 at 2:48 pm #

            Looks like you forgot to ?flush=1.

          • Mathew 11. Mar, 2013 at 5:25 am #

            Oh wow, don’t I feel like an idiot… thank you :)

  14. Antony Weeks 24. Jul, 2013 at 2:51 am #

    Hey Uncle :)

    Trying to install the module but get the error Unknown column ‘Member.HasConfiguredDashboard’ when running dev/build?flush=1

    Am I being completely dense and missing something?


    • sa 13. Dec, 2013 at 9:07 am #

      I am having problems integrating with my google anlytics account. I knwo for a fact i have entered teh correct details for //DashboardGoogleAnalyticsPanel::set_account(“youremail”, “youpassword”,”latest numbers on the url for the analytics account after the p”);

      But I constantly get the message on my ga dashboard – The account information you have entered for Google Analytics appears to be invalid. Please check the email and password combination and try again.

      Also when I login to security in my google account I get messages – Suspicious sign in prevented – We prevented the sign-in attempt in case this was a hijacker trying to access your account. Please review the details of the sign-in attempt.

      Now how do I get around this problem??? Do you need to sign up for a google API or do I need to add my Ip address somewhere within google to allow requests???

Trackbacks and Pingbacks

  1. The Dashboard Module: Make a splash in SilverStripe 3 | PHP World - 07. Nov, 2012

    […] There’s no doubt that SilverStripe 3 does all of those things. That much is clear from the feedback I get when showing the product to end-users. There is, however, one criticism common to both SilverStripe 2 and 3 that I hear too often to ignore – the lack of an action-oriented splash screen (read: dashboard). […]

  2. The Dashboard Module: Make a splash in SilverStripe 3 | CMS Radar - 17. Nov, 2012

    […] There’s no doubt that SilverStripe 3 does all of those things. That much is clear from the feedback I get when showing the product to end-users. There is, however, one criticism common to both SilverStripe 2 and 3 that I hear too often to ignore – the lack of an action-oriented splash screen (read: dashboard). […]