summaryrefslogtreecommitdiff
path: root/layouts/recordings/recordings-plain.html
diff options
context:
space:
mode:
Diffstat (limited to 'layouts/recordings/recordings-plain.html')
-rw-r--r--layouts/recordings/recordings-plain.html25
1 files changed, 23 insertions, 2 deletions
diff --git a/layouts/recordings/recordings-plain.html b/layouts/recordings/recordings-plain.html
index fcd67ff..2617888 100644
--- a/layouts/recordings/recordings-plain.html
+++ b/layouts/recordings/recordings-plain.html
@@ -624,13 +624,34 @@
// 날짜별로 그룹을 처리하되, 원래 순서를 유지하면서 같은 날짜 내에서만 재정렬
const dateKeys = Object.keys(groupedByDate).sort().reverse();
+
+ // 자연 정렬 함수 (숫자 부분을 숫자로 비교)
+ const naturalCompare = (a, b) => {
+ const partsA = a.split(/(\d+)/);
+ const partsB = b.split(/(\d+)/);
+ const maxLen = Math.max(partsA.length, partsB.length);
+ for (let i = 0; i < maxLen; i++) {
+ const partA = partsA[i] || '';
+ const partB = partsB[i] || '';
+ const numA = parseInt(partA, 10);
+ const numB = parseInt(partB, 10);
+ if (!isNaN(numA) && !isNaN(numB)) {
+ if (numA !== numB) return numB - numA; // 역순이므로 numB - numA
+ } else {
+ const cmp = partB.localeCompare(partA); // 역순이므로 partB와 partA 순서
+ if (cmp !== 0) return cmp;
+ }
+ }
+ return 0;
+ };
+
dateKeys.forEach(date => {
const group = groupedByDate[date];
- // 폴더명 역순 정렬
+ // 폴더명 역순 정렬 (자연 정렬 사용)
group.sort((a, b) => {
const folderA = a.getAttribute('data-folder') || '';
const folderB = b.getAttribute('data-folder') || '';
- return folderB.localeCompare(folderA);
+ return naturalCompare(folderA, folderB);
});
// 그룹 내 첫 항목의 다음 형제를 기준점으로 사용