Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit9597345

Browse files
committed
Add name filter to backend
1 parent7117ac5 commit9597345

File tree

6 files changed

+45
-17
lines changed

6 files changed

+45
-17
lines changed

‎coderd/database/queries.sql.go

Lines changed: 13 additions & 1 deletion
Some generated files are not rendered by default. Learn more aboutcustomizing how changed files appear on GitHub.

‎coderd/database/queries/workspaces.sql

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,12 @@ WHERE
2828
owner_id= @owner_id
2929
ELSE true
3030
END
31+
-- Filter by name
32+
AND CASE
33+
WHEN @name :: string!='' THEN
34+
name=LOWER(@name)
35+
ELSE true
36+
END
3137
;
3238

3339
-- name: GetWorkspacesByOrganizationIDs :many

‎coderd/workspaces.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,7 @@ func (api *API) workspaces(rw http.ResponseWriter, r *http.Request) {
137137
// Empty strings mean no filter
138138
orgFilter:=r.URL.Query().Get("organization_id")
139139
ownerFilter:=r.URL.Query().Get("owner")
140+
nameFilter:=r.URL.Query().Get("name")
140141

141142
filter:= database.GetWorkspacesWithFilterParams{Deleted:false}
142143
iforgFilter!="" {
@@ -170,6 +171,9 @@ func (api *API) workspaces(rw http.ResponseWriter, r *http.Request) {
170171
}
171172
filter.OwnerID=userID
172173
}
174+
ifnameFilter!="" {
175+
filter.Name=nameFilter
176+
}
173177

174178
workspaces,err:=api.Database.GetWorkspacesWithFilter(r.Context(),filter)
175179
iferr!=nil {

‎codersdk/workspaces.go

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"encoding/json"
66
"fmt"
77
"net/http"
8+
"strconv"
89
"time"
910

1011
"github.com/google/uuid"
@@ -200,7 +201,9 @@ func (c *Client) PutExtendWorkspace(ctx context.Context, id uuid.UUID, req PutEx
200201
typeWorkspaceFilterstruct {
201202
OrganizationID uuid.UUID
202203
// Owner can be a user_id (uuid), "me", or a username
203-
Ownerstring
204+
Ownerstring
205+
Namestring
206+
Deletedbool
204207
}
205208

206209
// asRequestOption returns a function that can be used in (*Client).Request.
@@ -214,6 +217,12 @@ func (f WorkspaceFilter) asRequestOption() requestOption {
214217
iff.Owner!="" {
215218
q.Set("owner",f.Owner)
216219
}
220+
iff.Name!="" {
221+
q.Set("name",f.Name)
222+
}
223+
iff.Deleted {
224+
q.Set("deleted",strconv.FormatBool(f.Deleted))
225+
}
217226
r.URL.RawQuery=q.Encode()
218227
}
219228
}

‎site/src/api/typesGenerated.ts

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ export interface CreateUserRequest {
8888
readonlyorganization_id:string
8989
}
9090

91-
// From codersdk/workspaces.go:34:6
91+
// From codersdk/workspaces.go:35:6
9292
exportinterfaceCreateWorkspaceBuildRequest{
9393
readonlytemplate_version_id?:string
9494
readonlytransition:WorkspaceTransition
@@ -222,7 +222,7 @@ export interface ProvisionerJobLog {
222222
readonlyoutput:string
223223
}
224224

225-
// From codersdk/workspaces.go:182:6
225+
// From codersdk/workspaces.go:183:6
226226
exportinterfacePutExtendWorkspaceRequest{
227227
readonlydeadline:string
228228
}
@@ -299,12 +299,12 @@ export interface UpdateUserProfileRequest {
299299
readonlyusername:string
300300
}
301301

302-
// From codersdk/workspaces.go:141:6
302+
// From codersdk/workspaces.go:142:6
303303
exportinterfaceUpdateWorkspaceAutostartRequest{
304304
readonlyschedule:string
305305
}
306306

307-
// From codersdk/workspaces.go:161:6
307+
// From codersdk/workspaces.go:162:6
308308
exportinterfaceUpdateWorkspaceTTLRequest{
309309
// This is likely an enum in an external package ("time.Duration")
310310
readonlyttl?:number
@@ -360,7 +360,7 @@ export interface UsersRequest extends Pagination {
360360
readonlystatus?:string
361361
}
362362

363-
// From codersdk/workspaces.go:18:6
363+
// From codersdk/workspaces.go:19:6
364364
exportinterfaceWorkspace{
365365
readonlyid:string
366366
readonlycreated_at:string
@@ -438,15 +438,17 @@ export interface WorkspaceBuild {
438438
readonlydeadline:string
439439
}
440440

441-
// From codersdk/workspaces.go:64:6
441+
// From codersdk/workspaces.go:65:6
442442
exportinterfaceWorkspaceBuildsRequestextendsPagination{
443443
readonlyWorkspaceID:string
444444
}
445445

446-
// From codersdk/workspaces.go:200:6
446+
// From codersdk/workspaces.go:201:6
447447
exportinterfaceWorkspaceFilter{
448448
readonlyOrganizationID:string
449449
readonlyOwner:string
450+
readonlyName:string
451+
readonlyDeleted:boolean
450452
}
451453

452454
// From codersdk/workspaceresources.go:21:6

‎site/src/pages/WorkspacesPage/WorkspacesPage.tsx

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@ import { useMachine } from "@xstate/react"
99
import{FormikErrors,useFormik}from"formik"
1010
import{FC,useState}from"react"
1111
import{LinkasRouterLink}from"react-router-dom"
12+
import{CloseDropdown,OpenDropdown}from"../../components/DropdownArrows/DropdownArrows"
1213
import{Margins}from"../../components/Margins/Margins"
1314
import{Stack}from"../../components/Stack/Stack"
1415
import{getFormHelpers,onChangeTrimmed}from"../../util/formUtils"
1516
import{workspacesMachine}from"../../xServices/workspaces/workspacesXService"
1617
import{WorkspacesPageView}from"./WorkspacesPageView"
17-
import{CloseDropdown,OpenDropdown}from"../../components/DropdownArrows/DropdownArrows"
1818

1919
interfaceFilterFormValues{
2020
query:string
@@ -24,7 +24,7 @@ const Language = {
2424
filterName:"Filters",
2525
createWorkspaceButton:"Create workspace",
2626
yourWorkspacesButton:"Your workspaces",
27-
allWorkspacesButton:"All workspaces"
27+
allWorkspacesButton:"All workspaces",
2828
}
2929

3030
exporttypeFilterFormErrors=FormikErrors<FilterFormValues>
@@ -78,12 +78,7 @@ const WorkspacesPage: FC = () => {
7878
{Language.filterName}{anchorEl ?<CloseDropdown/> :<OpenDropdown/>}
7979
</Button>
8080

81-
<Menuid="filter-menu"
82-
anchorEl={anchorEl}
83-
keepMounted
84-
open={Boolean(anchorEl)}
85-
onClose={handleClose}
86-
>
81+
<Menuid="filter-menu"anchorEl={anchorEl}keepMountedopen={Boolean(anchorEl)}onClose={handleClose}>
8782
<MenuItemonClick={setYourWorkspaces}>{Language.yourWorkspacesButton}</MenuItem>
8883
<MenuItemonClick={setAllWorkspaces}>{Language.allWorkspacesButton}</MenuItem>
8984
</Menu>

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp