diff options
Diffstat (limited to 'src/components')
| -rw-r--r-- | src/components/KodairaNews.astro | 96 | ||||
| -rw-r--r-- | src/components/ScheduleInteractive.astro | 18 |
2 files changed, 114 insertions, 0 deletions
diff --git a/src/components/KodairaNews.astro b/src/components/KodairaNews.astro index c4a319f..b4a1ab8 100644 --- a/src/components/KodairaNews.astro +++ b/src/components/KodairaNews.astro @@ -35,6 +35,102 @@ const LABEL: Record<CatId, string> = { const posts: Post[] = [ { + date: "10月23日", + cat: "status", + note: "10月7日から発生している障害の状況。暫定サイトで一部の手続きが可能", + links: [{ text: "ホームページの障害状況について", url: X("2113540936579879112") }], + }, + { + date: "10月23日", + cat: "status", + note: "PHPの対策が完了し、こだっこアプリのサービスを再開", + links: [{ text: "こだっこアプリの再開", url: X("2113533380784476198") }], + }, + { + date: "10月23日", + cat: "other", + note: "西部出張所は10月30日(金)臨時休業。11月2日(月)から小川パレット内で業務開始", + links: [{ text: "西部出張所の移転(市のX)", url: X("2113510734760186286") }], + }, + { + date: "10月23日", + cat: "other", + note: "10月25日(日)午前9時から午後5時まで。受診前に医療機関へ確認", + links: [{ text: "休日歯科応急診療", url: X("2113465447488311714") }], + }, + { + date: "10月23日", + cat: "other", + note: "健康センター。準夜19:15〜22:15(年中無休)、休日9:00〜16:45", + links: [{ text: "休日・準夜応急診療(内科・小児科)", url: X("2113465436037664796") }], + }, + { + date: "10月23日", + cat: "event", + note: "10月25日(日)、味の素スタジアムでFC東京vs水戸。小平の日ブースを設置", + links: [{ text: "FC東京「小平の日」(市のX)", url: X("2113420142453678421") }], + }, + { + date: "10月22日", + cat: "status", + note: "PHPの脆弱性でWebサービスの一部が閲覧不可。緊急点検を実施", + links: [{ text: "Webサービスの一時停止について", url: X("2113186095626351015") }], + }, + { + date: "10月22日", + cat: "status", + note: "緊急点検のため、市立学校・学校給食センターのホームページを停止", + links: [ + { text: "学校ホームページの停止について", url: X("2113183575956926631") }, + { text: "詳細(LoGoフォーム)", url: "https://logoform.jp/form/exdH/1861824" }, + ], + }, + { + date: "10月22日", + cat: "status", + note: "10月7日から発生している障害の状況。暫定サイトで一部の手続きが可能", + links: [{ text: "ホームページの障害状況について", url: X("2113178545342095435") }], + }, + { + date: "10月22日", + cat: "procedure", + note: "都市計画マスタープランのパブリックコメントを11月1日まで延長", + links: [ + { text: "意見募集(市のX)", url: X("2113163443574640688") }, + { text: "意見募集フォーム", url: "https://logoform.jp/form/exdH/1840919" }, + ], + }, + { + date: "10月22日", + cat: "other", + note: "近隣9市で魅力を発信。今回は武蔵村山市を紹介", + links: [{ text: "広域連携の取組(市のX)", url: X("2113148348178031035") }], + }, + { + date: "10月22日", + cat: "status", + note: "PHPの脆弱性でこだっこアプリを一時停止。こだっこWEB予約は通常どおり", + links: [{ text: "こだっこアプリの一時停止", url: X("2113118146596835498") }], + }, + { + date: "10月22日", + cat: "meeting", + note: "10月22日(木)午後2時から。追加の議事日程があり、傍聴できない案件も", + links: [{ text: "教育委員会定例会(市のX)", url: X("2113118146605306218") }], + }, + { + date: "10月22日", + cat: "other", + note: "国民健康保険の40歳以上の特定健診は10月31日まで", + links: [{ text: "特定健診の期限(市のX)", url: X("2113103051414524237") }], + }, + { + date: "10月22日", + cat: "event", + note: "10月24日(土)午前10時から午後2時、リサイクルセンター広場(雨天中止)", + links: [{ text: "ごみゼロフリーマーケット(市のX)", url: X("2113057748812259523") }], + }, + { date: "10月21日", cat: "status", note: "10月7日から発生している障害の状況。暫定サイトで一部の手続きが可能", diff --git a/src/components/ScheduleInteractive.astro b/src/components/ScheduleInteractive.astro index 5fb058b..bc26e0a 100644 --- a/src/components/ScheduleInteractive.astro +++ b/src/components/ScheduleInteractive.astro @@ -206,6 +206,24 @@ const months = [...new Set(dateKeys.map((k) => k.slice(0, 7)))].sort(); const today = new Date(); const todayKey = toKey(today.getFullYear(), today.getMonth() + 1, today.getDate()); + + // 開催日がすべて過去のものは「終了」と表示する。 + // 複数回の催しで未来の回が残っているものは対象外。 + for (const entry of entries) { + if (entry.dateText.includes('申込開始')) continue; + if (entry.dates.length === 0) continue; + if (!entry.dates.every((d) => d < todayKey)) continue; + const row = document.getElementById(entry.rowId); + if (!row) continue; + row.classList.add('is-ended'); + if (!row.querySelector('.schedule-ended-badge') && row.cells[0]) { + const badge = document.createElement('span'); + badge.className = 'schedule-ended-badge'; + badge.textContent = '終了'; + row.cells[0].appendChild(badge); + } + } + let selectedDate = byDate.has(todayKey) ? todayKey : dateKeys[0]; let currentMonth = selectedDate.slice(0, 7); let activeCategory = 'all'; |
