Compare commits
4 Commits
V2.3.4
...
V2.4.0_prod
| Author | SHA1 | Date | |
|---|---|---|---|
| c3f4832b30 | |||
| 4bd6e8c580 | |||
| 8e896114bf | |||
| f757997392 |
@@ -6,7 +6,7 @@ const OgHead = props => {
|
||||
return (
|
||||
<Head>
|
||||
<title key="title">{props.seo_title}</title>
|
||||
<meta name="robots" content="noindex, nofollow"></meta>
|
||||
{/* <meta name="robots" content="noindex, nofollow"></meta> */}
|
||||
<meta name="description" kenoindexy="description" content={props.seo_description} />
|
||||
<meta name="keywords" content={props.seo_key}/>
|
||||
<meta key="og:url" property="og:url" content={props.seo_url} />
|
||||
|
||||
@@ -114,6 +114,11 @@ const styles = theme => ({
|
||||
margin:'15px 0px 25px 0px',
|
||||
textTransform: 'inherit',
|
||||
},
|
||||
popup: {
|
||||
fontFamily: '"Roboto", "Helvetica", "Arial", "sans-serif"',
|
||||
fontWeight: '400',
|
||||
color: '#8E9092'
|
||||
},
|
||||
player:{
|
||||
width:"100px"
|
||||
}
|
||||
@@ -395,7 +400,7 @@ class Answer extends Component {
|
||||
</Button>
|
||||
<Dialog open={this.state.open} onEnter={console.log("Hey.")}>
|
||||
<DialogTitle> Souhaitez-vous remplacer votre vidéo de réponse ?</DialogTitle>
|
||||
<DialogContent> Cette vidéo sera définitivement supprimée. Vous pourrez importer ou réaliser une nouvelle video de réponse. </DialogContent>
|
||||
<DialogContent className={classes.popup}> Cette vidéo sera définitivement supprimée. Vous pourrez importer ou réaliser une nouvelle video de réponse. </DialogContent>
|
||||
<DialogActions>
|
||||
|
||||
<Button onClick={this.closeDialog.bind(this)} autoFocus>
|
||||
|
||||
@@ -581,7 +581,7 @@ class Header extends React.Component {
|
||||
<div>
|
||||
{!!!this.props.loading && !!!this.props.fetched &&
|
||||
<Fragment>
|
||||
<Link href="Inscription" >
|
||||
<Link href="/Inscription" >
|
||||
<a className={classes.desktopMenuItem}>
|
||||
<ListItem classes={{ root: classes.rootListItemDesktop }}>
|
||||
<Button
|
||||
|
||||
@@ -28,7 +28,7 @@ import ArrowForward from '@material-ui/icons/ArrowForward';
|
||||
import List from '@material-ui/core/List';
|
||||
import ListItem from '@material-ui/core/ListItem';
|
||||
import { ListItemText } from '@material-ui/core';
|
||||
import Loader from '../templates/loader'
|
||||
import Loader from './../templates/loader'
|
||||
import { connect } from 'react-redux'
|
||||
import { fetchCurrentUserRequest } from "../../actions/user";
|
||||
import { requestLogout } from "../../actions/auth";
|
||||
@@ -36,7 +36,7 @@ import Button from '@material-ui/core/Button';
|
||||
import withWidth, { isWidthUp } from '@material-ui/core/withWidth'
|
||||
import Typography from '@material-ui/core/Typography';
|
||||
import { withRouter } from "next/router";
|
||||
import ActiveLink from "../atoms/Activelink";
|
||||
import ActiveLink from "./../atoms/Activelink";
|
||||
import axios from 'axios';
|
||||
import setAuthorizationHeader from "../../data/setAuthorizationHeader";
|
||||
import getConfig from 'next/config'
|
||||
@@ -227,6 +227,9 @@ const styles = theme => ({
|
||||
justifyContent: 'space-between',
|
||||
padding: 0,
|
||||
},
|
||||
appBar:{
|
||||
position:'fixed'
|
||||
},
|
||||
appBarDesktopSection: {
|
||||
display: 'flex',
|
||||
alignItems: 'center',
|
||||
@@ -296,13 +299,10 @@ const styles = theme => ({
|
||||
paddingRight: 0,
|
||||
},
|
||||
},
|
||||
loadingBar:{
|
||||
top:'100px'
|
||||
}
|
||||
});
|
||||
let urlEnv;
|
||||
|
||||
class HeaderOffre extends React.Component {
|
||||
class Header extends React.Component {
|
||||
state = {
|
||||
top: false,
|
||||
left: false,
|
||||
@@ -346,7 +346,7 @@ class HeaderOffre extends React.Component {
|
||||
|
||||
return (
|
||||
<div className={classes.root}>
|
||||
|
||||
|
||||
|
||||
<Drawer anchor="right" open={this.state.right} onClose={this.toggleDrawer('right', false)}>
|
||||
<div
|
||||
@@ -355,12 +355,50 @@ class HeaderOffre extends React.Component {
|
||||
onClick={this.toggleDrawer('right', false)}
|
||||
onKeyDown={this.toggleDrawer('right', false)}
|
||||
>{!!this.props.loading &&
|
||||
(<LoadingBar className={classes.loadingBar}/>
|
||||
(<Loader />
|
||||
)}
|
||||
{!!!this.props.loading && !!!this.props.fetched
|
||||
&&
|
||||
<div className={classes.fullList + ' ' + classes.darkFullList}>
|
||||
|
||||
<List>
|
||||
<Link href="/" >
|
||||
<a className={classes.darkMenuItem + ' cypFrontPage'}><ListItem classes={{ root: classes.rootListItemIcon }}>
|
||||
<img alt="talents-tube" src='/statique/images/logos/TalentsTube_logo-blanc.svg' className={classes.menuLogo} />
|
||||
</ListItem></a>
|
||||
</Link>
|
||||
|
||||
|
||||
<Divider light={true} />
|
||||
|
||||
<div className={classes.linkGroup}>
|
||||
<Link href="/Login" >
|
||||
<a className={classes.lightMenuItem + ' cypConnexion'}><ListItem classes={{ root: classes.rootListItemIcon }} >
|
||||
<PersonIcon className={classes.icon} />
|
||||
<ListItemText classes={{ primary: classes.ListItemText }} primary='Connexion'>
|
||||
</ListItemText>
|
||||
</ListItem></a>
|
||||
</Link>
|
||||
{/* TODO */}
|
||||
<Link href="/Inscription" >
|
||||
<a className={classes.lightMenuItem + ' cypRegister'}><ListItem classes={{ primary: classes.ListItemText }} classes={{ root: classes.rootListItem }}>
|
||||
<PersonAddIcon className={classes.icon} />
|
||||
<ListItemText primary='Inscription'>
|
||||
</ListItemText>
|
||||
</ListItem></a>
|
||||
</Link>
|
||||
</div>
|
||||
|
||||
<Divider light={true} />
|
||||
|
||||
<div className={classes.linkGroup}>
|
||||
<a href={publicRuntimeConfig.symphonyUrl + "/"} className={classes.lightMenuItem}><ListItem classes={{ primary: classes.ListItemText }} classes={{ root: classes.rootListItemIcon }}>
|
||||
<WorkOutlineIcon className={classes.icon} />
|
||||
<ListItemText primary='Connexion recruteurs'>
|
||||
</ListItemText>
|
||||
</ListItem>
|
||||
</a>
|
||||
</div>
|
||||
</List>
|
||||
</div>}
|
||||
{!!!this.props.loading && !!this.props.fetched &&
|
||||
<Fragment>
|
||||
@@ -436,13 +474,7 @@ class HeaderOffre extends React.Component {
|
||||
color="inherit" aria-label="Open drawer">
|
||||
<MenuIcon />
|
||||
</IconButton> */}
|
||||
{/* <ButtonBase name='back'
|
||||
focusRipple
|
||||
className={classes.back}
|
||||
focusVisibleClassName={classes.focusVisible}
|
||||
onClick={() => Router.back()}>
|
||||
<ArrowLeft color="primary" classes={{ root: classes.icon }}></ArrowLeft>
|
||||
</ButtonBase> */}
|
||||
|
||||
<List className={classes.desktopMenuList}>
|
||||
<div>
|
||||
<ActiveLink activeClassName={classes.active} href="/Offres" >
|
||||
@@ -464,7 +496,7 @@ class HeaderOffre extends React.Component {
|
||||
</a>
|
||||
</ActiveLink>
|
||||
|
||||
<a className={classes.desktopMenuItem} href="https://blog.talentstube.com/" target="_blank">
|
||||
<a className={classes.desktopMenuItem} target="_blank" href="https://blog.talentstube.com/">
|
||||
<ListItemText primary='Blog'>
|
||||
</ListItemText>
|
||||
</a>
|
||||
@@ -538,7 +570,7 @@ class HeaderOffre extends React.Component {
|
||||
focusRipple
|
||||
className={classes.back}
|
||||
focusVisibleClassName={classes.focusVisible}
|
||||
onClick={() => Router.back()}>
|
||||
onClick={() => Router.push("/Offres")}>
|
||||
<ArrowLeft color="primary" classes={{ root: classes.icon }}></ArrowLeft>
|
||||
</ButtonBase>
|
||||
<div className={classes.grow} />
|
||||
@@ -572,4 +604,4 @@ function mapStateToProps(state) {
|
||||
loading: !!state.user.loading
|
||||
};
|
||||
}
|
||||
export default (connect(mapStateToProps, { fetchCurrentUserRequest, requestLogout })(withStyles(styles)(withWidth()(HeaderOffre))));
|
||||
export default (connect(mapStateToProps, { fetchCurrentUserRequest, requestLogout })(withStyles(styles)(withWidth()(Header))));
|
||||
@@ -53,9 +53,9 @@ const styles = theme => ({
|
||||
margin: theme.spacing(0, 0),
|
||||
},
|
||||
headerContainerMobile: {
|
||||
display: 'flex',
|
||||
top : '-20px',
|
||||
marginLeft : '20px'
|
||||
display: 'inline',
|
||||
// top : '-20px',
|
||||
// marginLeft : '20px'
|
||||
|
||||
},
|
||||
headerContainerDesktop: {
|
||||
@@ -88,7 +88,7 @@ const styles = theme => ({
|
||||
infoContainerMobile: {
|
||||
display: 'flex',
|
||||
flexDirection: 'column',
|
||||
margin: theme.spacing(0, 1.5),
|
||||
padding: '20px',
|
||||
'& a': {
|
||||
textDecoration: 'none',
|
||||
color: theme.palette.primary.dark,
|
||||
@@ -119,16 +119,14 @@ const styles = theme => ({
|
||||
marginBottom: '10px'
|
||||
},
|
||||
IconTextContainerMobile: {
|
||||
display: '',
|
||||
alignItems: 'center',
|
||||
// justifyContent: 'flex-start',
|
||||
width: '100%',
|
||||
|
||||
borderTop: '1px solid #E8E8E9',
|
||||
borderBottom: '1px solid #E8E8E9',
|
||||
paddingTop: '20px',
|
||||
paddingBottom: '20px',
|
||||
marginLeft:'20px',
|
||||
marginRight:'20px'
|
||||
padding: '20px',
|
||||
|
||||
|
||||
},
|
||||
contentContainer: {
|
||||
display: 'flex',
|
||||
@@ -138,6 +136,15 @@ const styles = theme => ({
|
||||
top:'40px',
|
||||
margin: theme.spacing(0, 1),
|
||||
},
|
||||
contentContainerMobile: {
|
||||
display: 'flex',
|
||||
flexDirection: 'column',
|
||||
alignItems: 'flex-start',
|
||||
justifyContent: 'flex-start',
|
||||
top:'100px',
|
||||
paddingTop:'100px',
|
||||
margin: theme.spacing(0, 1),
|
||||
},
|
||||
tagsContainer: {
|
||||
display: 'flex',
|
||||
alignItems: 'center',
|
||||
@@ -229,11 +236,10 @@ const styles = theme => ({
|
||||
backgroundColor: 'white'
|
||||
},
|
||||
stickyContainer:{
|
||||
margin: '10px 0px',
|
||||
// margin: '10px 0px',
|
||||
borderBottom: '1px solid #E8E8E9',
|
||||
marginBottom: '20px',
|
||||
paddingBottom: '5px',
|
||||
|
||||
},
|
||||
stickySeparation:{
|
||||
|
||||
@@ -426,13 +432,12 @@ const styles = theme => ({
|
||||
pourvu: {
|
||||
|
||||
padding: '9.6px 16px',
|
||||
textTransform: 'inherit',
|
||||
margin: '35px 0',
|
||||
textAlign : 'center'
|
||||
|
||||
textAlign : 'center',
|
||||
|
||||
},
|
||||
pourvuButton:{
|
||||
|
||||
textTransform: 'inherit',
|
||||
},
|
||||
videoOffre: {
|
||||
[theme.breakpoints.up('md')]: {
|
||||
@@ -562,7 +567,7 @@ const styles = theme => ({
|
||||
fontSize: '1.5em',
|
||||
color: theme.palette.background.grey,
|
||||
position: 'absolute',
|
||||
bottom: '60px',
|
||||
bottom: '30px',
|
||||
left: '20px',
|
||||
color: '#1E2327',
|
||||
backgroundColor: '#fff',
|
||||
@@ -572,14 +577,16 @@ const styles = theme => ({
|
||||
|
||||
},
|
||||
playerTexteMobile: {
|
||||
|
||||
fontSize: '1em',
|
||||
fontWeight: '600',
|
||||
position: 'absolute',
|
||||
bottom: '70px',
|
||||
bottom: '43px',
|
||||
left: '80px',
|
||||
color: '#fff',
|
||||
},
|
||||
iconPlayBasMobile: {
|
||||
|
||||
fontSize: '1.5em',
|
||||
color: theme.palette.background.grey,
|
||||
position: 'absolute',
|
||||
@@ -621,14 +628,14 @@ const styles = theme => ({
|
||||
fontSize: '1.250em',
|
||||
fontWeight: '600',
|
||||
position: 'absolute',
|
||||
top: '7px',
|
||||
left: '45px',
|
||||
right: '10px',
|
||||
top: '30px',
|
||||
left: '30px',
|
||||
right: '30px',
|
||||
color: '#fff',
|
||||
textAlign:'left',
|
||||
lineHeight : '20px',
|
||||
marginBottom : '20px',
|
||||
padding:'10px'
|
||||
|
||||
},
|
||||
containerPoste:{
|
||||
|
||||
@@ -746,11 +753,13 @@ function OffreDetail(props) {
|
||||
}
|
||||
//gestion du télétravail
|
||||
if(offre.extra.teletravail=='tele_occasionel'){
|
||||
teletravail='Télétravail occasionel';
|
||||
teletravail='Télétravail occasionnel';
|
||||
}else if(offre.extra.teletravail=='tele_partiel'){
|
||||
teletravail='Télétravail partiel';
|
||||
}else if(offre.extra.teletravail=='tele_total'){
|
||||
teletravail='Télétravail total';
|
||||
}else{
|
||||
teletravail=null;
|
||||
}
|
||||
|
||||
const imgDefaultUrl = "/static/images/default/default_picture_company.svg"
|
||||
@@ -837,7 +846,7 @@ function OffreDetail(props) {
|
||||
></JobPosting>
|
||||
<Hidden smDown>
|
||||
{/* PARTIE DESKTOP */}
|
||||
<div style={{ width:'100%', justifyContent: 'center', display: 'flex', marginTop:'40px' }}>
|
||||
<div style={{ width:'100%', justifyContent: 'center', display: 'flex', marginTop:'100px' }}>
|
||||
<div style={{ width:'1200px' }}>
|
||||
<div style={{ display: 'flex', alignItems: 'flex-start' }}>
|
||||
<div style={{width:'67%' }}>
|
||||
@@ -936,7 +945,7 @@ function OffreDetail(props) {
|
||||
</div>
|
||||
{/* PARTIE STICKY */}
|
||||
|
||||
<StickyBox style={{width:'33%', marginLeft:'40px', padding : '0 15px'}}>
|
||||
<StickyBox offsetTop={100} style={{width: '33%', marginLeft: '40px', padding: '0px 15px', position: 'sticky', top: '100px'}}>
|
||||
|
||||
<section className={classes.stickyContainer}>
|
||||
<a href={entrepriseLink} className={classes.lien}>
|
||||
@@ -987,7 +996,7 @@ function OffreDetail(props) {
|
||||
{offre.is_promoted && (
|
||||
<section className={classes.pourvu}>
|
||||
<Button variant="contained" disabled className={classes.pourvuButton}>
|
||||
Pourvue
|
||||
Offre pourvue
|
||||
</Button>
|
||||
</section>
|
||||
// <Chip label="Pourvue" className={classes.chip} />
|
||||
@@ -1000,12 +1009,12 @@ function OffreDetail(props) {
|
||||
</Hidden>
|
||||
{/* PARTIE MOBILE */}
|
||||
<Hidden mdUp>
|
||||
<section className={classes.contentContainer}>
|
||||
<section className={classes.contentContainerMobile}>
|
||||
|
||||
<Link href={`/Player?id=/Offre/${offre.id}-${_.kebabCase(offre.title)}&videoId=${Ar.last(_.split(offre.video.cdn_url, '/'))}&type=Offre`} >
|
||||
<div className={classes.discoverContainerImage}>
|
||||
<img src={isWidthUp('xs', props.width) ? imgUrlDesktopOffre : imgUrlOffre} alt={offre.company.brand_name && offre.company.brand_name} />
|
||||
<div className={classes.containerPoste}>
|
||||
<div >
|
||||
|
||||
<Typography variant="h1" component="h1" gutterBottom className={classes.posteMobile}>
|
||||
{offre.title} <br></br>
|
||||
@@ -1021,7 +1030,7 @@ function OffreDetail(props) {
|
||||
</Link>
|
||||
</section>
|
||||
<section className={classes.headerContainerMobile}>
|
||||
<div >
|
||||
<div className={classes.infoContainerMobile}>
|
||||
|
||||
<a href={entrepriseLink} className={classes.lien}>
|
||||
<Avatar className={classes.logoMobile} classes={{ img: classes.MuiAvatarImg }}
|
||||
@@ -1030,7 +1039,7 @@ function OffreDetail(props) {
|
||||
|
||||
</div>
|
||||
<div className={classes.infoContainerMobile}>
|
||||
<Typography gutterBottom variant="h5" component="h1" className={classes.title}>
|
||||
<Typography gutterBottom variant="h4" component="h4" className={classes.title}>
|
||||
{offre.title}
|
||||
</Typography>
|
||||
<a href={entrepriseLink} className={classes.lien}>
|
||||
@@ -1040,9 +1049,10 @@ function OffreDetail(props) {
|
||||
</a>
|
||||
{/* ville */}
|
||||
</div>
|
||||
|
||||
</section>
|
||||
<section className={classes.IconTextContainerMobile}>
|
||||
{offre.is_promoted && (<Chip label="Pourvue" className={classes.chip} />)}
|
||||
{offre.is_promoted && (<Chip label="Offre pourvue" className={classes.chip} />)}
|
||||
{offre.extra && (<IconText classes={{ root: classes.iconText, icon: classes.iconTextIcon, text: classes.iconTextText }} variant="assignment" text={offre.extra.contract_type+dureeContrat} />)}
|
||||
{tempsTypeFr && (<IconText classes={{ root: classes.iconText, icon: classes.iconTextIcon, text: classes.iconTextText }} variant="watch_later" text={tempsTypeFr+nombreHeure} />)}
|
||||
{offre.location && offre.location.gmap_address && (<IconText classes={{ root: classes.iconText, icon: classes.iconTextIcon, text: classes.iconTextText }} variant="location_on" text={offre.location.gmap_address.formatted_address} />)}
|
||||
|
||||
@@ -156,7 +156,7 @@ class OffreRowComponent extends React.Component {
|
||||
</Typography>
|
||||
<div>
|
||||
{rowData.is_promoted && (
|
||||
<Chip label="Pourvue" className={classes.chip} />
|
||||
<Chip label="Offre pourvue" className={classes.chip} />
|
||||
)}
|
||||
|
||||
{!rowData.is_promoted && (
|
||||
|
||||
@@ -42,7 +42,7 @@ const videoJsOptions = {
|
||||
PictureInPictureToggle:false,
|
||||
PlayToggle:false
|
||||
},
|
||||
poster: '/statique/images/webrtc/module-video-talents-tube.jpg',
|
||||
poster: '/statique/images/webrtc/module-video-talents-tube.svg',
|
||||
plugins: {
|
||||
/*
|
||||
// wavesurfer section is only needed when recording audio-only
|
||||
|
||||
@@ -55,16 +55,24 @@ const useStyles = makeStyles(theme => ({
|
||||
}
|
||||
},
|
||||
FacebookIconMobile: {
|
||||
color: theme.palette.social.facebook,
|
||||
color: theme.palette.social.facebook,
|
||||
paddingRight:'0px',
|
||||
paddingLeft:'3px'
|
||||
},
|
||||
TwitterIconMobile: {
|
||||
color: theme.palette.social.twitter,
|
||||
paddingRight:'3px' ,
|
||||
paddingLeft:'3px'
|
||||
},
|
||||
LinkedinIconMobile: {
|
||||
color: theme.palette.social.linkedin,
|
||||
paddingRight:'3px',
|
||||
paddingLeft:'3px'
|
||||
},
|
||||
MailIconMobile: {
|
||||
color: theme.palette.social.mail,
|
||||
paddingRight:'3px' ,
|
||||
paddingLeft:'3px'
|
||||
},
|
||||
}));
|
||||
|
||||
|
||||
@@ -71,6 +71,7 @@ const styles = theme => ({
|
||||
padding: theme.spacing(1.2, 2),
|
||||
color: theme.palette.secondary.main,
|
||||
backgroundColor: theme.palette.primary.important,
|
||||
textDecoration:'none',
|
||||
},
|
||||
voirOffre: {
|
||||
textTransform: 'inherit',
|
||||
@@ -122,13 +123,14 @@ function LayoutCompany(props) {
|
||||
>Voir les offres</Button>
|
||||
|
||||
</Link>
|
||||
<Button
|
||||
<a
|
||||
href={`/Reponse?companyId=${companyId}`}
|
||||
variant="contained"
|
||||
className={classes.button}
|
||||
classes={{ root: classes.rootButton }}
|
||||
onClick={() => Router.push(`/Reponse?companyId=${companyId}`)}
|
||||
// onClick={() => Router.push(`/Reponse?companyId=${companyId}`)}
|
||||
>
|
||||
Candidature spontanée</Button>
|
||||
Candidature spontanée</a>
|
||||
</div>
|
||||
</Hidden>
|
||||
|
||||
|
||||
@@ -62,8 +62,8 @@ const styles = theme => ({
|
||||
},
|
||||
button: {
|
||||
textTransform: 'inherit',
|
||||
marginLeft: theme.spacing(8),
|
||||
marginRight: theme.spacing(8),
|
||||
marginLeft: theme.spacing(4.5),
|
||||
marginRight: theme.spacing(4.5),
|
||||
padding: theme.spacing(1.2, 2),
|
||||
color: theme.palette.secondary.main,
|
||||
backgroundColor: theme.palette.primary.important,
|
||||
@@ -78,15 +78,16 @@ const styles = theme => ({
|
||||
|
||||
},
|
||||
pourvuButton:{
|
||||
padding :'10px'
|
||||
padding :'10px',
|
||||
textTransform: 'inherit',
|
||||
},
|
||||
})
|
||||
|
||||
function LayoutOffre(props) {
|
||||
|
||||
const { classes, offreId, offre, isProvided, socialShareUrl } = props;
|
||||
const { classes, offreId, offre, isProvided } = props;
|
||||
const contentClass = (!isProvided) ? classes.contentDefault : classes.contentProvided
|
||||
|
||||
const socialShareUrl = typeof window !== 'undefined' ? window.location : publicRuntimeConfig.frontServerUrl + `/Offre/${offreId}-${_.kebabCase(offre.title)}`;
|
||||
return (
|
||||
<RootContainer>
|
||||
{isWidthUp('xs', props.width) ?
|
||||
@@ -137,7 +138,7 @@ function LayoutOffre(props) {
|
||||
|
||||
|
||||
<Button variant="contained" disabled className={classes.pourvuButton}>
|
||||
Pourvue
|
||||
Offre pourvue
|
||||
</Button>
|
||||
{/* <div className={classes.grow} />
|
||||
</div> */}
|
||||
|
||||
@@ -46,16 +46,16 @@ module.exports = withPlugins(
|
||||
// frontServerUrl: 'http://localhost:3000',
|
||||
// cvThequeUrl: 'https://recruteur.talentstube.com',
|
||||
// PROD
|
||||
// symphonyUrl: 'https://recruteur.talentstube.com/',
|
||||
// blogUrl: 'https://blog.talentstube.com',
|
||||
// frontServerUrl: 'https://www.talentstube.com/',
|
||||
// cvThequeUrl: 'https://recruteur.talentstube.com',
|
||||
// PRE PROD
|
||||
symphonyUrl: 'https://pp.talentstube.com/',
|
||||
symphonyUrl: 'https://recruteur.talentstube.com/',
|
||||
blogUrl: 'https://blog.talentstube.com',
|
||||
frontServerUrl: 'https://pp.app.talentstube.com/',
|
||||
frontServerUrl: 'https://www.talentstube.com/',
|
||||
cvThequeUrl: 'https://recruteur.talentstube.com',
|
||||
version : 'V2.3.4',
|
||||
// PRE PROD
|
||||
// symphonyUrl: 'https://pp.talentstube.com/',
|
||||
// blogUrl: 'https://blog.talentstube.com',
|
||||
// frontServerUrl: 'https://pp.app.talentstube.com/',
|
||||
// cvThequeUrl: 'https://recruteur.talentstube.com',
|
||||
version : 'V2.4.0',
|
||||
adListDefaultUrl: '/statique/images/default/default_picture_company.svg',
|
||||
cachedMediaUrl: '/media/cache/profile_thumb/uploads/img/',
|
||||
postedContentUrl: '/uploads/img/',
|
||||
|
||||
@@ -127,8 +127,8 @@ function mapStateToProps(state, ownProps) {
|
||||
}
|
||||
|
||||
ConfirmAccount.getInitialProps = function (context) {
|
||||
const { token, email, url } = context.query
|
||||
localStorage.setItem('loginRedirect', url)
|
||||
const { token, email } = context.query
|
||||
//localStorage.setItem('loginRedirect', url)
|
||||
context.store.dispatch(requestConfirmationAccountRequest({ 'confirmationToken': token, 'email': email }))
|
||||
return email;
|
||||
}
|
||||
|
||||
@@ -341,6 +341,9 @@ const styles = theme => ({
|
||||
borderBottomLeftRadius: '5px',
|
||||
borderBottomRightRadius: '5px',
|
||||
},
|
||||
lien:{
|
||||
textDecoration:'none'
|
||||
},
|
||||
});
|
||||
|
||||
const CustomTableBody = ({ rowIds, Row, style, className }) => (
|
||||
@@ -441,11 +444,13 @@ class Entreprise extends React.Component {
|
||||
>Voir les offres</Button>
|
||||
|
||||
</Link>
|
||||
<a href={`/Reponse?companyId=${company.id}`} className={classes.lien}>
|
||||
<Button
|
||||
variant="contained"
|
||||
className={classes.button}
|
||||
onClick={() => Router.push(`/Reponse?companyId=${company.id}`)}
|
||||
>Candidature spontanée</Button>
|
||||
</a>
|
||||
</div>
|
||||
</section>
|
||||
</Hidden>
|
||||
|
||||
@@ -32,9 +32,9 @@ class MyDocument extends Document {
|
||||
{/* PWA primary color */}
|
||||
<meta name="theme-color" content={theme.palette.primary.main} />
|
||||
|
||||
<link href="https://fonts.googleapis.com/css?family=Dosis:600|Roboto:100,300,400,500,700,900&display=swap" rel="stylesheet">
|
||||
<link href="https://fonts.googleapis.com/css?family=Dosis:600|Roboto:200,300,400,500,700,900&display=swap" rel="stylesheet">
|
||||
</link>
|
||||
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDYV8IJGtIoWLfXJQQvIuDQ88n2aEuRgpg&libraries=places"></script>
|
||||
{/* <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDYV8IJGtIoWLfXJQQvIuDQ88n2aEuRgpg&libraries=places"></script> */}
|
||||
<script type="text/javascript" src="/static/js/pwaInstaller.js" ></script>
|
||||
{/* Global Site Tag (gtag.js) - Google Analytics */}
|
||||
{/* <script
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
<svg id="web-rtc-active" xmlns="http://www.w3.org/2000/svg" width="550" height="310" viewBox="0 0 550 310">
|
||||
<g id="web-rtc-record">
|
||||
<rect id="captures__2020-12-08_à_14.00.50" data-name="captures_ 2020-12-08 à 14.00.50" width="550" height="310" fill="#4b4f52"/>
|
||||
<g id="Groupe_8235" data-name="Groupe 8235" transform="translate(-121 -1)">
|
||||
<g id="Groupe_8239" data-name="Groupe 8239" transform="translate(-226 7)">
|
||||
<g id="Groupe_8236" data-name="Groupe 8236" transform="translate(-20 20)">
|
||||
<circle id="Ellipse_146" data-name="Ellipse 146" cx="14" cy="14" r="14" transform="translate(407 48)" fill="#25d89a"/>
|
||||
<text id="_1" data-name="1" transform="translate(421 67)" fill="#fff" font-size="15" font-family="Roboto-Bold, Roboto" font-weight="700"><tspan x="-4.303" y="0">1</tspan></text>
|
||||
</g>
|
||||
<text id="Autoriser_la_caméra_et_le_micro" data-name="Autoriser la caméra et le micro" transform="translate(427 88)" fill="#fff" font-size="14" font-family="Roboto-Bold, Roboto" font-weight="700"><tspan x="0" y="0">Autoriser la caméra et le micro</tspan></text>
|
||||
<text id="Choisir_votre_meilleure_prise" data-name="Choisir votre meilleure prise" transform="translate(427 204)" fill="#fff" font-size="14" font-family="Roboto-Bold, Roboto" font-weight="700"><tspan x="0" y="0">Choisir votre meilleure prise</tspan></text>
|
||||
<text id="Démarrer_l_enregistrement" data-name="Démarrer l’enregistrement" transform="translate(427 146)" fill="#fff" font-size="14" font-family="Roboto-Bold, Roboto" font-weight="700"><tspan x="0" y="0">Démarrer l’enregistrement</tspan></text>
|
||||
<g id="Groupe_8237" data-name="Groupe 8237" transform="translate(-20 78)">
|
||||
<circle id="Ellipse_146-2" data-name="Ellipse 146" cx="14" cy="14" r="14" transform="translate(407 48)" fill="#25d89a"/>
|
||||
<text id="_2" data-name="2" transform="translate(421 67)" fill="#fff" font-size="15" font-family="Roboto-Bold, Roboto" font-weight="700"><tspan x="-4.303" y="0">2</tspan></text>
|
||||
</g>
|
||||
<g id="Groupe_8238" data-name="Groupe 8238" transform="translate(-20 136)">
|
||||
<circle id="Ellipse_146-3" data-name="Ellipse 146" cx="14" cy="14" r="14" transform="translate(407 48)" fill="#25d89a"/>
|
||||
<text id="_3" data-name="3" transform="translate(421 67)" fill="#fff" font-size="15" font-family="Roboto-Bold, Roboto" font-weight="700"><tspan x="-4.303" y="0">3</tspan></text>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Groupe_8240" data-name="Groupe 8240" transform="translate(-36)">
|
||||
<rect id="Rectangle_442" data-name="Rectangle 442" width="187" height="187" rx="9" transform="translate(480 53)" fill="none" stroke="#fff" stroke-linecap="round" stroke-linejoin="round" stroke-width="3" stroke-dasharray="9" opacity="0.593"/>
|
||||
<circle id="Ellipse_145" data-name="Ellipse 145" cx="7" cy="7" r="7" transform="translate(642 65)" fill="#fd6161"/>
|
||||
<g id="_001-woman" data-name="001-woman" transform="translate(449.002 56.984)">
|
||||
<path id="Tracé_448" data-name="Tracé 448" d="M175.073,136.325v12.8a2.607,2.607,0,0,1-2.608,2.608H77.285a2.607,2.607,0,0,1-2.608-2.608v-12.8a24.317,24.317,0,0,1,14.264-22.143c-3.433-2.731,1.856-10.366-1.95-18.264-5.3-10.984-3.064-14.173,3.69-24.316,3.67-5.509,3.137-13.027,3.137-19.644l6.381-7.925c0-18-2.164-27.367,15.839-27.367L134.023,17.9c18,0,21.388-.527,21.388,17.476,0,14.957-.157,17.695,1.646,23.643,2.544,8.41-4.236,15.545-1.646,24.1,4.072,13.454,4.5,10.7-6.6,19.537l11.994,11.525A24.317,24.317,0,0,1,175.073,136.325Z" transform="translate(-0.049 16.831)" fill="#ffdfba"/>
|
||||
<path id="Tracé_449" data-name="Tracé 449" d="M178.4,363.976v12.8a2.608,2.608,0,0,1-2.608,2.608H80.609A2.608,2.608,0,0,1,78,376.773v-12.8a24.308,24.308,0,0,1,24.307-24.307,13.489,13.489,0,0,0,5.6-1.209l.081.176,18.613,14.41a2.608,2.608,0,0,0,3.193,0l18.613-14.41.081-.176a13.489,13.489,0,0,0,5.6,1.209A24.308,24.308,0,0,1,178.4,363.976Z" transform="translate(-3.373 -210.82)" fill="#44a0fb"/>
|
||||
<path id="Tracé_450" data-name="Tracé 450" d="M195.073,122.56a2.609,2.609,0,0,1,2.468,2.6v15.609a32.27,32.27,0,1,1-64.54,0V125.39a2.6,2.6,0,0,1,2.831-2.6,67.467,67.467,0,0,0,43.98-11.245A2.6,2.6,0,0,1,183.773,113C185.382,118.932,189.77,122.258,195.073,122.56Z" transform="translate(-40.445 -57.57)" fill="#ffebd2"/>
|
||||
<path id="Tracé_451" data-name="Tracé 451" d="M163.653,111.4l-2.888,2.3a24.246,24.246,0,0,0-10.043-2.164,13.485,13.485,0,0,1-13.5-13.475V95.833l-.049-.121A32.274,32.274,0,0,0,157.1,65.887V50.278a2.609,2.609,0,0,0-2.468-2.6c-5.27-.3-9.681-3.59-11.3-9.558a2.6,2.6,0,0,0-3.961-1.455,67.47,67.47,0,0,1-43.98,11.245,2.6,2.6,0,0,0-2.831,2.6V65.887a32.274,32.274,0,0,0,19.933,29.825l-.049.121v2.226a13.485,13.485,0,0,1-13.5,13.475A24.246,24.246,0,0,0,88.9,113.7l-2.888-2.3a34.486,34.486,0,0,1-7.223-46.088A33.526,33.526,0,0,0,84.412,46.72V32.6A32.6,32.6,0,0,1,117.008,0h15.646a32.6,32.6,0,0,1,32.6,32.6V46.72a33.545,33.545,0,0,0,5.626,18.593A34.486,34.486,0,0,1,163.653,111.4Z" transform="translate(-0.005 17.315)" fill="#42434d"/>
|
||||
<path id="Tracé_452" data-name="Tracé 452" d="M218.381,299.1a32.358,32.358,0,0,1-25.51,0,20.2,20.2,0,0,0,.368-5.352l.049-.121a32.336,32.336,0,0,0,24.675,0l.049.121A20.194,20.194,0,0,0,218.381,299.1Z" transform="translate(-80.8 -180.603)" fill="#ffd6a6"/>
|
||||
<path id="Tracé_453" data-name="Tracé 453" d="M147.376,3.508a3.4,3.4,0,0,1-1.834,6.418q-1.537-.146-3.113-.147H126.784a32.6,32.6,0,0,0-32.6,32.6v3.966c0,2.342-1.63,2.266-1.63,4.163,0,17.218.07,16.128-.183,16.871-2.557,7.523-5.628,8.611-8.119,16.843A34.457,34.457,0,0,0,82.968,97.8a3.4,3.4,0,0,1-6.545,1.6,34.472,34.472,0,0,1,2.36-34.086A33.526,33.526,0,0,0,84.409,46.72V32.6A32.6,32.6,0,0,1,117,0h15.646a32.458,32.458,0,0,1,14.726,3.508Z" transform="translate(-0.002 17.315)" fill="#4d4e59"/>
|
||||
<path id="Tracé_454" data-name="Tracé 454" d="M159.085,186.545c4.87,3.26,1.158,10.8-4.371,8.859A32.065,32.065,0,0,1,133,164.927V149.545a2.605,2.605,0,0,1,2.833-2.6c1.249.113,2.621.2,4.1.248a4.968,4.968,0,0,1,4.8,4.974v7.543a32.156,32.156,0,0,0,14.349,26.833Z" transform="translate(-40.445 -81.725)" fill="#fff3e4"/>
|
||||
<path id="Tracé_455" data-name="Tracé 455" d="M113.365,342.8a2.074,2.074,0,0,1-1.227,3.716A24.3,24.3,0,0,0,87.78,370.821v8.56H80.609A2.608,2.608,0,0,1,78,376.773v-12.8a24.308,24.308,0,0,1,24.307-24.307,13.489,13.489,0,0,0,5.6-1.209l.081.176Z" transform="translate(-3.373 -210.82)" fill="#8ac4fd"/>
|
||||
<path id="Tracé_456" data-name="Tracé 456" d="M275.835,342.8a2.074,2.074,0,0,0,1.227,3.716,24.3,24.3,0,0,1,24.359,24.307v8.56h7.171a2.608,2.608,0,0,0,2.608-2.608v-12.8a24.308,24.308,0,0,0-24.307-24.307,13.49,13.49,0,0,1-5.6-1.209l-.081.176Z" transform="translate(-136.176 -210.82)" fill="#1689fb"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 6.7 KiB |
+5
-6
@@ -175,9 +175,9 @@ app.prepare()
|
||||
app.render(req, res, actualPage, queryParams)
|
||||
})
|
||||
|
||||
server.get('/ConfirmAccount/:token/:email/:url', (req, res) => {
|
||||
server.get('/ConfirmAccount/:token/:email', (req, res) => {
|
||||
const actualPage = '/ConfirmAccount'
|
||||
const queryParams = { token: req.params.token, email: req.params.email, url: req.params.url }
|
||||
const queryParams = { token: req.params.token, email: req.params.email }
|
||||
app.render(req, res, actualPage, queryParams)
|
||||
})
|
||||
|
||||
@@ -206,12 +206,11 @@ app.prepare()
|
||||
const email = req.body.email
|
||||
const nom = req.body.lastname
|
||||
const prenom = req.body.firstname
|
||||
console.log("prenom "+prenom)
|
||||
const url = req.body.adId
|
||||
console.log("Envoi d'email "+url)
|
||||
//const url = req.body.adId
|
||||
//console.log("Envoi d'email "+url)
|
||||
//TODO Ajouter le contexte de l'annonce
|
||||
//Envoyer URL
|
||||
const tokenUrl = `${process.env.FRONT_SERVER}/ConfirmAccount/${token}/${email}/${url}`
|
||||
const tokenUrl = `${process.env.FRONT_SERVER}/ConfirmAccount/${token}/${email}`
|
||||
console.log("tokenUrl "+tokenUrl)
|
||||
mailer.sendConfirmationEmail(nom, prenom, tokenUrl, email);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user