Compare commits

...

3 Commits

Author SHA1 Message Date
llaniau c71fe2b452 Inscription tel 2021-02-24 15:41:44 +01:00
llaniau ee45ef810b Correction de bugs 2021-02-24 14:01:30 +01:00
llaniau 63bd801281 retour de recette et page accueil 2021-02-22 18:01:33 +01:00
8 changed files with 403 additions and 64 deletions
+16 -14
View File
@@ -650,20 +650,7 @@ class Answer extends Component {
</Dialog>
<TextField
name="lastname"
required
id="outlined-required"
label="Nom"
className={classes.textField}
classes={{ root: classes.rootTextfield }}
variant="outlined"
value={this.state.lastname}
onChange={this.handleChange}
error={!!_.isEmpty(this.state.lastname)}
helperText={!!_.isEmpty(this.state.lastname) && "Veuillez saisir votre nom"}
required
/>
<TextField
name="firstname"
@@ -679,6 +666,21 @@ class Answer extends Component {
helperText={!!_.isEmpty(this.state.firstname) && "Veuillez saisir votre prénom"}
/>
<TextField
name="lastname"
required
id="outlined-required"
label="Nom"
className={classes.textField}
classes={{ root: classes.rootTextfield }}
variant="outlined"
value={this.state.lastname}
onChange={this.handleChange}
error={!!_.isEmpty(this.state.lastname)}
helperText={!!_.isEmpty(this.state.lastname) && "Veuillez saisir votre nom"}
required
/>
<div
className={classes.conteneurGoogle}
classes={{ root: classes.rootTextfield }}
@@ -0,0 +1,246 @@
import Link from 'next/link'
import { withStyles } from '@material-ui/core/styles'
import { Typography } from '@material-ui/core';
import { Fragment } from 'react';
import NewsLetterRegistration from './NewsLetterRegistration'
import dynamic from 'next/dynamic'
import Button from '@material-ui/core/Button'
import getConfig from 'next/config'
const { publicRuntimeConfig } = getConfig();
const styles = theme => ({
root: {
display: 'flex',
flexDirection: 'column',
backgroundColor: "#1E2327",
[theme.breakpoints.up('md')]: {
display: 'flex',
flexDirection: 'row',
alignItems: 'flex-start',
justifyContent: 'space-around',
backgroundColor: "#1E2327",
padding: theme.spacing(10, 18),
},
'& a': {
textDecoration: 'none',
color:"#fff"
},
},
container: {
display: 'flex',
flexDirection: 'column',
alignItems: 'flex-start',
padding: theme.spacing(0, 5),
paddingBottom: theme.spacing(3.5),
'&:first-child': {
paddingTop: theme.spacing(4),
},
[theme.breakpoints.up('md')]: {
padding: 0,
'&:first-child': {
paddingTop: 0,
},
},
},
containerRegion: {
display: 'flex',
flexDirection: 'column',
alignItems: 'center',
backgroundColor: theme.palette.secondary.main,
padding: theme.spacing(3),
[theme.breakpoints.up('md')]: {
padding: theme.spacing(8, 0),
},
},
titleContainer: {
color: "#fff",
fontSize: '1.5em',
fontFamily: '"Roboto", "Helvetica", "Arial", "sans-serif"',
fontWeight: '600',
[theme.breakpoints.up('md')]: {
fontSize: '1.2em',
paddingBottom: theme.spacing(2),
},
},
textContainer: {
fontWeight: '300',
fontSize: '0.9em',
[theme.breakpoints.up('md')]: {
fontWeight: '300',
fontSize: '0.8em',
},
},
textContainerRegion: {
fontWeight: '300',
fontSize: '0.9em',
color: theme.palette.primary.dark,
},
footerLogo: {
width: '15vw',
[theme.breakpoints.up('md')]: {
width: '4vw',
},
},
footerLogoTT: {
width: '70%',
[theme.breakpoints.up('md')]: {
paddingBottom: theme.spacing(1),
width: '100%'
},
},
containerReactApp: {
display: 'flex',
flexDirection: 'column',
alignItems: 'center',
justifyContent: 'space-between',
height: 'auto',
paddingTop: theme.spacing(4),
backgroundColor: "#000",
[theme.breakpoints.down('xs')]: {
height: '100vh',
},
[theme.breakpoints.up('md')]: {
flexDirection: 'row',
alignItems: 'center',
justifyContent: 'space-around',
height: '35vh',
padding: theme.spacing(6, 1),
position: 'relative',
},
},
titleReactApp: {
fontFamily: '"Roboto", "Helvetica", "Arial", "sans-serif"',
fontSize: '1.5em',
fontWeight: '600',
paddingTop: theme.spacing(4),
paddingLeft: theme.spacing(4),
paddingRight: theme.spacing(4),
[theme.breakpoints.up('md')]: {
order: 1,
width: '20%',
textAlign: 'left',
},
},
buttonReactApp: {
textTransform: 'inherit',
margin: theme.spacing(0, 8),
padding: theme.spacing(1.2, 2),
[theme.breakpoints.up('md')]: {
order: 3,
margin: 'inherit',
marginRight: '5vw',
},
},
imageReactApp: {
width: '100%',
[theme.breakpoints.up('sm')]: {
width: 'auto',
},
[theme.breakpoints.up('md')]: {
width: '25%',
order: 2,
position: 'absolute',
bottom: 0,
},
},
containerNewsletter: {
display: 'flex',
alignItems: 'center',
justifyContent: 'center',
padding: theme.spacing(6, 4),
},
version:{
marginTop: '15px',
fontSize: '0.7em',
fontWeight: '300',
}
});
function Footer(props) {
const { classes } = props;
return (
<div>
<section className={classes.containerNewsletter}>
<NewsLetterRegistration />
</section>
<div className={classes.root}>
<section className={classes.container}>
<img alt="talents-tube" src='/static/images/logos/TalentsTube_logo-blanc.svg' className={classes.footerLogoTT} />
</section>
<section className={classes.container}>
<Typography color="secondary" component="p" className={classes.titleContainer}>
Informations
</Typography>
<Link href="/Cgu" >
<a>
<Typography gutterBottom color="secondary" component="p" className={classes.textContainer}>
CGU
</Typography>
</a>
</Link>
<Link href="/MentionsLegales" >
<a>
<Typography gutterBottom color="secondary" component="p" className={classes.textContainer}>
Mentions légales
</Typography>
</a>
</Link>
<Link href="/Confidentialite" >
<a>
<Typography gutterBottom color="secondary" component="p" className={classes.textContainer}>
Politique de confidentialité et Protection <br />des données
</Typography>
</a>
</Link>
<Link href="" >
<a href="https://blog.talentstube.com/contact" target="_blank">
<Typography gutterBottom color="secondary" component="p" className={classes.textContainer}>
Contact
</Typography>
</a>
</Link>
</section>
<section className={classes.container}>
<Typography color="secondary" component="p" className={classes.titleContainer}>
Rencontrons-nous
</Typography>
<Typography gutterBottom color="secondary" component="p" className={classes.textContainer}>
3, rue Louis de Broglie
</Typography>
<Typography gutterBottom color="secondary" component="p" className={classes.textContainer}>
56 000 Vannes
</Typography>
<Typography gutterBottom component="p" className={classes.textContainer}>
<a href="tel:+33230050631" >02.30.05.06.31 </a>
</Typography>
{/* <Typography gutterBottom color="secondary" component="p" className={classes.textContainer}>
contact@talentstube.com
</Typography> */}
</section>
</div>
<section className={classes.containerRegion}>
<Typography gutterBottom component="p" className={classes.textContainerRegion} align="center" >
Entreprise soutenue par
</Typography>
<a href="https://www.bretagne.bzh/" target="_blank" className={classes.darkMenuItem} rel="noopener">
<img alt="Région Bretagne" src='/static/images/logos/Logo-region.svg' className={classes.footerLogo} />
</a>
<Typography className={classes.version} align="center" >
{publicRuntimeConfig.version}
</Typography>
</section>
</div>
);
}
export default withStyles(styles)(Footer)
+32 -14
View File
@@ -108,6 +108,7 @@ class Register extends React.Component {
data: {
firstname: '',
lastname: '',
phone: '',
email: '',
password: '',
checkNewsletter: false,
@@ -118,7 +119,9 @@ class Register extends React.Component {
email:null,
password:null,
firstname:null,
phone:null,
lastname:null,
phone:null,
checkCGU:null
},
loading: false,
@@ -196,19 +199,7 @@ class Register extends React.Component {
<form className={classes.form}>
<TextField
className={classes.champ}
value={data.lastname}
onChange={this.onChange}
id="nom"
name="lastname"
label="Nom"
margin="normal"
variant="outlined"
required
error={!!errors.lastname}
helperText={!!errors.lastname && "Veuillez saisir votre nom."}
/>
<TextField
value={data.firstname}
onChange={this.onChange}
@@ -222,6 +213,33 @@ class Register extends React.Component {
helperText={!!errors.firstname && "Veuillez saisir votre prénom."}
/>
<TextField
className={classes.champ}
value={data.lastname}
onChange={this.onChange}
id="nom"
name="lastname"
label="Nom"
margin="normal"
variant="outlined"
required
error={!!errors.lastname}
helperText={!!errors.lastname && "Veuillez saisir votre nom."}
/>
<TextField
className={classes.champ}
value={data.phone}
onChange={this.onChange}
id="telephone"
name="phone"
label="Téléphone"
margin="normal"
variant="outlined"
/>
<TextField
value={data.email}
onChange={this.onChange}
@@ -233,7 +251,6 @@ class Register extends React.Component {
variant="outlined"
required
error={!!errors.email || !!erreurs}
autoComplete="username email"
helperText={!!errors.email ? "Saisissez une adresse e-mail valide." : !!erreurs && erreurs}
/>
@@ -335,6 +352,7 @@ function mapStateToProps(state) {
return {
loading: !!state.user.loading,
errors: !!state.user.errors ?state.user.errors: {
phone:null,
email:null,
password:null,
firstname:null,
+1 -1
View File
@@ -55,7 +55,7 @@ module.exports = withPlugins(
blogUrl: 'https://blog.talentstube.com',
frontServerUrl: 'https://pp.app.talentstube.com/',
cvThequeUrl: 'https://recruteur.talentstube.com',
version : 'V2.7.1',
version : 'V2.7.3',
adListDefaultUrl: '/statique/images/default/default_picture_company.jpg',
cachedMediaUrl: '/media/cache/profile_thumb/uploads/img/',
postedContentUrl: '/uploads/img/',
+4 -2
View File
@@ -328,8 +328,9 @@ class Reponse extends React.Component {
render() {
const { loading, activeStep } = this.state;
const { classes, menu, offre, company } = this.props;
const logoUrl = (offre.company ? publicRuntimeConfig.symphonyUrl + publicRuntimeConfig.cachedMediaUrl + offre.company.logo : '');
const logoCompanyUrl = ((company && company.logo) ? publicRuntimeConfig.symphonyUrl + publicRuntimeConfig.cachedMediaUrl + company.logo : '');
const logoUrl = (offre.company ? publicRuntimeConfig.symphonyUrl + publicRuntimeConfig.cachedMediaUrl + offre.company.logo : logoCompanyUrl);
let rootStepper = activeStep === 0 ? (
classes.rootStepperDefault
@@ -352,6 +353,7 @@ class Reponse extends React.Component {
<div className={classes.titreContainer}>
<div className={classes.logoContainer}>
<Avatar className={classes.logo} classes={{ img: classes.MuiAvatarImg }} src={logoUrl} alt="companylogo"/>
</div>
<div className={classes.infoContainer}>
<Typography gutterBottom variant="h5" component="h1" className={classes.title}>
@@ -366,7 +368,7 @@ class Reponse extends React.Component {
)
}
{ !!company.brand_name && (<Fragment><div className={classes.logoContainer}>
{/* <Avatar className={classes.logo} classes={{ img: classes.MuiAvatarImg }} src={logoCompanyUrl} alt="companylogo"/> */}
<Avatar className={classes.logo} classes={{ img: classes.MuiAvatarImg }} src={logoCompanyUrl} alt="companylogo"/>
</div>
<div className={classes.infoContainer}>
<Typography gutterBottom variant="h5" component="h1" className={classes.title}>
+104 -33
View File
@@ -21,7 +21,7 @@ import dynamic from 'next/dynamic'
import OgHead from '../components/atoms/OgHead';
import getConfig from 'next/config'
const Footer = dynamic(() => import ('../components/organisms/Footer'), {ssr: false});
const Footer = dynamic(() => import ('../components/organisms/FooterAccueil'), {ssr: false});
function Copyright() {
return (
@@ -62,8 +62,7 @@ const useStyles = makeStyles((theme) => ({
.breakpoints
.down('md')
]: {
background: "url('https://blog.talentstube.com/wp-content/uploads/2021/02/realisation-offre-e" +
"mploi-video-smartphone-modele.jpg') center center no-repeat scroll",
background: "url('/statique/images/accueil/offre-emploi.jpg') center center no-repeat scroll",
backgroundSize: "cover",
height: "100%",
padding: "0"
@@ -71,7 +70,7 @@ const useStyles = makeStyles((theme) => ({
},
mieuxQueTexteSection: {
paddingTop: "25em",
paddingTop: "28em",
[
theme
.breakpoints
@@ -81,7 +80,9 @@ const useStyles = makeStyles((theme) => ({
}
},
mieuxQueTexteTexte: {
color: "#fff"
color: "#fff",
font: "normal normal bold 1.625em/1.769em Roboto",
letterSpacing: "2",
},
bloc1Section: {
paddingLeft: "5em",
@@ -89,10 +90,7 @@ const useStyles = makeStyles((theme) => ({
},
heroSectionMobile: {
background: "url('https://blog.talentstube.com/wp-content/uploads/2021/02/realisation-offre-e" +
"mploi-video-smartphone-modele.jpg') no-repeat scroll",
height: "100%",
background: "url('/statique/images/accueil/offre-emploi.jpg') center top no-repeat scroll",
padding: "5em 0 9em",
position: "relative",
color: "#fff"
@@ -103,18 +101,24 @@ const useStyles = makeStyles((theme) => ({
marginRight: "auto",
marginLeft: "auto"
},
containerMobile: {
},
containerMobile: {},
colMd12: {
position: "relative",
minHeight: "1px",
paddingLeft: "15px",
paddingRight: "15px",
margin: "0em 0 1.5em 3em"
paddingLeft: "4em",
paddingRight: "4em",
[
theme
.breakpoints
.down('md')
]: {
paddingLeft: "2em",
paddingRight: "2em",
}
},
welcomeMessageLogo: {
marginBottom:"80px",
textAlign: "left"
},
welcomeMessage: {
@@ -135,7 +139,8 @@ const useStyles = makeStyles((theme) => ({
marginBottom: "0",
color: "#fff",
fontWeight: "400",
maxWidth: "600px"
maxWidth: "600px",
marginBottom:"80px",
},
videoBackground: {
position: "absolute",
@@ -162,7 +167,7 @@ const useStyles = makeStyles((theme) => ({
width: "100%",
minHeight: "100%",
top: "0"
},
heroContent: {
@@ -195,6 +200,24 @@ const useStyles = makeStyles((theme) => ({
marginTop: "0px"
},
bloc3: {
backgroundColor: "transparent",
// backgroundImage:"/statique/images/recrutement-video.jpg",
// background:"https://source.unsplash.com/random", backgroundImage:
// `url("/statique/images/recrutement-video.jpg")` ,
backgroundRepeat: 'no-repeat',
backgroundPosition: "center",
marginTop: "60px"
},
bloc4: {
backgroundColor: "#FCFCFC",
// backgroundImage:"/statique/images/recrutement-video.jpg",
// background:"https://source.unsplash.com/random", backgroundImage:
// `url("/statique/images/recrutement-video.jpg")` ,
backgroundRepeat: 'no-repeat',
backgroundPosition: "center",
marginTop: "60px"
},
footerDiv: {
backgroundColor: "#1E2327",
// backgroundImage:"/statique/images/recrutement-video.jpg",
@@ -279,8 +302,17 @@ const useStyles = makeStyles((theme) => ({
background: "#E7F3FF 0% 0% no-repeat padding-box",
boxShadow: "0px 0px 0px rgba(30, 35, 39, 0.15)",
padding: "50px",
minHeight:"650px",
'&:hover': {
boxShadow: "0px 0px 0px rgba(30, 35, 39, 0.15)"
},
[
theme
.breakpoints
.down('md')
]: {
padding: "50px 0px",
}
},
cardDroite: {
@@ -288,6 +320,25 @@ const useStyles = makeStyles((theme) => ({
flexDirection: 'column',
background: "#F8FBFF 0% 0% no-repeat padding-box",
boxShadow: "0px 0px 0px rgba(30, 35, 39, 0.15)",
padding: "50px ",
minHeight:"650px",
'&:hover': {
boxShadow: "0px 0px 0px rgba(30, 35, 39, 0.15)"
},
[
theme
.breakpoints
.down('md')
]: {
padding: "50px 0px",
}
},
cardDroiteGris: {
display: 'flex',
flexDirection: 'column',
background: "#FCFCFC 0% 0% no-repeat padding-box",
boxShadow: "0px 0px 0px rgba(30, 35, 39, 0.15)",
padding: "50px",
'&:hover': {
boxShadow: "0px 0px 0px rgba(30, 35, 39, 0.15)"
@@ -300,6 +351,21 @@ const useStyles = makeStyles((theme) => ({
boxShadow: "0px 0px 0px rgba(30, 35, 39, 0.15)"
}
},
bloc3Droite: {
backgroundColor: "transparent",
boxShadow: "0px 0px 0px rgba(30, 35, 39, 0.15)",
'&:hover': {
boxShadow: "0px 0px 0px rgba(30, 35, 39, 0.15)"
}
},
blocGris: {
backgroundColor: "transparent",
boxShadow: "0px 0px 0px rgba(30, 35, 39, 0.15)",
verticalAlign:"middle",
'&:hover': {
boxShadow: "0px 0px 0px rgba(30, 35, 39, 0.15)"
}
},
bloc1DroiteH1: {
textAlign: "left",
font: "normal normal bold 2.625em/1.667em Roboto",
@@ -318,7 +384,8 @@ const useStyles = makeStyles((theme) => ({
marginBottom: '62px'
},
bloc1Gauche: {
backgroundColor: "transparent"
backgroundColor: "transparent",
verticalAlign:"middle"
},
cardMedia: {
paddingTop: '500px', // 16:9
@@ -361,7 +428,7 @@ export default function Index() {
</video>
<div className={classes.container}>
<div className={classes.colMd12}>
<div className={classes.welcomeMessageLogo}>
@@ -396,7 +463,7 @@ export default function Index() {
data-target=".bd-example-modal-lg">JE SUIS TALENT</button> */}
</div>
</div>
</div>
</Hidden>
<Hidden mdUp>
@@ -444,8 +511,8 @@ export default function Index() {
<section className={classes.mieuxQueTexteSection}>
<div className={classes.heroContent}>
<Container maxWidth="sm">
<Typography variant="h5" align="center" className={classes.mieuxQueTexteTexte}>
<Container maxWidth="lg">
<Typography variant="h4" align="center" className={classes.mieuxQueTexteTexte}>
« Parce que vous méritez mieux que du texte ! »
</Typography>
@@ -526,7 +593,7 @@ export default function Index() {
<ul>
<li>Pas besoin dune « belle » vidéo, soyez vrai et authentique</li>
</ul>
<b>Dévoilez gratuitement qui vous êtes, au-delà des mots !<br/></b><br/>
<b>Dévoilez gratuitement qui vous êtes, au-delà des mots !</b>
</Typography>
<Button variant="contained" className={classes.recruteurButton}>
Je me lance
@@ -596,13 +663,12 @@ export default function Index() {
</Grid>
</Hidden>
<Grid item key={2} xs={24} sm={12} md={6}>
<Card className={classes.bloc1Droite}>
<Card className={classes.bloc3Droite}>
<CardContent className={classes.bloc1Droite}>
<Typography
gutterBottom
variant="h5"
component="h1"
component="h2"
color="#fff"
className={classes.bloc2Titre1}>
Pourquoi nous ?
@@ -615,7 +681,8 @@ export default function Index() {
toutes vos demandes que vous soyez candidat ou recruteur. En recherche
dévolution constante, nous avons à cœur de créer une relation de proximité afin
dadapter NOTRE solution à VOS besoins et ainsi créer une expérience utilisateur
inoubliable. Composée dexperts de la fonction RH & Recrutement, nous sommes
inoubliable. <br/><br/>
Composée dexperts de la fonction RH & Recrutement, nous sommes
passionnés par ce que nous faisons. Notre SEUL objectif : favoriser la rencontre
dentreprises formidables et de candidats uniques pour une performance commune.
</Typography>
@@ -633,24 +700,28 @@ export default function Index() {
<Grid container spacing={10}>
<Grid item key={2} xs={24} sm={12} md={6}>
<Card className={classes.bloc1Droite}>
<Card className={classes.blocGris}>
<CardContent className={classes.bloc1Droite}>
<CardContent >
<Typography
gutterBottom
variant="h5"
component="h1"
component="h2"
color="#fff"
className={classes.bloc2Titre1}>
Ils recrutent déjà avec Talents Tube!
</Typography>
<Card className={classes.cardDroiteGris}>
<img src="/statique/images/accueil/recrutement-video-entreprises.png"/>
</Card>
</CardContent>
</Card>
</Grid>
<Grid item key={1} xs={24} sm={12} md={6}>
<Card className={classes.bloc1Gauche}>
<Card className={classes.blocGris}>
<iframe
width="560"
Binary file not shown.

After

Width:  |  Height:  |  Size: 315 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB