mükellef yaşı 12 olarak düzeltildi, masaüstüne ilerleme barı eklendi.

This commit is contained in:
2026-07-29 04:41:55 +02:00
parent 9b62e4b312
commit db33fdd963
4 changed files with 139 additions and 85 deletions
+12 -19
View File
@@ -15,7 +15,7 @@ export function renderKaza(pb) {
const gender = user?.gender || "male";
const html = `
<div class="relative bg-slate-900/70 backdrop-blur-2xl border border-white/10 p-6 md:p-8 rounded-3xl shadow-2xl max-w-4xl w-full h-[85vh] flex flex-col overflow-hidden">
<div class="relative bg-slate-900/80 border border-white/10 p-6 md:p-8 rounded-3xl shadow-2xl max-w-4xl w-full h-[85vh] flex flex-col overflow-hidden">
<button id="closeBtn" class="absolute top-4 right-4 bg-rose-500/20 hover:bg-rose-500/40 text-rose-300 border border-rose-500/30 w-8 h-8 rounded-full flex items-center justify-center font-bold text-xs transition-all">
</button>
@@ -31,17 +31,17 @@ export function renderKaza(pb) {
${
!birthDate
? `
<div class="bg-slate-900/50 border border-white/10 p-6 rounded-2xl my-auto text-center max-w-md mx-auto w-full">
<div class="bg-slate-950/50 border border-white/10 p-6 rounded-2xl my-auto text-center max-w-md mx-auto w-full">
<h3 class="text-base font-bold text-white mb-2">Doğum Tarihi Gerekli</h3>
<p class="text-xs text-slate-400 mb-6">Kaza namazı borcunu hesaplayabilmemiz için profil bilgilerinizi girin.</p>
<form id="profileForm" class="space-y-4">
<div class="text-left">
<label class="block text-xs text-slate-300 mb-1">Doğum Tarihi</label>
<input type="date" id="birthDateInput" required class="w-full bg-slate-950 border border-slate-800 rounded-xl px-4 py-2.5 text-white text-sm focus:border-indigo-500 focus:outline-none" />
<label class="block text-xs text-slate-300 mb-1">Doğum Tarihi ve Saati</label>
<input type="datetime-local" id="birthDateInput" required class="w-full bg-slate-900 border border-slate-800 rounded-xl px-4 py-2.5 text-white text-sm focus:border-indigo-500 focus:outline-none" />
</div>
<div class="text-left">
<label class="block text-xs text-slate-300 mb-1">Cinsiyet</label>
<select id="genderInput" required class="w-full bg-slate-950 border border-slate-800 rounded-xl px-4 py-2.5 text-white text-sm focus:border-indigo-500 focus:outline-none">
<select id="genderInput" required class="w-full bg-slate-900 border border-slate-800 rounded-xl px-4 py-2.5 text-white text-sm focus:border-indigo-500 focus:outline-none">
<option value="male">Erkek</option>
<option value="female">Kadın</option>
</select>
@@ -162,7 +162,6 @@ export function renderKaza(pb) {
};
}
// PocketBase Tek Satır Güncelleme Mantığı
async function updateKazaCount(container, pb, birthDate, gender, direction) {
const prayerId = container.querySelector("#kazaPrayerType").value;
const countInput = container.querySelector("#kazaCount");
@@ -172,15 +171,13 @@ async function updateKazaCount(container, pb, birthDate, gender, direction) {
try {
const userId = pb.authStore.model.id;
// Kullanıcının kaza sayacı kaydı var mı kontrol et
let userRecord = null;
try {
userRecord = await pb
.collection("kaza_logs")
.getFirstListItem(`user = "${userId}"`);
} catch {
// Yoksa ilk kaydı oluştur
userRecord = await pb.collection("kaza_logs").create({
user: userId,
fajr: 0,
@@ -195,7 +192,6 @@ async function updateKazaCount(container, pb, birthDate, gender, direction) {
const currentCompleted = userRecord[prayerId] || 0;
const newCompleted = Math.max(0, currentCompleted + amount);
// Tek satır kaydı güncelle
await pb.collection("kaza_logs").update(userRecord.id, {
[prayerId]: newCompleted,
});
@@ -213,14 +209,14 @@ async function updateKazaCount(container, pb, birthDate, gender, direction) {
console.error("Sayaç güncelleme hatası:", err);
showKazaMsg(
msg,
"Güncelleme başarısız! PocketBase alanlarını ve izinlerini kontrol edin.",
"Güncelleme başarısız! PocketBase alanlarını kontrol edin.",
false,
);
}
}
async function refreshKazaStats(container, pb, birthDate, gender) {
const calc = calculateMissedPrayers(birthDate, gender);
const calc = calculateMissedPrayers(birthDate, gender, 12);
const userId = pb.authStore.model.id;
let userRecord = { fajr: 0, dhuhr: 0, asr: 0, maghrib: 0, isha: 0, vitr: 0 };
@@ -230,17 +226,15 @@ async function refreshKazaStats(container, pb, birthDate, gender) {
.collection("kaza_logs")
.getFirstListItem(`user = "${userId}"`);
if (record) userRecord = record;
} catch (err) {
// Kayıt yoksa sorun değil, varsayılan 0 değerleriyle devam eder
}
} catch (err) {}
let grandTotalMissed = 0;
let grandTotalCompleted = 0;
PRAYERS.forEach((p) => {
const totalMissed = calc[p.id] || 0; // Doğumdan beri olan toplam borç
const completed = userRecord[p.id] || 0; // Kılınan miktar
const remaining = Math.max(0, totalMissed - completed); // Kalan borç
const totalMissed = calc[p.id] || 0;
const completed = userRecord[p.id] || 0;
const remaining = Math.max(0, totalMissed - completed);
grandTotalMissed += totalMissed;
grandTotalCompleted += completed;
@@ -261,7 +255,6 @@ async function refreshKazaStats(container, pb, birthDate, gender) {
}
});
// Genel İlerleme Hesabı
const overallPct =
grandTotalMissed > 0
? Math.min(