From 7bbaaed218814f7aa7ced04aae21b9955eeaca0d Mon Sep 17 00:00:00 2001
From: Alek Perron <156684667+aperron-ferlab@users.noreply.github.com>
Date: Thu, 4 Apr 2024 16:12:35 -0400
Subject: [PATCH] feat: CQDG-659 Implement Landing Page V2 (#262)
* feat: CQDG-659 implement landing page V2
---
cypress/e2e/Consultation/Landing.cy.ts | 121 +++++++++++
cypress/e2e/Consultation/Login.cy.ts | 27 ---
cypress/e2e/Consultation/PageStudy.cy.ts | 4 +-
.../e2e/Facettes/PageDataExploration.cy.ts | 6 +-
cypress/e2e/Facettes/PageStudies.cy.ts | 6 +-
cypress/e2e/Facettes/PageVariants.cy.ts | 2 +-
cypress/e2e/Navigation/Logout.cy.ts | 43 ++--
package-lock.json | 14 +-
package.json | 2 +-
src/App.tsx | 6 +-
src/components/Icons/CQDGLogoFull.tsx | 76 +++----
.../Layout/SideImage/index.module.scss | 70 -------
src/components/Layout/SideImage/index.tsx | 51 -----
src/components/assets/FCI.svg | 87 --------
src/components/assets/FRQS.svg | 9 -
src/components/assets/RARE.png | Bin 0 -> 13552 bytes
src/components/assets/background.svg | 195 ++++++++++++++++++
src/components/assets/cartagene.png | Bin 0 -> 160786 bytes
src/components/assets/genome_qc.svg | 25 ---
src/components/assets/logos-FCI-color.svg | 87 ++++++++
src/components/assets/logos-FRQS-color.png | Bin 0 -> 11701 bytes
src/components/assets/logos-chusj-color.svg | 12 ++
src/components/assets/logos-ferlab-color.svg | 19 ++
src/components/assets/logos-genome_qc.svg | 14 ++
src/components/assets/sd4h.png | Bin 0 -> 5316 bytes
src/components/assets/side-img-svg.svg | 43 ----
src/locales/en.ts | 70 +++++++
src/locales/fr.ts | 75 ++++++-
src/services/api/arranger/models.ts | 2 +
src/style/themes/cqdg/antd/buttons.less | 58 +++++-
src/utils/translation.ts | 1 +
.../BottomBanner/BannerItem/index.module.scss | 15 ++
.../Login/BottomBanner/BannerItem/index.tsx | 36 ++++
.../Login/BottomBanner/index.module.scss | 37 ++++
src/views/Login/BottomBanner/index.tsx | 31 +++
src/views/Login/Cards/Rare/index.module.scss | 30 +++
src/views/Login/Cards/Rare/index.tsx | 16 ++
.../Login/Cards/SecureData/index.module.scss | 38 ++++
src/views/Login/Cards/SecureData/index.tsx | 30 +++
src/views/Login/Cards/Stats/index.module.scss | 16 ++
src/views/Login/Cards/Stats/index.tsx | 81 ++++++++
.../Login/Cards/Variants/index.module.scss | 25 +++
src/views/Login/Cards/Variants/index.tsx | 55 +++++
src/views/Login/Cards/index.module.scss | 59 ++++++
src/views/Login/Cards/index.tsx | 19 ++
src/views/Login/Footer/index.module.scss | 50 +++++
src/views/Login/Footer/index.tsx | 31 +++
.../Login/Studies/Carousel/index.module.scss | 53 +++++
src/views/Login/Studies/Carousel/index.tsx | 44 ++++
.../Login/Studies/Summary/index.module.scss | 25 +++
src/views/Login/Studies/Summary/index.tsx | 27 +++
src/views/Login/Studies/index.module.scss | 34 +++
src/views/Login/Studies/index.tsx | 16 ++
src/views/Login/TextIcon/index.module.scss | 120 +++++++++++
src/views/Login/TextIcon/index.tsx | 32 +++
src/views/Login/TopBanner/index.module.scss | 68 ++++++
src/views/Login/TopBanner/index.tsx | 83 ++++++++
src/views/Login/index.module.scss | 174 +---------------
src/views/Login/index.tsx | 95 ++-------
59 files changed, 1816 insertions(+), 649 deletions(-)
create mode 100644 cypress/e2e/Consultation/Landing.cy.ts
delete mode 100644 cypress/e2e/Consultation/Login.cy.ts
delete mode 100644 src/components/Layout/SideImage/index.module.scss
delete mode 100644 src/components/Layout/SideImage/index.tsx
delete mode 100644 src/components/assets/FCI.svg
delete mode 100644 src/components/assets/FRQS.svg
create mode 100644 src/components/assets/RARE.png
create mode 100644 src/components/assets/background.svg
create mode 100644 src/components/assets/cartagene.png
delete mode 100644 src/components/assets/genome_qc.svg
create mode 100644 src/components/assets/logos-FCI-color.svg
create mode 100644 src/components/assets/logos-FRQS-color.png
create mode 100644 src/components/assets/logos-chusj-color.svg
create mode 100644 src/components/assets/logos-ferlab-color.svg
create mode 100644 src/components/assets/logos-genome_qc.svg
create mode 100644 src/components/assets/sd4h.png
delete mode 100644 src/components/assets/side-img-svg.svg
create mode 100644 src/views/Login/BottomBanner/BannerItem/index.module.scss
create mode 100644 src/views/Login/BottomBanner/BannerItem/index.tsx
create mode 100644 src/views/Login/BottomBanner/index.module.scss
create mode 100644 src/views/Login/BottomBanner/index.tsx
create mode 100644 src/views/Login/Cards/Rare/index.module.scss
create mode 100644 src/views/Login/Cards/Rare/index.tsx
create mode 100644 src/views/Login/Cards/SecureData/index.module.scss
create mode 100644 src/views/Login/Cards/SecureData/index.tsx
create mode 100644 src/views/Login/Cards/Stats/index.module.scss
create mode 100644 src/views/Login/Cards/Stats/index.tsx
create mode 100644 src/views/Login/Cards/Variants/index.module.scss
create mode 100644 src/views/Login/Cards/Variants/index.tsx
create mode 100644 src/views/Login/Cards/index.module.scss
create mode 100644 src/views/Login/Cards/index.tsx
create mode 100644 src/views/Login/Footer/index.module.scss
create mode 100644 src/views/Login/Footer/index.tsx
create mode 100644 src/views/Login/Studies/Carousel/index.module.scss
create mode 100644 src/views/Login/Studies/Carousel/index.tsx
create mode 100644 src/views/Login/Studies/Summary/index.module.scss
create mode 100644 src/views/Login/Studies/Summary/index.tsx
create mode 100644 src/views/Login/Studies/index.module.scss
create mode 100644 src/views/Login/Studies/index.tsx
create mode 100644 src/views/Login/TextIcon/index.module.scss
create mode 100644 src/views/Login/TextIcon/index.tsx
create mode 100644 src/views/Login/TopBanner/index.module.scss
create mode 100644 src/views/Login/TopBanner/index.tsx
diff --git a/cypress/e2e/Consultation/Landing.cy.ts b/cypress/e2e/Consultation/Landing.cy.ts
new file mode 100644
index 00000000..789cff1e
--- /dev/null
+++ b/cypress/e2e/Consultation/Landing.cy.ts
@@ -0,0 +1,121 @@
+///
+import '../../support/commands';
+
+beforeEach(() => {
+ cy.visit('/');
+});
+
+describe('Page Landing - Vérifier les informations affichées', () => {
+ it('Section Upper banner', () => {
+ cy.get('[class*="TopBanner_logo"]').should('exist');
+ cy.get('[class*="TopBanner_title"]').contains(/(Portail de données|Data Portal)/).should('exist');
+ cy.get('[class*="TopBanner_description"]').contains(/(Le Centre québécois de données génomiques est une plateforme d'harmonisation et de diffusion des données génomiques générées par les études cliniques et de recherche du Québec.|The Quebec Genomic Data Center is a data harmonization and sharing platform for genomic datasets produced by Quebec's clinical and research studies.)/).should('exist');
+ cy.get('[data-cy="Login"]').contains(/(Connexion|Login)/).should('exist');
+ cy.get('[data-cy="Signup"]').contains(/(Créer compte|Sign up)/).should('exist');
+ });
+
+ it('Section Studies Side Panel Tile', () => {
+ cy.get('[class*="Studies_container"] [class*="Summary"] [id="study"]').should('exist');
+ cy.get('[class*="Studies_container"] [class*="Summary"] [class*="TextIcon_layout"]').contains('3').should('exist');
+ cy.get('[class*="Studies_container"] [class*="Summary"] [class*="TextIcon_layout"]').contains('Studies').should('exist');
+ cy.get('[class*="Studies_container"] [class*="Summary"]').contains(/(Explorez les données harmonisées d’études dans les populations pédiatriques et adultes.|Explore harmonized data from studies in both pediatric and adult populations.)/).should('exist');
+ });
+
+ it('Section Studies Right Panel Tile', () => {
+ cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_dots"]').should('exist');
+
+ cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_title"] [src*="/static/media/cartagene."]').should('exist');
+ cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_subTitle"]').contains('CARTaGENE').should('exist');
+ cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_description"]').contains(/(CARTaGENE est une plateforme publique de recherche du CHU Sainte-Justine créée pour accélérer la recherche en santé. CARTaGENE est constitué à la fois d'échantillons biologiques et de données de santé provenant de 43 000 résidents du Québec âgés de 40 à 69 ans.|CARTaGENE is a public research platform of the CHU Sainte-Justine created to accelerate health research. CARTaGENE consists of both biological samples and health data from 43,000 Quebec residents aged between 40 to 69 years.)/).should('exist');
+ cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_description"]').contains(/(Le jeu de données présentement hébergé au CQDG comprend les données de séquençage du génome entier \(WGS\) de 2 179 individus.|The dataset currently available in the CQDG contains whole genome sequencing \(WGS\) data for 2,179 individuals.)/).should('exist');
+
+ cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_title"]').contains('DEE').should('exist');
+ cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_subTitle"]').contains(/(Investigation des causes génétiques des encéphalopathies épileptogènes|Investigating the genetic causes of epileptogenic encephalopathies)/).should('exist');
+ cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_description"]').contains(/(Étude de séquençage du génome entier \(WGS\) chez des enfants atteints d'encéphalopathies épileptogènes.|Whole Genome Sequencing \(WGS\) study in children with epileptogenic encephalopathies.)/).should('exist');
+ cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_description"]').contains(/(Le jeu de données présentement hébergé au CQDG comprend les données de séquençage du génome entier de 588 individus appartenant à 196 familles.|The dataset currently available in the CQDG contains whole genome sequencing data for 588 individuals belonging to 196 families.)/).should('exist');
+
+ cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_title"]').contains('BACQ').should('exist');
+ cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_subTitle"]').contains(/(Biobanque des anomalies congénitales au Québec|Quebec congenital malformation biobank)/).should('exist');
+ cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_description"]').contains(/(Biobanque de cas affectés bien caractérisés ainsi que de leurs parents permettant de mener des études de génétique moléculaire pour identifier les gènes associés à ces malformations.|Biobank of well-characterized affected cases as well as their parents allowing molecular genetic studies to be carried out to identify the genes associated with these malformations.)/).should('exist');
+ cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_description"]').contains(/(Le jeu de données présentement hébergé au CQDG comprend les données de séquençage de l’exome entier \(WXS\) de 386 individus appartenant à 124 familles.|The dataset currently available in the CQDG contains whole exome sequencing \(WXS\) data for 386 individuals belonging to 124 families.)/).should('exist');
+
+ cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_title"]').contains('PRAGMatIQ').should('exist');
+ cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_subTitle"]').contains(/(Pratique rapide de la génomique pédiatrique au Québec|Applying rapid pediatric genomics in Quebec)/).should('exist');
+ cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_description"]').contains(/(L'objectif du projet est d'offrir un séquençage clinique rapide du génome entier \(WGS\) à tous les nouveau-nés et nourrissons gravement malades qui pourraient bénéficier de ce test au Québec.|The objective of the project is to offer rapid clinical Whole Genome Sequencing \(WGS\) to all critically ill newborns and infants who could benefit from this test in Quebec.)/).should('exist');
+ cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_description"]').contains(/(Les données de 257 individus ont été soumises au CQDG. Le jeu de données présentement hébergé au CQDG comprend les données de séquençage du génome entier de 110 individus appartenant à 38 familles.|Data for 257 individuals has been submitted to the CQDG. The dataset currently available in the CQDG contains whole genome sequencing data for 110 individuals belonging to 38 families.)/).should('exist');
+
+ cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_title"]').contains('NeuroDev').should('exist');
+ cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_subTitle"]').contains(/(Troubles du neuro-développement|Neurodevelopmental disorders)/).should('exist');
+ cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_description"]').contains(/(L'objectif principal de ce projet est de constituer une banque d'échantillons et de données provenant d'enfants et d'adultes atteints d'un retard global de développement, d'épilepsie et\/ou de malformations et de membres de leur famille pour alimenter divers projets de recherche qui visent à identifier les gènes impliqués dans ces pathologies.|The main objective of this project is to constitute a bank of samples and data from children and adults with global developmental delay, epilepsy and\/or malformations and members of their family to supply various research projects which aim to identify the genes involved in these conditions.)/).should('exist');
+ cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_description"]').contains(/(Les données de 382 individus ont été soumises au CQDG. Le jeu de données présentement hébergé au CQDG comprend les données de séquençage du génome entier de 67 individus appartenant à 22 familles.|Data for 382 individuals has been submitted to the CQDG. The dataset currently available in the CQDG contains whole genome sequencing data for 67 individuals belonging to 22 families.)/).should('exist');
+ });
+
+ it('Section Released Data Stats', () => {
+ cy.get('[class*="Stats_wrapper"] [class*="ant-card-head"]').contains(/(Édition|Release) V1/).should('exist');
+
+ cy.get('[class*="Stats_wrapper"] [class*="ant-card-body"] [class*="TextIcon_layout"]').eq(0).find('[id="study"]').should('exist');
+ cy.get('[class*="Stats_wrapper"] [class*="ant-card-body"] [class*="TextIcon_layout"]').eq(0).contains('3').should('exist');
+ cy.get('[class*="Stats_wrapper"] [class*="ant-card-body"] [class*="TextIcon_layout"]').eq(0).contains(/(Études|Studies)/).should('exist');
+
+ cy.get('[class*="Stats_wrapper"] [class*="ant-card-body"] [class*="TextIcon_layout"]').eq(1).find('[id="participant"]').should('exist');
+ cy.get('[class*="Stats_wrapper"] [class*="ant-card-body"] [class*="TextIcon_layout"]').eq(1).contains('599').should('exist');
+ cy.get('[class*="Stats_wrapper"] [class*="ant-card-body"] [class*="TextIcon_layout"]').eq(1).contains('Participants').should('exist');
+
+ cy.get('[class*="Stats_wrapper"] [class*="ant-card-body"] [class*="TextIcon_layout"]').eq(2).find('[id="biospecimen"]').should('exist');
+ cy.get('[class*="Stats_wrapper"] [class*="ant-card-body"] [class*="TextIcon_layout"]').eq(2).contains('599').should('exist');
+ cy.get('[class*="Stats_wrapper"] [class*="ant-card-body"] [class*="TextIcon_layout"]').eq(2).contains(/Biosp(é|e)cimens/).should('exist');
+
+ cy.get('[class*="Stats_wrapper"] [class*="ant-card-body"] [class*="TextIcon_layout"]').eq(3).find('[id="file"]').should('exist');
+ cy.get('[class*="Stats_wrapper"] [class*="ant-card-body"] [class*="TextIcon_layout"]').eq(3).contains(/\.\d{1,2}(T|G)B/).should('exist');
+ cy.get('[class*="Stats_wrapper"] [class*="ant-card-body"] [class*="TextIcon_layout"]').eq(3).contains(/(Fichiers|Files)/).should('exist');
+
+ cy.get('[class*="Stats_wrapper"] [class*="ant-card-body"] [class*="TextIcon_layout"]').eq(4).find('[id="gene"]').should('exist');
+ cy.get('[class*="Stats_wrapper"] [class*="ant-card-body"] [class*="TextIcon_layout"]').eq(4).contains('599').should('exist');
+ cy.get('[class*="Stats_wrapper"] [class*="ant-card-body"] [class*="TextIcon_layout"]').eq(4).contains(/G(é|e)nomes/).should('exist');
+
+ cy.get('[class*="Stats_wrapper"] [class*="ant-card-body"] [class*="TextIcon_layout"]').eq(5).find('[id="exomes"]').should('exist');
+ cy.get('[class*="Stats_wrapper"] [class*="ant-card-body"] [class*="TextIcon_layout"]').eq(5).contains('0').should('exist');
+ cy.get('[class*="Stats_wrapper"] [class*="ant-card-body"] [class*="TextIcon_layout"]').eq(5).contains('Exomes').should('exist');
+ });
+
+ it('Section Rare QC', () => {
+ cy.get('[class*="Rare_container"] [src*="/static/media/RARE."]').should('exist');
+ cy.get('[class*="Rare_title"]').contains(/(Réseau pour Avancer la REcherche sur les maladies rares au Québec|Network to advance research on rare diseases in Quebec)/).should('exist');
+ cy.get('[class*="Rare_text"]').contains(/(Le CQDG est un fier partenaire du nouveau Réseau pour Avancer la REcherche sur les maladies rares au Québec \(RARE.Qc\) financé par le FRQS. RARE.Qc est un regroupement de plus 100 chercheurs et patients partenaires à travers le Québec, qui vise à transformer la recherche sur les maladies rares.|The CQDG is a proud partner of the new Réseau pour Avancer la REcherche sur les maladies rares au Québec \(Network to advance research on rare diseases in Quebec or RARE.Qc\) financed by the FRQS. RARE.Qc is a coalition of over 100 researchers and patient partners across Quebec, aiming to transform research on rare diseases, particularly by promoting collaboration and data sharing using the CQDG infrastructure.)/).should('exist');
+ });
+
+ it('Section SD4H', () => {
+ cy.get('[class*="SecureData_container"] [src*="data:image/png"]').should('exist');
+ cy.get('[class*="SecureData_title"]').contains(/(CQDG dans l’infonuage|CQDG in the Cloud)/).should('exist');
+ cy.get('[class*="SecureData_text"]').contains(/(Analysez les données du CQDG avec vos propres logiciels sur l’infrastructure infonuagique Secure Data for Health \(SD4H\). D’autres infonuages seront également intégrés au CQDG dans un avenir rapproché. Contactez-nous pour en savoir plus.|Analyse CQDG datasets with your own software using the Secure Data for Health \(SD4H\) cloud-based infrastructure. Other cloud providers will be integrated with CQDG in a near future. Contact us to learn more.)/).should('exist');
+ cy.get('[class*="SecureData_container"] [href="mailto:support@cqdg.ca"]').contains(/(Contactez-nous|Contact us)/).should('exist');
+ });
+
+ it('Section Variant Tile', () => {
+ cy.get('[class*="Variants_container"] [id="gene"]').should('exist');
+ cy.get('[class*="Variants_container"] [class*="TextIcon_title"]').contains(/\d{3}K/).should('exist');
+ cy.get('[class*="Variants_container"] [class*="TextIcon_subTitle"]').contains(/(Variants germinaux|Germline Variants)/).should('exist');
+ cy.get('[class*="Variants_container"] [class*="Variants_description"]').contains(/(Notre explorateur de variants offre des fonctions de recherche avancées. En quelques clics, vous pouvez explorer des millions de variants germinaux annotés issus des génomes et exomes des participants du CQDG.|Our variant explorer offers advanced searching capabilities. With just a few clicks, you can explore millions of annotated germline variants from genomes and exomes of the CQDG participants.)/).should('exist');
+ cy.get('[class*="Variants_container"] [type="button"]').contains(/(Explorer les données de variants|Explore variant data)/).should('exist');
+ });
+
+ it('Section Documentation Tiles', () => {
+ cy.get('[class*="BannerItem_container"]').eq(0).find('[id="information"]').should('exist');
+ cy.get('[class*="BannerItem_container"]').eq(0).find('[class*="TextIcon_title"]').contains(/(Centre de documentation|Documentation Center)/).should('exist');
+ cy.get('[class*="BannerItem_container"]').eq(0).contains(/(Pour savoir comment soumettre vos données, faire une demande d’accès ou pour consulter des guides d’utilisation du portail, visitez le centre de documentation.|To learn how to submit your data, request access to data, or to read user guides for the portal, visit the Documentation Center.)/).should('exist');
+ cy.get('[class*="BannerItem_container"]').eq(0).find('[href="https://docs.cqdg.ca/"]').contains(/(Centre de documentation|Documentation Center)/).should('exist');
+
+ cy.get('[class*="BannerItem_container"]').eq(1).find('[id="cloud-database"]').should('exist');
+ cy.get('[class*="BannerItem_container"]').eq(1).find('[class*="TextIcon_title"]').contains(/(Données à héberger \?|Need to Host Your Data\?)/).should('exist');
+ cy.get('[class*="BannerItem_container"]').eq(1).contains(/(Le CQDG offre aux chercheurs une plateforme idéale pour entreposer et diffuser les données génomiques générées par les études cliniques et de recherche.|The CQDG offers an ideal platform for researchers to store and share genomic data produced by clinical and research studies.)/).should('exist');
+ cy.get('[class*="BannerItem_container"]').eq(1).find('[href="https://docs.cqdg.ca/docs/comment-soumettre-vos-donn%C3%A9es"]').contains(/(Soumettre vos données|Submit your data)/).should('exist');
+ });
+
+ it('Section Lower banner', () => {
+ cy.get('[src*="/static/media/logos-genome_qc."]').should('exist');
+ cy.get('[src*="/static/media/logos-chusj-color."]').should('exist');
+ cy.get('[src*="/static/media/logos-FRQS-color."]').should('exist');
+ cy.get('[src*="/static/media/logos-FCI-color."]').should('exist');
+ cy.get('[src*="/static/media/logos-ferlab-color."]').should('exist');
+ });
+});
diff --git a/cypress/e2e/Consultation/Login.cy.ts b/cypress/e2e/Consultation/Login.cy.ts
deleted file mode 100644
index c530b310..00000000
--- a/cypress/e2e/Consultation/Login.cy.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-///
-import '../../support/commands';
-
-describe('Page Login', () => {
- it('Vérifier les informations affichées', () => {
- cy.visit('/');
-
- cy.contains(/(Données disponibles|Available Data)/).should('exist');
- cy.get('[data-cy="DataRelease_Study"]').contains(/\d{1}/).should('exist');
- cy.get('[data-cy="DataRelease_Study"]').contains(/(Étude|Studies)/).should('exist');
- cy.get('[data-cy="DataRelease_Participant"]').contains(/\d{1}/).should('exist');
- cy.get('[data-cy="DataRelease_Participant"]').contains('Participants').should('exist');
- cy.get('[data-cy="DataRelease_Biospecimen"]').contains(/\d{1}/).should('exist');
- cy.get('[data-cy="DataRelease_Biospecimen"]').contains(/Biosp(é|e)cimens/).should('exist');
- cy.get('[data-cy="DataRelease_File"]').contains(/\.\d{1,2}(T|G)B/).should('exist');
- cy.get('[data-cy="DataRelease_File"]').contains(/(Fichiers|Data Files)/).should('exist');
-
- cy.contains(/(Portail de données|Data Portal)/).should('exist');
- cy.contains(/(Le Centre québécois de données génomiques est une plateforme d'harmonisation et de diffusion des données génomiques générées par les études cliniques et de recherche du Québec.|The Quebec Genomic Data Center is a data harmonization and sharing platform for genomic datasets produced by Quebec's clinical and research studies.)/).should('exist');
- cy.get('[data-cy="Login"]').contains(/(Connexion|Login)/).should('exist');
- cy.get('[data-cy="Signup"]').contains(/(Créer un compte|Sign up)/).should('exist');
-
- cy.get('img[src*="/static/media/genome_qc."]').should('exist');
- cy.get('img[src*="/static/media/FRQS."]').should('exist');
- cy.get('img[src*="/static/media/FCI."]').should('exist');
- });
-});
diff --git a/cypress/e2e/Consultation/PageStudy.cy.ts b/cypress/e2e/Consultation/PageStudy.cy.ts
index 6299f99c..10ddd59b 100644
--- a/cypress/e2e/Consultation/PageStudy.cy.ts
+++ b/cypress/e2e/Consultation/PageStudy.cy.ts
@@ -105,10 +105,10 @@ describe('Page d\'une étude - Vérifier les informations affichées', () => {
cy.get('[id="dataset"]').eq(0).find('[id="dataset"]').eq(0).find('[class="ant-descriptions-item-label"]').eq(2).contains('Strategy').should('exist');
cy.get('[id="dataset"]').eq(0).find('[id="dataset"]').eq(0).find('[class="ant-descriptions-item-content"]').eq(2).contains('WGS').should('exist');
cy.get('[id="dataset"]').eq(0).find('[id="dataset"]').eq(0).find('[class="ant-descriptions-item-content"]').eq(2).find('[class*="StudyEntity_tag_"]').should('exist');
- cy.get('[id="dataset"]').eq(0).find('[id="dataset"]').eq(0).find('[class*="EntityDataset_rowCountCard"]').eq(0).find('svg[data-icon="user"]').should('exist');
+ cy.get('[id="dataset"]').eq(0).find('[id="dataset"]').eq(0).find('[class*="EntityDataset_rowCountCard"]').eq(0).find('g[id="family"]').should('exist');
cy.get('[id="dataset"]').eq(0).find('[id="dataset"]').eq(0).find('[class*="EntityDataset_rowCountCard"]').eq(0).contains(/^3$/).should('exist');
cy.get('[id="dataset"]').eq(0).find('[id="dataset"]').eq(0).find('[class*="EntityDataset_rowCountCard"]').eq(0).contains('Participants').should('exist');
- cy.get('[id="dataset"]').eq(0).find('[id="dataset"]').eq(0).find('[class*="EntityDataset_rowCountCard"]').eq(1).find('svg[data-icon="file-text"]').should('exist');
+ cy.get('[id="dataset"]').eq(0).find('[id="dataset"]').eq(0).find('[class*="EntityDataset_rowCountCard"]').eq(1).find('g[id="file"]').should('exist');
cy.get('[id="dataset"]').eq(0).find('[id="dataset"]').eq(0).find('[class*="EntityDataset_rowCountCard"]').eq(1).contains(/^12$/).should('exist');
cy.get('[id="dataset"]').eq(0).find('[id="dataset"]').eq(0).find('[class*="EntityDataset_rowCountCard"]').eq(1).contains('Files').should('exist');
});
diff --git a/cypress/e2e/Facettes/PageDataExploration.cy.ts b/cypress/e2e/Facettes/PageDataExploration.cy.ts
index b3d1e8f2..85b7d8b7 100644
--- a/cypress/e2e/Facettes/PageDataExploration.cy.ts
+++ b/cypress/e2e/Facettes/PageDataExploration.cy.ts
@@ -34,7 +34,7 @@ describe('Page Data Exploration (Participants) - Filtrer avec les facettes', ()
cy.get('[data-cy="Tag_PT0000010"]').should('exist');
cy.get('[class*="QueryBar_selected"]').find('[class*="QueryPill_field"]').contains('Participant ID').should('exist');
cy.get('[class*="QueryBar_selected"]').find('[class*="QueryValues_value"]').contains('PT0000010').should('exist');
- cy.validateTableResultsCount(/^1 Results$/);
+ cy.validateTableResultsCount(/^1 Result$/);
cy.get('[data-icon="close-circle"]').click({force: true});
cy.get('[data-cy="Tag_PT0000010"]').should('not.exist');
@@ -133,7 +133,7 @@ describe('Page Data Exploration (Biospecimens) - Filtrer avec les facettes', ()
cy.get('[data-cy="Tag_SR0000214"]').should('exist');
cy.get('[class*="QueryBar_selected"]').find('[class*="QueryPill_field"]').contains('Sample ID').should('exist');
cy.get('[class*="QueryBar_selected"]').find('[class*="QueryValues_value"]').contains('SR0000214').should('exist');
- cy.validateTableResultsCount(/^1 Results$/);
+ cy.validateTableResultsCount(/^1 Result$/);
cy.get('[data-icon="close-circle"]').click({force: true});
cy.get('[data-cy="Tag_SR0000214"]').should('not.exist');
@@ -184,7 +184,7 @@ describe('Page Data Exploration (Data Files) - Filtrer avec les facettes', () =>
cy.get('[data-cy="Tag_FI0000572"]').should('exist');
cy.get('[class*="QueryBar_selected"]').find('[class*="QueryPill_field"]').contains('File ID').should('exist');
cy.get('[class*="QueryBar_selected"]').find('[class*="QueryValues_value"]').contains('FI0000572').should('exist');
- cy.validateTableResultsCount(/^1 Results$/);
+ cy.validateTableResultsCount(/^1 Result$/);
cy.get('[data-icon="close-circle"]').click({force: true});
cy.get('[data-cy="Tag_FI0000572"]').should('not.exist');
diff --git a/cypress/e2e/Facettes/PageStudies.cy.ts b/cypress/e2e/Facettes/PageStudies.cy.ts
index 3444b52b..32ebe837 100644
--- a/cypress/e2e/Facettes/PageStudies.cy.ts
+++ b/cypress/e2e/Facettes/PageStudies.cy.ts
@@ -38,7 +38,7 @@ describe('Page des études - Filtrer avec les facettes', () => {
cy.get('[data-cy="Search_Dropdown"]').find('div[class*="ant-select-item"]').eq(0).click({force: true});
cy.get('[data-cy="Tag_STUDY1"]').should('exist');
- cy.validateTableResultsCount(/^1 Results$/);
+ cy.validateTableResultsCount(/^1 Result$/);
cy.get('[data-icon="close-circle"]').click({force: true});
cy.get('[data-cy="Tag_STUDY1"]').should('not.exist');
@@ -51,14 +51,14 @@ describe('Page des études - Filtrer avec les facettes', () => {
cy.get('[data-cy="Search_Dropdown"]').find('div[class*="ant-select-item"]').eq(0).click({force: true});
cy.get('[data-cy="Tag_T-DEE"]').should('exist');
- cy.validateTableResultsCount(/^1 Results$/);
+ cy.validateTableResultsCount(/^1 Result$/);
cy.get('[data-icon="close-circle"]').click({force: true});
cy.get('[data-cy="Tag_T-DEE"]').should('not.exist');
});
it('Domain - Rare Diseases', () => {
- cy.validateFacetFilter('Domain', 'Rare diseases', 'rare diseases', /^1 Results$/, false);
+ cy.validateFacetFilter('Domain', 'Rare diseases', 'rare diseases', /^1 Result$/, false);
cy.validateFacetRank(0, 'Domain');
});
diff --git a/cypress/e2e/Facettes/PageVariants.cy.ts b/cypress/e2e/Facettes/PageVariants.cy.ts
index d69c6f63..9798480f 100644
--- a/cypress/e2e/Facettes/PageVariants.cy.ts
+++ b/cypress/e2e/Facettes/PageVariants.cy.ts
@@ -61,7 +61,7 @@ describe('Page des variants (Variant) - Filtrer avec les facettes', () => {
cy.get('[data-cy="Tag_1-11846011-A-G"]').should('exist');
cy.get('[class*="QueryBar_selected"]').find('[class*="QueryPill_field"]').contains('Variant ID').should('exist');
cy.get('[class*="QueryBar_selected"]').find('[class*="QueryValues_value"]').contains('1-11846011-A-G').should('exist');
- cy.validateTableResultsCount(/^1 Results$/);
+ cy.validateTableResultsCount(/^1 Result$/);
cy.get('[data-icon="close-circle"]').click({force: true});
cy.get('[data-cy="Tag_1-11846011-A-G"]').should('not.exist');
diff --git a/cypress/e2e/Navigation/Logout.cy.ts b/cypress/e2e/Navigation/Logout.cy.ts
index 43d73d1a..2691838c 100644
--- a/cypress/e2e/Navigation/Logout.cy.ts
+++ b/cypress/e2e/Navigation/Logout.cy.ts
@@ -11,23 +11,30 @@ describe('Page Logout', () => {
it('Vérifier les informations affichées', () => {
cy.logout();
- cy.contains('Available Data').should('exist');
- cy.get('[data-cy="DataRelease_Study"]').contains(/\d{1}/).should('exist');
- cy.get('[data-cy="DataRelease_Study"]').contains('Stud').should('exist');
- cy.get('[data-cy="DataRelease_Participant"]').contains(/\d{1}/).should('exist');
- cy.get('[data-cy="DataRelease_Participant"]').contains('Participants').should('exist');
- cy.get('[data-cy="DataRelease_Biospecimen"]').contains(/\d{1}/).should('exist');
- cy.get('[data-cy="DataRelease_Biospecimen"]').contains('Biospecimens').should('exist');
- cy.get('[data-cy="DataRelease_File"]').contains(/\.\d{1,2}(T|G)B/).should('exist');
- cy.get('[data-cy="DataRelease_File"]').contains('Data Files').should('exist');
-
- cy.contains('Data Portal').should('exist');
- cy.contains('The Quebec Genomic Data Center is a data harmonization and sharing platform for genomic datasets produced by Quebec\'s clinical and research studies.').should('exist');
- cy.get('[data-cy="Login"]').contains('Login').should('exist');
- cy.get('[data-cy="Signup"]').contains('Sign up').should('exist');
-
- cy.get('img[src*="/static/media/genome_qc."]').should('exist');
- cy.get('img[src*="/static/media/FRQS."]').should('exist');
- cy.get('img[src*="/static/media/FCI."]').should('exist');
+ cy.get('[class*="TopBanner_title"]').contains(/(Portail de données|Data Portal)/).should('exist');
+ cy.get('[class*="Studies_container"] [class*="Summary"] [id="study"]').should('exist');
+ cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_dots"]').should('exist');
+ cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_title"] [src*="/static/media/cartagene."]').should('exist');
+ cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_title"]').contains('DEE').should('exist');
+ cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_title"]').contains('BACQ').should('exist');
+ cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_title"]').contains('PRAGMatIQ').should('exist');
+ cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_title"]').contains('NeuroDev').should('exist');
+ cy.get('[class*="Stats_wrapper"] [class*="ant-card-head"]').contains(/(Édition|Release)/).should('exist');
+ cy.get('[class*="Stats_wrapper"] [class*="ant-card-body"] [class*="TextIcon_layout"]').eq(0).find('[id="study"]').should('exist');
+ cy.get('[class*="Stats_wrapper"] [class*="ant-card-body"] [class*="TextIcon_layout"]').eq(1).find('[id="participant"]').should('exist');
+ cy.get('[class*="Stats_wrapper"] [class*="ant-card-body"] [class*="TextIcon_layout"]').eq(2).find('[id="biospecimen"]').should('exist');
+ cy.get('[class*="Stats_wrapper"] [class*="ant-card-body"] [class*="TextIcon_layout"]').eq(3).find('[id="file"]').should('exist');
+ cy.get('[class*="Stats_wrapper"] [class*="ant-card-body"] [class*="TextIcon_layout"]').eq(4).find('[id="gene"]').should('exist');
+ cy.get('[class*="Stats_wrapper"] [class*="ant-card-body"] [class*="TextIcon_layout"]').eq(5).find('[id="exomes"]').should('exist');
+ cy.get('[class*="Rare_container"] [src*="/static/media/RARE."]').should('exist');
+ cy.get('[class*="SecureData_container"] [src*="data:image/png"]').should('exist');
+ cy.get('[class*="Variants_container"] [id="gene"]').should('exist');
+ cy.get('[class*="BannerItem_container"]').eq(0).find('[id="information"]').should('exist');
+ cy.get('[class*="BannerItem_container"]').eq(1).find('[id="cloud-database"]').should('exist');
+ cy.get('[src*="/static/media/logos-genome_qc."]').should('exist');
+ cy.get('[src*="/static/media/logos-chusj-color."]').should('exist');
+ cy.get('[src*="/static/media/logos-FRQS-color."]').should('exist');
+ cy.get('[src*="/static/media/logos-FCI-color."]').should('exist');
+ cy.get('[src*="/static/media/logos-ferlab-color."]').should('exist');
});
});
diff --git a/package-lock.json b/package-lock.json
index 42a40a43..79d6cddc 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -12,7 +12,7 @@
"@apollo/client": "^3.7.11",
"@dnd-kit/core": "^4.0.3",
"@dnd-kit/sortable": "^5.1.0",
- "@ferlab/ui": "^8.2.2",
+ "@ferlab/ui": "^9.9.7",
"@loadable/component": "^5.15.2",
"@nivo/bar": "^0.84.0",
"@nivo/pie": "^0.84.0",
@@ -2888,9 +2888,9 @@
}
},
"node_modules/@ferlab/ui": {
- "version": "8.2.3",
- "resolved": "https://registry.npmjs.org/@ferlab/ui/-/ui-8.2.3.tgz",
- "integrity": "sha512-iBrFjYQaUxMeDe+rJzL2feeiDt1CsaOiIpaGW2UotdgPyKOKOPNSy7/q/cTNIJVrivT8a7L3hOeZTzlEiygpfQ==",
+ "version": "9.9.7",
+ "resolved": "https://registry.npmjs.org/@ferlab/ui/-/ui-9.9.7.tgz",
+ "integrity": "sha512-085MAfBLgl6vayaJcJwQSKXuCtcB4cYT3UBMOd6j++2qjtvpV+jxN/lzIHZK03tE6CjSAJKJMwzAt0NTptu8sA==",
"dependencies": {
"@ant-design/icons": "^4.7.0",
"@dnd-kit/core": "^4.0.3",
@@ -27429,9 +27429,9 @@
"version": "8.56.0"
},
"@ferlab/ui": {
- "version": "8.2.3",
- "resolved": "https://registry.npmjs.org/@ferlab/ui/-/ui-8.2.3.tgz",
- "integrity": "sha512-iBrFjYQaUxMeDe+rJzL2feeiDt1CsaOiIpaGW2UotdgPyKOKOPNSy7/q/cTNIJVrivT8a7L3hOeZTzlEiygpfQ==",
+ "version": "9.9.7",
+ "resolved": "https://registry.npmjs.org/@ferlab/ui/-/ui-9.9.7.tgz",
+ "integrity": "sha512-085MAfBLgl6vayaJcJwQSKXuCtcB4cYT3UBMOd6j++2qjtvpV+jxN/lzIHZK03tE6CjSAJKJMwzAt0NTptu8sA==",
"requires": {
"@ant-design/icons": "^4.7.0",
"@dnd-kit/core": "^4.0.3",
diff --git a/package.json b/package.json
index 9b94ff09..2c00b8fb 100644
--- a/package.json
+++ b/package.json
@@ -58,7 +58,7 @@
"@apollo/client": "^3.7.11",
"@dnd-kit/core": "^4.0.3",
"@dnd-kit/sortable": "^5.1.0",
- "@ferlab/ui": "^8.2.2",
+ "@ferlab/ui": "^9.9.7",
"@loadable/component": "^5.15.2",
"@nivo/bar": "^0.84.0",
"@nivo/pie": "^0.84.0",
diff --git a/src/App.tsx b/src/App.tsx
index e0c00552..4b3e1ae1 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -21,10 +21,8 @@ import ErrorPage from 'views/Error';
import Login from 'views/Login';
import { LANG } from 'common/constants';
-import MainSideImage from 'components/assets/side-img-svg.svg';
import ErrorBoundary from 'components/ErrorBoundary';
import PageLayout from 'components/Layout';
-import SideImageLayout from 'components/Layout/SideImage';
import Spinner from 'components/uiKit/Spinner';
import NotificationContextHolder from 'components/utils/NotificationContextHolder';
import { useLang } from 'store/global';
@@ -62,9 +60,7 @@ const App = () => {
-
-
-
+
@@ -330,139 +330,139 @@ const CQDGLogoFull = ({ width = 152, height = 52, className = '' }: IconProps) =
diff --git a/src/components/Layout/SideImage/index.module.scss b/src/components/Layout/SideImage/index.module.scss
deleted file mode 100644
index cbd16bb8..00000000
--- a/src/components/Layout/SideImage/index.module.scss
+++ /dev/null
@@ -1,70 +0,0 @@
-@import 'src/style/themes/cqdg/colors';
-
-.sideImagePageContainer {
- position: relative;
- height: 100vh;
- background-color: $gray-8;
-
- .contentWrapper {
- height: 100%;
- width: 100%;
- }
-
- .sideImageContainer {
- background: #ffffff;
- background-repeat: no-repeat;
- background-position: bottom;
- height: 100%;
- transition: width 0.2s ease;
- }
-
- .pageContent {
- flex: 1;
-
- &.alignCenter {
- justify-content: center;
- align-items: center;
- }
-
- &.light {
- background-color: $gray-2;
- }
- }
-
- .logoImage {
- width: 275px;
- position: absolute;
- margin: 20px;
- }
-}
-
-@media (min-width: 1351px) {
- .sideImageContainer {
- width: 575px;
- }
-}
-
-@media (max-width: 1350px) {
- .sideImageContainer {
- width: 435px;
- }
-}
-
-@media (max-width: 1180px) {
- .sideImageContainer {
- flex: 0;
- }
-
- .pageContent {
- display: flex;
-
- &.dark {
- background-size: cover;
- background-repeat: no-repeat;
- background-position: center;
- background: linear-gradient(0deg, transparentize($gray-8, 0.1), transparentize($gray-8, 0.1)),
- url(../../assets/side-img-svg.svg) bottom;
- background-size: cover;
- }
- }
-}
diff --git a/src/components/Layout/SideImage/index.tsx b/src/components/Layout/SideImage/index.tsx
deleted file mode 100644
index 0f2bf792..00000000
--- a/src/components/Layout/SideImage/index.tsx
+++ /dev/null
@@ -1,51 +0,0 @@
-import { ReactElement } from 'react';
-import { Row } from 'antd';
-import cx from 'classnames';
-import EnvVariables from 'helpers/EnvVariables';
-
-import style from 'components/Layout/SideImage/index.module.scss';
-
-interface OwnProps {
- logoSrc?: string;
- sideImgSrc?: string;
- alignCenter?: boolean;
- theme?: 'light' | 'dark';
- children: ReactElement;
-}
-
-const SideImageLayout = ({
- logoSrc,
- sideImgSrc,
- alignCenter = true,
- theme = 'dark',
- children,
-}: OwnProps) => (
-
- {logoSrc && (
-
-
-
- )}
-
-
-
- {children}
-
-
-
-);
-
-export default SideImageLayout;
diff --git a/src/components/assets/FCI.svg b/src/components/assets/FCI.svg
deleted file mode 100644
index 14d6a7e6..00000000
--- a/src/components/assets/FCI.svg
+++ /dev/null
@@ -1,87 +0,0 @@
-
diff --git a/src/components/assets/FRQS.svg b/src/components/assets/FRQS.svg
deleted file mode 100644
index 24586658..00000000
--- a/src/components/assets/FRQS.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
diff --git a/src/components/assets/RARE.png b/src/components/assets/RARE.png
new file mode 100644
index 0000000000000000000000000000000000000000..7ee7f158e21f3d9ad73556ad711f801c3588d718
GIT binary patch
literal 13552
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
OfdR$k#i~T~{r?Z8!a0`!
literal 0
HcmV?d00001
diff --git a/src/components/assets/background.svg b/src/components/assets/background.svg
new file mode 100644
index 00000000..68700eaa
--- /dev/null
+++ b/src/components/assets/background.svg
@@ -0,0 +1,195 @@
+
diff --git a/src/components/assets/cartagene.png b/src/components/assets/cartagene.png
new file mode 100644
index 0000000000000000000000000000000000000000..5a4671ebdbf979b73aafba811aecce69b39461b3
GIT binary patch
literal 160786
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