-
Notifications
You must be signed in to change notification settings - Fork 1.3k
[dashboard] Missing functionality for workspaces page #3487
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
634e0b1
to
675348d
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @svenefftinge! First round of comments are in! Feel free to leave anything as a follow up issue. 🥊
<div className="px-6 py-3 flex justify-between space-x-2 text-sm text-gray-400 border-t border-gray-200 h-96"> | ||
<div className="flex flex-col items-center w-96 m-auto"> | ||
<h3 className="text-center pb-3">No Active Workspaces</h3> | ||
<div className="text-center pb-6">Prefix a git repository URL with gitpod.io/# or open a workspace template. <a className="text-blue underline" href="https://www.gitpod.io/docs/getting-started/">Learn how to get started</a></div> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
suggestion: What do you think of making the link more subtle here?
<div className="text-center pb-6">Prefix a git repository URL with gitpod.io/# or open a workspace template. <a className="text-blue underline" href="https://www.gitpod.io/docs/getting-started/">Learn how to get started</a></div> | |
<div className="text-center pb-6 text-gray-500">Prefix a git repository URL with gitpod.io/# or open a workspace template. <a className="text-gray-400 underline underline-thickness-thin underline-offset-small hover:text-gray-600" href="https://www.gitpod.io/docs/getting-started/">Learn how to get started</a></div> |
components/dashboard/src/index.css
Outdated
@@ -29,7 +29,7 @@ | |||
|
|||
@layer components { | |||
button { | |||
@apply cursor-pointer px-3 py-2 text-white text-sm rounded-md border-2 border-gray-900 bg-gray-500 hover:bg-gray-100; | |||
@apply cursor-pointer px-3 py-1 my-auto bg-green-600 hover:bg-green-700 border-2 border-green-800 text-gray-100 text-sm rounded-lg; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
issue: We're using only two radius variants across the product. Buttons, text fields, and tabs (sidebar, topbar) should use 6px
radius (rounded-md
). Modals, Lists (Workspaces), etc should use 12px
radius (rounded-xl
).
</div> | ||
<div className="py-3 pl-3"> | ||
<DropDown entries={[{ | ||
title: 'Max 50', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
suggestion: I think it's ok to remove the prefix from within the list options and leave here there only the values like 50, 100, 200. The dropdown title can then be Items per page: X
or Workspaces: X
although there's one single page for the time being. WDYT?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How about Limit: 50
?
d="m280,278a153,153 0 1,0-2,2l170,170m-91-117 110,110-26,26-110-110" /> | ||
</svg> | ||
</div> | ||
<input className="border-0" type="text" placeholder="Search Workspace" onChange={(v) => { console.log(v) }} /> | ||
<input className="border-0" type="text" placeholder="Search Workspace" onChange={(v) => { if (wsModel) wsModel.setSearch(v.target.value) }} /> | ||
</div> | ||
<div className="flex-1" /> | ||
<div className="py-3"> | ||
<DropDown entries={[{ | ||
title: 'Active', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
suggestion: The initial thought was to remove the prefix from within the dropdown options but keep the prefix on the title here to make the component-filter more clear. This could still remain Status: Active
.
isTemplateModelOpen: !this.state?.isTemplateModelOpen | ||
}); | ||
const onActive = () => wsModel!.active = true; | ||
const onAll = () => wsModel!.active = false; | ||
return <> | ||
<Header title="Workspaces" subtitle="Manage past workspaces" /> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
suggestion: Since we're here let's also change this to something like the following:
<Header title="Workspaces" subtitle="Manage past workspaces" /> | |
<Header title="Workspaces" subtitle="Manage all workspaces and see pending changes." /> |
Subtitle is also $gray-500
(#78716C
).
} | ||
{ | ||
this.state?.workspaces.map(e => { | ||
return <WorkspaceEntry key={e.workspace.id} desc={e} model={wsModel} /> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
issue: Opening in a new tab by holding CMD does not work.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@@ -58,15 +69,47 @@ export class WorkspaceModel implements Disposable, Partial<GitpodClient> { | |||
this.notifyWorkpaces(); | |||
} | |||
} | |||
searchTerm: string | undefined; | |||
setSearch(searchTerm: string) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
praise: Search works like a charm! 🔮
</div> | ||
<div className="flex-1 flex flex-col overflow-x-auto"> | ||
<div className="text-red font-semibold">Garbage Collection</div> | ||
<p className="text-gray-500">Unpinned workspaces that have been stopped for more than 14 days will be automatically deleted. <a className="text-blue-500 underline" href="https://www.gitpod.io/docs/life-of-workspace/#garbage-collection">Learn more</a></p> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
issue: Let's use the same plugin for the underline here.
<p className="text-gray-500">Unpinned workspaces that have been stopped for more than 14 days will be automatically deleted. <a className="text-blue-500 underline" href="https://www.gitpod.io/docs/life-of-workspace/#garbage-collection">Learn more</a></p> | |
<p className="text-gray-500">Unpinned workspaces that have been stopped for more than 14 days will be automatically deleted. <a className="text-blue-600 underline underline-thickness-thin underline-offset-small hover:text-gray-800">Learn more</a></p> |
<div className="w-6"></div> | ||
<div className="w-3/12">Name</div> | ||
<div className="w-4/12">Context</div> | ||
<div className="w-2/12">Pending Changes</div> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thought: X Changes
below with the text-gitpod-kumquat color seems like. Maybe let's go with a red one. WDYT?
</div> | ||
<div className="flex-1 flex flex-col overflow-x-auto"> | ||
<div className="text-red font-semibold">Garbage Collection</div> | ||
<p className="text-gray-500">Unpinned workspaces that have been stopped for more than 14 days will be automatically deleted. <a className="text-blue-500 underline" href="https://www.gitpod.io/docs/life-of-workspace/#garbage-collection">Learn more</a></p> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
issue: The garbage collection message should remain when searching All workspaces. In the future we could deselect a filter or have a more clear searxh state when searching and remove the GC message. For example, the GV message could include the state of the search (e.g Search Results for xyz
). 🔍
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe when I search for a specific workspace, I have already seen the warning and really would like to be able to focus on the search result. WDYT?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agree but I'd say it depends on if we hold or release the filter state on the status.
thought: For example, if the filter status persists and search happens only for the All workspaces it wouldn't hurt to persist the GC message. If on search, we release the filter state and search across all workspaces it would make more sense to remove the GC message. Since the second filter option is All here it's easier to remove the GC message here. Let's do it!
/werft run 👍 started the job as gitpod-build-se-more-workspaces.6 |
675348d
to
853e611
Compare
Fixes outstanding todos from #3426
Namely:
status:
prefix from filter