Commit 0a165892 authored by Sergey's avatar Sergey

Continue edits of all pages

parent 6ccb528e
......@@ -275,7 +275,7 @@
</div>
<div class="text-404">
<p>Кажется, что-то пошло не так...</p>
<p>Пожалуйста, воспользуйтесь поиском по сайту или вернитесь на <a href="index.html">главную страницу</a></p>
<p>Пожалуйста, воспользуйтесь поиском по сайту или вернитесь на <a href="index.html" style="padding-bottom: 7px;">главную страницу</a></p>
</div>
</div>
</div>
......
......@@ -401,7 +401,7 @@
</div>
</div>
<div class="main-search">
<div class="row search-list-row-companies">
<div class="row row-companies">
<div class="col-6">
<a href="#" class="image-companies" style="background-image: url(./img/img_banner4.png);"></a>
</div>
......
......@@ -387,7 +387,8 @@
</div>
</div>
<div class="wrapper-map">
<iframe src="https://yandex.ru/map-widget/v1/?um=constructor%3A805e8a92d74677c7d0faadbbe38c16ccd54442663acf6a9591c2c8ce6d3b9c9e&amp;source=constructor" width="100%" height="100%" frameborder="0"></iframe>
<!-- <iframe src="https://yandex.ru/map-widget/v1/?um=constructor%3A805e8a92d74677c7d0faadbbe38c16ccd54442663acf6a9591c2c8ce6d3b9c9e&amp;source=constructor" width="100%" height="100%" frameborder="0"></iframe> -->
<div class="map-api" id="current-company-map"></div>
</div>
<div class="vacancies-company block-mt-purple block-mb-purple">
<h2>Вакансии компании</h2>
......
......@@ -3,6 +3,14 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="og:title" content="Заголовок для репоста"/>
<meta property="og:description" content="Подпись для репоста" />
<meta property="og:type" content="website"/>
<meta property="og:url" content="https://vk-book.ru/folder-test/share/"/>
<meta property="og:image" content="./img/logo.svg"/>
<meta property="og:image:type" content="image/jpg">
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="628" />
<title>Вакансия</title>
</head>
<body>
......@@ -463,30 +471,32 @@
</div>
</div>
<div class="wrapper-map block-mb-blue">
<iframe src="https://yandex.ru/map-widget/v1/?um=constructor%3A805e8a92d74677c7d0faadbbe38c16ccd54442663acf6a9591c2c8ce6d3b9c9e&amp;source=constructor" width="100%" height="100%" frameborder="0"></iframe>
<!-- <iframe src="https://yandex.ru/map-widget/v1/?um=constructor%3A805e8a92d74677c7d0faadbbe38c16ccd54442663acf6a9591c2c8ce6d3b9c9e&amp;source=constructor" width="100%" height="100%" frameborder="0"></iframe> -->
<div class="map-api" id="current-vacancy-map"></div>
</div>
<div class="wrapper-form-share">
<form action="" id="form-share" name="form-share">
<form action="" id="form-share" name="form-share" data-ajax="true">
<div class="block-choice-filter">
<p class="block-choice-filter__name">Поделиться:</p>
<div class="block-radio">
<label for="share-vk">
<input type="radio" id="share-vk" name="way-share" hidden="">
<input type="radio" id="share-vk" name="way-share" hidden="" required>
<div class="radio"></div>
<img src="./img/share_vk.svg" alt="">
</label>
</div>
<div class="block-radio">
<label for="share-email">
<input type="radio" id="share-email" name="way-share" hidden="" checked>
<input type="radio" id="share-email" name="way-share" hidden="" checked required>
<div class="radio"></div>
<p>E-mail</p>
</label>
</div>
</div>
<div class="block-mt-yellow">
<input type="text" name="email" class="data-email-share" placeholder="E-MAIL">
<input type="submit" class="main-button" name="submit-share" value="Поделиться">
<input type="text" name="email" class="data-email-share" pattern="^([a-z0-9_-]+\.)*[a-z0-9_-]+@[a-z0-9_-]+(\.[a-z0-9_-]+)*\.[a-z]{2,6}$" data-required="true" placeholder="E-MAIL">
<input type="submit" class="main-button" name="submit-share-email" value="Поделиться">
<button type="button" class="main-button" id="submit-share-vk" style="display: none;">Поделиться</button>
</div>
</form>
</div>
......
......@@ -312,8 +312,8 @@
Показать на карте
</a>
</div>
<div class="favorites-list">
<div class="row favorites-list-row">
<div class="main-search">
<div class="row row-card">
<div class="col-4">
<a href="#" class="image-vacancies" style="background-image: url(./img/img_banner3.png);"></a>
</div>
......
<svg width="59" height="67" viewBox="0 0 59 67" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g clip-path="url(#clip0)" filter="url(#filter0_d)">
<path d="M52.664 25.3421C52.664 11.9421 41.364 1.24212 27.764 2.04212C16.264 2.84212 6.86398 12.1421 6.06398 23.6421C5.16398 36.0421 13.864 46.5421 25.564 48.4421C27.164 48.7421 28.464 49.9421 28.764 51.6421L29.564 56.7421L30.364 51.6421C30.564 50.0421 31.764 48.7421 33.364 48.4421C44.264 46.4421 52.664 36.9421 52.664 25.3421Z" fill="#92C83E"/>
<rect x="19" y="15" width="20" height="22" fill="url(#pattern0)"/>
</g>
<defs>
<filter id="filter0_d" x="0" y="0" width="58.7" height="66.6" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"/>
<feOffset dy="4"/>
<feGaussianBlur stdDeviation="3"/>
<feColorMatrix type="matrix" values="0 0 0 0 0.572549 0 0 0 0 0.784314 0 0 0 0 0.243137 0 0 0 0.25 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow" result="shape"/>
</filter>
<pattern id="pattern0" patternContentUnits="objectBoundingBox" width="1" height="1">
<use xlink:href="#image0" transform="scale(0.05 0.0454545)"/>
</pattern>
<clipPath id="clip0">
<rect width="46.7" height="54.6" fill="white" transform="translate(6 2)"/>
</clipPath>
<image id="image0" width="20" height="22" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAWCAIAAABPIytRAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6REM2QzNGMjUyNzE5MTFFQThBMkI4RTk2NzBFNUI4OEEiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6REM2QzNGMjQyNzE5MTFFQThBMkI4RTk2NzBFNUI4OEEiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6M0U2NEY5MEEyNjUyMTFFQUEyQTFDOTcxMTRFMDE2ODYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6M0U2NEY5MEIyNjUyMTFFQUEyQTFDOTcxMTRFMDE2ODYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7KbH7QAAAAsUlEQVR42mKcctIp22wvA14w9ZQzVnHG////MxABsOpnYqAAIDSfeDIHaDyQRGMTpZkMwEK8UmOpSAuZFOQgoCjAGP4TB4Axev75KmSRn3++kBBgolyqyFw2Zm4S/LzhRjGcDUlXJGgO0OiV5jMgM6rQdJJmM3KAk+xsLPmHyKhadikJU5BYm9mYuZBdTrKzMV3OgitU0NSJcquQn6vs5PNpVhiQo/n33+/k6QRqBAgwAOLatlY1JEcLAAAAAElFTkSuQmCC"/>
</defs>
</svg>
......@@ -163,7 +163,8 @@ $('.usage-steps-slider-wrapper').owlCarousel({
$('.similar-vacancies-slider-wrapper').owlCarousel({
loop:true, //Зацикливаем слайдер
items:4,
margin:20, //Отступ от элемента справа в 50px
margin: 20,
// margin:20, //Отступ от элемента справа в 50px
nav:true, //Отключение навигации
dots: false,
autoplay: false, //Автозапуск слайдера
......@@ -403,6 +404,8 @@ document.addEventListener('DOMContentLoaded', () => {
let companiesMap = document.querySelector('#companies-map');
let favoritesVacanciesMap = document.querySelector('#favorites-vacancies-map');
let resumesMap = document.querySelector('#resumes-map');
let currentVacancyMap = document.querySelector('#current-vacancy-map');
let currentCompanyMap = document.querySelector('#current-company-map');
if(vacanciesMap)
{
......@@ -418,14 +421,13 @@ document.addEventListener('DOMContentLoaded', () => {
center: [55.751574, 37.573856],
zoom: 12,
controls: []
})
});
let objectManagerData = {
"type": "FeatureCollection",
"features": []
};
let MyBalloonContentLayout = ymaps.templateLayoutFactory.createClass(
'<div class="balloon-header-vacancy"><div class="balloon-header-vacancy__left"><p>$[properties.nameWork]</p><p>$[properties.salary]</p></div><div class="balloon-header-vacancy__right"><a class="button-text" href="current-vacancy.html"><img class="img-svg" src="./img/arrow_balloon.svg"></a></div></div>' +
'<div class="balloon-content-vacancy"><div class="balloon-content-vacancy-block"><div class="balloon-content-vacancy-block__image"><img src="$[properties.logoCompany]"></div><p class="balloon-content-vacancy-block__name">$[properties.nameCompany]</p></div></div>'
......@@ -467,13 +469,21 @@ document.addEventListener('DOMContentLoaded', () => {
let objectManager = new ymaps.ObjectManager({
clusterize: true,
gridSize: 128,
clusterIconLayout: "default#pieChart",
clusterIconPieChartStrokeWidth: 0
// clusterIconLayout: "default#pieChart",
// clusterIconLayout: "custom#icon",
clusterIconPieChartStrokeWidth: 0,
clusterDisableClickZoom: false
});
objectManager.clusters.options.set({
clusterIconLayout: ymaps.templateLayoutFactory.createClass('<div class="cluster-icon">{{ properties.geoObjects.length }}</div>')
});
map.geoObjects.add(objectManager);
objectManager.add(objectManagerData);
map.setBounds(map.geoObjects.getBounds());
map.setBounds(map.geoObjects.getBounds(), {
checkZoomRange: true
});
objectManager.objects.events.add('click', function (e) {
......@@ -568,6 +578,10 @@ document.addEventListener('DOMContentLoaded', () => {
clusterIconPieChartStrokeWidth: 0
});
objectManager.clusters.options.set({
clusterIconLayout: ymaps.templateLayoutFactory.createClass('<div class="cluster-icon">{{ properties.geoObjects.length }}</div>')
});
map.geoObjects.add(objectManager);
objectManager.add(objectManagerData);
map.setBounds(map.geoObjects.getBounds());
......@@ -668,6 +682,10 @@ document.addEventListener('DOMContentLoaded', () => {
clusterIconPieChartStrokeWidth: 0
});
objectManager.clusters.options.set({
clusterIconLayout: ymaps.templateLayoutFactory.createClass('<div class="cluster-icon">{{ properties.geoObjects.length }}</div>')
});
map.geoObjects.add(objectManager);
objectManager.add(objectManagerData);
map.setBounds(map.geoObjects.getBounds());
......@@ -768,6 +786,10 @@ document.addEventListener('DOMContentLoaded', () => {
clusterIconPieChartStrokeWidth: 0
});
objectManager.clusters.options.set({
clusterIconLayout: ymaps.templateLayoutFactory.createClass('<div class="cluster-icon">{{ properties.geoObjects.length }}</div>')
});
map.geoObjects.add(objectManager);
objectManager.add(objectManagerData);
map.setBounds(map.geoObjects.getBounds());
......@@ -800,6 +822,213 @@ document.addEventListener('DOMContentLoaded', () => {
})
});
}
if(currentVacancyMap)
{
fetch('./php/current-vacancy.php')
.then(response => response.json())
.then(data => {
let apiKey = 'e158c5a2-b717-4552-9b2d-e21a7b7d540b';
getScript('https://api-maps.yandex.ru/2.1/?lang=ru_RU&apikey=' + apiKey, function(){
ymaps.ready(function ()
{
let map = new ymaps.Map('current-vacancy-map', {
center: [55.751574, 37.573856],
zoom: 12,
controls: []
})
let objectManagerData = {
"type": "FeatureCollection",
"features": []
};
let MyBalloonContentLayout = ymaps.templateLayoutFactory.createClass(
'<div class="balloon-header-vacancy"><div class="balloon-header-vacancy__left"><p>$[properties.nameWork]</p><p>$[properties.salary]</p></div><div class="balloon-header-vacancy__right"><a class="button-text" href="current-vacancy.html"><img class="img-svg" src="./img/arrow_balloon.svg"></a></div></div>' +
'<div class="balloon-content-vacancy"><div class="balloon-content-vacancy-block"><div class="balloon-content-vacancy-block__image"><img src="$[properties.logoCompany]"></div><p class="balloon-content-vacancy-block__name">$[properties.nameCompany]</p></div></div>'
);
data.forEach((item, index) => {
let featureObj = {
"type": "Feature",
"id": index,
"geometry": {
"type": "Point",
"coordinates": item.coords
},
"properties": {
"nameWork": item.nameWork,
"salary": item.salary,
"nameCompany": item.nameCompany,
"logoCompany":item.logoCompany
},
"options": {
"iconLayout": "default#image",
"iconColor": "#dc3535",
"iconImageHref": "./img/icon_marker_address.svg",
"iconImageSize": [47, 55],
"balloonOffset": [-70, -45],
"balloonContentLayout": MyBalloonContentLayout,
"hideIconOnBalloonOpen": false,
"balloonCloseButton": false,
"zIndex": 100,
"zIndexHover": 500,
"zIndexActive": 1000
}
};
objectManagerData["features"].push(featureObj);
});
let objectManager = new ymaps.ObjectManager({
clusterize: true,
gridSize: 128,
clusterIconLayout: "default#pieChart",
clusterIconPieChartStrokeWidth: 0
});
objectManager.clusters.options.set({
clusterIconLayout: ymaps.templateLayoutFactory.createClass('<div class="cluster-icon">{{ properties.geoObjects.length }}</div>')
});
map.geoObjects.add(objectManager);
objectManager.add(objectManagerData);
map.setBounds(map.geoObjects.getBounds());
objectManager.objects.events.add('click', function (e) {
var objectId = e.get('objectId');
if (objectManager.objects.balloon.isOpen(objectId)) {
objectManager.objects.balloon.close();
}
map.events.add('click', function (e)
{
if(e.get('target') === map)
{
objectManager.objects.balloon.close();
}
});
});
// objectManager.objects.events.add('balloonopen', function(e) {
// objectManager.objects.setObjectOptions(e.get('target')._objectIdWithOpenBalloon, {'iconImageHref': './img/icon_pin_active.svg', 'zIndex': 1000});
// });
// objectManager.objects.events.add('balloonclose', function(e) {
// objectManager.objects.setObjectOptions(e.get('target')._objectIdWithOpenBalloon, {'iconImageHref': './img/icon_pin.svg', 'zIndex': 250});
// });
})
})
});
}
if(currentCompanyMap)
{
fetch('./php/current-company.php')
.then(response => response.json())
.then(data => {
let apiKey = 'e158c5a2-b717-4552-9b2d-e21a7b7d540b';
getScript('https://api-maps.yandex.ru/2.1/?lang=ru_RU&apikey=' + apiKey, function(){
ymaps.ready(function ()
{
let map = new ymaps.Map('current-company-map', {
center: [55.751574, 37.573856],
zoom: 12,
controls: []
})
let objectManagerData = {
"type": "FeatureCollection",
"features": []
};
let MyBalloonContentLayout = ymaps.templateLayoutFactory.createClass(
'<div class="balloon-header-companies"><div class="balloon-header-companies__left"><div class="balloon-content-companies-block"><div class="balloon-content-companies-block__image"><img src="$[properties.logoCompany]"></div><p class="balloon-content-companies-block__name">$[properties.nameCompany]</p></div></div><div class="balloon-header-companies__right"><a class="button-text" href="current-company.html"><img class="img-svg" src="./img/arrow_balloon.svg"></a></div></div>'
);
data.forEach((item, index) => {
let featureObj = {
"type": "Feature",
"id": index,
"geometry": {
"type": "Point",
"coordinates": item.coords
},
"properties": {
"nameWork": item.nameWork,
"salary": item.salary,
"nameCompany": item.nameCompany,
"logoCompany":item.logoCompany
},
"options": {
"iconLayout": "default#image",
"iconColor": "#dc3535",
"iconImageHref": "./img/icon_marker_address.svg",
"iconImageSize": [47, 55],
"balloonOffset": [-70, -45],
"balloonContentLayout": MyBalloonContentLayout,
"hideIconOnBalloonOpen": false,
"balloonCloseButton": false,
"zIndex": 100,
"zIndexHover": 500,
"zIndexActive": 1000
}
};
objectManagerData["features"].push(featureObj);
});
let objectManager = new ymaps.ObjectManager({
clusterize: true,
gridSize: 128,
clusterIconLayout: "default#pieChart",
clusterIconPieChartStrokeWidth: 0
});
objectManager.clusters.options.set({
clusterIconLayout: ymaps.templateLayoutFactory.createClass('<div class="cluster-icon">{{ properties.geoObjects.length }}</div>')
});
map.geoObjects.add(objectManager);
objectManager.add(objectManagerData);
map.setBounds(map.geoObjects.getBounds());
objectManager.objects.events.add('click', function (e) {
var objectId = e.get('objectId');
if (objectManager.objects.balloon.isOpen(objectId)) {
objectManager.objects.balloon.close();
}
map.events.add('click', function (e)
{
if(e.get('target') === map)
{
objectManager.objects.balloon.close();
}
});
});
// objectManager.objects.events.add('balloonopen', function(e) {
// objectManager.objects.setObjectOptions(e.get('target')._objectIdWithOpenBalloon, {'iconImageHref': './img/icon_pin_active.svg', 'zIndex': 1000});
// });
// objectManager.objects.events.add('balloonclose', function(e) {
// objectManager.objects.setObjectOptions(e.get('target')._objectIdWithOpenBalloon, {'iconImageHref': './img/icon_pin.svg', 'zIndex': 250});
// });
})
})
});
}
});
// Форма Поделиться
......@@ -807,6 +1036,8 @@ document.addEventListener('DOMContentLoaded', () => {
let radioShareVk = document.querySelector('#share-vk');
let radioShareEmail = document.querySelector('#share-email');
let dataEmailShare = document.querySelector('.data-email-share');
let submitShareEmail = document.querySelector('input[name="submit-share-email"]');
let submitShareVk = document.querySelector('#submit-share-vk');
if(radioShareVk && radioShareEmail)
{
......@@ -814,6 +1045,24 @@ if(radioShareVk && radioShareEmail)
if(radioShareVk.checked)
{
dataEmailShare.style.display = 'none';
submitShareEmail.style.display = 'none';
submitShareVk.style.display = 'inline-block';
submitShareVk.addEventListener('click', (e) =>
{
e.preventDefault();
let url_share = location.href;
let url_soc = "https://vk.com/share.php?url="+url_share;
// размеры окна
let width = 800, height = 500;
// центруем окно
var left = (window.screen.width - width) / 2;
var top = (window.screen.height - height) / 2;
// открываем окно
let social_window = window.open(url_soc, "share_window", "height=" + height + ",width=" + width + ",top=" + top + ",left=" + left);
// устанавливаем на окно фокус
social_window.focus();
});
}
});
......@@ -821,6 +1070,8 @@ if(radioShareVk && radioShareEmail)
if(radioShareEmail.checked)
{
dataEmailShare.style.display = 'inline-block';
submitShareEmail.style.display = 'inline-block';
submitShareVk.style.display = 'none';
}
});
}
......@@ -1276,75 +1527,83 @@ if(buttonAppBanner.length)
const forms = document.querySelectorAll('form[data-ajax="true"]');
forms.forEach(function(form)
if(forms.length)
{
validationForms(forms);
}
function validationForms(forms)
{
// Подпишемся на событие отправки
form.addEventListener('submit', function(e)
forms.forEach(function(form)
{
e.preventDefault();
let valid = true;
// Подпишемся на событие отправки
form.addEventListener('submit', function(e)
{
e.preventDefault();
let valid = true;
// Проверим все текстовые инпуты
// Проверим все текстовые инпуты
const fieldsText = form.querySelectorAll('input[type="text"][data-required="true"]');
const fieldsText = form.querySelectorAll('input[type="text"][data-required="true"]');
fieldsText.forEach(function(input)
{
if(input.style.display === 'none') return;
if(!checkFieldText(input)) valid = false;
});
fieldsText.forEach(function(input)
{
if(input.style.display === 'none') return;
if(!checkFieldText(input)) valid = false;
});
// Проверим все textarea
// Проверим все textarea
const fieldsTextarea = form.querySelectorAll('textarea[data-required="true"]');
const fieldsTextarea = form.querySelectorAll('textarea[data-required="true"]');
fieldsTextarea.forEach(function(textarea)
{
if(textarea.style.display === 'none') return;
if(!checkFieldTextarea(textarea)) valid = false;
});
fieldsTextarea.forEach(function(textarea)
{
if(textarea.style.display === 'none') return;
if(!checkFieldTextarea(textarea)) valid = false;
});
// Проверим все чекбоксы
// Проверим все чекбоксы
const fieldsCheckbox = form.querySelectorAll('input[type="checkbox"]');
const fieldsCheckbox = form.querySelectorAll('input[type="checkbox"]');
fieldsCheckbox.forEach(function(input)
{
if(input.style.display === 'none') return;
if(!checkFieldCheckbox(input)) valid = false;
});
fieldsCheckbox.forEach(function(input)
{
if(input.style.display === 'none') return;
if(!checkFieldCheckbox(input)) valid = false;
});
// Проверим все радиокнопки
// Проверим все радиокнопки
const fieldsRadio = form.querySelectorAll('input[type="radio"]');
// const fieldsRadio = form.querySelectorAll('input[type="radio"]');
fieldsRadio.forEach(function(input)
{
if(input.style.display === 'none') return;
if(!checkFieldCheckbox(input)) valid = false;
});
// fieldsRadio.forEach(function(input)
// {
// if(input.style.display === 'none') return;
// if(!checkFieldCheckbox(input)) valid = false;
// });
// Проверка пароля
// Проверка пароля
const fieldsPassword = form.querySelectorAll('input[type="password"]');
const fieldsPassword = form.querySelectorAll('input[type="password"]');
fieldsPassword.forEach(function(input)
{
if(input.style.display === 'none') return;
if(!checkFieldPassword(input)) valid = false;
});
fieldsPassword.forEach(function(input)
{
if(input.style.display === 'none') return;
if(!checkFieldPassword(input)) valid = false;
});
// Если были ошибки, не отправляем форму
// Если были ошибки, не отправляем форму
if(valid)
{
sendForm(form);
}
if(valid)
{
sendForm(form);
}
});
});
});
}
function checkFieldText(input)
{
......@@ -1391,7 +1650,7 @@ function checkFieldPassword(password)
var value = password.value;
var result;
if(value.trim() === '')
if(value.trim() === '' || value.trim().split('').length < 6)
{
result = false;
}
......@@ -1741,6 +2000,46 @@ if(filterBlockContent.length)
}
// Добавление маски для поля с телефоном
function addMask(event)
{
if( !(event.key == 'ArrowLeft' || event.key == 'ArrowRight' || event.key == 'Backspace' || event.key == 'Tab')) { event.preventDefault() }
var mask = '+7 (111) 111-11-11'; // Задаем маску
if (/[0-9\+\ \-\(\)]/.test(event.key)) {
// Здесь начинаем сравнивать this.value и mask
// к примеру опять же
var currentString = this.value;
var currentLength = currentString.length;
if (/[0-9]/.test(event.key)) {
if (mask[currentLength] == '1') {
this.value = currentString + event.key;
} else {
for (var i=currentLength; i<mask.length; i++) {
if (mask[i] == '1') {
this.value = currentString + event.key;
break;
}
currentString += mask[i];
}
}
}
}
}
let fieldPhones = document.querySelectorAll('input[data-phone="true"]');
if(fieldPhones.length)
{
fieldPhones.forEach(input =>
{
input.addEventListener('keydown', addMask);
});
}
......
......@@ -749,7 +749,7 @@
Профиль
</a>
<a href="#" class="button-text">
<img class="img-svg" src="./img/icon_my_table.svg" alt="">
<img class="img-svg" src="./img/icon_my_resumes.svg" alt="">
Мои резюме
</a>
<a href="#" class="button-text">
......
[
{
"coords": ["56.209005", "44.10075"],
"nameWork": "Разнорабочий",
"salary": "от 27 000 руб./мес",
"nameCompany": "Сеть магазинов «Пятёрочка»",
"logoCompany": "./img/img_balloon_brand.svg"
}
]
\ No newline at end of file
[
{
"coords": ["56.209005", "44.10075"],
"nameWork": "Разнорабочий",
"salary": "от 27 000 руб./мес",
"nameCompany": "Сеть магазинов «Пятёрочка»",
"logoCompany": "./img/img_balloon_brand.svg"
}
]
\ No newline at end of file
......@@ -308,35 +308,35 @@
</button>
<div class="current-profile-data">
<div class="container-compressed">
<form action="" name="form-edit-profile" id="form-edit-profile" enctype="multipart/form-data">
<form action="" name="form-edit-profile" data-ajax="true" id="form-edit-profile" enctype="multipart/form-data">
<div class="block-mb-yellow">
<label for="name">Имя <span>*</span></label>
<input type="text" placeholder="ИМЯ" name="name" id="name" value="Иван">
<input type="text" placeholder="ИМЯ" data-required="true" pattern="^[А-Яа-яЁё\s]+$" name="name" id="name" value="Иван">
</div>
<div class="block-mb-yellow">
<label for="sername">Фамилия <span>*</span></label>
<input type="text" placeholder="ФАМИЛИЯ" name="sername" id="sername" value="Иванов">
<input type="text" placeholder="ФАМИЛИЯ" data-required="true" pattern="^[А-Яа-яЁё\s]+$" name="sername" id="sername" value="Иванов">
</div>
<div class="block-mb-yellow">
<label for="patronymic">Отчество <span>*</span></label>
<input type="text" placeholder="ОТЧЕСТВО" name="patronymic" id="patronymic" value="Иванович">
<input type="text" placeholder="ОТЧЕСТВО" data-required="true" pattern="^[А-Яа-яЁё\s]+$" name="patronymic" id="patronymic" value="Иванович">
</div>
<div class="block-mb-yellow">
<label for="birthday">Дата рождения</label>
<input type="text" name="birthday" data-picker="datepicker" placeholder="ВЫБЕРИТЕ ДАТУ" value="26.08.1980">
<input type="text" name="birthday" data-picker="datepicker" onkeyup="this.value = this.value.replace(/[A-Za-zА-Яа-яЁё]/,'');" placeholder="ВЫБЕРИТЕ ДАТУ" value="26.08.1980">
</div>
<div class="block-gender block-mb-green">
<p>Пол:</p>
<div class="block-radio">
<label for="male">
<input type="radio" id="male" name="gender" hidden="" checked>
<input type="radio" id="male" name="gender" hidden="" checked required>
<div class="radio"></div>
Мужской
</label>
</div>
<div class="block-radio">
<label for="female">
<input type="radio" id="female" name="gender" hidden="">
<input type="radio" id="female" name="gender" hidden="" required>
<div class="radio"></div>
Женский
</label>
......@@ -344,11 +344,11 @@
</div>
<div class="block-mb-yellow">
<label for="phone">Телефон <span>*</span></label>
<input type="text" name="phone" id="phone" placeholder="+7" value="+79876543210">
<input type="text" name="phone" id="phone" value="+79876543210" data-required="true" data-phone="true" pattern="^((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$" placeholder="+7 (___)___-__-__">
</div>
<div class="block-mb-yellow">
<label for="email">E-mail <span>*</span></label>
<input type="text" name="email" id="email" placeholder="E-MAIL" value="i_ivanov@mail.ru">
<input type="text" name="email" id="email" data-required="true" pattern="^([a-z0-9_-]+\.)*[a-z0-9_-]+@[a-z0-9_-]+(\.[a-z0-9_-]+)*\.[a-z]{2,6}$" placeholder="E-MAIL" value="i_ivanov@mail.ru">
</div>
<div class="block-mb-yellow">
<label for="address">Адрес</label>
......@@ -356,7 +356,7 @@
</div>
<div class="block-mb-green">
<label for="password">Пароль <span>*</span></label>
<input type="password" name="password" id="password" placeholder="ПАРОЛЬ" value="111111111111">
<input type="password" name="password" id="password" data-required="true" placeholder="ПАРОЛЬ" value="111111111111">
<a href="#" class="toggle-password">
<img src="./img/icon_toggle_password.svg" alt="">
</a>
......
......@@ -308,35 +308,35 @@
</button>
<div class="current-profile-data">
<div class="container-compressed">
<form action="" name="form-current-profile" id="form-current-profile" enctype="multipart/form-data">
<form action="" name="form-current-profile" data-ajax="true" id="form-current-profile" enctype="multipart/form-data">
<div class="block-mb-yellow">
<label for="name">Имя <span>*</span></label>
<input type="text" placeholder="ИМЯ" name="name" id="name" value="Иван" disabled>
<input type="text" placeholder="ИМЯ" pattern="^[А-Яа-яЁё\s]+$" data-required="true" name="name" id="name" value="Иван" disabled>
</div>
<div class="block-mb-yellow">
<label for="sername">Фамилия <span>*</span></label>
<input type="text" placeholder="ФАМИЛИЯ" name="sername" id="sername" value="Иванов" disabled>
<input type="text" placeholder="ФАМИЛИЯ" pattern="^[А-Яа-яЁё\s]+$" data-required="true" name="sername" id="sername" value="Иванов" disabled>
</div>
<div class="block-mb-yellow">
<label for="patronymic">Отчество <span>*</span></label>
<input type="text" placeholder="ОТЧЕСТВО" name="patronymic" id="patronymic" value="Иванович" disabled>
<input type="text" placeholder="ОТЧЕСТВО" pattern="^[А-Яа-яЁё\s]+$" data-required="true" name="patronymic" id="patronymic" value="Иванович" disabled>
</div>
<div class="block-mb-yellow">
<label for="birthday">Дата рождения</label>
<input type="text" name="birthday" id="birthday" placeholder="ВЫБЕРИТЕ ДАТУ" value="26.08.1980" disabled>
<input type="text" name="birthday" id="birthday" data-picker="datepicker" placeholder="ВЫБЕРИТЕ ДАТУ" value="26.08.1980" disabled>
</div>
<div class="block-gender block-mb-green">
<p>Пол:</p>
<div class="block-radio">
<label for="male">
<input type="radio" id="male" name="gender" hidden="" checked disabled>
<input type="radio" id="male" name="gender" hidden="" checked disabled required>
<div class="radio"></div>
Мужской
</label>
</div>
<div class="block-radio">
<label for="female">
<input type="radio" id="female" name="gender" hidden="" disabled>
<input type="radio" id="female" name="gender" hidden="" disabled required>
<div class="radio"></div>
Женский
</label>
......@@ -344,11 +344,11 @@
</div>
<div class="block-mb-yellow">
<label for="phone">Телефон <span>*</span></label>
<input type="text" name="phone" id="phone" placeholder="+7" value="+79876543210" disabled>
<input type="text" name="phone" id="phone" value="+79876543210" data-required="true" data-phone="true" pattern="^((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$" placeholder="+7 (___)___-__-__" disabled>
</div>
<div class="block-mb-yellow">
<label for="email">E-mail <span>*</span></label>
<input type="text" name="email" id="email" placeholder="E-MAIL" value="i_ivanov@mail.ru" disabled>
<input type="text" name="email" id="email" data-required="true" pattern="^([a-z0-9_-]+\.)*[a-z0-9_-]+@[a-z0-9_-]+(\.[a-z0-9_-]+)*\.[a-z]{2,6}$" placeholder="E-MAIL" value="i_ivanov@mail.ru" disabled>
</div>
<div class="block-mb-yellow">
<label for="address">Адрес</label>
......@@ -356,10 +356,10 @@
</div>
<div class="block-mb-green">
<label for="password">Пароль <span>*</span></label>
<input type="password" name="password" id="password" placeholder="ПАРОЛЬ" value="111111111111" disabled>
<input type="password" name="password" id="password" data-required="true" placeholder="ПАРОЛЬ" value="111111111111" disabled>
</div>
<p class="block-mb-green" style="font-size: 14px;"><span>*</span> - поля, обязательные для заполнения</p>
<a href="#" class="main-button edit-profile">Редактировать</a>
<a href="#" class="main-button">Редактировать</a>
</form>
</div>
</div>
......
......@@ -293,14 +293,14 @@
<div class="block-mt-green block-callback">
<div class="block-radio">
<label for="call-myself">
<input type="radio" id="call-myself" name="callback" hidden="" checked="">
<input type="radio" id="call-myself" name="callback" hidden="" checked="" required>
<div class="radio"></div>
Позвоню сам
</label>
</div>
<div class="block-radio">
<label for="call-me">
<input type="radio" id="call-me" name="callback" hidden="">
<input type="radio" id="call-me" name="callback" hidden="" required>
<div class="radio"></div>
Позвоните мне
</label>
......@@ -314,7 +314,7 @@
</div>
<div class="block-mt-green">
<label for="phone">Телефон <span>*</span></label>
<input type="text" name="phone" id="phone" placeholder="+7" pattern="^((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$" data-required="true">
<input type="text" name="phone" id="phone" placeholder="+7 (___)___-__-__" data-phone="true" pattern="^((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$" data-required="true">
</div>
<div class="block-mt-green">
<label for="message">Сообщение <span>*</span></label>
......
@media(max-width: 1310px)
{
.advantages-registration-row
{
margin-left: -15px;
margin-right: -15px;
}
.advantages-registration-row .block-advantages-registration
{
padding-left: 0;
......@@ -15,6 +10,16 @@
position: relative;
margin-bottom: 32px;
}
.list-container-row
{
margin-right: -15px;
margin-left: -15px;
}
.list-container-row .col-3, .list-container-row .col-9
{
padding-left: 15px;
padding-right: 15px;
}
}
@media(max-width: 1280px)
{
......@@ -44,15 +49,15 @@
padding-right: 20px;
padding-left: 20px;
}
.main-search .search-list-row-companies
.row-companies
{
margin-left: -10px;
margin-right: -10px;
}
.main-search .search-list-row-companies .col-6
.row-companies .col-6
{
padding-left: 10px;
padding-right: 12px;
padding-right: 10px;
flex: 0 0 100%;
max-width: 100%;
}
......@@ -78,10 +83,10 @@
margin-left: 0;
margin-top: 20px;
}
.main-search .search-list-row-companies .col-6
.row-companies .col-6
{
padding-left: 15px;
padding-right: 15px;
padding-left: 10px;
padding-right: 10px;
}
.new-vacancies-content .col-3, .new-resumes-content .col-3
{
......@@ -374,7 +379,7 @@
}
@media(max-width: 800px)
{
.main-search .search-list-row-companies .col-6
.row-companies .col-6
{
flex: 0 0 100%;
max-width: 100%;
......@@ -744,15 +749,15 @@
margin-left: -16px;
margin-right: -16px;
}
.main-search .search-list-row-companies
.row-companies
{
margin-left: -16px;
margin-right: -16px;
}
.main-search .search-list-row-companies .col-6
.row-companies .col-6
{
padding-left: 16px;
padding-right: 22px !important;
padding-right: 16px;
}
.block-post-resume .row
{
......@@ -1014,7 +1019,7 @@
}
@media(max-width: 550px)
{
.main-search .search-list-row-companies .company-card
.row-companies .company-card
{
height: auto;
}
......
......@@ -2469,6 +2469,7 @@ button
// width: 400px;
position: relative;
border: 0;
overflow: hidden;
&__left
{
// width: 31%;
......@@ -3130,43 +3131,47 @@ button
// padding-right: 10px;
// }
// }
.search-list-row-companies
}
// Row для компаний
.row-companies
{
margin-left: -9px;
margin-right: -9px;
.col-6
{
margin-left: -9px;
margin-right: -9px;
.col-6
margin-bottom: 22px;
padding-left: 9px;
padding-right: 9px;
}
.company-card
{
height: 300px;
box-shadow: 0 10px 20px 0 rgba(15,20,91,.1);
border-radius: 3px;
.title-rating
{
margin-top: 22px;
margin-bottom: 22px;
padding-left: 9px;
padding-right: 9px;
font-family: Montserrat Bold;
font-size: 14px;
font-stretch: normal;
font-style: normal;
line-height: normal;
letter-spacing: normal;
color: $color-primary;
}
.company-card
.company-card__name
{
height: 300px;
box-shadow: 0 10px 20px 0 rgba(15,20,91,.1);
border-radius: 3px;
.title-rating
{
margin-top: 22px;
margin-bottom: 22px;
font-family: Montserrat Bold;
font-size: 14px;
font-stretch: normal;
font-style: normal;
line-height: normal;
letter-spacing: normal;
color: $color-primary;
}
.company-card__name
{
height: 66px;
max-height: 66px;
}
.company-card__desc
{
height: 96px;
max-height: 96px;
}
height: 66px;
max-height: 66px;
}
.company-card__desc
{
height: 96px;
max-height: 96px;
}
}
}
......@@ -3431,12 +3436,12 @@ label
}
&-row
{
margin-left: -37.5px;
margin-right: -37.5px;
// margin-left: -37.5px;
// margin-right: -37.5px;
.block-advantages-registration
{
padding-left: 37.5px;
padding-right: 37.5px;
padding-left: 15px;
padding-right: 15px;
&__image
{
text-align: center;
......@@ -3704,8 +3709,8 @@ ymaps[class$='balloon__tail']
ymaps[class$='pie-chart']
{
line-height: normal !important;
height: 36px !important;
width: 36px !important;
// height: 36px !important;
// width: 36px !important;
display: flex !important;
justify-content: !important;
align-items: !important;
......@@ -3742,6 +3747,25 @@ ymaps[class$='pie-chart-content']
align-items: center;
}
.cluster-icon
{
width: 36px;
height: 36px;
border-radius: 50%;
display: flex;
justify-content: center;
align-items: center;
background-color: $color-hover;
font-family: Montserrat Regular;
font-size: 16px;
font-weight: normal;
font-stretch: normal;
font-style: normal;
line-height: normal;
letter-spacing: normal;
color: #ffffff;
}
.balloon-header-vacancy
{
display: flex;
......@@ -4167,6 +4191,10 @@ ymaps[class$='pie-chart-content']
{
box-shadow: 0 10px 20px 0 rgba(15, 20, 91, 0.1);
height: 420px;
div
{
height: 100%;
}
}
.wrapper-form-share
......@@ -4234,6 +4262,22 @@ input[type="submit"]
{
position: relative;
}
.owl-stage-outer
{
// margin-left: -10px;
// margin-right: -10px;
.owl-item
{
padding-bottom: 30px;
// margin-left: 10px !important;
// margin-right: 10px !important;
// .card
// {
// max-width: initial;
// width: 100%;
// }
}
}
.navigation-similar-vacancies
{
position: absolute;
......@@ -4426,7 +4470,7 @@ input[type="submit"]
background-color: #fff;
border-top: 4px solid #dddce8;
box-shadow: 0 10px 20px 0 rgba(15, 20, 91, 0.1);
// min-width: 925px;
width: 922.5px;
margin-bottom: 0;
&-header
{
......@@ -4624,6 +4668,7 @@ input[type="submit"]
background-color: #fff;
border-top: 4px solid #dddce8;
box-shadow: 0 10px 20px 0 rgba(15, 20, 91, 0.1);
width: 922.5px;
// min-width: 925px;
&-header
{
......@@ -4843,13 +4888,13 @@ input[type="submit"]
// margin: 0;
// }
// }
.col-4
{
p
{
font-size: 15px;
}
}
// .col-4
// {
// p
// {
// font-size: 15px;
// }
// }
.col-8
{
.col-4 .block-checkbox:last-child, .col-4 .block-radio:last-child,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment