Skip to content

Commit

Permalink
Merge pull request #819 from nasa/develop
Browse files Browse the repository at this point in the history
merge v1.10.0 to master
  • Loading branch information
flamingbear authored Jul 30, 2020
2 parents 1e3ab53 + 536c28f commit 2ac8afe
Show file tree
Hide file tree
Showing 168 changed files with 8,129 additions and 6,564 deletions.
18 changes: 9 additions & 9 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ jobs:
command: |
export NVM_DIR="/opt/circleci/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
nvm install v10.16.3
nvm alias default v10.16.3
nvm install v12.18.0
nvm alias default v12.18.0
npm install -g npm
npm ci
Expand All @@ -34,7 +34,7 @@ jobs:
-v $(pwd):/home \
--workdir /home \
-e APIROOT=http://api:5001 \
node:10.16.3 \
node:12.18.0 \
npm run build
- run:
Expand All @@ -44,7 +44,7 @@ jobs:
-v /home/circleci/.cache:/root/.cache \
-v $(pwd):/home \
--workdir /home \
node:10.16.3 \
node:12.18.0 \
npm run test
- run:
Expand Down Expand Up @@ -79,8 +79,8 @@ jobs:
command: |
export NVM_DIR="/opt/circleci/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
nvm install v10.16.3
nvm alias default v10.16.3
nvm install v12.18.0
nvm alias default v12.18.0
npm install -g npm
npm ci
Expand All @@ -100,7 +100,7 @@ jobs:
-v $(pwd):/home \
--workdir /home \
-e APIROOT=${SANDBOX_API} \
node:10.16.3 \
node:12.18.0 \
npm run build
- run:
Expand All @@ -124,7 +124,7 @@ jobs:
-v $(pwd):/home \
--workdir /home \
-e APIROOT=${SANDBOX_API_ROOT} \
node:10.16.3 \
node:12.18.0 \
npm run build
- run:
Expand All @@ -148,7 +148,7 @@ jobs:
-v $(pwd):/home \
--workdir /home \
-e APIROOT=${SIT_API_ROOT} \
node:10.16.3 \
node:12.18.0 \
npm run build
- run:
Expand Down
2 changes: 1 addition & 1 deletion .nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
10.16.3
12.18.0
133 changes: 132 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,133 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.

## [Unreleased]

## [v1.10.0]

### BREAKING CHANGES

- This dashboard version requires Cumulus API version >= v2.0.1

### Added
- **CUMULUS-1805**
- Shows running, completed, and failed granule format for when there are zero granules,
before it would just say "Granules 0," but now will show zeros in all categories.
- **CUMULUS-1886**
- Support sorting on multiple columns
- **CUMULUS-1904**
- Adds a TableFilters component for dynamically showing/hiding table columns

- **CUMULUS-1906**
- Adds a download button dropdown to reconciliation report inventory view.
Option to download full report as json or indivdual tables as csv files.

- **CUMULUS-1908**
- Adds Conflict Type and Conflict Details columns to reconciliation report inventory view tables.

- **CUMULUS-1914**
- Adds a legend component for reconciliation reports

- **CUMULUS-1917**
- Adds a download button to reconciliation report list page

- **CUMULUS-1918**
- Adds delete report button to the Reconciliation Reports page

- **CUMULUS-1977**
- Added BulkGranuleModal component for creating modals to submit bulk granule requests

- **CUMULUS-2018**
- Add search option to individual Reconciliation Report page
- Add ability to filter by S3 bucket on Reconciliation Report page

- **CUMULUS-**
- upgrades node to 12.18.0
- Upgrade Cypress to latest version (4.8.0)

### Changed

- **CUMULUS-1773**
- Updated query param functionality so that when URLs are shared, the lists will be filtered based on those params
- Persists startDateTime and endDateTime params on all links and redirects within the app

- **CUMULUS-1815**
- Refactor some PDR components. No user facing changes.

- **CUMULUS-1830**
- Fix redirect issue when logging out from the page with URL path containing dot

- **CUMULUS-1836**
- Replace react-autocomplete with react-bootstrap-typeahead
- Allow custom values in Results per Page dropdowns

- **CUMULUS-1861**
- Update Execution/Rule tables to handle undefined collectionIds
- Update Rule add dialogue logic to allow Rule creation without a collection
value.

- **CUMULUS-1905**
- Updates Inventory Report view to clarify Cumulus's internal consistency differences and Cumulus's differences with CMR.

- **CUMULUS-1919**
- Update styles for report view

- **CUMULUS-1919**
- Updates styles on Reconciliation Report list page

- **CUMULUS-1977**
- Updated BulkGranule component to display a modal that allows you to choose
the type of bulk request you want to submit: bulk granule operations or bulk
granule delete.

- **CUMULUS-1994**
- No default datetime filters are applied when the application is loaded.
- Upgrade Cypress to latest version (4.7.0)

- **CUMULUS-2019**
- Support partial search

- **CUMULUS-2029**
- Overview tiles are updated to represent what is shown in the table

### Fixed

- **CUMULUS-1815**
- Fix timer bug in PDR Tables. This was causing an issue where a table that
was supposed to be showing a subset of PDRs was showing all PDRS

- **CUMULUS-1831**
- Fix batch async modals so they close on success/error

- **CUMULUS-1842**
- Fix dashboard table sort issue

- **CUMULUS-1870**
- Fix/remove unecessary timers on Pdrs page

- **CUMULUS-1871**
- Fix/remove unecessary timers on Providers page

- **CUMULUS-1872**
- Fix/remove unecessary timers on granules page

- **CUMULUS-1873**
- Fix/remove unecessary timers on executions page

- **CUMULUS-1875**
- Fix/remove unecessary timers on Operations Page

- **CUMULUS-1877**
- Fix/remove unecessary timers on Reconcilation Reports page

- **CUMULUS-1882**
- Fix ES query for TEA Lambda metrics
- Update Kibana links on homepage for TEA metrics

- **CUMULUS-2024**
- Fix bug where new providers and collections were not being pulled in as options on the Add Rule page

- **CUMULUS-2040**
- Fix reconciliation report pagination so that it does not display all pages when there are a large number of conflicts

## [v1.9.0]

### BREAKING CHANGES
Expand All @@ -23,6 +150,9 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
- **CUMULUS-1913**
- Add datepicker to reconcilation-reports page

- **CUMULUS-1915**
- Add filters for `Report Type` and `Status` to reconcilation-reports page

- **CUMULUS-1916**
- reconcilation-reports page now requires Cumulus API version >= v1.23.0

Expand Down Expand Up @@ -409,7 +539,8 @@ Fix for serving the dashboard through the Cumulus API.

- Versioning and changelog [CUMULUS-197] by @kkelly51

[Unreleased]: https://github.com/nasa/cumulus-dashboard/compare/v1.9.0...HEAD
[Unreleased]: https://github.com/nasa/cumulus-dashboard/compare/v1.10.0...HEAD
[v1.10.0]: https://github.com/nasa/cumulus-dashboard/compare/v1.9.0...v1.10.0
[v1.9.0]: https://github.com/nasa/cumulus-dashboard/compare/v1.8.1...v1.9.0
[v1.8.1]: https://github.com/nasa/cumulus-dashboard/compare/v1.8.0...v1.8.1
[v1.8.0]: https://github.com/nasa/cumulus-dashboard/compare/v1.7.2...v1.8.0
Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ The following environment variables override the default values in `config.js`:

## Building or running locally

The dashboard uses node v10.16.3. To build/run the dashboard on your local machine, install [nvm](https://github.com/creationix/nvm) and run `nvm install v10.16.3`.
The dashboard uses node v12.18.0. To build/run the dashboard on your local machine, install [nvm](https://github.com/creationix/nvm) and run `nvm install v12.18.0`.

We use npm for local package management, to install the requirements:
```bash
Expand Down Expand Up @@ -121,7 +121,7 @@ These are started and stopped with the commands:
$ npm run start-localstack
$ npm run stop-localstack
```
After these containers are running, you can start a cumulus API locally in a terminal window `npm run serve-api`, the dashboard in another window. `[SHOW_DISTRIBUTION_API_METRICS=true ESROOT=http://example.com APIROOT=http://localhost:5001] npm run serve` and finally cypress in a third window. `npm run cypress`.
After these containers are running, you can start a cumulus API locally in a terminal window `npm run serve-api`, the dashboard in another window. `[HIDE_PDR=false SHOW_DISTRIBUTION_API_METRICS=true ESROOT=http://example.com APIROOT=http://localhost:5001] npm run serve` and finally cypress in a third window. `npm run cypress`.

Once the docker app is running, If you would like to see sample data you can seed the database. This will load the same sample data into the application that is used during cypress testing.
```bash
Expand All @@ -135,7 +135,7 @@ The cumulusapi docker service is started and stopped:
$ npm run start-cumulusapi
$ npm run stop-cumulusapi
```
Then you can run the dashboard locally (without docker) `[SHOW_DISTRIBUTION_API_METRICS=true ESROOT=http://example.com APIROOT=http://localhost:5001] npm run serve` and open cypress tests `npm run cypress`.
Then you can run the dashboard locally (without docker) `[HIDE_PDR=false SHOW_DISTRIBUTION_API_METRICS=true ESROOT=http://example.com APIROOT=http://localhost:5001] npm run serve` and open cypress tests `npm run cypress`.


The docker compose stack also includes a command to let a developer start all development containers with a single command.
Expand Down Expand Up @@ -278,7 +278,7 @@ Serve the cumulus API (separate terminal)

Serve the dashboard web application (another terminal)
```bash
$ [SHOW_DISTRIBUTION_API_METRICS=true ESROOT=http://example.com APIROOT=http://localhost:5001] npm run serve
$ [HIDE_PDR=false SHOW_DISTRIBUTION_API_METRICS=true ESROOT=http://example.com APIROOT=http://localhost:5001] npm run serve
```

If you're just testing dashboard code, you can generally run all of the above commands as a single docker-compose stack.
Expand Down
4 changes: 3 additions & 1 deletion TABLES.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ A basic table component that supports row selection and dumb sorting (see below)

- **data**: Array of data items. Items can be any format.
- **sortId**: The id of the column to sort on.
- **changeSortProps**: Callback when a new sort order is defined, passed an object with the properties `{ sortId, order }`.
- **changeSortProps**: Callback when a new sort order is defined, passed an array containing the sort properties `[{ id: sortId, desc: true|false }]`. The object order in array impacts searching.
- **onSelect**: Callback when a row is selected (or unselected), passed an array containing the ids of all selected rows.
- **canSelect**: Boolean value defining whether 1. rows can be selected and 2. to render check marks.
- **rowId**: String or function that defines a particular row's id. Passed to `useTable` options via `getRowId`.
Expand All @@ -46,4 +46,6 @@ Wraps `sortable-table` and implements auto-update and smart sort. When a new sor

Dumb sorting uses react-table's built in sort functionality to sort table data that has **already** been received from the API. Smart sorting initiates a new API request, passing the sort parameter to the server (elasticsearch) which returns a sorted response. The `maunalSortBy` option passed to `useTable()` tells react-table whether we are doing server-side sorting (`true`) or letting react-table sort (`false`).

When sorting on multiple columns, select the first column, hold down the shift key, and select another column.

Dumb sorting is for smaller, simple tables that do not need pagination.
4 changes: 2 additions & 2 deletions USAGE.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ Cumulus is a moving system. Almost all of the data views in Dashboard will updat

## Searching and filtering

Many tables provide dropdowns to filter the data based on attributes like status or parent collection. Often, you will find search fields where you can enter arbitrary search strings. As you type, the Cumulus Dashboard and API will attempt to find records containing attributes with **prefixes** that match your search string.
Many tables provide dropdowns to filter the data based on attributes like status or parent collection. Often, you will find search fields where you can enter arbitrary search strings. As you type, the Cumulus Dashboard and API will attempt to find records containing attributes with **infixes** that match your search string.

For example, say a granule belongs to a PDR with the name `MODAPSops8.15810456.PDR`. In the granules section under "All Granules," searching for "MODAPS" will return a selection containing this granule. However, searching for "1581" will not return this granule.
For example, say a granule belongs to a PDR with the name `MODAPSops8.15810456.PDR`. In the granules section under "All Granules," searching for "MODAPS" or "15810" will return a selection containing this granule.

## Sorting

Expand Down
45 changes: 36 additions & 9 deletions app/src/css/_badges.scss
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
.num--title {
.num-title {
display: inline-block;
vertical-align: middle;
border-radius: 4px;
Expand All @@ -13,21 +13,48 @@
font-weight: $base-font-regular;
-webkit-font-smoothing: antialiased;
transition: background-color 0.2s linear;

&--inverted {
@extend .num-title;
background: $white;
color: $ocean-blue;
}
}

.status--badge {
padding: .5em;
.status__badge {
padding: .4em 1em;
border-radius: 4px;
margin-left: 5px;
color: $white;
text-transform: uppercase;
font-weight: $base-font-regular;
display: inline-block;
&__enabled {
background-color: #30AD66;
}
&__disabled {
background-color: #36342D;
&--enabled {
background-color: #30AD66;
}
&--disabled {
background-color: #36342D;
}
&--passed {
background-color: $theme--success;
}
&--conflict {
background-color: $theme--conflict;
}
&--running {
background-color: $yellow;
}
}

&--completed {
background-color: $light-green;
}

&--stopped {
background-color: $orange;
}

&--failed,
&--disabled {
background-color: $error-red;
}
}
Loading

0 comments on commit 2ac8afe

Please sign in to comment.