Skip to content

Commit e07b603

Browse files
authored
✨ Initial Assessment page (#1268)
The hub is going to provide Questionnaire type so the legacy Questionnaire (in model.ts) is renamed PathfinderQuestionnaire which is likely to become obsolete. This uses PF5 Dropdown for Kebab menu instead of deprecated Dropdown. ![image](https://github.com/konveyor/tackle2-ui/assets/1901741/4e847ee6-a175-4364-80b2-3ced296f8a5a) Resolves #1260
1 parent db53222 commit e07b603

File tree

9 files changed

+639
-3
lines changed

9 files changed

+639
-3
lines changed

client/public/locales/en/translation.json

+9-1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
"delete": "Delete",
3030
"discardAssessment": "Discard assessment/review",
3131
"downloadCsvTemplate": "Download CSV template",
32+
"download": "Download {{what}}",
3233
"edit": "Edit",
3334
"export": "Export",
3435
"filterBy": "Filter by {{what}}",
@@ -47,6 +48,7 @@
4748
"selectNone": "Select none",
4849
"selectPage": "Select page",
4950
"submitReview": "Submit review",
51+
"view": "View",
5052
"viewErrorReport": "View error report"
5153
},
5254
"colors": {
@@ -101,8 +103,11 @@
101103
"copyApplicationAssessmentFrom": "Copy {{what}} assessment",
102104
"delete": "Delete {{what}}?",
103105
"discard": "Discard {{what}}?",
106+
"download": "Download {{what}}",
104107
"edit": "Edit {{what}}",
108+
"export": "Export {{what}}",
105109
"importApplicationFile": "Import application file",
110+
"import": "Import {{what}}",
106111
"leavePage": "Leave page",
107112
"new": "New {{what}}",
108113
"newApplication": "New application",
@@ -302,6 +307,8 @@
302307
"proxyConfig": "Proxy configuration",
303308
"proxyConfigDetails": "Manage connections to proxy servers",
304309
"question": "Question",
310+
"questionnaire": "Questionnaire",
311+
"questionnaires": "Questionnaires",
305312
"rank": "Rank",
306313
"project": "Project",
307314
"refresh": "Refresh",
@@ -356,7 +363,8 @@
356363
"user": "User",
357364
"version": "Version",
358365
"workPriority": "Work priority",
359-
"tag": "Tag"
366+
"tag": "Tag",
367+
"YAMLTemplate": "YAML template"
360368
},
361369
"toastr": {
362370
"success": {

client/src/app/Paths.ts

+1
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ export enum Paths {
4747
repositoriesMvn = "/repositories/maven",
4848
proxies = "/proxies",
4949
migrationTargets = "/migration-targets",
50+
assessment = "/assessment",
5051
jira = "/jira",
5152
}
5253

client/src/app/Routes.tsx

+6
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ const AffectedApplications = lazy(
3333
() => import("./pages/issues/affected-applications")
3434
);
3535
const Dependencies = lazy(() => import("./pages/dependencies"));
36+
const Questionnaires = lazy(() => import("./pages/assessment"));
3637

3738
export interface IRoute {
3839
path: string;
@@ -120,6 +121,11 @@ export const devRoutes: IRoute[] = [
120121
},
121122
]
122123
: []),
124+
{
125+
path: Paths.assessment,
126+
comp: Questionnaires,
127+
exact: false,
128+
},
123129
];
124130

125131
export const adminRoutes: IRoute[] = [

client/src/app/api/models.ts

+12-2
Original file line numberDiff line numberDiff line change
@@ -218,10 +218,10 @@ export interface Assessment {
218218
status: AssessmentStatus;
219219
stakeholders?: number[];
220220
stakeholderGroups?: number[];
221-
questionnaire: Questionnaire;
221+
questionnaire: PathfinderQuestionnaire;
222222
}
223223

224-
export interface Questionnaire {
224+
export interface PathfinderQuestionnaire {
225225
categories: QuestionnaireCategory[];
226226
}
227227

@@ -704,3 +704,13 @@ export type HubFile = {
704704
name: string;
705705
path: string;
706706
};
707+
708+
export interface Questionnaire {
709+
id: number;
710+
required: boolean;
711+
name: string;
712+
questions: number;
713+
rating: string;
714+
dateImported: string;
715+
system: boolean;
716+
}

client/src/app/api/rest.ts

+15
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ import {
5050
Rule,
5151
Target,
5252
HubFile,
53+
Questionnaire,
5354
} from "./models";
5455
import { QueryKey } from "@tanstack/react-query";
5556
import { serializeRequestParamsForHub } from "@app/hooks/table-controls";
@@ -106,6 +107,8 @@ export const ANALYSIS_ISSUES = HUB + "/analyses/issues";
106107
export const ANALYSIS_ISSUE_INCIDENTS =
107108
HUB + "/analyses/issues/:issueId/incidents";
108109

110+
export const QUESTIONNAIRES = HUB + "/questionnaires";
111+
109112
// PATHFINDER
110113
export const PATHFINDER = "/hub/pathfinder";
111114
export const ASSESSMENTS = PATHFINDER + "/assessments";
@@ -739,3 +742,15 @@ export const getProxies = (): Promise<Proxy[]> =>
739742

740743
export const updateProxy = (obj: Proxy): Promise<Proxy> =>
741744
axios.put(`${PROXIES}/${obj.id}`, obj);
745+
746+
// Questionnaires
747+
748+
export const getQuestionnaires = (): Promise<Questionnaire[]> =>
749+
axios.get(QUESTIONNAIRES).then((response) => response.data);
750+
751+
export const updateQuestionnaire = (
752+
obj: Questionnaire
753+
): Promise<Questionnaire> => axios.put(`${QUESTIONNAIRES}/${obj.id}`, obj);
754+
755+
export const deleteQuestionnaire = (id: number): Promise<Questionnaire> =>
756+
axios.delete(`${QUESTIONNAIRES}/${id}`);

client/src/app/layout/SidebarApp/SidebarApp.tsx

+5
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,11 @@ export const SidebarApp: React.FC = () => {
227227
</NavItem>
228228
</NavExpandable>
229229
) : null}
230+
<NavItem>
231+
<NavLink to={Paths.assessment} activeClassName="pf-m-current">
232+
Assessment
233+
</NavLink>
234+
</NavItem>
230235
</NavList>
231236
)}
232237
</Nav>

0 commit comments

Comments
 (0)