nextcloud / tables

🍱 Nextcloud tables app
https://apps.nextcloud.com/apps/tables
GNU Affero General Public License v3.0
133 stars 21 forks source link

enh(App): navigation tweaks for Contexts #1080

Closed blizzz closed 1 month ago

blizzz commented 1 month ago

This is a more finegrained approach to to #933. The PR introduces an endpoint for each Context, so they can have the correct navigation item highlighted from the beginning, solving a known papercut from https://github.com/nextcloud/tables/pull/1037

It also sets an initial state, so that in Vue we can apply the actual route. Alas, the Vue Router adds the same information into the address bar, duplicating "app[lication]" and the context id. This is not nice. I reset it to the original URL (accepting #/), but it comes at the cost of flickering. In Vue the route cannot be applied without changing the address bar, which is a known drawback.

Another tweak: I disable the app navigation, when the Context is opened from its specific URL, making it more "standalone". Questionable if we want it. There are alternatives also: filtering the Tables and Views to only those included in the Context, and not showing applications; or (perhaps in future) a Context-specific app navigation (maybe relevant once we make use of pages).

What is not included in the Controller is a check whether a Context is actually having a navigation bar entry. So far we did not expose the setting, so all Contexts are shown there anyway. But even if not, I am not sure this is an issue (user has access anyways).

Please check the annotated video for a recorded quick tour.

https://github.com/nextcloud/tables/assets/2184312/f99ea308-9a30-4284-a62b-9ce9e8bc8cc6

blizzz commented 1 month ago

Do we want this also in 0.7?

blizzz commented 1 month ago

/backport to stable0.7