правка визуальных багов

This commit is contained in:
2026-06-01 00:22:07 +03:00
parent f3a9905423
commit 41fde2566d
14 changed files with 484 additions and 88 deletions

View File

@@ -56,6 +56,7 @@ const LESSON_TYPE_LIMITS = [
startWeekInputId: 'schedule-rule-practice-start-week'
}
];
const LESSON_TYPE_ORDER = new Map(LESSON_TYPE_LIMITS.map((config, index) => [config.key, index]));
export async function initSchedule() {
const ruleForm = document.getElementById('schedule-rule-form');
@@ -186,6 +187,7 @@ export async function initSchedule() {
api.get('/api/lesson-types'),
api.get('/api/subgroups')
]);
lessonTypes = sortLessonTypes(lessonTypes);
populateSubjectSelects();
}
@@ -1022,6 +1024,15 @@ export async function initSchedule() {
return { value: lessonType.id, label: lessonType.name || lessonType.lessonType || `ID ${lessonType.id}` };
}
function sortLessonTypes(items) {
return [...items].sort((first, second) => {
const firstOrder = LESSON_TYPE_ORDER.get(lessonTypeKey(first)) ?? LESSON_TYPE_ORDER.size;
const secondOrder = LESSON_TYPE_ORDER.get(lessonTypeKey(second)) ?? LESSON_TYPE_ORDER.size;
return firstOrder - secondOrder
|| naturalCompare(first.name || first.lessonType, second.name || second.lessonType);
});
}
function lessonTypeKeyById(lessonTypeId) {
const lessonType = lessonTypes.find(item => String(item.id) === String(lessonTypeId));
return lessonType ? lessonTypeKey(lessonType) : null;