mirror of
https://github.com/coder/coder.git
synced 2025-07-12 00:14:10 +00:00
feat: support multiple terminal fonts (#17257)
Fixes: https://github.com/coder/coder/issues/15024
This commit is contained in:
@ -189,12 +189,25 @@ type ValidateUserPasswordResponse struct {
|
||||
Details string `json:"details"`
|
||||
}
|
||||
|
||||
// TerminalFontName is the name of supported terminal font
|
||||
type TerminalFontName string
|
||||
|
||||
var TerminalFontNames = []TerminalFontName{TerminalFontUnknown, TerminalFontIBMPlexMono, TerminalFontFiraCode}
|
||||
|
||||
const (
|
||||
TerminalFontUnknown TerminalFontName = ""
|
||||
TerminalFontIBMPlexMono TerminalFontName = "ibm-plex-mono"
|
||||
TerminalFontFiraCode TerminalFontName = "fira-code"
|
||||
)
|
||||
|
||||
type UserAppearanceSettings struct {
|
||||
ThemePreference string `json:"theme_preference"`
|
||||
ThemePreference string `json:"theme_preference"`
|
||||
TerminalFont TerminalFontName `json:"terminal_font"`
|
||||
}
|
||||
|
||||
type UpdateUserAppearanceSettingsRequest struct {
|
||||
ThemePreference string `json:"theme_preference" validate:"required"`
|
||||
ThemePreference string `json:"theme_preference" validate:"required"`
|
||||
TerminalFont TerminalFontName `json:"terminal_font" validate:"required"`
|
||||
}
|
||||
|
||||
type UpdateUserPasswordRequest struct {
|
||||
@ -466,17 +479,31 @@ func (c *Client) UpdateUserStatus(ctx context.Context, user string, status UserS
|
||||
return resp, json.NewDecoder(res.Body).Decode(&resp)
|
||||
}
|
||||
|
||||
// UpdateUserAppearanceSettings updates the appearance settings for a user.
|
||||
func (c *Client) UpdateUserAppearanceSettings(ctx context.Context, user string, req UpdateUserAppearanceSettingsRequest) (User, error) {
|
||||
res, err := c.Request(ctx, http.MethodPut, fmt.Sprintf("/api/v2/users/%s/appearance", user), req)
|
||||
// GetUserAppearanceSettings fetches the appearance settings for a user.
|
||||
func (c *Client) GetUserAppearanceSettings(ctx context.Context, user string) (UserAppearanceSettings, error) {
|
||||
res, err := c.Request(ctx, http.MethodGet, fmt.Sprintf("/api/v2/users/%s/appearance", user), nil)
|
||||
if err != nil {
|
||||
return User{}, err
|
||||
return UserAppearanceSettings{}, err
|
||||
}
|
||||
defer res.Body.Close()
|
||||
if res.StatusCode != http.StatusOK {
|
||||
return User{}, ReadBodyAsError(res)
|
||||
return UserAppearanceSettings{}, ReadBodyAsError(res)
|
||||
}
|
||||
var resp User
|
||||
var resp UserAppearanceSettings
|
||||
return resp, json.NewDecoder(res.Body).Decode(&resp)
|
||||
}
|
||||
|
||||
// UpdateUserAppearanceSettings updates the appearance settings for a user.
|
||||
func (c *Client) UpdateUserAppearanceSettings(ctx context.Context, user string, req UpdateUserAppearanceSettingsRequest) (UserAppearanceSettings, error) {
|
||||
res, err := c.Request(ctx, http.MethodPut, fmt.Sprintf("/api/v2/users/%s/appearance", user), req)
|
||||
if err != nil {
|
||||
return UserAppearanceSettings{}, err
|
||||
}
|
||||
defer res.Body.Close()
|
||||
if res.StatusCode != http.StatusOK {
|
||||
return UserAppearanceSettings{}, ReadBodyAsError(res)
|
||||
}
|
||||
var resp UserAppearanceSettings
|
||||
return resp, json.NewDecoder(res.Body).Decode(&resp)
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user