* Make column renderer use the same type as its key
That way the renderer only takes `string` for example when rendering the
name field instead of `string | number` when the interface has some
fields that are strings and some fields are numbers.
This will be necessary when switching to generated types since some of
the fields are numbers (like the owner count on a template).
* Switch fully to generated types
In some places the organization ID is part of the URL but not part of
the request so I separated out the ID into a separate argument in the
relevant API functions.
Otherwise this was a straightforward replacement where I mostly only
needed to change some of the interface names (User instead of
UserResponse for example) and add a few missing but required properties.
I kind of winged the template form; I am not sure what the difference
between a template and template version is or why the latter comes
before the former so the form just returns all the data required to
create both.
* Delete handwritten types
Except for UserAgent which seems to be purely frontend and
ReconnectingPTYRequest which is not in codersdk so I am just leaving it
for now.
* Remove implemented omitempty as a future idea
This was implemented in 2d3dc436a8.
* Add missing optionalities to generated request interfaces
* feat: Implement pagination for template versions
* feat: Use unified pagination between users and template versions
* Sync codepaths between users and template versions
* Create requestOption type in codersdk and add test
* Fix created_at edge case for pagination cursor in queries
* feat: Add support for json omitempty and embedded structs in apitypings (#1318)
* Add scripts/apitypings/main.go to Makefile
* Change name of existing workspace call
* Add new api call (has handler already)
* WorkspacesPage -> WorkspacePage
* starting to replace swr
* Add other api calls
* Fix api call
* Replace swr with xstate
* Format
* Test - wip
* Fix route in template page
* Fix endpoint in create workspace
* Fix tests
* Lint
* feat: Add web terminal with reconnecting TTYs
This adds a web terminal that can reconnect to resume sessions!
No more disconnects, and no more bad bufferring!
* Add xstate service
* Add the webpage for accessing a web terminal
* Add terminal page tests
* Use Ticker instead of Timer
* Active Windows mode on Windows
* Add button and route
* Hook up api
* Lint
* Add basic form
* Get users on page mount
* Make cancel work
* Creating -> idle bc users page refetches
* Import as TypesGen
* Handle api errors
* Lint
* Add handler
* Add FormFooter
* Add FullPageForm
* Lint
* Better form, error, stories
bug in formErrors story
* Make detail optional
* Use Language
* Remove detail prop
* Add back autoFocus
* Remove displayError, use displaySuccess
* Lint, export Language
* Tests - wip
* Fix cancel tests
* Switch back to mock
* Add navigate to xservice
Doesn't work in test
* Move error type predicate to xservice
* Lint
* Switch to using creation mode in XState
still problems in tests
* Lint
* Lint
* Lint
* Revert "Switch to using creation mode in XState"
This reverts commit cf8442fa4b.
* Give XService a navigate action
* Add missing validation messages
* Fix XState warning
* Fix tests
IRL is broken bc I need to send org id
* Pretend user has org id and make it work
* Format
* Lint
* Switch to org ids array
* Skip lines between tests
Co-authored-by: G r e y <grey@coder.com>
* Punctuate notification messages
Co-authored-by: G r e y <grey@coder.com>
This removes split ownership for workspaces. They are now
a resource of organizations and have a designated owner,
which is a user.
This enables simple administration for commands like:
- `coder stop ben/dev`
- `coder build logs colin/arch`
or if we decide to allow administrators to access workspaces,
they could even SSH using this syntax: `coder ssh colin/dev`.
* Start users
* Set up fake response
* Update handler
* Update types
* Set up page
* Start adding table
* Add header
* Add Header
* Remove roles
* Add UsersPageView
* Add test
* Lint
* Storybook error summary
* Strip Pager to just what's currently needed
* Clean up ErrorSummary while I'm here
* Storybook tweaks
* Extract language
* Lint
* Add missing $
Co-authored-by: G r e y <grey@coder.com>
* Lint
* Lint
* Fix syntax error
* Lint
Co-authored-by: G r e y <grey@coder.com>
Summary:
This adds the client-side implementation to match the types introduced
in #879 and #844 as well as a card in the Workspaces page to present
workspace the data.
Details:
* Added a convenient line break in the example schedule.Weekly
* Added missing `json:""` annotations in codersdk/workspaces.go
* Installed cronstrue for displaying human-friendly cron strings
* Adjusted/Added client-side types to match codersdk/workspaces.go
* Added new component WorkspaceSchedule.tsx
Next Steps:
The WorkspaceSchedule.tsx card only presents data (on purpose). In order
to make it PUT/modify data, a few changes will be made:
- a form for updating workspace schedule will be created
- the form will wrapped in a dialog or modal
- the WorkspaceSchedule card will have a way of opening the modal which
will likely be generalized up to WorkspaceSection.tsx
Impact:
This is user-facing
This does not fully resolve either #274 or #275 (I may further decompose
that work to reflect reality and keep things in small deliverable
increments), but adds significant progress towards both.
* Add endpoint for getting build info
* Add build info XService
* Add version with link to page footer
Partially addresses #376.
* Lift buildinfo package
Customer feedback indicated projects was a confusing name.
After querying the team internally, it seemed unanimous
that it is indeed a confusing name.
Here's for a lil less confusion @ashmeer7 🥂
Summary:
This is a first step in porting over v1 AuditLog in a refactored/cleaned
up fashion. The existing `UserCell` component was generalized for re-use
across various tables (AuditLog, Users, Orgs).
Details:
- Move UserCell to `components/Table/Cells`
- Add tests and stories for UserCell
Impact:
This unblocks future work in list views like the audit log, user management
panel and organizations management panel.
Relations:
- This commit relates to https://github.com/coder/coder/issues/472, but does not finish it.
- This commit should not merge until after https://github.com/coder/coder/pull/465 and https://github.com/coder/coder/pull/483 because it's
based on them.
* Extract and unit test redirect functions
* Move router to make app more testable
* Make mock entities more consistent
* Use labels instead of placeholders
* Fill out handlers
* Lint
* Reorganize App
* Make mock entities reference each other
* Add describes in tests
* Clean up api and mocks
* Install and configure XState
* userXService - typegen not working yet
* Lint, fix error transitions
* Lint
* Change initial state to handle loss of state
* Fix gitignore
* Fix types by hook or by crook
* Use xservice in all pages
* Glue/visual component separation
* Fix dependency merge
* Lint
* Remove UserContext
* Remove inspector
* Add typegen command to site/out
* Fix index page redirects
* DRY up nav and redirects
* Moves based on merge
* Moving Page helpers into Page dir
* Move xservice into src, update script
* Move and storybook navbarview
* Update docs
* Install MSW
* Reorganization, with apologies
* Missed spots
* Add mock handlers
* Configure jest for msw
* Fix typos
* Shift unit test to NavbarView
* Fix test types
* Rename NavbarView test
* Attempt at test, wip
* Fix config
* Be logged out, only warn
* Conditionally show text to help test
* Use a Context for MSW's sake
* mocks -> test_helpers
* Enable dev tools
* Format
* Fix import
* Fixes
* Lint
* run typegen postinstall
Co-authored-by: Bryan Phelps <bryan@coder.com>