* add a divider after Account menu item
* test: improve Storybook tests
* add closed and open userdropdown tests
* add default isOpen
* extract UserDropdownContent into a single component
* remove the isOpen prop
* address nit comments
* update test name
* Changes all public-facing codersdk types to use a plain int64 (milliseconds) instead of time.Duration.
* Makes autostart_schedule a *string as it may not be present.
* Adds a utils/ptr package with some useful methods.
* refactor: isWorkspaceOn utility
Summary:
A utility is function is added that answers the question if a workspace
is on.
Impact:
This is a shared piece of logic in workspace scheduling presentations.
In particular it unblocks work in 1779, or at least allows an
implementation that shares details with the WorkspaceScheduleBanner.
Notes:
We could possibly instead return whether the workspace is "ON",
"UNKNOWN", or "OFF". Maybe a future improvement for that could be made
as the neds arrises.
* fix: derive running ws stop time from deadline
Summary:
When a workspace is on, the remaining time until shutdown needs to be
derived from the deadline timestamp, not implied from the TTL
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
* Adds deadline column to workspace_builds, associated DB/API plumbing
* database: Upon inserting a row into workspace_builds, deadline will
initially be zero.
* autobuild: Executor now checks the Deadline field of the workspace_build
for the purpose of autostop logic.
* coderd: Adds a new route /api/v2/workspaces/:workspace/extend which allows
updating the deadline of the currently active workspace build. The new
deadline must be after the existing deadline, and not the zero time.
* provisionerd: updates workspace_build.deadline upon successful workspace
build completion (equal to now plus workspace TTL, if it exists).
Resolves: #1455Resolves: #1456
Summary:
Adds a page (accessible from Workspace Schedule section on a workspace) to edit a schedule.
Impact:
General parity with CLI for autostart/autostop: that is you can update your schedule from the UI
* Start hooking up cancel
* Update xservice
* Render cancel
Changes behavior of other buttons too
* Make outdated workspace story show max buttons
* Remove retry code
* Remove loading button state
* Fix type, extend tests
* Update story