You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
138 lines
4.0 KiB
138 lines
4.0 KiB
import $ from 'jquery';
|
|
import {api} from './api';
|
|
|
|
var selectedWeekdays = {};
|
|
$(document).ready(function () {
|
|
let body = $('body'),
|
|
popup = $('.popup.visible.open');
|
|
|
|
body.on('click', '[data-popup]', function(e){
|
|
e.preventDefault();
|
|
e.stopPropagation();
|
|
|
|
let data = $(this).data('popup');
|
|
popup = $(data);
|
|
showPopup();
|
|
|
|
let is_extend = false;
|
|
|
|
if(data === '.js-popup-buy') {
|
|
console.log('reset selected');
|
|
$('[data-day]').prop('checked', false);
|
|
|
|
if ($(this).text() === 'продлить') {
|
|
//data-purchased
|
|
//restore purchased selection
|
|
console.log('restore purchased');
|
|
$('[data-purchased]').each(function(){
|
|
$('[data-day='+$(this).data('purchased')+']').prop('checked', true);
|
|
});
|
|
is_extend = true;
|
|
}
|
|
}
|
|
|
|
if($(this).data('day')) {
|
|
let day = $(this).data('day');
|
|
$('[data-day='+day+']').prop('checked', true);
|
|
}
|
|
|
|
if(!is_extend && !$(this).data('day')) {
|
|
console.log('check all');
|
|
$('[data-day]').each(function(){
|
|
$(this).prop('checked', true);
|
|
});
|
|
}
|
|
|
|
$('[data-day]').trigger('change');
|
|
});
|
|
|
|
$('.js-popup-close').on('click', function(e){
|
|
e.preventDefault();
|
|
hidePopup();
|
|
});
|
|
|
|
body.on('click', '.js-outer', function(){
|
|
if (popup !== undefined) {
|
|
hidePopup();
|
|
}
|
|
});
|
|
|
|
$('.js-popup-wrap').on('click', function(e){
|
|
e.stopPropagation();
|
|
});
|
|
|
|
$(document).keyup(function(e){
|
|
if (e.keyCode === 27) hidePopup();
|
|
});
|
|
|
|
function showPopup(){
|
|
body.addClass('no-scroll');
|
|
popup.addClass('open');
|
|
setTimeout(function(){
|
|
popup.addClass('visible');
|
|
}, 100);
|
|
}
|
|
|
|
function hidePopup(){
|
|
body.removeClass('no-scroll');
|
|
popup.removeClass('visible');
|
|
setTimeout(function(){
|
|
popup.removeClass('open');
|
|
}, 300);
|
|
|
|
if($('#password-reset__sent').is(':visible')) {
|
|
window.location.reload();
|
|
}
|
|
}
|
|
|
|
$(document).on('change', '[data-day]', function(){
|
|
console.log('on change data-day');
|
|
var weekday = $(this).data('day');
|
|
var price = $(this).data('price');
|
|
if($(this).is(':checked')) {
|
|
// console.log('checked');
|
|
selectedWeekdays[weekday] = {price:price};
|
|
} else {
|
|
// console.log('not checked');
|
|
delete selectedWeekdays[weekday];
|
|
}
|
|
|
|
updateCart();
|
|
});
|
|
|
|
function updateCart(){
|
|
var $orderPrice = $('.order_price_text');
|
|
var days = ['', 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье'];
|
|
var weekdays = [], daysText = [], price = 0;
|
|
for(var i in selectedWeekdays) {
|
|
price += parseInt(selectedWeekdays[i].price);
|
|
weekdays.push(i);
|
|
daysText.push(days[i]);
|
|
}
|
|
|
|
if(weekdays.length){
|
|
api.getPaymentAmount({ user: window.STORE.user.id, weekdays: weekdays })
|
|
.then((response) => {
|
|
var text = '';
|
|
if(response.data.price != response.data.amount) {
|
|
text = '<del>'+response.data.price+'</del> '+response.data.amount+'р.';
|
|
} else {
|
|
text = response.data.amount+'p.';
|
|
}
|
|
$orderPrice.html(text);
|
|
});
|
|
}
|
|
else {
|
|
$orderPrice.html('0p.');
|
|
}
|
|
|
|
$('.order__days').html((daysText.length) ? daysText.join(', '):'Ничего не выбрано');
|
|
|
|
var link = $('.but_btn_popup').data('link');
|
|
|
|
link = link+'?'+decodeURIComponent($.param({weekdays: weekdays}, true));
|
|
$('.but_btn_popup').attr('href', link);
|
|
}
|
|
|
|
updateCart();
|
|
});
|
|
|