Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 3aab0b826b | |||
| 6e03bc997c | |||
| f04bb1843c |
@@ -19,8 +19,8 @@ android {
|
|||||||
applicationId "ru.ua1zbe.bus127"
|
applicationId "ru.ua1zbe.bus127"
|
||||||
minSdk 26
|
minSdk 26
|
||||||
targetSdk 34
|
targetSdk 34
|
||||||
versionCode 8
|
versionCode 10
|
||||||
versionName "2.6"
|
versionName "2.6.1"
|
||||||
}
|
}
|
||||||
|
|
||||||
buildTypes {
|
buildTypes {
|
||||||
|
|||||||
@@ -255,13 +255,17 @@ let currentStop = "Полярные Зори";
|
|||||||
// Date#getDay(): 0 — воскресенье, 6 — суббота
|
// Date#getDay(): 0 — воскресенье, 6 — суббота
|
||||||
function dayKeyFor(dow){ return dow===0 ? "sunday" : dow===6 ? "saturday" : "weekday"; }
|
function dayKeyFor(dow){ return dow===0 ? "sunday" : dow===6 ? "saturday" : "weekday"; }
|
||||||
|
|
||||||
|
// Карточки ближайших рейсов всегда показывают реальный сегодняшний день
|
||||||
|
function todayKey(){ return dayKeyFor(nowMs().day); }
|
||||||
|
|
||||||
|
// Выбор пользователя — только для полного расписания
|
||||||
function sched(){ return SCHEDULES[activeDay]; }
|
function sched(){ return SCHEDULES[activeDay]; }
|
||||||
|
|
||||||
function render(){
|
function render(){
|
||||||
const now = nowMs();
|
const now = nowMs();
|
||||||
const curMin = now.hour*60 + now.minute;
|
const curMin = now.hour*60 + now.minute;
|
||||||
const dirs = DIRECTIONS[currentStop];
|
const dirs = DIRECTIONS[currentStop];
|
||||||
const data = sched();
|
const data = SCHEDULES[todayKey()];
|
||||||
document.getElementById("dirBox").innerHTML = dirs.map(d=>{
|
document.getElementById("dirBox").innerHTML = dirs.map(d=>{
|
||||||
const upcoming = data
|
const upcoming = data
|
||||||
.map((r,ri)=>{
|
.map((r,ri)=>{
|
||||||
@@ -303,12 +307,12 @@ function renderDay(){
|
|||||||
document.getElementById("dayBadge").innerHTML = `Сегодня <b>${DAYS[dow]}</b>`;
|
document.getElementById("dayBadge").innerHTML = `Сегодня <b>${DAYS[dow]}</b>`;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Подсветка выбранного типа дня и перерисовка расписания
|
// Подсветка выбранного типа дня. Таблица полного расписания перерисовывается,
|
||||||
|
// карточки ближайших рейсов не трогаем — они всегда на сегодня.
|
||||||
function selectDay(key){
|
function selectDay(key){
|
||||||
activeDay = key;
|
activeDay = key;
|
||||||
document.querySelectorAll("#dayPick button").forEach(b=>
|
document.querySelectorAll("#dayPick button").forEach(b=>
|
||||||
b.classList.toggle("active", b.dataset.day === key));
|
b.classList.toggle("active", b.dataset.day === key));
|
||||||
render();
|
|
||||||
renderTable();
|
renderTable();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -342,9 +346,9 @@ document.getElementById("fullBtn").addEventListener("click",()=>{
|
|||||||
b.classList.toggle("open", !open);
|
b.classList.toggle("open", !open);
|
||||||
});
|
});
|
||||||
|
|
||||||
let activeDay = dayKeyFor(nowMs().day); // по умолчанию — реальный день недели
|
let activeDay = todayKey(); // по умолчанию — реальный день недели
|
||||||
selectDay(activeDay);
|
selectDay(activeDay);
|
||||||
tickClock(); renderDay();
|
tickClock(); renderDay(); render();
|
||||||
setInterval(tickClock,1000);
|
setInterval(tickClock,1000);
|
||||||
setInterval(render,30000);
|
setInterval(render,30000);
|
||||||
setInterval(renderDay,60000);
|
setInterval(renderDay,60000);
|
||||||
|
|||||||
@@ -255,13 +255,17 @@ let currentStop = "Полярные Зори";
|
|||||||
// Date#getDay(): 0 — воскресенье, 6 — суббота
|
// Date#getDay(): 0 — воскресенье, 6 — суббота
|
||||||
function dayKeyFor(dow){ return dow===0 ? "sunday" : dow===6 ? "saturday" : "weekday"; }
|
function dayKeyFor(dow){ return dow===0 ? "sunday" : dow===6 ? "saturday" : "weekday"; }
|
||||||
|
|
||||||
|
// Карточки ближайших рейсов всегда показывают реальный сегодняшний день
|
||||||
|
function todayKey(){ return dayKeyFor(nowMs().day); }
|
||||||
|
|
||||||
|
// Выбор пользователя — только для полного расписания
|
||||||
function sched(){ return SCHEDULES[activeDay]; }
|
function sched(){ return SCHEDULES[activeDay]; }
|
||||||
|
|
||||||
function render(){
|
function render(){
|
||||||
const now = nowMs();
|
const now = nowMs();
|
||||||
const curMin = now.hour*60 + now.minute;
|
const curMin = now.hour*60 + now.minute;
|
||||||
const dirs = DIRECTIONS[currentStop];
|
const dirs = DIRECTIONS[currentStop];
|
||||||
const data = sched();
|
const data = SCHEDULES[todayKey()];
|
||||||
document.getElementById("dirBox").innerHTML = dirs.map(d=>{
|
document.getElementById("dirBox").innerHTML = dirs.map(d=>{
|
||||||
const upcoming = data
|
const upcoming = data
|
||||||
.map((r,ri)=>{
|
.map((r,ri)=>{
|
||||||
@@ -303,12 +307,12 @@ function renderDay(){
|
|||||||
document.getElementById("dayBadge").innerHTML = `Сегодня <b>${DAYS[dow]}</b>`;
|
document.getElementById("dayBadge").innerHTML = `Сегодня <b>${DAYS[dow]}</b>`;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Подсветка выбранного типа дня и перерисовка расписания
|
// Подсветка выбранного типа дня. Таблица полного расписания перерисовывается,
|
||||||
|
// карточки ближайших рейсов не трогаем — они всегда на сегодня.
|
||||||
function selectDay(key){
|
function selectDay(key){
|
||||||
activeDay = key;
|
activeDay = key;
|
||||||
document.querySelectorAll("#dayPick button").forEach(b=>
|
document.querySelectorAll("#dayPick button").forEach(b=>
|
||||||
b.classList.toggle("active", b.dataset.day === key));
|
b.classList.toggle("active", b.dataset.day === key));
|
||||||
render();
|
|
||||||
renderTable();
|
renderTable();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -342,9 +346,9 @@ document.getElementById("fullBtn").addEventListener("click",()=>{
|
|||||||
b.classList.toggle("open", !open);
|
b.classList.toggle("open", !open);
|
||||||
});
|
});
|
||||||
|
|
||||||
let activeDay = dayKeyFor(nowMs().day); // по умолчанию — реальный день недели
|
let activeDay = todayKey(); // по умолчанию — реальный день недели
|
||||||
selectDay(activeDay);
|
selectDay(activeDay);
|
||||||
tickClock(); renderDay();
|
tickClock(); renderDay(); render();
|
||||||
setInterval(tickClock,1000);
|
setInterval(tickClock,1000);
|
||||||
setInterval(render,30000);
|
setInterval(render,30000);
|
||||||
setInterval(renderDay,60000);
|
setInterval(renderDay,60000);
|
||||||
|
|||||||
Reference in New Issue
Block a user