Додана сторінка "Розклад зібрань"

Перероблен генератор карточок територій APІ
This commit is contained in:
2025-11-22 20:17:50 +02:00
parent 04f39da611
commit 4b96ef0806
50 changed files with 1486 additions and 494 deletions

View File

@@ -0,0 +1,384 @@
<div class="page-schedule-list">
<div class="buttons-list" id="buttons-list"></div>
<div>
<span>Тиждень від 03.10.2025</span>
<div id="list">
<details class="card">
<summary>
<span>Життя і служіння</span>
</summary>
<div>
<div class="column">
<div class="row">
<div class="block_info">
<p class="c0">Ведучий</p>
<h2><span title="Сервісна інформація">1.1</span>Тест</h2>
</div>
<div class="block_info">
<p class="c0">Молитва</p>
<h2><span title="Сервісна інформація">1.2</span>Тест</h2>
</div>
</div>
</div>
<hr>
<div class="column">
<span class="c1">Скарби з Божого слова</span>
<div class="block_info">
<p class="c1">Промова</p>
<h2><span title="Сервісна інформація">2</span>Тест</h2>
</div>
<div class="block_info">
<p class="c1">Перлини</p>
<h2><span title="Сервісна інформація">3</span>Тест</h2>
</div>
</div>
<hr>
<div class="column">
<div class="block_separator">
<p class="c5">Головний зал</p>
<h2><span title="Сервісна інформація">4</span>Тест</h2>
</div>
<div class="block_info">
<p class="c1">Читання Біблії</p>
<h2><span title="Сервісна інформація">5</span>Тест</h2>
</div>
<span class="c2">Вдосконалюймо своє служіння</span>
<div class="block_info">
<p class="c2">Починаємо розмову</p>
<h2><span title="Сервісна інформація">6.1</span>Тест</h2>
<h2><span title="Сервісна інформація">6.2</span>Тест</h2>
</div>
<div class="block_info">
<p class="c2">Розвиваємо інтерес</p>
<h2><span title="Сервісна інформація">7.1</span>Тест</h2>
<h2><span title="Сервісна інформація">7.2</span>Тест</h2>
</div>
<div class="block_info">
<p class="c2">Підготовка учнів</p>
<h2><span title="Сервісна інформація">8.1</span>Тест</h2>
<h2><span title="Сервісна інформація">8.2</span>Тест</h2>
</div>
<div class="block_info">
<p class="c2">Пояснюємо свої переконання</p>
<h2><span title="Сервісна інформація">9.1</span>Тест</h2>
<h2><span title="Сервісна інформація">9.2</span>Тест</h2>
</div>
</div>
<hr>
<div class="column">
<div class="block_separator">
<p class="c5">Додатковий клас</p>
<h2><span title="Сервісна інформація">10</span>Тест</h2>
</div>
<div class="block_info">
<p class="c1">Читання Біблії</p>
<h2><span title="Сервісна інформація">11</span>Тест</h2>
</div>
<span class="c2">Вдосконалюймо своє служіння</span>
<div class="block_info">
<p class="c2">Починаємо розмову</p>
<h2><span title="Сервісна інформація">12.1</span>Тест</h2>
<h2><span title="Сервісна інформація">12.2</span>Тест</h2>
</div>
<div class="block_info">
<p class="c2">Розвиваємо інтерес</p>
<h2><span title="Сервісна інформація">13.1</span>Тест</h2>
<h2><span title="Сервісна інформація">13.2</span>Тест</h2>
</div>
<div class="block_info">
<p class="c2">Підготовка учнів</p>
<h2><span title="Сервісна інформація">14.1</span>Тест</h2>
<h2><span title="Сервісна інформація">14.2</span>Тест</h2>
</div>
<div class="block_info">
<p class="c2">Пояснюємо свої переконання</p>
<h2><span title="Сервісна інформація">15.1</span>Тест</h2>
<h2><span title="Сервісна інформація">15.2</span>Тест</h2>
</div>
</div>
<hr>
<div class="column">
<div class="block_separator">
<p class="c5">Додатковий клас 2</p>
<h2><span title="Сервісна інформація">16</span>Тест</h2>
</div>
<div class="block_info">
<p class="c1">Читання Біблії</p>
<h2><span title="Сервісна інформація">17</span>Тест</h2>
</div>
<span class="c2">Вдосконалюймо своє служіння</span>
<div class="block_info">
<p class="c2">Починаємо розмову</p>
<h2><span title="Сервісна інформація">18.1</span>Тест</h2>
<h2><span title="Сервісна інформація">18.2</span>Тест</h2>
</div>
<div class="block_info">
<p class="c2">Розвиваємо інтерес</p>
<h2><span title="Сервісна інформація">19.1</span>Тест</h2>
<h2><span title="Сервісна інформація">19.2</span>Тест</h2>
</div>
<div class="block_info">
<p class="c2">Підготовка учнів</p>
<h2><span title="Сервісна інформація">20.1</span>Тест</h2>
<h2><span title="Сервісна інформація">20.2</span>Тест</h2>
</div>
<div class="block_info">
<p class="c2">Пояснюємо свої переконання</p>
<h2><span title="Сервісна інформація">21.1</span>Тест</h2>
<h2><span title="Сервісна інформація">21.2</span>Тест</h2>
</div>
</div>
<hr>
<div class="column">
<span class="c3">Християнське життя</span>
<div class="block_info">
<p class="c3">Пункт 1</p>
<h2><span title="Сервісна інформація">22</span>Тест</h2>
</div>
<div class="block_info">
<p class="c3">Пункт 2</p>
<h2><span title="Сервісна інформація">23</span>Тест</h2>
</div>
<div class="block_info">
<p class="c3">Пункт 3</p>
<h2><span title="Сервісна інформація">24</span>Тест</h2>
</div>
<div class="row">
<div class="block_info">
<p class="c3">Вивчення</p>
<h2><span title="Сервісна інформація">25.1</span>Тест</h2>
</div>
<div class="block_info">
<p class="c3">Читець</p>
<h2><span title="Сервісна інформація">25.2</span>Тест</h2>
</div>
</div>
<div class="block_info">
<p class="c3">Молитва</p>
<h2><span title="Сервісна інформація">26</span>Тест</h2>
</div>
</div>
</div>
<div>
<div class="column">
<span class="c5">Прибирання</span>
<div class="block_info">
<p class="c5">Група</p>
<h2>1</h2>
</div>
</div>
</div>
<div>
<div class="column">
<span class="c6">Озвучення</span>
<div class="block_info">
<p class="c6">Сцена</p>
<h2>Тест</h2>
</div>
<div class="block_info">
<p class="c6">Відео</p>
<h2>Тест</h2>
</div>
<div class="block_info">
<p class="c6">Аудіо</p>
<h2>Тест</h2>
</div>
<div class="block_info">
<p class="c6">Мікрофон 1</p>
<h2>Тест</h2>
</div>
<div class="block_info">
<p class="c6">Мікрофон 2</p>
<h2>Тест</h2>
</div>
</div>
</div>
<div>
<div class="column">
<span class="c7">Обслуговування</span>
<div class="block_info">
<p class="c7">Головний вхід</p>
<h2>Тест</h2>
</div>
<div class="block_info">
<p class="c7">Запасний вхід</p>
<h2>Тест</h2>
</div>
</div>
</div>
</details>
<details class="card">
<summary>
<span>Вивчення «Вартової башти»</span>
</summary>
<div>
<div class="column">
<div class="row">
<div class="block_info">
<p class="c4">Ведучий</p>
<h2><span title="Сервісна інформація">30.1</span>Тест</h2>
</div>
<div class="block_info">
<p class="c4">Пісня</p>
<h2><span title="Сервісна інформація">30.2</span>10</h2>
</div>
</div>
<div class="row">
<div class="block_info">
<p class="c4">Молитва</p>
<h2><span title="Сервісна інформація">31</span>Тест</h2>
</div>
</div>
</div>
<hr>
<div class="column">
<div class="block_info">
<p class="c4">Промовець</p>
<h2><span title="Сервісна інформація">32.1</span>Тест</h2>
</div>
<div class="block_info">
<p class="c4">Тема</p>
<h2><span title="Сервісна інформація">32.2</span>Тест</h2>
</div>
</div>
<hr>
<div class="column">
<div class="row">
<div class="block_info">
<p class="c4">Вивчення</p>
<h2><span title="Сервісна інформація">33.1</span>Тест</h2>
</div>
<div class="block_info">
<p class="c4">Читець</p>
<h2><span title="Сервісна інформація">33.2</span>Тест</h2>
</div>
</div>
<div class="block_info">
<p class="c4">Молитва</p>
<h2><span title="Сервісна інформація">34</span>Тест</h2>
</div>
</div>
</div>
<div>
<div class="column">
<span class="c5">Прибирання</span>
<div class="block_info">
<p class="c5">Група</p>
<h2>1</h2>
</div>
</div>
</div>
<div>
<div class="column">
<span class="c6">Озвучення</span>
<div class="block_info">
<p class="c6">Сцена</p>
<h2>Тест</h2>
</div>
<div class="block_info">
<p class="c6">Відео</p>
<h2>Тест</h2>
</div>
<div class="block_info">
<p class="c6">Аудіо</p>
<h2>Тест</h2>
</div>
<div class="block_info">
<p class="c6">Мікрофон 1</p>
<h2>Тест</h2>
</div>
<div class="block_info">
<p class="c6">Мікрофон 2</p>
<h2>Тест</h2>
</div>
</div>
</div>
<div>
<div class="column">
<span class="c7">Обслуговування</span>
<div class="block_info">
<p class="c7">Головний вхід</p>
<h2>Тест</h2>
</div>
<div class="block_info">
<p class="c7">Запасний вхід</p>
<h2>Тест</h2>
</div>
</div>
</div>
</details>
</div>
</div>
</div>

View File

@@ -0,0 +1,8 @@
const Schedule_list = {
init: async () => {
let html = await fetch('/lib/pages/schedule/list/index.html').then((response) => response.text());
app.innerHTML = html;
}
}

View File

@@ -0,0 +1,361 @@
.c0 {
background: var(--C0) !important;
color: #ffffff !important;
}
.c1 {
background: var(--C1) !important;
color: #ffffff !important;
}
.c2 {
background: var(--C2) !important;
color: #ffffff !important;
}
.c3 {
background: var(--C3) !important;
color: #ffffff !important;
}
.c4 {
background: var(--C4) !important;
color: #ffffff !important;
}
.c5 {
background: var(--C5) !important;
color: #ffffff !important;
}
.c6 {
background: var(--C6) !important;
color: #ffffff !important;
}
.c7 {
background: var(--C7) !important;
color: #ffffff !important;
}
.c8 {
background: var(--C8) !important;
color: #ffffff !important;
}
.page-schedule-list {
width: calc(100% - 40px);
display: flex;
flex-direction: column;
align-items: stretch;
margin: 20px 20px 0 20px;
}
.page-schedule-list>.buttons-list {
padding: 10px;
margin-bottom: 40px;
background: var(--ColorThemes1);
color: var(--ColorThemes3);
border: 1px solid var(--ColorThemes2);
box-shadow: var(--shadow-l1);
border-radius: var(--border-radius);
overflow: auto;
display: none;
}
.page-schedule-list>.buttons-list>button,
.page-schedule-list>.buttons-list>a {
cursor: pointer;
border-radius: calc(var(--border-radius) - 5px);
padding: 0 10px;
margin-right: 20px;
min-width: fit-content;
min-height: 40px;
background: var(--PrimaryColor);
display: flex;
align-items: center;
justify-content: center;
}
.page-schedule-list>.buttons-list>button>span,
.page-schedule-list>.buttons-list>a>span {
color: var(--PrimaryColorText);
font-size: var(--FontSize3);
font-weight: normal;
}
.page-schedule-list>.buttons-list>button>svg,
.page-schedule-list>.buttons-list>a>svg {
width: 20px;
height: 20px;
fill: var(--PrimaryColorText);
margin-right: 10px;
}
.page-schedule-list>.list-controls {
padding: 10px;
margin: 0px 0 10px 0;
background: var(--ColorThemes1);
color: var(--ColorThemes3);
border: 1px solid var(--ColorThemes2);
box-shadow: var(--shadow-l1);
border-radius: var(--border-radius);
overflow: auto;
display: flex;
}
.page-schedule-list>.list-controls>select {
min-width: 140px;
height: 30px;
background-color: var(--ColorThemes2);
border: 1px solid var(--ColorThemes0);
box-shadow: var(--shadow-l1);
color: var(--ColorThemes3);
font-size: var(--FontSize1);
cursor: pointer;
padding: 0 5px;
margin-right: 10px;
border-radius: calc(var(--border-radius) - 5px - 2px);
}
.page-schedule-list>div {
border-radius: var(--border-radius);
width: 100%;
display: flex;
flex-direction: column;
align-items: stretch;
margin-bottom: 10px;
background: var(--ColorThemes1);
color: var(--ColorThemes3);
border: 1px solid var(--ColorThemes2);
box-shadow: var(--shadow-l1);
}
.page-schedule-list>div>span {
width: calc(100% - 40px);
color: var(--ColorThemes3);
border-radius: var(--border-radius);
font-size: var(--FontSize5);
padding: 20px 20px 10px 20px;
position: relative;
font-weight: 500;
}
.page-schedule-list>div>#list {
width: 100%;
margin: 0;
display: flex;
flex-wrap: wrap;
flex-direction: row;
align-content: flex-start;
justify-content: center;
overflow-y: auto;
align-items: flex-start;
transition: .3s ease;
}
.page-schedule-list>div>#list>.mess-list {
height: 200px;
display: none;
flex-direction: column;
align-items: center;
justify-content: space-evenly;
}
.page-schedule-list>div>#list>.mess-list[data-visible="true"] {
display: flex;
}
.page-schedule-list>div>#list>.mess-list>svg {
width: 100px;
height: 100px;
fill: var(--ColorThemes3);
opacity: 0.7;
}
.page-schedule-list>div>#list>.mess-list>h3 {
font-size: var(--FontSize5);
color: var(--ColorThemes3);
opacity: 0.7;
}
.page-schedule-list>div>#list>.card {
position: relative;
width: 100%;
height: fit-content;
background-color: var(--ColorThemes2);
margin: 10px;
overflow: auto;
border-radius: calc(var(--border-radius) - 5px);
}
.page-schedule-list>div>#list>.card>summary {
width: calc(100% - 40px);
cursor: pointer;
color: var(--ColorThemes3);
border-radius: var(--border-radius);
font-size: var(--FontSize5);
padding: 20px;
position: relative;
display: flex;
justify-content: space-between;
align-items: center;
}
.page-schedule-list>div>#list>.card>summary>span {
font-weight: 500;
width: 100%;
}
.page-schedule-list>div>#list>.card>div {
border: 2px solid var(--ColorThemes3);
margin: 10px;
border-radius: calc(var(--border-radius) - 5px);
width: calc(100% - 24px);
min-width: fit-content;
}
.page-schedule-list .column {
background: var(--ColorThemes1);
border-radius: calc(var(--border-radius) - 5px - 2px);
margin: 10px;
text-align: left;
display: flex;
justify-content: space-between;
flex-direction: column;
}
.page-schedule-list hr {
margin: 10px;
}
.page-schedule-list .column>span {
font-size: var(--FontSize5);
color: var(--ColorThemes3);
background: var(--ColorThemes0);
width: calc(100% - 10px);
padding: 5px 0;
text-align: center;
margin: 5px;
border-radius: calc(var(--border-radius) - 5px - 5px);
}
.page-schedule-list .block_info {
display: flex;
flex-direction: row;
width: 100%;
}
.page-schedule-list .column .block_info>p {
font-size: var(--FontSize4);
color: var(--ColorThemes3);
background: var(--C0);
padding: 5px 10px;
min-width: 110px;
height: auto;
display: flex;
align-items: center;
justify-content: center;
margin: 5px;
border-radius: calc(var(--border-radius) - 5px - 5px);
text-align: center;
}
.page-schedule-list .column .block_info>h2 {
font-size: var(--FontSize3);
color: var(--ColorThemes3);
background: var(--ColorThemes0);
width: 100%;
min-width: 150px;
min-height: 30px;
display: flex;
align-items: center;
justify-content: center;
margin: 5px;
border-radius: calc(var(--border-radius) - 5px - 5px);
position: relative;
}
.page-schedule-list .column .block_info>h2>span{
position: absolute;
left: 5px;
min-width: 10px;
padding: 5px;
height: calc(100% - 20px);
background: var(--PrimaryColor);
color: var(--PrimaryColorText);
display: flex;
align-items: center;
justify-content: center;
border-radius: calc(var(--border-radius) - 12px);
font-size: var(--FontSize1);
cursor: help;
}
.page-schedule-list .column .block_separator {
display: flex;
flex-direction: row;
width: 100%;
}
.page-schedule-list .column .block_separator>p {
font-size: var(--FontSize5);
color: var(--ColorThemes3);
background: var(--C1);
width: 100%;
padding: 5px 10px;
min-width: 110px;
min-height: 30px;
display: flex;
align-items: center;
justify-content: center;
margin: 5px;
border-radius: calc(var(--border-radius) - 5px - 2px);
text-align: center;
}
.page-schedule-list .column .block_separator>h2 {
font-size: var(--FontSize3);
color: var(--ColorThemes3);
background: var(--ColorThemes0);
width: 100%;
padding: 5px 10px;
min-width: 200px;
min-height: 30px;
display: flex;
align-items: center;
justify-content: center;
margin: 5px;
border-radius: calc(var(--border-radius) - 5px - 2px);
text-align: center;
position: relative;
}
.page-schedule-list .column .block_separator>h2>span{
position: absolute;
left: 5px;
min-width: 10px;
padding: 5px;
height: calc(100% - 20px);
background: var(--PrimaryColor);
color: var(--PrimaryColorText);
display: flex;
align-items: center;
justify-content: center;
border-radius: calc(var(--border-radius) - 12px);
font-size: var(--FontSize1);
cursor: help;
}
@media (min-width: 800px) {
.page-schedule-list .column>.row {
display: flex;
justify-content: space-between;
flex-direction: row;
}
.page-schedule-list .column>.row>.block_info:nth-child(2n) {
margin-left: 10px;
}
}