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

After-import adjustments of react-ebi-species #7

Merged
merged 4 commits into from
Dec 18, 2019

Conversation

alfonsomunozpomer
Copy link
Member

No description provided.

@alfonsomunozpomer alfonsomunozpomer merged commit b1bd837 into master Dec 18, 2019
@alfonsomunozpomer alfonsomunozpomer deleted the react-ebi-species/after-import-adjustments branch December 18, 2019 16:12
alfonsomunozpomer pushed a commit that referenced this pull request Mar 6, 2020
* - Remove print option from heatmap download button

* - Update test for export options on heatmap
alfonsomunozpomer added a commit that referenced this pull request Mar 6, 2020
)

* Initial commit containing application skeleton, Babel and Webpack setup, as well as Travis config.

* Added first version of a Highcharts heatmap that displays marker genes, with 2 Y axes showing gene IDs and the cluster where the gene is a marker.

* Added react-highcharts and lodash as dependencies.

* Refactored demo component.

* Added React Select dropdown to change the k value for which marker genes are displayed. Reusing the PlotSettingsDropdown component from scxa-experiment-page-tsne-plot-view, which should be extracted into a separate repo with common components.

* Added flask loading overlay (same as tsne plot component). Added flask svg image. Added svg loading in Webpack config and fixed small issue with public assets path.

* Added dependencies on react-select, styled components and Webpack file loader.

* Renamed FetchLoader component to HeatmapView. Added additional props for styling and heatmap size and marked the relevant props as required. Added default values for some props. Tweaked styling such that the loading overlay only covers the heatmap, rather than the whole page. Changed default value to have the label prefixed with k =. Initialised heatmap data with empty array rather than null, to prevent errors.

* Fixed prop type for chartHeight. Applying wrapperClassName to heatmap div. Changed demo HTML to wide layout.

* Added rounding to 3 decimals in the heatmap tooltip. Changed title, added styling (to match tsne plots) and added subtitle. Added title to plot legend.

* Tweaked colouring to use EMBL orange for legend marker and heatmap cell border.

* Added additional div with styling passed as prop to add padding to the component.

* Changed PlotSettingsDropdown such that the value is set instead of the default dropdown value. This allows the dropdown to be changed programatically.

* Changed heatmap cursor to crosshair to hint at its zoomable qualitites.

* Added heatmap size calculation based on desired row height in pixels. Added props to enable/disable dynamic height, and to pass in height values.

* Added plotlines and labels to indicate the separation between marker genes for each cluster. Added more p-value and cluster ID where gene is marker to tooltip. Removed secondary axis. Added plot background colour such that empty cell appear grey rather than white. Added explicit X axis categories.

* Ensuring selectedK is an int as it can be sent as a string from URL params.

* Fixed PropTypes. Adjusted heatmap coloraxis.

* Added message to display when there is no data in the heatmap. Added min value for color axis. Changed to fixed height when there is no data in the heatmap. Tweaked default heatmap height value.

* Added logic to disabled ks for which we don't have marker genes (list of valid ks is passed in as a prop).

* Updated dependencies.

* Moved all heatmap sizing calculation logic to the MarkerGeneHeatmap component itself. Disabled display of heatmap if data is loading. Disabled axes and legend if heatmap is empty.

* Added additional dropdown for the cluster ID, so that a user can filter the heatmap for a particular cluster ID. An additional filteredData object was added to the state, which keeps a copy of the data actually displayed in the heatmap. Removed x and y axis category calculation from inside the heatmap component. Added a max value for the colorAxis, such that all experiments have an absolute colour gradient.

* Added additional test data set to the demo page.

* Added disabling of cluster IDs without marker genes in the dropdown. Simplified option disabling logic for the k dropdown.

* Added additonal prop for the heatmap which indicates whether or not the data is filtered. If the data is filtered, then no plotlines/side labels are calculated and shown.

* Fixed bug where the first categories on the X axis weren't being shown if they had no expression data.

* Fixed logic for disabling dynamically sized heatmaps. Now counting the actual number of genes, rather than than the number of data points. Incresed threshold to 5 genes.

* Added styling to the label corresponding to the selected cluster when the heatmap is filtered.

* Reduced number of decimals for p-value in the tooltip.

* Fix loading overlay position.

* Disabled x axis title if there is no data.

* Reorganised content in Heatmap view to include a separate row for the dropdowns, and an additional row for the heatmap.

* Remove unnecessary keys.

* Changed default demo experiment. Fixed some issues related to prop types.

* Updated Highcharts and React select.

* Removed failing stub tests. Added tests for the LoadingOverlay component.

* Actually removing stubs now.

* Added better error handling for situations in which no data is retrieved from the backend. Adjusted styling for error message div. Improved definition of data object expected by Highcharts.

* Extracted the CalloutAlert component into a separate file to ease testing.

* Added test for plot line creation in the MarkerGeneHeatmap component. Added test for unsuccessful API request in HeatmapView component.

* Enabled coveralls. Added fetch-mock as dependency.

* Added additional tests.

* Changed jest environment to jsdom.

* Fixed issue where heatmap remains in filtered mode when you change k values.

* Code cleanup following PR comments.

* Updated snapshots.

* Enabled image exporting. Renamed Highcharts modules to follow JS naming convention.

* Replaced value with defaultValue for PlotSettingsDropdown, as it no longer needs to be set programmatically.

* Reverted change to ReactSelect element, now using value rather than defaultValue. Renamed PlotSettingsDropdown prop to minimise confusion.

* Replaced native array generation with lodash equivalent. Changed k dropdown label.

* Added build badges to readme file.

* Fix linter warnings

* Small first instead of medium

* Update dependencies and polyfill tests that need fetch

* Update build badge link to travis-ci.com

* 1.0.0

* Add export-data module for heatmap data and change

json payload parameter `name` into `geneName` to avoid confusion between gene name and x-axis name.

* Define the exporting options explicitly without ..

viewdata and highchart cloud

* Add a module to correct heatmap export data shape

* Transpose matrix data to align with heatmap

* Rename highcharts module

* Correct error name property

* Ignore test for highcharts module and update lock

* Add a test for highcharts data export options

* Rename highcharts module in jest setup

* 1.1.0

* Update to latest dependencies

* 1.1.1

* Fix tests for Highcharts 7 and official wrapper

* 1.2.0

* Add a highcharts module to include html icon in .. (#3)

* Add a highcharts module to include html icon in ..

export button text and enlarge the font size

* Resize fontSize of button text and add code source

* Ignore highchartsExportStyle in Jest test

* Remove space in download button and add a test

* Restyle download button and update test, snapshot

* 1.2.1

* Update to latest dependencies

* 1.3.0

* Change TPM to CPM (#4)

* Bugfix #166502072 download button style (#5)

* Remove export module and update download button

* Update test

* 1.3.1

* Remove print option from heatmap download button (#7)

* - Remove print option from heatmap download button

* - Update test for export options on heatmap

* Update to latest dependencies

* Fix test

* 1.4.0

* Correct yAxis based on marker gene and cluster (#6)

* Correct yAxis based on marker gene and cluster

* Don’t use heredoc-like string templates for tooltip HTML snippets
They introduce many blanks without good reason

* yAxis shouldn’t be an array
The fact that it was working is surprising!

* Update to latest dependencies

* const what doesn’t need to be let

* CPM has a maximum of 1,000,000

* Use same color axis as t-SNE gene expression plot

* Row labels based on pairs of gene symbol/ID and cluster ID where the gene is a marker, instead of only gene symbol/ID

* Use Lodash better

* Add a meatier demo experiment

* Lower case test names

* 1.5.0

* Lerna post-import maintenance

Co-authored-by: Monica Jianu <monica@ebi.ac.uk>
Co-authored-by: lingyun1010 <zhaolingyun1010@gmail.com>
Co-authored-by: Lingyun Zhao <33519183+lingyun1010@users.noreply.github.com>
Co-authored-by: Haider Iqbal <haideri@ebi.ac.uk>
alfonsomunozpomer pushed a commit that referenced this pull request Sep 4, 2020
* Add tooltip for facetgroups \n Add tests to check if tooltip exists

* - Update tooltip logic to show only when there is
tooltip text in payload
- Add test to check if tooltip is there if there
is no tooltip text in payload

* Update react-select version to 2.1.0

* - Add separate UI test for
MultiselectDropdownFacetGroup and
CheckboxFacetGroup
- Remove spacing between css class names in
previous tests

* - Modify test and tooltip condition to handle
when JSON payload contains empty tooltip
description.

* - Format code according to coding standard
- Add id to react Select component
- Revert back to check null for tooltip text

* - Generate random group names to test checkboxFacetGroup component
- Added facetGroupNameDescription prop in FacetGroupPropTypes
- Format and ident checkboxFacetGroup.js file

* - Generate random group names to test multiselectDropdownFacetGroup component
- Removed unnecessary imports
- Format and ident multiselectDropdownFacetGroup.js file
- Rename test file according to the component name it is testing.

* - Fixed typo in test case description

* - Fixed typo errors and space after comma missed previously

* Give test data a bit more flair

* Reformat code and remove incorrect props

* Make some facets not have a tooltip text

* Randomize test data

* Update snapshots

* Update snapshots
alfonsomunozpomer pushed a commit that referenced this pull request Sep 10, 2020
* Add tooltip for facetgroups \n Add tests to check if tooltip exists

* - Update tooltip logic to show only when there is
tooltip text in payload
- Add test to check if tooltip is there if there
is no tooltip text in payload

* Update react-select version to 2.1.0

* - Add separate UI test for
MultiselectDropdownFacetGroup and
CheckboxFacetGroup
- Remove spacing between css class names in
previous tests

* - Modify test and tooltip condition to handle
when JSON payload contains empty tooltip
description.

* - Format code according to coding standard
- Add id to react Select component
- Revert back to check null for tooltip text

* - Generate random group names to test checkboxFacetGroup component
- Added facetGroupNameDescription prop in FacetGroupPropTypes
- Format and ident checkboxFacetGroup.js file

* - Generate random group names to test multiselectDropdownFacetGroup component
- Removed unnecessary imports
- Format and ident multiselectDropdownFacetGroup.js file
- Rename test file according to the component name it is testing.

* - Fixed typo in test case description

* - Fixed typo errors and space after comma missed previously

* Give test data a bit more flair

* Reformat code and remove incorrect props

* Make some facets not have a tooltip text

* Randomize test data

* Update snapshots

* Update snapshots
alfonsomunozpomer added a commit that referenced this pull request Sep 10, 2020
* Initial commit

* Add build badges

* Add dependencies

* Rename entry point and add polyfill

* Update demo page to use EBI VF v1.3

* Minimal component that shows an error message if communication with server fails

* Dummy push to kick off Travis

* Regenerate pacakge-lock.json as there was some cruft from packages not saved to package.json

* Typo and some rewording in the comment about Promise handling

* Merge branch 'master' of https://github.com/ebi-gene-expression-group/scxa-gene-search-results

* Don’t unfold the error and use it in the state as it is

* Test error boundary and loading/loaded workflow

* Merge branch 'master' of https://github.com/ebi-gene-expression-group/scxa-gene-search-results

* Renamed GeneSearchResults to FetchLoader The basic architecture is FetchLoader fetches data from server and passes it to the component that does the heavy lifting

* Container component that gets the data from FetchLoader and displays search results

* Initial draft of the left filtering sidebar

* Don’t trust Atom, it doesn’t know how to autocomment JSX

* Fix propTypes typo

* Rename test to match FetchLoader

* Stub component for the results list

* Make two entries to test the fetch and the component itself; add CSS modules; reindent

* Fix dependencies

* Add components that make up the sidebar with facet filters

* Add a crude component to display results, it’s basic but it does the job

* Rename the top level container and actually implement it

* Call the top level component after fetching data

* Simplify test set up

* Add tests for CheckboxFacetGroup

* Randomize each test making sure there’s at least one option in the facet

* Fix JSON payload when FetchLoader retrieves data for FilterList

* Add a few more tests for MultiselectDropdownFacetGroup

* Remove import of shallow, we’re just using mount

* Refactor some common methods and test data to TestUtils.js

* Ignore TestUtils.js in coverage

* Add tests for the left filter sidebar

* Use identity-obj-proxy to fix snapshot test in Travis CI

* Update snapshot

* Make select input element stretch with contents

* Huge code refactoring • Simplified logic and state management with Lodash • Props are flatter across components, only transformed where strictly needed • Removed ResultsList component, instead we pass a React Component used to visualise each element • Updated snapshots and tests

* Refactor demo components and data

* Add a component prop to FetchLoader

* Use backticks

* Add some flair to the demo ResultElementComponent

* Add documentation

* Add link to demo in README

* Fix an incorrect item in the test data

* Rename package name and prepare a potential first version

* Since facets are optional, just render the list of results if no valid ones are passed in

* Add test to ensure the sidebar doesn’t contain duplicates

* Replace double quotes with backticks

* Add tests for the FilterList component

* Minor rewording comments

* Fix URLs of build badges

* Fixed REDAME to match demo

* Changed package name to react-faceted-search.

* Merge pull request #1 from ebi-gene-expression-group/feature/157167501-search-endpoint

Feature #157167501 - Search endpoint

* 1.1.0

* 1.1.1

* Update snapshot

* Merge branch 'master' of https://github.com/ebi-gene-expression-group/scxa-faceted-search-results

* atlas-feedback@ebi.ac.uk is no more, the GDPR killed it

* 1.2.1

* Simplify scripts

* Remove pesky error message in tests

* Change header of results list to align results with filters

* 1.2.2

* Enclose loading and no results messages in Foundation grid divs

* 1.3.0

* Feature/157774516 disable filter options with no results (#2)

* Typo

* Fix prop types in demo result elements

* Beef up documentation

* Externalise CSS styles for input
This is only necessary when integrating the component with a framework
that styles the `input` elements. It also avoids problems with CSS
modules down the line.

* Migrate to Webpack 4 with webpack-command and webpack-serve; update deps

* Replace inline styles with styled-components

* Update snapshots

* Remove prop to hide facet group name It’s not being used at all

* Refactor prop types used by several components

* Split main component in a stateful container and a stateless results list
Both the list and the sidebar get the results list and the selected
facets, from which they can infer what should and shouldn’t be displayed

* Rename demo pages and Webpack entries to reflect new code structure

* Fix tests

* Remove leftovers of facet group name hiding

* Revert: display results message D:

* Don’t wrap FacetPropTypes in PropTypes.shape to make it extendible

* Add a disabled prop to facets to grey out or remove the facet

* The container is now in charge of enabling/disabling facets
This design centralises all state changes in one place. I think it’s
better than having a distributed state stored among different
components.

* DRY out components: FilterList goes back to being as dumb as before

* Fix FilterList tests

* Fix facet group tests

* Randomize test

* Sort facets alphabetically; fix tests
The test suite includes a flakey test: the id in the input elements
created by react-select change on subsequent runs. Pushing to see if it
happens in Travis as well.

* Fix tests for FacetedSearchContainer

* Infer episode facets from episodes

* Properly randomize test

* Test that disabled checkboxes are displayed but greyed out

* Update dependencies

* Rename pass-through result component class prop

* Fix test after renaming props

* More fine-grained control of adding/removing facets for edge cases
We need to also know it a facet is the first selected or last unselected
in a group to, besides the general case which wasn’t being considered.

* Another easy test and updated snapshots

* Update README

* 2.0.0

* Bugfix/157890882 wrap long labels (#3)

* Updated webpack server from 4.12.0 to 4.16.0

* Wrap long labels using 'wrap-whitespace' css attribute on multivalue label and modify column length for filters

* Update jest from 23.1.0 to 23.4.1

* Update snapshot for FacetedSearchContainer.js

* 2.0.1

* Update Webpack config to webpack-serve 2

* Update dependencies

* Support a server-provided “reason” field if there are no results

* Full-fledged example for rich search feature

* Update package-lock.json

* 2.0.2

* Reduce filter sidebar width in large screens, it was too wide

* 2.0.3

* Merge pull request #6 from ebi-gene-expression-group/chore/159855401-add-javascript-linter

Chore #159855401 - Add Javascript linter

* Correct the configure file

* Revert "Correct the configure file"

This reverts commit f924b03b44d795baf96edfaf34efe1fa70b50949.

* Update to latest dependencies and move to official Webpack 4 and Babel 7

* Remove webpack-serve leftovers

* Minor corrections to README file

* Feature #158145682 – Add info tooltips for each facet group (#7)

* Add tooltip for facetgroups \n Add tests to check if tooltip exists

* - Update tooltip logic to show only when there is
tooltip text in payload
- Add test to check if tooltip is there if there
is no tooltip text in payload

* Update react-select version to 2.1.0

* - Add separate UI test for
MultiselectDropdownFacetGroup and
CheckboxFacetGroup
- Remove spacing between css class names in
previous tests

* - Modify test and tooltip condition to handle
when JSON payload contains empty tooltip
description.

* - Format code according to coding standard
- Add id to react Select component
- Revert back to check null for tooltip text

* - Generate random group names to test checkboxFacetGroup component
- Added facetGroupNameDescription prop in FacetGroupPropTypes
- Format and ident checkboxFacetGroup.js file

* - Generate random group names to test multiselectDropdownFacetGroup component
- Removed unnecessary imports
- Format and ident multiselectDropdownFacetGroup.js file
- Rename test file according to the component name it is testing.

* - Fixed typo in test case description

* - Fixed typo errors and space after comma missed previously

* Give test data a bit more flair

* Reformat code and remove incorrect props

* Make some facets not have a tooltip text

* Randomize test data

* Update snapshots

* Update snapshots

* Feature #159265221 – Make component re-render on new props (#9)

* Refactor CalloutAlert to its own module

* Re-render on new props (i.e. when a new URL is requested)
Design and implementation after
https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html#fetching-external-data

* 2.1.0-beta

* Feature #159265231 – Append gene IDs to search results header (#10)

* Use a callback instead of a string as (no) results header message with JSON payload as argument

* 2.2.0-beta

* Remove test import (accidentally left there)

* Improve alignment and font size of loading/no results messages

* 2.2.1-beta

* 2.3.0

* Remove config for webpack-serve

* Merge branch 'master' of https://github.com/ebi-gene-expression-group/scxa-faceted-search-results

* 2.4.0

* Feature #161750271 – Add headers to results (#12)

* Add a ResultsHeaderClass that is rendered on top of the results list

* Add headers to demo page

* Minor code clean-up

* 2.5.0-beta

* Clean code style

* 2.5.0

* Feature #162304903 remove facets shared by all results (#14)

* Test real data

* Reformat FilterSidebar by pass cleaned facetGroups

* Clean up code style

* Clean checkbox facetGroups and clean up codes

* Reformat the FilterSidebar with tidy facet groups

* Reformat container and pass results to sidebar

* Clean up code style

* Add required props in test

* Remove unused commands

* Update snapshots

* Update testutils with markerGenes and species

* Add a test for hiding a facet shared by all result

* Clean up code

* Add a filter method remove facets shared by all

* Clean up codes, delete old methods

* Remove unused props

* Revert "Remove unused props"

This reverts commit f4f3042895711117220e3e164a9cf93685757597.

* Disable facets after intial search results

* Remove useless props and define propTypes

* Assign clearedFacets in constructor and clean code

* Reorganise demo pages and update experiments results/header components

* Fix linter warnings/errors

* Trim and update dependencies

* Fix typo on CheckboxOption.propTypes

* Fix test environment for fetch

* Remove facet markerGenes in TestUtils; move common facet to test data

* Remove closure for facet-trimming, we’re only running this once

* Add comment to see trimming of shared facets in action

* Delete package-lock.json

* Feature #162416247 make search results titles clickable to sort (#13)

* Add experiment card and title as test utils

* Amend container and list test with experiment card

* Update snapshots

* Add TableCard and TableHeader files as demo input

* Pass TableCard and TableHeader as props to loader

* Amend demo file to show a valid search result

* Add two packages and a updating snapshots script

* Reformat FilterList as a stateful component to …

make table title clickable for sorting the table content

* Add a sorting order state and arrow in header

* Add a pointer cursor css style in table header

* Add hover, transition, opacity CSS for headers

* Add a sortState to indicate user selected title…

and toggle up and down orders

* Clean up code and fix up a bug about sorting if no

same attributes in response as table header

* Clean up code, set a different id for selected ..

title

* Add attributes. corresponding to the titles in

 ExperimentTableHeader  Utils for testing user selections

* Add test for the user selection on table headers

* Update snapshots

* Clean up package by removing update snapshots

* Update package-lock

* Fix Eslint style issues

* Fix Eslint style in test files

* Amend EpisodesHeader to ExperimentTable structure

* Amend codes based on PR review

* Update snapshots and clean up codes

* Change sortState name, use lodash sort

* Update snapshots

* Update test props

* Generalize FilterList with new HeaderComponent

* Add a stylesheet for sorting icons

* Format TableHeader component comprehensively

* Adjust EpisodesHeader structure to the same as …

ExperimentTableHeader

* Update test utils and FilterList with new structured header

* Update snapshots

* Update webpack-dev-server package

* Change default sorting as markergenes

* Update test snapshots

* Fix bug on table sorting

* Rename click callback function and clean states

* Remove additional stylesheet

* Clean the onClick callback function and propTypes

* Add a test for sorting table by clicking header

* Update package-lock

* Update snapshots

* Resolved merge conflict by incorporate suggestions

commit be61714933a584b9a97aa5a09041cce7a23a9a10
Author: lingyun1010 <zhaolingyun1010@gmail.com>
Date:   Tue Mar 5 11:22:32 2019 +0000

    Resolved merge conflict by incorporating both suggestions.

commit ea29e4930c1e545d01e18aeb62b9c350f16eae09
Author: Lingyun Zhao <33519183+lingyun1010@users.noreply.github.com>
Date:   Mon Mar 4 14:57:24 2019 +0000

    Feature #162304903 remove facets shared by all results (#14)

    * Test real data

    * Reformat FilterSidebar by pass cleaned facetGroups

    * Clean up code style

    * Clean checkbox facetGroups and clean up codes

    * Reformat the FilterSidebar with tidy facet groups

    * Reformat container and pass results to sidebar

    * Clean up code style

    * Add required props in test

    * Remove unused commands

    * Update snapshots

    * Update testutils with markerGenes and species

    * Add a test for hiding a facet shared by all result

    * Clean up code

    * Add a filter method remove facets shared by all

    * Clean up codes, delete old methods

    * Remove unused props

    * Revert "Remove unused props"

    This reverts commit f4f3042895711117220e3e164a9cf93685757597.

    * Disable facets after intial search results

    * Remove useless props and define propTypes

    * Assign clearedFacets in constructor and clean code

    * Reorganise demo pages and update experiments results/header components

    * Fix linter warnings/errors

    * Trim and update dependencies

    * Fix typo on CheckboxOption.propTypes

    * Fix test environment for fetch

    * Remove facet markerGenes in TestUtils; move common facet to test data

    * Remove closure for facet-trimming, we’re only running this once

    * Add comment to see trimming of shared facets in action

* Remove conflict package-lock.json

* Create a new package-lock.json

* Revert "Create a new package-lock.json"

This reverts commit ca779a90c7c6f571ec0858b303ee20f3b13764c3.

* Update snapshot

* Tidy up demo pages

* Add package-lock

* 2.6.0

* 2.7.0

* Fix bugs on default sortTitle passed by props

* 2.7.1

* Update to latest dependencies

* 2.8.0

* Assign selected facets as an empty array if null (#15)

* Assign selected facets as an empty array if null

* Update depdendencies and fix snapshot tests

Co-authored-by: amunozpomer <amunoz@ebi.ac.uk>

* Org-scope/rename packages

* 3.0.0

* Fix export

* 3.0.1

* Fix org name :(

* Fix lint issue

* Remove packaged fetch loader in favour of Atlas React Fetch Loader

* Require props without default values

* Reorganise demo pages

* Update dependencies

Co-authored-by: Monica Jianu <monica@ebi.ac.uk>
Co-authored-by: Monica Jianu <monicajianu@users.noreply.github.com>
Co-authored-by: Haider Iqbal <haideri@ebi.ac.uk>
Co-authored-by: lingyun1010 <zhaolingyun1010@gmail.com>
Co-authored-by: Lingyun Zhao <33519183+lingyun1010@users.noreply.github.com>
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.

1 participant