{% set searchIndustry = search_options.searchIndustries is defined ? search_options.searchIndustries : '' %}
{% set searchTechnology = search_options.searchTechnologies is defined ? search_options.searchTechnologies : '' %}
{% set searchLocation = search_options.searchLocations is defined ? search_options.searchLocations : '' %}
{% set searchCompany = search_options.searchCompany is defined ? search_options.searchCompany : '' %}
{% set searchOfferName = search_options.searchOfferName is defined ? search_options.searchOfferName : '' %}
{% set searchAnother = search_options.searchAnother is defined ? search_options.searchAnother : '' %}
{% set technology = search_options.technologies is defined ? search_options.technologies : '' %}
{% set ownIndustry = search_options.ownIndustries is defined ? search_options.ownIndustries : '' %}
{% set ownTechnology = search_options.ownTechnologies is defined ? search_options.ownTechnologies : '' %}
{% set ownLocation = search_options.ownLocations is defined ? search_options.ownLocations : '' %}
{% set jobLevel = search_options.jobLevel is defined ? search_options.jobLevel : '' %}
{% set search = search_options.search is defined ? search_options.search : '' %}
{% set jobLevelsArray = lvl_jobs is defined ? lvl_jobs : '' %}
{% set isUserLogin = app.user is defined and app.user is not empty ? true : false %}
{% include 'front/main_page/includes/js/slug_js.twig' %}
{% include 'front/main_page/includes/js/cookie_js.twig' %}
<script>
let searchCompany = {{ searchCompany|json_encode|raw }};
let searchIndustry = {{ searchIndustry|json_encode|raw }};
let searchTechnology = {{ searchTechnology|json_encode|raw }};
let searchLocation = {{ searchLocation|json_encode|raw }};
let searchOfferName = {{ searchOfferName|json_encode|raw }};
let searchAnother = {{ searchAnother|json_encode|raw }};
let ownIndustry = {{ ownIndustry|json_encode|raw }};
let ownTechnology = {{ ownTechnology|json_encode|raw }};
let technology = {{ technology|json_encode|raw }};
let ownLocation = {{ ownLocation|json_encode|raw }};
let search = {{ search|json_encode|raw }};
let language = `{{ app.request.locale }}`;
let filtersString = '';
let resut_params = [];
let searchValueNoSelect = "";
let autocomplete;
let selectParams = {};
let numberSelectedFilters = '';
let historyKeyUp = '';
$('.industry-select').select2({});
$('.search-select').select2({});
$('.location-select').select2({});
$('.technology-select').select2({
maximumSelectionLength: `{{ max_search_params_own }}`,
dropdownCssClass: 'dropdown_technology_list_items',
placeholder: `{{ 'USER_ZONE.HOME_PAGE.PLACEHOLDER_DROPDOWN_FILTER_INPUT_1'|trans }}`,
language: {
noResults: function () {
return '';
},
maximumSelected: function () {
return `{{ 'USER_ZONE.HOME_PAGE.PLACEHOLDER_SELECT2_MAX_SELECT_FILTER'|trans }}`;
}
},
tags: true
});
// START FUNCTION SELECT WHEN CLOSING SELECT 2
$(document).on('keyup','.select2-search__field',function(e){
if(e.key == "Enter") {
$('.search-select').select2("close");
}
historyKeyUp = e.key;
});
$('.search-select').on("select2:opening", function(e){
if(historyKeyUp == 'Enter') {
$(this).select2("close");
ParamsToSearch();
historyKeyUp = '';
}
});
$('.search-select').on("select2:select", function(e){
historyKeyUp = '';
});
$('.search-select').on("select2:selecting", function(e){
historyKeyUp = '';
});
// // Remove cookies
// eraseCookie('accept_cookies');
// Check accept cookies is set
checkCookie('accept_cookies');
$(document).on('click', '.select2-selection__choice__remove', function(){
let itemNameToRemove = slug($(this)[0].nextSibling.innerText);
$('.technology-row .col-md-4').find("label[for='"+ itemNameToRemove +"']").click();
$('.another-row .col-md-4').find("[data-nameslug='"+ itemNameToRemove +"']").click();
$('.industry-row .col-md-4').find("[data-nameslug='"+ itemNameToRemove +"']").click();
$('.location-row .col-md-4').find("[data-nameslug='"+ itemNameToRemove +"']").click();
$('.location-select').find("option[value='" + itemNameToRemove + "']").remove();
$('.technology-select').find("option[value='" + itemNameToRemove + "']").remove();
checkSelectedItemInOwnSelect2();
});
function checkSelectedItemInOwnSelect2(){
let industrySelectlength = $('.industry-select').val().length;
let locationSelectlength = $('.location-select').val().length;
let technologySelectlength = $('.technology-select').val().length;
let selectedIndustry = $('.industry-row .col-md-4 .active').toArray().length;
let selectedLocation = $('.location-row .col-md-4 .active').toArray().length;
let selectedTechnology = $('.technology-row .col-md-4 .active').toArray().length;
let industrylength = industrySelectlength + selectedIndustry;
let locationlength = locationSelectlength + selectedLocation;
let technologylength = technologySelectlength + selectedTechnology;
if(industrylength > 0){
$('.count-select-industry').html('('+ industrylength +')');
}else{
$('.count-select-industry').html('');
}
if(locationlength > 0){
$('.count-select-location').html('('+ locationlength +')');
}else{
$('.count-select-location').html('');
}
if(technologylength > 0){
$('.count-select-technology').html('('+ technologylength +')');
}else{
$('.count-select-technology').html('');
}
}
function selectTextSearch(){
let values = [];
let R = 0;
if($('.search-select').val() != ""){
$('.search-select').val().forEach((val,key)=>{
values[R] = $('.search-select').val()[key];
R++;
});
}else{
values[R] = searchValueNoSelect;
R++;
}
if(searchValueNoSelect != ''){
if(values != ""){
values[R] = searchValueNoSelect;
R++;
checkAndAddOptionToSelect('.search-select', '', values);
$('.search-select').val(values);
$('.search-select').trigger('change');
}
searchValueNoSelect = "";
}
}
function checkOwnLocation(){
let classSelect = '.location-select';
if(selectParams.ownLocation != '' && typeof selectParams.ownLocation !== "undefined"){
if(Array.isArray(ownLocation) && ownLocation != ''){
selectParams.ownLocation.forEach((val, key) =>{
ownLocation.forEach((val_1, key_1) =>{
if(selectParams.ownLocation[key].id == ownLocation[key_1]){
let newOption = new Option(selectParams.ownLocation[key].text, selectParams.ownLocation[key].id, true, true);
$(classSelect).append(newOption).trigger('change');
}
});
});
}
}
}
function checkValueFromUrlAndCheckElement(){
let row1 = $('.technology-row .row-technology-element-1 label').toArray();
let row2 = $('.technology-row .row-technology-element-2 label').toArray();
let row3 = $('.technology-row .row-technology-element-3 label').toArray();
let data = $.extend(technology, searchTechnology);
let selectLength = technology.length;
let isActiveItem = false;
let count = 0;
let R = 0;
let I = 0;
let notHaveActive = [];
let values_own = [];
if(data != '' && $.isEmptyObject(data) == false){
data.forEach((val_1,key_1)=>{
isActiveItem = false;
row1.forEach((val,key)=>{
if($(row1[key]).attr('for') == data[key_1]){
if($(row1[key]).hasClass('active') == false){
$(row1[key]).addClass('active');
count++;
}
isActiveItem = true;
}
});
row2.forEach((val,key)=>{
if($(row2[key]).attr('for') == data[key_1]){
if($(row2[key]).hasClass('active') == false){
$(row2[key]).addClass('active');
count++;
}
isActiveItem = true;
}
});
row3.forEach((val,key)=>{
if($(row3[key]).attr('for') == data[key_1]){
if($(row3[key]).hasClass('active') == false){
$(row3[key]).addClass('active');
count++;
}
isActiveItem = true;
}
});
if(selectParams.technology != '' && typeof selectParams.technology !== "undefined"){
selectParams.technology.forEach((val_2,key_2)=>{
if(selectParams.technology[key_2].id == data[key_1] && typeof selectParams.technology[key_2].isShow == 'undefined'){
values_own[R] = data[key_1];
R++;
}
});
}
if(isActiveItem == false){
if($.inArray(data[key_1],notHaveActive) == -1){
notHaveActive[I] = data[key_1];
I++;
}
}
});
count = selectLength + ownTechnology.length;
$('.count-select-technology').html('('+ count +')');
}
checkCountSelectFilters();
}
function technology_select_element(response){
checkValueFromUrlAndCheckElement();
}
function checkCountSelectFilters(){
let industrySelectlength = $('.industry-select').val().length;
let locationSelectlength = $('.location-select').val().length;
let technologySelectlength = $('.technology-select').val().length;
let industrylength = $('.industry-row .col-md-4 label.active').toArray().length;
let locationlength = $('.location-row .col-md-4 label.active').toArray().length;
let technologylength = $('.technology-row .col-md-4 label.active').toArray().length;
let anotherlength = $('.another-row .col-md-4 label.active').toArray().length
let salarylength = 0;
if($('.input-price-to').val() != 50000 || $('.input-price-from').val() != 0 || $('.contract-select').val() != 'wszystkie'){
salarylength = 1;
}
let allSelectedFilters = industrySelectlength + locationSelectlength + technologySelectlength + industrylength + locationlength + technologylength + anotherlength + salarylength;
if(allSelectedFilters != 0){
$('.alert-all-selected-filters').show();
if($('.button-filter-span').hasClass('pe-4') == false){
$('.button-filter-span').addClass('pe-4');
}
}else{
$('.alert-all-selected-filters').hide();
$('.button-filter-span').removeClass('pe-4');
}
if(allSelectedFilters < 10){
$('.alert-all-selected-filters').removeClass('p-1');
$('.all-selected-filters-mobile').css('left', '90%');
$('.all-selected-filters-mobile').css('padding', '-0.75rem!important');
}else{
$('.all-selected-filters-mobile').removeAttr('style');
$('.all-selected-filters-mobile').css('left','90%');
$('.alert-all-selected-filters').addClass('p-1');
}
$('.all-selected-filters-mobile').html(allSelectedFilters);
numberSelectedFilters = allSelectedFilters;
}
function clearListTechnology(){
let row_params_1 = $('.technology-row .row-technology-element-1 label').toArray();
let row_params_2 = $('.technology-row .row-technology-element-2 label').toArray();
let row_params_3 = $('.technology-row .row-technology-element-3 label').toArray();
row_params_1.forEach((val,key)=>{
$(row_params_1[key]).remove();
});
row_params_2.forEach((val,key)=>{
$(row_params_2[key]).remove();
});
row_params_3.forEach((val,key)=>{
$(row_params_3[key]).remove();
});
checkCountSelectFilters();
}
function addItemsToListTechnology(params, flag){
const ELEMENT_TECHNOLOGY = (id, name, slug) =>{
return `
<label for="`+slug+`"class="dropdown-item filter-element technology-check-selected">
`+name+`
</label>
<input
type="checkbox"
class="custom-control-input invisible-checkbox filter-checkbox"
id="`+slug+`"
name="filters[technology][]"
value="`+slug+`"
data-category-element="technology"
>`
};
let row_1 = $('.row-technology-element-1');
let row_2 = $('.row-technology-element-2');
let row_3 = $('.row-technology-element-3');
let pointMax = 0;
let countindustry = $('.industry-row .col-md-4 .active').length;
if(flag == 0){
params.forEach((val,key) => {
if(jQuery.type(params[key].point) == 'object'){
for(const property in params[key].point){
if(pointMax < params[key].point[property]){
pointMax = params[key].point[property];
}
}params[key].pointMax = pointMax;
}else{params[key].pointMax = 0;}
pointMax = 0;
});
params.sort((a,b)=> b.pointMax - a.pointMax);
}else{
params.sort((a,b)=> b.point - a.point);
}
if(countindustry > 1){
params.sort((a,b)=> b.pointMax - a.pointMax);
}
params.forEach((val,key)=>{
let row_1_length = $('.technology-row .row-technology-element-1 label').length;
let row_2_length = $('.technology-row .row-technology-element-2 label').length;
let row_3_length = $('.technology-row .row-technology-element-3 label').length;
let row_1_label = $('.technology-row .row-technology-element-1 label').toArray();
let Count_min = Math.min(row_1_length, row_2_length, row_3_length);
if(row_1_length == Count_min){
if(row_1_length <= 4){
$(row_1).append(ELEMENT_TECHNOLOGY(params[key].id,params[key].text,params[key].id));
params[key].isShow = true;
row_1_length++;
return false;
}
}
if(row_2_length == Count_min){
if(row_2_length <= 4){
$(row_2).append(ELEMENT_TECHNOLOGY(params[key].id,params[key].text,params[key].id));
params[key].isShow = true;
row_2_length++;
return false;
}
}
if(row_3_length == Count_min){
if(row_3_length <= 4){
$(ELEMENT_TECHNOLOGY(params[key].id,params[key].text,params[key].id)).insertBefore($('.technology-select'));
params[key].isShow = true;
row_3_length++;
return false;
}
}
});
$('.technology-check-selected').on('click',function(){
let isActive = $(this).hasClass('active');
if(isActive == true){
$(this).removeClass('active')
}else{
$(this).addClass('active')
}
let countSelected = $('.technology-row .col-md-4 .active').length;
let length = countSelected == 0 ? '' : '('+ countSelected +')';
$('.count-select-technology').html(length);
checkCountSelectFilters();
});
checkCountSelectFilters();
}
function getAllSelectedIndustry(flag){
let selectedIndustry = $('.industry-row .col-md-4 .active').toArray();
let selected_ids = [];
let response = selectParams.technology;
let params = [];
let params_slug = [];
let k = 0;
let newOwnParams = [];
let x = 0;
let isTechnologyArray = [];
selectedIndustry.forEach((val, key)=>{
selected_ids[key] = $(selectedIndustry[key]).data('item-industry-id');
});
if(selectedIndustry != '' ){
$.ajax({
url: '/get-items/by-industry',
method:'POST',
data: {
industryId: selected_ids,
locale: language
},
success: function(data){
if(typeof data != 'undefined' && data != [] && jQuery.isEmptyObject(data) == false){
data.forEach((val,key)=>{
if(params_slug.includes(data[key].id) == false){
if(flag == 1){
if(jQuery.type(data[key].point) == 'object'){
data[key].point = data[key].point[selected_ids[key_2]];
}
}
params[k] = data[key];
params_slug[k] = data[key].id;
k++;
}
if(typeof technology != 'undefined' && technology != '' ){
technology.forEach((val_3,key_3)=>{
if(technology[key_3] == data[key].id){
isTechnologyArray[x] = technology[key_3];
x++;
}
});
}
});
if(typeof technology != 'undefined' && technology != '' ){
technology.forEach((val_4,key_4)=>{
if($.inArray(technology[key_4],isTechnologyArray) == -1){
if($.inArray(technology[key_4],newOwnParams) == -1 && newOwnParams.length < 3){
newOwnParams.push(technology[key_4])
}
}
});
}
if(typeof ownTechnology != 'undefined' && ownTechnology != '' ){
ownTechnology.forEach((val_5,key_5)=>{
if($.inArray(ownTechnology[key_5],newOwnParams) == -1 && newOwnParams.length < 3){
newOwnParams.push(ownTechnology[key_5]);
}
});
}
clearListTechnology();
addItemsToListTechnology(params, flag);
technology_select_element(params);
let countSelected = $('.technology-row .col-md-4 .active').length + newOwnParams.length;
let length = countSelected == 0 ? '' : '('+ countSelected +')';
$('.count-select-technology').html(length);
}
}
});
}else{
if(typeof response != "undefined"){
response.forEach((val,key)=>{
if(typeof technology != 'undefined' && technology != '' ){
technology.forEach((val_3,key_3)=>{
if(technology[key_3] == response[key].id){
isTechnologyArray[x] = technology[key_3];
x++;
}
});
}
});
}
if(typeof technology != 'undefined' && technology != '' ){
technology.forEach((val_4,key_4)=>{
if($.inArray(technology[key_4],isTechnologyArray) == -1){
if($.inArray(technology[key_4],newOwnParams) == -1 && newOwnParams.length < 3){
newOwnParams.push(technology[key_4])
}
}
});
}
if(typeof ownTechnology != 'undefined' && ownTechnology != '' ){
ownTechnology.forEach((val_5,key_5)=>{
if($.inArray(ownTechnology[key_5],newOwnParams) == -1 && newOwnParams.length < 3){
newOwnParams.push(ownTechnology[key_5]);
}
});
}
}
if(typeof response != "undefined"){
clearListTechnology();
addItemsToListTechnology(response, flag);
technology_select_element(response);
}
checkValueFromUrlAndCheckElement();
checkCountSelectFilters();
let countSelected = $('.technology-row .col-md-4 .active').length + newOwnParams.length;
if(countSelected > 0){
let length = countSelected == 0 ? '' : '('+ countSelected +')';
$('.count-select-technology').html(length);
}
}
function checkIsActive(element,flag){
if(flag == true){
$(element).removeClass('active');
}else{
$(element).addClass('active');
}
}
function getCountAnother(jobLevel){
const ELEMENT_JOB_LEVEL = (id, name, slug) =>{
return `
<label for="`+id+`-`+slug+`" class="dropdown-item filter-element label-level-checkbox active">`+name+`</label>
<input type="checkbox"
class="custom-control-input invisible-checkbox filter-checkbox job-level-checkbox"
id="`+id+`-`+slug+`"
name="filters[technology][job_level][] "value="`+slug+`"
data-category-element="another">`
};
let jobIds = [];
jobLevel.forEach((val, key) => {
jobIds[key] = $('.another-select option[value="'+val+'"]').data('id');
});
if(typeof jobLevel != "undefined" && jobLevel != ''){
$.ajax({
url: '/jobLevel/get',
data: {jobIds},
dataType: "json",
method:'POST',
success: (data)=>{
data.forEach((val,key)=>{
let count_row_1 = $('.another-row .another-row-1 label').length;
let count_row_2 = $('.another-row .another-row-2 label').length;
let count_row_3 = $('.another-row .another-row-3 label').length;
let Count_min = Math.min(count_row_1, count_row_2, count_row_3);
if(count_row_1 == Count_min ){
$('.another-row-1').append(ELEMENT_JOB_LEVEL(data[key].id,data[key].name,data[key].slug));
count_row_1++;
return false;
}
if(count_row_2 == Count_min ){
$('.another-row-2').append(ELEMENT_JOB_LEVEL(data[key].id,data[key].name,data[key].slug));
count_row_2++;
return false;
}
if(count_row_3 == Count_min ){
$('.another-row-3').append(ELEMENT_JOB_LEVEL(data[key].id,data[key].name,data[key].slug));
count_row_3++;
return false;
}
});
$('.label-level-checkbox').click(function(){
let isClass = $(this).hasClass('active');
checkIsActive($(this), isClass);
});
}});
}
}
function checkWidthWindow(){
let w = $( window ).width();
let element_approve = '.button-filter-drop-down';
let element_clear_filters = '.clear-filters-button';
let trans_mobile = `{{ 'USER_ZONE.HOME_PAGE.BUTTON_FILTER_6_MOBILE'|trans }}`;
let trans = ` {{ 'USER_ZONE.HOME_PAGE.BUTTON_FILTER_6'|trans }}`;
let box_alert_cookies = '.box-aler-cookies-div';
if(w <= 768){
if($(element_approve).hasClass('filter-button') === true){
$(element_approve).removeClass('filter-button');
}
if($(element_clear_filters).hasClass('clear-all-filters-search') === true){
$(element_clear_filters).html(trans_mobile);
$(element_clear_filters).removeClass('clear-all-filters-search');
}
if($(box_alert_cookies).hasClass('text-center') === true){
$(box_alert_cookies).removeClass('text-center');
$(box_alert_cookies).addClass('text-left');
}
if($(element_clear_filters).hasClass('clear-all-filters-mobile') === false){
$(element_clear_filters).addClass('clear-all-filters-mobile');
}
}else{
if($(element_approve).hasClass('filter-button') === false){
$(element_approve).addClass('filter-button');
}
if($(box_alert_cookies).hasClass('text-left') === true){
$(box_alert_cookies).removeClass('text-left');
$(box_alert_cookies).addClass('text-center');
}
if($(element_clear_filters).hasClass('clear-all-filters-search') === false){
$(element_clear_filters).html(trans);
$(element_clear_filters).addClass('clear-all-filters-search');
}
if($(element_clear_filters).hasClass('clear-all-filters-mobile') === true){
$(element_clear_filters).removeClass('clear-all-filters-mobile');
}
}
}
function openSelectAftreClickLabel(element) {
$(element).trigger('open');
}
function clearAllSelect() {
let url = `{{ path('front-page', {url: get_page_url(app.request.locale, constant('App\\Config\\Pages::OFFERS_INDUSTRY'))}) }}`;
location.href = url;
}
//TODO -> SEARCH IN GLOBAL SEARCH
function ParamsToSearch() {
selectTextSearch();
let url = `{{ path('front-page', {url: get_page_url(app.request.locale, constant('App\\Config\\Pages::OFFERS_INDUSTRY'))}) }}`;
let param = '';
response = checkUrlAndCreateToFilters();
filtersString += response.filtersString;
param = response.param;
if (param != '' || filtersString != '') {
if (resut_params != '') {
$.ajax({
url: url,
data: {resut_params},
method: 'POST',
success: (data) => {
window.location.href = url + filtersString + param;
}
});
} else {
window.location.href = url + filtersString + param;
}
}
return false;
}
// TODO -> SEARCH ALL FILTERS
function checkUrlAndCreateToFilters() {
let arraySelect2 = [];
let param = '';
let salaryTo = $('.input-price-to').val() != '' ? $('.input-price-to').val() : 50000;
let salaryFrom = $('.input-price-from').val() != '' ? $('.input-price-from').val() : 0;
let currency = $('#currency-select').val();
let type = $('#contract-select').val();
let selectedActiveFor = [];
let selectedActive = [];
let values = [];
let value = '';
let filtersString = [];
let selectedLevels = [];
let selectedArray2 = [];
let countIsInArray = 0;
let searchPhrase;
let phrase = '';
selectedArray2[0] = '.industry-select';
selectedArray2[1] = '.another-select';
selectedArray2[2] = '.location-select';
selectedArray2[3] = '.technology-select';
selectedArray2[4] = '.job-level-checkbox';
let className = [];
className[0] = 'industry';
className[1] = 'another';
className[2] = 'location';
className[3] = 'technology';
className[4] = 'job-level';
selectedArray2.forEach((val, key) => {
if ($(selectedArray2[key]).val() != '') {
if ($(selectedArray2[key]).val() == []) {
$(selectedArray2[key]).val().forEach((val, key_1) => {
arraySelect2[arraySelect2.length] = {
value: $(selectedArray2[key]).val()[key_1],
category: className[key],
type: 'own'
};
});
} else {
arraySelect2[arraySelect2.length] = {
value: $(selectedArray2[key]).val(),
category: className[key],
type: 'own'
};
}
}
});
for (i = 0; i <= selectedArray2.length; i++) {
$('.' + className[i] + '-row .col-md-4 .active').each(function (data, element) {
selectedActiveFor[selectedActiveFor.length] = {
name: $(element).attr('for'),
category: className[i],
type: 'select-for'
};
});
}
selectedActiveFor.forEach((val, key) => {
$('.' + selectedActiveFor[key].category + '-row .col-md-4 input#' + selectedActiveFor[key].name).each(function (data, element) {
let type = $(element).hasClass('job-level-checkbox') ? 'job-level' : 'select';
if(type == 'select' || false == selectedLevels.includes($(element).val())) {
selectedActive[selectedActive.length] = {
name: $(element).val(),
category: selectedActiveFor[key].category,
type: type
};
selectedLevels.push($(element).val());
}
});
});
selectedActive.forEach((val, key) => {
if(filtersString.includes('filters['+ selectedActive[key].category +'][]='+ slug(selectedActive[key].name)) == false){
if (filtersString != '') {
filtersString += '&';
} else {
filtersString += '?';
}
}
if (selectedActive[key].type == 'job-level') {
filtersString += 'filters[technology][job_level][]=' + selectedActive[key].name;
} else {
if(filtersString.includes('filters['+ selectedActive[key].category +'][]='+ slug(selectedActive[key].name)) == false){
filtersString += 'filters[' + selectedActive[key].category + '][]=' + slug(selectedActive[key].name);
}
}
selectedActive[key].type = 'select';
});
arraySelect2.forEach((val, key) => {
value = arraySelect2[key].value === [] ? arraySelect2[key].value[0] : arraySelect2[key].value;
if (filtersString != '' || param != '') {
if (arraySelect2[key].category == 'another' ) {
if (typeof value != 'undefined' && value != '') {
param += '&';
param += 'filters[technology][job_level][]=' + value;
}
} else{
if (Array.isArray(value)) {
value.forEach((val_1, key_1) => {
if(typeof value[key_1] != 'undefined' && value[key_1] != ''){
param += '&';
param += 'filters[' + arraySelect2[key].category + '_' + arraySelect2[key].type + '][]=' + slug(value[key_1]);
if(arraySelect2[key].category + '_' + arraySelect2[key].type == 'technology_own'){
param += '&';
}
}
});
} else {
if(typeof value != 'undefined' && value != '' && arraySelect2[key].category != 'job-level'){
param += '&';
param += 'filters[' + arraySelect2[key].category + '_' + arraySelect2[key].type + '][]=' +slug(value);
}
}
}
} else {
if (arraySelect2[key].category == 'another' ) {
if (typeof value != 'undefined' && value != '') {
param += '?';
param += 'filters[technology][job_level][]=' + value;
}
} else {
if (Array.isArray(value)) {
value.forEach((val_1, key_1) => {
if(typeof value[key_1] != 'undefined' && value[key_1] != ''){
key_1 == 0 ? param += '?' : param += '&';
param += 'filters[' + arraySelect2[key].category + '_' + arraySelect2[key].type + '][]=' + slug(value[key_1]);
if(arraySelect2[key].category + '_' + arraySelect2[key].type == 'technology_own'){
param += '&';
searchPhrase = ownTechnology != '' ? ownTechnology.find(x=>x.search === slug(value[key_1])) : '';
if(searchPhrase != ''&& typeof searchPhrase != 'undefined'){
phrase = searchPhrase.phrase;
}else{
phrase = value[key_1];
}
param += 'filters[phrase]['+slug(value[key_1])+']='+phrase;
}
}
});
} else {
if(typeof value != 'undefined' && value != '' && arraySelect2[key].category != 'job-level'){
param += '?';
param += 'filters[' + arraySelect2[key].category + '_' + arraySelect2[key].type + '][]=' + slug(value);
if(arraySelect2[key].category + '_' + arraySelect2[key].type == 'technology_own'){
param += '&';
searchPhrase = ownTechnology != '' ? ownTechnology.find(x=>x.search == slug(value)) : '';
if(searchPhrase != ''&& typeof searchPhrase != 'undefined'){
phrase = searchPhrase.phrase;
}else{
phrase = value;
}
param += 'filters[phrase]['+slug(value)+']='+phrase;
}
}
}
}
}
});
$('.search-select').val().forEach((val, key) => {
selectParams.search.forEach((val_1, key_1) => {
let id = $('.search-select').val()[key];
if(Array.isArray(selectParams.search[key_1].category)){
selectParams.search[key_1].category.forEach((val_2,key_2)=>{
if (selectParams.search[key_1].id == id) {
if (param != ''||filtersString != '') {
param += '&filters[search_' + selectParams.search[key_1].category[key_2] + '][]=' + slug(selectParams.search[key_1].id);
} else {
param += '?filters[search_' + selectParams.search[key_1].category[key_2] + '][]=' + slug(selectParams.search[key_1].id);
}
if(param.includes('&filters[search][]='+ selectParams.search[key_1].id) == false){
param += '&filters[search][]='+ slug(selectParams.search[key_1].id);
param += '&';
searchPhrase = search != '' ? search.find(x=>x.search == slug(selectParams.search[key_1].id)) : '';
if(searchPhrase != ''&& typeof searchPhrase != 'undefined'){
phrase = searchPhrase.phrase;
}else{
phrase = selectParams.search[key_1].id;
}
param += 'filters[phrase]['+slug(selectParams.search[key_1].id)+']='+phrase;
}
countIsInArray++;
}
});
}else{
if(selectParams.search[key_1].id == id) {
if(selectParams.search[key_1].category != 'location') {
if (param != ''||filtersString != '') {
param += '&filters[search_' + selectParams.search[key_1].category + '][]=' + slug(selectParams.search[key_1].id);
} else {
param += '?filters[search_' + selectParams.search[key_1].category + '][]=' + slug(selectParams.search[key_1].id);
}
}else{
if (param != ''||filtersString != '') {
param += '&filters[' + selectParams.search[key_1].category + '][]=' + slug(selectParams.search[key_1].id);
} else {
param += '?filters[' + selectParams.search[key_1].category + '][]=' + slug(selectParams.search[key_1].id);
}
}
if(param.includes('&filters[search][]='+ selectParams.search[key_1].id) == false){
param += param != ''||filtersString != '' ? '&': '?';
param += 'filters[search][]='+ slug(selectParams.search[key_1].id);
searchPhrase = search != '' ? search.find(x=>x.search == slug(selectParams.search[key_1].id)) : '';
if(searchPhrase != '' && typeof searchPhrase != 'undefined'){
phrase = searchPhrase.phrase;
}else{
phrase = selectParams.search[key_1].id;
}
if(selectParams.search[key_1].category != 'location') {
param += '&';
param += 'filters[phrase]['+slug(selectParams.search[key_1].id)+']='+phrase;
}
}
countIsInArray++;
}
}
});
});
$('.search-select').val().forEach((val, key) => {
if(param.includes(slug($('.search-select').val()[key])) == false && param.includes($('.search-select').val()[key]) == false){
param += param != '' || filtersString != '' ? '&' : '?';
param += 'filters[search][]=' + slug($('.search-select').val()[key]);
param += '&';
searchPhrase = search != '' ? selectParams.search.find(x=>x.id == slug($('.search-select').val()[key])) : '';
if(searchPhrase != ''&& typeof searchPhrase != 'undefined'){
phrase = searchPhrase.phrase;
}else{
phrase = $('.search-select').val()[key];
}
param += 'filters[phrase]['+slug($('.search-select').val()[key])+']='+phrase;
}
});
if(currency != 'pln' || type != 'wszystkie' || salaryTo != 50000 || salaryFrom != 0){
if (currency != '' && type != '') {
if (param != '' || filtersString != '') {
param += '&';
param += 'filters[salary][from]=' + salaryFrom + '&filters[salary][to]=' + salaryTo + '&filters[salary][currency]=' + currency + '&filters[salary][type]=' + type + '&filters[page][]=1';
} else {
param += '?';
param += 'filters[salary][from]=' + salaryFrom + '&filters[salary][to]=' + salaryTo + '&filters[salary][currency]=' + currency + '&filters[salary][type]=' + type + '&filters[page][]=1';
}
}
}
param = prepareLocationToleranceUrl(param, filtersString);
return {
param: param,
filtersString: filtersString
}
}
function prepareLocationToleranceUrl(param, filtersString)
{
let locationTolerance = $('#locationTolerance').val();
if (locationTolerance === '') {
return param;
}
if (param != '' || filtersString != '') {
return param + '&filters[locationTolerance][]='+locationTolerance;
}
return param + '?filters[locationTolerance][]='+locationTolerance;
}
function checkAndAddOptionToSelect(classSelect, className, data) {
if ($.isArray(data) === true) {
data.forEach((val, key) => {
if ($(classSelect).find("option[value='" + data[key] + "']").length > 0) {
} else {
var newOption = new Option(data[key], data[key], true, true);
$(classSelect).append(newOption).trigger('change');
}
});
} else {
if ($(classSelect).find("option[value='" + data + "']").length > 0) {
} else {
var newOption = new Option(data, data, true, true);
$(classSelect).append(newOption).trigger('change');
}
}
}
function checkAndAddOptionToSelectWhenIsSearch(classSelect, className, data) {
let paramsToSelect = [];
let x = 0;
data.forEach((val, key) => {
if ($(classSelect).find("option[value='" + data[key]['search'] + "']").length > 0) {
paramsToSelect[x] = data[key]['search'];
x++;
} else {
paramsToSelect[x] = data[key]['search'];
var newOption = new Option(data[key]['phrase'], data[key]['search'], true, true);
$(classSelect).append(newOption).trigger('change');
x++;
}
});
$(classSelect).val().forEach((val,key) =>{
paramsToSelect[x] = $(classSelect).val()[key];
x++;
});
$(classSelect).val(paramsToSelect);
$(classSelect).trigger('change');
}
$(window).resize(function() {
checkWidthWindow();
});
// Remove count active technology when click industry label
$('.industry-label-remove-technology').on('click', function(){
$('.count-select-technology').html('');
});
// ACCEPT MODAL COOKIES
$('.button-accept-modal-cookies').on('click', function(){
setCookie('accept_cookies', 'true', '1');
$('.box-alert-accept-cookies').hide();
});
// ACTION function "getAllSelectedIndustry"
$('.items-view-by-industry').on('click',function(){
getAllSelectedIndustry(1);
});
// CHANGE COUNT SELECTED FILTERS
$('.button-filter-drop-down').on('click', function(e){
let select = $(this).data('category');
if(select !== 'salary'){
let data = $('.'+select+'-select').val();
let count = data.length;
let count_active = $('.'+select+'-row .col-md-4 .active').length + count ;
$('.count-select-'+select).html('('+count_active+')');
}
});
$('.label-for-select').click(function () {
let labelId = $(this).attr('for');
let element = $('#' + labelId);
openSelectAftreClickLabel(element);
});
$.ajax({
url: '/search/select/option',
method: 'POST',
data: {languages: language},
success: (data) => {
let paramsToSelected = [];
let paramsToSelected_own = [];
let k = 0;
let i = 0;
let category_own = '';
selectParams = data;
getAllSelectedIndustry(0);
checkSelectedItemInOwnSelect2();
$('.search-select').select2({
placeholder: `{{ 'USER_ZONE.HOME_PAGE.PLACEHOLDER_SEARCH'|trans }}`,
data: selectParams.search,
dropdownCssClass: 'dropdown_search_list_items',
maximumSelectionLength: `{{ max_search_params }}`,
language: {
noResults: function () {
return `{{ 'USER_ZONE.HOME_PAGE.PLACEHOLDER_SELECT2_RESULTS'|trans }}`;
},
maximumSelected: function () {
return `{{ 'USER_ZONE.HOME_PAGE.PLACEHOLDER_SELECT2_MAX_SELECT'|trans }}`;
}
},
tags: true,
allowClear: true
});
$('.industry-select').select2({
maximumSelectionLength: `{{ max_search_params_own }}`,
dropdownCssClass: 'dropdown_industry_list_items',
placeholder: `{{ 'USER_ZONE.HOME_PAGE.PLACEHOLDER_DROPDOWN_FILTER_INPUT_1'|trans }}`,
language: {
noResults: function () {
return '';
},
maximumSelected: function () {
return `{{ 'USER_ZONE.HOME_PAGE.PLACEHOLDER_SELECT2_MAX_SELECT_FILTER'|trans }}`;
}
},
tags: true
});
$('.technology-select.select2-results').css('display','none');
if(typeof selectParams.search != "undefined" && selectParams.search != ''){
selectParams.search.forEach((val, key) => {
if (searchIndustry != '') {
searchIndustry.forEach((val_1, key_1) => {
if (selectParams.search[key].id === searchIndustry[key_1]) {
paramsToSelected[k] = searchIndustry[key_1];
k++;
}
});
}
if (searchTechnology != '') {
searchTechnology.forEach((val_2, key_2) => {
if (selectParams.search[key].id === searchTechnology[key_2]) {
paramsToSelected[k] = searchTechnology[key_2];
k++;
}
});
}
if (searchLocation != '') {
searchLocation.forEach((val_3, key_3) => {
if (selectParams.search[key].id === searchLocation[key_3]) {
paramsToSelected[k] = searchLocation[key_3];
k++;
}
});
}
if (searchCompany != '') {
searchCompany.forEach((val_4, key_4) => {
if (selectParams.search[key].id === searchCompany[key_4]) {
paramsToSelected[k] = searchCompany[key_4];
k++;
}
});
}
if(searchOfferName != ''){
searchOfferName.forEach((val_5, key_5) => {
if (selectParams.search[key].id === searchOfferName[key_5]) {
paramsToSelected[k] = searchOfferName[key_5];
k++;
}
});
}
if(searchAnother != ''){
searchAnother.forEach((val_6, key_6)=>{
if (selectParams.search[key].id === searchAnother[key_6]) {
paramsToSelected[k] = searchAnother[key_6];
k++;
}
});
}
});
}
if (ownIndustry != '') {
category_own = 'ownIndustry';
ownIndustry.forEach((val_4, key_4) => {
paramsToSelected_own[i] = {
category: category_own,
data: ownIndustry[key_4]
};
i++;
});
}
if (ownLocation != '') {
category_own = 'ownLocation';
ownLocation.forEach((val_4, key_4) => {
paramsToSelected_own[i] = {
category: category_own,
data: ownLocation[key_4]
};
i++;
});
}
if (ownTechnology != '') {
category_own = 'ownTechnology';
ownTechnology.forEach((val_5, key_5) => {
paramsToSelected_own[i] = {
category: category_own,
data: ownTechnology[key_5]
};
i++;
});
}
if (paramsToSelected != '') {
$('.search-select').val(paramsToSelected);
$('.search-select').trigger('change');
}
if (paramsToSelected_own != '') {
paramsToSelected_own.forEach((val_7, key_7) => {
switch (paramsToSelected_own[key_7].category) {
case 'ownIndustry':
checkAndAddOptionToSelect('.industry-select', 'industry', ownIndustry);
$('.industry-select').val(ownIndustry);
$('.industry-select').trigger('change');
break;
case 'ownTechnology':
checkAndAddOptionToSelectWhenIsSearch('.technology-select', 'technology', ownTechnology);
break;
case 'ownLocation':
checkAndAddOptionToSelect('.location-select', 'location', ownLocation);
$('.location-select').val(ownLocation);
$('.location-select').trigger('change');
break;
}
});
}
if (search != '' && search != null) {
checkAndAddOptionToSelectWhenIsSearch('.search-select', 'search', search);
}
checkOwnLocation();
}
});
function getTextByLocation (localizationNumber){
let withS = [2, 3 ,4];
let withoutS = [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
if(withS.includes(localizationNumber)){
return `{{ 'USER_ZONE.HOME_PAGE.SEE_MORE_LOCATIONS2'|trans}}`;
}
if(withoutS.includes(localizationNumber)){
return `{{ 'USER_ZONE.HOME_PAGE.SEE_MORE_LOCATIONS'|trans }}`;
}
}
$(document).ready(function () {
let selectParams = {};
let filtersString = '';
let place_geo = [];
let ownLocations = [];
let resut_params = [];
let jobLevel = {{ jobLevel|json_encode|raw }};
$('.input-price-to').val(`{{ search_options.salaries.currency is defined ? search_options.salaries.to : '50000' }}`);
$('.input-price-from').val(`{{ search_options.salaries.currency is defined ? search_options.salaries.from : '0' }}`);
if(typeof jobLevel != "undefined" && jobLevel != ''){
getCountAnother(jobLevel);
}
checkWidthWindow();
$(document).on('click', '.offer_name_show_list_location', function (){
let localizationNumber = $(this).data('localization');
let boxId = $(this).data('id');
let click = $(this).hasClass('click_show_location') == false ? $('.offer_name_show_list_location[data-id="'+boxId+'"]').hasClass('click_show_location') : $(this).hasClass('click_show_location');
let boxToAddText = $('.offer_show_list_location[data-id="'+boxId+'"]');
let boxToAddClass = $('.offer_name_show_list_location[data-id="'+boxId+'"]');
if(click){
$(this).removeClass('click_show_location');
$(boxToAddText).removeClass('click_show_location');
$(this).removeClass('click_show_location');
$('.box_many_location_'+boxId).hide();
$(boxToAddText).html(localizationNumber+' '+getTextByLocation(localizationNumber));
}else{
$(this).addClass('click_show_location');
$(boxToAddText).addClass('click_show_location');
$(boxToAddClass).addClass('click_show_location');
$('.box_many_location_'+boxId).show();
$(boxToAddText).html(`{{ 'USER_ZONE.HOME_PAGE.COLLAPSE'|trans }}`);
}
});
$(document).on('click', '.offer_show_list_location', function (){
let localizationNumber = $(this).data('localization');
let boxId = $(this).data('id');
let click = $(this).hasClass('click_show_location') == false ? $('.offer_show_list_location[data-id="'+boxId+'"]').hasClass('click_show_location') : $(this).hasClass('click_show_location');
let boxToAddText = $('.offer_show_list_location[data-id="'+boxId+'"]');
let boxToAddClass = $('.offer_show_list_location[data-id="'+boxId+'"]');
if(click){
$(this).removeClass('click_show_location');
$(boxToAddText).removeClass('click_show_location');
$(this).removeClass('click_show_location');
$('.box_many_location_'+boxId).hide();
$(boxToAddText).html(`{{ 'USER_ZONE.HOME_PAGE.SEE_MORE_LOCATIONS'|trans }}`+' '+localizationNumber);
$(boxToAddText).removeAttr('style');
}else{
$(this).addClass('click_show_location');
$(boxToAddText).addClass('click_show_location');
$(boxToAddClass).addClass('click_show_location');
$('.box_many_location_'+boxId).show();
$(boxToAddText).html(`{{ 'USER_ZONE.HOME_PAGE.COLLAPSE'|trans }}`);
$(boxToAddText).css("font-weight", "bold");
}
});
function createByFilter() {
filtersString = '';
$('.click-filter').each(function () {
if (filtersString == '') {
filtersString += '?';
filtersString += $(this).data('filter-key') + '=' + slug($(this).data('filter'));
} else {
filtersString += '&';
filtersString += $(this).data('filter-key') + '=' + slug($(this).data('filter'));
}
if (filtersString.includes('&filters[page][]') == false) {
filtersString += '&filters[page][]=1'
}
});
}
function buildUrl() {
let newUrl = window.location.protocol + "//" + window.location.host + window.location.pathname + filtersString;
return newUrl;
}
function createFiltersString() {
filtersString = '';
$('.filter-element.active+.filter-checkbox').each(function () {
if (filtersString == '') {
filtersString += '?';
filtersString += this.name + '=' + slug(this.value);
} else {
filtersString += '&';
filtersString += this.name + '=' + slug(this.value);
}
if (filtersString.includes('&filters[page][]') == false) {
filtersString += '&filters[page][]=1'
}
});
}
// CLEAR ALL FILTERS SEARCH
$('.clear-all-filters-search').click(function(){
clearAllSelect();
});
// CLEAR ALL FILTERS MOBILE
$('.clear-all-filters-mobile').click(function(){
clearAllSelect();
});
// CREATE SELECT@ LOCATION
$('.location-select').select2({
maximumSelectionLength: `{{ max_search_params_own }}`,
placeholder: `{{ 'USER_ZONE.HOME_PAGE.PLACEHOLDER_DROPDOWN_FILTER_INPUT_1'|trans }}`,
language: {
noResults: function () {
return `{{ 'USER_ZONE.HOME_PAGE.PLACEHOLDER_SELECT2_RESULTS'|trans }}`;
},
maximumSelected: function () {
return `{{ 'USER_ZONE.HOME_PAGE.PLACEHOLDER_SELECT2_MAX_SELECT_FILTER'|trans }}`;
},
searching: function () {
return `{{ 'USER_ZONE.HOME_PAGE.PLACEHOLDER_SELECT2_SEARCH'|trans }}`;
}
},
ajax: {
url: '/search/location/option/' + language,
dataType: 'json',
processResults: function (data) {
place_geo = data;
return {
results: data
}
}
}
});
// CHANGE LOCATION SELECT
$(document).on('change', '.location-select', function () {
ownLocations = $('.location-select').val();
ownLocations.forEach((val, key) => {
place_geo.forEach((val_1, key_1) => {
if (ownLocations[key] == place_geo[key_1].id) {
resut_params[key] = {
name: ownLocations[key],
id_place: place_geo[key_1].id_place
};
}
});
});
});
// SEARCH BY FILTERS
$('.filter-button').on('click', function () {
let url = `{{ path('front-page', {url: get_page_url(app.request.locale, constant('App\\Config\\Pages::OFFERS_INDUSTRY'))}) }}`;
if(numberSelectedFilters == 0 || numberSelectedFilters == ''){
location.href = url;
}
let param = '';
let response = [];
switch ($(this).data('category')) {
case 'industry':
response = checkUrlAndCreateToFilters();
filtersString += response.filtersString;
param = response.param;
break;
case 'location':
response = checkUrlAndCreateToFilters();
filtersString += response.filtersString;
param = response.param;
break;
case 'technology':
response = checkUrlAndCreateToFilters();
filtersString += response.filtersString;
param = response.param;
break;
case 'another':
response = checkUrlAndCreateToFilters();
filtersString += response.filtersString;
param = response.param;
break;
case 'salary':
response = checkUrlAndCreateToFilters();
filtersString += response.filtersString;
param = response.param;
break;
}
if (param != '' || filtersString != '') {
if (resut_params != '') {
$.ajax({
url: url,
data: {resut_params},
method: 'POST',
success: (data) => {
window.location.href = url + filtersString + param;
}
});
} else {
window.location.href = url + filtersString + param;
}
}
return false;
});
// CREATE FILTERS AND SEARCH
$(document).on('click', '.input-search-filters', function () {
$('.click-filter').removeClass('click-filter');
$(this).addClass('click-filter');
createByFilter();
return false;
});
// BUTTON SEARCH
$(document).on('click', '.search-button-list', function (e) {
$('.click-filter').removeClass('click-filter');
$(this).addClass('click-filter');
createByFilter();
let url = `{{ path('front-page', {url: get_page_url(app.request.locale, constant('App\\Config\\Pages::OFFERS_INDUSTRY'))}) }}`;
window.location.href = prepareLocationToleranceUrl(url + filtersString);
return false;
});
// CREATE RANGE SLIDER
if (jQuery(".js-range-slider").length > 0) {
jQuery(".js-range-slider").ionRangeSlider({
type: "double",
min: 0,
max: 50000,
from: {{ search_options.salaries.currency is defined ? search_options.salaries.from : '0' }},
to: {{ search_options.salaries.currency is defined ? search_options.salaries.to : '50000' }},
onChange: function (data) {
jQuery("#price-to").val(data.to);
jQuery("#price-from").val(data.from);
jQuery(".js-range-slider").closest('.btn-group').find('.filter__button > span').html('(1)');
},
onUpdate: function (data) {
checkCountSelectFilters();
}
});
}
// CHANGE RANGE SLIDER
$('.js-range-slider').on('change', function(){
setTimeout(function(){
checkCountSelectFilters();
},1);
});
// CHANGE CURRENCY SELECT
$('.currency-select').on('change',function(){
checkCountSelectFilters();
});
// CHANGE CONTRACT SELECT
$('.contract-select').on('change', function(){
checkCountSelectFilters();
});
});
// Remove duplicat search when value = name
$('.search-select').on('change', function(){
searchValueNoSelect = '';
let value = '';
let arrayValue = [];
let R = 0;
if($.isArray($(this).val())){
$(this).val().forEach((val,key)=>{
arrayValue[R] = $(this).val()[key];
if(value.includes($(this).val()[key]) == true){
$($(this).find("option[value='" + $(this).val()[key] + "']")[1]).remove();
}else{
value += $(this).val()[key];
}
});
}
});
// SHOW ALL SELECTE FILTERS
$('label.dropdown-item').on('click', function(){
checkCountSelectFilters();
});
// CHANGE INDUSTRY - SELECT
$(document).on('change','.industry-select',function(){
checkCountSelectFilters();
checkSelectedItemInOwnSelect2();
});
// CHANGE INDUSTRY - LOCATION
$(document).on('change', '.location-select', function(){
checkCountSelectFilters();
checkSelectedItemInOwnSelect2();
});
// CHANGE INDUSTRY - TECHNOLOGY
$(document).on('change', '.technology-select', function(){
checkCountSelectFilters();
checkSelectedItemInOwnSelect2();
});
</script>