Skip to content
This repository was archived by the owner on Jun 19, 2025. It is now read-only.

Commit 5920d01

Browse files
authored
feat: TT-164 rename and more (#222)
* feat(permision): add user permissions to the application * fix(scopes): New task disabled if no access * fix(scopes): remove package manager line * fix(quick): rename job into task * fix(rm): fix rebase miskate * fix(chore): change cancel confirmation text
1 parent 7e599eb commit 5920d01

File tree

17 files changed

+114
-112
lines changed

17 files changed

+114
-112
lines changed

aqueductcore/frontend/src/App.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { Toaster } from "react-hot-toast";
88
import ExperimentRecordsPage from "pages/ExperimentRecordsPage";
99
import ExperimentDetailsPage from "pages/ExperimentDetailsPage";
1010
import AuthenticationPage from "pages/AuthenticationPage";
11-
import JobHistoryPage from "pages/JobHistoryPage";
11+
import TaskHistoryPage from "pages/TaskHistoryPage";
1212
import SettingsPage from "pages/SettingsPage";
1313
import DrawerLayout from "components/templates/drawerLayout";
1414
import { AuthProvider } from "context/AuthProvider";
@@ -48,8 +48,8 @@ function App() {
4848
element={<ExperimentDetailsPage />}
4949
/>
5050
<Route
51-
path="/aqd/job-history"
52-
element={<JobHistoryPage />}
51+
path="/aqd/task-history"
52+
element={<TaskHistoryPage />}
5353
/>
5454
<Route
5555
path="/settings"

aqueductcore/frontend/src/__mocks__/queries/tasks/getAllTasks.tsx

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { selected_experiment } from "__mocks__/queries/experiment/getExperimentByIdMock";
22
import { GET_ALL_TASKS } from "API/graphql/queries/tasks/getAllTasks";
3-
import { jobListRowsPerPageOptions } from "constants/constants";
3+
import { taskListRowsPerPageOptions } from "constants/constants";
44
import { TasksDataMock } from "__mocks__/TasksDataMock";
55

66
const request = {
@@ -14,15 +14,15 @@ export const getAllTasks_mock = {
1414
...request,
1515
variables: {
1616
offset: 0,
17-
limit: jobListRowsPerPageOptions[0],
17+
limit: taskListRowsPerPageOptions[0],
1818
filters: {}
1919
}
2020
},
2121
result: {
2222
data: {
2323
tasks: {
24-
tasksData: TasksDataMock.slice(0, jobListRowsPerPageOptions[0]),
25-
totalTasksCount: TasksDataMock.slice(0, jobListRowsPerPageOptions[0]).length
24+
tasksData: TasksDataMock.slice(0, taskListRowsPerPageOptions[0]),
25+
totalTasksCount: TasksDataMock.slice(0, taskListRowsPerPageOptions[0]).length
2626
}
2727
},
2828
},
@@ -33,7 +33,7 @@ export const getAllTasks_mock = {
3333
...request,
3434
variables: {
3535
offset: 0,
36-
limit: jobListRowsPerPageOptions[0],
36+
limit: taskListRowsPerPageOptions[0],
3737
filters: {
3838
experiment: {
3939
type: 'UUID',
@@ -45,8 +45,8 @@ export const getAllTasks_mock = {
4545
result: {
4646
data: {
4747
tasks: {
48-
tasksData: TasksDataMock.slice(0, jobListRowsPerPageOptions[0]),
49-
totalTasksCount: TasksDataMock.slice(0, jobListRowsPerPageOptions[0]).length
48+
tasksData: TasksDataMock.slice(0, taskListRowsPerPageOptions[0]),
49+
totalTasksCount: TasksDataMock.slice(0, taskListRowsPerPageOptions[0]).length
5050
}
5151
},
5252
},

aqueductcore/frontend/src/__tests__/JobDetailsModal.test.tsx renamed to aqueductcore/frontend/src/__tests__/TaskDetailsModal.test.tsx

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { render, waitFor } from "@testing-library/react";
22

3-
import JobDetailsModal from "components/organisms/JobDetailsModal";
3+
import TaskDetailsModal from "components/organisms/TaskDetailsModal";
44
import AppContextAQDMock from "__mocks__/AppContextAQDMock";
55
import { PendingTaskId, SampleTaskId } from "__mocks__/TasksDataMock";
66
import userEvent from "@testing-library/user-event";
@@ -10,7 +10,7 @@ const mockHandleClose = jest.fn();
1010
test("cancel button should not get rendered for failed task", async () => {
1111
const { queryByText } = render(
1212
<AppContextAQDMock>
13-
<JobDetailsModal isOpen={true} handleClose={mockHandleClose} taskId={SampleTaskId} />
13+
<TaskDetailsModal isOpen={true} handleClose={mockHandleClose} taskId={SampleTaskId} />
1414
</AppContextAQDMock>
1515
);
1616

@@ -21,7 +21,7 @@ test("cancel button should not get rendered for failed task", async () => {
2121
test("cancel button should get rendered for failed task", async () => {
2222
const { findByText } = render(
2323
<AppContextAQDMock>
24-
<JobDetailsModal isOpen={true} handleClose={mockHandleClose} taskId={PendingTaskId} />
24+
<TaskDetailsModal isOpen={true} handleClose={mockHandleClose} taskId={PendingTaskId} />
2525
</AppContextAQDMock>
2626
);
2727

@@ -32,13 +32,13 @@ test("cancel button should get rendered for failed task", async () => {
3232
test("clicking on cancel task button cancels task", async () => {
3333
const { queryByText, findByTitle } = render(
3434
<AppContextAQDMock>
35-
<JobDetailsModal isOpen={true} handleClose={mockHandleClose} taskId={PendingTaskId} />
35+
<TaskDetailsModal isOpen={true} handleClose={mockHandleClose} taskId={PendingTaskId} />
3636
</AppContextAQDMock>
3737
);
3838

3939
const cancelTaskButton = await findByTitle("cancelTask");
4040
expect(cancelTaskButton).toBeInTheDocument();
41-
41+
4242
await userEvent.click(cancelTaskButton);
4343
await userEvent.click(cancelTaskButton);
4444

@@ -61,13 +61,13 @@ test("clicking on cancel task button cancels task", async () => {
6161
test("clicking on cancel from confirmation modal closes modal", async () => {
6262
const { queryByText, findByTitle } = render(
6363
<AppContextAQDMock>
64-
<JobDetailsModal isOpen={true} handleClose={mockHandleClose} taskId={PendingTaskId} />
64+
<TaskDetailsModal isOpen={true} handleClose={mockHandleClose} taskId={PendingTaskId} />
6565
</AppContextAQDMock>
6666
);
6767

6868
const cancelTaskButton = await findByTitle("cancelTask");
6969
expect(cancelTaskButton).toBeInTheDocument();
70-
70+
7171
await userEvent.click(cancelTaskButton);
7272

7373
const cancelTaskConfirmationModalTitle = queryByText(/Are you sure you want to cancel this task?/)
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import { render } from "@testing-library/react";
22

33
import AppContextAQDMock from "__mocks__/AppContextAQDMock";
4-
import JobHistoryPage from "pages/JobHistoryPage";
4+
import TaskHistoryPage from "pages/TaskHistoryPage";
55

6-
test("render job history page with no error", async () => {
6+
test("render task history page with no error", async () => {
77
render(
88
<AppContextAQDMock>
9-
<JobHistoryPage />
9+
<TaskHistoryPage />
1010
</AppContextAQDMock>
1111
)
1212
});
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ const ExperimentEid = styled(Typography)`
2121
padding: 0 ${(props) => props.theme.spacing(2)};
2222
`;
2323

24-
function JobExperimentName({ name, eid }: { name: ExperimentData['title'], eid: ExperimentData['eid'] }) {
24+
function TaskExperimentName({ name, eid }: { name: ExperimentData['title'], eid: ExperimentData['eid'] }) {
2525
return (
2626
<ExperimentNameChip container>
2727
<Grid item>
@@ -36,4 +36,4 @@ function JobExperimentName({ name, eid }: { name: ExperimentData['title'], eid:
3636
);
3737
}
3838

39-
export default JobExperimentName;
39+
export default TaskExperimentName;
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@ const ActionName = styled(Typography)`
1313
font-size: 0.75rem;
1414
`;
1515

16-
interface JobExtensionActionNameProp {
16+
interface TaskExtensionActionNameProp {
1717
name: ExtensionInfo['name'],
1818
action: ExtensionActionInfo['name']
1919
}
2020

21-
function JobExtensionActionName({ name, action }: JobExtensionActionNameProp) {
21+
function TaskExtensionActionName({ name, action }: TaskExtensionActionNameProp) {
2222
return (
2323
<ExtensionActionContainer>
2424
<ExtensionName noWrap>{name}</ExtensionName>
@@ -27,4 +27,4 @@ function JobExtensionActionName({ name, action }: JobExtensionActionNameProp) {
2727
);
2828
}
2929

30-
export default JobExtensionActionName;
30+
export default TaskExtensionActionName;
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { Typography, styled } from "@mui/material";
22
import Box from "@mui/material/Box";
33

44
import { TaskStatus } from "types/graphql/__GENERATED__/graphql";
5-
import { JobDataType } from "types/globalTypes";
5+
import { TaskDataType } from "types/globalTypes";
66

77
const ExtensionActionContainer = styled(Box)`
88
display: inline-block;
@@ -55,9 +55,9 @@ const StatusCancel = styled(StatusBase)`
5555
border: 1px solid ${({ theme }) => theme.palette.chip.cancelledBorder};
5656
`;
5757

58-
function JobExtensionStatus({ status }: { status: JobDataType['taskStatus'] }) {
58+
function TaskExtensionStatus({ status }: { status: TaskDataType['taskStatus'] }) {
5959

60-
function handleStatus(status: JobDataType['taskStatus']) {
60+
function handleStatus(status: TaskDataType['taskStatus']) {
6161
switch (status) {
6262
case TaskStatus.Failure:
6363
return <StatusFailed>Failed</StatusFailed>
@@ -83,4 +83,4 @@ function JobExtensionStatus({ status }: { status: JobDataType['taskStatus'] }) {
8383
);
8484
}
8585

86-
export default JobExtensionStatus;
86+
export default TaskExtensionStatus;

aqueductcore/frontend/src/components/organisms/ConfirmActionModal/index.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ interface confirmationModalProps {
55
title: string;
66
message: string;
77
warning?: string;
8+
confirmButtonText?: string
89
open: boolean;
910
onClose: () => void;
1011
handleConfirmAction: () => void;
@@ -28,7 +29,7 @@ const ConfirmationModal = styled(Box)`
2829
padding: ${(props) => props.theme.spacing(4)};
2930
`;
3031

31-
function ConfirmActionModal({ title, message, warning, open, onClose, handleConfirmAction }: confirmationModalProps) {
32+
function ConfirmActionModal({ title, message, warning, confirmButtonText, open, onClose, handleConfirmAction }: confirmationModalProps) {
3233
return (
3334
<Modal
3435
open={open}
@@ -44,10 +45,10 @@ function ConfirmActionModal({ title, message, warning, open, onClose, handleConf
4445
</ConfirmActionAlert>}
4546
<Grid container spacing={2} sx={{ mt: 0.5 }}>
4647
<Grid item>
47-
<Button variant="contained" color="error" title="confirmAction" onClick={handleConfirmAction}>Confirm Deletion</Button>
48+
<Button variant="contained" color="error" title="confirmAction" onClick={handleConfirmAction}>{confirmButtonText ?? "Confirm Deletion"}</Button>
4849
</Grid>
4950
<Grid item>
50-
<Button variant="contained" color="neutral" title="closeModal" onClick={onClose}>Cancel</Button>
51+
<Button variant="contained" color="neutral" title="closeModal" onClick={onClose}>Close</Button>
5152
</Grid>
5253
<Grid item></Grid>
5354
</Grid>

aqueductcore/frontend/src/components/organisms/ExperimentDetails/index.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import { isUserAbleToDeleteExperiment, isUserAbleToEditExperiment } from "helper
1414
import ExperimentDetailsActionButtons from "components/organisms/ExperimentDetailsActionButtons";
1515
import { ExperimentDescriptionUpdate } from "components/molecules/ExperimentDescription";
1616
import { useUpdateExperiment } from "API/graphql/mutations/experiment/updateExperiment";
17-
import JobListInExperimentDetails from "components/organisms/JobListInExperimentDetails";
17+
import TaskListInExperimentDetails from "components/organisms/TaskListInExperimentDetails";
1818
import { useGetCurrentUserInfo } from "API/graphql/queries/user/getUserInformation";
1919
import ExperimentDetailsData from "components/organisms/ExperimentDetailsData";
2020
import { ExperimentTitleUpdate } from "components/molecules/ExperimentTitle";
@@ -152,7 +152,7 @@ function ExperimentDetails({ experimentDetails }: ExperimentDetailsProps) {
152152
/>
153153
</Grid>
154154
<Grid item xs={12} xl={6}>
155-
<JobListInExperimentDetails experimentUuid={experimentDetails.uuid} />
155+
<TaskListInExperimentDetails experimentUuid={experimentDetails.uuid} />
156156
</Grid>
157157
</Grid>
158158
</>

aqueductcore/frontend/src/components/organisms/JobDetailsModal/index.tsx renamed to aqueductcore/frontend/src/components/organisms/TaskDetailsModal/index.tsx

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import CloseIcon from '@mui/icons-material/Close';
44
import { ReactNode, useState } from "react";
55
import toast from "react-hot-toast";
66

7-
import JobExtensionStatus from "components/molecules/JobListTableCells/JobExtensionStatus";
7+
import TaskExtensionStatus from "components/molecules/TaskListTableCells/TaskExtensionStatus";
88
import { useGetCurrentUserInfo } from "API/graphql/queries/user/getUserInformation";
99
import { useCancelTask } from "API/graphql/mutations/extension/cancelTask";
1010
import ConfirmActionModal from "components/organisms/ConfirmActionModal";
@@ -18,7 +18,7 @@ import { dateFormatter } from "helper/formatters";
1818
import { client } from "API/apolloClientConfig";
1919
import { TaskType } from "types/globalTypes";
2020

21-
interface JobDetailsModalProps {
21+
interface TaskDetailsModalProps {
2222
isOpen: boolean
2323
handleClose: () => void
2424
taskId: TaskType['taskId']
@@ -103,7 +103,7 @@ const ModalMain = styled(Box)`
103103
background-color: ${({ theme }) => theme.palette.mode === "dark" ? theme.palette.grey[900] : theme.palette.grey[200]};
104104
`;
105105

106-
const JobDetailsBox = styled(Box)`
106+
const TaskDetailsBox = styled(Box)`
107107
width: calc(100% - ${(props) => props.theme.spacing(8)});
108108
margin-left: ${(props) => props.theme.spacing(4)};
109109
margin-top: ${(props) => props.theme.spacing(2)};
@@ -141,7 +141,7 @@ function TabPanel(props: TabPanelProps) {
141141
);
142142
}
143143

144-
function JobDetailsModal({ isOpen, handleClose, taskId }: JobDetailsModalProps) {
144+
function TaskDetailsModal({ isOpen, handleClose, taskId }: TaskDetailsModalProps) {
145145
const [value, setValue] = useState(0);
146146
const { mutate: mutateCancelTask, loading: loadingCancelTask } = useCancelTask();
147147
const [isConfirmationModalOpen, setIsConfirmationModalOpen] = useState<boolean>(false);
@@ -196,7 +196,7 @@ function JobDetailsModal({ isOpen, handleClose, taskId }: JobDetailsModalProps)
196196
if (loading) return <Loading isGlobal />
197197
if (!task) return <></>
198198

199-
const jobRunLog = [
199+
const taskRunLog = [
200200
{
201201
label: "experiment",
202202
value: task.experiment.title
@@ -250,7 +250,7 @@ function JobDetailsModal({ isOpen, handleClose, taskId }: JobDetailsModalProps)
250250
id: "log",
251251
title: "Log",
252252
component: <LogViewer
253-
log={jobRunLog}
253+
log={taskRunLog}
254254
/>
255255
}
256256
]
@@ -265,7 +265,7 @@ function JobDetailsModal({ isOpen, handleClose, taskId }: JobDetailsModalProps)
265265
}}
266266
>
267267
<Grid item sx={{ display: "flex", alignItems: "center" }}>
268-
<JobExtensionStatus status={task.taskStatus} />
268+
<TaskExtensionStatus status={task.taskStatus} />
269269
<ExtensionName>{task.extensionName}</ExtensionName>
270270
<HeaderRightIcon />
271271
<ActionName>{task.actionName}</ActionName>
@@ -315,7 +315,7 @@ function JobDetailsModal({ isOpen, handleClose, taskId }: JobDetailsModalProps)
315315
))}
316316
</Tabs>
317317
</TabsBox>
318-
<JobDetailsBox>
318+
<TaskDetailsBox>
319319
<Container>
320320
{taskDetailsItems.map((item, index) => (
321321
<TabPanel value={value} index={index} key={item.id}>
@@ -332,11 +332,12 @@ function JobDetailsModal({ isOpen, handleClose, taskId }: JobDetailsModalProps)
332332
</TabPanel>
333333
))}
334334
</Container>
335-
</JobDetailsBox>
335+
</TaskDetailsBox>
336336
</ModalMain>
337337
<ConfirmActionModal
338338
title="Cancel Task"
339339
message="Are you sure you want to cancel this task?"
340+
confirmButtonText="Cancel Task"
340341
open={isConfirmationModalOpen}
341342
onClose={closeConfirmationModal}
342343
handleConfirmAction={handleCancelTask}
@@ -346,4 +347,4 @@ function JobDetailsModal({ isOpen, handleClose, taskId }: JobDetailsModalProps)
346347
);
347348
}
348349

349-
export default JobDetailsModal;
350+
export default TaskDetailsModal;

0 commit comments

Comments
 (0)