Compare commits

...

23 Commits

Author SHA1 Message Date
llaniau 63bd801281 retour de recette et page accueil 2021-02-22 18:01:33 +01:00
llaniau ddb1abbe70 sitemap 2021-02-18 14:00:35 +01:00
llaniau e7b9298a3b Param pre prod 2021-02-16 17:18:58 +01:00
llaniau ea69a5f308 Nouvelle page accueil redirect 2021-02-16 17:14:19 +01:00
llaniau 8fe612824b referencement , fonts 2021-02-15 18:17:04 +01:00
llaniau e02f90634b sitemap 2021-02-11 14:10:41 +01:00
llaniau c9284e800a sous titre 2021-02-11 10:24:49 +01:00
llaniau 3e26ba8bca MEP V2.6.2 2021-02-10 16:28:54 +01:00
llaniau f53743a03e Version V2.6.2 2021-02-10 15:15:21 +01:00
llaniau d90682c710 Referencement player 2021-02-10 15:03:31 +01:00
llaniau 5456dfd4c4 Optimisation referencement + geoloc 2021-02-08 09:14:31 +01:00
llaniau df81b18194 async defer 2021-02-02 08:37:21 +01:00
llaniau ed9bfff65d Optimisation referencement (typo, et async) 2021-02-02 08:37:05 +01:00
llaniau 39d29567ce Optimisation referencement 2021-02-01 22:38:27 +01:00
llaniau 10897f633d siteMap optimisé 2021-01-24 20:01:23 +01:00
llaniau 41916bc451 sitempa et robots.txt 2021-01-24 12:40:38 +01:00
llaniau 06e6b615b1 MEP V2.5.4 2021-01-21 14:46:23 +01:00
llaniau ce95cb2d66 Ne pas afficher champ geoloc 2021-01-21 13:44:28 +01:00
llaniau fe1747ea90 version V2.5.4 2021-01-20 18:17:32 +01:00
llaniau f6edb107b2 retour recette Corentin 2021-01-20 18:15:39 +01:00
llaniau 28ae59b7e4 lmodif taille image mini 2021-01-20 11:30:14 +01:00
llaniau 65b6a9b9dc Reglage partage facebook 2021-01-20 11:24:46 +01:00
llaniau d0ce6516dc Og head partage image 2021-01-20 11:03:58 +01:00
56 changed files with 3946 additions and 177 deletions
+1 -1
View File
@@ -8,7 +8,7 @@ const styles = theme => ({
padding: theme.spacing(0, 4),
},
text: {
fontFamily: 'Dosis',
fontFamily: '"Roboto", "Helvetica", "Arial", "sans-serif"',
fontSize: '1,2em',
fontWeight: '500',
color: theme.palette.primary.main,
+4 -3
View File
@@ -1,7 +1,7 @@
import React from 'react'
import PropTypes from 'prop-types'
import Head from 'next/head'
const OgHead = props => {
return (
<Head>
@@ -20,6 +20,8 @@ const OgHead = props => {
/>
<meta name="keywords" content={props.seo_key}/>
<meta key="og:image" property="og:image" content={props.image} />
<meta key="og:image:width" property="og:image:width" content="355" />
<meta key="og:image:height" property="og:image:height" content="200" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:site" content="@TalentsTube"/>
<meta name="twitter:title" content={props.seo_title}/>
@@ -29,8 +31,7 @@ const OgHead = props => {
{/* <meta httpEquiv='cache-control' content='no-store,no-cache'></meta>
<meta httpEquiv='expires' content='0'></meta>
<meta httpEquiv='pragma' content='no-cache'></meta> */}
{/* <link rel="canonical" href={ props.seo_url} /> */}
<link rel="canonical" href={ props.seo_url} />
</Head>
)
+1 -1
View File
@@ -72,7 +72,7 @@ export default function VideoVimeo(props) {
<section className={className +' '+classesOverride}>
<iframe className='player'
src={"https://player.vimeo.com/video/"+ videoId + options+"?autoplay="+autoplay}
src={"https://player.vimeo.com/video/"+ videoId + options+"?texttrack=fr&autoplay="+autoplay}
frameBorder="0"
title={title}
webkitallowfullscreen="true" mozallowfullscreen="true" allowFullScreen></iframe>
+199 -28
View File
@@ -128,6 +128,24 @@ const styles = theme => ({
},
player:{
width:"100px"
},
labelGeoloc:{
paddingLeft:"14px",
fontSize: "0.8rem",
color:"#1E2327",
fontFamily: '"Roboto", "Helvetica", "Arial", sans-serif',
fontWeight: "400",
lineHeight: "1",
letterSpacing: "0.00938em", }
,conteneurGoogle:{
border:"1px solid rgb(200, 200, 200)",
borderRadius :"5px",
padding:"5px 0px",
},
conteneurGoogleComposant:{
paddingLeft:"14px"
}
});
@@ -159,12 +177,25 @@ class Answer extends Component {
this.onChange = this.onChange.bind(this);
}
state = {
file: null,
firstname: '',
lastname: '',
phone: '',
currentJob: '',
geoloc: '',
value:'',
route: '',
street_number: '',
locality: '',
administrative_area_level_2: '',
administrative_area_level_1: '',
country: '',
postal_code: '',
formatted_address:"",
lat:"",
lng:"",
linkedin: '',
twitter: '',
website: '',
@@ -187,6 +218,18 @@ class Answer extends Component {
lastname: this.state.lastname,
phone: this.state.phone,
currentJob: this.state.currentJob,
geoloc: this.state.geoloc,
value: this.state.value,
route: this.state.route,
street_number: this.state.street_number,
locality: this.state.locality,
administrative_area_level_2: this.state.administrative_area_level_2,
administrative_area_level_1: this.state.administrative_area_level_1,
country: this.state.country,
postal_code: this.state.postal_code,
formatted_address : this.state.formatted_address,
lat:this.state.lat,
lng: this.state.lng,
linkedin: this.state.linkedin,
twitter: this.state.twitter,
website: this.state.website,
@@ -216,6 +259,18 @@ class Answer extends Component {
lastname: this.props.user.lastname,
phone: this.props.user.phone,
currentJob: this.props.user.currentJob,
value: this.props.user.geoloc && this.props.user.geoloc[0].formatted_address ? this.props.user.geoloc[0].formatted_address :"",
geoloc: this.props.user.geoloc && this.props.user.geoloc[0].formatted_address ? this.props.user.geoloc[0].formatted_address :"",
route: "",
street_number: "",
locality: "",
administrative_area_level_2: "",
administrative_area_level_1: "",
country: "",
postal_code: "",
formatted_address:"",
lat:"",
lng:"",
linkedin: this.props.user.linkedin,
twitter: this.props.user.twitter,
website: this.props.user.website,
@@ -227,6 +282,7 @@ class Answer extends Component {
cvLink: this.props.user.cv
})
console.log(this.state);
}
inputFilesystemChange = (e) => {
@@ -321,27 +377,97 @@ class Answer extends Component {
if (e.target.value === '') {
console.log('cleared');
this.props.onSelectionChanged('');
//this.props.onSelectionChanged('');
}
}
onSuggestionSelected = (suggestion) => {
remplirLocation = (typeDonnee, donnee) =>{
console.log("DEBUT remplirLocation");
if(typeDonnee=='"street_number"') {
console.log(typeDonnee);
console.log(donnee);
this.setState({ street_number: donnee.replace('"', '') })
}else if(typeDonnee=='"route"') {
console.log(typeDonnee);
console.log(donnee);
this.setState({ route: donnee.replace('"', '') })
}else if(typeDonnee=='"locality"') {
console.log(typeDonnee);
console.log(donnee);
this.setState({ locality: donnee.replace('"', '') })
}else if(typeDonnee=='"administrative_area_level_2"') {
console.log(typeDonnee);
console.log(donnee);
this.setState({ administrative_area_level_2: donnee.replace('"', '') })
}else if(typeDonnee=='"administrative_area_level_1"') {
console.log(typeDonnee);
console.log(donnee);
this.setState({ administrative_area_level_1: donnee.replace('"', '') })
}else if(typeDonnee=='"country"') {
console.log(typeDonnee);
console.log(donnee);
this.setState({ country: donnee.replace('"', '') })
}else if(typeDonnee=='"postal_code"') {
console.log(typeDonnee);
console.log(donnee);
this.setState({ postal_code: donnee.replace('"', '') })
}
console.log("FIN remplirLocation");
}
onSuggestionSelected = (suggestion) => {
console.log('Selected suggestion:', suggestion)
const address = suggestion.description;
this.setState({ geoloc: address})
this.setState({
value: address
});
geocodeByAddress(address)
.then(address => {
console.log('Selected ' + JSON.stringify(address[0]));
this.props.onSelectionChanged(address[0]);
if(address[0].address_components[0]){
this.remplirLocation(JSON.stringify(address[0].address_components[0].types[0]), JSON.stringify(address[0].address_components[0].long_name))
}
if(address[0].address_components[1]){
this.remplirLocation(JSON.stringify(address[0].address_components[1].types[0]), JSON.stringify(address[0].address_components[1].long_name))
}
if(address[0].address_components[2]){
this.remplirLocation(JSON.stringify(address[0].address_components[2].types[0]), JSON.stringify(address[0].address_components[2].long_name))
}
if(address[0].address_components[3]){
this.remplirLocation(JSON.stringify(address[0].address_components[3].types[0]), JSON.stringify(address[0].address_components[3].long_name))
}
if(address[0].address_components[4]){
this.remplirLocation(JSON.stringify(address[0].address_components[4].types[0]), JSON.stringify(address[0].address_components[4].long_name))
}
if(address[0].address_components[5]){
this.remplirLocation(JSON.stringify(address[0].address_components[5].types[0]), JSON.stringify(address[0].address_components[5].long_name))
}
if(address[0].address_components[6]){
this.remplirLocation(JSON.stringify(address[0].address_components[6].types[0]), JSON.stringify(address[0].address_components[6].long_name))
}
if(address[0].geometry){
let gps =JSON.stringify(address[0].geometry.location);
const obj = JSON.parse(gps);
this.setState({ formatted_address: JSON.stringify(address[0].formatted_address) })
this.setState({ lat: obj.lat.toString()})
this.setState({ lng: obj.lng.toString()})
}
// console.log("GEOLOC ON geocodeByAddress")
// console.log(this.state.geoloc)
// document.getElementById("geoloc").value =JSON.stringify(address[0]);
// this.props.onSelectionChanged(address[0]);
})
.catch(error => console.error('Error', error))
}
onSuggestionSelected(suggestion) {
// Add your business logic here. In this case we just log...
console.log('Selected suggestion:', suggestion)
}
@@ -372,7 +498,7 @@ class Answer extends Component {
handleChange = (e) => {
handleChange = (e) => {
this.setState({ [e.target.name]: e.target.value })
}
@@ -390,6 +516,21 @@ class Answer extends Component {
data.append('lastname', this.state.lastname)
data.append('phone', this.state.phone)
data.append('currentJob', this.state.currentJob)
console.log("GEOLOC ON SUBMIT")
console.log(this.state)
data.append('geoloc', this.state.geoloc)
data.append('street_number', this.state.street_number.replace('"', ''))
data.append('route', this.state.route.replace('"', ''))
data.append('locality', this.state.locality.replace('"', ''))
data.append('administrative_area_level_2', this.state.administrative_area_level_2.replace('"', ''))
data.append('administrative_area_level_1', this.state.administrative_area_level_1.replace('"', ''))
data.append('country', this.state.country.replace('"', ''))
data.append('postal_code', this.state.postal_code.replace('"', ''))
data.append('formatted_address', this.state.formatted_address.replace('"', ''))
data.append('lat', this.state.lat)
data.append('lng', this.state.lng)
//
data.append('linkedin', this.state.linkedin)
data.append('twitter', this.state.twitter)
data.append('website', this.state.website)
@@ -448,6 +589,10 @@ class Answer extends Component {
value: this.state.address,
onChange: this.onChange,
}
const searchOptions = {
componentRestrictions: { country: ['fr'] },
}
return (
<section className={classes.container}>
@@ -490,7 +635,7 @@ class Answer extends Component {
<Button className={classes.remplacerButton} onClick={this.openDialog.bind(this)}>
Remplacer ma vidéo
</Button>
<Dialog open={this.state.open} onEnter={console.log("Hey.")}>
<Dialog open={this.state.open}>
<DialogTitle> Souhaitez-vous remplacer votre vidéo de réponse ?</DialogTitle>
<DialogContent className={classes.popup}> Cette vidéo et tous les éléments de votre candidature seront définitivement supprimés. Vous pourrez importer ou réaliser une nouvelle vidéo de réponse. </DialogContent>
<DialogActions>
@@ -519,27 +664,7 @@ class Answer extends Component {
helperText={!!_.isEmpty(this.state.lastname) && "Veuillez saisir votre nom"}
required
/>
<div style={{ position: 'relative' }}>
<GooglePlaceAutocomplete
style={{ left: 0, right: 0, zIndex: 1, width: 800 }}
name="location"
label="Location"
onSuggestionSelected={this.onSuggestionSelected}
textFieldProps={{ onChange: (e) => this.onChange(e), value: this.state.value, placeholder: 'Chercher votre adresse', fullWidth: true}}
types={['(regions)']}
renderTarget={() => (
<div
style={{
width:'600px',
zIndex:1
}}
>
</div>
)}
/>
</div>
<TextField
name="firstname"
required
@@ -554,6 +679,52 @@ class Answer extends Component {
helperText={!!_.isEmpty(this.state.firstname) && "Veuillez saisir votre prénom"}
/>
<div
className={classes.conteneurGoogle}
classes={{ root: classes.rootTextfield }}
style={{ position: 'relative', zIndex:2, width: '100%' }}>
<label htmlFor="outlined-required"
className={classes.labelGeoloc}>
Adresse
</label>
<div className={classes.conteneurGoogleComposant}>
<GooglePlaceAutocomplete
style={{ paddingLeft:'14px !important', left: 0, right: 0, zIndex: '2 !important', width: '100%' }}
name="location"
label="Location"
id="outlined-required"
variant="outlined"
textFieldProps={{ id: "outlined-required" }}
className={classes.textField}
classes={{ root: classes.rootTextfield }}
options={this.searchOptions}
onSuggestionSelected={this.onSuggestionSelected}
textFieldProps={{ onChange: (e) => this.onChange(e), value: this.state.value, placeholder: 'Ex : Rue de Rivoli, Paris, France', fullWidth: true, size:"small"}}
types={['(regions)']}
componentRestrictions={{country: 'fr'}}
renderTarget={() => (
<div
style={{
width: '100%',
zIndex:9
}}
>
</div>
)}
/>
</div>
{/* <Input
name="geoloc"
id="geoloc"
label="geoloc"
ref="geoloc"
onChange={this.handleChange}
value={this.state.geoloc =='null' || this.state.geoloc =='' ? '' :this.state.geoloc}
/> */}
</div>
<TextField
name="phone"
id="outlined"
@@ -664,7 +835,7 @@ function mapStateToProps(state, ownProps) {
cvLink : state.mediaCv.message,
loading: !!state.media.loading,
cv : true,
user: state.user,
// user: state.user,
// loading: !!state.user.loading,
pictureLoading: !!state.user.pictureLoading,
errors: state.user.errors || ownProps.errors,
+1 -1
View File
@@ -139,7 +139,7 @@ class CompanyRowComponent extends React.Component {
render() {
const { classes, theme, rowData } = this.props;
const imgDefaultUrl = "https://www.talentstube.com/static/images/default/default_picture_company.svg"
const imgDefaultUrl = "https://blog.talentstube.com/wp-content/uploads/2021/01/default_picture_company.jpg"
const imgUrl = (rowData.presentation_video && rowData.presentation_video.thumbnails[0] && rowData.presentation_video.thumbnails[0].sizes[4]) ? rowData.presentation_video.thumbnails[0].sizes[4].link : imgDefaultUrl
const logoUrl = publicRuntimeConfig.symphonyUrl + publicRuntimeConfig.cachedMediaUrl + rowData.logo
+2 -2
View File
@@ -59,7 +59,7 @@ const styles = theme => ({
titleContainer: {
color: theme.palette.primary.darkMain,
fontSize: '1.5em',
fontFamily: 'Dosis',
fontFamily: '"Roboto", "Helvetica", "Arial", "sans-serif"',
fontWeight: '600',
[theme.breakpoints.up('md')]: {
fontSize: '1.2em',
@@ -113,7 +113,7 @@ const styles = theme => ({
},
},
titleReactApp: {
fontFamily: 'Dosis',
fontFamily: '"Roboto", "Helvetica", "Arial", "sans-serif"',
fontSize: '1.5em',
fontWeight: '600',
paddingTop: theme.spacing(4),
@@ -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)
+19 -31
View File
@@ -1,31 +1,21 @@
import React, { Fragment } from 'react'
import OgHead from '../atoms/OgHead'
import Router from 'next/router'
import { withStyles } from '@material-ui/core/styles';
import getConfig from 'next/config'
import Typography from '@material-ui/core/Typography';
import Button from '@material-ui/core/Button';
import Avatar from '@material-ui/core/Avatar';
import Card from '@material-ui/core/Card';
import Chip from '@material-ui/core/Chip';
import CardContent from '@material-ui/core/CardContent';
import CardMedia from '@material-ui/core/CardMedia';
import CardHeader from '@material-ui/core/CardHeader';
import KeyboardArrowleftIcon from '@material-ui/icons/PlayArrowRounded';
import IconText from '../atoms/IconText';
import IconTextInline from './../atoms/IconTextInline';
import SocialShare from './SocialShare';
import SimpleCollapse from '../atoms/SimpleCollapse';
import _ from "lodash/string";
import Ar from "lodash/array";
import Hidden from '@material-ui/core/Hidden';
import Link from 'next/link'
import withWidth, { isWidthUp } from '@material-ui/core/withWidth'
import { isWidthUp } from '@material-ui/core/withWidth'
import JobPosting from '../atoms/JobPosting'
import Moment from 'react-moment';
import StickyBox from "react-sticky-box";
const renderLoader = () => <p>Chargement</p>;
const styles = theme => ({
primary: {
color: theme.palette.primary.main,
@@ -342,7 +332,7 @@ const styles = theme => ({
padding: theme.spacing(1, 0),
whiteSpace: 'pre-line',
textAlign: 'justify',
lineHeight : '2em',
lineHeight : '1.5em',
color: '#1E2327'
},
ul:{
@@ -676,20 +666,18 @@ const { publicRuntimeConfig } = getConfig()
function OffreDetail(props) {
let { classes, offre, isCandidature } = props;
const logoUrl = (offre.company ? publicRuntimeConfig.symphonyUrl + publicRuntimeConfig.cachedMediaUrl + offre.company.logo : "https://www.talentstube.com/static/images/default/default_picture_company.svg")
const DefaultUrl = "https://www.talentstube.com/static/images/default/default_picture_company.svg"
const imgUrl = (offre.company && offre.company.presentation_video && offre.company.presentation_video.thumbnails && offre.company.presentation_video.thumbnails[0] && offre.company.presentation_video.thumbnails[0].sizes[2]) ? offre.company.presentation_video.thumbnails[0].sizes[2].link : DefaultUrl
const imgUrlDesktop = (offre.company && offre.company.presentation_video && offre.company.presentation_video.thumbnails && offre.company.presentation_video.thumbnails[0] && offre.company.presentation_video.thumbnails[0].sizes[4]) ? offre.company.presentation_video.thumbnails[0].sizes[4].link : DefaultUrl
const imgUrlOffre = (offre && offre.video && offre.video.thumbnails && offre.video.thumbnails[0] && offre.video.thumbnails[0].sizes[2]) ? offre.video.thumbnails[0].sizes[2].link : DefaultUrl
const imgUrlDesktopOffre = (offre && offre.video && offre.video.thumbnails && offre.video.thumbnails[0] && offre.video.thumbnails[0].sizes[4]) ? offre.video.thumbnails[0].sizes[4].link : DefaultUrl
const imgUrlTerritoire = (offre.territories && offre.territories[0] && offre.territories[0].territory && offre.territories[0].territory.presentation_video.thumbnails && offre.territories[0].territory.presentation_video.thumbnails[0] && offre.territories[0].territory.presentation_video.thumbnails[0].sizes[2]) ? offre.territories[0].territory.presentation_video.thumbnails[0].sizes[2].link : DefaultUrl
const imgUrlDesktopTerritoire = (offre.territories && offre.territories[0] && offre.territories[0].territory.presentation_video && offre.territories[0].territory.presentation_video.thumbnails && offre.territories[0].territory.presentation_video.thumbnails[0] && offre.territories[0].territory.presentation_video.thumbnails[0].sizes[4]) ? offre.territories[0].territory.presentation_video.thumbnails[0].sizes[4].link : DefaultUrl
const logoUrl = (offre.company ? publicRuntimeConfig.symphonyUrl + publicRuntimeConfig.cachedMediaUrl + offre.company.logo : "https://blog.talentstube.com/wp-content/uploads/2021/01/default_picture_company.jpg")
const DefaultUrl = "https://blog.talentstube.com/wp-content/uploads/2021/01/default_picture_company.jpg"
const imgUrl = (offre.company && offre.company.presentation_video && offre.company.presentation_video.thumbnails && offre.company.presentation_video.thumbnails[0] && offre.company.presentation_video.thumbnails[0].sizes[3]) ? offre.company.presentation_video.thumbnails[0].sizes[3].link : DefaultUrl
const imgUrlDesktop = (offre.company && offre.company.presentation_video && offre.company.presentation_video.thumbnails && offre.company.presentation_video.thumbnails[0] && offre.company.presentation_video.thumbnails[0].sizes[3]) ? offre.company.presentation_video.thumbnails[0].sizes[3].link : DefaultUrl
const imgUrlOffre = (offre && offre.video && offre.video.thumbnails && offre.video.thumbnails[0] && offre.video.thumbnails[0].sizes[3]) ? offre.video.thumbnails[0].sizes[3].link : DefaultUrl
const imgUrlDesktopOffre = (offre && offre.video && offre.video.thumbnails && offre.video.thumbnails[0] && offre.video.thumbnails[0].sizes[3]) ? offre.video.thumbnails[0].sizes[3].link : DefaultUrl
const imgUrlTerritoire = (offre.territories && offre.territories[0] && offre.territories[0].territory && offre.territories[0].territory.presentation_video.thumbnails && offre.territories[0].territory.presentation_video.thumbnails[0] && offre.territories[0].territory.presentation_video.thumbnails[0].sizes[3]) ? offre.territories[0].territory.presentation_video.thumbnails[0].sizes[3].link : DefaultUrl
const imgUrlDesktopTerritoire = (offre.territories && offre.territories[0] && offre.territories[0].territory.presentation_video && offre.territories[0].territory.presentation_video.thumbnails && offre.territories[0].territory.presentation_video.thumbnails[0] && offre.territories[0].territory.presentation_video.thumbnails[0].sizes[3]) ? offre.territories[0].territory.presentation_video.thumbnails[0].sizes[3].link : DefaultUrl
const socialShareUrl = typeof window !== 'undefined' ? window.location : publicRuntimeConfig.frontServerUrl + `/Offre/${offre.id}-${_.kebabCase(offre.title)}`;
const entrepriseLink = (offre.company && `/Entreprise/${offre.company.id}-${_.kebabCase(offre.company.brand_name)}`);
const territoryVideoUrlTab = (offre.territories && offre.territories[0] && offre.territories[0].territory) ? offre.territories[0].territory.presentation_video.cdn_url.split('/') : '';
const territoryVideoId = territoryVideoUrlTab[2]
let descriptionSEO = offre.company && offre.company.brand_name+ " recrute en vidéo un(e) "+offre.title+", "+(offre.location && offre.location.gmap_address.formatted_address)+". Envoyez votre candidature en vidéo. "
let titleSEO = "Offre d'emploi vidéo "+offre.title+" - "+(offre.company && offre.company.brand_name)+", "+(offre.location && offre.location.gmap_address.formatted_address)+" | Talents Tube "
let jobVille=""
let jobDpt=""
let jobPays=""
@@ -753,7 +741,7 @@ function OffreDetail(props) {
teletravail=null;
}
const imgDefaultUrl = "https://www.talentstube.com/static/images/default/default_picture_company.svg"
const imgDefaultUrl = "https://blog.talentstube.com/wp-content/uploads/2021/01/default_picture_company.jpg"
{/* CONST MARQUE EMPLOYEUR */}
const marqueEmployeur = offre.company && offre.company.presentation_video && !offre.is_promoted && (
<div className={classes.container + ' ' + classes.discoverContainerCompany}>
@@ -763,7 +751,7 @@ function OffreDetail(props) {
{/* <a href={entrepriseLink}> */}
{/* const entrepriseLink = (offre.company && `/Entreprise/${offre.company.id}-${_.kebabCase(offre.company.brand_name)}`); */}
<Link href={`/Player?id=/Offre/${offre.id}-${_.kebabCase(offre.title)}&videoId=${Ar.last(_.split(offre.company.presentation_video.cdn_url, '/'))}&type=Entreprise`} >
<Link href={`/Player?id=${offre.company.id}&url=/Offre/${offre.id}-${_.kebabCase(offre.title)}&videoId=${Ar.last(_.split(offre.company.presentation_video.cdn_url, '/'))}&typeEntite=Entreprise&nameCompany=${offre.company.brand_name}&nameOffre=`} >
<div className={classes.discoverContainerImage}>
<img src={isWidthUp('sm', props.width) ? imgUrlDesktop : imgUrl} alt={offre.company.brand_name && offre.company.brand_name} />
<Typography variant="h3" component="h3" gutterBottom className={ classes.voirEntreprise} align="center">
@@ -844,7 +832,7 @@ function OffreDetail(props) {
{/* <VideoVimeo {...isCandidature == 'true' ? 'classes={{ video: classes.videoOffre }}' : ''} videoId={Ar.last(_.split(offre.video.cdn_url, '/'))} autoplay='1' /> */}
<div className={classes.contentContainer}>
<Link href={`/Player?id=/Offre/${offre.id}-${_.kebabCase(offre.title)}&videoId=${Ar.last(_.split(offre.video.cdn_url, '/'))}&type=Offre`} >
<Link href={`/Player?id=${offre.id}&url=/Offre/${offre.id}-${_.kebabCase(offre.title)}&videoId=${Ar.last(_.split(offre.video.cdn_url, '/'))}&typeEntite=Offre&nameCompany=${offre.company && offre.company.brand_name}&nameOffre=${offre.title}`} >
<div className={classes.discoverContainerImage}>
<img src={isWidthUp('sm', props.width) ? imgUrlDesktopOffre : imgUrlOffre} alt={offre.company.brand_name && offre.company.brand_name} />
<div className={classes.containerPoste}>
@@ -892,7 +880,7 @@ function OffreDetail(props) {
{/* <a href={entrepriseLink}> */}
{/* const entrepriseLink = (offre.company && `/Entreprise/${offre.company.id}-${_.kebabCase(offre.company.brand_name)}`); */}
<Link href={`/Player?id=/Offre/${offre.id}-${_.kebabCase(offre.title)}&videoId=${Ar.last(_.split(offre.company.presentation_video.cdn_url, '/'))}&type=Entreprise`} >
<Link href={`/Player?id=${offre.company.id}&url=/Offre/${offre.id}-${_.kebabCase(offre.title)}&videoId=${Ar.last(_.split(offre.company.presentation_video.cdn_url, '/'))}&typeEntite=Entreprise&nameCompany=${offre.company.brand_name}&nameOffre=`} >
<div className={classes.discoverContainerImage}>
<img src={isWidthUp('sm', props.width) ? imgUrlDesktop : imgUrl} alt={offre.company.brand_name && offre.company.brand_name} />
<Typography variant="h3" component="h3" gutterBottom className={ classes.voirEntreprise} align="center">
@@ -912,7 +900,7 @@ function OffreDetail(props) {
{offre.territories && territoryVideoId && (
<div className={classes.container + ' ' + classes.discoverContainerTerritory}>
<section>
<Link href={`/Player?id=/Offre/${offre.id}-${_.kebabCase(offre.title)}&videoId=${territoryVideoId}&type=Territoire`} >
<Link href={`/Player?id=${offre.territories[0].territory.id}&url=/Offre/${offre.id}-${_.kebabCase(offre.title)}&videoId=${territoryVideoId}&typeEntite=Territoire&nameCompany=${offre.territories[0].territory.brand_name}&nameOffre=`} >
<div className={classes.discoverContainerImage}>
<img src={isWidthUp('sm', props.width) ? imgUrlDesktopTerritoire : imgUrlTerritoire} alt={(!!!offre.territories) ? offre.territories[0].territory.brand_name : ''} />
<Typography variant="h3" component="h3" gutterBottom className={classes.title + ' ' + classes.voirTerritoire} align="center">
@@ -998,7 +986,7 @@ function OffreDetail(props) {
<Hidden mdUp>
<section className={classes.contentContainerMobile}>
<Link href={`/Player?id=/Offre/${offre.id}-${_.kebabCase(offre.title)}&videoId=${Ar.last(_.split(offre.video && offre.video.cdn_url, '/'))}&type=Offre`} >
<Link href={`/Player?id=${offre.id}&url=/Offre/${offre.id}-${_.kebabCase(offre.title)}&videoId=${Ar.last(_.split(offre.video && offre.video.cdn_url, '/'))}&typeEntite=Offre&nameCompany=${offre.company && offre.company.brand_name}&nameOffre=${offre.title}`} >
<div className={classes.discoverContainerImage}>
<img src={isWidthUp('xs', props.width) ? imgUrlDesktopOffre : imgUrlOffre} alt={offre.company && offre.company.brand_name && offre.company.brand_name} />
<div >
@@ -1062,7 +1050,7 @@ function OffreDetail(props) {
{/* <a href={entrepriseLink}> */}
{/* const entrepriseLink = (offre.company && `/Entreprise/${offre.company.id}-${_.kebabCase(offre.company.brand_name)}`); */}
<Link href={`/Player?id=/Offre/${offre.id}-${_.kebabCase(offre.title)}&videoId=${Ar.last(_.split(offre.company.presentation_video.cdn_url, '/'))}&type=Entreprise`} >
<Link href={`/Player?id=${offre.company.id}&url=/Offre/${offre.id}-${_.kebabCase(offre.title)}&videoId=${Ar.last(_.split(offre.company.presentation_video.cdn_url, '/'))}&typeEntite=Entreprise&nameCompany=${offre.company.brand_name}&nameOffre=`} >
<div className={classes.discoverContainerImage}>
<img src={isWidthUp('xs', props.width) ? imgUrlDesktop : imgUrl} alt={offre.company.brand_name && offre.company.brand_name} />
<Typography variant="h3" component="h3" gutterBottom className={ classes.voirEntrepriseMobile} align="center">
@@ -1082,7 +1070,7 @@ function OffreDetail(props) {
{offre.territories && territoryVideoId && (
<div className={classes.container + ' ' + classes.discoverContainerTerritory}>
<section>
<Link href={`/Player?id=/Offre/${offre.id}-${_.kebabCase(offre.title)}&videoId=${territoryVideoId}&type=Territoire`} >
<Link href={`/Player?id=${offre.territories[0].territory.id}&url=/Offre/${offre.id}-${_.kebabCase(offre.title)}&videoId=${territoryVideoId}&typeEntite=Territoire&nameCompany=${offre.territories[0].territory.brand_name}&nameOffre=${offre.title}`} >
<div className={classes.discoverContainerImage}>
<img src={isWidthUp('sm', props.width) ? imgUrlDesktopTerritoire : imgUrlTerritoire} alt={(!!!offre.territories) ? offre.territories[0].territory.brand_name : ''} />
<Typography variant="h3" component="h3" gutterBottom className={classes.title + ' ' + classes.voirTerritoireMobile} align="center">
@@ -1103,4 +1091,4 @@ function OffreDetail(props) {
</Fragment>
)
}
export default withStyles(styles)(withWidth()(OffreDetail));
export default withStyles(styles)(OffreDetail);
+1 -1
View File
@@ -42,7 +42,7 @@ const styles = theme => ({
},
margin: '1vh 2vh 1vh 2vh',
[theme.breakpoints.up('sm')]: {
margin: '1vh 0 1vh 0',
margin: '2vh 0 2vh 0',
},
},
detailsContainer: {
@@ -22,8 +22,8 @@ const styles = theme => ({
},
askToInstallText: {
fontSize: '1.4em',
fontWeight: '500',
fontFamily: 'Dosis',
fontWeight: '600',
fontFamily: '"Roboto", "Helvetica", "Arial", "sans-serif"',
},
installApp: {
width: '100%',
+4 -4
View File
@@ -95,11 +95,11 @@ export default function SocialShare(props) {
<a href={"http://twitter.com/share?url=" + encodeURIComponent(props.url)} target="_blank">
<Icon className={clsx(classes.icon, classes.TwitterIcon, 'fab fa-twitter')} color="secondary" />
</a>
<a href={"https://www.linkedin.com/shareArticle?mini=true&url=" + encodeURIComponent(props.url + "&title=Talent's Tube")} target="_blank">
<a href={"https://www.linkedin.com/shareArticle?mini=true&url=" + encodeURIComponent(props.url + "&title=Talents Tube")} target="_blank">
<Icon className={clsx(classes.icon, classes.LinkedinIcon, 'fab fa-linkedin-in')} color="secondary" />
</a>
{/* change because of https://github.com/zeit/next.js/blob/master/errors/invalid-href-passed.md */}
<a href={"mailto:?subject=Offre d'emploi Talent's Tube&body=Regardez cette offre : " + props.url} target="_blank"s>
<a href={"mailto:?subject=Offre d'emploi Talents Tube&body=Regardez cette offre : " + props.url} target="_blank"s>
<Icon className={clsx(classes.icon, classes.MailIcon, 'fas fa-envelope')} color="secondary" />
</a>
</Hidden>
@@ -110,11 +110,11 @@ export default function SocialShare(props) {
<a href={"http://twitter.com/share?url=" + encodeURIComponent(props.url)} target="_blank">
<Icon className={clsx(classes.icon, classes.TwitterIconMobile, 'fab fa-twitter')} color="secondary" />
</a>
<a href={"https://www.linkedin.com/shareArticle?mini=true&url=" + encodeURIComponent(props.url + "&title=Talent's Tube")} target="_blank">
<a href={"https://www.linkedin.com/shareArticle?mini=true&url=" + encodeURIComponent(props.url + "&title=Talents Tube")} target="_blank">
<Icon className={clsx(classes.icon, classes.LinkedinIconMobile, 'fab fa-linkedin-in')} color="secondary" />
</a>
{/* change because of https://github.com/zeit/next.js/blob/master/errors/invalid-href-passed.md */}
<a href={"mailto:?subject=Offre d'emploi Talent's Tube&body=Regardez cette offre : " + props.url} target="_blank"s>
<a href={"mailto:?subject=Offre d'emploi Talents Tube&body=Regardez cette offre : " + props.url} target="_blank"s>
<Icon className={clsx(classes.icon, classes.MailIconMobile, 'fas fa-envelope')} color="secondary" />
</a>
</Hidden>
+3 -3
View File
@@ -213,7 +213,7 @@ class Grid extends Component {
NextButton: {
fontSize: '0.9em',
fontWeight: '600',
fontFamily: 'Dosis',
fontFamily: '"Roboto", "Helvetica", "Arial", "sans-serif"',
textTransform: 'inherit',
marginLeft: '64px',
marginRight: '64px',
@@ -229,7 +229,7 @@ class Grid extends Component {
PreviousButton: {
fontSize: '0.9em',
fontWeight: '600',
fontFamily: 'Dosis',
fontFamily: '"Roboto", "Helvetica", "Arial", "sans-serif"',
textTransform: 'inherit',
marginLeft: '64px',
marginRight: '64px',
@@ -245,7 +245,7 @@ class Grid extends Component {
PageDropdown: {
fontSize: '0.9em',
fontWeight: '600',
fontFamily: 'Dosis',
fontFamily: '"Roboto", "Helvetica", "Arial", "sans-serif"',
// display: 'none',
},
}
+1 -1
View File
@@ -144,7 +144,7 @@ class LayoutBack extends Component {
</Hidden>
<Dialog open={this.state.open} onEnter={console.log("Hey.")}>
<Dialog open={this.state.open}>
<DialogTitle className={classes.popup}> Souhaitez-vous poursuivre votre candidature ?</DialogTitle>
<DialogContent className={classes.popup}> Si vous cliquez sur le bouton Supprimer, tous les éléments associés à votre candidature (vidéo, CV) seront définitivement supprimés. </DialogContent>
<DialogActions className={classes.popup}>
+4 -2
View File
@@ -10,7 +10,9 @@ import SocialShare from '../organisms/SocialShare'
import withWidth, { isWidthUp } from '@material-ui/core/withWidth'
import Hidden from '@material-ui/core/Hidden';
import Link from 'next/link'
import getConfig from 'next/config'
import _ from "lodash/string";
const { publicRuntimeConfig } = getConfig()
const styles = theme => ({
foot: {
display: 'flex',
@@ -146,4 +148,4 @@ LayoutOffre.propTypes = {
offre: PropTypes.object,
};
export default withStyles(styles)(withWidth()(LayoutOffre))
export default withStyles(styles)(LayoutOffre)
+1 -1
View File
@@ -8,7 +8,7 @@ const styles = theme => ({
alignItems: 'center',
textAlign: 'center',
justifyContent: 'center',
fontFamily: 'Dosis',
fontFamily: '"Roboto", "Helvetica", "Arial", "sans-serif"',
fontWeight: '500',
fontSize: '1em',
padding: theme.spacing(6,0),
+2 -2
View File
@@ -55,8 +55,8 @@ module.exports = withPlugins(
blogUrl: 'https://blog.talentstube.com',
frontServerUrl: 'https://pp.app.talentstube.com/',
cvThequeUrl: 'https://recruteur.talentstube.com',
version : 'V2.5.2',
adListDefaultUrl: '/statique/images/default/default_picture_company.svg',
version : 'V2.7.2',
adListDefaultUrl: '/statique/images/default/default_picture_company.jpg',
cachedMediaUrl: '/media/cache/profile_thumb/uploads/img/',
postedContentUrl: '/uploads/img/',
postedContentCv: '/uploads/cv/',
+499 -24
View File
@@ -1,28 +1,503 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://app.talentstube.com/Candidature</loc>
<lastmod>2019-09-17</lastmod>
</url>,<url>
<loc>https://app.talentstube.com/Cgu</loc>
<lastmod>2019-09-17</lastmod>
</url>,<url>
<loc>https://app.talentstube.com/Confidentialite</loc>
<lastmod>2019-11-04</lastmod>
</url>,<url>
<loc>https://app.talentstube.com/Entreprises</loc>
<lastmod>2019-09-17</lastmod>
</url>,<url>
<loc>https://app.talentstube.com/Help</loc>
<lastmod>2019-10-11</lastmod>
</url>,<url>
<loc>https://app.talentstube.com/Login</loc>
<lastmod>2019-10-14</lastmod>
</url>,<url>
<loc>https://app.talentstube.com/MentionsLegales</loc>
<lastmod>2019-11-04</lastmod>
</url>,<url>
<loc>https://app.talentstube.com/Offres</loc>
<lastmod>2019-10-16</lastmod>
<loc>https://www.talentstube.com/Player?id=135&amp;url=/Offre/135-commercial-b-to-c-f-h&amp;videoId=502499843&amp;typeEntite=Offre&amp;nameCompany=Fym%20Action&amp;nameOffre=Commercial%20B%20to%20C%20(F/H)</loc>
<lastmod>2021-02-10</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://www.talentstube.com/Player?id=133&amp;url=/Offre/133-gestionnaire-de-copropriete-f-h&amp;videoId=500395879&amp;typeEntite=Offre&amp;nameCompany=Cabinet%20JOURDAN&amp;nameOffre=Gestionnaire%20de%20co%20propriete</loc>
<lastmod>2021-02-10</lastmod>
<priority>1.00</priority>
</url>
</urlset>
<url>
<loc>https://www.talentstube.com/Player?id=132&amp;url=/Offre/132-comptable-f-h&amp;videoId=495504495&amp;typeEntite=Offre&amp;nameCompany=Cabinet%20JOURDAN&amp;nameOffre=Comptable%20(F/H)</loc>
<lastmod>2021-02-10</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://www.talentstube.com/Player?id=130&amp;url=/Offre/130-assistant-f-h&amp;videoId=495156742&amp;typeEntite=Offre&amp;nameCompany=Cabinet%20JOURDAN&amp;nameOffre=Assistant%20(F/H)</loc>
<lastmod>2021-02-10</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://www.talentstube.com/Player?id=131&amp;url=/Offre/131-poseur-f-h&amp;videoId=494089386&amp;typeEntite=Offre&amp;nameCompany=TPC%20Ouest&amp;nameOffre=Poseur%20(F/H)</loc>
<lastmod>2021-02-10</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://www.talentstube.com/Player?id=131&amp;url=/Offre/140-aide-a-domicile-f-h&amp;videoId=507891163&amp;typeEntite=Offre&amp;nameCompany=ADMR56&amp;nameOffre=Aide%20a%20domicile</loc>
<lastmod>2021-02-10</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://www.talentstube.com/Player?id=135&amp;url=/Offre/129-commercial-b-to-b-f-h&amp;videoId=491331138&amp;typeEntite=Offre&amp;nameCompany=Fym%20Action&amp;nameOffre=Commercial%20B%20to%20b%20(F/H)</loc>
<lastmod>2021-02-10</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://www.talentstube.com/Player?id=122&amp;url=/Offre/122-chauffeurs-spl-f-h&amp;videoId=482599011&amp;typeEntite=Offre&amp;nameCompany=AER%20Recyclage&amp;nameOffre=Chauffeurs%20SPL%20(F/H)</loc>
<lastmod>2021-02-10</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://www.talentstube.com/Player?id=128&amp;url=/Offre/128-techniciens-poseurs-f-h&amp;videoId=485471109&amp;typeEntite=Offre&amp;nameCompany=Pro%20Fermetures&amp;nameOffre=Techniciens%20Poseurs%20(F/H)</loc>
<lastmod>2021-02-10</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://www.talentstube.com/Player?id=113&amp;url=/Offre/113-aide-a-domicile-f-h&amp;videoId=440702903&amp;typeEntite=Offre&amp;nameCompany=Onela&amp;nameOffre=Aide%20à%20domicile%20(F/H)</loc>
<lastmod>2021-02-10</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://www.talentstube.com/Player?id=120&amp;url=/Offre/120-technico-commercial-f-h&amp;videoId=462942715&amp;typeEntite=Offre&amp;nameCompany=Temporis&amp;nameOffre=Technico-Commercial%20(F/H)</loc>
<lastmod>2021-02-10</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://www.talentstube.com/Player?id=115&amp;url=/Offre/115-technicien-ramoneur-fumiste-f-h&amp;videoId=460206945&amp;typeEntite=Offre&amp;nameCompany=La%20Centrale%20des%20Ramoneurs&amp;nameOffre=Technicien%20Ramoneur%20/%20Fumiste%20(F/H)</loc>
<lastmod>2021-02-10</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://www.talentstube.com/Player?id=109&amp;url=/Offre/109-equipier-de-plateforme-polyvalent-f-h&amp;videoId=422692890&amp;typeEntite=Offre&amp;nameCompany=AER%20Recyclage&amp;nameOffre=Equipier%20de%20plateforme%20polyvalent%20(F/H)</loc>
<lastmod>2021-02-10</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://www.talentstube.com/Player?id=112&amp;url=/Offre/112-conseillers-technico-commerciaux-h-f&amp;videoId=438478115&amp;typeEntite=Offre&amp;nameCompany=Pro%20Fermetures&amp;nameOffre=Conseillers%20Technico-Commerciaux%20(H/F)</loc>
<lastmod>2021-02-10</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://www.talentstube.com/Player?id=111&amp;url=/Offre/111-couvreur-etancheur-f-h&amp;videoId=432410136&amp;typeEntite=Offre&amp;nameCompany=Blandin&amp;nameOffre=Couvreur/Étancheur%20(F/H)</loc>
<lastmod>2021-02-10</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://www.talentstube.com/Player?id=108&amp;url=/Offre/108-plombier-chauffagiste-f-h&amp;videoId=398509552&amp;typeEntite=Offre&amp;nameCompany=Blandin&amp;nameOffre=Plombier/Chauffagiste%20(F/H)</loc>
<lastmod>2021-02-10</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://www.talentstube.com/Player?id=107&amp;url=/Offre/107-operateur-soudeur-chaudronnier-f-h&amp;videoId=397982745&amp;typeEntite=Offre&amp;nameCompany=GEIQ%20Industrie%2044&amp;nameOffre=Opérateur%20Soudeur%20/%20Chaudronnier%20(F/H)</loc>
<lastmod>2021-02-10</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://www.talentstube.com/Player?id=101&amp;url=/Offre/101-conducteurs-routiers-f-h&amp;videoId=391023366&amp;typeEntite=Offre&amp;nameCompany=Lactalis%20Logistique%20et%20Transports&amp;nameOffre=Conducteurs%20routiers%20(F/H)</loc>
<lastmod>2021-02-10</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://www.talentstube.com/Player?id=103&amp;url=/Offre/103-agents-de-quai-f-h&amp;videoId=391023871&amp;typeEntite=Offre&amp;nameCompany=Lactalis%20Logistique%20et%20Transports&amp;nameOffre=Agents%20de%20quai%20(F/H)</loc>
<lastmod>2021-02-10</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://www.talentstube.com/Player?id=77&amp;url=/Offre/77-commercial-sedentaire-en-vente-directe-b-to-b-h-f&amp;videoId=343666512&amp;typeEntite=Offre&amp;nameCompany=Télémaque&amp;nameOffre=Commercial%20sédentaire%20en%20vente%20directe%20B%20to%20B%20(H/F)</loc>
<lastmod>2021-02-10</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://www.talentstube.com/Player?id=102&amp;url=/Offre/102-preparateurs-de-commandes-f-h&amp;videoId=391023988&amp;typeEntite=Offre&amp;nameCompany=Lactalis%20Logistique%20et%20Transports&amp;nameOffre=Préparateurs%20de%20commandes%20(F/H)</loc>
<lastmod>2021-02-10</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://www.talentstube.com/Player?id=46&amp;url=/Offre/46-conducteurs-routiers-h-f&amp;videoId=273464203&amp;typeEntite=Offre&amp;nameCompany=Groupe%20MOUSSET&amp;nameOffre=Conducteurs%20routiers%20(H/F)</loc>
<lastmod>2021-02-10</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://www.talentstube.com/Player?id=32518&amp;url=/Entreprise/32518-cabinet-jourdan&amp;videoId=491607083&amp;typeEntite=Entreprise&amp;nameCompany=Cabinet%20JOURDAN&amp;nameOffre=</loc>
<lastmod>2021-02-10</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://www.talentstube.com/Player?id=32507&amp;url=/Entreprise/32507-tpc-ouest&amp;videoId=489836459&amp;typeEntite=Entreprise&amp;nameCompany=TPC%20Ouest&amp;nameOffre=</loc>
<lastmod>2021-02-10</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://www.talentstube.com/Player?id=32355&amp;url=/Entreprise/32355-hyphae&amp;videoId=478847996&amp;typeEntite=Entreprise&amp;nameCompany=HYPHAE&amp;nameOffre=</loc>
<lastmod>2021-02-04</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://www.talentstube.com/Player?id=21247&amp;url=/Entreprise/21247-lactalis-logistique-et-transports&amp;videoId=391023777&amp;typeEntite=Entreprise&amp;nameCompany=Lactalis%20Logistique%20et%20Transports&amp;nameOffre=</loc>
<lastmod>2021-02-10</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://www.talentstube.com/Player?id=19800&amp;url=/Entreprise/19800-silvadec&amp;videoId=386500340&amp;typeEntite=Entreprise&amp;nameCompany=Silvadec&amp;nameOffre=</loc>
<lastmod>2021-02-04</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://www.talentstube.com/Player?id=19205&amp;url=/Entreprise/19205-intermarche-logistique-alimentaire-international&amp;videoId=385268706&amp;typeEntite=Entreprise&amp;nameCompany=Intermarché%20Logistique%20Alimentaire%20International&amp;nameOffre=</loc>
<lastmod>2021-02-10</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://www.talentstube.com/Player?id=12480&amp;url=/Entreprise/12480-fym-action&amp;videoId=345898361&amp;typeEntite=Entreprise&amp;nameCompany=Fym%20Action&amp;nameOffre=</loc>
<lastmod>2021-02-10</lastmod>
<priority>1.00</priority>
</url><url>
<loc>https://www.talentstube.com/Offre/140-aide-a-domicile-f-h</loc>
<lastmod>2021-02-10</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://www.talentstube.com/Offre/133-gestionnaire-de-copropriete-f-h</loc>
<lastmod>2021-01-29</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprises</loc>
<lastmod>2021-01-18</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://www.talentstube.com/Offres</loc>
<lastmod>2021-01-18</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://www.talentstube.com/Offre/134-assistant-administratif-et-commercial-f-h</loc>
<lastmod>2021-01-23</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://www.talentstube.com/Offre/135-commercial-b-to-c-f-h</loc>
<lastmod>2021-01-23</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://www.talentstube.com/Offre/130-assistant-f-h</loc>
<lastmod>2021-01-23</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://www.talentstube.com/Offre/131-poseur-f-h</loc>
<lastmod>2021-01-23</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://www.talentstube.com/Offre/132-comptable-f-h</loc>
<lastmod>2021-01-23</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://www.talentstube.com/Offre/129-commerciaux-b-to-b-f-h</loc>
<lastmod>2021-01-23</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://www.talentstube.com/Offre/128-techniciens-poseurs-f-h</loc>
<lastmod>2021-01-23</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://www.talentstube.com/Offre/122-chauffeurs-spl-f-h</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.80</priority>
</url>
<url>
<loc>https://www.talentstube.com/Offre/115-technicien-ramoneur-fumiste-f-h</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.80</priority>
</url>
<url>
<loc>https://www.talentstube.com/Offre/109-equipier-de-plateforme-polyvalent-f-h</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.80</priority>
</url>
<url>
<loc>https://www.talentstube.com/Offre/111-couvreur-etancheur-f-h</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.80</priority>
</url>
<url>
<loc>https://www.talentstube.com/Offre/107-operateur-soudeur-chaudronnier-f-h</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.80</priority>
</url>
<url>
<loc>https://www.talentstube.com/Offre/103-agents-de-quai-f-h</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.80</priority>
</url>
<url>
<loc>https://www.talentstube.com/Offre/102-preparateurs-de-commandes-f-h</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.80</priority>
</url>
<url>
<loc>https://www.talentstube.com/Offre/46-conducteurs-routiers-h-f</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/32507-tpc-ouest</loc>
<lastmod>2021-01-23</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/32355-hyphae</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/28481-onela</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/28172-pro-fermetures</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/26064-aer-recyclage</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/21247-lactalis-logistique-et-transports</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/19800-silvadec</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/19205-intermarche-logistique-alimentaire-international</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/18143-l-n-u-f-lisieux</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/17467-l-n-u-f-vallet</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/16785-nachos</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/16639-fast-point</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/16247-sasp</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/16015-la-veggisserie</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/16007-bforpu-b</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/15797-sinay</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/15559-monibrand</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/13464-jpa</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/12531-grand-ouest-etiquettes</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/12480-fym-action</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/11592-youston</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/11413-les-vergers-de-chateaubourg</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/11345-telemaque</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/9138-vital-concept</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/8639-mma-questembert</loc>
<lastmod>2021-01-23</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/7593-opticultures</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/7174-atlantem</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/7004-la-table-de-la-desirade</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/6898-le-ptit-club</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/6555-mazars</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/6363-square-habitat</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/5250-linpac-packaging-pontivy-groupe-klockner-pentaplast</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/4211-progressis-ge</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/4097-a-2-com</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/4088-venetis</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/4059-eiffage-construction-grand-ouest</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/3381-mairie-saint-hilaire-de-riez</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/2958-skiold-acemo</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/2527-groupe-mousset</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/2341-temporis</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/1899-faurecia</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/1691-groupe-syselec</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/1467-groupe-rocher-operations</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/1297-albea</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/438-bouyer-leroux</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/266-mgdis</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/157-medaviz</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/95-multiplast</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/52-talents-tube</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/46-actual</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/18-coriolis-composites</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/17-thibault-bergeron</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
</urlset>
+1 -1
View File
@@ -36,7 +36,7 @@
"next-optimized-images": "^1.4.1",
"next-redux-saga": "^4.0.2",
"next-redux-wrapper": "^3.0.0-alpha.2",
"next-seo": "^4.7.3",
"next-seo": "^4.18.0",
"next-transpile-modules": "^2.3.1",
"node-mailjet": "^3.3.1",
"nodemailer": "^4.6.8",
+1 -1
View File
@@ -33,7 +33,7 @@ const styles = theme => ({
backgroundColor: theme.palette.primary.main,
},
title: {
fontFamily: 'Dosis',
fontFamily: '"Roboto", "Helvetica", "Arial", "sans-serif"',
fontSize: '1.5em',
fontWeight: '600',
textAlign: 'center',
+1 -1
View File
@@ -22,7 +22,7 @@ const styles = theme => ({
bottom: 0,
},
title: {
fontFamily: 'Dosis',
fontFamily: '"Roboto", "Helvetica", "Arial", "sans-serif"',
fontSize: '1.5em',
fontWeight: '600',
padding: theme.spacing(3, 0),
+1 -1
View File
@@ -22,7 +22,7 @@ const styles = theme => ({
bottom: 0,
},
title: {
fontFamily: 'Dosis',
fontFamily: '"Roboto", "Helvetica", "Arial", "sans-serif"',
fontSize: '1.5em',
fontWeight: '600',
padding: theme.spacing(3, 0),
+31 -18
View File
@@ -53,6 +53,15 @@ const styles = theme => ({
padding: '0 30vw',
},
},
containerMobile: {
padding: theme.spacing(0, 3),
paddingBottom: '20vh',
marginTop:'10px',
[theme.breakpoints.up('md')]: {
padding: '0 30vw',
},
},
containerTerritoryMobile:{
marginTop:'50px',
marginBottom:'50px',
@@ -666,7 +675,7 @@ const styles = theme => ({
padding: theme.spacing(1, 0),
whiteSpace: 'pre-line',
textAlign: 'justify',
lineHeight : '2em',
lineHeight : '1.5em',
color: '#1E2327'
},
ul:{
@@ -1025,10 +1034,12 @@ class Entreprise extends React.Component {
const logoUrl = (company.logo ? publicRuntimeConfig.symphonyUrl + publicRuntimeConfig.cachedMediaUrl + company.logo : publicRuntimeConfig.symphonyUrl + "/img/default_picture_svg")
const DefaultUrl = publicRuntimeConfig.symphonyUrl + "img/default_picture_svg"
const imgUrl = (company.presentation_video && company.presentation_video.thumbnails[0] && company.presentation_video.thumbnails[0].sizes[2]) ? company.presentation_video.thumbnails[0].sizes[2].link : DefaultUrl
const imgUrlDesktop = (company.presentation_video && company.presentation_video.thumbnails[0] && company.presentation_video.thumbnails[0].sizes[4]) ? company.presentation_video.thumbnails[0].sizes[4].link : DefaultUrl
const imgUrlTerritoire = (company.territories && company.territories[0] && company.territories[0].territory && company.territories[0].territory.presentation_video.thumbnails && company.territories[0].territory.presentation_video.thumbnails[0] && company.territories[0].territory.presentation_video.thumbnails[0].sizes[2]) ? company.territories[0].territory.presentation_video.thumbnails[0].sizes[2].link : DefaultUrl
const imgUrlDesktopTerritoire = (company.territories && company.territories[0] && company.territories[0].territory.presentation_video && company.territories[0].territory.presentation_video.thumbnails && company.territories[0].territory.presentation_video.thumbnails[0] && company.territories[0].territory.presentation_video.thumbnails[0].sizes[4]) ? company.territories[0].territory.presentation_video.thumbnails[0].sizes[4].link : DefaultUrl
const DefaultUrlSEO = "https://blog.talentstube.com/wp-content/uploads/2021/01/default_picture_company.jpg"
const imgUrl = (company.presentation_video && company.presentation_video.thumbnails[0] && company.presentation_video.thumbnails[0].sizes[3]) ? company.presentation_video.thumbnails[0].sizes[3].link : DefaultUrl
const imgUrlDesktop = (company.presentation_video && company.presentation_video.thumbnails[0] && company.presentation_video.thumbnails[0].sizes[3]) ? company.presentation_video.thumbnails[0].sizes[3].link : DefaultUrl
const imgUrlDesktopSEO = (company.presentation_video && company.presentation_video.thumbnails[0] && company.presentation_video.thumbnails[0].sizes[3]) ? company.presentation_video.thumbnails[0].sizes[3].link : DefaultUrlSEO
const imgUrlTerritoire = (company.territories && company.territories[0] && company.territories[0].territory && company.territories[0].territory.presentation_video.thumbnails && company.territories[0].territory.presentation_video.thumbnails[0] && company.territories[0].territory.presentation_video.thumbnails[0].sizes[3]) ? company.territories[0].territory.presentation_video.thumbnails[0].sizes[3].link : DefaultUrl
const imgUrlDesktopTerritoire = (company.territories && company.territories[0] && company.territories[0].territory.presentation_video && company.territories[0].territory.presentation_video.thumbnails && company.territories[0].territory.presentation_video.thumbnails[0] && company.territories[0].territory.presentation_video.thumbnails[0].sizes[3]) ? company.territories[0].territory.presentation_video.thumbnails[0].sizes[3].link : DefaultUrl
const offre = (company.count_ads == 1) ? company.count_ads + ' offre' : company.count_ads + ' offres'
const nbOffre = (company.count_ads > 0) ? offre : 'Candidature spontanée'
@@ -1061,10 +1072,10 @@ class Entreprise extends React.Component {
return (
<RootContainer>
<OgHead seo_title={company.brand_name && company.brand_name+" recrute des candidats en vidéo | Talents Tube"}
seo_description={"Découvrez l'entreprise "+descriptionCompany +" et ses offres en vidéo - "+descriptionVille+ ". Envoyez votre candidature spontanée en vidéo."}
<OgHead seo_title={company.brand_name && company.brand_name+" recrute des candidats en vidéo"}
seo_description={"Découvrez l'entreprise "+descriptionCompany +" et ses offres d'emploi en vidéo - "+descriptionVille+ ". Envoyez votre candidature spontanée en vidéo."}
seo_url={socialShareUrl}
image={imgUrl}
image={imgUrlDesktopSEO}
></OgHead>
<LayoutCompany backLink="/Entreprises" companyId={company.id} companyLibelle={descriptionCompany}>
@@ -1080,9 +1091,9 @@ class Entreprise extends React.Component {
{/* {company.presentation_video && <Suspense fallback={renderLoader()}><VideoVimeo videoId={Ar.last(_.split(company.presentation_video.cdn_url, '/'))} autoplay='1' /></Suspense>} */}
<div className={classes.contentContainer}>
{company.presentation_video &&
<Link href={`/Player?id=/Entreprise/${company.id}-${_.kebabCase(company.brand_name)}&videoId=${Ar.last(_.split(company.presentation_video.cdn_url, '/'))}&type=Entreprise`} >
<Link href={`/Player?id=${company.id}&url=/Entreprise/${company.id}-${_.kebabCase(company.brand_name)}&videoId=${Ar.last(_.split(company.presentation_video.cdn_url, '/'))}&typeEntite=Entreprise&nameCompany=${company.brand_name}&nameOffre=`} >
<div className={classes.discoverContainerImage}>
<img src={isWidthUp('sm', this.props.width) ? imgUrlDesktop : imgUrl} alt={company.brand_name && company.brand_name} />
<img src={ imgUrl} alt={company.brand_name && company.brand_name} />
<div className={classes.containerPoste}>
<Typography variant="h4" component="h4" gutterBottom className={classes.poste}>
@@ -1134,7 +1145,7 @@ class Entreprise extends React.Component {
!_.isEmpty(company.territories) ? (
<div className={classes.container}>
<section>
<Link href={`/Player?id=/Entreprise/${company.id}-${_.kebabCase(company.brand_name)}&videoId=${territoryVideoId}&type=Territoire`} >
<Link href={`/Player?id=${company.territories[0].territory.id}&url=/Entreprise/${company.id}-${_.kebabCase(company.brand_name)}&videoId=${territoryVideoId}&typeEntite=Territoire&nameCompany=${company.territories[0].territory.brand_name}&nameOffre=`} >
<div className={classes.discoverContainerImage}>
<img src={isWidthUp('sm', this.props.width) ? imgUrlDesktopTerritoire : imgUrlTerritoire} alt={(!!!company.territories) ? company.territories[0].territory.brand_name : ''} />
<Typography variant="h3" component="h3" gutterBottom className={classes.title + ' ' + classes.voirTerritoire} align="center">
@@ -1203,7 +1214,7 @@ class Entreprise extends React.Component {
</Button>
</a>
<Typography gutterBottom className={classes.contentShare}>
Partagez l'entreprise sur votre réseau
Partager l'entreprise sur votre réseau
</Typography>
<section className={classes.ShareIcons}>
<SocialShare url={socialShareUrl} />
@@ -1219,7 +1230,7 @@ class Entreprise extends React.Component {
<Hidden mdUp>
<section className={classes.contentContainerMobile}>
{company.presentation_video &&
<Link href={`/Player?id=/Entreprise/${company.id}-${_.kebabCase(company.brand_name)}&videoId=${Ar.last(_.split(company.presentation_video.cdn_url, '/'))}&type=Entreprise`} >
<Link href={`/Player?id=${company.id}&url=/Entreprise/${company.id}-${_.kebabCase(company.brand_name)}&videoId=${Ar.last(_.split(company.presentation_video.cdn_url, '/'))}&typeEntite=Entreprise&nameCompany=${company.brand_name}&nameOffre=`} >
<div className={classes.discoverContainerImage}>
<img src={isWidthUp('xs', this.props.width) ? imgUrlDesktop : imgUrl} alt={company.brand_name && company.brand_name} />
<div className={classes.containerPoste}>
@@ -1298,10 +1309,11 @@ class Entreprise extends React.Component {
</section>
<section>
<div className={classes.containcontainerer }>
{
!_.isEmpty(company.ads) ? (
<div className={classes.container } id="discover">
<div className={classes.containerMobile }>
<div id="discover">
<Typography gutterBottom component="h2" className={classes.discoverOffres}>
Les offres d'emploi pour <span>{company.brand_name && company.brand_name}</span>
</Typography>
@@ -1316,17 +1328,18 @@ class Entreprise extends React.Component {
})
}
</div>
</div>
) : ''
}
</div>
</section>
<section>
{
!_.isEmpty(company.territories) ? (
<div className={classes.container}>
<div className={classes.containerMobile}>
<section>
<Link href={`/Player?id=/Entreprise/${company.id}-${_.kebabCase(company.brand_name)}&videoId=${territoryVideoId}&type=Territoire`} >
<Link href={`/Player?id=${company.territories[0].territory.id}&url=/Entreprise/${company.id}-${_.kebabCase(company.brand_name)}&videoId=${territoryVideoId}&typeEntite=Territoire&nameCompany=${company.territories[0].territory.brand_name}`} >
<div className={classes.discoverContainerImage}>
<img src={isWidthUp('sm', this.props.width) ? imgUrlDesktopTerritoire : imgUrlTerritoire} alt={(!!!company.territories) ? company.territories[0].territory.brand_name : ''} />
<Typography variant="h3" component="h3" gutterBottom className={classes.title + ' ' + classes.voirTerritoire} align="center">
+14 -4
View File
@@ -11,9 +11,8 @@ import CompanyRow from "../components/organisms/CompanyRow"
import { fetchCompaniesRequest } from '../actions/companies'
import { CompaniesSelector } from '../reducers/companies'
import { connect } from "react-redux";
import Head from 'next/head'
import OgHead from '../components/atoms/OgHead';
import { SocialProfileJsonLd } from 'next-seo';
const styles = theme => ({
root: {
position: 'relative',
@@ -45,7 +44,7 @@ const styles = theme => ({
},
},
title: {
fontFamily: 'Dosis',
fontFamily: '"Roboto", "Helvetica", "Arial", "sans-serif"',
fontSize: '1.5em',
fontWeight: '600',
textAlign: 'center',
@@ -103,7 +102,18 @@ class Entreprises extends React.Component {
image={imgUrl}
seo_key="Recrutement, video"
></OgHead>
></OgHead>
<SocialProfileJsonLd
type="Talents Tube"
name="Talents Tube"
url="https://www.talentstube.com"
sameAs={[
'https://www.facebook.com/TalentsTuber',
'https://www.instagram.com/talents.tube/',
'https://www.linkedin.com/company/talentstube/',
'https://twitter.com/TalentsTuber',
]}
/>
<Typography gutterBottom component="h1"
className={classes.title}>
Les entreprises en <span className={classes.primary}>vidéo</span>
+1 -1
View File
@@ -25,7 +25,7 @@ const styles = theme => ({
},
},
title: {
fontFamily: 'Dosis',
fontFamily: '"Roboto", "Helvetica", "Arial", "sans-serif"',
fontSize: '1.5em',
fontWeight: '600',
padding: theme.spacing(3, 0),
+1 -1
View File
@@ -22,7 +22,7 @@ const styles = theme => ({
bottom: 0,
},
title: {
fontFamily: 'Dosis',
fontFamily: '"Roboto", "Helvetica", "Arial", "sans-serif"',
fontSize: '1.5em',
fontWeight: '600',
padding: theme.spacing(3, 0),
+8 -7
View File
@@ -40,21 +40,22 @@ class Offre extends React.Component {
const { classes, offre } = this.props;
descriptionSEO=""
offre.company && offre.company.brand_name ? descriptionSEO += offre.company.brand_name : ""
descriptionSEO += " recrute en vidéo un(e) "+offre.title
titleSEO = "Offre d'emploi vidéo "+offre.title
const socialShareUrl = typeof window !== 'undefined' ? window.location : publicRuntimeConfig.frontServerUrl + `/Offre/${offre.id}-${_.kebabCase(offre.title)}`;
const DefaultUrl = "https://www.talentstube.com/static/images/default/default_picture_company.svg"
const imgUrl = (offre.company && offre.company.presentation_video && offre.company.presentation_video.thumbnails && offre.company.presentation_video.thumbnails[0] && offre.company.presentation_video.thumbnails[0].sizes[2]) ? offre.company.presentation_video.thumbnails[0].sizes[2].link : DefaultUrl
descriptionSEO += " recrute un(e) "+offre.title+", "+(offre.location && offre.location.gmap_address.formatted_address)+". Envoyez votre candidature vidéo"
titleSEO = "Offre d'emploi "+offre && offre.title && offre.title.replace(' (F/H)', '')+", "+(offre.location && offre.location.gmap_address.formatted_address)+". Envoyez votre candidature vidéo"
const socialShareUrl = typeof window !== 'undefined' ? window.location : publicRuntimeConfig.frontServerUrl + `Offre/${offre.id}-${_.kebabCase(offre.title)}`;
const DefaultUrl = "https://blog.talentstube.com/wp-content/uploads/2021/01/default_picture_company.jpg"
const imgUrl = (offre.company && offre.company.presentation_video && offre.company.presentation_video.thumbnails && offre.company.presentation_video.thumbnails[0] && offre.company.presentation_video.thumbnails[0].sizes[3]) ? offre.company.presentation_video.thumbnails[0].sizes[3].link : DefaultUrl
const imgUrlDesktop = (offre.company && offre.company.presentation_video && offre.company.presentation_video.thumbnails && offre.company.presentation_video.thumbnails[0] && offre.company.presentation_video.thumbnails[0].sizes[4]) ? offre.company.presentation_video.thumbnails[0].sizes[4].link : DefaultUrl
const imgUrlOffre = (offre && offre.video && offre.video.thumbnails && offre.video.thumbnails[0] && offre.video.thumbnails[0].sizes[2]) ? offre.video.thumbnails[0].sizes[2].link : DefaultUrl
const imgUrlOffre = (offre && offre.video && offre.video.thumbnails && offre.video.thumbnails[0] && offre.video.thumbnails[0].sizes[3]) ? offre.video.thumbnails[0].sizes[3].link : DefaultUrl
const imgUrlDesktopOffre = (offre && offre.video && offre.video.thumbnails && offre.video.thumbnails[0] && offre.video.thumbnails[0].sizes[4]) ? offre.video.thumbnails[0].sizes[4].link : DefaultUrl
return (
<RootContainer>
<OgHead seo_title={titleSEO}
seo_description={descriptionSEO}
seo_url={socialShareUrl}
image={imgUrl}
image={imgUrlOffre}
></OgHead>
<LayoutOffre backLink="/Offres" offreId={offre.id} offre={offre} isProvided={offre.is_promoted}>
{/* <Suspense fallback={renderLoader()}><OffreDetail offre={offre}/></Suspense> */}
+14 -5
View File
@@ -11,11 +11,9 @@ import OffreRow from "../components/organisms/OffreRow"
import Typography from '@material-ui/core/Typography';
import { fetchJobsRequest, togglePromotedFilterRequest} from '../actions/ads'
import { AdsSelector } from '../reducers/ads'
import { TextField } from '@material-ui/core';
import Head from 'next/head'
import OgHead from '../components/atoms/OgHead';
import getConfig from 'next/config'
import { SocialProfileJsonLd } from 'next-seo';
const styles = theme => ({
root: {
@@ -40,7 +38,7 @@ const styles = theme => ({
},
title: {
fontFamily: 'Dosis',
fontFamily: '"Roboto", "Helvetica", "Arial", "sans-serif"',
fontSize: '1.5em',
fontWeight: '600',
textAlign: 'center',
@@ -114,7 +112,18 @@ class Offres extends React.Component {
image={imgUrl}
seo_key="Recrutement, video"
></OgHead>
></OgHead>
<SocialProfileJsonLd
type="Talents Tube"
name="Talents Tube"
url="https://www.talentstube.com"
sameAs={[
'https://www.facebook.com/TalentsTuber',
'https://www.instagram.com/talents.tube/',
'https://www.linkedin.com/company/talentstube/',
'https://twitter.com/TalentsTuber',
]}
/>
<Typography gutterBottom component="h1"
className={classes.title}>
+1 -1
View File
@@ -39,7 +39,7 @@ const styles = theme => ({
}
},
title: {
fontFamily: 'Dosis',
fontFamily: '"Roboto", "Helvetica", "Arial", "sans-serif"',
fontSize: '1.5em',
fontWeight: '600',
padding: theme.spacing(3, 0),
+65 -17
View File
@@ -1,13 +1,17 @@
import React, { Component, Fragment,lazy, Suspense } from 'react';
import React, { Component, Fragment,lazy, Suspense, useEffect } from 'react';
import { withStyles } from '@material-ui/core/styles';
import Typography from '@material-ui/core/Typography'
import LayoutBackUrl from '../components/templates/LayoutBackUrl';
import RootContainer from '../components/atoms/RootContainer'
import Router from 'next/router';
import Head from 'next/head'
// const VideoVimeo = lazy(() => import('../components/atoms/VideoVimeo'));
import VideoVimeo from '../components/atoms/VideoVimeo';
import queryString from 'query-string';
import { fetchJobRequest, clearAd, countAdViewRequest } from '../actions/ads'
const renderLoader = () => <p>Chargement</p>;
import { NextSeo } from 'next-seo';
import dynamic from 'next/dynamic'
const styles = theme => ({
player: {
background:'#1E2327',
@@ -29,7 +33,7 @@ const styles = theme => ({
bottom: 0,
},
title: {
fontFamily: 'Dosis',
fontFamily: '"Roboto", "Helvetica", "Arial", "sans-serif"',
fontSize: '1.5em',
fontWeight: '600',
padding: theme.spacing(3, 0),
@@ -49,31 +53,75 @@ const styles = theme => ({
}
})
let params = dynamic( () => window.location.search, {ssr: false} )
class Player extends Component {
constructor(props)
{
super(props);
var today = new Date(),
date = today.getFullYear() + '-' + (today.getMonth() + 1) + '-' + today.getDate();
this.state = {
date: date
};
console.log("LOCATION SEARCH");
console.log(params);
}
render() {
const { classes } = this.props
const params = queryString.parse(location.search);
console.log(params.id);
console.log(params.type);
console.log(params.videoId);
let url = params.id;
const { classes, id, url, typeEntite, videoId, nameCompany, nameOffre } = this.props
console.log(id);
console.log(typeEntite);
let typeVideo= null;
let titleVideo= null;
let descriptionVideo= null;
if(typeEntite=="Offre"){
titleVideo=nameCompany+" recrute un(e)"+nameOffre
descriptionVideo=nameCompany+" recrute en vidéo un(e)"+nameOffre
}else if(typeEntite=="Entreprise"){
titleVideo="Découvrez l'entreprise "+nameCompany+" et ses offres d'emploi vidéo"
descriptionVideo="Découvrez l'entreprise "+nameCompany+" et ses offres d'emploi vidéo. Envoyez votre candidature spontanée en vidéo"
}else if(typeEntite=="Territoire"){
titleVideo="Découvrez le territoire "+nameCompany
descriptionVideo="Découvrez le territoire "+nameCompany
}
console.log(videoId);
return (
<LayoutBackUrl text="Player" url={url} >
<VideoVimeo classes={{ video: classes.video }} videoId={params.videoId} options="" autoplay='1' />
</LayoutBackUrl>
<RootContainer>
<NextSeo
title={titleVideo}
description={descriptionVideo}
noindex={true}
nofollow={true}
openGraph={{
title: titleVideo,
description: descriptionVideo,
url: "https://www.talentstube.com/Player?id="+id+"&url="+url+"&videoId="+videoId+"&typeEntite="+typeEntite+"&nameCompany="+nameCompany+"&nameOffre="+nameOffre,
type: 'video.movie',
video: {
// Multiple Open Graph actors is only available in version `7.0.2-canary.35`+ of next
releaseDate: this.state.date,
// Multiple Open Graph tags is only available in version `7.0.2-canary.35`+ of next
},
site_name: 'Talents Tube',
}}
/>
<LayoutBackUrl text="Player" url={url} >
<VideoVimeo classes={{ video: classes.video }} videoId={videoId} options="" autoplay='1' />
</LayoutBackUrl>
</RootContainer>
)
}
}
Player.getInitialProps = function (context) {
let { id, videoId,type } = context.query;
let { id, url,videoId,typeEntite, nameCompany, nameOffre } = context.query;
let {res} = context;
return {};
return {id:id, url:url, videoId:videoId, typeEntite:typeEntite, nameCompany:nameCompany, nameOffre:nameOffre};
}
+1 -1
View File
@@ -340,7 +340,7 @@ class Reponse extends React.Component {
<LayoutBack text="Candidature" step={this.state.activeStep} openStudio={this.state.openStudio}>
<Head>
<title>Candidature vidéo</title>
<meta name="description" content="Talent's tube, postulez en video." />
<meta name="description" content="Talents tube, postulez en video." />
<meta key="robots" name="robots" content="noindex, nofollow"></meta>
</Head>
+1 -1
View File
@@ -25,7 +25,7 @@ const styles = theme => ({
},
},
title: {
fontFamily: 'Dosis',
fontFamily: '"Roboto", "Helvetica", "Arial", "sans-serif"',
fontSize: '1.5em',
fontWeight: '600',
padding: theme.spacing(3, 0),
+5 -5
View File
@@ -1,5 +1,5 @@
import React from 'react';
import PropTypes from 'prop-types';
// import PropTypes from 'prop-types';
import Document, { Head, Main, NextScript } from 'next/document';
import { ServerStyleSheets } from '@material-ui/styles';
import flush from 'styled-jsx/server';
@@ -31,10 +31,10 @@ 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:200,300,400,500,700,900&display=swap" rel="stylesheet">
<link rel="preload" href="/statique/css/fonts.css" rel="stylesheet">
</link>
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDYV8IJGtIoWLfXJQQvIuDQ88n2aEuRgpg&libraries=places"></script>
<script type="text/javascript" src="/static/js/pwaInstaller.js" ></script>
<script async src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDYV8IJGtIoWLfXJQQvIuDQ88n2aEuRgpg&libraries=places"></script>
<script async type="text/javascript" src="/static/js/pwaInstaller.js" ></script>
{/* Global Site Tag (gtag.js) - Google Analytics */}
{/* <script
async
@@ -51,7 +51,7 @@ class MyDocument extends Document {
}}
/> */}
<script
<script defer
dangerouslySetInnerHTML={{
__html: `
(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+26 -1
View File
@@ -19,6 +19,7 @@ import NoResult from './../components/atoms/NoResult';
import dynamic from 'next/dynamic'
import OgHead from '../components/atoms/OgHead';
import getConfig from 'next/config'
import { BreadcrumbJsonLd } from 'next-seo';
// const VideoSlider = dynamic(() => import('../components/organisms/ShortVideoHooker'), {
// ssr: false
@@ -122,7 +123,7 @@ const styles = theme => ({
color: theme.palette.secondary.text,
},
title: {
fontFamily: 'Dosis',
fontFamily: '"Roboto", "Helvetica", "Arial", "sans-serif"',
fontSize: '1.5em',
fontWeight: '600',
textAlign: 'center',
@@ -172,6 +173,30 @@ class Index extends React.Component {
seo_key="Recrutement, video"
></OgHead>
<BreadcrumbJsonLd
itemListElements={[
{
position: 1,
name: 'Offres',
item: 'https://www.talentstube.com/Offres',
},
{
position: 2,
name: 'Entreprises',
item: 'https://www.talentstube.com/Offres',
},
{
position: 3,
name: 'Espace recruteur',
item: 'https://recruteur.talentstube.com/',
},
{
position: 4,
name: "Blog sur l'emploi",
item: 'https://blog.talentstube.com/',
},
]}
/>
<div className={classes.container}>
{/* <VideoSlider /> */}
+750
View File
@@ -0,0 +1,750 @@
import React from 'react';
import AppBar from '@material-ui/core/AppBar';
import Button from '@material-ui/core/Button';
import CameraIcon from '@material-ui/icons/PhotoCamera';
import Card from '@material-ui/core/Card';
import CardActions from '@material-ui/core/CardActions';
import CardContent from '@material-ui/core/CardContent';
import CardMedia from '@material-ui/core/CardMedia';
import CssBaseline from '@material-ui/core/CssBaseline';
import Grid from '@material-ui/core/Grid';
import Toolbar from '@material-ui/core/Toolbar';
import Typography from '@material-ui/core/Typography';
import {makeStyles} from '@material-ui/core/styles';
import Container from '@material-ui/core/Container';
import Link from '@material-ui/core/Link';
import VideoVimeo from '../components/atoms/VideoVimeo'
import 'video-react/dist/video-react.css';
import {Player} from 'video-react';
import Hidden from '@material-ui/core/Hidden';
import dynamic from 'next/dynamic'
import OgHead from '../components/atoms/OgHead';
import getConfig from 'next/config'
const Footer = dynamic(() => import ('../components/organisms/FooterAccueil'), {ssr: false});
function Copyright() {
return (
<Typography variant="body2" color="textSecondary" align="center">
{'Copyright © '}
<Link color="inherit" href="https://material-ui.com/">
Your Website
</Link>{' '} {new Date().getFullYear()}
{'.'}
</Typography>
);
}
const useStyles = makeStyles((theme) => ({
icon: {
marginRight: theme.spacing(2)
},
actionBtn: {
marginBottom: "0.75em",
display: "block"
},
bttn: {
color: "#fff",
background: "#FF6A6C",
border: "2px solid #FF6A6C",
padding: "15px"
},
heroSection: {
// background:
// "url('https://blog.talentstube.com/wp-content/uploads/2021/02/realisation-off
// r e-emploi-video-smartphone-modele.jpg') center center no-repeat scroll",
// backgroundSize: "cover",
padding: "5em 0 9em",
position: "relative",
color: "#fff",
[
theme
.breakpoints
.down('md')
]: {
background: "url('/statique/images/accueil/offre-emploi.jpg') center center no-repeat scroll",
backgroundSize: "cover",
height: "100%",
padding: "0"
}
},
mieuxQueTexteSection: {
paddingTop: "28em",
[
theme
.breakpoints
.down('md')
]: {
paddingTop: "0"
}
},
mieuxQueTexteTexte: {
color: "#fff",
font: "normal normal bold 1.625em/1.769em Roboto",
letterSpacing: "2",
},
bloc1Section: {
paddingLeft: "5em",
paddingRight: "5em"
},
heroSectionMobile: {
background: "url('/statique/images/accueil/offre-emploi.jpg') center top no-repeat scroll",
padding: "5em 0 9em",
position: "relative",
color: "#fff"
},
container: {
paddingRight: "15px",
paddingLeft: "15px",
marginRight: "auto",
marginLeft: "auto"
},
containerMobile: {},
colMd12: {
position: "relative",
minHeight: "1px",
paddingLeft: "4em",
paddingRight: "4em",
[
theme
.breakpoints
.down('md')
]: {
paddingLeft: "2em",
paddingRight: "2em",
}
},
welcomeMessageLogo: {
marginBottom:"80px",
textAlign: "left"
},
welcomeMessage: {
textAlign: "left"
},
welcomeMessageH1: {
fontFamily: '"Roboto", "Helvetica", "Arial", "sans-serif"',
fontSize: "50px",
fontWeight: "700",
lineHeight: "1.2em !important",
color: "#fff",
maxWidth: "600px"
},
welcomeMessageP: {
fontFamily: '"Roboto", "Helvetica", "Arial", "sans-serif"',
fontSize: "20px",
marginBottom: "0",
color: "#fff",
fontWeight: "400",
maxWidth: "600px",
marginBottom:"80px",
},
videoBackground: {
position: "absolute",
right: "0",
bottom: "0",
top: "0",
minWidth: "100%",
minHeight: "50%",
height: "50%",
width: "auto",
height: "auto",
zIndex: "-100",
// background: `url("/statique/images/recrutement-video.jpg")` ,
},
overlay: {
position: "absolute",
width: "100%",
minHeight: "100%",
background: "rgba(0, 0, 0, 0.36)",
top: "0"
},
overlayMobile: {
width: "100%",
minHeight: "100%",
top: "0"
},
heroContent: {
backgroundColor: "#1689FB",
// backgroundImage:"/statique/images/recrutement-video.jpg",
// background:"https://source.unsplash.com/random", backgroundImage:
// `url("/statique/images/recrutement-video.jpg")` ,
backgroundRepeat: 'no-repeat',
backgroundPosition: "center",
padding: theme.spacing(8, 0, 6)
},
bloc1: {
backgroundColor: "#1E2327",
// backgroundImage:"/statique/images/recrutement-video.jpg",
// background:"https://source.unsplash.com/random", backgroundImage:
// `url("/statique/images/recrutement-video.jpg")` ,
color: "#FFFFFF",
backgroundRepeat: 'no-repeat',
backgroundPosition: "center",
padding: theme.spacing(8, 0, 6),
marginTop: "60px"
},
bloc2: {
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: "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",
// background:"https://source.unsplash.com/random", backgroundImage:
// `url("/statique/images/recrutement-video.jpg")` ,
backgroundRepeat: 'no-repeat',
backgroundPosition: "center",
padding: theme.spacing(8, 0, 6)
},
bloc2Titre1: {
textAlign: "left",
font: "normal normal bold 2.625em/1.667em Roboto",
letterSpacing: "2",
color: "#1E2327",
opacity: "1",
lineHeight: "1em"
},
bloc2Titre2: {
textAlign: "left",
font: "normal normal bold 1.625em/1.769em Roboto",
letterSpacing: "2",
color: "#1E2327",
opacity: "1",
lineHeight: "2em"
},
bloc2Titre3: {
textAlign: "left",
font: "normal normal normal 1.25em/1.9em Roboto",
letterSpacing: "2",
color: "#1E2327",
opacity: "1",
lineHeight: "3em"
},
bloc2Paragraphe: {
textAlign: "left",
font: "normal normal normal 1em/2em Roboto",
letterSpacing: "2",
color: "#1E2327",
opacity: "1",
lineHeight: "2em",
marginBottom: '62px'
},
heroButtons: {
marginTop: theme.spacing(4)
},
recruteurButton: {
width: "182px",
height: "49px",
background: "#25D89A 0% 0% no-repeat padding-box",
border: "2px solid #25D89A",
borderRadius: "5px",
opacity: "1",
color: "#fff",
fontWeight: "700",
textTransform: "inherit"
},
talentButton: {
width: "182px",
height: "49px",
border: "2px solid #FFFFFF",
color: "#FFFFFF",
borderRadius: "5px",
opacity: "1",
textTransform: "inherit",
background: "transparent",
fontWeight: "700",
'&:hover': {
background: "#ffffff 0% 0% no-repeat padding-box",
color: "#25D89A"
}
},
cardGrid: {
paddingBottom: theme.spacing(8)
},
cardGauche: {
display: 'flex',
flexDirection: 'column',
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: {
display: 'flex',
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)"
}
},
bloc1Droite: {
backgroundColor: "transparent",
boxShadow: "0px 0px 0px rgba(30, 35, 39, 0.15)",
'&:hover': {
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",
letterSpacing: "2",
color: "#ffffff",
opacity: "1",
lineHeight: "1.5em"
},
bloc1DroiteParagraphe: {
textAlign: "left",
font: "normal normal normal 1em/2em Roboto",
letterSpacing: "2",
color: "#ffffff",
opacity: "1",
lineHeight: "2em",
marginBottom: '62px'
},
bloc1Gauche: {
backgroundColor: "transparent",
verticalAlign:"middle"
},
cardMedia: {
paddingTop: '500px', // 16:9
},
cardContent: {
flexGrow: 1
},
footer: {
backgroundColor: theme.palette.background.paper,
padding: theme.spacing(6)
}
}));
const {publicRuntimeConfig} = getConfig();
const cards = [1, 2];
export default function Index() {
const classes = useStyles();
const DefaultUrl = publicRuntimeConfig.symphonyUrl + "/img/default_picture_svg"
const imgUrl = DefaultUrl
return (
<React.Fragment>
<OgHead
seo_title="Espace candidat - Plateforme de recrutement en vidéo | Talents Tube"
seo_description="Talents Tube est la première plateforme réservée aux offres d'emploi vidéo, vidéo marque employeur et aux CV vidéos. Découvrez une nouvelle méthode de recrutement."
seo_url="www.talentstube.com"
image={imgUrl}
seo_key="Recrutement, video"></OgHead>
<main>
{/* Hero unit */}
<header >
<Hidden smDown>
<div className={classes.heroSection}></div>
<video autoPlay loop muted className={classes.videoBackground}>
<source
src={"/statique/video/modele-offre-emploi-originale.mp4"}
type='video/mp4'/>
</video>
<div className={classes.colMd12}>
<div className={classes.welcomeMessageLogo}>
<img src="/statique/images/talents-tube-logo.svg"/>
</div>
<div className={classes.welcomeMessage}>
<h1 className={classes.welcomeMessageH1}>Adoptez le recrutement vidéo</h1>
<p className={classes.welcomeMessageP}>Talents Tube favorise la mise en relation
de candidats et dentreprises et tout ça en vidéo !</p>
</div>
<div className={classes.heroButtons}></div>
<div className={classes.actionBtn}>
<Grid container spacing={2} justify="left">
<Grid item>
<Button variant="contained" className={classes.recruteurButton}>
Je suis recruteur
</Button>
</Grid>
<Grid item>
<Button variant="contained" className={classes.talentButton}>
Je suis talent
</Button>
</Grid>
</Grid>
{/* <button
className={classes.recruteurButton}
data-toggle="modal"
data-target="#exampleModal">JE SUIS RECRUTEUR</button>
<button
className={classes.talentButton}
data-toggle="modal"
data-target=".bd-example-modal-lg">JE SUIS TALENT</button> */}
</div>
</div>
</Hidden>
<Hidden mdUp>
<div className={classes.heroSectionMobile}>
<div className={classes.overlayMobile}>
<div className={classes.containerMobile}>
<div className={classes.colMd12}>
<div className={classes.welcomeMessageLogo}>
<img src="/statique/images/talents-tube-logo.svg"/>
</div>
<div className={classes.welcomeMessage}>
<h1 className={classes.welcomeMessageH1}>Adoptez le recrutement vidéo</h1>
<p className={classes.welcomeMessageP}>Talents Tube favorise la mise en relation
de candidats et dentreprises et tout ça en vidéo !</p>
</div>
<div className={classes.heroButtons}></div>
<div className={classes.actionBtn}>
<Grid container spacing={2} justify="left">
<Grid item>
<Button variant="contained" className={classes.recruteurButton}>
Je suis recruteur
</Button>
</Grid>
<Grid item>
<Button variant="contained" className={classes.talentButton}>
Je suis talent
</Button>
</Grid>
</Grid>
{/* <button
className={classes.recruteurButton}
data-toggle="modal"
data-target="#exampleModal">JE SUIS RECRUTEUR</button>
<button
className={classes.talentButton}
data-toggle="modal"
data-target=".bd-example-modal-lg">JE SUIS TALENT</button> */}
</div>
</div>
</div>
</div>
</div>
</Hidden>
<section className={classes.mieuxQueTexteSection}>
<div className={classes.heroContent}>
<Container maxWidth="lg">
<Typography variant="h4" align="center" className={classes.mieuxQueTexteTexte}>
« Parce que vous méritez mieux que du texte ! »
</Typography>
</Container>
</div>
</section>
</header>
<section >
<div >
<Container className={classes.cardGrid} maxWidth="xl">
{/* End hero unit */}
<Grid container spacing={0}>
<Grid item key={1} xs={24} sm={12} md={6}>
<Card className={classes.cardGauche}>
<CardContent >
<Typography gutterBottom component="h2" className={classes.bloc2Titre1}>
Je suis recruteur
</Typography>
<Typography gutterBottom component="h3" className={classes.bloc2Titre2}>
Talent introuvable ? Métier en tension ?
</Typography>
<Typography className={classes.bloc2Titre3} component="h4">
Rencontrez vos futurs collaborateurs autrement, en vidéo
</Typography>
<Typography className={classes.bloc2Paragraphe}>
<b>Publiez une offre demploi vidéo :</b><br/>
<ul>
<li>Pas besoin dune super vidéo, montrez simplement votre entreprise en donnant
la parole à vos salariés</li>
</ul>
<b>Recevez des candidatures vidéo :</b><br/>
<ul>
<li>Au-delà des compétences, découvrez les vraies personnes derrière le CV
</li>
</ul>
<ul>
<li>
Gagnez du temps dans votre présélection, rencontrez uniquement les candidats
réellement impliqués</li>
</ul>
<b>Ne vous limitez plus à des mots, osez un recrutement plus qualitatif !</b><br/>
</Typography>
<Button variant="contained" className={classes.recruteurButton}>
En savoir plus
</Button>
</CardContent>
</Card>
</Grid>
<Grid item key={2} xs={24} sm={12} md={6}>
<Card className={classes.cardDroite}>
<CardContent className={classes.cardContent}>
<Typography gutterBottom component="h2" className={classes.bloc2Titre1}>
Je suis candidat
</Typography>
<Typography gutterBottom component="h3" className={classes.bloc2Titre2}>
Marre des envois de CV sans réponse ?
</Typography>
<Typography className={classes.bloc2Titre3} component="h4">
Rencontrez votre futur employeur autrement, en vidéo :
</Typography>
<Typography className={classes.bloc2Paragraphe}>
<b>Consultez des offres demploi video :</b><br/>
<ul>
<li>Loffre est en vidéo pour mieux comprendre lentreprise, le métier,
léquipe Votre candidature est aussi en vidéo. Vous êtes à égalité !</li>
</ul>
<b>Déposez votre candidature en vidéo :</b><br/>
<ul>
<li>Tout le monde a du talent et votre personnalité est aujourdhui votre
meilleur atout
</li>
</ul>
<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 !</b>
</Typography>
<Button variant="contained" className={classes.recruteurButton}>
Je me lance
</Button>
</CardContent>
</Card>
</Grid>
</Grid>
</Container>
</div>
<div className={classes.bloc1}>
<Container className={classes.cardGrid} maxWidth="lg">
{/* End hero unit */}
<Grid container spacing={10}>
<Grid item key={2} xs={24} sm={12} md={6}>
<Card className={classes.bloc1Droite}>
<CardContent className={classes.bloc1Droite}>
<Typography
gutterBottom
component="h2"
color="#fff"
className={classes.bloc1DroiteH1}>
Notre mission : Remettre lhumain au cœur des recrutements
</Typography>
<Typography className={classes.bloc1DroiteParagraphe}>
Chez Talents Tube, nous pensons que la technologie ne doit pas remplacer
lhumain mais être à son service. Cest pour cette raison que nous proposons un
outil de recrutement vidéo alliant digital et humain, afin de redonner la parole
aux candidats et aux entreprises. Talents Tube est aujourdhui la SEULE
plateforme de recrutement qui permet aux entreprises de publier des offres
demploi en vidéo et de recevoir des candidatures en vidéo.
</Typography>
</CardContent>
</Card>
</Grid>
<Hidden smDown>
<Grid item key={1} xs={24} sm={12} md={6}>
<Card className={classes.bloc1Gauche}>
<CardMedia
className={classes.cardMedia}
image="/statique/images/accueil/candidature-en-video.png"></CardMedia>
</Card>
</Grid>
</Hidden>
</Grid>
</Container>
</div>
<div className={classes.bloc3}>
<Container className={classes.cardGrid} maxWidth="lg">
{/* End hero unit */}
<Grid container spacing={10}>
<Hidden smDown>
<Grid item key={1} xs={24} sm={12} md={6}>
<Card className={classes.bloc1Gauche}>
<CardMedia
className={classes.cardMedia}
image="/statique/images/accueil/equipe_talents_tube.jpg"></CardMedia>
</Card>
</Grid>
</Hidden>
<Grid item key={2} xs={24} sm={12} md={6}>
<Card className={classes.bloc3Droite}>
<CardContent className={classes.bloc1Droite}>
<Typography
gutterBottom
component="h2"
color="#fff"
className={classes.bloc2Titre1}>
Pourquoi nous ?
</Typography>
<Typography className={classes.bloc2Titre2}>
Parce que nous sommes les SEULS à savoir le faire !
</Typography>
<Typography className={classes.bloc2Paragraphe}>
Notre équipe est composée dexperts métier qui sauront vous accompagner dans
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. <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>
</CardContent>
</Card>
</Grid>
</Grid>
</Container>
</div>
<div className={classes.bloc4}>
<Container className={classes.cardGrid} maxWidth="lg">
{/* End hero unit */}
<Grid container spacing={10}>
<Grid item key={2} xs={24} sm={12} md={6}>
<Card className={classes.blocGris}>
<CardContent >
<Typography
gutterBottom
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.blocGris}>
<iframe
width="560"
height="315"
src="https://www.youtube.com/embed/sKh0u7Mbdps"
frameborder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
allowfullscreen></iframe>
</Card>
</Grid>
</Grid>
</Container>
</div>
{/* <div className={classes.footerDiv}>
<Container maxWidth="sm"></Container>
</div> */}
<Footer/>
</section>
</main>
</React.Fragment>
);
}
+1 -1
View File
@@ -120,7 +120,7 @@ const styles = theme => ({
color: theme.palette.secondary.text,
},
title: {
fontFamily: 'Dosis',
fontFamily: '"Roboto", "Helvetica", "Arial", "sans-serif"',
fontSize: '1.5em',
fontWeight: '600',
textAlign: 'center',
+354
View File
@@ -0,0 +1,354 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://www.talentstube.com/Offre/133-gestionnaire-de-copropriete-f-h</loc>
<lastmod>2021-01-29</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprises</loc>
<lastmod>2021-01-29</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://www.talentstube.com/Offres</loc>
<lastmod>2021-01-29</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://www.talentstube.com/Offre/134-assistant-administratif-et-commercial-f-h</loc>
<lastmod>2021-01-23</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://www.talentstube.com/Offre/135-commercial-b-to-c-f-h</loc>
<lastmod>2021-01-23</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://www.talentstube.com/Offre/130-assistant-f-h</loc>
<lastmod>2021-01-23</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://www.talentstube.com/Offre/131-poseur-f-h</loc>
<lastmod>2021-01-23</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://www.talentstube.com/Offre/132-comptable-f-h</loc>
<lastmod>2021-01-23</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://www.talentstube.com/Offre/129-commerciaux-b-to-b-f-h</loc>
<lastmod>2021-01-23</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://www.talentstube.com/Offre/128-techniciens-poseurs-f-h</loc>
<lastmod>2021-01-23</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://www.talentstube.com/Offre/122-chauffeurs-spl-f-h</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.80</priority>
</url>
<url>
<loc>https://www.talentstube.com/Offre/115-technicien-ramoneur-fumiste-f-h</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.80</priority>
</url>
<url>
<loc>https://www.talentstube.com/Offre/109-equipier-de-plateforme-polyvalent-f-h</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.80</priority>
</url>
<url>
<loc>https://www.talentstube.com/Offre/111-couvreur-etancheur-f-h</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.80</priority>
</url>
<url>
<loc>https://www.talentstube.com/Offre/107-operateur-soudeur-chaudronnier-f-h</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.80</priority>
</url>
<url>
<loc>https://www.talentstube.com/Offre/103-agents-de-quai-f-h</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.80</priority>
</url>
<url>
<loc>https://www.talentstube.com/Offre/102-preparateurs-de-commandes-f-h</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.80</priority>
</url>
<url>
<loc>https://www.talentstube.com/Offre/46-conducteurs-routiers-h-f</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/32507-tpc-ouest</loc>
<lastmod>2021-01-23</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/32355-hyphae</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/28481-onela</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/28172-pro-fermetures</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/26064-aer-recyclage</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/21247-lactalis-logistique-et-transports</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/19800-silvadec</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/19205-intermarche-logistique-alimentaire-international</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/18143-l-n-u-f-lisieux</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/17467-l-n-u-f-vallet</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/16785-nachos</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/16639-fast-point</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/16247-sasp</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/16015-la-veggisserie</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/16007-bforpu-b</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/15797-sinay</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/15559-monibrand</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/13464-jpa</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/12531-grand-ouest-etiquettes</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/12480-fym-action</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/11592-youston</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/11413-les-vergers-de-chateaubourg</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/11345-telemaque</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/9138-vital-concept</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/8639-mma-questembert</loc>
<lastmod>2021-01-23</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/7593-opticultures</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/7174-atlantem</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/7004-la-table-de-la-desirade</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/6898-le-ptit-club</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/6555-mazars</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/6363-square-habitat</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/5250-linpac-packaging-pontivy-groupe-klockner-pentaplast</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/4211-progressis-ge</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/4097-a-2-com</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/4088-venetis</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/4059-eiffage-construction-grand-ouest</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/3381-mairie-saint-hilaire-de-riez</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/2958-skiold-acemo</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/2527-groupe-mousset</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/2341-temporis</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/1899-faurecia</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/1691-groupe-syselec</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/1467-groupe-rocher-operations</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/1297-albea</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/438-bouyer-leroux</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/266-mgdis</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/157-medaviz</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/95-multiplast</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/52-talents-tube</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/46-actual</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/18-coriolis-composites</loc>
<lastmod>2021-01-23</lastmod>
<priority>0.70</priority>
</url>
<url>
<loc>https://www.talentstube.com/Entreprise/17-thibault-bergeron</loc>
<lastmod>2021-01-24</lastmod>
<priority>0.70</priority>
</url>
</urlset>
Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+36
View File
@@ -0,0 +1,36 @@
/* latin-ext */
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 300;
font-display: swap;
src: url(KFOlCnqEu92Fr1MmSU5fChc4EsA.woff2) format('woff2');
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 300;
font-display: swap;
src: url(KFOlCnqEu92Fr1MmSU5fBBc4.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url(KFOmCnqEu92Fr1Mu7GxKOzY.woff2) format('woff2');
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url(KFOmCnqEu92Fr1Mu4mxK.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
File diff suppressed because it is too large Load Diff
+153
View File
@@ -0,0 +1,153 @@
/*
* Core Owl Carousel CSS File
* v1.3.3
*/
/* clearfix */
.owl-carousel .owl-wrapper:after {
content: ".";
display: block;
clear: both;
visibility: hidden;
line-height: 0;
height: 0;
}
/* display none until init */
.owl-carousel{
display: none;
position: relative;
width: 100%;
-ms-touch-action: pan-y;
}
.owl-carousel .owl-wrapper{
display: none;
position: relative;
-webkit-transform: translate3d(0px, 0px, 0px);
}
.owl-carousel .owl-wrapper-outer{
overflow: hidden;
position: relative;
width: 100%;
}
.owl-carousel .owl-wrapper-outer.autoHeight{
-webkit-transition: height 500ms ease-in-out;
-moz-transition: height 500ms ease-in-out;
-ms-transition: height 500ms ease-in-out;
-o-transition: height 500ms ease-in-out;
transition: height 500ms ease-in-out;
}
.owl-carousel .owl-item{
float: left;
}
.owl-controls .owl-page,
.owl-controls .owl-buttons div{
cursor: pointer;
}
.owl-controls {
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
/* mouse grab icon */
.grabbing {
cursor:url(../img/grabbing.png) 8 8, move;
}
/* fix */
.owl-carousel .owl-wrapper,
.owl-carousel .owl-item{
-webkit-backface-visibility: hidden;
-moz-backface-visibility: hidden;
-ms-backface-visibility: hidden;
-webkit-transform: translate3d(0,0,0);
-moz-transform: translate3d(0,0,0);
-ms-transform: translate3d(0,0,0);
}
/*
* Owl Carousel Owl Demo Theme
* v1.3.3
*/
.owl-theme .owl-controls{
margin-top: 10px;
text-align: center;
}
/* Styling Next and Prev buttons */
.owl-theme .owl-controls .owl-buttons div{
color: #FFF;
display: inline-block;
zoom: 1;
*display: inline;/*IE7 life-saver */
margin: 5px;
padding: 3px 10px;
font-size: 12px;
-webkit-border-radius: 30px;
-moz-border-radius: 30px;
border-radius: 30px;
background: #869791;
filter: Alpha(Opacity=50);/*IE7 fix*/
opacity: 0.5;
}
/* Clickable class fix problem with hover on touch devices */
/* Use it for non-touch hover action */
.owl-theme .owl-controls.clickable .owl-buttons div:hover{
filter: Alpha(Opacity=100);/*IE7 fix*/
opacity: 1;
text-decoration: none;
}
/* Styling Pagination*/
.owl-theme .owl-controls .owl-page{
display: inline-block;
zoom: 1;
*display: inline;/*IE7 life-saver */
}
.owl-theme .owl-controls .owl-page span{
display: block;
width: 12px;
height: 12px;
margin: 5px 7px;
filter: Alpha(Opacity=50);/*IE7 fix*/
opacity: 0.5;
-webkit-border-radius: 20px;
-moz-border-radius: 20px;
border-radius: 20px;
background: #FF5A5F;
}
.owl-theme .owl-controls .owl-page.active span,
.owl-theme .owl-controls.clickable .owl-page:hover span{
filter: Alpha(Opacity=100);/*IE7 fix*/
opacity: 1;
}
/* If PaginationNumbers is true */
.owl-theme .owl-controls .owl-page span.owl-numbers{
height: auto;
width: auto;
color: #FFF;
padding: 2px 10px;
font-size: 12px;
-webkit-border-radius: 30px;
-moz-border-radius: 30px;
border-radius: 30px;
}
.screenshot-slider .item{
margin: 3px;
}
.screenshot-slider .item img{
display: block;
width: 100%;
height: auto;
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 688 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 315 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 KiB

@@ -0,0 +1,31 @@
<svg xmlns="http://www.w3.org/2000/svg" width="207.525" height="43.208" viewBox="0 0 207.525 43.208">
<g id="Logo" transform="translate(-63.142 -208.083)">
<g id="Groupe_7907" data-name="Groupe 7907" transform="translate(63.142 217.603)" style="isolation: isolate">
<g id="Groupe_7904" data-name="Groupe 7904" transform="translate(0 1.508)" style="isolation: isolate">
<path id="Tracé_369" data-name="Tracé 369" d="M65.046,260.631v-7.353h-.529a1.375,1.375,0,0,1,0-2.751h.529v-2.38a1.6,1.6,0,0,1,3.2,0v2.38h2.513a1.376,1.376,0,1,1,0,2.751H68.247v6.85a1.524,1.524,0,0,0,1.719,1.746,7.557,7.557,0,0,0,.793-.079,1.349,1.349,0,0,1,1.349,1.323,1.377,1.377,0,0,1-.846,1.243,6.365,6.365,0,0,1-2.2.37C66.713,264.73,65.046,263.7,65.046,260.631Z" transform="translate(-63.142 -246.56)" fill="#fff"/>
</g>
<g id="Groupe_7905" data-name="Groupe 7905" transform="translate(11.73 5.29)" style="isolation: isolate">
<path id="Tracé_370" data-name="Tracé 370" d="M104.07,269.887v-.053c0-3.015,2.354-4.5,5.766-4.5a11.663,11.663,0,0,1,3.756.582v-.344c0-1.983-1.217-3.041-3.465-3.041a8.3,8.3,0,0,0-3.095.555,1.792,1.792,0,0,1-.5.08,1.332,1.332,0,0,1-1.349-1.322,1.4,1.4,0,0,1,.873-1.27,11.967,11.967,0,0,1,4.5-.82,6.258,6.258,0,0,1,4.629,1.56,5.8,5.8,0,0,1,1.507,4.311V272.5a1.524,1.524,0,0,1-1.561,1.534,1.446,1.446,0,0,1-1.56-1.349v-.529a5.676,5.676,0,0,1-4.549,2.036C106.4,274.2,104.07,272.69,104.07,269.887Zm9.575-1.005v-.952a8.875,8.875,0,0,0-3.174-.555c-2.063,0-3.28.873-3.28,2.327v.053c0,1.349,1.19,2.116,2.724,2.116C112.031,271.87,113.645,270.654,113.645,268.882Z" transform="translate(-104.07 -259.757)" fill="#fff"/>
</g>
<g id="Groupe_7906" data-name="Groupe 7906" transform="translate(28.512)" style="isolation: isolate">
<path id="Tracé_371" data-name="Tracé 371" d="M162.626,242.886a1.575,1.575,0,0,1,1.587-1.587,1.6,1.6,0,0,1,1.613,1.587v16.4a1.6,1.6,0,0,1-3.2,0Z" transform="translate(-162.626 -241.299)" fill="#fff"/>
<path id="Tracé_372" data-name="Tracé 372" d="M192.864,273.96a6.968,6.968,0,0,1-7.168-7.247v-.053c0-3.994,2.83-7.273,6.824-7.273a6.606,6.606,0,0,1,6.638,6.877,1.5,1.5,0,0,1-1.507,1.534H188.9a3.9,3.9,0,0,0,4.02,3.544,5.019,5.019,0,0,0,3.306-1.217,1.192,1.192,0,0,1,.82-.291,1.259,1.259,0,0,1,1.269,1.3,1.4,1.4,0,0,1-.423.979A7.171,7.171,0,0,1,192.864,273.96Zm3.174-8.279c-.212-2.063-1.428-3.676-3.544-3.676-1.957,0-3.333,1.507-3.624,3.676Z" transform="translate(-179.084 -254.203)" fill="#fff"/>
<path id="Tracé_373" data-name="Tracé 373" d="M244.11,261.133a1.581,1.581,0,0,1,1.587-1.613,1.6,1.6,0,0,1,1.614,1.613v.688a5.062,5.062,0,0,1,4.364-2.434c3.147,0,4.972,2.116,4.972,5.343v7.458a1.559,1.559,0,0,1-1.587,1.587,1.581,1.581,0,0,1-1.613-1.587v-6.48c0-2.169-1.084-3.412-2.989-3.412-1.851,0-3.147,1.3-3.147,3.465v6.427a1.6,1.6,0,0,1-3.2,0Z" transform="translate(-220.757 -254.203)" fill="#fff"/>
<path id="Tracé_374" data-name="Tracé 374" d="M298.892,260.631v-7.353h-.529a1.375,1.375,0,0,1,0-2.751h.529v-2.38a1.6,1.6,0,0,1,3.2,0v2.38h2.513a1.376,1.376,0,1,1,0,2.751h-2.513v6.85a1.524,1.524,0,0,0,1.719,1.746,7.566,7.566,0,0,0,.794-.079,1.349,1.349,0,0,1,1.349,1.323,1.377,1.377,0,0,1-.846,1.243,6.362,6.362,0,0,1-2.2.37C300.558,264.73,298.892,263.7,298.892,260.631Z" transform="translate(-258.48 -245.052)" fill="#fff"/>
<path id="Tracé_375" data-name="Tracé 375" d="M335.893,272.373a1.226,1.226,0,0,1-.608-1.111,1.281,1.281,0,0,1,1.3-1.3,1.4,1.4,0,0,1,.688.185,7.372,7.372,0,0,0,4.02,1.349c1.375,0,2.169-.582,2.169-1.508v-.053c0-1.084-1.481-1.454-3.121-1.957-2.063-.582-4.364-1.428-4.364-4.1v-.053c0-2.645,2.2-4.258,4.972-4.258a9.6,9.6,0,0,1,4.39,1.137,1.356,1.356,0,0,1,.767,1.217,1.287,1.287,0,0,1-1.322,1.3,1.256,1.256,0,0,1-.635-.159,7.615,7.615,0,0,0-3.28-.952c-1.243,0-1.957.582-1.957,1.375v.053c0,1.031,1.508,1.455,3.147,1.984,2.037.634,4.337,1.56,4.337,4.073v.053c0,2.936-2.274,4.39-5.184,4.39A9.544,9.544,0,0,1,335.893,272.373Z" transform="translate(-285.802 -254.335)" fill="#fff"/>
<path id="Tracé_376" data-name="Tracé 376" d="M410.736,260.631v-7.353h-.529a1.375,1.375,0,1,1,0-2.751h.529v-2.38a1.6,1.6,0,0,1,3.2,0v2.38h2.513a1.376,1.376,0,1,1,0,2.751h-2.513v6.85a1.524,1.524,0,0,0,1.719,1.746,7.578,7.578,0,0,0,.794-.079,1.349,1.349,0,0,1,1.349,1.323,1.377,1.377,0,0,1-.846,1.243,6.364,6.364,0,0,1-2.2.37C412.4,264.73,410.736,263.7,410.736,260.631Z" transform="translate(-338.27 -245.052)" fill="#fff"/>
<path id="Tracé_377" data-name="Tracé 377" d="M463.107,272.518a1.613,1.613,0,0,1-3.227,0V271.8a5.026,5.026,0,0,1-4.364,2.46c-3.147,0-4.972-2.116-4.972-5.369v-7.432a1.6,1.6,0,1,1,3.2,0v6.48c0,2.169,1.085,3.385,2.989,3.385,1.851,0,3.147-1.27,3.147-3.438v-6.427a1.6,1.6,0,0,1,1.613-1.613,1.62,1.62,0,0,1,1.613,1.613Z" transform="translate(-368.028 -254.533)" fill="#fff"/>
<path id="Tracé_378" data-name="Tracé 378" d="M508.312,242.886A1.559,1.559,0,0,1,509.9,241.3a1.581,1.581,0,0,1,1.613,1.587V249.1a5.59,5.59,0,0,1,4.761-2.619c3.28,0,6.48,2.592,6.48,7.247v.053c0,4.628-3.174,7.247-6.48,7.247a5.7,5.7,0,0,1-4.761-2.46v.714a1.6,1.6,0,0,1-3.2,0Zm11.188,10.9v-.053c0-2.7-1.825-4.47-3.994-4.47a4.211,4.211,0,0,0-4.073,4.47v.053a4.211,4.211,0,0,0,4.073,4.47C517.7,258.253,519.5,256.534,519.5,253.783Z" transform="translate(-409.24 -241.299)" fill="#fff"/>
<path id="Tracé_379" data-name="Tracé 379" d="M574.724,273.96a6.968,6.968,0,0,1-7.167-7.247v-.053c0-3.994,2.83-7.273,6.824-7.273a6.606,6.606,0,0,1,6.638,6.877,1.5,1.5,0,0,1-1.508,1.534h-8.754a3.9,3.9,0,0,0,4.02,3.544,5.02,5.02,0,0,0,3.306-1.217,1.191,1.191,0,0,1,.819-.291,1.259,1.259,0,0,1,1.27,1.3,1.4,1.4,0,0,1-.423.979A7.171,7.171,0,0,1,574.724,273.96Zm3.174-8.279c-.212-2.063-1.428-3.676-3.544-3.676-1.957,0-3.333,1.507-3.623,3.676Z" transform="translate(-451.506 -254.203)" fill="#fff"/>
</g>
</g>
<g id="Groupe_7908" data-name="Groupe 7908" transform="translate(234.216 208.083)">
<circle id="Ellipse_2" data-name="Ellipse 2" cx="5.337" cy="5.337" r="5.337" transform="translate(15.103 23.449)" fill="#fff"/>
<circle id="Ellipse_3" data-name="Ellipse 3" cx="5.337" cy="5.337" r="5.337" transform="translate(15.103 9.198)" fill="#fff"/>
<circle id="Ellipse_4" data-name="Ellipse 4" cx="6.416" cy="6.416" r="6.416" transform="translate(0 15.217)" fill="#fff"/>
<circle id="Ellipse_5" data-name="Ellipse 5" cx="6.416" cy="6.416" r="6.416" fill="#fff"/>
<circle id="Ellipse_6" data-name="Ellipse 6" cx="6.416" cy="6.416" r="6.416" transform="translate(0 30.376)" fill="#fff"/>
<circle id="Ellipse_7" data-name="Ellipse 7" cx="4.429" cy="4.429" r="4.429" transform="translate(27.594 17.204)" fill="#fff"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.6 KiB

+1 -1
View File
@@ -168,7 +168,7 @@ app.prepare()
server.get('/Player', (req, res) => {
const actualPage = '/Player'
const queryParams = { id: req.query.id, videoId:req.query.videoId, type:req.query.type }
const queryParams = { id: req.query.id, url: req.query.url, videoId:req.query.videoId, typeEntite:req.query.typeEntite, nameCompany:req.query.nameCompany, nameOffre:req.query.nameOffre }
app.render(req, res, actualPage, queryParams)
})
+10 -2
View File
@@ -10,6 +10,14 @@ const formatDate = require("./formatDate");
const robotsTxt = `# crawl setup
User-agent: *
Disallow: /Login*
Disallow: /Help
Disallow: /MentionsLegales
Disallow: /Inscription
Disallow: /Cgu
Disallow: /Confidentialite
Disallow: /Candidature
Disallow: /CandidatureValidation
Disallow: /profileStep
# Sitemap
Sitemap: https://www.talentstube.com/sitemap_local.xml`
@@ -33,8 +41,8 @@ const sitemapXml = `<?xml version="1.0" encoding="UTF-8"?>
)}
</urlset>`;
fs.writeFileSync("out/sitemap_local.xml", sitemapXml);
console.log("sitemap_local.xml saved!");
// fs.writeFileSync("out/sitemap_local.xml", sitemapXml);
//console.log("sitemap_local.xml saved!");
// GOOGLE's VERIFY HTML
// const googleVerify = `google-site-verification: google8f5d91a719b65f09.html`;