CANLI SAAT
@@ -30,11 +30,11 @@ export function renderDesktop(selectedCity = "Edremit", pb) {
${dateStr}
-
+
-
`;
@@ -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 = `
`;
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) {