{% extends 'base.html.twig' %}
{% import 'macro/user.html.twig' as user_macro %}
{% block stylesheets %}
<style>
.rounded-right {
border-top-right-radius: 3em;
border-bottom-right-radius: 3em;
}
.whysection h3 {
font-size: 1.75rem;
font-weight: bolder;
}
.whysection p {
font-size: 1.2rem;
line-height: 1.9rem;
text-align: justify;
}
th {
max-width: 50%;
width: 50%;
color: #979797;
}
td {
font-weight: bold;
color: #000;
}
table {
width: 100%;
}
.news-link:visited {
color: #98a2ea;
}
.accordion-header.accordion-white {
background: #f0faf8;
color: #000000;
border: none;
}
/*----------------- MODAL ------------------- */
.modal {
z-index: 99999;
max-width: 700px;
width: 35%;
position: fixed;
top: 64%;
left: 18%;
transform: translate(-50%, -50%);
border-radius: 40px;
background: #f0faf8;
display: none;
visibility: hidden;
opacity: 0;
transition: visibility 0s, opacity 1s linear;
box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.4);
}
.modal.show {
display: block;
visibility: visible;
opacity: 1;
}
#close {
cursor: pointer;
color: white;
position: absolute;
top: -5px;
font-size: 25px;
right: -7px;
padding: 1rem;
margin-right: 10px;
}
.n-page-left-side {
padding-left: 50px;
padding-right: 50px;
margin-bottom: 118px;
}
.welcome-text {
text-align: left;
}
.welcome-text h3 {
font-size: 19px;
}
/*.modal__title{font-size: 2.5rem;}
.modal__title span{display: block;font-weight: 400;}
.modal__paragraph{font-size: 16px;font-weight: 400;}
.modal__button{
background-color:#0a9396;
border:none;
color: white;
padding: 1rem 2rem;
border-radius:5px;
box-shadow: 2px 2px 12px rgba(0,0,0,0.2);
transition: 0.3s background-color ease-in-out;
}
.modal__button:hover{background-color:#0a9372;}
main{text-align: center;}
.modal__container{
padding: 1rem 2rem;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
position: relative;
}*/
@media only screen and (min-width: 768px) {
.modal__container {
flex-direction: row;
text-align: left;
}
.modal__img {
max-width: 50%
}
}
@media only screen and (max-width: 500px) {
.modal__title {
font-size: 2rem;
}
.modal__img {
max-width: 80%
}
}
.welcome-text {
margin-bottom: 7px;
}
#modal .submit-field {
margin-bottom: 0;
}
.n-page-left-side {
padding-top: 47px;
padding-left: 25px;
padding-right: 25px;
margin-bottom: 118px;
}
.welcome-text {
text-align: left;
margin-bottom: 5px !important;
}
.welcome-text h3 {
font-size: 19px;
}
@media only screen and (min-width: 768px) {
.modal__container {
flex-direction: row;
text-align: left;
}
.modal__img {
max-width: 50%
}
}
@media only screen and (max-width: 500px) {
.modal__title {
font-size: 2rem;
}
.modal__img {
max-width: 80%
}
}
.welcome-text {
margin-bottom: 7px;
}
#modal .submit-field {
margin-bottom: 0;
}
.uploadButton .uploadButton-file-name {
overflow: inherit;
min-height: inherit;
}
.uploadButton {
margin-bottom: inherit;
}
/* ------- ALLIN -------- */
.compact-list-layout .job-listing .job-listing-company-logo {
max-width: 81px;
}
.job-listing .job-listing-company-logo img {
border-radius: 47px;
}
.uploadButton .uploadButton-button {
background-color: white;
}
.h1-title {
font-size: 40px !important;
}
.h3-title {
font-size: 30px !important;
}
@media screen and (max-width: 500px) {
.h1-title {
font-size: 30px !important;
}
.h3-title {
font-size: 21px !important;
line-height: 25px !important;
}
}
@media (max-width: 992px) {
.intro-banner {
padding: 29px 0;
}
}
.submit-field {
margin-bottom: inherit !important;
}
</style>
{# INTRO BANNER #}
<style>
.banner-headline {
max-width: initial;
}
.banner-headline .forum_avatar {
display: inline-block;
padding: 0px 6px;
background-color: #00B28E;
color: white;
border-radius: 50px;
font-size: 14px;
}
</style>
{% endblock %}
{% block body %}
<!-- Intro Banner
================================================== -->
<!-- add class "disable-gradient" to enable consistent background overlay -->
<div class="intro-banner" data-background-image="images/home-background2.jpg">
<div class="container">
<!-- Intro Headline -->
<div class="row" id="intro-headline">
<div class="col-md-6">
<div class="banner-headline">
<span>
<h1 class="h1-title"><strong
class="text-blue">Jobs in Dubai, Abu Dhabi and UAE</strong></h1>
<h3 class="text-black h3-title">
100% regular jobs and freelance jobs in Dubai and UAE and 100% free for jobseekers.
</h3>
</span>
</div>
</div>
<div class="col-md-1"></div>
<div class="col-md-5">
<div class="banner-headline">
{% include('forum/layout/recent_post.html.twig') %}
</div>
</div>
</div>
<!-- Search Bar -->
<div class="row">
<div class="col-md-12">
<form action="{{ path('mission_search') }}" method="POST" id="formSearch">
<div class="intro-banner-search-form margin-top-95">
<!-- Search Field -->
<div class="intro-search-field">
<label for="intro-keywords" class="field-title ripple-effect">What are you looking
for?</label>
<input id="search" name="search" id="intro-keywords" type="text" style="width: 600px;"
placeholder="Job title or keyword">
</div>
<!-- Search Field -->
<div class="intro-search-field">
<label for="autocomplete-input" class="field-title ripple-effect">Where?</label>
<select id="location" name="location[]" class="selectpicker default" multiple
data-live-search="true">
<option
value="All UAE" selected>
All UAE
</option>
{% for name,region in regions %}
<optgroup label="{{ name }}">
<option value="{{ name }}">
All
{{ name }}</option>
{% for department in region %}
<option
value="{{ department }}">
{{ department }}
</option>
{% endfor %}
</optgroup>
{% endfor %}
</select>
</div>
<div class="intro-search-field">
<label for="job-type" class="field-title ripple-effect">What type of job?</label>
<select id="job-type" name="category" class="selectpicker default">
<option value="Full-time">Full-time</option>
<option value="Contract">Contract</option>
<option value="Part-time">Part-time</option>
<option value="Internship">Internship</option>
</select>
</div>
<!-- Button -->
<div class="intro-search-button">
{% if is_granted('ROLE_USER') %}
<button class="button ripple-effect"
type="submit">Search
</button>
{% else %}
<a class="button ripple-effect "
href="{{ path('mission_search', {'url_libelle' : "search"}) }}">Search</a>
{% endif %}
</div>
</div>
</form>
</div>
</div>
</div>
</div>
<!-- Features Jobs -->
{% if not isNotShow %}
<div class="section padding-top-45 padding-bottom-45">
<div class="container">
<div class="row">
<div class="col-xl-12">
<!-- Section Headline -->
<div class="section-headline margin-top-0 margin-bottom-35">
<h3>Latest offers</h3>
<a href="{{ path('mission_search', {'url_libelle' : "search"}) }}"
class="headline-link">
All offers
</a>
</div>
<!-- Jobs Container -->
<div class="listings-container compact-list-layout margin-top-35">
{% for offer in offers|slice(0, 3) %}
<a href="{{ path('public_mission', {slug : offer.slug}) }}"
class=" job-listing with-apply-button">
<div class="job-listing-details">
<div class="job-listing-company-logo">
{% if offer.society %}
{{ user_macro.societyPhoto(offer.society.user.photo) }}
{% else %}
<img src="{{ asset('images/company-logo-05.png') }}"
alt="">
{% endif %}
</div>
<div class="job-listing-description">
<h3 class="job-listing-title"> {{ offer.title }}</h3>
<div class="job-listing-footer">
<ul>
<li>
<i class="icon-material-outline-business"></i>
{% if offer.society %}
{{ offer.society.name }}
{% else %}
{{ offer.societyExternName }}
{% endif %}
</li>
<li>
<i class="icon-material-outline-location-on"></i> {{ offer.location }}
</li>
<li>
<i class="icon-material-outline-business-center text-blue"></i>
{{ offer.getYearRequired }}
</li>
<li>
<i class="icon-line-awesome-money text-blue"></i>
{{ offer.salaryPeerMonthText }}
</li>
</ul>
</div>
</div>
<span class="button">Apply</span>
</div>
</a>
{% endfor %}
</div>
<!-- Jobs Container / End -->
</div>
</div>
</div>
</div>
{% endif %}
<!-- Featured Jobs / End -->
<!-- Features Cities -->
<div class="section margin-bottom-65 margin-top-65">
<div class="container">
<div class="row">
{% for city in cityList %}
<div class="col-xl-3 col-md-6">
<!-- Photo Box -->
<a
href="{{ city.link }}"
class="photo-box"
data-background-image="{{ city.img }}">
<div class="photo-box-content">
<h2 class="text-white">{{ city.name }}</h2>
</div>
</a>
</div>
{% endfor %}
</div>
</div>
</div>
<!-- Features Cities / End -->
{# <!-- Highest Rated Freelancers -->
<div class="section padding-top-45 padding-bottom-30">
<div class="container">
<div class="row">
<div class="col-xl-12">
<!-- Section Headline -->
<div class="section-headline margin-top-0 margin-bottom-25">
<h3>Derniers profils</h3>
<a href="{{ is_granted('ROLE_USER') ? path('freelance_search') : '#sign-in-dialog' }}"
class="{{ is_granted('ROLE_USER') ? '' : 'popup-with-zoom-anim' }} headline-link">Tous les
profils</a>
</div>
</div>
<div class="col-xl-12">
<div class="freelancers-container freelancers-grid-layout">
{% for profile in profiles %}
<div class="freelancer">
<div class="freelancer-overview">
<div class="freelancer-overview-inner">
<div class="freelancer-avatar">
<a href="{{ path('public_profile', {slug : profile.slug}) }}">
<img
src="{{ asset( profile.photo ? 'uploads/avatar/' ~ profile.photo: 'images/user-avatar-placeholder.png') }}"
alt=""
class="{{ is_granted('ROLE_USER') ? '' : 'blur-image' }}">
</a>
</div>
<div class="freelancer-name">
<h4>
<a href="{{ path('public_profile', {slug : profile.slug}) }}">{{ profile.user.firstName }}
.</a>
</h4>
<span>{{ profile.title }}</span>
</div>
</div>
</div>
<div class="freelancer-details">
<div class="freelancer-details-list">
#}
{# @changelog 2022-10-03 [FIX] (Anthony) Modification affichage mobilité sur le titre de la page #}
{#
<table>
<thead>
<tr>
<th>Localisation</th>
<th>T.J.M</th>
<th>Disponibilité</th>
</tr>
</thead>
<tbody>
<tr>
<td>
{% set locations = profile.location|split(' ') %}
<i class="icon-material-outline-location-on"></i>
{% if locations|length > 1 %}
{{ locations[1] }}
{% else %}
{{ locations[0] }}
{% endif %}
</td>
<td>{{ profile.cost }} €</td>
<td>{{ profile.disponibility }}</td>
</tr>
</tbody>
</table>
</div>
<a href="{{ is_granted('ROLE_USER') ? path('public_profile', {slug : profile.slug}) : '#sign-in-dialog' }}"
class="{{ is_granted('ROLE_USER') ? '' : 'popup-with-zoom-anim' }} button button-sliding-icon ripple-effect">
Voir le profil <i class="icon-material-outline-arrow-right-alt"></i></a>
</div>
</div>
<!-- Freelancer / End -->
{% endfor %}
</div>
</div>
</div>
</div>
</div>
<!-- Highest Rated Freelancers / End--> #}
<!-- Highest news -->
{#<div class="section padding-bottom-45">
<div class="container">
<div class="row">
<div class="col-xl-12">
<!-- Section Headline -->
<div class="section-headline margin-top-0 margin-bottom-25">
<h3>News</h3>
<a href="{{ path('all_news') }}"
class=" headline-link">All news</a>
</div>
</div>
<div class="col-xl-12">
<div class="freelancers-container freelancers-grid-layout">
<ul style="list-style-type:none;">
{% for actu in news %}
<li class="actu">
<strong class="text-blue">{{ actu.date|date('d/m') }} </strong>
-
<a class="news-link text-black" href="{{ actu.newsLink }}"
target="_blank"
>
<span>{{ actu.description|u.truncate(70, '...') }}</span>
</a>
- <small>
<em>
<a href="{{ actu.link }}" target="_blank"
class="text-black">{{ actu.owner }}
</a>
</em>
</small>
</li>
{% endfor %}
</ul>
</div>
</div>
</div>
</div>
</div>#}
<!-- Highest news / End-->
{# <div class="section gray padding-top-0">
<div class="d-flex align-items-end ">
<div class="d-none d-md-block col-md-5 padding-left-0">
<img class="rounded-right" style="height:50vh; width:100%; object-fit: cover;"
src="{{ asset('images/illustration-1.jpg') }}" title="Pourquoi freelance dispo"
alt="Pourquoi freelance dispo">
</div>
<div class="col-md-6 whysection">
<h3>Pourquoi <span class="text-blue">Freelance Dispo</span> ?</h3>
<p class="margin-top-25">
<span class="text-blue">Freelance Dispo</span> est une plateforme dont l’inscription et
l’utilisation sont
<span class="text-blue">100% gratuites pour les freelances</span>. En déposant votre CV vous pourrez
être contacté par des recruteurs qui recherchent des
freelances pour des missions de moyenne et longue durée, et vous pourrez aussi postuler aux annonces
de missions destinées aux freelances informatique et dans le digital. Le TJM du freelance n’est pas
du tout impacté, Freelance Dispo ne demande <span class="text-blue">aucune commission ni aux freelances ni aux recruteurs</span>
et
aucun % de frais de service.
</p>
</div>
</div>
</div> #}
<!-- How it works -->
<div class="section padding-top-65 padding-bottom-65">
<div class="container">
<div class="row">
<div class="col-xl-12">
<!-- Section Headline -->
<div class="section-headline centered margin-top-0 margin-bottom-5">
<h3>How does it work?</h3>
</div>
</div>
<div class="col-xl-4 col-md-4">
<!-- Icon Box -->
<div class="icon-box with-line">
<!-- Icon -->
<div class="icon-box-circle">
<div class="icon-box-circle-inner">
<i class="icon-line-awesome-lock"></i>
<div class="icon-box-check"><i class="icon-material-outline-check"></i></div>
</div>
</div>
<h3>Create an account</h3>
<p>Create a free account easily to use 100% of the platform</p>
</div>
</div>
<div class="col-xl-4 col-md-4">
<!-- Icon Box -->
<div class="icon-box with-line">
<!-- Icon -->
<div class="icon-box-circle">
<div class="icon-box-circle-inner">
<i class="icon-line-awesome-legal"></i>
<div class="icon-box-check"><i class="icon-material-outline-check"></i></div>
</div>
</div>
<h3>Post your CV </h3>
<p>
Add your informations and add your CV to be able to be contact by all employers in Dubai and
UAE
</p>
</div>
</div>
<div class="col-xl-4 col-md-4">
<!-- Icon Box -->
<div class="icon-box">
<!-- Icon -->
<div class="icon-box-circle">
<div class="icon-box-circle-inner">
<i class=" icon-line-awesome-trophy"></i>
<div class="icon-box-check"><i class="icon-material-outline-check"></i></div>
</div>
</div>
<h3>Apply to a position</h3>
<p>
Apply to a regular job or a freelance job in Dubai, Abu Dhabi or everywhere in United Arab
Emirates.
</p>
</div>
</div>
</div>
</div>
</div>
<!-- How it works / End -->
<!--FAQ -->
<div class="section faq " style="background-color: #f0faf8">
<div class="container-fluid white" style="padding-left: 0px; padding-right: 0px; background-color: white ">
<svg style="display: block" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%"
viewBox="0 0 1366 74.99">
<path
d="M.051,44.953C180.175,87.69,501.382,86.386,803.886,24.306a1184.173,1184.173,0,0,1,562.165,20.646c-.213-.782,0,30,0,30H.051Z"
transform="translate(-0.051 0.038)" fill="#f0faf8"></path>
</svg>
</div>
<div class="container padding-top-50 padding-bottom-100">
<div class="row">
<div class="col-md-8">
<h3>FAQ for <span class="text-blue">jobseekers</span></h3>
<div class="margin-top-50 accordion js-accordion no-shadow ">
{% for question, answer in faqs %}
<div class="accordion__item js-accordion-item">
<div class="accordion-header accordion-white js-accordion-header">
<i class="carret"></i> <span>{{ question }}</span>
</div>
<!-- Accordtion Body -->
<div class="accordion-body js-accordion-body" style="display: none;">
<!-- Accordion Content -->
<div class="accordion-body__contents">
<p class="text-black">
{{ answer }}
</p>
</div>
</div>
<!-- Accordion Body / End -->
</div>
{% endfor %}
</div>
</div>
{# <div class="col-md-4">
<img src="{{ asset('images/home-faq.png') }}" alt="FAQ">
</div> #}
</div>
</div>
</div>
<!--FAQ / End -->
{% include('page/_modal_action_home.html.twig') %}
{% if is_granted('ROLE_USER') and app.user.deleteAt %}
<div id="small-dialog" class="zoom-anim-dialog mfp-hide dialog-with-tabs">
<div class="sign-in-form">
<ul class="popup-tabs-nav">
<li><a href="#recup-tab">Compte</a></li>
</ul>
<div class="popup-tabs-container">
<div class="popup-tab-content" id="recup-tab">
<form>
<div id="report_confirm" class="welcome-text">
<h3> « Souhaitez-vous récupérer votre compte avant sa suppression ? »</h3>
</div>
<div class="d-flex justify-content-end">
<a href="{{ path('logout') }}" class="button red " style="margin-right: 10px">
Annuler
</a>
<a href="{{ path('account_reactivate') }}" class="button">Récupérer mon compte</a>
</div>
</form>
</div>
</div>
</div>
</div>
{% else %}
{% include 'common/modal/sign_modal.html.twig' %}
{% include 'common/modal/reset_password_modal.html.twig' %}
{% endif %}
{% set paused = false %}
{% for validation in app.flashes('pause_success') %}
{% set paused = true %}
{% endfor %}
{% if paused %}
<div id="pause-info-dialog" class="zoom-anim-dialog mfp-hide dialog-with-tabs custom-dialog">
<div class="sign-in-form">
<ul class="popup-tabs-nav">
<li><a href="#tabinfo">Compte en pause</a></li>
</ul>
<div class="popup-tabs-container">
<!-- Tab -->
<div class="popup-tab-content" id="tabinfo">
<!-- Welcome Text -->
<div class="welcome-text">
<p class="margin-top-15">
Votre compte est en pause à votre demande et sera réactivé le
{{ app.user.society.pauseDate | date('d/m/Y') }}
à {{ app.user.society.pauseDate | date('H:i') }}
</p>
</div>
</div>
</div>
</div>
</div>
{% endif %}
{# ------- BTN LOGIN / REGISTER MOBILE ------ #}
{% include 'macro/notuser_floatant.html.twig' %}
{% endblock %}
{% block javascripts %}
<script>
const regions = JSON.parse(`{% autoescape false %}{{ regionjson }}{% endautoescape %}`);
$(function () {
$('#location').change(function () {
var location = $(this).val();
var newLocation = location;
if (location.length > 1) {
newLocation = newLocation.filter((value) => value !== 'All UAE');
}
Object.entries(regions).forEach(([region, departement]) => {
if (newLocation.includes(region)) {
var dep = Object.keys(departement);
newLocation = newLocation.filter((value) => !dep.includes(value));
}
});
$(this).selectpicker('val', newLocation);
});
if ($('#small-dialog').length > 0) {
$.magnificPopup.open({
items: {
src: '#small-dialog'
},
type: 'inline',
fixedContentPos: false,
fixedBgPos: true,
overflowY: 'auto',
closeBtnInside: true,
preloader: false,
midClick: true,
removalDelay: 300,
mainClass: 'my-mfp-zoom-in'
});
}
if ($('#pause-info-dialog').length > 0) {
$.magnificPopup.open({
items: {
src: '#pause-info-dialog'
},
type: 'inline',
fixedContentPos: false,
fixedBgPos: true,
overflowY: 'auto',
closeBtnInside: true,
preloader: false,
midClick: true,
removalDelay: 300,
mainClass: 'my-mfp-zoom-in'
});
}
if ($('#recup-dialog').length > 0) {
$.magnificPopup.open({
items: {
src: '#recup-dialog'
},
type: 'inline',
fixedContentPos: false,
fixedBgPos: true,
overflowY: 'auto',
closeBtnInside: true,
preloader: false,
midClick: true,
removalDelay: 300,
mainClass: 'my-mfp-zoom-in'
});
}
})
</script>
{# ----- SCRIPT INSCRIPTION ---- #}
{% if not app.user %}
<script>
// MODAL
const closeBtn = document.getElementById('close');
const modalMenu = document.getElementById('modal');
if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {
// true for mobile device
console.log('mobile');
} else {
// false for not mobile device
document.addEventListener("scroll", (event) => {
if (!localStorage.modalShow) {
modalMenu.classList.add('show');
}
})
}
closeBtn.addEventListener('click', () => {
modalMenu.classList.remove('show');
localStorage.modalShow = true;
});
</script>
{% endif %}
{% if app.user %}
{# ---- SCRICP FORMATAGE RECHERCHE --- #}
{{ include('macro/_mission-search.html.twig') }}
{% endif %}
{% endblock %}