Desktop: [Feature request] Badge to see if a file is opened by another user

Created on 9 Dec 2017  Â·  44Comments  Â·  Source: nextcloud/desktop

I totally agree with @karlitschek that "Nextcloud is about collaboration". I'd like to suggest a new feature for file editing on desktop (I'm working on Office 2016 under Windows 10).

If UserA is editing the shared file "File.doc" at the same time as UserB, it can lead to synchronization conflicts or loss of modification. In order to avoid this situation, it would be interesting to have an indication (for example a badge like in Dropbox) that the file is currently used.

The way Dropbox does it is almost perfect for me: https://www.dropbox.com/help/business/badge-overview

A first step could be to implement this feature for MS Office files, detecting the presence of "~$File.doc":

  1. UserA opens File.doc (which is shared with UserB)
  2. ~$File.doc is created by MS Word in the same folder
  3. NC Client detects ~$File.doc (nota: it doesn't sync it, as it's in the exclude list)
  4. NC Client sends the information to NC server that UserA is modifying File.doc
  5. UserB opens File.doc
  6. NC Client of UserB detects ~$File.doc on UserB local folder
  7. NC Client of UserB checks on the server and sees that UserA is modifying File.doc
  8. NC Client of UserB displays a button (similar to the Dropbox badge) in front of MS Word, informing UserB that File.doc is currently being modified by another user

As additional features, I can suggest the following:

  • The button indicates which user(s) is(are) using the document
  • The button indicates when a new version of File.doc is available (and allow UserB to open this new version)
  • The button indicates when UserA closes the file (and proposes to download the last version in order to edit it)
  • The button allows to chat between existing users, using the Nextcloud "Comments" feature
  • The button allows to see former versions of File.doc and to download them
discussion feature-request

Most helpful comment

Even better : G Suite's implementation, with a floating badge informing users of who has it opened, when it is safe to edit, a download button to re-download an updated copy and a preview button when a conflict file exist that allows you to see the differences side-by-side : https://gsuiteupdates.googleblog.com/2018/07/avoid-microsoft-version-conflicts-with-google-drive.html

All 44 comments

For information, this feature was suggested on Onwcloud Client in a different way: https://github.com/owncloud/client/issues/5112

And it also may be related to: https://github.com/owncloud/client/issues/4557

How is the "Dropbox badge" implemented? I'd guess this requires a plugin/extension for M$ Office?

I don't exactly know. But in my opinion, it's not necessary to make a plugin: the button just has to be in forefront. Making a plugin would limit the button to Office documents: in the future, it would be great if the button is compatible with other softwares (LibreOffice, pictures, ...).

If a button in the forefront is too complicated, another solution could be to add a new icon in the taskbar (next to the date/time in Windows), that would appear only if the file is used by another user.

Or a last solution would be to modify the Nextcloud icon in the taskbar when it's needed (when another user is using the same file). But I don't like this last solution, as I hide this icon: 99% of the time (when nobody is using the same file) the icon would not be useful.

@michaelstingl should I open this issue in https://github.com/owncloud/client/ ? I don't understand exactly if Nextcloud and owncloud are using the same client, or if they are separated now.
Thank you!

should I open this issue in https://github.com/owncloud/client/ ?

@biva That's up to you. I don't expect this implementation with overlays for 3rd party applications on the ownCloud client roadmap in the near future.

I don't expect this implementation with overlays for 3rd party applications on the ownCloud client roadmap in the near future

OK, so I let this issue here, and will wait for an opinion from the Nextcloud team.

I read this interesting article (The Story of Auto-Completion in Nextcloud Comments) making me think that a comment possibility would be great in the desktop client. Is somebody from Nextcloud thinking that it would be possible? @rullzer maybe? Thank you!

Now that we have Nextcloud Talk (congrats to the team!), and reading the last article of @karlitschek (http://karlitschek.de/2018/01/nextcloud-talk-is-here/), I really think a feature like the badge is in line with current improvements towards collaboration.

Office Online and Google Docs both have similar features (see who is working on the same document). OneDrive tells you when someone edits shared content (even if it's slightly different).

In a second step, we could also integrate simultaneous co-authoring (https://support.office.com/en-us/article/collaborate-on-word-documents-with-real-time-co-authoring-7dd3040c-3f30-4fdd-bab0-8586492a1f1d).

Is anyone interested? Or do you see workarounds to see if somebody is working on the same document?

Any new on this fonctionality ?

Unfortunately not :(

I don't know if this issue should be posted here, as:

  • I'm not sure if the desktop client is now developed independently from owncloud or not.
  • The server is involved: it may be more efficient to post it in https://github.com/nextcloud/server
    Any clue?

Yes, the next cloud client see no real activity :/ it's strange because the client it's the first thing a user see and use.

@ad1rie1 not sure what you mean with 'no real activity' considering the 2 people working on it... Besides the E2EE work, check github for some recent enhancements: https://github.com/nextcloud/client/pulls?q=is%3Aclosed+is%3Apr+label%3Aenhancement and I know about more good stuff coming, like a redesign of the sharing dialog and much improved main UI ;-)

Anyway, this is a rather big thing, and we've discussed this feature a few times. It has some serious downsides, so it isn't an obvious feature. The two main issues I remember:

  • the locking/unlocking requires a working internet connection - it won't save you on the airplane, unless you lock before you leave - and then what, your colleagues can't edit the file until you land 12 hours later and get internet?
  • when do you unlock? If somebody forgets to unlock or (if you automate it by locking when MS Word opens the file) keeps their document open and goes for lunch, what do you do that doesn't always piss off some user or another?

This problem has something in common with other much requested features like end-to-end encryption and delta-sync in that it is FAR more complicated than people tend to think, and benefits are more vague than it seems at first sight. The question now is if it has more in common with end-to-end encryption in that it is complicated but has real benefits even with all the downsides, so some day we have figured out the perfect way and we do it; or is it more like deltasync that simply doesn't have the benefits most people seem to think and thus we will probably end up not doing it unless a customer explicitly wants to pay us for it.

Rest assured this is on the radar and we think about it. If some day there is real customer demand we will prioritize this more - right now, it is very low priority as none of our customers or prospects has voiced interest, that I know off. And we don't think it is interesting for home users, otherwise many of our engineers would consider doing it in their free* time. Also note that joining one of our hackweek events or the conference, to help code it - that's a great idea. Or contact sales and see if you can pay for it, if your company needs it.

And of course, if somebody wants to do this in their free time, go ahead - we're always happy with contributions and support that 100%!

If you use the web UI you can use https://apps.nextcloud.com/apps/w2g2 to get this. That was done by a very awesome community member, resurrecting an app earlier done by, I believe, a student from India. Again, if there's commercial interest, we'll look into supporting it, of course.

wrt * our team gets a significant chunk of their time to decide what to work on by themselves - stuff that helps Nextcloud, especially for home users - we still want to give everybody a way to protect their privacy after all, it is why we started this company in the first place. This is a big part of our contribution, as company, to that goal. But of course, we don't expect them to work on enterprise features - like with any company, such development is guided by customer demand and our strategic goals.

Also, ref https://github.com/nextcloud/client/issues/217 and https://github.com/nextcloud/server/issues/1308

Thank you @jospoortvliet for your long reply, much appreciated. And I understand your position if we speak about locking.

In my mind, this feature is not about locking a file, but just informing the user that somebody else is editing it. I use NC at home, not in my company: we use Dropbox and we do use the badge in this way. In my family, we do edit the same files sometimes. Last usecase: our wedding Excel file (you know, the one with all guests and planning, and "happy" organization :-D ): it was frequently edited by my wife, my brother and my sister.

To be clear, I would have been (very) happy to see that my brother is editing it, before editing it myself and then look for the differences between the file and the "conflict file". I don't need to lock it: if I see that somebody else is using it, I can call him to ask him to close it. Or I can decide to edit it also, and accept the creation of a conflict version.

In this option, do you still think that it is far more complicated than what I think? Don't you think that we could start implementing this feature for MS Office files, detecting the presence of "~$File.doc" (file which is created as soon as it is edited, and deleted as soon as the Office file is closed)? I would see these steps (Client = Desktop Mirall Client):

  1. Wedding.xls is shared by UserA and UserB
  2. UserA opens Wedding.xls
  3. ~$Wedding.xls is created by Excel in the same UserA local folder
  4. ClientA detects ~$Wedding.xls (nota: it doesn't sync it, as it's in the exclude list)
  5. ClientA sends the information to the server that UserA is modifying Wedding.xls
  6. UserB opens Wedding.xls
  7. ~$Wedding.xls is created by Excel in the same folder
  8. ClientB detects the creation of ~$Wedding.xls in UserB local folder
  9. ClientB sends the information to the server that UserB is modifying Wedding.xls
  10. The server knows that UserA is already using it: it sends this information to ClientB
  11. ClientB displays a button* (similar to the Dropbox badge) in front of MS Word, informing UserB that Wedding.xls is currently being modified by another user
  12. UserB decides what to do: he can call UserA (using NC Talk!) to ask him to close it, or continue editing the document (that can lead to the creation of a conflict version)

'* the button could be a changing icon in the task bar for the Client icon

I would love starting working on this project, but I have no skill in programming :(

I tried to remove the ~$* from the exclude list, the files sync correctly between my stations but for some reasons excel doesn't recognize that the file is in use.
This method works fine with openoffice lock files.

@fixiteric Yes, that could be a workaround. But I'm not surprised Excel does not consider it as a lock :(

@fixiteric Your idea could be a first step for implementing the badge for Office. We just miss a program "NC-Badge" that is triggered when an Office file is opened:

  1. Open Wedding.xlsx
  2. NC-Badge is triggered and knows which file has been open
  3. NC-Badge looks into the corresponding folder for a file ~$Wedding.xls
  4. If this file is present, a MessageBox appears "Be careful, this file may be edited by somebody else"

That's it. But I'm not a programmer and I have no idea to do step 2 and 3. Anyone?

I've seen something like this in Syncplicity: https://syncplicity.zendesk.com/hc/en-us/articles/211359346

Relying on office programs to produce a $ file is dangerous for several reasons.

1) What do we do with other kinds of programs which do not use such features?

2) Opening a file and creating a $ or similar lock file is not an atomic transaction, so it will lead to race conditions.

It is probably better to detect the opening of a file using a kind of inotify feature and then not lock but track revision numbers (as CouchDB for example), producing a conflict file if necessary.

@clecap

  1. You're right, but starting with something which is widely used (Office and LibreOffice) is better than nothing, and probably easier than a universal solution
  2. I don't understand, sorry :-/

@biva

  1. Agreed. But it produces a situation where a features works for some file types and does not work for other file types, which is quite confusing for the end user and remains unreliable after all.

  2. This is unfortunately quite more complicated than can be explained in a github commentary. We have to assume various additional failure modes such as detached communication, various communication delays and more. The simple scheme with the $ file is not producing the best we can do and is buggy in several situations, to say the least. In distributed data base systems these problems have been solved (multi version concurrency control, Redis or CouchDB or PouchDB) and thus this part of the system should definitely be designed and solved by an expert from that area. See https://news.ycombinator.com/item?id=11803431 for a debate of just a small number of possible issues.

  1. Unreliable → I don't know but I trust you if you say so. I still think that unreliable is better than nothing in this particular situation (depending on the degree of unreliability though, I agree)
    Confusion → I don't agree on this point. People are not as foolish as that: if this feature is clearly labelled "Office and LibreOffice document only", (almost) everybody can understand that. Do you think there's a confusion with the viewer on the web UI? (you can view PDF files, and not Office files)
  2. Thanks for the explanation: it goes beyond my skills ;)

I see the following problem: For non-specialists, NC is a tool which should work. For a tool you form a mental model how it is working. I think it is fine if a tool supports PDF and does not support PNG. But to state that certain concurrent edit operations on one type of files work DIFFERENTLY than on another type of files is confusing and the frustration likely will be projected on NC in its entirety.

Sorry, but I don't agree. For the majority of users, it does not apply:

  • either you're a skilled user and you edit very specific documents in several format: then you're skilled enough to understand the difference
  • or you're a basic user and you edit only Office or LibreOffice (this is true for 90% of this kind of users, this number coming from an extensive and very precise survey, huhuhu)
  • to conclude:
    → Don't you think that the benefits of having this solution, even if it's only partial, is higher than the risk of confusing a few number of users?
    → Do you really think that Dropbox would have done their "Badge" (which works only with Office) if this risk was significant?

Hi is this issue the right place to discuss this feature ? We have several client that request this feature and are willing to help.

@freechelmi : that's a good news! The other place to discuss this feature was https://github.com/nextcloud/server/issues/1308 but it has been restricted by Nextcloud admin. What I understood is that they are interested in the feature, but they don't have enough request from their own clients and don't have ressources to work on it now (which I regret, but understandable).

If you want to work on it: more than welcome! But it means that you should code it (I'm not skilled for that). I think Nextcloud would also welcome your initiative and could bring you some support (to be confirmed by @jospoortvliet though ;) )

@freechelmi Do you still want to help? It would be great. And totally in phase with the direction of nextcloud towards collaboration: https://nextcloud.com/blog/nextcloud-14-collaboration-features-help-you-get-work-done/

Hi I definitely want to help , sorry for the lag.

For now we push collabora online to our client , but I'm sure the "activate notifications when a document is opened by 2 people " could be a good start

@freechelmi you can also read the discussion in https://github.com/nextcloud/server/issues/1308
As NC teams have other priorities for now, are you able to propose a draft of this "notification" feature?

Yes I read the lock feature as well but this may be worse ( remember sharepoint)
Dropbox badges are the way to go.

I'm really far right now from being able to propose such a big PR myself but I will contact other hosters to see how we could collaborate on this.

Excellent :)) I hope you'll find other contributors. I'm sorry for not being very helpful as I don't code at all :( But I can test !

Thank you again, totally agree with you: I also prefer the badge over locking.

hi,

has anybody worked out how to fix the excluded files feature in these new releases ? we can remove ~$ (as its now not greyed out) but it still wont sync them !

fingers crossed

ZT

Hello @zippytiff
Which new releases are you refering to? Some thoughts:

  • Did you try to edit C:\Program Files (x86)\Nextcloud\sync-exclude.lst and delete the line (I'm in a Windows environment) and remove the line ~$*
  • Did you check the box "Sync hidden files" (in Nextcloud desktop client, Settings, Modify excluded files)?

Ok, so i dug into this a little,

2.5.x uses this location C:\Users\Tim Middleton\AppData\Roaming\Nextcloud

2.3.x used this location C:\Users\Tim Middleton\AppData\local\Nextcloud

then there is the location mentioned in your post

What i found is that its the one referenced next to 2.5.x

Thankfully manually editing the file solves my original issue, so looks like the gui manipulating this file is broken

Next i need to be able to deal with the conflict files as in decide what to do with them

Thanks again

ZT

+1, All my users would like to have this "dropbox badge" feature, it would solve a lot of headaches with "conflict" files.

Even better : G Suite's implementation, with a floating badge informing users of who has it opened, when it is safe to edit, a download button to re-download an updated copy and a preview button when a conflict file exist that allows you to see the differences side-by-side : https://gsuiteupdates.googleblog.com/2018/07/avoid-microsoft-version-conflicts-with-google-drive.html

Thank you @stanelie , I didn't know that Gsuite had a similar feature.

@jospoortvliet : this Google's feature also shows that starting with only one format (MS Office) is possible and understood by most of the users (one of the fear was that providing this 'badge' feature to a specific format only would confuse users). So why not doing the same at Nextcloud, maybe adding the feature for LibreOffice document also?

Any update on this?

I'd like at least a pop-up in the client that warns the user the file is open by @someuser Thanks!

Well, we finally moved to Seafile only because of Nextcloud lack of conflict prevention (locking, badges, notifications) and the total disinterest of implementing something of that sort.
Sorry, I really like Nextcloud, but this is a dealbreaker for us.

Nobody ?
This would be THE feature I'm waiting for in Nextcloud (and owncloud before) for years.
I really cannot understand that the NC team doesn't see any value in this option, since this is the reason Nextcloud can't compete with onedrive and co.
Anybody care to explain ? Maybe all our usecases for nextcloud are bad ?
Maybe there's another solution we're not seeing here ?

https://github.com/nextcloud/files_lock -> it is under development. As I said - we are interested in this feature, but there are a LOT of other features we want to do, so before this comes in the client we are certainly speaking mid 2020 at the earliest. If you need this in your business, well - contact our sales team. Perhaps we can speed it up by hiring more people. But for that we need to earn money ;-)

Of course, help in implementing it is also very welcome. In the end it is all about priorities and it is customers who have a big input on our priorities, as they pay our bills. We care about home users as well, of course - but they generally have no big need for this feature, so it ends up on the bottom of our priority list.

Hi,

In the end it is all about priorities and it is customers who have a big input on our priorities, as they pay our bills.

As a customer (My organization pay the bill, and we are happy with Nextcloud Team) we would like to see this feature coming soon. We experience some loss of data using OnlyOffice because files can't be lock for edition. This wouldn't solve every cases but this would be a great step ahead.

eg : As I have understood, if two guys open a file in their web browser the last guy who close the browser will have his modifications saved, and this will destroy the work of the first guy who closed the file earlier. Additionally, if the sync client is installed the first guy will sync with the version of the second guy and lost is work locally too...

We have 2 cases already of loss of data because of this and that's not good.

Even the local incremental backup couldn't help to recover an older versions of the file because the user didn't know the wrong version of the file was backuped. When we realized this it was too late to get back an older version of the file due to the incremental setup (30 days).

Hi,

I would also like to ask about this feature. In our case, we have experienced multiple unnoticed file overrides and data loss. We have been using NextCloud for over a half of the year and we love it, but after we had switched from DropBox, this is the only feature we really miss.

RSM Poland

Was this page helpful?
0 / 5 - 0 ratings

Related issues

js-d-coder picture js-d-coder  Â·  3Comments

despens picture despens  Â·  3Comments

RobertZenz picture RobertZenz  Â·  3Comments

TP75 picture TP75  Â·  3Comments

AndreyNazarchuk picture AndreyNazarchuk  Â·  4Comments