From d533c6a196ad63793a1273a2e58b2ec6f610f6aa Mon Sep 17 00:00:00 2001 From: iontalp Date: Fri, 31 Jul 2026 04:24:10 +0200 Subject: [PATCH] =?UTF-8?q?kaza=20namaz=C4=B1=20hesaplama=20d=C3=BCzeltild?= =?UTF-8?q?i.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/desktop.js | 43 +++++---- src/pages/kaza.js | 197 ++++++++++++++++++++++++++++-------------- src/pages/settings.js | 2 +- 3 files changed, 156 insertions(+), 86 deletions(-) diff --git a/src/pages/desktop.js b/src/pages/desktop.js index 1086c8c..0c445a7 100755 --- a/src/pages/desktop.js +++ b/src/pages/desktop.js @@ -1,4 +1,4 @@ -import { gregorianToHijri, calculateMissedPrayers } from "../utils/hijri.js"; +import { gregorianToHijri } from "../utils/hijri.js"; import { fetchWeather, getWeatherIcon, @@ -21,7 +21,7 @@ export function renderDesktop(selectedCity = "Edremit", pb) {
- +

CANLI SAAT

@@ -30,11 +30,11 @@ export function renderDesktop(selectedCity = "Edremit", pb) {

${dateStr}

- +
- 🎯 KAZA İLERLEMESİ + 📊 KAZA İLERLEMESİ %0
@@ -49,7 +49,7 @@ export function renderDesktop(selectedCity = "Edremit", pb) {
- 📅 HİCRİ TAKVİM + 🌙 HİCRİ TAKVİM

${hijri.day} ${hijri.monthName} ${hijri.year}

${hijri.weekday}

@@ -81,7 +81,6 @@ export function renderDesktop(selectedCity = "Edremit", pb) {
-
`; @@ -106,33 +105,36 @@ export function renderDesktop(selectedCity = "Edremit", pb) { function startClock(container) { const clockEl = container.querySelector("#liveClock"); if (!clockEl) return; - const update = () => { const now = new Date(); clockEl.textContent = now.toLocaleTimeString("tr-TR"); }; - update(); setInterval(update, 1000); } +// PocketBase üzerindeki sabit hedeflere (target_*) göre kaza durumunu okuma async function loadDesktopKazaProgress(container, pb) { const user = pb.authStore.model; if (!user) return; - const birthDate = user.birthDate || user.birthdate; - if (!birthDate) return; - const calc = calculateMissedPrayers(birthDate, user.gender || "male", 12); - let totalMissed = - calc.fajr + calc.dhuhr + calc.asr + calc.maghrib + calc.isha + calc.vitr || - 0; + let totalTarget = 0; let totalCompleted = 0; try { const record = await pb .collection("kaza_logs") .getFirstListItem(`user = "${user.id}"`); + if (record) { + totalTarget = + (record.target_fajr || 0) + + (record.target_dhuhr || 0) + + (record.target_asr || 0) + + (record.target_maghrib || 0) + + (record.target_isha || 0) + + (record.target_vitr || 0); + totalCompleted = (record.fajr || 0) + (record.dhuhr || 0) + @@ -143,10 +145,11 @@ async function loadDesktopKazaProgress(container, pb) { } } catch {} + const remaining = Math.max(0, totalTarget - totalCompleted); const pct = - totalMissed > 0 - ? Math.min(100, Math.round((totalCompleted / totalMissed) * 100)) - : 100; + totalTarget > 0 + ? Math.min(100, Math.round((totalCompleted / totalTarget) * 100)) + : 0; const bar = container.querySelector("#desktopKazaBar"); const pctText = container.querySelector("#desktopKazaPct"); @@ -155,20 +158,23 @@ async function loadDesktopKazaProgress(container, pb) { if (bar) bar.style.width = `${pct}%`; if (pctText) pctText.textContent = `%${pct}`; if (subText) - subText.textContent = `${totalCompleted} kılınan / ${Math.max(0, totalMissed - totalCompleted)} kalan`; + subText.textContent = `${totalCompleted} kılınan / ${remaining} kalan`; } async function loadWeather(container, selectedCity) { const widget = container.querySelector("#weatherWidget"); if (!widget) return; + const data = await fetchWeather(selectedCity); if (!data) { widget.innerHTML = `Hava durumu alınamadı`; return; } + const icon = getWeatherIcon(data.weathercode); const desc = getWeatherDesc(data.weathercode); const temp = Math.round(data.temperature); + widget.innerHTML = `
@@ -188,6 +194,7 @@ async function loadWeather(container, selectedCity) { async function loadImsakiye(container, selectedCity) { const widget = container.querySelector("#imsakiyeWidget"); if (!widget) return; + const times = await fetchPrayerTimes(selectedCity); if (!times) { widget.innerHTML = `Vakitler alınamadı`; diff --git a/src/pages/kaza.js b/src/pages/kaza.js index 5050432..e8b89f7 100755 --- a/src/pages/kaza.js +++ b/src/pages/kaza.js @@ -24,7 +24,7 @@ export function renderKaza(pb) { 📿

Kaza Namazı Sayaç & Takip

-

Tamamladığın vakitler anlık olarak PocketBase hesabında güncellenir.

+

Kaza namazı borçlarınızı sabitleyin ve kıldıkça düşün.

@@ -47,26 +47,38 @@ export function renderKaza(pb) {
` : ` - -
-
- - 🎯 GENEL KAZA BİTİRME ORANI - - %0 + +
+
+
+

Borç Tanımlama

+

Doğum tarihinize göre kaza borcunuzu hesaplayıp veritabanına sabitler.

+
+
-
-
-
-
- Kılınan Toplam: 0 vakit - Kalan Toplam Borç: 0 vakit + +
+
+ + 📊 GENEL KAZA BİTİRME ORANI + + %0 +
+
+
+
+
+ Kılınan Toplam: 0 vakit + Kalan Toplam Borç: 0 vakit +
@@ -76,8 +88,8 @@ export function renderKaza(pb) { (p) => `

${p.name}

-

Kalan: -

-

Kılınan: 0

+

Kalan: -

+

Kılınan: 0

@@ -88,7 +100,7 @@ export function renderKaza(pb) {
-

Kaza Sayacı İşlem

+

Kaza Kıldım / Düzenle