diff --git a/apps/school/templates/school/free_lessons.html b/apps/school/templates/school/free_lessons.html index e740d2b1..fa3c12b9 100644 --- a/apps/school/templates/school/free_lessons.html +++ b/apps/school/templates/school/free_lessons.html @@ -14,7 +14,7 @@
-
Приглашай друзей и получай лилики.

Когда?
-Со 2 по 19 августа.

+Со 2 по 19 августа в 17:00.

Где?
Здесь, на этой странице.

diff --git a/docker/conf/nginx/conf.d/default.conf b/docker/conf/nginx/conf.d/default.conf index f78513ae..1ee0430c 100644 --- a/docker/conf/nginx/conf.d/default.conf +++ b/docker/conf/nginx/conf.d/default.conf @@ -32,16 +32,12 @@ server { location /static/ { alias /app/static/; - expires -1; + expires 1y; } location /media/ { alias /app/media/; - - location /media/instagram/results/ { - expires 1d; - try_files $uri @prod; - } + expires 1y; try_files $uri @prod; } diff --git a/web/src/js/modules/popup.js b/web/src/js/modules/popup.js index 2ea82a0e..b3b18a93 100644 --- a/web/src/js/modules/popup.js +++ b/web/src/js/modules/popup.js @@ -15,6 +15,38 @@ $(document).ready(function () { popup = $('.popup.visible.open'), prevPopup = null; + function showPopup(){ + if(! popup && popupName){ + popup = $(popupName); + } + body.addClass('no-scroll'); + popup.addClass('open'); + return new Promise((resolve) => { + setTimeout(function(){ + popup.addClass('visible'); + resolve(); + $(document).trigger('popup-opened', [popup]); + }, 100); + }); + } + + function hidePopup(){ + body.removeClass('no-scroll'); + popup.removeClass('visible'); + popup.data('next-url', null); + + if($('#password-reset__sent').is(':visible')) { + window.location.reload(); + } + return new Promise((resolve) => { + setTimeout(function(){ + popup.removeClass('open'); + resolve(); + $(document).trigger('popup-closed', [popup]); + }, 300); + }); + } + // CAPTURE EMAIL const EMAIL_CAPTURED_COOKIE = 'email-captured'; @@ -67,96 +99,6 @@ $(document).ready(function () { }); }; - $(".js-video-modal").each(function(){ - const $this = $(this); - const url = $this.data('videoUrl'); - if(! url){ - return; - } - let data; - let videoId; - let channel; - if(url.indexOf('youtu.be') > -1){ - videoId = url.split('youtu.be/')[1]; - channel = 'youtube'; - } - if(url.indexOf('youtube.com') > -1 && url.indexOf('watch') > -1){ - const m = /[?&]v=([^&]+)(&.+)?$/.exec(url); - channel = 'youtube'; - videoId = m && m[1]; - } - if(url.indexOf('vimeo.com') > -1){ - const split = url.split('/'); - channel = 'vimeo'; - videoId = split[split.length - 1]; - } - $this.attr('data-video-id', videoId); - $this.attr('data-video-url', ''); - $this.attr('data-channel', channel); - $this.modalVideo({ channel, jsapi: true }); - }); - - $(".js-video-modal").on('player-created', e => { - if(window.LIL_STORE.user.id || ! $(e.target).data('trialLesson') || Cookies.get(EMAIL_CAPTURED_COOKIE)){ - return; - } - const channel = $(e.target).data('channel'); - const player = e.detail.player; - let timeout = null; - const interval = 1000 * 60; // 1 min - const pauseVideo = () => { - timeout = setTimeout(() => { - clearTimeout(timeout); - const $modalVideo = $('.modal-video'); - if(! $modalVideo.length){ - return; - } - if(channel == 'youtube'){ - player.pauseVideo(); - } - else if(channel == 'vimeo'){ - player.pause(); - } - $modalVideo.css('opacity', 0); - captureEmail(true).then(() => { - $modalVideo.css('opacity', 1); - Cookies.set(EMAIL_CAPTURED_COOKIE, 1); - if(channel == 'youtube'){ - player.playVideo(); - } - else if(channel == 'vimeo'){ - player.play(); - } - }).catch(() => { - $('.modal-video').remove(); - }); - }, interval); - } - if(channel == 'youtube'){ - window.onYTPlayerStateChange = (event) => { - if(event.data == YT.PlayerState.PLAYING && ! timeout){ - pauseVideo(); - } - if(event.data == YT.PlayerState.ENDED && timeout){ - clearTimeout(timeout); - } - } - player.addEventListener('onStateChange', 'onYTPlayerStateChange'); - } - else if (channel == 'vimeo'){ - player.on('play', () => { - if(! timeout){ - pauseVideo(); - } - }) - player.on('ended', () => { - if(timeout){ - clearTimeout(timeout); - } - }); - } - }); - body.on('click', '[data-popup]', function(e){ const $this = $(this); let data = $this.data('popup'); @@ -168,7 +110,7 @@ $(document).ready(function () { popup = $(data); - if(data === '.js-popup-buy') { + if(data == '.js-popup-buy') { popup.data('date-start', $this.data('date-start') || ''); popup.data('day', $this.data('day') || ''); popup.data('is-camp', $this.data('is-camp') || ''); @@ -221,7 +163,7 @@ $(document).ready(function () { updateCart(); } - if(data === '.js-popup-course-buy'){ + if(data == '.js-popup-course-buy'){ const updateCourseCart = () => { const $orderPrice = popup.find('.order_price_text'); const useBonuses = $bonusesCheckbox.prop('checked'); @@ -262,7 +204,7 @@ $(document).ready(function () { popup.data('next-url', nextUrl); } - if( data === '.js-popup-enter-gift-code') { + if( data == '.js-popup-enter-gift-code') { const $giftCode = popup.find('.enter-gift-code__code'); const $giftError = popup.find('.enter-gift-code__error'); $giftCode.val(''); @@ -279,7 +221,7 @@ $(document).ready(function () { const showDef = showPopup(); - if( data === '.js-popup-auth') { + if( data == '.js-popup-auth') { showDef.then(() => { const login = popup.find('.js-auth-login'); const pass = popup.find('.js-auth-pass'); @@ -288,7 +230,7 @@ $(document).ready(function () { }); } - if(data === '.js-popup-ref-link') { + if(data == '.js-popup-ref-link') { showDef.then(() => { $('#referrer-url').select(); }); @@ -325,6 +267,104 @@ $(document).ready(function () { showPopup(); } + $(".js-video-modal").each(function(){ + const $this = $(this); + const url = $this.data('videoUrl'); + if(! url){ + return; + } + let data; + let videoId; + let channel; + if(url.indexOf('youtu.be') > -1){ + videoId = url.split('youtu.be/')[1]; + channel = 'youtube'; + } + if(url.indexOf('youtube.com') > -1 && url.indexOf('watch') > -1){ + const m = /[?&]v=([^&]+)(&.+)?$/.exec(url); + channel = 'youtube'; + videoId = m && m[1]; + } + if(url.indexOf('vimeo.com') > -1){ + const split = url.split('/'); + channel = 'vimeo'; + videoId = split[split.length - 1]; + } + $this.attr('data-video-id', videoId); + $this.attr('data-video-url', ''); + $this.attr('data-channel', channel); + $this.modalVideo({ channel, jsapi: true }); + }); + + $(".js-video-modal").on('player-created', e => { + if(window.LIL_STORE.user.id || $(e.target).data('trialLesson') && Cookies.get(EMAIL_CAPTURED_COOKIE) + || ! $(e.target).data('freeLesson')){ + return; + } + const channel = $(e.target).data('channel'); + const player = e.detail.player; + let timeout = null; + const freeLesson = $(e.target).data('freeLesson') + const interval = 1000 * (freeLesson ? 180 : 60); // 1 min + const pauseVideo = () => { + timeout = setTimeout(() => { + clearTimeout(timeout); + const $modalVideo = $('.modal-video'); + if(! $modalVideo.length){ + return; + } + if(channel == 'youtube'){ + player.pauseVideo(); + } + else if(channel == 'vimeo'){ + player.pause(); + } + $modalVideo.css('opacity', 0); + if(freeLesson){ + popup = $('.js-popup-auth'); + showPopup(); + } + else{ + captureEmail(true).then(() => { + $modalVideo.css('opacity', 1); + Cookies.set(EMAIL_CAPTURED_COOKIE, 1); + if(channel == 'youtube'){ + player.playVideo(); + } + else if(channel == 'vimeo'){ + player.play(); + } + }).catch(() => { + $('.modal-video').remove(); + }); + } + }, interval); + } + if(channel == 'youtube'){ + window.onYTPlayerStateChange = (event) => { + if(event.data == YT.PlayerState.PLAYING && ! timeout){ + pauseVideo(); + } + if(event.data == YT.PlayerState.ENDED && timeout){ + clearTimeout(timeout); + } + } + player.addEventListener('onStateChange', 'onYTPlayerStateChange'); + } + else if (channel == 'vimeo'){ + player.on('play', () => { + if(! timeout){ + pauseVideo(); + } + }) + player.on('ended', () => { + if(timeout){ + clearTimeout(timeout); + } + }); + } + }); + if(window.LIL_STORE.user.id && window.LIL_STORE.user.hasNewBonuses && window.LIL_STORE.user.bonus > 0){ $(document).ready(() => { popup = $('.js-popup-bonuses-came'); @@ -374,38 +414,6 @@ $(document).ready(function () { }); } - function showPopup(){ - if(! popup && popupName){ - popup = $(popupName); - } - body.addClass('no-scroll'); - popup.addClass('open'); - return new Promise((resolve) => { - setTimeout(function(){ - popup.addClass('visible'); - resolve(); - $(document).trigger('popup-opened', [popup]); - }, 100); - }); - } - - function hidePopup(){ - body.removeClass('no-scroll'); - popup.removeClass('visible'); - popup.data('next-url', null); - - if($('#password-reset__sent').is(':visible')) { - window.location.reload(); - } - return new Promise((resolve) => { - setTimeout(function(){ - popup.removeClass('open'); - resolve(); - $(document).trigger('popup-closed', [popup]); - }, 300); - }); - } - function updateCart(){ var link = popup.find('.but_btn_popup').data('link'); var $order = popup.find('.order');