Repository navigation
Dashboard overview #20930
Description
Activity
- added1. to developAccepted and waiting to be taken care ofAccepted and waiting to be taken care of
on May 11, 2020 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:
- combine the different apps' information in a meaningful way. For example you could visualize only the info (emails, events with, shared files) that are linked to contacts tagged as "work" (or "family", "band", ...). Of course the relationship between different apps info could be also provided by projects, geographic context, ...
- provide an overview on the data not specific of a single app. For example you could show the interactions with users without being linked to the type of interaction (Talk chat, email, comment on a shared file, ...) and show the users I interact more with, the time-line for my interactions with a specific user. The same is true for tags (see also Tag usage through ~all apps #13330), projects, ...
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.
Reacted by much-doge and MannshochI'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.
Reacted by Kai and Jan C. BorchardtFirst of all excuse me if I am hijacking an organisational issue and tell me if my feedback is improper.
Second point: If you are interested I could try to prepare mockups even if I am not a designer.Said that I stress that the mockup of @juliushaertl is exactly what I was describing with "having an overview of the different apps".
I think that, as an user, I am not interested in the different Nextcloud apps, but in my different things to do.
So it could be more interesting to know that Julius communicated with me (via an email and a comment in a file and a Talk message) rather than having mail, file and talk apps resumes.
At the same time I'd like to have a quick overview of my ToDos (apps: calendar + tasks + deck +...).
And also a resume of my current projects (new files, updates from members, ToDos, maybe trending tags,....).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:
Mentions
you were mentioned by:- Joe in a comment to the file NicePresentation (folder "JuneMeeting")
- Jane in the chat of the project next version
- Julius in the board NoIdea
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 😉
Reacted by Spartachettoand cc @Clementine46 on this issue since we were talking about the dashboard during our projects design call
Reacted by Clémentine HemmelThat sounds great!!!
Maybe, if technically meaningful, the files app could provide a set of basic functionalities that collect the different apps data, like mentions, tags and DAV (calendars)...44 remaining items
@MarkPartlett @Rello do you want to jump on a call with @juliushaertl and me some time to discuss how to best go forward here and how we can support you? Let us know which dates and times work best for you. 🙂 (Anyone else who was planning to implement a Dashboard widget is also most welcome.)
Also cc @marcelklehr @korelstar @stefan-niedermann @tuxedo-rb @berdosi @daita @Grotax @raimund-schluessler @jotoeri for possible panels for that Dashboard as the main API part is now merged (follow-up at #21598) and it would be cool to have you in that mentioned call, or at least in the loop. :)
Reacted by Marcel Klehr and Bálint ErdősiI'm happy to join such a call :)
@jancborchardt
can you hook us up to a NC of yours? then we can plan a NC-Talk there? I think this might be the easiest.
...then we can chat, talk and share docs/ideas...@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?
For my learning purpose I started to develop an own dashboard called "cockpit". But I'm not interested in reinventing the wheel...I think that a really interesting possibility would be to provide other visualizations that are not bound to the apps and display informations of different apps but logically related.
I do get that this could be an evolution and having a functional and useful dashboard is a really good step. Yet I am just trying to provide what I deem a good suggestion.
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...
Or is there already a discussion about that?@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.
For everyone who was developing for the old Dashboard, we have received feedback that developing for the new one is much simpler, and there are plans to make it even more simple. :)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.
Reacted by Jan C. Borchardt and Julius Knorr@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 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...
Or is there already a discussion about that?I just realized I did not answer you! Sorry!!!
I'd like to have that chat@Spartachetto
hehe, thanks for your answer.Where is the best place for that discussion?
Maybe the forum, cause it's just brainthinking, no direct connection to any code (yet).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
IPanelat 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.