It appears unclear as of now when/if these will be implemented so I
opted to remove them (as opposed to commenting them out) to avoid having
them rot (they are easily added back anyway).
Closes#1232.
* 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
* 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 allows for a complete sign-up flow:
1. coder login https://dev.coder.com
2. Navigates to /cli-auth
3. Redirects to /login?redirect=%2Fcli-auth
4. User signs in with GitHub
5. User is redirected back to /cli-auth
* Rename CloseIcon
* Rename FileCopyIcon, take out of index
* Rename LogoutIcon and remove from index
* Delete icons index files
* Add icon stories
* Lint
This PR modfies the original 3-valued cron strings used in package schedule to be traditional 5-valued cron strings.
- schedule.Weekly will validate that the month and dom fields are equal to *
- cli autostart/autostop will attempt to detect local timezone using TZ env var, defaulting to UTC
- cli autostart/autostop no longer accepts a raw schedule -- instead use the --minute, --hour, --dow, and --tz arguments.
- Default schedules are provided that should suffice for most users.
Fixes#993
* 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 🥂
* Remove wrapper from SignInForm
* Spruce up tests
* Add util for form props
* Add back trim
* Add unit tests
* Lint, type fixes
* Pascal case for language
* Arrow functions
* Target text in e2e
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>
Summary:
This commit is a bit of a shotgun fix for various project settings.
Realistically, they could've been separate commits, but this is
convenience for just getting things into a green state to unblock
further work.
Details:
- Use our version of TS in vscode plugins
- organize vscode/settings.json
- fix tsconfig.test and tsconfig.prod (removes errors in test files)
- only use prod tsconfig in webpack
- point .eslintrc to both test and prod configs
- cleanup storybook
- running eslint in my workspace was OOMing. I configured
maxWorkers like we had in v1 to fix this.
- remove .storybook from code coverage
- remove .js files from code coverage --> after moving away
from Next.js, we don't allowJS in our tsconfig anymore. We only
use JS for configurations, it's not allowed in src code!