Поправил шрифты и некоторые визуальные косяки
This commit is contained in:
@@ -219,6 +219,13 @@
|
||||
align-content: flex-start;
|
||||
gap: 0.5rem;
|
||||
margin-top: 0.25rem;
|
||||
height: 180px;
|
||||
min-height: 180px;
|
||||
max-height: 180px;
|
||||
overflow-y: auto;
|
||||
overscroll-behavior: contain;
|
||||
scrollbar-gutter: stable;
|
||||
padding-right: 0.25rem;
|
||||
}
|
||||
|
||||
.dashboard-actions {
|
||||
|
||||
@@ -67,7 +67,7 @@ html {
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
|
||||
font-family: var(--ui-font-sans, 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);
|
||||
background: var(--bg-primary);
|
||||
color: var(--text-primary);
|
||||
min-height: 100vh;
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
.quality-hero h2 {
|
||||
max-width: 790px;
|
||||
margin: 0;
|
||||
font-family: Georgia, 'Times New Roman', serif;
|
||||
font-family: var(--ui-font-display);
|
||||
font-size: clamp(2rem, 4.5vw, 4.4rem);
|
||||
font-weight: 500;
|
||||
letter-spacing: -0.045em;
|
||||
@@ -229,7 +229,7 @@
|
||||
|
||||
.quality-score-inner strong {
|
||||
color: var(--text-primary);
|
||||
font-family: Georgia, 'Times New Roman', serif;
|
||||
font-family: var(--ui-font-display);
|
||||
font-size: 3.2rem;
|
||||
font-weight: 500;
|
||||
line-height: 0.95;
|
||||
@@ -271,7 +271,7 @@
|
||||
.quality-score-copy h3 {
|
||||
margin: 0.55rem 0 0;
|
||||
color: var(--text-primary);
|
||||
font-family: Georgia, 'Times New Roman', serif;
|
||||
font-family: var(--ui-font-display);
|
||||
font-size: clamp(1.6rem, 3vw, 2.5rem);
|
||||
font-weight: 500;
|
||||
}
|
||||
@@ -338,7 +338,7 @@
|
||||
|
||||
.quality-metric-index {
|
||||
color: color-mix(in srgb, var(--text-secondary) 65%, transparent);
|
||||
font-family: Georgia, 'Times New Roman', serif;
|
||||
font-family: var(--ui-font-display);
|
||||
font-size: 0.78rem;
|
||||
}
|
||||
|
||||
@@ -346,7 +346,7 @@
|
||||
display: block;
|
||||
margin-top: 1.25rem;
|
||||
color: var(--text-primary);
|
||||
font-family: Georgia, 'Times New Roman', serif;
|
||||
font-family: var(--ui-font-display);
|
||||
font-size: 2rem;
|
||||
font-weight: 500;
|
||||
}
|
||||
@@ -402,7 +402,7 @@
|
||||
.quality-recommendations h3 {
|
||||
margin: 0;
|
||||
color: var(--text-primary);
|
||||
font-family: Georgia, 'Times New Roman', serif;
|
||||
font-family: var(--ui-font-display);
|
||||
font-size: 1.65rem;
|
||||
font-weight: 500;
|
||||
}
|
||||
@@ -537,7 +537,7 @@
|
||||
|
||||
.quality-penalty {
|
||||
color: var(--quality-red);
|
||||
font-family: Georgia, 'Times New Roman', serif;
|
||||
font-family: var(--ui-font-display);
|
||||
font-size: 1.15rem;
|
||||
}
|
||||
|
||||
@@ -583,7 +583,7 @@
|
||||
background: color-mix(in srgb, var(--quality-cyan) 10%, transparent);
|
||||
border: 1px solid color-mix(in srgb, var(--quality-cyan) 35%, transparent);
|
||||
border-radius: 50%;
|
||||
font-family: Georgia, 'Times New Roman', serif;
|
||||
font-family: var(--ui-font-display);
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
right: -1.5rem;
|
||||
bottom: 1.2rem;
|
||||
color: rgba(255, 255, 255, .055);
|
||||
font-family: Georgia, serif;
|
||||
font-family: var(--ui-font-display);
|
||||
font-size: clamp(4rem, 10vw, 9rem);
|
||||
letter-spacing: -.08em;
|
||||
pointer-events: none;
|
||||
@@ -53,7 +53,7 @@
|
||||
.version-hero h2 {
|
||||
max-width: 760px;
|
||||
margin: 0;
|
||||
font-family: Georgia, 'Times New Roman', serif;
|
||||
font-family: var(--ui-font-display);
|
||||
font-size: clamp(2rem, 4.5vw, 4.5rem);
|
||||
font-weight: 500;
|
||||
letter-spacing: -.05em;
|
||||
@@ -136,7 +136,7 @@
|
||||
background: linear-gradient(105deg, color-mix(in srgb, var(--version-copper) 10%, var(--bg-card)), var(--bg-card));
|
||||
border-color: color-mix(in srgb, var(--version-copper) 35%, var(--bg-card-border));
|
||||
}
|
||||
.version-constructor-bar h2 { margin: 0; color: var(--text-primary); font-family: Georgia, serif; font-size: 1.55rem; }
|
||||
.version-constructor-bar h2 { margin: 0; color: var(--text-primary); font-family: var(--ui-font-display); font-size: 1.55rem; }
|
||||
.version-constructor-bar p { margin: .35rem 0 0; color: var(--text-secondary); font-size: .82rem; }
|
||||
.version-constructor-controls { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; align-items: end; }
|
||||
.version-constructor-field { min-width: 0; }
|
||||
@@ -219,7 +219,7 @@
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
.version-section-head > span { color: var(--version-copper); font-family: Georgia, serif; font-size: 2rem; }
|
||||
.version-section-head > span { color: var(--version-copper); font-family: var(--ui-font-display); font-size: 2rem; }
|
||||
.version-draft-list { display: grid; gap: .8rem; }
|
||||
|
||||
.version-card {
|
||||
@@ -237,7 +237,7 @@
|
||||
right: .5rem;
|
||||
top: -.8rem;
|
||||
color: color-mix(in srgb, var(--version-copper) 12%, transparent);
|
||||
font-family: Georgia, serif;
|
||||
font-family: var(--ui-font-display);
|
||||
font-size: 5rem;
|
||||
}
|
||||
|
||||
@@ -252,7 +252,7 @@
|
||||
place-content: center;
|
||||
text-align: center;
|
||||
}
|
||||
.version-empty > span { color: var(--version-copper); font-family: Georgia, serif; font-size: 4rem; }
|
||||
.version-empty > span { color: var(--version-copper); font-family: var(--ui-font-display); font-size: 4rem; }
|
||||
.version-empty p { max-width: 360px; }
|
||||
|
||||
.version-diff-score {
|
||||
@@ -262,7 +262,7 @@
|
||||
margin: 1rem 0;
|
||||
}
|
||||
.version-diff-score div { padding: .75rem; background: var(--bg-input); border-radius: var(--radius-sm); text-align: center; }
|
||||
.version-diff-score strong { display: block; color: var(--text-primary); font-family: Georgia, serif; font-size: 1.75rem; }
|
||||
.version-diff-score strong { display: block; color: var(--text-primary); font-family: var(--ui-font-display); font-size: 1.75rem; }
|
||||
.version-diff-score span { color: var(--text-secondary); font-size: .68rem; text-transform: uppercase; }
|
||||
|
||||
.version-change-list { display: grid; gap: .55rem; max-height: 390px; overflow: auto; }
|
||||
@@ -292,7 +292,7 @@
|
||||
}
|
||||
.version-modal[hidden] { display: none; }
|
||||
.version-modal-card { position: relative; width: min(560px, 100%); padding: 1.6rem; background: var(--bg-primary); border: 1px solid var(--bg-card-border); border-radius: var(--radius-lg, 20px); box-shadow: 0 30px 80px rgba(0, 0, 0, .45); }
|
||||
.version-modal-card h3 { margin: 0; color: var(--text-primary); font-family: Georgia, serif; font-size: 2rem; }
|
||||
.version-modal-card h3 { margin: 0; color: var(--text-primary); font-family: var(--ui-font-display); font-size: 2rem; }
|
||||
.version-modal-card > p { margin: .6rem 0 1rem; color: var(--text-secondary); line-height: 1.55; }
|
||||
.version-modal-card form { display: grid; gap: .65rem; }
|
||||
.version-modal-card label { color: var(--text-secondary); font-size: .75rem; font-weight: 700; }
|
||||
|
||||
@@ -187,6 +187,7 @@
|
||||
}
|
||||
|
||||
.absence-registry-title {
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-between;
|
||||
gap: 1rem;
|
||||
}
|
||||
@@ -220,21 +221,31 @@
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
min-height: 28px;
|
||||
padding: 0 0.65rem;
|
||||
padding: 0.25rem 0.65rem;
|
||||
flex: 0 0 auto;
|
||||
align-self: flex-start;
|
||||
max-width: 100%;
|
||||
line-height: 1.4;
|
||||
border: 1px solid currentColor;
|
||||
border-radius: 999px;
|
||||
font-size: 0.69rem;
|
||||
font-weight: 800;
|
||||
letter-spacing: 0.03em;
|
||||
white-space: nowrap;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
.absence-status.is-pending { color: #f59e0b; }
|
||||
.absence-status.is-approved { color: #fb7185; }
|
||||
.absence-status.is-approved { color: #34d399; }
|
||||
.absence-status.is-resolved { color: #34d399; }
|
||||
.absence-status.is-rejected,
|
||||
.absence-status.is-cancelled { color: var(--text-secondary); }
|
||||
|
||||
[data-theme="light"] .absence-status.is-pending { color: #92400e; }
|
||||
[data-theme="light"] .absence-status.is-approved,
|
||||
[data-theme="light"] .absence-status.is-resolved { color: #047857; }
|
||||
.absence-status.is-rejected { color: #fb7185; }
|
||||
[data-theme="light"] .absence-status.is-rejected { color: #be123c; }
|
||||
|
||||
.absence-registry-buttons {
|
||||
justify-content: flex-end;
|
||||
flex-wrap: wrap;
|
||||
@@ -481,7 +492,7 @@ body.absence-wizard-open {
|
||||
|
||||
.teacher-dialogue-grid {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
grid-template-columns: repeat(2, minmax(0, 1fr));
|
||||
gap: 1rem;
|
||||
}
|
||||
|
||||
@@ -604,7 +615,7 @@ body.absence-wizard-open {
|
||||
|
||||
.teacher-dialogue-item {
|
||||
display: grid;
|
||||
grid-template-columns: 7px minmax(0, 1fr) minmax(180px, .42fr);
|
||||
grid-template-columns: 7px minmax(0, 1fr);
|
||||
gap: .85rem;
|
||||
padding: .85rem;
|
||||
border: 1px solid var(--bg-card-border);
|
||||
@@ -613,6 +624,7 @@ body.absence-wizard-open {
|
||||
}
|
||||
|
||||
.teacher-dialogue-mark {
|
||||
grid-row: 1 / 3;
|
||||
border-radius: 99px;
|
||||
background: #94a3b8;
|
||||
}
|
||||
@@ -631,6 +643,11 @@ body.absence-wizard-open {
|
||||
font-size: .68rem;
|
||||
}
|
||||
|
||||
.teacher-dialogue-copy {
|
||||
min-width: 0;
|
||||
overflow-wrap: anywhere;
|
||||
}
|
||||
|
||||
.teacher-dialogue-copy h3 {
|
||||
margin: .22rem 0;
|
||||
font-size: .92rem;
|
||||
@@ -668,17 +685,32 @@ body.absence-wizard-open {
|
||||
.teacher-dialogue-copy ol { display: grid; gap: .3rem; padding-left: 1.15rem; }
|
||||
|
||||
.teacher-dialogue-action {
|
||||
grid-column: 2;
|
||||
min-width: 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: flex-end;
|
||||
align-items: stretch;
|
||||
gap: .55rem;
|
||||
}
|
||||
|
||||
.teacher-dialogue-action > div {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
justify-content: flex-start;
|
||||
flex-wrap: wrap;
|
||||
gap: .35rem;
|
||||
gap: .5rem;
|
||||
}
|
||||
|
||||
.teacher-dialogue-action > div > .btn {
|
||||
flex: 1 1 120px;
|
||||
min-width: 0;
|
||||
white-space: normal;
|
||||
line-height: 1.35;
|
||||
padding-block: 0.4rem;
|
||||
}
|
||||
|
||||
.teacher-dialogue-toolbar > .btn {
|
||||
align-self: center;
|
||||
min-height: 44px;
|
||||
}
|
||||
|
||||
.teacher-dialogue-comment {
|
||||
@@ -801,6 +833,6 @@ body.absence-wizard-open {
|
||||
|
||||
.teacher-dialogue-action {
|
||||
grid-column: 2;
|
||||
align-items: flex-start;
|
||||
align-items: stretch;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
<link rel="stylesheet" href="css/teacher-absences.css">
|
||||
<link rel="stylesheet" href="css/schedule-quality.css">
|
||||
<link rel="stylesheet" href="css/schedule-versions.css">
|
||||
<link rel="stylesheet" href="../ui-foundation.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
@@ -78,7 +79,7 @@
|
||||
|
||||
<!-- Раздел: Расписание -->
|
||||
<div class="sidebar-section-divider"></div>
|
||||
<div class="sidebar-section-title" style="font-size: 0.7rem; font-weight: 700; color: rgba(255,255,255,0.4); padding: 0.5rem 1.25rem 0.25rem; text-transform: uppercase; letter-spacing: 0.05em;">Расписание</div>
|
||||
<div class="sidebar-section-title">Расписание</div>
|
||||
|
||||
<a href="#" class="nav-item" data-tab="schedule">
|
||||
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
@@ -149,7 +150,7 @@
|
||||
|
||||
<!-- Раздел: Субъекты и ресурсы -->
|
||||
<div class="sidebar-section-divider"></div>
|
||||
<div class="sidebar-section-title" style="font-size: 0.7rem; font-weight: 700; color: rgba(255,255,255,0.4); padding: 0.5rem 1.25rem 0.25rem; text-transform: uppercase; letter-spacing: 0.05em;">Ресурсы</div>
|
||||
<div class="sidebar-section-title">Ресурсы</div>
|
||||
|
||||
<a href="#" class="nav-item" data-tab="classrooms">
|
||||
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
|
||||
@@ -184,7 +185,7 @@
|
||||
|
||||
<!-- Раздел: Система -->
|
||||
<div class="sidebar-section-divider"></div>
|
||||
<div class="sidebar-section-title" style="font-size: 0.7rem; font-weight: 700; color: rgba(255,255,255,0.4); padding: 0.5rem 1.25rem 0.25rem; text-transform: uppercase; letter-spacing: 0.05em;">Система</div>
|
||||
<div class="sidebar-section-title">Система</div>
|
||||
|
||||
<a href="#" class="nav-item" data-tab="users">
|
||||
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
|
||||
|
||||
@@ -935,7 +935,7 @@ export async function initAcademicCalendar() {
|
||||
<span class="calendar-subject-chip">
|
||||
<span>${escapeHtml(subjectRowLabel(row))}</span>
|
||||
<button type="button"
|
||||
class="calendar-subject-remove"
|
||||
class="btn btn-icon-sm btn-danger-subtle calendar-subject-remove"
|
||||
data-semester="${escapeHtml(String(row.semesterNumber))}"
|
||||
data-subject="${escapeHtml(String(row.subjectId))}"
|
||||
aria-label="Убрать ${escapeHtml(subjectRowLabel(row))}">×</button>
|
||||
|
||||
@@ -94,11 +94,13 @@ export async function initClassrooms() {
|
||||
</button>
|
||||
</div>
|
||||
</td>
|
||||
<td style="text-align: right;">
|
||||
<button class="btn btn-sm btn-secondary classroom-edit-action" data-id="${c.id}">Изменить</button>
|
||||
${c.status === 'ARCHIVED'
|
||||
? `<button class="btn-restore-classroom" data-id="${c.id}" style="margin-left: 0.5rem;">Восстановить</button>`
|
||||
: `<button class="btn btn-sm btn-danger-subtle btn-archive-classroom" data-id="${c.id}" style="margin-left: 0.5rem;">Архивировать</button>`}
|
||||
<td class="table-actions-cell">
|
||||
<div class="table-actions">
|
||||
<button class="btn btn-sm btn-secondary classroom-edit-action" data-id="${c.id}">Изменить</button>
|
||||
${c.status === 'ARCHIVED'
|
||||
? `<button class="btn btn-sm btn-secondary btn-restore-classroom" data-id="${c.id}">Восстановить</button>`
|
||||
: `<button class="btn btn-sm btn-danger-subtle btn-archive-classroom" data-id="${c.id}">Архивировать</button>`}
|
||||
</div>
|
||||
</td>
|
||||
</tr>`;
|
||||
}).join('');
|
||||
|
||||
@@ -333,7 +333,7 @@ export async function initGroups() {
|
||||
<button class="btn btn-sm btn-secondary btn-manage-subgroups group-action-btn" data-id="${group.id}">Подгруппы</button>
|
||||
<button class="btn btn-sm btn-secondary btn-manage-calendar group-action-btn" data-id="${group.id}">Календарь</button>
|
||||
${group.status === 'ARCHIVED'
|
||||
? `<button class="btn-restore-group group-action-btn" data-id="${group.id}">Восстановить</button>`
|
||||
? `<button class="btn btn-sm btn-secondary btn-restore-group group-action-btn" data-id="${group.id}">Восстановить</button>`
|
||||
: `<button class="btn btn-sm btn-danger-subtle btn-archive-group group-action-btn" data-id="${group.id}">Архив</button>`}
|
||||
</div>
|
||||
</td>
|
||||
|
||||
@@ -865,7 +865,7 @@ export async function initScheduleView() {
|
||||
const editButton = canEditScheduleOverrides(role) && lesson.scheduleRuleSlotId && sourceDate
|
||||
? `
|
||||
<button type="button"
|
||||
class="schedule-override-edit"
|
||||
class="btn btn-sm btn-secondary schedule-override-edit"
|
||||
data-schedule-override-edit
|
||||
data-base-rule-slot-id="${escapeHtml(lesson.scheduleRuleSlotId)}"
|
||||
data-lesson-date="${escapeHtml(sourceDate)}">
|
||||
|
||||
@@ -990,7 +990,7 @@ export async function initSchedule() {
|
||||
${subgroupText ? `<small>${escapeHtml(subgroupText)}</small>` : ''}
|
||||
${meta ? `<small>${escapeHtml(meta)}</small>` : ''}
|
||||
<button type="button"
|
||||
class="schedule-visual-edit-rule"
|
||||
class="btn btn-icon-sm btn-ghost schedule-visual-edit-rule"
|
||||
data-rule-id="${escapeHtml(String(lesson.ruleId))}"
|
||||
data-slot-id="${escapeHtml(String(lesson.slotId || ''))}"
|
||||
data-slot-index="${escapeHtml(String(lesson.slotIndex ?? ''))}"
|
||||
|
||||
@@ -86,7 +86,7 @@ export async function initUsers() {
|
||||
<td><span class="badge ${ROLE_BADGE[u.role] || ''}">${ROLE_LABELS[u.role] || escapeHtml(u.role)}</span></td>
|
||||
<td>
|
||||
${u.status === 'ARCHIVED'
|
||||
? `<button class="btn-restore-user" data-id="${u.id}">Восстановить</button>`
|
||||
? `<button class="btn btn-sm btn-secondary btn-restore-user" data-id="${u.id}">Восстановить</button>`
|
||||
: `<button class="btn btn-sm btn-danger-subtle btn-archive-user" data-id="${u.id}">Архивировать</button>`}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -61,7 +61,7 @@ html {
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
|
||||
font-family: var(--ui-font-sans, 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);
|
||||
background: var(--bg-primary);
|
||||
color: var(--text-primary);
|
||||
min-height: 100vh;
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
<link rel="stylesheet" href="../css/components.css">
|
||||
<link rel="stylesheet" href="css/main.css">
|
||||
<link rel="stylesheet" href="css/layout.css">
|
||||
<link rel="stylesheet" href="../../ui-foundation.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
@@ -108,7 +108,7 @@
|
||||
<h3 id="time-slot-scope-modal-title">Новая ручная сетка</h3>
|
||||
<p class="settings-modal-subtitle">Создайте отдельную сетку времени, которую затем можно назначать датам в календарном графике.</p>
|
||||
</div>
|
||||
<button type="button" class="btn btn-icon-sm btn-secondary settings-modal-close" id="time-slot-scope-modal-close" aria-label="Закрыть">
|
||||
<button type="button" class="btn btn-icon-md btn-ghost settings-modal-close" id="time-slot-scope-modal-close" aria-label="Закрыть окно">
|
||||
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
|
||||
<line x1="18" y1="6" x2="6" y2="18"></line>
|
||||
<line x1="6" y1="6" x2="18" y2="18"></line>
|
||||
|
||||
@@ -273,7 +273,7 @@
|
||||
<div class="modal-overlay" id="calendar-day-dialog">
|
||||
<div class="modal-content card calendar-day-dialog-card">
|
||||
<h2>Ячейка графика</h2>
|
||||
<button class="modal-close" id="calendar-day-dialog-close">×</button>
|
||||
<button type="button" class="btn btn-icon-md btn-ghost modal-close" id="calendar-day-dialog-close" aria-label="Закрыть окно">×</button>
|
||||
<div class="calendar-day-dialog-grid">
|
||||
<div>
|
||||
<span>Дата</span>
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
<div class="modal-overlay" id="modal-edit-classroom">
|
||||
<div class="modal-content card">
|
||||
<h2>Редактировать аудиторию</h2>
|
||||
<button class="modal-close" id="modal-edit-classroom-close">×</button>
|
||||
<button type="button" class="btn btn-icon-md btn-ghost modal-close" id="modal-edit-classroom-close" aria-label="Закрыть окно">×</button>
|
||||
<form id="edit-classroom-form">
|
||||
<input type="hidden" id="edit-classroom-id">
|
||||
<div class="form-row" style="margin-top: 1rem;">
|
||||
@@ -116,7 +116,7 @@
|
||||
<div class="modal-content card" style="max-width: 600px; width: 90%;">
|
||||
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem;">
|
||||
<h2>Справочник оборудования</h2>
|
||||
<button class="modal-close" id="modal-manage-equipments-close" style="position: static; font-size: 2rem; background: none; border: none; cursor: pointer; color: var(--text-secondary);">×</button>
|
||||
<button type="button" class="btn btn-icon-md btn-ghost modal-close modal-close--static" id="modal-manage-equipments-close" aria-label="Закрыть окно">×</button>
|
||||
</div>
|
||||
|
||||
<!-- Форма добавления -->
|
||||
|
||||
@@ -91,7 +91,7 @@
|
||||
<!-- Свободные аудитории -->
|
||||
<div class="card dashboard-compact-card">
|
||||
<h3 class="dashboard-card-title">Свободные аудитории (ближайшие)</h3>
|
||||
<div id="free-classrooms-list" class="dashboard-badge-list">
|
||||
<div id="free-classrooms-list" class="dashboard-badge-list" tabindex="0" role="region" aria-label="Свободные аудитории">
|
||||
<div style="color: var(--text-secondary); font-size: 0.9rem;">Загрузка...</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -118,7 +118,7 @@
|
||||
<div class="modal-overlay" id="modal-edit-group">
|
||||
<div class="modal-content card edit-group-modal">
|
||||
<h2>Редактировать группу</h2>
|
||||
<button class="modal-close" id="modal-edit-group-close">×</button>
|
||||
<button type="button" class="btn btn-icon-md btn-ghost modal-close" id="modal-edit-group-close" aria-label="Закрыть окно">×</button>
|
||||
<form id="edit-group-form">
|
||||
<input type="hidden" id="edit-group-id">
|
||||
<div class="form-row edit-group-form-row edit-group-form-row-main">
|
||||
@@ -177,7 +177,7 @@
|
||||
<h2>Подгруппы группы</h2>
|
||||
<div id="subgroups-group-context" style="color: var(--text-secondary); font-size: 0.9rem; margin-top: 0.25rem;"></div>
|
||||
</div>
|
||||
<button class="modal-close" id="modal-manage-subgroups-close" style="position: static; font-size: 2rem; background: none; border: none; cursor: pointer; color: var(--text-secondary);">×</button>
|
||||
<button type="button" class="btn btn-icon-md btn-ghost modal-close modal-close--static" id="modal-manage-subgroups-close" aria-label="Закрыть окно">×</button>
|
||||
</div>
|
||||
|
||||
<!-- Форма -->
|
||||
@@ -233,7 +233,7 @@
|
||||
<h2>Календарные графики группы</h2>
|
||||
<div id="calendar-group-context" style="color: var(--text-secondary); font-size: 0.9rem; margin-top: 0.25rem;"></div>
|
||||
</div>
|
||||
<button class="modal-close" id="modal-manage-calendar-close" style="position: static; font-size: 2rem; background: none; border: none; cursor: pointer; color: var(--text-secondary);">×</button>
|
||||
<button type="button" class="btn btn-icon-md btn-ghost modal-close modal-close--static" id="modal-manage-calendar-close" aria-label="Закрыть окно">×</button>
|
||||
</div>
|
||||
|
||||
<!-- Форма -->
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
|
||||
<div class="version-modal" id="version-modal" hidden>
|
||||
<div class="version-modal-card" role="dialog" aria-modal="true" aria-labelledby="version-modal-title">
|
||||
<button type="button" class="version-modal-close" id="version-modal-close" aria-label="Закрыть">×</button>
|
||||
<button type="button" class="btn btn-icon-md btn-ghost version-modal-close" id="version-modal-close" aria-label="Закрыть окно">×</button>
|
||||
<span class="version-eyebrow" id="version-modal-kicker">Новая операция</span>
|
||||
<h3 id="version-modal-title">Версия расписания</h3>
|
||||
<p id="version-modal-copy"></p>
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
|
||||
<div class="version-modal schedule-draft-modal" id="schedule-draft-modal" hidden>
|
||||
<div class="version-modal-card" role="dialog" aria-modal="true" aria-labelledby="schedule-draft-title">
|
||||
<button type="button" class="version-modal-close" id="schedule-draft-close" aria-label="Закрыть">×</button>
|
||||
<button type="button" class="btn btn-icon-md btn-ghost version-modal-close" id="schedule-draft-close" aria-label="Закрыть окно">×</button>
|
||||
<span class="version-eyebrow">Новая рабочая копия</span>
|
||||
<h3 id="schedule-draft-title">Создать черновик</h3>
|
||||
<p id="schedule-draft-copy">Все правила выбранного расписания будут скопированы.</p>
|
||||
@@ -152,7 +152,7 @@
|
||||
|
||||
<div class="modal-overlay schedule-conflict-modal" id="schedule-conflict-modal" role="dialog" aria-modal="true" aria-hidden="true">
|
||||
<div class="modal-content schedule-conflict-card">
|
||||
<button type="button" class="modal-close" id="schedule-conflict-close" aria-label="Закрыть окно">×</button>
|
||||
<button type="button" class="btn btn-icon-md btn-ghost modal-close" id="schedule-conflict-close" aria-label="Закрыть окно">×</button>
|
||||
<div class="schedule-conflict-head">
|
||||
<span class="schedule-conflict-kicker">Конфликт слота</span>
|
||||
<h2>Освободите место для нового правила</h2>
|
||||
@@ -190,7 +190,7 @@
|
||||
|
||||
<div class="modal-overlay schedule-move-slot-modal" id="schedule-move-slot-modal" role="dialog" aria-modal="true" aria-hidden="true">
|
||||
<div class="modal-content schedule-move-slot-card">
|
||||
<button type="button" class="modal-close" id="schedule-move-slot-close" aria-label="Закрыть окно">×</button>
|
||||
<button type="button" class="btn btn-icon-md btn-ghost modal-close" id="schedule-move-slot-close" aria-label="Закрыть окно">×</button>
|
||||
<div class="schedule-conflict-head">
|
||||
<span class="schedule-conflict-kicker">Перенос слота</span>
|
||||
<h2 id="schedule-move-slot-title">Изменить день и пару</h2>
|
||||
|
||||
@@ -75,7 +75,7 @@
|
||||
<h2>Преподаватели дисциплины</h2>
|
||||
<div id="subject-teachers-context" style="color: var(--text-secondary); font-size: 0.9rem; margin-top: 0.25rem;"></div>
|
||||
</div>
|
||||
<button class="modal-close" id="modal-manage-teachers-close" style="position: static; font-size: 2rem; background: none; border: none; cursor: pointer; color: var(--text-secondary);">×</button>
|
||||
<button type="button" class="btn btn-icon-md btn-ghost modal-close modal-close--static" id="modal-manage-teachers-close" aria-label="Закрыть окно">×</button>
|
||||
</div>
|
||||
|
||||
<!-- Форма -->
|
||||
|
||||
@@ -169,7 +169,7 @@
|
||||
<div class="modal-overlay" id="modal-edit-department">
|
||||
<div class="modal-content card">
|
||||
<h2>Редактирование кафедры</h2>
|
||||
<button class="modal-close" id="modal-edit-department-close">×</button>
|
||||
<button type="button" class="btn btn-icon-md btn-ghost modal-close" id="modal-edit-department-close" aria-label="Закрыть окно">×</button>
|
||||
<form id="edit-department-form">
|
||||
<input type="hidden" id="edit-dept-id">
|
||||
<div class="form-row">
|
||||
@@ -192,7 +192,7 @@
|
||||
<div class="modal-overlay" id="modal-edit-specialty">
|
||||
<div class="modal-content card">
|
||||
<h2>Редактирование специальности</h2>
|
||||
<button class="modal-close" id="modal-edit-specialty-close">×</button>
|
||||
<button type="button" class="btn btn-icon-md btn-ghost modal-close" id="modal-edit-specialty-close" aria-label="Закрыть окно">×</button>
|
||||
<form id="edit-specialty-form">
|
||||
<input type="hidden" id="edit-spec-id">
|
||||
<div class="form-row">
|
||||
@@ -219,7 +219,7 @@
|
||||
<h2>Профили обучения</h2>
|
||||
<div id="profiles-spec-context" style="color: var(--text-secondary); font-size: 0.9rem; margin-top: 0.25rem;"></div>
|
||||
</div>
|
||||
<button class="modal-close" id="modal-manage-profiles-close" style="position: static; font-size: 2rem; background: none; border: none; cursor: pointer; color: var(--text-secondary);">×</button>
|
||||
<button type="button" class="btn btn-icon-md btn-ghost modal-close modal-close--static" id="modal-manage-profiles-close" aria-label="Закрыть окно">×</button>
|
||||
</div>
|
||||
|
||||
<!-- Форма создания/редактирования профиля -->
|
||||
|
||||
Reference in New Issue
Block a user