webknossos icon indicating copy to clipboard operation
webknossos copied to clipboard

Annotation sharing: should you see the layer config of the annotation owner?

Open fm3 opened this issue 4 years ago • 6 comments

When sharing your annotation it may be desirable that the other user sees it just as you do, i.e. with your layer settings (same visibility + intensity settings). Let’s discuss if this is a good idea and when to copy settings from where to where

/edit: See https://github.com/scalableminds/webknossos/issues/5080#issuecomment-1254992824 for the newest take on this issue.

fm3 avatar Jan 22 '21 09:01 fm3

I think, the most plausible way would be to provide a checkbox in the sharing modal à la: "Use my current view settings (e.g., layer visibility, intensity)". Then, the settings are persisted somehow so that they can be restored when the URL is opened. However, it's probably hard to pinpoint the exact "when" of the snapshot creation. Especially, when we want to remove the explicit save button from the modal.

That's why an easier variant could be to just copy the settings from the owner when the link is opened (as you probably meant in the issue description). This would probably be "good enough" for most usecases, anyway. However, we would need to pay attention that the wording is precise in the UI so that the user understands that their actions after creating the sharing link can influence the behavior of the link.

The layer settings are not version-managed by any chance? Then, the solution could be to allow both variants..

philippotto avatar Jan 27 '21 08:01 philippotto

The layer settings are not version-managed by any chance?

Not at this time, never had a reason to. I’d think the overhead is also not really justified for this use case

copy the settings from the owner when the link is opened

Yes, that could be a solution.

Another problem concerns the state of the viewing user’s settings. Assuming they are a logged-in user, and not just a one-time viewer. The annotation author’s settings for both the dataset and annotation tab are copied. Where are they copied to? Are they just used while viewing this particular annotation? What happens if the viewing user changes a setting afterwards? Is that persisted to their own view configuration? I’m afraid both doing so and not doing so could create confusion. I don’t know how to clearly communicate this. (Also I’m not 100% clear about the settings behavior myself, the infos from both tabs are saved in the same place, right? UserDatasetViewConfiguration?)

fm3 avatar Feb 03 '21 07:02 fm3

We should probably discuss this in person :speech_balloon: Additional relevant topics could be:

  • sharing the activated mapping
  • sharing loaded isosurfaces
  • more?

philippotto avatar Feb 03 '21 08:02 philippotto

Could we encode the layer settings in the url? Maybe with an integrated backend-implemented URL shortening.

normanrz avatar Feb 08 '21 13:02 normanrz

Most of the discussion above is outdated by now. The current sharing code can encode layer-specific things in the URL and already does that for mappings, meshes, connectomes etc.

It's probably a good idea to at least add the following:

  • layer visibility

For other properties, such as layer intensity, I'm not too sure if we want to do this by default, as it would overwrite the preferences of a user. Options I see:

  • let the sharer decide whether these properties should be included
  • let the user with whom the link was shared decide after opening if they want to apply "all" settings.

philippotto avatar Sep 22 '22 13:09 philippotto

I agree that layer visibility should be added. The decisions on the latter two points should not block that

fm3 avatar Sep 22 '22 13:09 fm3