Deck: Contents synchronisation / Live update for changes

Created on 11 Jul 2017  ·  16Comments  ·  Source: nextcloud/deck

Just putting this up for discussion, this is neither a bug report nor necessarily a feature request.

Steps to reproduce

  1. Access the Deck application on computer Alpha as user Albert
  2. Access the Deck application on computer Beta as user Albert
  3. Access the Deck application on computer Gamma as user Bettie
  4. Have Albert@Alpha make some changes, e.g.:

    • CRUD operation on deck

    • CRUD operation on board

    • CRUD operation on card

    • CRUD operation on tag

Expected behaviour

Either:

  • changes are pushed to other clients; or
  • other clients are notified of changes to the board (they can then pull the actual changes, perhaps manually, or F5-refresh).

Actual behaviour

Different users have inconsistent views of the Deck state.


Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

concept enhancement

Most helpful comment

We have some first steps made for this with the last modified date being added to entries for the REST API with 0.6. Once we have finished the vue rewrite I'll look into this, as with Vuex storing all the data this shouldn't be to hard.

All 16 comments

@9662 Yes, this is something we should have. Since we have no way of pushing information to the client we need some kind of polling mechanism like the notifications app does to check if there were changes on a board and update it then.

On second thought, maybe this should be considered at a higher level in NC? After all, the same problem is evident in other applications, e.g., if viewing a given director and a file is uploaded to / deleted from it, the changes are not reflected until a manual refresh. Same with contacts, calendar...

A generic update framework (piggybacking on notifications?) might make sense, or not? I am not familiar enough with NC's architecture to answer that question.

Why not use Activity app instead? We could log changes to boards there and notify current user in case a shared board has been updated

and notify current user in case a shared board has been updated

To confirm, would the following user story accurately describe your suggestion?

“As a user having a board open on a browser page, when that board is updated from a different session, I should receive a conspicuous but non-intrusive notification that the board's state has changed.”

Yes! That would be gorgeous!

As a note / thought - if the browser received a 'dirty page' message, it could auto reload the boards (or affected column / or card). Just thinking out load here.

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

Even just a refresh button would be neat

Adding another thought - an application (single page javascript app) I wrote (as an amateur) recently has a ping routine that just updates the central server every 60 seconds to say 'hey, I am still running (ie: user is still logged in)'.
This could be the mechanism to get the last time the current board was updated. Just a big unix datestamp (or some such) that you look at compared to the last one you loaded the page (or refreshed it) with.
Client side, pretty light. Traffic wise it might be a little intense on high traffic / user base sites. Maybe.

Shouldn't be any more intense than say the equivalent for web-based email clients.

We have some first steps made for this with the last modified date being added to entries for the REST API with 0.6. Once we have finished the vue rewrite I'll look into this, as with Vuex storing all the data this shouldn't be to hard.

Hi dev team. First of all great great job on pulling out the Deck app. It's awesome !
How far are you in the live refresh developments ? This is something really missing out of the app when using it extensively in collaboration mode.
I know nothing about coding, but helping out on this feature would great !!!! Take care and keep it up !!!

First steps have been made to provide a server API in Nextcloud that allows pushing changes from the backend to connected frontend sessions in https://github.com/nextcloud/server/pull/17173

Once https://github.com/nextcloud/push/pull/27 is ready we can look into how we can integrate those push capabilities into deck.

Isn't this also a topic for @David-Development and @tobiasKaminsky? As our Android deck app is using SSO, wouldn't they need to pass the events to us as well?

That would be pretty awesome indeed :wink:

Sure, once there is a working system on server, I can give it a try with SSO.

Was this page helpful?
0 / 5 - 0 ratings