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'); ...@@ -995,6 +995,47 @@ let buttonAppBanner = document.querySelectorAll('.button-app-banner');
let modalAppBanner = document.querySelector('#modal-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 => const animationModalForm = fn =>
{ {
window.requestAnimationFrame(function() window.requestAnimationFrame(function()
...@@ -1014,6 +1055,11 @@ function viewForm(buttons, form) ...@@ -1014,6 +1055,11 @@ function viewForm(buttons, form)
{ {
e.preventDefault(); e.preventDefault();
if(button.classList.contains('button-app-banner'))
{
if(!checkFormPostPicture(button)) return;
}
let closeModal = form.querySelector('.close-modal a'); let closeModal = form.querySelector('.close-modal a');
shadow.appendChild(form); shadow.appendChild(form);
...@@ -1084,49 +1130,10 @@ if(buttonDetailedSearch.length) ...@@ -1084,49 +1130,10 @@ if(buttonDetailedSearch.length)
} }
if(buttonAppBanner.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"]'); const forms = document.querySelectorAll('form[data-ajax="true"]');
...@@ -1170,6 +1177,26 @@ forms.forEach(function(form) ...@@ -1170,6 +1177,26 @@ forms.forEach(function(form)
if(!checkFieldCheckbox(input)) valid = false; 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) ...@@ -1220,6 +1247,25 @@ function checkFieldTextarea(textarea)
return result; 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) function sendForm(form)
{ {
fetch(form.action, { method: 'POST', body: new FormData(form)}) fetch(form.action, { method: 'POST', body: new FormData(form)})
...@@ -1483,6 +1529,10 @@ if(tabs.length) ...@@ -1483,6 +1529,10 @@ if(tabs.length)
......
...@@ -393,6 +393,12 @@ ...@@ -393,6 +393,12 @@
<li> <li>
<a href="password-recovery-employer.html">Восстановление пароля</a> <a href="password-recovery-employer.html">Восстановление пароля</a>
</li> </li>
<li>
<a href="registration-employer.html">Регистрация</a>
</li>
<li>
<a href="current-resume-employer.html">Резюме детальная</a>
</li>
</ul> </ul>
</div> </div>
</div> </div>
......
This diff is collapsed.
...@@ -958,6 +958,11 @@ ...@@ -958,6 +958,11 @@
{ {
width: 100%; width: 100%;
} }
.type-employer .block-radio
{
margin-top: 22px !important;
margin-bottom: 0 !important;
}
} }
@media(max-width: 550px) @media(max-width: 550px)
{ {
......
...@@ -413,7 +413,6 @@ input[type="text"], input[type="password"] ...@@ -413,7 +413,6 @@ input[type="text"], input[type="password"]
padding-left: 20px; padding-left: 20px;
font-family: Montserrat Bold; font-family: Montserrat Bold;
font-size: 13px; font-size: 13px;
font-stretch: normal; font-stretch: normal;
font-style: normal; font-style: normal;
line-height: normal; line-height: normal;
...@@ -5265,6 +5264,15 @@ input[type="submit"] ...@@ -5265,6 +5264,15 @@ input[type="submit"]
text-align: center; 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', ...@@ -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', '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', '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', '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 = { const webpackConfig = {
context: path.resolve(__dirname, 'src'), 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