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

Commitf9f94b5

Browse files
authored
fix: remove cancel button if user cannot cancel job (#11553)
1 parent8c3a4f2 commitf9f94b5

File tree

5 files changed

+45
-2
lines changed

5 files changed

+45
-2
lines changed

‎site/src/pages/WorkspacePage/Workspace.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,12 +55,13 @@ export interface WorkspaceProps {
5555
workspaceErrors:WorkspaceErrors;
5656
buildInfo?:TypesGen.BuildInfoResponse;
5757
sshPrefix?:string;
58-
template?:TypesGen.Template;
58+
template:TypesGen.Template;
5959
canRetryDebugMode:boolean;
6060
handleBuildRetry:()=>void;
6161
handleBuildRetryDebug:()=>void;
6262
buildLogs?:React.ReactNode;
6363
canAutostart:boolean;
64+
isOwner:boolean;
6465
}
6566

6667
/**
@@ -93,6 +94,7 @@ export const Workspace: FC<WorkspaceProps> = ({
9394
handleBuildRetryDebug,
9495
buildLogs,
9596
canAutostart,
97+
isOwner,
9698
})=>{
9799
constnavigate=useNavigate();
98100
const{ saveLocal, getLocal}=useLocalStorage();
@@ -199,6 +201,7 @@ export const Workspace: FC<WorkspaceProps> = ({
199201
isUpdating={isUpdating}
200202
isRestarting={isRestarting}
201203
canUpdateWorkspace={canUpdateWorkspace}
204+
isOwner={isOwner}
202205
/>
203206

204207
<div

‎site/src/pages/WorkspacePage/WorkspaceActions/WorkspaceActions.stories.tsx

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,3 +107,29 @@ export const AlwaysUpdateStopped: Story = {
107107
canChangeVersions:true,
108108
},
109109
};
110+
111+
exportconstCancelShownForOwner:Story={
112+
args:{
113+
workspace:{
114+
...Mocks.MockStartingWorkspace,
115+
template_allow_user_cancel_workspace_jobs:false,
116+
},
117+
isOwner:true,
118+
},
119+
};
120+
exportconstCancelShownForUser:Story={
121+
args:{
122+
workspace:Mocks.MockStartingWorkspace,
123+
isOwner:false,
124+
},
125+
};
126+
127+
exportconstCancelHiddenForUser:Story={
128+
args:{
129+
workspace:{
130+
...Mocks.MockStartingWorkspace,
131+
template_allow_user_cancel_workspace_jobs:false,
132+
},
133+
isOwner:false,
134+
},
135+
};

‎site/src/pages/WorkspacePage/WorkspaceActions/WorkspaceActions.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ export interface WorkspaceActionsProps {
4646
children?:ReactNode;
4747
canChangeVersions:boolean;
4848
canRetryDebug:boolean;
49+
isOwner:boolean;
4950
}
5051

5152
exportconstWorkspaceActions:FC<WorkspaceActionsProps>=({
@@ -65,6 +66,7 @@ export const WorkspaceActions: FC<WorkspaceActionsProps> = ({
6566
isRestarting,
6667
canChangeVersions,
6768
canRetryDebug,
69+
isOwner,
6870
})=>{
6971
const{ duplicateWorkspace, isDuplicationReady}=
7072
useWorkspaceDuplication(workspace);
@@ -73,6 +75,9 @@ export const WorkspaceActions: FC<WorkspaceActionsProps> = ({
7375
workspace,
7476
canRetryDebug,
7577
);
78+
constshowCancel=
79+
canCancel&&
80+
(workspace.template_allow_user_cancel_workspace_jobs||isOwner);
7681

7782
constmustUpdate=
7883
workspaceUpdatePolicy(workspace,canChangeVersions)==="always"&&
@@ -146,7 +151,7 @@ export const WorkspaceActions: FC<WorkspaceActionsProps> = ({
146151
<Fragmentkey={action}>{buttonMapping[action]}</Fragment>
147152
))}
148153

149-
{canCancel&&<CancelButtonhandleAction={handleCancel}/>}
154+
{showCancel&&<CancelButtonhandleAction={handleCancel}/>}
150155

151156
<MoreMenu>
152157
<MoreMenuTrigger>

‎site/src/pages/WorkspacePage/WorkspaceReadyPage.tsx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ import { WorkspacePermissions } from "./permissions";
3636
import{workspaceResolveAutostart}from"api/queries/workspaceQuota";
3737
import{WorkspaceDeleteDialog}from"./WorkspaceDeleteDialog";
3838
importdayjsfrom"dayjs";
39+
import{useMe}from"hooks";
3940

4041
interfaceWorkspaceReadyPageProps{
4142
template:TypesGen.Template;
@@ -56,6 +57,10 @@ export const WorkspaceReadyPage = ({
5657
throwError("Workspace is undefined");
5758
}
5859

60+
// Owner
61+
constme=useMe();
62+
constisOwner=me.roles.find((role)=>role.name==="owner")!==undefined;
63+
5964
// Debug mode
6065
const{data:deploymentValues}=useQuery({
6166
...deploymentConfig(),
@@ -247,6 +252,7 @@ export const WorkspaceReadyPage = ({
247252
)
248253
}
249254
canAutostart={canAutostart}
255+
isOwner={isOwner}
250256
/>
251257

252258
<WorkspaceDeleteDialog

‎site/src/pages/WorkspacePage/WorkspaceTopbar.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ export interface WorkspaceProps {
5656
canRetryDebugMode:boolean;
5757
handleBuildRetry:()=>void;
5858
handleBuildRetryDebug:()=>void;
59+
isOwner:boolean;
5960
}
6061

6162
exportconstWorkspaceTopbar=(props:WorkspaceProps)=>{
@@ -77,6 +78,7 @@ export const WorkspaceTopbar = (props: WorkspaceProps) => {
7778
canRetryDebugMode,
7879
handleBuildRetry,
7980
handleBuildRetryDebug,
81+
isOwner,
8082
}=props;
8183
consttheme=useTheme();
8284

@@ -263,6 +265,7 @@ export const WorkspaceTopbar = (props: WorkspaceProps) => {
263265
canChangeVersions={canChangeVersions}
264266
isUpdating={isUpdating}
265267
isRestarting={isRestarting}
268+
isOwner={isOwner}
266269
/>
267270
</div>
268271
</Topbar>

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp