Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Resolve Errors & Warnings] Download Validation Report #447

Merged
merged 129 commits into from
May 7, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
129 commits
Select commit Hold shift + click to select a range
8688b34
fix: [axiosService] Add missing POST parameter
meissadia Apr 2, 2024
6822d26
[Filing Routing] Phase 1 - Mock Filing progress
meissadia Apr 5, 2024
9849158
[Filing Routing] Phase 1 - Separate routes per step
meissadia Apr 5, 2024
fea91e3
fix: axiosService.request - remove unneeded `data` param in favor of …
meissadia Apr 9, 2024
46971d5
fix: useMemo to avoid duplicate placeholder objects being generated
meissadia Apr 9, 2024
2c2de5f
fix: FilingStepWrapper.helpers - remove unused eslint rule disables
meissadia Apr 9, 2024
bc14e84
[Filing Routing] Phase 1 - Mock Filing progress
meissadia Apr 5, 2024
2cbd121
[Filing Routing] Phase 1 - Separate routes per step
meissadia Apr 5, 2024
e7d28d1
fix: useMemo to avoid duplicate placeholder objects being generated
meissadia Apr 9, 2024
9c52113
fix: FilingStepWrapper.helpers - remove unused eslint rule disables
meissadia Apr 9, 2024
d912fc7
Update imports after rebase
meissadia Apr 9, 2024
9257eb7
Update imports after rebase part 2
meissadia Apr 9, 2024
c60e6e6
Add "tasks" to our mock filing
meissadia Apr 9, 2024
2867e7b
Sync axiosService file
meissadia Apr 9, 2024
cd9a385
Filing step - Display "current" highlight even if step is incomplete
meissadia Apr 9, 2024
b937bc4
Filing - Placeholder for "is step complete?" status
meissadia Apr 9, 2024
5b6c4f3
Filing step - Improve spacing between step indicators
meissadia Apr 10, 2024
c0be487
Filing steps - Remove custom hook that contained routes, which helps …
meissadia Apr 10, 2024
f66f7b3
Merge branch 'main' into 331-filing-routing_phase1-mock-data
meissadia Apr 10, 2024
0c0d989
Filing steps - Revamp flex alignment of page elements
meissadia Apr 10, 2024
cd69c7b
[ScreenReaderOnly] Component: Extract from Filing step indicator code…
meissadia Apr 10, 2024
e64c41c
Filing steps - More dynamic routes (year and lei from the url)
meissadia Apr 10, 2024
a0dcab9
Filing steps - Add TODO to check on StepIndicator widths
meissadia Apr 10, 2024
74506f3
Merge branch 'main' into 331-filing-routing_phase1-mock-data
meissadia Apr 11, 2024
f8f1bdc
fix: [axiosService] Always include "body" for post/put/patch requests
meissadia Apr 18, 2024
502c82c
feat: [API]
meissadia Apr 18, 2024
152ceb6
feat: [FilingOverview] Determine and link to next incomplete step
meissadia Apr 19, 2024
4ebc759
feat: [Filing] Display current Institution's progress within the subm…
meissadia Apr 19, 2024
a0fa68b
feat: [Filing] Placeholder pages for Filing steps
meissadia Apr 19, 2024
77c7ea0
fix: [Institution card] Routing logic for a Submissio n with a previo…
meissadia Apr 19, 2024
e2ca8d2
feat: [FileSubmission] Integrate Filing step indicator and navigation…
meissadia Apr 19, 2024
3b1f9a7
Merge branch 'main' into 331-filing-routing_phase2-live-data
meissadia Apr 22, 2024
45c787c
feat: [Filing Steps] Split out the FilingSteps and FilingNavButtons i…
meissadia Apr 25, 2024
d6a0aa8
fix: [Filing Steps] Adjust font color/weight based on step status
meissadia Apr 25, 2024
26799d8
Merge branch 'main' into 331-filing-routing_phase2-live-data
meissadia Apr 25, 2024
fe318e5
start wip
shindigira Apr 26, 2024
19fbbaf
added Alert
shindigira Apr 26, 2024
beb8475
single errors count
shindigira Apr 26, 2024
2d34bcf
added TODOs
shindigira Apr 26, 2024
1625732
resolved merge conflicts -- after upload adjustments PR
shindigira Apr 26, 2024
be097dd
Merge main
meissadia Apr 26, 2024
dc1e91f
task: More compact error/loading checks
meissadia Apr 26, 2024
9baf597
fix(Upload - Infinite Loading): adjusted the useGetLatestSubmission s…
shindigira Apr 26, 2024
c355edf
resolved merge conflict
shindigira Apr 26, 2024
a7caaf4
alternative solution to react-query settings changes on useGetSubmiss…
shindigira Apr 27, 2024
3b0e54f
removed unnecessary variable
shindigira Apr 27, 2024
91970e5
Merge branch '331-filing-routing_phase2-live-data' of github.com:cfpb…
shindigira Apr 27, 2024
1d1bf6e
removed unusued
shindigira Apr 27, 2024
1964c52
Merge branch '331-filing-routing_phase2-live-data' of github.com:cfpb…
shindigira Apr 27, 2024
d70c852
best solution for initial check
shindigira Apr 27, 2024
34c6444
Merge branch '331-filing-routing_phase2-live-data' of github.com:cfpb…
shindigira Apr 27, 2024
33cf044
chore(errors_warnings): Created helper functions to sort between erro…
shindigira Apr 27, 2024
513e2d2
chore(errors_warnings): Updated errors and warnings helper functions
shindigira Apr 27, 2024
a546911
chore(errors_warnings): Added Alert links
shindigira Apr 27, 2024
f8b9e32
fix phantom space
shindigira Apr 27, 2024
f6450bc
remove refetches on window focus by default
shindigira Apr 27, 2024
47b360a
disabled refetch on window focus
shindigira Apr 27, 2024
997da1b
resolve comment conflict
shindigira Apr 27, 2024
e372b60
style(FilingNavButtons): 18px between buttons (according to figma), m…
shindigira Apr 29, 2024
527bbf1
task: [useFilingAndSubmissionInfo] Simplify fetching logic
meissadia Apr 29, 2024
211a45f
fix: [FileSubmission] New Filers get stuck in "Loading" state on init…
meissadia Apr 29, 2024
95f6108
task: [useFilingAndSubmissionInfo] Set staletime to 0
meissadia Apr 29, 2024
8438199
task: [useFilingAndSubmissionInfo] Utilize useGetSubmissionLatest hook
meissadia Apr 29, 2024
614ca43
task: [fetchSubmissionLatest] Delete
meissadia Apr 29, 2024
4612751
Merge branch 'main' into 331-filing-routing_phase2-live-data
meissadia Apr 29, 2024
17b71eb
task: Utilize some of the Design System colors that have been integra…
meissadia Apr 29, 2024
d661744
fix: [useFilingAndSubmissionInfo] Ensure Filing is created before fet…
meissadia Apr 29, 2024
b856cda
added a check for register errors
shindigira Apr 29, 2024
963a7ca
task: Use fetchFilingSubmissionLatest
meissadia Apr 29, 2024
53a1793
fixed one typescript item
shindigira Apr 29, 2024
158b8e1
Merge branch '331-filing-routing_phase2-live-data' of github.com:cfpb…
shindigira Apr 30, 2024
1d3a68d
chore(single-field-error): subfolder start
shindigira Apr 30, 2024
7a4bc32
enhancement(single-field-errors): Started table implementation
shindigira Apr 30, 2024
74a921e
enhancement(single-field-errors): Table - rows
shindigira Apr 30, 2024
273834e
resolved merge conflict
shindigira Apr 30, 2024
fa28321
Removed unused file
shindigira Apr 30, 2024
0a47c45
chore(single-field-errors): set tables to be horizontal scrollable
shindigira Apr 30, 2024
7603d16
chore(resolve-errors-warnings): updated function to separate singles/…
shindigira May 1, 2024
4c51b9f
formatting start
shindigira May 1, 2024
be6704d
feat(errors): multifield start
shindigira May 1, 2024
8486616
chore(errors): Updated Step2 with MultiErrors
shindigira May 1, 2024
0a82a76
feat(errors): Alerts properly toggle depending on errors
shindigira May 1, 2024
c050a3a
feat(errors): Multifield errors rendering
shindigira May 1, 2024
0d79dcd
refactor(errors): Used a common component between single and multi
shindigira May 1, 2024
63007c3
feat(errors): Added Register level errors
shindigira May 1, 2024
cd8738a
refactor(errors): swapped out hook for useGetSubmissionLatest
shindigira May 1, 2024
dbbf77a
Merge branch 'main' of github.com:cfpb/sbl-frontend into 333-resolve-…
shindigira May 1, 2024
18d3262
chore(Resolve Errors): added commented out td shrink for demo
shindigira May 2, 2024
17f2f68
refactor(get submission latest): refactored the hook and axios reques…
shindigira May 2, 2024
3aae0fc
feat(Resolve Errors): Buttons that toggle between state or transition…
shindigira May 2, 2024
574b2e9
style(Resolve Errors): 18px between buttons
shindigira May 2, 2024
51f695b
feat(Upload): added an enableLongPolling boolean to useGetSubmissionL…
shindigira May 2, 2024
4bf9507
enhancement(Resolve Errors): Implemented 'react-markdown' in Resolve …
shindigira May 2, 2024
05d64b1
fix(Resolve Errors): updated Link with the proper component
shindigira May 2, 2024
67be125
ts error
shindigira May 2, 2024
bbef90c
update(Resolve Errors): due to sbl-filing data schema change -- valid…
shindigira May 2, 2024
7d98720
typescript update
shindigira May 2, 2024
ef61955
more TS handling
shindigira May 2, 2024
d380708
enhancement(Upload): Hide FilingNavButtons if still loading
shindigira May 2, 2024
acb452f
feat(Resolve Errors): if a get submission latest fails, there is an a…
shindigira May 2, 2024
2b16c0d
pathing updates
shindigira May 2, 2024
cfe5e33
warnings skeleton complete
shindigira May 2, 2024
50d0061
refactor(Errors/Warnings): Made FieldErrorsSummary more flexible
shindigira May 3, 2024
f7338b1
renamed components handling both errors and warnings to be more appro…
shindigira May 3, 2024
f8f44d5
TypeScript handling -- FieldEntry
shindigira May 3, 2024
3958fcc
feat(Download Validation Report): Implemented in Errors and Warnings
shindigira May 3, 2024
a42745f
chore: abstracted away the filing links into a component
shindigira May 3, 2024
bdfb733
Merge branch 'main' of github.com:cfpb/sbl-frontend into 444-download…
shindigira May 3, 2024
b49a472
Merge branch 'main' of github.com:cfpb/sbl-frontend into 333-resolve-…
shindigira May 3, 2024
ead5fad
Merge branch '333-resolve-errors-warnings-skeleton-phase1' of github.…
shindigira May 3, 2024
7f7a324
column ref
shindigira May 6, 2024
74a5f0f
resolve merge conflicts
shindigira May 6, 2024
759c2f6
added error incorrect file type based on status 415
shindigira May 6, 2024
e78eabd
removed unused check due to backend data schema change
shindigira May 6, 2024
bb8675a
pulled in errors and warnings; resolved merge conflicts
shindigira May 6, 2024
142e82a
Merge branch 'main' of github.com:cfpb/sbl-frontend into 333-resolve-…
shindigira May 6, 2024
0254a14
Merge branch 'design-review-upload' of github.com:cfpb/sbl-frontend i…
shindigira May 6, 2024
3e3e31d
Merge branch 'main' of github.com:cfpb/sbl-frontend into 333-resolve-…
shindigira May 6, 2024
6335396
step2 message fixed
shindigira May 6, 2024
6d0c77d
Merge branch '333-resolve-errors-warnings-skeleton-phase1' of github.…
shindigira May 6, 2024
3e20323
fixed isstep2 subheading on errors
shindigira May 6, 2024
4c68e16
Merge branch '333-resolve-errors-warnings-skeleton-phase1' of github.…
shindigira May 6, 2024
931fd71
final isstep2 fix
shindigira May 6, 2024
d9c9453
Merge branch '333-resolve-errors-warnings-skeleton-phase1' of github.…
shindigira May 6, 2024
9be2923
important: disable cache on validation reportsgit add src/api/request…
shindigira May 6, 2024
9f5727f
submission id added to filename
shindigira May 6, 2024
598fa3c
resolved merge conflicts with main
shindigira May 7, 2024
a515854
Merge branch 'main' into 444-download-validation-report
shindigira May 7, 2024
ecd4e4d
Merge branch 'main' into 444-download-validation-report
shindigira May 7, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 51 additions & 0 deletions src/api/requests/downloadValidationReport.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
import type { SblAuthProperties } from 'api/useSblAuth';
import axios from 'axios';
import type { FilingPeriodType } from 'types/filingTypes';

export interface DownloadValidationReportProperties {
auth: SblAuthProperties;
lei: string;
submissionId: number;
filingPeriod: FilingPeriodType;
}

export const downloadValidationReport = async ({
auth,
lei,
filingPeriod,
submissionId,
}: DownloadValidationReportProperties): Promise<void> => {
try {
await axios({
headers: {
Authorization: `Bearer ${auth.user?.access_token}`,
'Cache-Control': 'no-cache',
Pragma: 'no-cache',
Expires: '0',
},
url: `/v1/filing/institutions/${lei}/filings/${filingPeriod}/submissions/${submissionId}/report`,
method: 'GET',
responseType: 'blob',
}).then(response => {
const url = window.URL.createObjectURL(
new Blob([response.data], { type: 'text/csv;charset=utf-8' }),
);
const link = document.createElement('a');
link.href = url;
link.setAttribute(
'download',
`${lei}-${filingPeriod}-submission-${submissionId}-validation_report.csv`,
);
document.body.append(link);
link.click();

// clean up "a" element & remove ObjectURL
link.remove();
URL.revokeObjectURL(url);
});
} catch (error) {
console.log(error);
shindigira marked this conversation as resolved.
Show resolved Hide resolved
}
};

export default downloadValidationReport;
23 changes: 11 additions & 12 deletions src/pages/Filing/FilingApp/FilingErrors/index.tsx
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
import FormButtonGroup from 'components/FormButtonGroup';
import FormHeaderWrapper from 'components/FormHeaderWrapper';
import FormWrapper from 'components/FormWrapper';
import { ListLink } from 'components/Link';
import { LoadingContent } from 'components/Loading';
import { Button, List, TextIntroduction } from 'design-system-react';
import { Button, TextIntroduction } from 'design-system-react';
import FieldSummary from 'pages/Filing/FilingApp/FieldSummary';
import { getErrorsWarningsSummary } from 'pages/Filing/FilingApp/FilingErrors/FilingErrors.helpers';
import FilingErrorsAlerts from 'pages/Filing/FilingApp/FilingErrors/FilingErrorsAlerts';
Expand All @@ -13,6 +12,7 @@ import { useMemo, useState } from 'react';
import { useNavigate, useParams } from 'react-router-dom';
import useGetSubmissionLatest from 'utils/useGetSubmissionLatest';
import useInstitutionDetails from 'utils/useInstitutionDetails';
import FilingFieldLinks from '../FilingFieldLinks';

function FilingErrors(): JSX.Element {
const { lei, year } = useParams();
Expand Down Expand Up @@ -130,16 +130,15 @@ function FilingErrors(): JSX.Element {
the validation to fail. Once you’ve identified the underlying
problems, make the corrections to your register, and upload a
new file.
{!errorGetSubmissionLatest && (
<div id='resolve-errors-listlinks' className='mt-[1.875rem]'>
<List isLinks>
<ListLink href='#'>Download validation report</ListLink>
<ListLink href={`/filing/${year}/${lei}/upload`}>
Upload a new file
</ListLink>
</List>
</div>
)}
{!errorGetSubmissionLatest &&
actualDataGetSubmissionLatest?.id ? (
<FilingFieldLinks
id='resolve-errors-listlinks'
lei={lei}
filingPeriod={year}
submissionId={actualDataGetSubmissionLatest.id}
/>
) : null}
</>
}
/>
Expand Down
45 changes: 45 additions & 0 deletions src/pages/Filing/FilingApp/FilingFieldLinks.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
import downloadValidationReport from 'api/requests/downloadValidationReport';
import useSblAuth from 'api/useSblAuth';
import { ListLink } from 'components/Link';
import { Button, List } from 'design-system-react';
import type { FilingPeriodType } from 'types/filingTypes';

interface FilingFieldLinksProperties {
id: string;
lei: string;
submissionId: number;
filingPeriod: FilingPeriodType;
}

function FilingFieldLinks({
lei,
filingPeriod,
id,
submissionId,
className,
...others
}: FilingFieldLinksProperties & JSX.IntrinsicElements['div']): JSX.Element {
const auth = useSblAuth();

const onHandleDownloadClick = async (): Promise<void> => {
await downloadValidationReport({ auth, lei, filingPeriod, submissionId });
};
return (
<div id={id} className={`mt-[1.875rem] ${className}`} {...others}>
<List isLinks>
<Button
asLink
className='m-list_link mb-2'
label='Download validation report'
// eslint-disable-next-line @typescript-eslint/no-misused-promises
onClick={onHandleDownloadClick}
/>
<ListLink href={`/filing/${filingPeriod}/${lei}/upload`}>
Upload a new file
</ListLink>
</List>
</div>
);
}

export default FilingFieldLinks;
26 changes: 11 additions & 15 deletions src/pages/Filing/FilingApp/FilingWarnings/index.tsx
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
import FormButtonGroup from 'components/FormButtonGroup';
import FormHeaderWrapper from 'components/FormHeaderWrapper';
import FormWrapper from 'components/FormWrapper';
import { ListLink } from 'components/Link';
import { LoadingContent } from 'components/Loading';
import { Button, List, TextIntroduction } from 'design-system-react';
import { Button, TextIntroduction } from 'design-system-react';
import FieldSummary from 'pages/Filing/FilingApp/FieldSummary';
import { getErrorsWarningsSummary } from 'pages/Filing/FilingApp/FilingErrors/FilingErrors.helpers';
import { FilingSteps } from 'pages/Filing/FilingApp/FilingSteps';
Expand All @@ -12,6 +11,7 @@ import { useMemo } from 'react';
import { useNavigate, useParams } from 'react-router-dom';
import useGetSubmissionLatest from 'utils/useGetSubmissionLatest';
import useInstitutionDetails from 'utils/useInstitutionDetails';
import FilingFieldLinks from '../FilingFieldLinks';
import FilingWarningsAlerts from './FilingWarningsAlerts';

function FilingWarnings(): JSX.Element {
Expand Down Expand Up @@ -91,19 +91,15 @@ function FilingWarnings(): JSX.Element {
validation report to determine if the values flagged with
warning validations require action. If there are underlying
problems, make the corrections, and upload a new file.
{!errorGetSubmissionLatest && (
<div
id='resolve-warnings-listlinks'
className='mt-[1.875rem]'
>
<List isLinks>
<ListLink href='#'>Download validation report</ListLink>
<ListLink href={`/filing/${year}/${lei}/upload`}>
Upload a new file
</ListLink>
</List>
</div>
)}
{!errorGetSubmissionLatest &&
actualDataGetSubmissionLatest?.id ? (
<FilingFieldLinks
id='resolve-errors-listlinks'
lei={lei}
filingPeriod={year}
submissionId={actualDataGetSubmissionLatest.id}
/>
) : null}
</>
}
/>
Expand Down
Loading