zooniverse / front-end-monorepo

A rebuild of the front-end for zooniverse.org
https://www.zooniverse.org
Apache License 2.0
104 stars 29 forks source link

How to navigate to a specific workflow? Query param, or URL? #806

Closed rogerhutchings closed 5 years ago

rogerhutchings commented 5 years ago

Currently, PFE derives the workflow from the URL query parameter. We've been talking about moving to a regular URL, something like /owner/project/classify/workflow/[workflow_id] instead.

I prefer the latter - it's a static resource, which is what a URL is for.

We should to make a decision on this, since it has deployment implications for TESS.

cc @srallen @camallen @eatyourgreens

srallen commented 5 years ago

I don't think we need to do this for TESS because they only need one active workflow and the new one will be set as the default workflow. We'll still need to support workflow selection if a user hits a /classify route without the workflow specified, unless we're deciding now to no longer support that? We've discussed also moving to a paradigm to prompt and ask a user what to load if the result is error, not found, etc, so we could do that if only the /classify route is navigated to, but again, I don't think this is necessary now unless we find there are issues during the production test.

As an aside, moving to a regular URL means we can also cleanly support subject set selection this way too, /classify/workflow/:workflow-id/subject-set/:subject-set-id

rogerhutchings commented 5 years ago

/classify could redirect to the default workflow?

eatyourgreens commented 5 years ago

I like the idea of redirecting so that volunteers can bookmark a specific workflow. This probably ties into our discussion the other day about how to deal with completed workflows too. The URLs should still work but maybe the classifier changes to indicate that the workflow is complete.

srallen commented 5 years ago

The redirect could trickle down the selection priorities we have: UPP (if signed in), default, random active. If none work, then prompt the user with a 404 and ask them what to do by showing the available options for the current project or prompt to try another project.

srallen commented 5 years ago

CSSI CitSci has a use case to allow volunteers to be able to load a specific subject by url to classify, so I think we can plan on supporting this similarly: /classify/workflow/:workflow-id/subject-set/:subject-set-id/subject/:subject-id

rogerhutchings commented 5 years ago

Following the discussion in https://github.com/zooniverse/front-end-monorepo/pull/1077#discussion_r313985190, we need to ADR this up first.