freedombox/Plinth — pull request #20 by fonfon (2014-11-10 13:16:47+00:00)
Title: Dashboard Proposal

The dashboard is a simple GUI to enable/disable applications and services on the freedombox (I'll call them 'apps' here):
![dashboard3](https://cloud.githubusercontent.com/assets/1867309/4975725/8381fe94-68dc-11e4-83ef-cf12c9486771.png)

This pull request isn't ready to be merged, we have to wait for a new augeas and bootstrap3 package. It should only but be a basis for discussion, the main question is:
Should we continue with the dashboard similar to how it's now? Or should we introduce a more powerful/complete API to not only start/enable and stop/disable apps, but to also configure them?

The advantage of an API is that we'd have only one more-or-less standardized interface to configure, enable and disable apps. Right now we do such things both in the plinth apps configuration pages and in the dashboard. The API could be used from outside plinth too, i.e. from other web-apps or mobile apps.
The disadvantages: it's more work and more code to maintain, and it adds complexity.
What do you think?

Quick info about the dashboard:
Currently each app has to register itself to show up in the dashboard, like here: https://github.com/fonfon/Plinth/blob/dashboard/plinth/modules/tor/dashboard.py
the registration could also happen in the modules `init()` functions, I just wanted to keep things separated for now.
Items for the bottom statusbar can be registered similarly. Registered apps can be enabled/disabled via links like `https://freedombox/plinth/dashboard/disable//`, having an optional `next` parameter.