blob: 3f7786eb54ae3135398279e1c0f8612680518761 [file] [log] [blame]
$(function () {
var $popup = $('.sky-event-popup')
var key = 'SkyWalkingPopupClosedTime';
if (!$popup || isShowed(key)) {
return;
}
var $items = $popup.find('.item');
var $pic = $popup.find('.pic');
init()
function init() {
var count = getActiveCount()
if (!count) {
return;
}
showPopover(count)
bindClick()
}
function getActiveCount() {
var count = 0;
$.each($items, function (index, item) {
var startTime = $(item).data('starttime');
var endTime = $(item).data('endtime');
if (isDuringTime(startTime, endTime)) {
$(item).show()
count++
}
})
return count
}
function showPopover(count) {
var src;
var posterSrc;
var link;
var $contentBox = $popup.find('.content-box');
if (count === 1) {
$contentBox.addClass('one')
src = $items.eq(0).data('img')
posterSrc = $items.eq(0).data('poster')
link = $items.eq(0).data('link')
} else {
$items.sort(function (a, b) {
var aDate = new Date($(a).data('endtime'))
var bDate = new Date($(b).data('endtime'))
return aDate.getTime() - bDate.getTime()
})
$.each($items, function (index, item) {
var img = $(item).data('img')
var poster = $(item).data('poster')
if (poster) {
posterSrc = poster;
link = $(item).data('link');
return false
}
if (img) {
src = img;
return false
}
})
$contentBox.html($items)
}
if (posterSrc && document.body.clientWidth >= 440) {
$pic.attr('src', posterSrc);
$pic.on('click', function () {
window.location.href = link;
$popup.find('.fa-window-close').trigger('click')
})
$('.pic-wrapper').addClass('poster')
$('.fa-window-close').css('color', '#8797ac')
$contentBox.hide()
} else {
if (!src) {
src = $pic.data('img')
$pic.css('height', 'auto')
}
$pic.attr('src', src)
}
setTimeout(function () {
$popup.show()
}, 1000)
}
function bindClick() {
$popup.find('.fa-window-close').on('click', function () {
localStorage.setItem(key, new Date());
$popup.hide()
})
}
function isShowed(key) {
var storageTime = formatTime(localStorage.getItem(key));
var now = formatTime(new Date());
return storageTime === now;
}
function formatTime(time) {
var date = new Date(time);
return (
date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate()
);
}
function isDuringTime(startTimeStr, endTimeStr) {
var currTime = new Date();
var startTime = new Date(startTimeStr);
var endTime = new Date(endTimeStr);
return currTime <= endTime && (currTime >= startTime || !startTimeStr)
}
})