diff --git a/src/app/api/standards.jsx b/src/app/api/standards.jsx
index 6a92277199..fc9a73b138 100755
--- a/src/app/api/standards.jsx
+++ b/src/app/api/standards.jsx
@@ -84,6 +84,38 @@ const useFetchAccessibilityStandards = () => {
});
};
+const useFetchCodeSets = () => {
+ const axios = useAxios();
+ return useQuery(['code-sets'], async () => {
+ const response = await axios.get('code-sets');
+ return response.data;
+ });
+};
+
+const useFetchConformanceMethods = () => {
+ const axios = useAxios();
+ return useQuery(['conformance-methods'], async () => {
+ const response = await axios.get('conformance-methods');
+ return response.data;
+ });
+};
+
+const useFetchCqms = (props = { active: true }) => {
+ const params = Object
+ .entries(props)
+ .filter(([key, value]) => key !== 'active' && value)
+ .filter(([key]) => (key !== 'active'))
+ .map(([key, value]) => `${key}=${value}`)
+ .join('&');
+ let query = 'cqms';
+ if (params.length > 0) { query += `?${params}`; }
+ const axios = useAxios();
+ return useQuery(['cqms', params], async () => {
+ const response = await axios.get(query);
+ return response.data.filter((cc) => !props.active || cc.startDay < jsJoda.LocalDate.now());
+ });
+};
+
const useFetchCriteria = (props = { enabled: true, active: true }) => {
const params = Object
.entries(props)
@@ -142,6 +174,14 @@ const useFetchFunctionalitiesTested = () => {
});
};
+const useFetchG1g2 = () => {
+ const axios = useAxios();
+ return useQuery(['g1g2'], async () => {
+ const response = await axios.get('data/measures');
+ return response.data.data;
+ });
+};
+
const useFetchQmsStandards = () => {
const axios = useAxios();
return useQuery(['qms-standards'], async () => {
@@ -174,6 +214,14 @@ const useFetchSvaps = () => {
});
};
+const useFetchTestData = () => {
+ const axios = useAxios();
+ return useQuery(['test-data'], async () => {
+ const response = await axios.get('data/test_data');
+ return response.data.data;
+ });
+};
+
const useFetchTestTools = () => {
const axios = useAxios();
return useQuery(['test-tools'], async () => {
@@ -345,16 +393,21 @@ export {
useDeleteTestTool,
useDeleteUcdProcess,
useFetchAccessibilityStandards,
+ useFetchCodeSets,
+ useFetchConformanceMethods,
+ useFetchCqms,
useFetchCriteria,
useFetchCriteriaForFunctionalitiesTested,
useFetchCriteriaForStandards,
useFetchCriteriaForSvaps,
useFetchCriteriaForTestTools,
useFetchFunctionalitiesTested,
+ useFetchG1g2,
useFetchQmsStandards,
useFetchRules,
useFetchStandards,
useFetchSvaps,
+ useFetchTestData,
useFetchTestTools,
useFetchUcdProcesses,
usePostAccessibilityStandard,
diff --git a/src/app/components/system-maintenance/certification-criteria/certification-criteria-view.jsx b/src/app/components/system-maintenance/certification-criterion/certification-criteria-view.jsx
similarity index 100%
rename from src/app/components/system-maintenance/certification-criteria/certification-criteria-view.jsx
rename to src/app/components/system-maintenance/certification-criterion/certification-criteria-view.jsx
diff --git a/src/app/components/system-maintenance/certification-criteria/certification-criteria.jsx b/src/app/components/system-maintenance/certification-criterion/certification-criteria.jsx
similarity index 100%
rename from src/app/components/system-maintenance/certification-criteria/certification-criteria.jsx
rename to src/app/components/system-maintenance/certification-criterion/certification-criteria.jsx
diff --git a/src/app/components/system-maintenance/certification-criteria/certification-criteria.test.jsx b/src/app/components/system-maintenance/certification-criterion/certification-criteria.test.jsx
similarity index 100%
rename from src/app/components/system-maintenance/certification-criteria/certification-criteria.test.jsx
rename to src/app/components/system-maintenance/certification-criterion/certification-criteria.test.jsx
diff --git a/src/app/components/system-maintenance/code-set/code-sets-view.jsx b/src/app/components/system-maintenance/code-set/code-sets-view.jsx
new file mode 100755
index 0000000000..93926afe7a
--- /dev/null
+++ b/src/app/components/system-maintenance/code-set/code-sets-view.jsx
@@ -0,0 +1,97 @@
+import React, { useEffect, useState } from 'react';
+import {
+ Paper,
+ Table,
+ TableBody,
+ TableCell,
+ TableContainer,
+ TableRow,
+ makeStyles,
+} from '@material-ui/core';
+import { arrayOf, object } from 'prop-types';
+
+import { ChplSortableHeaders, sortComparator } from 'components/util/sortable-headers';
+import { sortCriteria } from 'services/criteria.service';
+import { getDisplayDateFormat } from 'services/date-util';
+import { utilStyles } from 'themes';
+
+const headers = [
+ { property: 'name', text: 'Name', sortable: true },
+ { property: 'startDay', text: 'Start Date', sortable: true },
+ { property: 'requiredDay', text: 'Required Date', sortable: true },
+ { text: 'Applicable Criteria' },
+];
+
+const useStyles = makeStyles({
+ ...utilStyles,
+});
+
+function ChplCodeSetsView({ codeSets: initialCodeSets }) {
+ const [codeSets, setCodeSets] = useState([]);
+ const [order, setOrder] = useState('asc');
+ const [orderBy, setOrderBy] = useState('name');
+ const classes = useStyles();
+
+ useEffect(() => {
+ setCodeSets(initialCodeSets
+ .map((item) => ({
+ ...item,
+ criteriaDisplay: item.criteria
+ .sort(sortCriteria)
+ .map((c) => c.number)
+ .join(', '),
+ }))
+ .sort(sortComparator('name')));
+ }, [initialCodeSets]);
+
+ const handleTableSort = (event, property, orderDirection) => {
+ const descending = orderDirection === 'desc';
+ const updated = codeSets.sort(sortComparator(property, descending));
+ setOrderBy(property);
+ setOrder(orderDirection);
+ setCodeSets(updated);
+ };
+
+ return (
+ <>
+
+
+
+
+ { codeSets
+ .map((item) => (
+
+
+ { item.name }
+
+
+ { getDisplayDateFormat(item.startDay) }
+
+
+ { getDisplayDateFormat(item.requiredDay) }
+
+
+ { item.criteriaDisplay }
+
+
+ ))}
+
+
+
+ >
+ );
+}
+
+export default ChplCodeSetsView;
+
+ChplCodeSetsView.propTypes = {
+ codeSets: arrayOf(object).isRequired,
+};
diff --git a/src/app/components/system-maintenance/code-set/code-sets.jsx b/src/app/components/system-maintenance/code-set/code-sets.jsx
new file mode 100755
index 0000000000..77a2dd2740
--- /dev/null
+++ b/src/app/components/system-maintenance/code-set/code-sets.jsx
@@ -0,0 +1,60 @@
+import React, { useContext, useEffect, useState } from 'react';
+import {
+ Button,
+ Card,
+ CardContent,
+ CardHeader,
+ CircularProgress,
+} from '@material-ui/core';
+
+import ChplCodeSetsView from './code-sets-view';
+
+import { useFetchCodeSets } from 'api/standards';
+import { BreadcrumbContext } from 'shared/contexts';
+
+function ChplCodeSets() {
+ const { append, display } = useContext(BreadcrumbContext);
+ const { data, isLoading, isSuccess } = useFetchCodeSets();
+ const [codeSets, setCodeSets] = useState([]);
+
+ useEffect(() => {
+ append(
+ ,
+ );
+ display('codeSets.viewall.disabled');
+ }, []);
+
+ useEffect(() => {
+ if (isLoading || !isSuccess) { return; }
+ setCodeSets(data);
+ }, [data, isLoading, isSuccess]);
+
+ if (isLoading) {
+ return (
+
+ );
+ }
+
+ return (
+
+
+
+
+
+
+ );
+}
+
+export default ChplCodeSets;
+
+ChplCodeSets.propTypes = {
+};
diff --git a/src/app/components/system-maintenance/conformance-method/conformance-methods-view.jsx b/src/app/components/system-maintenance/conformance-method/conformance-methods-view.jsx
new file mode 100755
index 0000000000..d993cd3955
--- /dev/null
+++ b/src/app/components/system-maintenance/conformance-method/conformance-methods-view.jsx
@@ -0,0 +1,99 @@
+import React, { useEffect, useState } from 'react';
+import {
+ Paper,
+ Table,
+ TableBody,
+ TableCell,
+ TableContainer,
+ TableRow,
+ makeStyles,
+} from '@material-ui/core';
+import { arrayOf, object } from 'prop-types';
+
+import { ChplSortableHeaders, sortComparator } from 'components/util/sortable-headers';
+import { sortCriteria } from 'services/criteria.service';
+import { getDisplayDateFormat } from 'services/date-util';
+import { utilStyles } from 'themes';
+
+const headers = [
+ { property: 'name', text: 'Name', sortable: true },
+ { property: 'removalDate', text: 'Removal Date', sortable: true },
+ { text: 'Applicable Criteria' },
+];
+
+const useStyles = makeStyles({
+ ...utilStyles,
+});
+
+function ChplConformanceMethodsView({ conformanceMethods: initialConformanceMethods }) {
+ const [conformanceMethods, setConformanceMethods] = useState([]);
+ const [order, setOrder] = useState('asc');
+ const [orderBy, setOrderBy] = useState('name');
+ const classes = useStyles();
+
+ useEffect(() => {
+ setConformanceMethods(initialConformanceMethods
+ .map((item) => ({
+ ...item,
+ criteriaDisplay: item.criteria
+ .sort(sortCriteria)
+ .map((c) => c.number)
+ .join(', '),
+ }))
+ .sort(sortComparator('name')));
+ }, [initialConformanceMethods]);
+
+ const handleTableSort = (event, property, orderDirection) => {
+ const descending = orderDirection === 'desc';
+ const updated = conformanceMethods.sort(sortComparator(property, descending));
+ setOrderBy(property);
+ setOrder(orderDirection);
+ setConformanceMethods(updated);
+ };
+
+ return (
+ <>
+
+
+
+
+ { conformanceMethods
+ .map((item) => (
+
+
+ { item.removed
+ && (
+ <>
+ Removed |
+ >
+ )}
+ { item.name }
+
+
+ { getDisplayDateFormat(item.removalDate) }
+
+
+ { item.criteriaDisplay }
+
+
+ ))}
+
+
+
+ >
+ );
+}
+
+export default ChplConformanceMethodsView;
+
+ChplConformanceMethodsView.propTypes = {
+ conformanceMethods: arrayOf(object).isRequired,
+};
diff --git a/src/app/components/system-maintenance/conformance-method/conformance-methods.jsx b/src/app/components/system-maintenance/conformance-method/conformance-methods.jsx
new file mode 100755
index 0000000000..fa8f018cc3
--- /dev/null
+++ b/src/app/components/system-maintenance/conformance-method/conformance-methods.jsx
@@ -0,0 +1,60 @@
+import React, { useContext, useEffect, useState } from 'react';
+import {
+ Button,
+ Card,
+ CardContent,
+ CardHeader,
+ CircularProgress,
+} from '@material-ui/core';
+
+import ChplConformanceMethodsView from './conformance-methods-view';
+
+import { useFetchConformanceMethods } from 'api/standards';
+import { BreadcrumbContext } from 'shared/contexts';
+
+function ChplConformanceMethods() {
+ const { append, display } = useContext(BreadcrumbContext);
+ const { data, isLoading, isSuccess } = useFetchConformanceMethods();
+ const [conformanceMethods, setConformanceMethods] = useState([]);
+
+ useEffect(() => {
+ append(
+ ,
+ );
+ display('conformanceMethods.viewall.disabled');
+ }, []);
+
+ useEffect(() => {
+ if (isLoading || !isSuccess) { return; }
+ setConformanceMethods(data);
+ }, [data, isLoading, isSuccess]);
+
+ if (isLoading) {
+ return (
+
+ );
+ }
+
+ return (
+
+
+
+
+
+
+ );
+}
+
+export default ChplConformanceMethods;
+
+ChplConformanceMethods.propTypes = {
+};
diff --git a/src/app/components/system-maintenance/cqm/cqms-view.jsx b/src/app/components/system-maintenance/cqm/cqms-view.jsx
new file mode 100755
index 0000000000..7d9a3cc4ba
--- /dev/null
+++ b/src/app/components/system-maintenance/cqm/cqms-view.jsx
@@ -0,0 +1,104 @@
+import React, { useEffect, useState } from 'react';
+import {
+ Paper,
+ Table,
+ TableBody,
+ TableCell,
+ TableContainer,
+ TableRow,
+ makeStyles,
+} from '@material-ui/core';
+import { arrayOf } from 'prop-types';
+
+import { ChplSortableHeaders, sortComparator } from 'components/util/sortable-headers';
+import { cqm as cqmPropType } from 'shared/prop-types';
+import { utilStyles } from 'themes';
+
+const headers = [
+ { property: 'display', text: 'ID', sortable: true },
+ { property: 'title', text: 'Title', sortable: true },
+ { property: 'description', text: 'Description', sortable: true },
+ { property: 'domain', text: 'Domain', sortable: true },
+ { text: 'Version(s)' },
+];
+
+const useStyles = makeStyles({
+ ...utilStyles,
+});
+
+const sortVersion = (a, b) => {
+ const aNum = parseInt(a.substring(1), 10);
+ const bNum = parseInt(b.substring(1), 10);
+ return aNum - bNum;
+};
+
+function ChplCqmsView({ cqms: initialCqms }) {
+ const [cqms, setCqms] = useState([]);
+ const [order, setOrder] = useState('asc');
+ const [orderBy, setOrderBy] = useState('value');
+ const classes = useStyles();
+
+ useEffect(() => {
+ setCqms(initialCqms
+ .map((c) => ({
+ ...c,
+ display: c.cmsId ? c.cmsId : `NQF-${c.nqfNumber}`,
+ versionDisplay: c.versions.sort(sortVersion).join(', '),
+ }))
+ .sort(sortComparator('value')));
+ }, [initialCqms]);
+
+ const handleTableSort = (event, property, orderDirection) => {
+ const descending = orderDirection === 'desc';
+ const updated = cqms.sort(sortComparator(property, descending));
+ setOrderBy(property);
+ setOrder(orderDirection);
+ setCqms(updated);
+ };
+
+ return (
+ <>
+
+
+
+
+ { cqms
+ .map((item) => (
+
+
+ { item.display }
+
+
+ { item.title }
+
+
+ { item.description }
+
+
+ { item.domain }
+
+
+ { item.versionDisplay }
+
+
+ ))}
+
+
+
+ >
+ );
+}
+
+export default ChplCqmsView;
+
+ChplCqmsView.propTypes = {
+ cqms: arrayOf(cqmPropType).isRequired,
+};
diff --git a/src/app/components/system-maintenance/cqm/cqms.jsx b/src/app/components/system-maintenance/cqm/cqms.jsx
new file mode 100755
index 0000000000..0153931ba6
--- /dev/null
+++ b/src/app/components/system-maintenance/cqm/cqms.jsx
@@ -0,0 +1,60 @@
+import React, { useContext, useEffect, useState } from 'react';
+import {
+ Button,
+ Card,
+ CardContent,
+ CardHeader,
+ CircularProgress,
+} from '@material-ui/core';
+
+import ChplCqmsView from './cqms-view';
+
+import { useFetchCqms } from 'api/standards';
+import { BreadcrumbContext } from 'shared/contexts';
+
+function ChplCqms() {
+ const { append, display } = useContext(BreadcrumbContext);
+ const { data, isLoading, isSuccess } = useFetchCqms({ active: false });
+ const [cqms, setCqms] = useState([]);
+
+ useEffect(() => {
+ append(
+ ,
+ );
+ display('cqms.viewall.disabled');
+ }, []);
+
+ useEffect(() => {
+ if (isLoading || !isSuccess) { return; }
+ setCqms(data);
+ }, [data, isLoading, isSuccess]);
+
+ if (isLoading) {
+ return (
+
+ );
+ }
+
+ return (
+
+
+
+
+
+
+ );
+}
+
+export default ChplCqms;
+
+ChplCqms.propTypes = {
+};
diff --git a/src/app/components/system-maintenance/g1g2/g1g2-view.jsx b/src/app/components/system-maintenance/g1g2/g1g2-view.jsx
new file mode 100755
index 0000000000..860f379dab
--- /dev/null
+++ b/src/app/components/system-maintenance/g1g2/g1g2-view.jsx
@@ -0,0 +1,107 @@
+import React, { useEffect, useState } from 'react';
+import {
+ Paper,
+ Table,
+ TableBody,
+ TableCell,
+ TableContainer,
+ TableRow,
+ makeStyles,
+} from '@material-ui/core';
+import { arrayOf, object } from 'prop-types';
+
+import { ChplSortableHeaders, sortComparator } from 'components/util/sortable-headers';
+import { sortCriteria } from 'services/criteria.service';
+import { utilStyles } from 'themes';
+
+const headers = [
+ { property: 'abbreviation', text: 'Abbreviation', sortable: true },
+ { property: 'domainDisplay', text: 'Domain', sortable: true },
+ { property: 'requiredTest', text: 'Required Test', sortable: true },
+ { property: 'name', text: 'Name', sortable: true },
+ { text: 'Applicable Criteria' },
+];
+
+const useStyles = makeStyles({
+ ...utilStyles,
+});
+
+function ChplG1g2View({ g1g2: initialG1g2 }) {
+ const [g1g2, setG1g2] = useState([]);
+ const [order, setOrder] = useState('asc');
+ const [orderBy, setOrderBy] = useState('abbreviation');
+ const classes = useStyles();
+
+ useEffect(() => {
+ setG1g2(initialG1g2
+ .map((item) => ({
+ ...item,
+ domainDisplay: item.domain.name,
+ criteriaDisplay: item.allowedCriteria
+ .sort(sortCriteria)
+ .map((c) => c.number)
+ .join(', '),
+ }))
+ .sort(sortComparator('abbreviation')));
+ }, [initialG1g2]);
+
+ const handleTableSort = (event, property, orderDirection) => {
+ const descending = orderDirection === 'desc';
+ const updated = g1g2.sort(sortComparator(property, descending));
+ setOrderBy(property);
+ setOrder(orderDirection);
+ setG1g2(updated);
+ };
+
+ return (
+ <>
+
+
+
+
+ { g1g2
+ .map((item) => (
+
+
+ { item.abbreviation }
+
+
+ { item.domainDisplay }
+
+
+ { item.removed
+ && (
+ <>
+ Removed |
+ >
+ )}
+ { item.requiredTest }
+
+
+ { item.name }
+
+
+ { item.criteriaDisplay }
+
+
+ ))}
+
+
+
+ >
+ );
+}
+
+export default ChplG1g2View;
+
+ChplG1g2View.propTypes = {
+ g1g2: arrayOf(object).isRequired,
+};
diff --git a/src/app/components/system-maintenance/g1g2/g1g2.jsx b/src/app/components/system-maintenance/g1g2/g1g2.jsx
new file mode 100755
index 0000000000..4885029f04
--- /dev/null
+++ b/src/app/components/system-maintenance/g1g2/g1g2.jsx
@@ -0,0 +1,60 @@
+import React, { useContext, useEffect, useState } from 'react';
+import {
+ Button,
+ Card,
+ CardContent,
+ CardHeader,
+ CircularProgress,
+} from '@material-ui/core';
+
+import ChplG1g2View from './g1g2-view';
+
+import { useFetchG1g2 } from 'api/standards';
+import { BreadcrumbContext } from 'shared/contexts';
+
+function ChplG1g2() {
+ const { append, display } = useContext(BreadcrumbContext);
+ const { data, isLoading, isSuccess } = useFetchG1g2();
+ const [g1g2, setG1g2] = useState([]);
+
+ useEffect(() => {
+ append(
+ ,
+ );
+ display('g1g2.viewall.disabled');
+ }, []);
+
+ useEffect(() => {
+ if (isLoading || !isSuccess) { return; }
+ setG1g2(data);
+ }, [data, isLoading, isSuccess]);
+
+ if (isLoading) {
+ return (
+
+ );
+ }
+
+ return (
+
+
+
+
+
+
+ );
+}
+
+export default ChplG1g2;
+
+ChplG1g2.propTypes = {
+};
diff --git a/src/app/components/system-maintenance/test-data/test-data-view.jsx b/src/app/components/system-maintenance/test-data/test-data-view.jsx
new file mode 100755
index 0000000000..874e9f9ec6
--- /dev/null
+++ b/src/app/components/system-maintenance/test-data/test-data-view.jsx
@@ -0,0 +1,94 @@
+import React, { useEffect, useState } from 'react';
+import {
+ Paper,
+ Table,
+ TableBody,
+ TableCell,
+ TableContainer,
+ TableRow,
+ makeStyles,
+} from '@material-ui/core';
+import { arrayOf, object } from 'prop-types';
+
+import { ChplSortableHeaders, sortComparator } from 'components/util/sortable-headers';
+import { utilStyles } from 'themes';
+
+const headers = [
+ { property: 'name', text: 'Name', sortable: true },
+ { property: 'description', text: 'Description', sortable: true },
+ { text: 'Applicable Criteria' },
+];
+
+const useStyles = makeStyles({
+ ...utilStyles,
+});
+
+function ChplTestDataView({ testData: initialTestData }) {
+ const [testData, setTestData] = useState([]);
+ const [order, setOrder] = useState('asc');
+ const [orderBy, setOrderBy] = useState('name');
+ const classes = useStyles();
+
+ useEffect(() => {
+ setTestData(initialTestData
+ .map((item) => ({
+ ...item,
+ criteriaDisplay: item.criteria.number,
+ }))
+ .sort(sortComparator('name')));
+ }, [initialTestData]);
+
+ const handleTableSort = (event, property, orderDirection) => {
+ const descending = orderDirection === 'desc';
+ const updated = testData.sort(sortComparator(property, descending));
+ setOrderBy(property);
+ setOrder(orderDirection);
+ setTestData(updated);
+ };
+
+ return (
+ <>
+
+
+
+
+ { testData
+ .map((item) => (
+
+
+ { item.removed
+ && (
+ <>
+ Removed |
+ >
+ )}
+ { item.name }
+
+
+ { item.description }
+
+
+ { item.criteriaDisplay }
+
+
+ ))}
+
+
+
+ >
+ );
+}
+
+export default ChplTestDataView;
+
+ChplTestDataView.propTypes = {
+ testData: arrayOf(object).isRequired,
+};
diff --git a/src/app/components/system-maintenance/test-data/test-data.jsx b/src/app/components/system-maintenance/test-data/test-data.jsx
new file mode 100755
index 0000000000..0f60878cf2
--- /dev/null
+++ b/src/app/components/system-maintenance/test-data/test-data.jsx
@@ -0,0 +1,60 @@
+import React, { useContext, useEffect, useState } from 'react';
+import {
+ Button,
+ Card,
+ CardContent,
+ CardHeader,
+ CircularProgress,
+} from '@material-ui/core';
+
+import ChplTestDataView from './test-data-view';
+
+import { useFetchTestData } from 'api/standards';
+import { BreadcrumbContext } from 'shared/contexts';
+
+function ChplTestData() {
+ const { append, display } = useContext(BreadcrumbContext);
+ const { data, isLoading, isSuccess } = useFetchTestData();
+ const [testData, setTestData] = useState([]);
+
+ useEffect(() => {
+ append(
+ ,
+ );
+ display('testData.viewall.disabled');
+ }, []);
+
+ useEffect(() => {
+ if (isLoading || !isSuccess) { return; }
+ setTestData(data);
+ }, [data, isLoading, isSuccess]);
+
+ if (isLoading) {
+ return (
+
+ );
+ }
+
+ return (
+
+
+
+
+
+
+ );
+}
+
+export default ChplTestData;
+
+ChplTestData.propTypes = {
+};
diff --git a/src/app/pages/administration/system-maintenance/system-maintenance.jsx b/src/app/pages/administration/system-maintenance/system-maintenance.jsx
index 19fa5042b1..4b5410b9be 100755
--- a/src/app/pages/administration/system-maintenance/system-maintenance.jsx
+++ b/src/app/pages/administration/system-maintenance/system-maintenance.jsx
@@ -11,29 +11,39 @@ import {
Divider,
ListItemText,
} from '@material-ui/core';
-import CodeOutlinedIcon from '@material-ui/icons/CodeOutlined';
+import AccessibilityNewOutlinedIcon from '@material-ui/icons/AccessibilityNewOutlined';
+import AccountBalanceOutlinedIcon from '@material-ui/icons/AccountBalanceOutlined';
import AnnouncementOutlinedIcon from '@material-ui/icons/AnnouncementOutlined';
-import SubscriptionsOutlinedIcon from '@material-ui/icons/SubscriptionsOutlined';
-import BookOutlinedIcon from '@material-ui/icons/BookOutlined';
-import TrendingUpOutlinedIcon from '@material-ui/icons/TrendingUpOutlined';
-import PlaylistAddCheckOutlinedIcon from '@material-ui/icons/PlaylistAddCheckOutlined';
import AssessmentOutlinedIcon from '@material-ui/icons/AssessmentOutlined';
-import AccessibilityNewOutlinedIcon from '@material-ui/icons/AccessibilityNewOutlined';
+import AssignmentTurnedInOutlinedIcon from '@material-ui/icons/AssignmentTurnedInOutlined';
+import BeenhereOutlinedIcon from '@material-ui/icons/BeenhereOutlined';
+import BookOutlinedIcon from '@material-ui/icons/BookOutlined';
+import BuildOutlinedIcon from '@material-ui/icons/BuildOutlined';
+import DataUsageOutlinedIcon from '@material-ui/icons/DataUsageOutlined';
+import CodeOutlinedIcon from '@material-ui/icons/CodeOutlined';
import PlayArrowOutlinedIcon from '@material-ui/icons/PlayArrowOutlined';
+import PlaylistAddCheckOutlinedIcon from '@material-ui/icons/PlaylistAddCheckOutlined';
+import SettingsEthernetIcon from '@material-ui/icons/SettingsEthernet';
+import SpeedOutlinedIcon from '@material-ui/icons/SpeedOutlined';
+import SubscriptionsOutlinedIcon from '@material-ui/icons/SubscriptionsOutlined';
import TouchAppOutlinedIcon from '@material-ui/icons/TouchAppOutlined';
-import BuildOutlinedIcon from '@material-ui/icons/BuildOutlined';
-import BeenhereOutlinedIcon from '@material-ui/icons/BeenhereOutlined';
+import TrendingUpOutlinedIcon from '@material-ui/icons/TrendingUpOutlined';
import ChplAccessibilityStandards from 'components/system-maintenance/accessibility-standard/accessibility-standards';
import ChplAnnouncements from 'components/system-maintenance/announcement/announcements';
import ChplApiKeys from 'components/system-maintenance/api-key/api-keys';
-import ChplCertificationCriteria from 'components/system-maintenance/certification-criteria/certification-criteria';
+import ChplCertificationCriteria from 'components/system-maintenance/certification-criterion/certification-criteria';
+import ChplCodeSets from 'components/system-maintenance/code-set/code-sets';
+import ChplConformanceMethods from 'components/system-maintenance/conformance-method/conformance-methods';
+import ChplCqms from 'components/system-maintenance/cqm/cqms';
import ChplFunctionalitiesTested from 'components/system-maintenance/functionality-tested/functionalities-tested';
+import ChplG1g2 from 'components/system-maintenance/g1g2/g1g2';
import ChplManageSubscriptions from 'pages/subscriptions/manage-subscriptions';
import ChplQmsStandards from 'components/system-maintenance/qms-standard/qms-standards';
import ChplStandards from 'components/system-maintenance/standard/standards';
import ChplSvaps from 'components/system-maintenance/svap/svaps';
import ChplSystemJobs from 'components/jobs/system-jobs';
+import ChplTestData from 'components/system-maintenance/test-data/test-data';
import ChplTestTools from 'components/system-maintenance/test-tool/test-tools';
import ChplUcdProcesses from 'components/system-maintenance/ucd-process/ucd-processes';
import { eventTrack } from 'services/analytics.service';
@@ -124,16 +134,36 @@ const maintenanceItems = [{
primary: 'Certification Criteria',
secondary: 'Table of the Certification Criteria values',
icon: ,
+}, {
+ id: 'codeSets',
+ primary: 'Code Sets',
+ secondary: 'Table of Code Sets',
+ icon: ,
+}, {
+ id: 'conformanceMethods',
+ primary: 'Conformance Methods',
+ secondary: 'Table of Conformance Methods',
+ icon: ,
+}, {
+ id: 'cqms',
+ primary: 'CQMs',
+ secondary: 'Table of the CQM values',
+ icon: ,
}, {
id: 'functionalitiesTested',
primary: 'Functionalities Tested',
secondary: 'Table of the Functionality Tested values used during testing of certification criterion functionality',
icon: ,
+}, {
+ id: 'g1g2',
+ primary: 'G1/G2 Measures',
+ secondary: 'Table of G1/G2 Measures',
+ icon: ,
}, {
id: 'qmsStandards',
primary: 'QMS Standards',
secondary: 'Add and update the QMS Standards available to be applied to listings',
- icon: ,
+ icon: ,
}, {
id: 'standards',
primary: 'Standards',
@@ -156,6 +186,11 @@ const maintenanceItems = [{
secondary: 'View and schedule system-related jobs',
roles: ['chpl-admin'],
icon: ,
+}, {
+ id: 'testData',
+ primary: 'Test Data',
+ secondary: 'Table of Test Data',
+ icon: ,
}, {
id: 'testTools',
primary: 'Test Tools',
@@ -228,10 +263,14 @@ function ChplSystemMaintenance() {
hide('announcements.edit.disabled');
hide('apiKeys.viewall.disabled');
hide('certificationCriteria.viewall.disabled');
+ hide('codeSets.viewall.disabled');
+ hide('conformanceMethods.viewall.disabled');
+ hide('cqms.viewall.disabled');
hide('functionalitiesTested.viewall.disabled');
hide('functionalitiesTested.viewall');
hide('functionalitiesTested.add.disabled');
hide('functionalitiesTested.edit.disabled');
+ hide('g1g2.viewall.disabled');
hide('manageSubscriptions.viewall.disabled');
hide('qmsStandards.viewall.disabled');
hide('qmsStandards.viewall');
@@ -241,6 +280,7 @@ function ChplSystemMaintenance() {
hide('standards.viewall');
hide('standards.add.disabled');
hide('standards.edit.disabled');
+ hide('testData.viewall.disabled');
hide('testTools.viewall.disabled');
hide('testTools.viewall');
hide('testTools.add.disabled');
@@ -315,12 +355,17 @@ function ChplSystemMaintenance() {
{ active === 'announcements' && }
{ active === 'apiKeys' && }
{ active === 'certificationCriteria' && }
- { active === 'qmsStandards' && }
+ { active === 'codeSets' && }
+ { active === 'conformanceMethods' && }
+ { active === 'cqms' && }
{ active === 'functionalitiesTested' && }
- { active === 'subscriptions' && }
+ { active === 'g1g2' && }
+ { active === 'qmsStandards' && }
{ active === 'standards' && }
+ { active === 'subscriptions' && }
{ active === 'svaps' && }
{ active === 'systemJobs' && }
+ { active === 'testData' && }
{ active === 'testTools' && }
{ active === 'ucdProcesses' && }