Commit c26c3d30 authored by Sergey's avatar Sergey

Registration and current-resume-employer is done

parent 7bc45a59
This diff is collapsed.
......@@ -995,6 +995,47 @@ let buttonAppBanner = document.querySelectorAll('.button-app-banner');
let modalAppBanner = document.querySelector('#modal-app-banner');
function checkFormPostPicture(button)
{
let currentForm = button.parentElement;
let valid = true;
const fieldRadio = currentForm.querySelector('input[type="radio"]:checked');
const fieldsRadio = currentForm.querySelectorAll('input[type="radio"]');
if(!fieldRadio)
{
fieldsRadio.forEach((input) => input.classList.add('check-error'));
valid = false;
}
if(valid)
{
fieldsRadio.forEach((input) => input.classList.remove('check-error'));
let bannerInfo = document.querySelector('.banner-info');
let sizesBanner = currentForm.elements[0].value;
let countDays;
let allRadio = Array.from(currentForm.querySelectorAll('input[type="radio"]'));
allRadio.forEach(elem =>
{
if(elem.checked)
{
countDays = elem.value;
}
});
bannerInfo.innerHTML = `Баннер ${sizesBanner} сроком на ${countDays}`;
return true;
}
else
{
return false;
}
}
const animationModalForm = fn =>
{
window.requestAnimationFrame(function()
......@@ -1014,6 +1055,11 @@ function viewForm(buttons, form)
{
e.preventDefault();
if(button.classList.contains('button-app-banner'))
{
if(!checkFormPostPicture(button)) return;
}
let closeModal = form.querySelector('.close-modal a');
shadow.appendChild(form);
......@@ -1084,49 +1130,10 @@ if(buttonDetailedSearch.length)
}
if(buttonAppBanner.length)
{
// Обработка форм с опциями о размещении баннера
const bannerForms = document.querySelectorAll('form[data-picture="true"]');
if(bannerForms.length)
{
bannerForms.forEach(form =>
{
form.addEventListener('submit', (e) =>
{
e.preventDefault();
let bannerInfo = document.querySelector('.banner-info');
let inputBannerSizes = document.querySelector('input[name="banner-sizes"]');
let inputCountDays = document.querySelector('input[name="banner-count-days"]');
let sizesBanner = form.elements[0].value;
let countDays;
let allRadio = Array.from(form.querySelectorAll('input[type="radio"]'));
allRadio.forEach(elem => {
if(elem.checked)
{
countDays = elem.value;
}
});
console.log(sizesBanner);
console.log(countDays);
inputBannerSizes.value = sizesBanner;
inputCountDays.value = countDays;
bannerInfo.innerHTML = `Баннер ${sizesBanner} сроком на ${countDays}`;
viewForm(buttonAppBanner, modalAppBanner);
});
});
}
viewForm(buttonAppBanner, modalAppBanner);
}
// Валидация формы и отправка данных
const forms = document.querySelectorAll('form[data-ajax="true"]');
......@@ -1170,6 +1177,26 @@ forms.forEach(function(form)
if(!checkFieldCheckbox(input)) valid = false;
});
// Проверим все радиокнопки
const fieldsRadio = form.querySelectorAll('input[type="radio"]');
fieldsRadio.forEach(function(input)
{
if(input.style.display === 'none') return;
if(!checkFieldCheckbox(input)) valid = false;
});
// Проверка пароля
const fieldsPassword = form.querySelectorAll('input[type="password"]');
fieldsPassword.forEach(function(input)
{
if(input.style.display === 'none') return;
if(!checkFieldPassword(input)) valid = false;
});
// Если были ошибки, не отправляем форму
......@@ -1220,6 +1247,25 @@ function checkFieldTextarea(textarea)
return result;
}
function checkFieldPassword(password)
{
var errorClass = 'field-error';
var value = password.value;
var result;
if(value.trim() === '')
{
result = false;
}
else
{
result = true;
}
result ? password.classList.remove(errorClass) : password.classList.add(errorClass);
return result;
}
function sendForm(form)
{
fetch(form.action, { method: 'POST', body: new FormData(form)})
......@@ -1483,6 +1529,10 @@ if(tabs.length)
......
......@@ -393,6 +393,12 @@
<li>
<a href="password-recovery-employer.html">Восстановление пароля</a>
</li>
<li>
<a href="registration-employer.html">Регистрация</a>
</li>
<li>
<a href="current-resume-employer.html">Резюме детальная</a>
</li>
</ul>
</div>
</div>
......
This diff is collapsed.
......@@ -958,6 +958,11 @@
{
width: 100%;
}
.type-employer .block-radio
{
margin-top: 22px !important;
margin-bottom: 0 !important;
}
}
@media(max-width: 550px)
{
......
......@@ -413,7 +413,6 @@ input[type="text"], input[type="password"]
padding-left: 20px;
font-family: Montserrat Bold;
font-size: 13px;
font-stretch: normal;
font-style: normal;
line-height: normal;
......@@ -5265,6 +5264,15 @@ input[type="submit"]
text-align: center;
}
.type-employer .block-radio
{
margin-bottom: 22px;
}
.type-employer .block-radio:last-child
{
margin: 0;
}
// Футер
......
This diff is collapsed.
......@@ -9,7 +9,8 @@ const pages = ['index', 'articles', 'faq', 'vacancies-list', 'current-article',
'vacancies-map', 'companies-map', 'current-vacancy', 'current-company', '404', 'profile', 'profile-editing', 'my-resumes', 'favorites-vacancies-list',
'favorites-vacancies-map', 'response', 'response-resume', 'response-vacancy', 'response-vacancy-not-reg', 'subscription',
'post-resume-step1', 'post-resume-step2', 'post-resume-step3', 'post-resume-step4', 'current-resume', 'index-employer', 'articles-employer', 'faq-employer',
'current-article-employer', 'service-rules-employer', 'access-account-employer', 'tariffs', 'password-recovery-employer'];
'current-article-employer', 'service-rules-employer', 'access-account-employer', 'tariffs', 'password-recovery-employer', 'registration-employer',
'resumes-list', 'resumes-map', 'current-resume-employer'];
const webpackConfig = {
context: path.resolve(__dirname, 'src'),
......
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