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

Ws and olarft #1737

Draft
wants to merge 71 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
328c297
[Cypress] 2022 - Resolve V716 and V619-2 in Annual file
meissadia Feb 15, 2022
3370e70
Update README.md typo
wpears Feb 16, 2022
34ac859
Online LARFT - v0.1.0
meissadia Feb 10, 2022
2e3dfb9
[olarft] Add Copy/Paste buttons
meissadia Feb 11, 2022
addfa39
[olarft] Performance optimization
meissadia Feb 11, 2022
774a293
[olarft] Confirmation dialog for destructive actions (delete, delete …
meissadia Feb 11, 2022
8d536ba
[olarft] Clicking section headings scrolls to section
meissadia Feb 11, 2022
4c37485
[olarft] Fix TS Calendar Year selector
meissadia Feb 11, 2022
f2a7eef
[olarft] Date selectors
meissadia Feb 14, 2022
57e7c11
[olarft] Add LAR search; Reorg saved/editing sections; Restyle return…
meissadia Feb 14, 2022
701dc2d
[olarft] UI Cleanup
meissadia Feb 15, 2022
c824e4e
[olarft] Create Accordion component
meissadia Feb 16, 2022
ade357e
[olarft] [Parsed] Display enumerations, examples, and descriptions
meissadia Feb 16, 2022
7bde9d5
[olarft][Parsed] Add button to collapse open accordions
meissadia Feb 16, 2022
659c0bf
[larft] Replace old LARFT with new LARFT
meissadia Feb 16, 2022
d7b8ff1
[larft] Scroll to sections on header click
meissadia Feb 16, 2022
678899f
[larft] Parsed Values tables full width
meissadia Feb 16, 2022
15b5c9f
[larft] Highlight column selected in Parsed
meissadia Feb 16, 2022
cdb249e
[larft][Parsed] Refactored
meissadia Feb 17, 2022
dadcf69
[larft] Editing, Piped refactors
meissadia Feb 17, 2022
184088f
[larft] Fix unique keys
meissadia Feb 17, 2022
7579eb7
[larft] Use `log` utility; Cleanup
meissadia Feb 18, 2022
647896b
[larft] Refactor raw schemas and schema generation
meissadia Feb 18, 2022
2599551
[larft] Cleanup
meissadia Feb 18, 2022
29f2452
[larft] Fix broken uploads due to schemas missing record identifier f…
meissadia Feb 18, 2022
5b941ac
[larft] Refactor file interactions (new, save, delete, ...) into a Hook
meissadia Feb 18, 2022
02b4fd8
[larft] Rename folder
meissadia Feb 18, 2022
143e160
[larft] Full-text search and Field name search for Saved section
meissadia Feb 18, 2022
8ae9636
[larft] Improved UI for search boxes
meissadia Feb 18, 2022
72d6075
[larft] Clicking Saved table headers highlights column in Parsed
meissadia Feb 18, 2022
543ab1e
[larft] Search - Only show columns that match search
meissadia Feb 19, 2022
1c1df54
[larft] Easier to close accordions (click anywhere inside)
meissadia Feb 22, 2022
a64351e
[larft] Highlight and focus field/column on click - easier direct edi…
meissadia Feb 22, 2022
5d9068c
[larft] Color improvements
meissadia Feb 22, 2022
635e24a
[larft][schemas] Fix: hyphenated enumerations getting truncated
meissadia Feb 22, 2022
37828cd
[larft] Fix odd search results; Reduce auto-scrolling via better sizing;
meissadia Feb 22, 2022
aa4fce0
[larft] Prompt users about losing unsaved changes when navigating awa…
meissadia Feb 22, 2022
75d6baf
[larft] Add enumerated State selectors for TS/LAR
meissadia Feb 22, 2022
b173bc7
[larft] Support fields with free-text and enumerations
meissadia Feb 22, 2022
dad471b
[larft] More succinct examples/enumerations when value === description
meissadia Feb 22, 2022
8d226f7
[larft] Fix various console errors
meissadia Feb 22, 2022
8e26e13
[larft] Update notes
meissadia Feb 23, 2022
74e2ba3
[larft] Fix mismatch between header-column and row-column widths
meissadia Feb 23, 2022
edfbd00
[larft] Remove documentation link until we have documentation
meissadia Feb 24, 2022
98d1877
[larft] Display malformed rows of uploaded file
meissadia Feb 24, 2022
d8e7bd5
[larft] Only allow save/update when changes have been made
meissadia Feb 25, 2022
b793e5a
[larft] Only enable Download File buttons when saved records exist
meissadia Feb 25, 2022
881dcc2
[larft] Documentation v1
meissadia Feb 25, 2022
363700d
[larft] Documentation v2
meissadia Feb 25, 2022
51675b1
[larft] Documentation v3
meissadia Feb 25, 2022
858c1f4
[larft] Documentation v4
meissadia Feb 25, 2022
dfe4b31
[larft] Documentation v5
meissadia Feb 25, 2022
5083877
[larft] Documentation v6
meissadia Feb 25, 2022
209f789
[larft] Documentation v7
meissadia Feb 25, 2022
8f81df0
Allow websockets in nginx config
meissadia Aug 12, 2020
02f000c
Fetch websocket progress updates and store in redux
meissadia Aug 12, 2020
3732bd2
Add text based display of progress status
meissadia Aug 13, 2020
5fa6c40
Add progress bar display of processing status
meissadia Aug 14, 2020
32caae8
Create multistage progress bar
meissadia Aug 28, 2020
148ff3b
Integrate new ProgressBar and StackedProgressBars
meissadia Aug 28, 2020
7c7fc18
Redux - Enable trace in dev tools
meissadia Oct 20, 2021
0fd07e7
Direct users to UPLOAD if file is processing
meissadia Nov 19, 2021
e3fd833
Cleanup unused code
meissadia Nov 19, 2021
e4bdca5
[Fixtures] 2021 Submission file with zero edits
meissadia Mar 16, 2022
3c072f0
[EditsNav] Display appropriate label when no edits exists
meissadia Mar 17, 2022
d74e187
[Filing] Direct users to the next actionable step
meissadia Mar 17, 2022
c5aafba
[SubmissionNav] Display appropriate label when no edits exists
meissadia Mar 17, 2022
5ce5f4e
Remove TODO. Clean files process successfully without UI issue
meissadia Mar 28, 2022
373b249
[Filing] Support both Secure/Plain websockets based on the App protocol
meissadia Mar 28, 2022
57e4363
Merge branch '1339-olarft' into ws_and_olarft
meissadia Apr 1, 2022
fb5a33a
Merge branch '591-custom-single-bar' into ws_and_olarft
meissadia Apr 1, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 2 additions & 0 deletions cypress/fixtures/2021-FRONTENDTESTBANK9999-no-edits.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
1|FRONTENDTESTBANK9999|2021|4|Mr. Smug Pockets|555-555-5555|pockets@ficus.com|1234 Hocus Potato Way|Tatertown|UT|84096|9|1|53-1111111|FRONTENDTESTBANK9999
2|FRONTENDTESTBANK9999|FRONTENDTESTBANK9999JAJZMZSDXF8A57HP1HJZQOZ66|20200613|3|2|2|2|3|218910|1|20210213|1234 Hocus Potato Way|Tatertown|NM|14755|35003|35003976400|1||||||4||||||2|3|1||||||||8||||||||1|4|2|4|2|3|75|8888|100|0|NA|3|2|8888|8888|9||9||10|||||NA|NA|NA|NA|NA|NA|32|NA|NA|256|29|2|2|2|2|NA|2|2|4|NA|2|2|53535|3||||||1||||||2|2|2
5 changes: 5 additions & 0 deletions cypress/fixtures/larft-bad-rows.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
1|FRONTENDTESTBANK9999|2019|4|Mr. Smug Pockets|555-555-5555|pockets@ficus.com|1234 Hocus Potato Way|Tatertown|UT|84096|9|10|53-1111111|FRONTENDTESTBANK9999
3|FRONTENDTESTBANK9999|FRONTENDTESTBANK9999JAJZMZSDXF8A57HP1HJZQOZ66|20180613|3|2|2|2|3|218910|5|20190213|1234 Hocus Potato Way|Tatertown|NM|14755|35003|35003976400|1|13||11||KE0NW|1|||||NA2IJJ7VBBQ15DTFRNK1PVWOPOXL3NH1PHUMN7S2J4|2|2|7|||||E120FYAU7BTSC3P51IL87C97W3N9VT791BMJI57RLJQSHOFDTUD7PQSPGHQ69D7I2P8JBDCBUIGRLX2BUS7SJR|DOOOI8UXY9PZDSRVFKP91CUQG95E88Y22KDR1AI3|1K1JINAYSIHCWBGJW3KOHU5D5TSK1Z61SUT5M9WQVWOHX|27|24|41|43|2|MS1LKLX7XZRKL23TV01I49RADZGUN0QY5AG9H4BJCVFTA4ZQ1EJUS1376QJXD87ZZDN5EFZIUWB8SK5EU34RVGOVTE|Y083OZN1VFT6B2XGL397ABL0Z4EV4CD45I7ZJ7FRSXXL4BRMKVPR5UCVV0K6IDLP7WLCBZAQ5KXT69PNE9PWQKCPKJB|UV0FTHG00G8WM65I7591IJYP9TEMXMDCVGZYRJTBUBBKEZI65HGL9ML|3|2|2|2|1|1|75|4|NA|0|NA|3|2|8888|8888|9||9||10|||||NA|NA|NA|NA|NA|NA|32|NA|NA|256|29|1111|1111|1111|1111|NA|3|2|16|Exempt|2|2|NA|3|1|5|1||DOREBESQSW1QT58SD2OZTHQUGXLSKCAJYZ63NJE2MUIAFQL4KW6PU26YSU786GT0IMCWWKCN25Y7KU0VLU0PPKWR8G6DKWI9BANPIE9I2ZZ5XDUX0TBAY4XFRFQZF087WS9ESTAKIV5V9HSZ2VXW7J5JMGPP4CGYA51BK68T57NN4KTKJVXIQMFXBTN5E3LGKKX3LITQ4C7OPFJ|7|6|5|5|||1111|2|1111
2|FRONTENDTESTBANK9999|FRONTENDTESTBANK9999D7FLMYAQU3A27O2YMZM0M7O40|NA|2|2|2|2|3|333835|6|20190113|Exempt|Exempt|MD|Exempt|24005|24005411307|2|||||ZW7WDQK1904WRV8V703SW14U8RVTN3NTGJU74JT8IKZD6Q1SG0UFNQTCW8VZFT8BNCCXRPVFFDIHYCPTJABPPLVRJW|2|1||||3OFU|1|1|4||41|27|44|KKHW809PRP|0WYJKE6HXKA4XQGK3X4TP2|5V6APWVXJPN52LLJ3EFKV8A2DKRR50PDWA08BO3UVRSS584VHFUGCJ37YIVBCLE1WG|44|43|27|1|4|RO3KGE6NGR|XKB0K7HHU|Q54JC5Z9FMCY3LXW6ZTLL1OL75RI16W0KX59K1VFPE75KHYWCDJS7PZUDF|2|2|4|4|3|3|74|30|NA|6|NA|3|1|8888|8888|9||9||10|||||NA|NA|7273|4218|9266|21.21|NA|NA|NA|89|12|1111|1111|1111|1111|752565|3|5|29|15|3|3|NA|6||||||17||||||2|2|1111
3|FRONTENDTESTBANK9999|FRONTENDTESTBANK99992D86K2HB6JZVFPIHG72A9ML89|20180615|1|32|2|2|1|32153|2|20190223|Exempt|Exempt|TX|Exempt|48113|48113016302|2|13|14|12|11|58NEWEVSRFYEPX1G1TLP00DHRUI9TN3RIU35KN4V4K4Z7QLWSGYCUFBK5JVFOD09NHXVNULHRFSRDWAJ9ZJJUJ|14|1|12||13|6WPH8YHK0WLJOZLH9QX7EJ9N9OW6G86GF7L7Y|2|2|2|3|1|5|4|DL4VGN1RVXOV2K3Y2FYDSPLYTH0UXU2OLJN|G3XFURJGQYOAS8VJP1ZJ6MUJP2VWZ092JRS9H6SGOE0MTI8OQJ83E2A5VCWYTB69J60QDLV2AKLA1UVUN0OMF5I|2|8|||||KJERDZB84RC3X4IPJUPL54O7V4G9GOHVT0W0LVUFCGCA8X00DQWO4MWJ97XRIQW9HWIKM0FW2X5YQ8|W89CG5WDC20SE84FUN|V10VL5B39K1I1HJLVMAUW8XJE37Y5UOVLLPFNPSO1T4IDWURCTP4Q3ECBC1FV9G8A4GR16FQXRV9QHNX2QSDX3MMY0Z|1|4|3|2|2|2|75|16|NA|0|17.17|3|2|778|659|5||8|2O91IBQI8BQ015E1PJU1O41R5F6YJQC2UZD3C9MT0ZZV1ONHCQS60TU0AJEVAN6|10|||||NA|NA|NA|NA|NA|17.17|32|NA|60|164|9|1111|1111|1111|1111|711850|3|5|20|3|1111|1111|NA|1|1|4||||2|3|1||||2|1111|2
2|FRONTENDTESTBANK9999|FRONTENDTESTBANK9999Z84EL0SA9X4QD3Q5QMM0EEC78|20180322|4|4|2|2|2|176492|3|20190213|1234 Hocus Potato Way|Tatertown|MA|68714|25009|25009221700|1|||||D3HGC2SLFGNWBIRSN7U2DZID0NMGL0A0DPW09XKDW5YAZSW7A8RZVCQF3MF9X72MMK6JOLVNHC9EUD|1|2||||K0CC4OWK2FCUD564W44FV5K6H545IQMZHCCFPS6XM8UISLLZS1LH060I72JD3HSTXEERQ7SUH1K9SC8IT5EG1L2FN|1|1|7|||||H8D7D|GKXP92HNJZ|AKLRMH|6|||||V4|FD0C2LLMN8AGU2UKVQSWB6LLZ11L4U90M1R457UY9SHCRFSNOOZ97ZH91|CZ2Z5JSVGR815SE5HOGMMQ2RCBRE04NTJ68S7AP3HTXEVM1OUH2K579NKU98113DTAYBOZRTGC5TRCWGHWKZM46P6|3|3|2|1|1|2|102|37|NA|0|NA|3|2|8888|774|9||3||3|5|4|2||NA|NA|NA|NA|NA|NA|NA|NA|44|196|27|1111|1111|1111|1111|925106|3|5|22|20|1|3|NA|4|1||2|||8|1||11|||1111|2|1
2 changes: 1 addition & 1 deletion nginx/nginx.conf
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ http {
add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains; preload';

# CSP
add_header Content-Security-Policy "default-src 'self' blob:; script-src 'self' 'unsafe-inline' blob: data: https://tagmanager.google.com https://www.googletagmanager.com https://www.google-analytics.com https://*.cfpb.gov https://www.consumerfinance.gov; img-src 'self' blob: data: https://www.google-analytics.com https://raw.githubusercontent.com; style-src 'self' 'unsafe-inline'; font-src 'self' data:; object-src 'none'; frame-src 'self' https://www.youtube.com/ https://ffiec.cfpb.gov/; connect-src 'self' https://*.cfpb.gov https://www.consumerfinance.gov https://raw.githubusercontent.com https://ffiec-api.cfpb.gov https://ffiec.cfpb.gov https://*.mapbox.com https://www.google-analytics.com https://s3.amazonaws.com;";
add_header Content-Security-Policy "default-src 'self' blob:; script-src 'self' 'unsafe-inline' blob: data: https://tagmanager.google.com https://www.googletagmanager.com https://www.google-analytics.com https://*.cfpb.gov https://www.consumerfinance.gov; img-src 'self' blob: data: https://www.google-analytics.com https://raw.githubusercontent.com; style-src 'self' 'unsafe-inline'; font-src 'self' data:; object-src 'none'; frame-src 'self' https://www.youtube.com/ https://ffiec.cfpb.gov/; connect-src 'self' ws://*.cfpb.gov wss://*.cfpb.gov https://*.cfpb.gov https://www.consumerfinance.gov https://raw.githubusercontent.com https://ffiec-api.cfpb.gov https://ffiec.cfpb.gov https://*.mapbox.com https://www.google-analytics.com https://s3.amazonaws.com;";

# Restrict referrer
add_header Referrer-Policy "strict-origin";
Expand Down
Binary file not shown.
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@
"react-dev-utils": "11.0.4",
"react-dom": "17.0.2",
"react-dropzone": "10.2.2",
"react-fluid-table": "^0.4.2",
"react-helmet": "5.2.1",
"react-highlight-words": "0.17.0",
"react-redux": "7.2.4",
Expand Down
2 changes: 2 additions & 0 deletions src/App.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,8 @@ const App = () => {
<Route component={NotFound} />
</Switch>
{showFooter && <Footer config={config} />}
{console.log(window.location)
}
</AppContext.Provider>
)
}
Expand Down
145 changes: 145 additions & 0 deletions src/documentation/markdown/2021/lar-formatting-new.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
# HMDA LAR Formatting Tool - Instructions

## Table of Contents
* [Creating a LAR file from scratch](#creating-a-lar-file-from-scratch)
* [Editing an existing LAR file](#editing-an-existing-lar-file)
* [Interaction Guide](#interaction-guide)
+ [File Actions](#file-actions)
+ [Row Actions](#row-actions)
+ [Saved Records](#saved-records)
- [Please Review](#please-review)
- [Search text/Filter fields](#search-text-filter-fields)
+ [Editing a Record](#editing-a-record)
- [Editing status](#editing-status)
- [Parsed Values](#parsed-values)
- [Pipe-Delimited Values](#pipe-delimited-values)
* [Frequently Asked Questions](#frequently-asked-questions)
* [HMDA Help](#hmda-help)


## Creating a LAR file from scratch

- Creating a Transmittal Sheet (TS) row
- Click the [`Clear`](#row-actions) button to remove any previously entered data
- Ensure the `Record Identifier` is set to `2 - LAR`
- In the [`Editor status`](#editor-status) you will see `Creating Transmittal Sheet` if this is a new TS, `Updating Transmittal Sheet` if editing.
- The `Record Identifier` is already set for you
- Fill out your Insitution's information
- Click [`Save Row`](#row-actions)
- You will see your TS in the [`Saved Records`](#saved-records) sections
- There is only one TS per LAR file. Creating a new TS will overwrite any existing TS.
- Now you can begin creating `Loan/Application Register (LAR)` rows.
- Creating a Loan/Application Register (LAR) row
- Click the [`Clear`](#row-actions) button to remove any previously entered data.
- Ensure the `Record Identifier` is set to `2 - LAR`
- Use the [`Parsed Values`](#parsed-values) view for easier data input.
- Use the [`Pipe-Delimited Values`](#pipe-delimited-values) for quick row navigation and data scanning.
- Click [`Save Row`](#row-actions) to store this Loan/Application's data.
- Saved rows are listed in the [`Saved Records`](#saved-records) section.
- Editing data
- Selecting a record in [`Saved Records`](#saved-records) will populate that row's data in the [`Editing`](#editing-a-record) section of the app.
- [`Parsed Values`](#parsed-values) provides examples of field inputs, field and input descriptions, and easy selectors for enumerated fields.
- [`Pipe-Delimited Values`](#pipe-delimited-values) provides the row's raw text, as it will appear in your downloaded LAR file.
- Clicking in a field will highlight that value in the [`Parsed Values`](#parsed-values) section for quick editing.
- Use the [`Editing`](#editing-a-record) section to make your required modifications.
- Click the [`Update Row...`](#row-actions) button to persist your changes.
- Deleting a row
- Selecting a record in [`Saved Records`](#saved-records) will populate that row's data in the [`Editing`](#editing-a-record) section of the app.
- Click the [`Delete`](#row-actions) button to remove the selected row.
- Downloading the LAR file
- Use the [`Download File`](#file-actions) button to download a pipe-delimited, UTF-8 encoded, `.txt` file containing the TS and LAR data shown in the [`Saved Records`](#saved-records) section. Unsaved data entered in the [`Editing`](#editing-a-record) section is not included in the downloaded LAR file.
- The file is saved to your browser's default download directory as `LarFile.txt` or `LarFile(#).txt`.
- The data is now formatted into a pipe-delimited text file ([as shown below](#lar-file-output)) and ready to be submitted to the HMDA Platform.

## Editing an existing LAR file

- Use the [`Upload File`](#file-actions) button to select your file. All processing is done in your browser, no data is sent to the CFPB.
- Rows without a valid `Record Identifier` are filtered out during data parsing and in a [`Records for review`](#please-review) section. You should review these records and update them if appropriate.
- Use the [`Saved Records`](#saved-records) area to find records relevant to your focus.
- You can search the text of your file using the `Search TS/LAR` boxes.
- You can filter which fields are shown using the `Filter columns/Filter by label` boxes.
- Selecting a record in [`Saved Records`](#saved-records) will populate that row's data in the [`Editing`](#editing-a-record) section of the app
- [`Parsed Values`](#parsed-values) provides examples of field inputs, field and input descriptions, and easy selectors for enumerated fields.
- [`Pipe-Delimited Values`](#pipe-delimited-values) provides the row's raw text, as it will appear in your downloaded LAR file.
- Clicking in a field will highlight that value in the [`Parsed Values`](#parsed-values) section for quick editing.
- After making your changes, use the [`Download File`](#file-actions) button to create and download your LAR file.
- The data is now formatted into a pipe-delimited text file ([as shown below](#lar-file-output)) and ready to be submitted to the HMDA Platform.
## Interaction Guide

### File Actions
Import or export your LAR data.
- **Upload**: Work with an existing pipe-delimited LAR file.
- **Download**: Create a [LAR file](#lar-file) based on the currently saved LAR data.
- **Clear Saved**: Start fresh by erasing all LAR data.

![File Actions](../images/larft/file_actions.png)

### Row Actions
Manage the persistence of the row currently being edited.
- **Save/Update**: Create/Modify the currently selected row.
- **Delete**: Remove the selected row from [`Saved Records`](#saved-records)
- **Clear**: Clears the currently selected record. Any unsaved data is removed from the [Editing](#editing-a-record) section. Highlights associated with the previously selected row/column are removed.
- **Clipboard Copy/Paste**: Quickly import/update/export single-row data between applications.

![Row Actions](../images/larft/row_actions_update.png)

### Saved Records
Search your existing records' text or filter to view a single LAR field, helping to focus your LAR data reviews.
- **Transmittal Sheet**: Institution information
- **Loan/Application Records**: Application records

![Saved Records](../images/larft/saved_records_populated.png)

#### Please Review
If there are records in an uploaded LAR file that we could reliably parse, you will see the following.
![Please review](../images/larft/saved_records_unparsable.png)

#### Search text/Filter fields
- Use the `Search` box to find rows that contain the entered text.
- Use the `Filter` box to restrict which LAR fields are displayed.

![Search Results](../images/larft/saved_records_searching.png)

### Editing a Record
#### Editing status
The heading of the Editor will remind you whether you are:
- Creating or Updating the current Editor row
- ex. `Creating a new LAR Row`
- ex. `Updating LAR Row 1`
- Working with TS or LAR
- ex. `Creating a new LAR Row`
- ex. `Creating Transmittal Sheet`

#### Parsed Values
Edit the selected row with guided enumerations, examples, and field descriptions. Changes are not persisted until you click [`Save/Update`](#row-actions).

- **Enumerations**: Drop-down menus for enumerated values (i.e. Loan Type).
- **NA/Exempt**: Buttons for easy exception inputs.
- **Dates**: Date-picker with easily readable date format. Values are automatically converted between the display-format and the lar-format (yyyymmdd).
- **Field details**: View description, enumerations, and examples.

![Parsed Values](../images/larft/parsed_multi_select.png)

![Field Details](../images/larft/parsed_field_details.png)

#### Pipe-Delimited Values
Edit the selected row as if you were directly in the LAR file. Changes are not persisted until you click [`Save/Update`](#row-actions).
- **Clipboard Copy/Paste**: Easily import/export date between applications.
- **Linking with Parsed Values**: Selecting a field in the textarea will highlight the same field in [`Parsed Values`](#parsed-values) to make editing data easier with the guided enumerations, examples, and field descriptions.

![Pipe-Delimited Values](../images/larft/piped.png)

## LAR File Output
The LARFT produces pipe-delimited, UTF-8 encoded LAR files. Files contain at least 1 TS and 1 LAR row.

**Note**: Data not entered using the LARFT (i.e. uploaded data), aside from the `Record Identifier`, is **not** checked for validity. You can submit the file on the [HMDA Beta Platform](https://ffiec.beta.cfpb.gov) to check for Edits.

Example output:

![LAR file content](https://raw.githubusercontent.com/cfpb/hmda-frontend/master/src/documentation/markdown/images/larft/Text_file_sample.png)
## Frequently Asked Questions
The Frequently Asked Questions are available at https://ffiec.cfpb.gov/documentation/2021/faqs/


## HMDA Help
Technical questions about reporting HMDA data collected in or after 2017 should be directed to hmdahelp@cfpb.gov.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 2 additions & 0 deletions src/filing/actions/fetchUpload.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,12 @@ import receiveUpload from './receiveUpload.js'
import hasHttpError from './hasHttpError.js'
import receiveUploadError from './receiveUploadError.js'
import { error } from '../utils/log.js'
import requestProcessingProgress from './requestProcessingProgress'

export default function fetchUpload(file) {
return dispatch => {
dispatch(requestUpload())
dispatch(requestProcessingProgress())

const data = new FormData()
data.append('file', file)
Expand Down