PocketBase veri kaydı ve adres düzeltmeleri tamamlandı

This commit is contained in:
M. Batuhan Erkek
2026-01-30 02:51:30 +03:00
parent 87d397c6db
commit 6d46322887

View File

@@ -1,7 +1,6 @@
import PocketBase from 'https://cdnjs.cloudflare.com/ajax/libs/pocketbase/0.21.1/pocketbase.es.mjs'; import PocketBase from 'https://cdnjs.cloudflare.com/ajax/libs/pocketbase/0.21.1/pocketbase.es.mjs';
// 1. PocketBase Bağlantısı // 1. PocketBase Bağlantısı - Güncellendi
// Tarayıcıdaki PocketBase panel adresinle (db. veya pocketbase.) birebir aynı olmalıdır.
const pb = new PocketBase('https://db.batuhanerkek.com'); const pb = new PocketBase('https://db.batuhanerkek.com');
const loginCard = document.getElementById("login-card"); const loginCard = document.getElementById("login-card");
@@ -15,7 +14,6 @@ const tagsList = document.getElementById("tags-list");
let currentTags = []; let currentTags = [];
// Panel Görünümünü Ayarla
function setAuthState(isLoggedIn) { function setAuthState(isLoggedIn) {
if (isLoggedIn) { if (isLoggedIn) {
loginCard.classList.add("hidden"); loginCard.classList.add("hidden");
@@ -27,12 +25,11 @@ function setAuthState(isLoggedIn) {
} }
} }
// 2. Giriş Yapma (PocketBase Auth) // 2. Giriş Yapma
loginForm.addEventListener("submit", async (event) => { loginForm.addEventListener("submit", async (event) => {
event.preventDefault(); event.preventDefault();
const formData = new FormData(loginForm); const formData = new FormData(loginForm);
try { try {
// PocketBase 'users' koleksiyonu üzerinden giriş yapar
await pb.collection('users').authWithPassword( await pb.collection('users').authWithPassword(
formData.get("email"), formData.get("email"),
formData.get("password") formData.get("password")
@@ -50,15 +47,14 @@ logoutBtn.addEventListener("click", () => {
setAuthState(false); setAuthState(false);
}); });
// 4. Yeni Yazı Kaydetme // 4. Yeni Yazı Kaydetme - JSON.stringify kaldırıldı
blogForm.addEventListener("submit", async (event) => { blogForm.addEventListener("submit", async (event) => {
event.preventDefault(); event.preventDefault();
const formData = new FormData(blogForm); const formData = new FormData(blogForm);
// PocketBase 'posts' koleksiyonundaki alan isimleriyle birebir aynı olmalıdır
const newPost = { const newPost = {
title: formData.get("title").trim(), title: formData.get("title").trim(),
tags: JSON.stringify(currentTags), // PocketBase'de tags alanı JSON ise bu format uygundur tags: currentTags, // PocketBase JSON alanı için saf dizi gönderiyoruz
summary: formData.get("summary").trim(), summary: formData.get("summary").trim(),
content: formData.get("content").trim(), content: formData.get("content").trim(),
date: formData.get("date"), date: formData.get("date"),
@@ -81,7 +77,7 @@ blogForm.addEventListener("submit", async (event) => {
async function loadPosts() { async function loadPosts() {
try { try {
const records = await pb.collection('posts').getFullList({ const records = await pb.collection('posts').getFullList({
sort: '-created', // En yeni yazıyı en üstte gösterir sort: '-created',
}); });
postsList.innerHTML = records.map(post => ` postsList.innerHTML = records.map(post => `
@@ -95,7 +91,6 @@ async function loadPosts() {
} }
} }
// Yazı Silme Fonksiyonu
window.deletePost = async (id) => { window.deletePost = async (id) => {
if (confirm("Bu yazıyı silmek istediğinize emin misiniz?")) { if (confirm("Bu yazıyı silmek istediğinize emin misiniz?")) {
try { try {
@@ -119,7 +114,6 @@ window.removeTag = (index) => {
renderTags(); renderTags();
}; };
// Enter ile etiket ekleme
tagsInput.addEventListener("keydown", (event) => { tagsInput.addEventListener("keydown", (event) => {
if (event.key === "Enter") { if (event.key === "Enter") {
event.preventDefault(); event.preventDefault();
@@ -132,17 +126,6 @@ tagsInput.addEventListener("keydown", (event) => {
} }
}); });
// Inputtan odak çıkınca da etiket ekleme (Hızlı kullanım için eklendi)
tagsInput.addEventListener("blur", () => {
const tag = tagsInput.value.trim();
if (tag && !currentTags.includes(tag)) {
currentTags.push(tag);
renderTags();
}
tagsInput.value = "";
});
// Sayfa yüklendiğinde mevcut oturumu kontrol et
if (pb.authStore.isValid) { if (pb.authStore.isValid) {
setAuthState(true); setAuthState(true);
} }