{% extends 'base.html.twig' %}{% import 'macro/user.html.twig' as user_macro %}{% block title %} {% if keyword and keyword != "" %} {{ keyword }} jobs {% else %} Jobs {% endif %} in {% if location is defined and location is iterable %} {% set locationCount = location|length %} {% if locationCount == 1 %} {{ location[0] }} {% elseif locationCount == 2 %} {{ location[0] }} and {{ location[1] }} {% else %} {% for i in 0..locationCount-2 %} {{ location[i] }}, {% endfor %} and {{ location[locationCount-1] }} {% endif %} {% endif %} ({{ currentDate|format_datetime(pattern="MMMM yyyy", locale='en') }}) - Avopy.com{% endblock %}{% block stylesheets %} <style> .txt-lu { border: 1px solid #F1948A; padding: 6px; border-radius: 2rem; background-color: #F1948A; color: white !important; font-size: 13px; } .txt-nlu { border: 1px solid #72C896; padding: 6px; border-radius: 2rem; background-color: #72C896; color: white !important; font-size: 13px; } .small { margin-bottom: 20px !important; } .wt-joincommunity { width: 100%; text-align: center; background-color: #fff; border: 1px solid #eee; border-radius: 3px; z-index: 9; padding-top: 40px; padding-bottom: 40px; display: flex; flex-wrap: wrap; flex-direction: column; align-items: center; justify-content: center; -webkit-box-shadow: 0 6px 20px 0 rgba(0, 0, 0, 0.1); box-shadow: 0 6px 20px 0 rgba(0, 0, 0, 0.1); } </style> <style> .social-share-link, .share-messenger { padding: initial !important; } .apply-btn { margin-bottom: 20px; padding-left: inherit !important; padding-right: inherit !important; text-align: center !important; } @media only screen and (max-width: 600px) { .apply-btn { margin-top: 20px; margin-bottom: 5px; } } .popup-offer-question .mfp-close { margin-top: 20px !important; margin-right: 15px !important; color: #000 !important; } .job-listing .job-listing-company-logo img { border-radius: 50px; } .job-listing .job-listing-company-logo { max-width: 102px; } .alert-txt { font-size: 18px; } @media (max-width: 768px) { .notify-box .sort-by { position: absolute; margin-top: 18px; left: 0; } .notify-box { margin-bottom: 30px; } } #more-filter { color: #00B28E !important; cursor: pointer; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2); border-radius: 30px !important; background: white !important; border: 2px solid #00b28e !important; align-items: center; } </style>{% endblock %}{% block body %} <div class="container margin-top-10" id="searchapp"> <div class="row"> <div class="col-xl-12 col-lg-12 content-left-offset"> <form action="{{ path('mission_search') }}" method="post" id="formSearch"> <div class="row" style="margin-top: 20px;"> <div class="sidebar-widget col-md-3"> <label class="small">Keywords</label> <div class="keywords-container"> <input name="search" placeholder="Keywords, Job title …" type="text" id="search" class="with-border" value="{{ keyword }}"/> </div> </div> <div class="sidebar-widget col-md-2 hide-on-mobile other-input-search"> <label class="small">Type of job</label> <div class="keywords-container"> <select id="categorie" name="category" class="selectpicker with-border"> <option value="" {% if "" == category %} selected {% endif %} >All </option> <option value="Full-time" {% if "Full-time" == category %} selected {% endif %} >Full-time </option> <option value="Part-time" {% if "Part-time" == category %} selected {% endif %} >Part-time </option> <option value="Contract" {% if "Contract" == category %} selected {% endif %} >Contract </option> <option value="Internship" {% if "Internship" == category %} selected {% endif %} >Internship </option> </select> </div> </div> <div class="sidebar-widget col-md-3 hide-on-mobile other-input-search"> <label class="small">Experience</label> <div class="keywords-container"> <select id="experience" name="experience[]" class="selectpicker with-border" multiple title="Choose"> <option value="0 to 2 years" {% if "0 to 2 years" in experience %} selected {% endif %} >0 to 2 years </option> <option value="2 to 5 years" {% if "2 to 5 years" in experience %} selected {% endif %} >2 to 5 years </option> <option value="5 to 10 years" {% if "5 to 10 years" in experience %} selected {% endif %} >5 to 10 years </option> <option value="10 to 15 years" {% if "10 to 15 years" in experience %} selected {% endif %} >10 to 15 years </option> <option value="15 to 20 years" {% if "15 to 20 years" in experience %} selected {% endif %} >15 to 20 years </option> <option value="More than 20 years" {% if "More than 20 years" in experience %} selected {% endif %} >More than 20 years </option> </select> </div> </div> <div class="sidebar-widget col-md-2 hide-on-mobile other-input-search"> <label class="small">Location</label> <div class="keywords-container input-with-icon"> <select id="location" name="location[]" class="with-border selectpicker" multiple data-live-search="true"> <option value="All UAE" {{ 'All UAE' in location ? 'selected' : '' }}> All UAE </option> {% for name,region in regions %} <optgroup label="{{ name }}"> <option value="{{ name }}" {% if name in location %} selected {% endif %}> All {{ name }}</option> {% for department in region %} <option value="{{ department }}" {% if department in location %} selected {% endif %}> {{ department }} </option> {% endfor %} </optgroup> {% endfor %} </select> <i class="icon-material-outline-location-on"></i> </div> </div> <div class="col-md-3 margin-bottom-10 mobileshow" > <button type="button" class="button ripple-effect " onclick="showMoreInputSearch()" id="more-filter"> <b >More filters <i class="icon-feather-plus"></i></b> </button> </div> <div class="sidebar-widget col-md-2"> {% if app.user %} <div class="hide-on-mobile"> <br> </div> <button type="submit" class="button full-width"> Search <i class="icon-material-outline-search"></i> </button> {% else %} <div class="hide-on-mobile"> <br> </div> <a href="#sign-in-dialog" class="button full-width popup-with-zoom-anim"> Search <i class="icon-material-outline-search"></i> </a> {% endif %} </div> </div> {% if isComing %} <div class="d-flex flex-column compact-list-layout align-content-around align-items-center padding-top-50 padding-bottom-50"> <img src="{{ asset('images/search-file.png') }}" alt="recherche missions"/> <h2 class="marting-top-20" style="text-align: center;font-size: 23px;"> Your profile is now reachable to recruiters and you shall very soon be able to apply to offers! </h2> <p id="timer" class="margin-top-35 text-blue" style="font-size:3em"></p> </div> {% else %} <div class="notify-box" {% if not app.user %} style="display: none" {% endif %} > <div class="switch-container"> {% if app.user %} {% if app.user.isFreelance %} <label class="switch"> <input type="checkbox" id="alertSwitch" {% if alert %} checked {% endif %}> <span class="switch-button" style="margin-top: 7px;"></span> <span class="switch-text text-black alert-txt"> {# <b><i class="icon-feather-bell" style="color: #ffc400; font-weight: 900;"></i></b> #} <img src="{{ asset('images/bell-img.png') }}" alt="Avopy - job alert" style="padding-bottom: 5px;"> Do you want to receive <a href="{{ path('user_setting', {'goto': 'settings'}) }}#divOfferAlert" class=""><b>job alert</b></a> to be the first to apply to this type of job? </span> </label> {% endif %} {% endif %} </div> {% if app.user %} <div class="sort-by"> <span>Sort by</span> <select name="order" onchange="setSearchLibelle();this.form.submit()" class="selectpicker hide-tick"> <option value="pertinence" {{ order == 'pertinence' ? 'selected' : '' }}> Relevance </option> <option class="no-wrap" value="desc" {{ order == 'desc' ? 'selected' : '' }}> Newest </option> <option class="no-wrap" value="asc" {{ order == 'asc' ? 'selected' : '' }}> Oldest </option> </select> </div> {% endif %} </div> </form> <div class="row"> <div class="col-md-9"> <div class="listings-container margin-top-5"> {% if not noFound %} <h1 style="font-size: 22px;"> {% if keyword and keyword != "" %} {{ keyword }} jobs {% else %} Jobs {% endif %} in {% if location is defined and location is iterable %} {% set locationCount = location|length %} {% if locationCount == 1 %} {{ location[0]|replace({'All UAE' : 'UAE'}) }} {% elseif locationCount == 2 %} {{ location[0]|replace({'All UAE' : 'UAE'}) }} and {{ location[1]|replace({'All UAE' : 'UAE'}) }} {% else %} {% for i in 0..locationCount-2 %} {{ location[i]|replace({'All UAE' : 'UAE'}) }}, {% endfor %} and {{ location[locationCount-1]|replace({'All UAE' : 'UAE'}) }} {% endif %} {% endif %} results </h1> <br> {% else %} {% if noFound and app.user %} <h3> <i> No result was found. You can activate the <span class="text-blue">job alert</span> </i> </h3> <br> {% endif %} {% if noFound and not app.user %} <h3> <i> No result was found. </i> </h3> <br> {% endif %} {% endif %} {% if app.user %} {% if highlightedMissions|length > 0 %} <div class="highlight-container"> {% for offer in highlightedMissions %} {% include 'search/_society_card.html.twig' %} {% endfor %} </div> {% endif %} {% if otherBoostMissions|length > 0 %} {% for offer in otherBoostMissions %} {% include 'search/_society_card.html.twig' %} {% endfor %} {% endif %} {% for offer in offers %} {% include 'search/_society_card.html.twig' %} {% endfor %} <div class="navigation"> {{ knp_pagination_render(offers) }} </div> {% else %} {% for offer in offers|slice(0, 1) %} {% set isInFav = false %} {% for favorite in offer.offerFavorites %} {% if app.user %} {% if favorite.user.id == app.user.id %} {% set isInFav = true %} {% endif %} {% endif %} {% endfor %} <div class="job-listing"> <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" style="opacity: 0.4"> <div class="row"> <div class="col-md-9 col-sm-12"> <a href="{{ path('public_mission',{slug: offer.slug}) }}"> <h3 class="job-listing-title text-blue">{{ offer.title }}</h3> <h5 class="job-listing-company text-black"> {% if offer.society %} {{ offer.society.name }} {% else %} {{ offer.societyExternName }} {% endif %} <br> </h5> <p class="job-listing-text"> {{ offer.description| u.truncate(90,'...') }} </p> </a> </div> <div class="col-md-3 col-sm-12" style="padding-right: 0px;"> <div class="row" style=" bottom: 0; margin-bottom: -15px;"> <div class="col-md-12"> {% if not app.user %} <a href="{{ path('public_redirect_offer_apply', {'id' : offer.id}) }}" class="button apply-btn" style="width: 100%"> Apply now <i class="icon-material-outline-arrow-right-alt"></i> </a> {% else %} {% if offer.id in offerCandidatureIds %} <button type="button" class="button grey apply-btn" style="width: 100%; background-color: #66676b; color: #fff;"> Applied <i class="icon-feather-check"></i> </button> {% else %} {% if offer.linkExtern %} <a href="{{ offer.linkExtern }}" class="button apply-btn" target="_blank" style="width: 100%"> Apply now <i class="icon-material-outline-arrow-right-alt"></i> </a> {% elseif offer.questions|length > 0 %} <button href="#small-dialog-{{ offer.id }}" class="popup-with-zoom-anim button apply-btn" style="width: 100%"> Apply now <i class="icon-material-outline-arrow-right-alt"></i> </button> {% else %} <form method="POST" action="{{ path('public_mission', {'slug' : offer.slug}) }}"> <button type="submit" class="button apply-btn" style="width: 100%"> Apply now <i class="icon-material-outline-arrow-right-alt"></i> </button> </form> {% endif %} {% endif %} {% endif %} </div> <div class="col-md-12 mobileshow"> <button class="share-messenger button margin-bottom-2" data-tippy-placement="top" style="background-color: rgb(59, 89, 152); width: 100%"> <a href="fb-messenger://share/?link={{ url('public_mission', {'slug' : offer.slug}) }}" style="color: inherit; width: 100%; display: block"> Share <i class="icon-brand-facebook-messenger"></i> </a> </button> </div> <div class="col-md-12"> <button href="https://www.linkedin.com/sharing/share-offsite/?url={{ url('public_mission', {'slug' : offer.slug}) }}" class="social-share-link button margin-bottom-2" data-tippy-placement="top" style="background-color: rgb(0, 119, 181); width: 100%"> Share <i class="icon-brand-linkedin-in"></i> </button> </div> <div class="col-md-12"> <button href="https://wa.me/?text={{ url('public_mission', {'slug' : offer.slug}) }}" class="social-share-link button margin-bottom-2" data-tippy-placement="top" style="background-color: #25D366; width: 100%"> Share <i class="icon-brand-whatsapp"></i> </button> </div> </div> </div> </div> </div> </div> <div class="job-listing-footer" style="opacity: 0.2"> <ul> {% if offer.id in offerViewed %} <li> <span class="txt-nlu"> <i class="icon-feather-eye" style="color:white;"></i> View </span> </li> {% endif %} <li> {{ offer.timeCreateString }} </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> <li> <i class="icon-material-outline-business text-blue"></i> {{ offer.typeSearch }} </li> <li> <i class="icon-material-outline-location-on text-blue"></i>{{ offer.location }} </li> </ul> </div> </div> {% endfor %} <div class="col-12 wt-joincommunityholder " style="margin-top: -60px; padding-right: 0px !important; padding-left: 0px !important;"> <div class="wt-joincommunity"> <img src="{{ asset('images/img-rejoigner-nous.png') }}" alt="Join now for fun!"> <h2>Join us!</h2> <p>To view more, please login or register</p> {#WEB#} <a href="{{ path('register_freelance') }}" class="button btn-lg ripple-effect margin-top-25 hide-on-mobile"> Register 100% free </a> {#MOBILE#} <a href="{{ path('register_freelance_mobile') }}" class="button btn-lg ripple-effect margin-top-25 mobileshow"> Register 100% free </a> </div> </div> <br><br> {% endif %} </div> </div> <div class="col-md-3"></div> </div> {% endif %} </div> </div> </div> {# FORM FOR NOT USER #} {% if not app.user %} {% include 'common/modal/sign_modal.html.twig' %} {% include 'common/modal/reset_password_modal.html.twig' %} {# ------- BTN LOGIN / REGISTER MOBILE ------ #} {% include 'macro/notuser_floatant.html.twig' %} {% endif %}{% endblock %}{% block javascripts %} <script> $(function () { $('form input').on('keydown', function (e) { if (e.keyCode == 13) { e.preventDefault(); return false; } }); const regions = JSON.parse(`{% autoescape false %}{{ regionjson }}{% endautoescape %}`); $('#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); }); $('#alertSwitch').on('change', function () { const isActive = $('#alertSwitch').is(':checked'); var $form = $('form'); var data = $form.serialize(); $.ajax({ url: '/missions/alert', type: isActive ? 'POST' : 'DELETE', data: data }); }); var currentValue = JSON.parse('{{ keywordArray | json_encode | raw }}'); const keywordInput = $(".keyword-search"); const keywordsList = $(".keywords-list"); /*$('form').on('submit', function (e) { if (keywordInput.val() !== "") { e.preventDefault(); addKeyword(); return false; } });*/ keywordsList.trigger('resizeContainer'); // adding keyword function addKeyword() { const newKeyword = $("<span class='keyword'><span class='keyword-remove'></span><span class='keyword-text'>" + keywordInput.val() + "</span></span>"); currentValue.push(keywordInput.val()); keywordsList.append(newKeyword).trigger('resizeContainer'); keywordInput.val(""); populateValue(); $('form').submit(); } function populateValue() { $('#searchHidden').val(currentValue.join(', ')); } // add via enter key /*keywordInput.on('keyup', function (e) { if ((e.keyCode == 13) && (keywordInput.val() !== "")) { addKeyword(); } });*/ // add via button /*$('.keyword-input-button').on('click', function () { if ((keywordInput.val() !== "")) { addKeyword(); } });*/ // removing keyword $(document).on("click", ".keyword-remove", function () { $(this).parent().addClass('keyword-removed'); let removedValue = $(this).parent().find('.keyword-text').html(); currentValue = currentValue.filter((f) => f !== removedValue); function removeFromMarkup() { $(".keyword-removed").remove(); } setTimeout(removeFromMarkup, 500); keywordsList.css({'height': 'auto'}).height(); populateValue(); $('form').submit(); }); // animating container height keywordsList.on('resizeContainer', function () { var heightnow = $(this).height(); var heightfull = $(this).css({'max-height': 'auto', 'height': 'auto'}).height(); $(this).css({'height': heightnow}).animate({ 'height': heightfull }, 200); }); $(window).on('resize', function () { keywordsList.css({'height': 'auto'}).height(); }); // Auto Height for keywords that are pre-added $(window).on('load', function () { var keywordCount = $('.keywords-list').children("span").length; // Enables scrollbar if more than 3 items if (keywordCount > 0) { keywordsList.css({'height': 'auto'}).height(); } }); $('.bookmark-icon').on('click', function () { let id = $(this).attr('data-id'); $.ajax({ url: "/offer/favorite/" + id, method: "POST", dataType: "json" }) }); {% if isComing %} const countDownDate = new Date('{{ date_coming_soon }}').getTime(); setInterval(function () { let now = new Date().getTime(); let distance = countDownDate - now; let days = Math.floor(distance / (1000 * 60 * 60 * 24)); let hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); let minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60)); let seconds = Math.floor((distance % (1000 * 60)) / 1000); document.getElementById("timer").innerHTML = days + "d " + hours + "h " + minutes + "mn " + seconds + "s "; }, 1000); {% endif %} }); </script> {# ---- SCRICP FORMATAGE RECHERCHE --- #} {% if app.user %} {{ include('macro/_mission-search.html.twig') }} {% endif %} {# ---- SCRICP SHOW OTHER INPUT --- #} <script> function showMoreInputSearch() { let otherInputSearchDivs = document.querySelectorAll('.other-input-search'); // Parcourez chaque div avec la classe .other-input-search otherInputSearchDivs.forEach(function (div) { // Vérifiez si la classe .hide-on-mobile existe dans la div if (div.classList.contains('hide-on-mobile')) { // Si elle existe, retirez-la div.classList.remove('hide-on-mobile'); } else { // Sinon, ajoutez-la div.classList.add('hide-on-mobile'); } }) } </script>{% endblock %}