diff --git a/package.json b/package.json
index 6715a4dbf..7ec972756 100644
--- a/package.json
+++ b/package.json
@@ -13,6 +13,7 @@
"@storybook/react": "^5.3.18",
"@testing-library/jest-dom": "^5.10.0",
"@testing-library/react": "^10.2.1",
+ "@types/js-yaml": "^3.12.5",
"clean-webpack-plugin": "^3.0.0",
"coveralls": "^3.1.0",
"prettier": "^2.0.5",
@@ -39,6 +40,7 @@
"file-saver": "^2.0.2",
"filereader-stream": "^2.0.0",
"generate-password": "^1.5.1",
+ "js-yaml": "^3.14.0",
"jsoneditor": "^9.0.0",
"jsoneditor-react": "^3.0.0",
"jwt-decode": "^2.2.0",
@@ -51,6 +53,7 @@
"re-resizable": "^6.3.2",
"react": "^16.13.1",
"react-animated-slider": "^2.0.0",
+ "react-async-hook": "^3.6.2",
"react-dom": "^16.13.1",
"react-git-info": "^2.0.0",
"react-leaflet": "^2.7.0",
diff --git a/public/accueil.json b/public/accueil.json
deleted file mode 100644
index fe780e429..000000000
--- a/public/accueil.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "bienvenue": {
- "titre": "Bienvenue sur Onyxia",
- "image": { "url": "/images/spyrales.jpg", "titleColor": "gold" },
- "contenu": "Enjoy :)",
- "boutonQuestion": "Poser une question"
- },
- "cartes": [
- {
- "titre": "Essayer",
- "icone": "assignment_turned_in",
- "contenu": "En quelques clics, venez tester des applications simples ou complexes, sans autres pré-requis que votre seule imagination ! Ni téléchargement, ni installation, choisissez et démarrez vos essais !"
- },
- {
- "titre": "Collaborer",
- "icone": "share",
- "contenu": "Messagerie instantanée, éditeurs collaboratifs de tableurs et de documents texte, forge logicielle, service d'échange de fichiers... Autant d'outils pour travailler à plusieurs mains."
- },
- {
- "titre": "Proposer",
- "icone": "highlight",
- "contenu": "Sur la plateforme innovation, le changement c'est vous ! Vos idées, vos envies pour co-construire les services et décider ensemble de l'avenir de ce grand bac-à-sable."
- }
- ],
- "precautions": {
- "titre": "Précautions d'usage",
- "contenu": "La plateforme est un terrain d'exploration. Le parti pris est d'assumer une prise de risque plus importante pour laisser plus de liberté aux utilisateurs. Les garanties de service sont par conséquent limitées : n'y laissez surtout pas de données sensibles et si pour vous, la disponibilité des données ou la continuité de service est un impératif, alors il vous faut un service dit de production. S'il n'existe pas, donnez-nous les éléments pour motiver l'instruction technique."
- },
- "applications": []
-}
diff --git a/public/images/bullet-point-1.svg b/public/images/bullet-point-1.svg
new file mode 100644
index 000000000..9c18ff954
--- /dev/null
+++ b/public/images/bullet-point-1.svg
@@ -0,0 +1,12 @@
+
diff --git a/public/images/bullet-point-2.svg b/public/images/bullet-point-2.svg
new file mode 100644
index 000000000..098a93e66
--- /dev/null
+++ b/public/images/bullet-point-2.svg
@@ -0,0 +1,9 @@
+
diff --git a/public/images/bullet-point-3.svg b/public/images/bullet-point-3.svg
new file mode 100644
index 000000000..a27f438a2
--- /dev/null
+++ b/public/images/bullet-point-3.svg
@@ -0,0 +1,8 @@
+
diff --git a/public/images/dots.png b/public/images/dots.png
new file mode 100644
index 000000000..492bdf4ff
Binary files /dev/null and b/public/images/dots.png differ
diff --git a/public/images/dots.svg b/public/images/dots.svg
new file mode 100644
index 000000000..f6cd511dc
--- /dev/null
+++ b/public/images/dots.svg
@@ -0,0 +1,30 @@
+
+
+
diff --git a/public/images/git.svg b/public/images/git.svg
new file mode 100644
index 000000000..2e42bc7d4
--- /dev/null
+++ b/public/images/git.svg
@@ -0,0 +1,15 @@
+
+
+
+
diff --git a/public/images/home.svg b/public/images/home.svg
new file mode 100644
index 000000000..fe5d595da
--- /dev/null
+++ b/public/images/home.svg
@@ -0,0 +1,28 @@
+
diff --git a/public/images/insee_fr_lab.png b/public/images/insee_fr_lab.png
new file mode 100644
index 000000000..1bd1010f0
Binary files /dev/null and b/public/images/insee_fr_lab.png differ
diff --git a/public/images/jupyter_logo.svg b/public/images/jupyter_logo.svg
new file mode 100644
index 000000000..ab2550874
--- /dev/null
+++ b/public/images/jupyter_logo.svg
@@ -0,0 +1,90 @@
+
diff --git a/public/images/r.svg b/public/images/r.svg
new file mode 100644
index 000000000..097e83e4f
--- /dev/null
+++ b/public/images/r.svg
@@ -0,0 +1,14 @@
+
\ No newline at end of file
diff --git a/public/images/spyrales.jpg b/public/images/spyrales.jpg
deleted file mode 100644
index d921f7a61..000000000
Binary files a/public/images/spyrales.jpg and /dev/null differ
diff --git a/public/pages-content/home.yaml b/public/pages-content/home.yaml
new file mode 100644
index 000000000..cbbea3fd3
--- /dev/null
+++ b/public/pages-content/home.yaml
@@ -0,0 +1,64 @@
+---
+hero:
+ smallerText: Welcome to the Onyxia Datalab !
+ image: "/images/dots.svg"
+ biggerText: |
+ This homepage can be customized by editing the public/pages-content/home.yaml file or overriding the HOMEPAGE_URL environment variable.
+ button:
+ url: "/visite-guidee"
+ label: Start
+papers:
+- title: On-demand datascience services
+ image: "/images/bullet-point-1.svg"
+ button:
+ url: "/my-lab/catalogue"
+ label: Browse catalog
+ body: |
+ Analyze data, run distributed calculations and more !
+ Use as much computing power as you need.
+- title: An opensource project with a growing community
+ image: "/images/bullet-point-2.svg"
+ button:
+ url: "https://github.com/inseefrlab/onyxia-ui"
+ label: View on github
+ body: |
+ Feel free to contribute, report bugs or ask for help !
+- title: Datastorage made easy
+ image: "/images/bullet-point-3.svg"
+ button:
+ url: "/mes-fichiers"
+ label: Browse my files
+ body: |
+ Easily access your data from either Onyxia or programmatically using S3
+project_history:
+ smallerText: About Onyxia
+ image: "/images/insee_fr_lab.png"
+ biggerText: |
+ Onyxia is a free and open-source project which started at Insee (French National Statistical Institute).
+ Onyxia can be installed on any Kubernetes cluster.
+ button:
+ url: "https://github.com/InseeFrLab"
+ label: View on github
+service_highlight:
+- title: RStudio
+ body: |
+ RStudio is the reference IDE for R programming.
+ image: "/images/r.svg"
+ button:
+ url: "/my-lab/catalogue/inseefrlab-datascience/rstudio"
+ label: Discover
+- title: Jupyter
+ body: |
+ Jupyter notebooks let you code, run and share Python and R code directly from your web browser.
+ image: "/images/jupyter_logo.svg"
+ button:
+ url: "/my-lab/catalogue/inseefrlab-datascience/jupyter"
+ label: Discover
+warning:
+ title: Disclaimer
+ message: |
+ This is a demo instance.
+ You should not use it for anything other than testing Onyxia and experimenting.
+ Only open datasets are allowed.
+ Data and services can be wiped at any moment.
+
diff --git a/src/js/components/accueil/accueil-async.js b/src/js/components/accueil/accueil-async.js
deleted file mode 100644
index 020ff711d..000000000
--- a/src/js/components/accueil/accueil-async.js
+++ /dev/null
@@ -1,11 +0,0 @@
-import React, { Suspense, lazy } from 'react';
-import Loader from 'js/components/commons/loader';
-const OngletContent = lazy(() => import('./accueil.component'));
-
-const AsyncAccueil = (props) => (
- }>
-
-
-);
-
-export default AsyncAccueil;
diff --git a/src/js/components/accueil/accueil.component.js b/src/js/components/accueil/accueil.component.js
deleted file mode 100644
index bfe62857f..000000000
--- a/src/js/components/accueil/accueil.component.js
+++ /dev/null
@@ -1,171 +0,0 @@
-import React from 'react';
-import Typography from '@material-ui/core/Typography';
-import { Link } from 'react-router-dom';
-import { Avatar, Card, CardContent, Paper } from '@material-ui/core/';
-import { CardHeader, Grid, Icon } from '@material-ui/core/';
-import Button from '@material-ui/core/Button';
-import D from 'js/i18n';
-import { wrapPromise, axiosURL } from 'js/utils';
-// import Chrismas from "js/components/commons/chrismas";
-import './accueil.scss';
-import conf from './../../configuration';
-
-const resource = wrapPromise(
- axiosURL(
- conf.CONTENT.HOMEPAGE_URL
- ? conf.CONTENT.HOMEPAGE_URL
- : `${window.location.origin}/accueil.json`
- )
-);
-
-const Accueil = () => {
- const { bienvenue, cartes, precautions, applications } = resource.read();
- const imgTitleColor =
- (bienvenue.image && bienvenue.image.titleColor) || 'snow';
- return (
- <>
- {/* */}
-