The previous implementation would delete all accesses if the bucket
was not all_access.
I think it's simpler to move the bucket workflow into a separate
Buckets::WorkflowsController, rather than deal with different sets of
params from different forms in the existing BucketsController.
They're part of the card now, let's name them that way.
Also, rename the "tag" partial to "tagging", following the naming
convention established by the controller.
- Rearrange the _tags and _tag partial, so they are properly nested concerns
- Add turbo frames for _tags and _tag
- Load _tag in a separate request, so it's not cached with the card
- Cache _tag using the bubble and the account
- New model behavior: touch Account when tags are added or removed
- New controller action: "new" for taggings toggles, which renders the _tag partial
- Updating taggings responds with a turbo stream response that updates the _tags frame
This is very much a parallel change to what was done with assignments
in #317.
We use a true/false preference so we can tell the difference between
disabling the watch vs never having the watch. This is so we can toggle
off and on the preferences for a container (like the bucket) without
losing any bubble-specific preferences.
I'm not sure if this was inadvertent or an artifact of an earlier design but I'm fairly certain we want a more comprehensive list of events here. Especially comments, for example. We should show all the comments that happen in a particular hour on the timeline. There may be places were we need to dial back but for now I'm going to lift the constraint and see how it feels.
* main:
Undo weird flash notices
Redirect to bucket after deleting
Fix layout issues in Safari
Should match text
Add production deploy config
Add Kamal deploy config
Remove old deploy config