Skip to content

Commit

Permalink
Fix: #315 Usage purpose resets from previously opened record values f…
Browse files Browse the repository at this point in the history
…or view Data agreement in Consent records.
  • Loading branch information
MARZOOQUE authored and georgepadayatti committed Sep 17, 2024
1 parent 2061394 commit 071d446
Show file tree
Hide file tree
Showing 2 changed files with 70 additions and 65 deletions.
102 changes: 49 additions & 53 deletions src/components/modals/dataAgreementModal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,6 @@ interface Props {
successCallback?: any;
resourceName?: string;
selectededDataAgreementFromDataAgreement?: any;
dataAgrreementRevisionIdForSelectedRecord?: string | undefined;
setSelectedDropdownValue?: any;
}

Expand Down Expand Up @@ -74,7 +73,6 @@ export default function DataAgreementModal(props: Props) {
successCallback,
resourceName,
selectededDataAgreementFromDataAgreement,
dataAgrreementRevisionIdForSelectedRecord,
setSelectedDropdownValue,
} = props;
const { t } = useTranslation("translation");
Expand All @@ -86,9 +84,11 @@ export default function DataAgreementModal(props: Props) {
const [openSnackBar, setOpenSnackBar] = useState(false);
const [error, setError] = useState("");
useEffect(() => {
HttpService.listAllPolicies().then((response) => {
setPolicyDetailsForInitialValue(response[0]);
});
if(open){
HttpService.listAllPolicies().then((response) => {
setPolicyDetailsForInitialValue(response[0]);
});
}
}, [open]);

const methods = useForm({
Expand Down Expand Up @@ -241,60 +241,54 @@ export default function DataAgreementModal(props: Props) {
});
}
}

if (
selectededDataAgreementFromDataAgreement &&
resourceName === "userrecords" &&
mode === "Read"
) {
let dataAgreements = selectededDataAgreementFromDataAgreement;
let dataAttributes =
selectededDataAgreementFromDataAgreement.dataAttributes;
setSelectedDataAgreement(dataAgreements);

setDataAgreementIdForUserRecordes(dataAgreements.id);

methods.reset({
Name: dataAgreements.purpose,
Description: dataAgreements.purposeDescription,
Version: dataAgreements.version,
AttributeType: dataAgreements.methodOfUse,
LawfulBasisOfProcessing: dataAgreements.lawfulBasis,
PolicyURL: dataAgreements.policy.url,
Jurisdiction: dataAgreements.policy.jurisdiction,
IndustryScope: dataAgreements.policy.industrySector,
StorageLocation: dataAgreements.policy.storageLocation,
dataRetentionPeriodDays: Math.floor(
dataAgreements.policy.dataRetentionPeriodDays / 365
),
Restriction: dataAgreements.policy.geographicRestriction,
Shared3PP: dataAgreements.policy.thirdPartyDataSharing,
DpiaDate: dataAgreements.dpiaDate,
DpiaSummaryURL: dataAgreements.dpiaSummaryUrl,
dataAttributes: dataAttributes.map((attribute: any) => {
const { name, description, ...otherProps } = attribute;
return {
attributeName: name,
attributeDescription: description,
...otherProps,
};
}),
});
}
}, [
selectededDataAgreementFromDataAgreement,
open,
mode,
policyDetailsForInitialValue,
]);

// This is useEffect is called when resource is user records
useEffect(() => {
if (
dataAgrreementRevisionIdForSelectedRecord &&
resourceName === "userrecords"
) {
HttpService.listDataAgreements(
0,
10,
"",
dataAgrreementRevisionIdForSelectedRecord,
""
).then((response) => {
let dataAgreements = response.dataAgreements[0];
let dataAttributes = response.dataAgreements[0].dataAttributes;

setDataAgreementIdForUserRecordes(dataAgreements.id);
setSelectedDataAgreement(dataAgreements);
methods.reset({
Name: dataAgreements.purpose,
Description: dataAgreements.purposeDescription,
Version: dataAgreements.version,
AttributeType: dataAgreements.methodOfUse,
LawfulBasisOfProcessing: dataAgreements.lawfulBasis,
PolicyURL: dataAgreements.policy.url,
Jurisdiction: dataAgreements.policy.jurisdiction,
IndustryScope: dataAgreements.policy.industrySector,
StorageLocation: dataAgreements.policy.storageLocation,
dataRetentionPeriodDays: Math.floor(
dataAgreements.policy.dataRetentionPeriodDays / 365
),
Restriction: dataAgreements.policy.geographicRestriction,
Shared3PP: dataAgreements.policy.thirdPartyDataSharing,
DpiaDate: dataAgreements.dpiaDate,
DpiaSummaryURL: dataAgreements.dpiaSummaryUrl,
dataAttributes: dataAttributes.map((attribute: any) => {
const { name, description, ...otherProps } = attribute;
return {
attributeName: name,
attributeDescription: description,
...otherProps,
};
}),
});
});
}
}, [dataAgrreementRevisionIdForSelectedRecord, open]);


const [openExistingSchemaModal, setOpenExistingSchemaModal] = useState(false);

Expand Down Expand Up @@ -426,7 +420,9 @@ export default function DataAgreementModal(props: Props) {
<Typography color="#F3F3F6">
{mode === "Create" && t("dataAgreements.addDA")}
{mode === "Update" &&
`${t("dataAgreements.editDA")}: ${selectedDataAgreement?.purpose}`}
`${t("dataAgreements.editDA")}: ${
selectedDataAgreement?.purpose
}`}
{mode === "Read" &&
`${t("dataAgreements.viewDA")}: ${
selectedDataAgreement?.selectedRevision?.purpose ||
Expand Down
33 changes: 21 additions & 12 deletions src/pages/userRecords/userRecords.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import { useLocation } from "react-router-dom";
import { useTranslation } from "react-i18next";
import { TableEmptyMessage } from "../../components/tableEmptyMessage";
import useLanguageChange from "../../utils/translateTableLanguage";
import { HttpService } from "../../service/HTTPService";

const Container = styled("div")(({ theme }) => ({
margin: "58px 15px 0px 15px",
Expand Down Expand Up @@ -85,9 +86,9 @@ const UserRecords = () => {
];

const [
dataAgrreementRevisionIdForSelectedRecord,
setDataAgrreementRevisionIdForSelectedRecord,
] = useState<string | undefined>();
selectededDataAgreementFromDataAgreement,
setSelectededDataAgreementFromDataAgreement,
] = useState<any>();

const updateDisabledPurposeDropDown = (disabledPurposeDropDown: any) => {
useFilterStore
Expand Down Expand Up @@ -158,16 +159,24 @@ const UserRecords = () => {
}}
>
<Tooltip title={t("dataAgreements.viewDA")} placement="top">
<RemoveRedEyeOutlinedIcon
<RemoveRedEyeOutlinedIcon
onClick={() => {
setOpenDataAgreementModal(true);
setDataAgrreementRevisionIdForSelectedRecord(
record.dataAgreementRevisionId
);
HttpService.listDataAgreements(
0,
10,
"",
record.dataAgreementRevisionId,
""
).then((response) => {
let dataAgreements = response.dataAgreements[0];

setSelectededDataAgreementFromDataAgreement(dataAgreements);
setOpenDataAgreementModal(true);
});
}}
fontSize="small"
color="disabled"
style={{ cursor: "pointer" }}

style={{ cursor: "pointer", color:"#4D4D4F" }}
/>
</Tooltip>
</Box>
Expand Down Expand Up @@ -362,8 +371,8 @@ const UserRecords = () => {
setOpen={setOpenDataAgreementModal}
mode={"Read"}
resourceName="userrecords"
dataAgrreementRevisionIdForSelectedRecord={
dataAgrreementRevisionIdForSelectedRecord
selectededDataAgreementFromDataAgreement={
selectededDataAgreementFromDataAgreement
}
/>
</Container>
Expand Down

0 comments on commit 071d446

Please sign in to comment.