text icon indicating copy to clipboard operation
text copied to clipboard

Ensure files are saved on close

Open max-nextcloud opened this issue 2 years ago • 8 comments

Describe the bug Sometimes closing the editor won't save the file. The sync request goes out but since the version has not increased it does not save anything.

To Reproduce Steps to reproduce the behavior:

  1. Open file in text
  2. Type something and click x to close viewer directly after
  3. Download the file
  4. Sometimes observe last edits missing

Expected behavior Closing the viewer should always save the file

Will provide logs once i recorded them.

Background

When typing the changes are send out via the push endpoint. However the version counter will only increment once a sync request happened. In the meantime save requests will still have the same version and be ignored.

Possible solutions

Increment version on push

We could increase the version whenever we push - but this would require including all intermediate changes by others in the answer to the push request. The version counter is mainly used to not fetch steps over and over again - so we cannot just increase it as that would lead to ignoring relevant steps.

Sync before saving

We could also use two requests for saving - one to ensure the current version is up to date and then one to actually save the file.

max-nextcloud avatar Mar 06 '23 07:03 max-nextcloud

Sync before saving is what we did in the past and i think it's the least intrusive and easiest change - even though it will require another roundtrip.

max-nextcloud avatar Mar 06 '23 07:03 max-nextcloud

still a thing.

blizzz avatar Jun 19 '23 12:06 blizzz

@blizzz I'm also still noticing this behavior. It's especially troublesome because re-opening the file and clicking the save icon has no effect. The user must first make some other change to the file before clicking the save button, in order for it to actually write anything to disk.

Apologies if the fix is still in progress, I don't mean to create a rush! 😅

DavidMikeSimon avatar Sep 29 '23 21:09 DavidMikeSimon

@DavidMikeSimon actually i cannot reproduce this behaviour anymore. Do you have some reliable reproduction steps perhaps?

blizzz avatar Oct 06 '23 11:10 blizzz

@blizzz Here is how I'm able to reproduce it:

  • Outside of NextCloud, create a file foo.txt with contents ABC, in a location that NextCloud can see via an external storage mount.
  • Open file in NextCloud Text. Edit contents to XYZ. Immediately close the file using the X icon, without clicking the checkmark icon.
  • ❗ File on disk has the out-of-date contents ABC.
  • Refresh NextCloud. Open the file in NextCloud Text, where the file appears to contain XYZ. However the file on disk still contains ABC.
  • Click the checkmark icon for the file in NextCloud Text. The file on disk still just contains ABC.

Nextcloud version: 27.0.2 Text app version: 3.8.0

DavidMikeSimon avatar Oct 09 '23 16:10 DavidMikeSimon

Thanks @DavidMikeSimon. I was able to reproduce this. I think there are two issues at play here:

  • Closing the viewer should remove the editor view and save the content - need to investigate what's happening there.
  • We don't save anything if there have not been any changes by the current user - but we should probably only do that when it comes to autosaving - but still save on click.

max-nextcloud avatar Dec 19 '23 14:12 max-nextcloud

@blizzz Will unassign you as it looks more like a frontend issue ;)

juliusknorr avatar Feb 20 '24 09:02 juliusknorr