-
-
Notifications
You must be signed in to change notification settings - Fork 4.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Dashboard overview #20930
Comments
I do think that a dashboard would be extremely useful. My impression is that you should consider if you want only something that offers an overview of the different apps (Recent files, Upcoming events, ...) or if you want to provide also other two possibilities:
|
I think https://github.com/nextcloud/dashboard should be the base fot that. It is not mentionbed yet but looks like a good starting point for your idea. |
I've added some basic writeup of my thoughts regarding the implementation to the first post. Please have a look @rullzer and also @jancborchardt. Feedback is very welcome. |
First of all excuse me if I am hijacking an organisational issue and tell me if my feedback is improper. Said that I stress that the mockup of @juliushaertl is exactly what I was describing with "having an overview of the different apps". Let me know if you are interested in these ideas. |
@Spartachetto Feedback is of course always welcome. 😉 As written in the proposal above we aim for small steps here. The first part will be implementing a generic dashboard that tries to give important information to the user in general. That would already cover what you describe with your "todos" (e.g. calendar would show the next upcoming events, tasks/deck your todo list for today/upcoming due, talk your recent mentions for example). For a second iteration we can then think about how we can provide filters that would offer different dashboards e.g. based on a a group or circle for example as proposed. If course we could also consider having something like a user profile dashboard, but as mentioned let's try to get the basics done first and see if that is adopted and how we can extend that to further use cases. |
@juliushaertl Thank you! I agree with the small steps. I just hope that the beginning will make possible the next steps. If you could build something that makes possible (even if not realized in the first iterations) a section like the following:
That would be more than enough for my taste ;) |
So from the technical specification this would not be an issue, the limitation to an app is just from a code perspective, so there could be one app that provides the mentions list panel but collects all of those from across different deck, talk, comments. cc @jancborchardt As this sounds like nice additional app integration 😉 |
and cc @Clementine46 on this issue since we were talking about the dashboard during our projects design call |
That sounds great!!! |
Sounds good, I can move that over when it is ready 😁 Let me add a todo to the pr. |
Awesome. I want to continue this evening! |
Go go go 🐨 🚀 |
Is there a way for apps using the old dashboard app to migrate to the new dashboard? |
@nickvergessen @ChristophWurst @georgehrke I'd prepare some basic implementation skeleton for the Talk/Mail/Calendar dashboard panels similar to what I already started in Talk. Do you have time to look into this so we have at least a basic dashboard panel for our core apps in 20? Would you be able to pick up from the provided skeleton then, since you basically know your apps internals a lot better, especially how the relevant data to show could be obtained? cc @rullzer |
Sure, but I'll need some specs about what to show there :)
Just some stats or actual messages? |
Sure, I'll discuss that with @jancborchardt and provide you with details in the skeleton pr then. |
Basically what you show in the mail client as well. Then when you click on it we open mail. |
I'm happy to join such a call :) |
@jancborchardt |
@Rello I'm also interested in a "complex dashboard" with different sources. You say you will talk to the dashboardChart developer. Is there another discussion where I could join?
I think so too. Combining different data to new information is interesting. Are you interested in thinking about this approach together? Maybe we could talk about it in general, not specially in the dashboard context... |
@Rello @datenangebot @MarkPartlett and anyone else who wants to join, please send me an email to jan at our project website dot com just stating the email address and name you want to be added with to our Talk server. I’ll then add you to the Dashboard chat as well as our Community chat channel. (@marcelklehr you should already have an account, let me know if there are any issues. :) For reference, pull request with the latest state is #21598 and I updated the original post on the very top with current planning as well as links to available panels. |
Sidebar in viewer: https://github.com/nextcloud/maps/pull/418/files#diff-0890c93f5ce80bae2585ae5c9f129f31R54 Sorry for the short reply send from my phone. There is a longer post somewhere in the community chat where somebody (sorry for got who exactly) anwsert my question regarding this. |
@jancborchardt no idea if you could be interested in the point of view of a non developer.... 🙂 |
The remaining open todos have either already a PR open or have been moved to individual issues now. Let's close this. |
I just realized I did not answer you! Sorry!!! |
@Spartachetto Where is the best place for that discussion? |
Perhaps this issue could be re-opened as it is still the on-going overview discussion for Dashboard development, as opposed to the vue-components or old Dashboard repo. |
@datenangebot I am sorry but I am having a really busy period... it should end in one or two months. Sorry again to let you wait so much! |
Summary
The new Dashboard is the one overview for your whole Nextcloud, and for individual projects. It is a logical continuation of Nextcloud Hub, and an overview of what happens.
Nextcloud Dashboard is the first thing you open at the start of your workday.
It helps you catch up with what happened while you were gone, and focus on what needs doing.
Implementation
Panels
Details
The dashboard should show an overview of what is going on in your account. This is done via a a clean overview and a plugin systems where apps can hook in. Hence if you don't have talk you won't see talk. But if you do it shows up (as an example).
Mockups
Polishing
From design review call:
Tasks
Ability to disable the app per-user – related: Ability to set default app per-userIf we ever need in-app settings: Settings icon + text in the bottom left, which can open a settings area or modal.Discussed not to do this for nowPossibly use colored circle with time as "avatar" slot, ref Business Calendar on AndroidAlready possible with the avatar slot of DashboardWidgetItemPanels
Core
Possible additional
API
Dashboards
In the first iteration we will only provide a general dashboard. In a second step this API can be extended to provide different dashboards based on circles/user groups/projects that only show related entries.
Possible considerations for later
Panels
Apps can register their implementation of
IPanel
at a DashboardManager. The panel has a set of static properties (appId, title, order, icon). For the second iteration additional interfaces can be implemented so apps can indicate their support for a group or circle dashboard.For registering we would dispatch an event that apps can use then.
Frontend
Apps that do not provide a list of entries can register a custom handler to render their UI like this:
The frontend would then just receive a list of panels from the backend and call the related callback in order to let the apps render their panel UI.
Considered alternative
The app integration that were collected can be abstracted to a simple list view for each dashboard column where each list entry would be provided by the backend and mapped to the following wireframe for rendering: icon/avatar, title, description (optional), link (optional) which would be similar to how activities work.
This should be suitable for most of the app scenarios from above. While the static frontend approach would have the benefit of being a more standardized UI and most likely would be better from a performance perspective, I think we will run into limitations with that as soon as we want to add more interaction on the dashboard panels (e.g. writing a social post directly from there) or if apps need custom rendering (e.g. talk messages containing mentions or images) this approach will not be suitable anymore and we need to allow apps to provide their own frontend logic. That is I decided to mainly propose the dynamic frontend approach.
To clarify: Depending on if and how we want to integrate mobile apps at a later point, we still might need to have something like that so apps can fetch the list of entries and render it with native UI elements. If mobile integration is a requirement from the beginning on, we would need to implement both approaches.
Acceptance criteria
To be extended.
The text was updated successfully, but these errors were encountered: