* Start refactor
* Fix color of auto stop switch
* Format
* Use helper functions for min/max check
* Fix type
* Put new component in own file
* Fix decrease deadline bug
* Simplify functions
* Use ChooseOne
* Remove commented code
* chore: add no-implicit-coercion ESLint rule
This adds a new ESLint rule to prevent us from using implicit coercion
in the codebase. See https://eslint.org/docs/latest/rules/no-implicit-coercion
* chore: fix implicit coercion errors
* fixup: formatting
* Add elements
* Add Loading story
* Make form show empty values when manual
* Make form depend on switches
* Fix style
* Format
* Update unit tests
* Tweaks
* Update storybook
* Move util files
* Pull out more util functions
* Pull out strings
* Add border to section
* Make min ttl 1
* Format
* Fix import
* Fix validation for falsey values
* Format and fix tests
* Put switches in form, persist form state
* Fix bug
* Remove helper text when disabled
* Fix storybook
* Revert "Remove helper text when disabled"
This reverts commit a6271ca6c4.
* Format
* Use nicer function to set values
* Format
* Update color palette
* Edit dialog error colors
* Format
* Lighten links
* Lighten link just in ErrorSummary
* Format
* Fix errors in schedule xservice
* Add error summary to form for generic message
* Format
* Extend getFormHelpers to remap field name
* Add mock error and use in storybook
* Format
This commit makes the following changes:
- Partially reverts the changes of feat: update workspace deadline when workspace ttl updated #2165, making the deadline of a running workspace build independant of TTL, once started.
- CLI: updating a workspace TTL no longer updates the deadline of the workspace.
- UI: updating a workspace TTL no longer updates the deadline of the workspace.
- Drive-by: API: When creating a workspace, default TTL to min(12 hours, template max_ttl) if not instructed otherwise.
- Drive-by: CLI: list: measure workspace extension correctly (+X in last column) from the time the provisioner job was completed
- Drive-by: WorkspaceSchedule: show timezone of schedule if it is set, defaulting to dayjs guess otherwise.
- Drive-by: WorkspaceScheduleForm: fixed an issue where deleting the "TTL" value in the form would show the text "Your workspace will shut down a few seconds after start".
Summary:
Various time displays weren't quite right.
Details:
- Display date (not just time) of upcoming workspace stop in workspace
page
- Fix ttlShutdownAt for various cases + tests
- manual to non-manual
- unchanged/unmodified
- isBefore --> isSameOrBefore
- use the delta (off by _ error)
- pluralize units in dayjs.add
This commit adds the following changes to workspace scheduling behaviour:
* CLI: updating a workspace TTL updates the deadline of the workspace.
* If the TTL is being un-set, the workspace deadline is set to zero.
* If the TTL is being set, the workspace deadline is updated to be the last updated time of the workspace build plus the requested TTL. Additionally, the user is prompted to confirm interactively (can be bypassed with -y).
* UI: updating the workspace schedule behaves similarly to the CLI, showing a message to the user if the updated TTL/time to shutdown would effect changes to the lifetime of the running workspace.
Resolves: #1959
Summary:
The package tzdata is used to create a meaningful select-list for
timezone in the workspace schedule form.
Impact:
Improved UX. Furthermore, we guess your timezone if the form is being
initialized from scratch.
Resolves: #1958
Summary:
The workspace schedule form no longer disables certain fields based on
whether or not a start time is filled out. Instead, we validate that a
start time is provided if any of the days are checked.
Resolves: #1681
Summary:
- Moves WorkspaceSchedule out of WorkspaceStats
- Adds WorkspaceScheduleForm directory
Impact:
Improves breadth of our chromatic visual regression tests since the
examples for WorkspaceStats were non-representative of the component