헤더 스켈줄 롤링 데이터 처리 변경

dev
박성영 5 months ago
parent c59ea22fbc
commit 94814ca6c3

@ -710,20 +710,21 @@ $(document).ready(function() {
var $ticker = $("#scheduleTicker");
$ticker.empty();
// 현재 시간 이후의 스케줄만 필터링 및 정렬
var filteredSchedules = filterAndSortSchedules(schedules, now);
// 최대 10개까지만 표시
var displaySchedules = filteredSchedules.slice(0, 10);
if (displaySchedules.length === 0) {
if (schedules.length === 0) {
$ticker.append('<div class="schedule-item">오늘과 내일의 예정된 일정이 없습니다.</div>');
} else {
// 스케줄 항목을 2번 반복 추가 (무한 롤링 효과)
for (var i = 0; i < 2; i++) {
displaySchedules.forEach(function(schedule) {
appendScheduleItem($ticker, schedule);
});
// 스케줄 항목을 1번만 추가 (중복 방지)
schedules.forEach(function(schedule) {
appendScheduleItem($ticker, schedule);
});
// 무한 롤링 효과를 위한 CSS 애니메이션 조정
var $items = $ticker.find('.schedule-item');
// 일정이 2개 이상일 때만 첫 번째 아이템의 복제본을 마지막에 추가 (무한 롤링 효과 유지)
if ($items.length > 1) {
// 첫 번째 아이템의 복제본을 마지막에 추가 (무한 롤링 효과 유지)
var $firstItem = $items.first().clone(true);
$ticker.append($firstItem);
}
}
@ -737,26 +738,7 @@ $(document).ready(function() {
console.log('[스케줄] updateScheduleTicker 끝(롤링 시작):', new Date().toISOString());
}
/**
* 일정 필터링 및 정렬 함수
* @param {Array} schedules - 일정 데이터 배열
* @param {Date} now - 현재 시간
* @return {Array} 필터링 및 정렬된 일정 배열
*/
function filterAndSortSchedules(schedules, now) {
// 현재 시간 이후의 스케줄만 필터링
var filtered = schedules.filter(function(schedule) {
var startDttm = new Date(schedule.startDttm);
return startDttm >= now;
});
// 시작 시간 기준으로 정렬
filtered.sort(function(a, b) {
return new Date(a.startDttm) - new Date(b.startDttm);
});
return filtered;
}
/**
* 일정 항목 추가 함수

Loading…
Cancel
Save