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

(PXP-7402) Discovery page #803

Merged
merged 77 commits into from
Feb 12, 2021
Merged

(PXP-7402) Discovery page #803

merged 77 commits into from
Feb 12, 2021

Conversation

mpingram
Copy link
Contributor

@mpingram mpingram commented Feb 10, 2021

Jira Ticket: PXP-7402

Adds a beta version of the Discovery page, which shows a list of the studies available on the Gen3 commons. Also adds support for Typescript (compiling w/ babel, tests, and linting). This PR looks a lot bigger than it really is due to test data + Typescript setup -- the files to start with are:

  • src/Discovery/index.tsx <- this connects the Discovery page to the metadata-service backend and handles access checking
  • src/Discovery/Discovery.tsx <- this is the entire Discovery page -- I kept it in one file on purpose, as the Discovery page is still a beta feature and we're going to heavily modify its appearance in the future (adding a grid view, etc).
  • src/Discovery/Discovery.test.tsx

Running at https://mpingram.planx-pla.net/discovery. Working on deploying to my dev env but running into problems with submitting data to MDS. For the moment, please test with these instructions:

  1. Check out this branch of cdis-manifest: https://github.com/uc-cdis/cdis-manifest/tree/feat/bdc-staging-discovery-page.
  2. Run portal locally against https://staging.gen3.biodatacatalyst.nhlbi.nih.gov/:
    HOSTNAME=staging.gen3.biodatacatalyst.nhlbi.nih.gov NODE_ENV=auto bash ./runWebpack.sh

Configuration

To deploy Discovery page:

  • "featureFlags": { "discovery": true } must be set in the portal config.
  • If discoveryConfig.features.authorization.enabled: true, "useArboristUI": true must be set in the portal config.
  • "discoveryConfig": must be set in the portal config. DiscoveryConfig documentation can be found at https://github.com/uc-cdis/data-portal/blob/master/docs/portal_config.md
  • To upload data to Discovery page, data must be uploaded to environment's metadata-service instance with guid_type: "discovery_metadata". The metadata must all be under the top-level property gen3_discovery. (No documentation on this process yet, see this gist for right now https://gist.github.com/Avantol13/a53593837503fede2881f315198247c4)

New Features

  • Adds a beta version of the Discovery page, which shows a list of the studies available on the Gen3 commons.

Breaking Changes

Bug Fixes

Improvements

  • Adds support for Typescript to the portal codebase.

Dependency updates

Deployment changes

  • To deploy Discovery page:
    • "featureFlags": { "discovery": true } must be set in the portal config.
    • If discoveryConfig.features.authorization.enabled: true, "useArboristUI": true must be set in the portal config.
    • "discoveryConfig": <DiscoveryConfig> must be set in the portal config. DiscoveryConfig documentation can be found at https://github.com/uc-cdis/data-portal/blob/master/docs/portal_config.md
    • To upload data to Discovery page, data must be uploaded to environment's metadata-service instance with guid_type: "discovery_metadata". The metadata must all be under the top-level property gen3_discovery. (No documentation on this process yet, see this gist for right now https://gist.github.com/Avantol13/a53593837503fede2881f315198247c4)

- [x] Search bar
- [ ] Show favorites
- [ ] Access toggle
- Search bar
- Show favorites
- Access toggle
- [x]  Favorite symbol
- [x]  Study name is link
- [x]  Access symbol
- [ ]  Tags
- [ ]  Study description
- Favorite symbol
- Study name is link
- Access symbol
- Tags
- [~] Study description
	- May need to find another workaround for the study description
- Favorite symbol
- Study name is link
- Access symbol
- Tags
- Study description
- [x] Load study data on component mount
- [ ] Plug study data into header
	- [ ] stats
	- [ ] tags
- [ ] Plug study data into table
- [ ] Plug study data in modal
- TODO IN FUTURE check user's study access against Arborist
- [x] Load study data on component mount
- [ ] Plug study data into header
	- [ ] stats
	- [ ] tags
- [x] Plug study data into table
- [ ] Plug study data in modal
- TODO IN FUTURE check user's study access against Arborist
- [x] Load study data on component mount
- [ ] Plug study data into header
	- [x] stats
	- [ ] tags
- [x] Plug study data into table
- [ ] Plug study data in modal
- TODO IN FUTURE check user's study access against Arborist
- [x] Load study data on component mount
- [x] Plug study data into header
	- [x] stats
	- [x] tags
- [x] Plug study data into table
- [ ] Plug study data in modal
- TODO IN FUTURE check user's study access against Arborist
- [x] Load study data on component mount
- [x] Plug study data into header
	- [x] stats
	- [x] tags
- [x] Plug study data into table
- [ ] Plug study data in modal
- TODO IN FUTURE check user's study access against Arborist
- Load study data on component mount
- Plug study data into header
	- stats
	- tags
- Plug study data into table
- Plug study data in modal
- TODO IN FUTURE check user's study access against Arborist
- Add jsSearch library
- Get basic search working
- Highlight search results
- TODO IN FUTURE Return to page 1 on search
- [x] Refactor access checking: add 'accessible' property to data
- [x] Filter table data by access level when buttons selected
- [x] Filter table data by selected tag
- [ ] Make tags in header selectable
- [x] Refactor access checking: add 'accessible' property to data
- [x] Filter table data by access level when buttons selected
- [x] Filter table data by selected tag
- [~] Make tags in header selectable
- [x] Refactor access checking: add 'accessible' property to data
- [x] Filter table data by access level when buttons selected
- [x] Filter table data by selected tag
- [~] Make tags in header selectable
	- Try colorSelected / colorUnselected
- Refactor access checking: add 'accessible' property to data
- Filter table data by access level when buttons selected
- Filter table data by selected tag
- Make tags in header selectable
- Open study page in modal when linked to
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants