polish #1
This commit is contained in:
parent
4fbbff2c12
commit
9567290f0d
5 changed files with 30 additions and 41 deletions
3
migrations/20250525163531_cena.sql
Normal file
3
migrations/20250525163531_cena.sql
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
ALTER TABLE ksiazki
|
||||||
|
ALTER COLUMN cena TYPE DECIMAL(10,2),
|
||||||
|
ALTER COLUMN cena SET NOT NULL;
|
|
@ -182,7 +182,8 @@ async fn get_ksiazki(
|
||||||
cena,
|
cena,
|
||||||
COALESCE('/images/' || obraz_url, '/images/placeholder.jpg') as obraz_url,
|
COALESCE('/images/' || obraz_url, '/images/placeholder.jpg') as obraz_url,
|
||||||
COALESCE(opis, 'Brak opisu') as opis
|
COALESCE(opis, 'Brak opisu') as opis
|
||||||
FROM ksiazki";
|
FROM ksiazki
|
||||||
|
ORDER BY tytul";
|
||||||
|
|
||||||
let sort_clause = match sort_by {
|
let sort_clause = match sort_by {
|
||||||
"price_asc" => " ORDER BY cena ASC",
|
"price_asc" => " ORDER BY cena ASC",
|
||||||
|
@ -294,7 +295,8 @@ async fn get_cart(
|
||||||
COALESCE('/images/' || NULLIF(b.obraz_url, ''), '/images/placeholder.jpg') as "obraz_url!"
|
COALESCE('/images/' || NULLIF(b.obraz_url, ''), '/images/placeholder.jpg') as "obraz_url!"
|
||||||
FROM koszyk k
|
FROM koszyk k
|
||||||
JOIN ksiazki b ON k.book_id = b.id
|
JOIN ksiazki b ON k.book_id = b.id
|
||||||
WHERE k.user_id = $1"#,
|
WHERE k.user_id = $1
|
||||||
|
ORDER BY b.tytul"#,
|
||||||
user_id
|
user_id
|
||||||
)
|
)
|
||||||
.fetch_all(pool.get_ref())
|
.fetch_all(pool.get_ref())
|
||||||
|
@ -359,7 +361,7 @@ async fn get_order_history(
|
||||||
JOIN pozycje_zamowienia pz ON z.id = pz.zamowienie_id
|
JOIN pozycje_zamowienia pz ON z.id = pz.zamowienie_id
|
||||||
JOIN ksiazki k ON pz.book_id = k.id
|
JOIN ksiazki k ON pz.book_id = k.id
|
||||||
WHERE z.user_id = $1
|
WHERE z.user_id = $1
|
||||||
ORDER BY z.data_zamowienia DESC
|
ORDER BY z.id DESC, k.tytul ASC
|
||||||
"#,
|
"#,
|
||||||
user_id
|
user_id
|
||||||
)
|
)
|
||||||
|
|
|
@ -76,28 +76,23 @@ footer {
|
||||||
}
|
}
|
||||||
|
|
||||||
.book-card {
|
.book-card {
|
||||||
aspect-ratio: 5/8;
|
|
||||||
position: relative;
|
|
||||||
transition: transform 0.3s;
|
|
||||||
}
|
|
||||||
|
|
||||||
.book-cover img {
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
height: 100%;
|
||||||
object-fit: cover;
|
display: flex;
|
||||||
border-radius: 5px;
|
flex-direction: column;
|
||||||
}
|
background: #1a1a1a;
|
||||||
|
border: 1px solid #343434;
|
||||||
.book-cover {
|
transition: transform 0.3s ease;
|
||||||
height: 100%;
|
|
||||||
width: 100%;
|
|
||||||
border-radius: 2px;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.book-card:hover {
|
.book-card:hover {
|
||||||
transform: scale(1.05);
|
transform: translateY(-5px);
|
||||||
z-index: 1;
|
}
|
||||||
|
|
||||||
|
.book-cover {
|
||||||
|
width: 100%;
|
||||||
|
height: 300px;
|
||||||
|
object-fit: contain;
|
||||||
|
padding: 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.book-overlay {
|
.book-overlay {
|
||||||
|
|
|
@ -50,7 +50,7 @@
|
||||||
<main class="container py-5">
|
<main class="container py-5">
|
||||||
<h2 class="text-center mb-5 neon-title">NOWOŚCI</h2>
|
<h2 class="text-center mb-5 neon-title">NOWOŚCI</h2>
|
||||||
|
|
||||||
<div class="row row-cols-1 row-cols-md-3 row-cols-lg-4 g-4" id="books-container">
|
<div class="row row-cols-2 row-cols-md-3 row-cols-lg-5 g-4" id="books-container">
|
||||||
<!-- Dynamicznie ładowane książki -->
|
<!-- Dynamicznie ładowane książki -->
|
||||||
<div class="col-12 text-center">
|
<div class="col-12 text-center">
|
||||||
<div class="spinner-border text-danger" role="status">
|
<div class="spinner-border text-danger" role="status">
|
||||||
|
|
|
@ -128,25 +128,14 @@ function renderBooks(books) {
|
||||||
}
|
}
|
||||||
|
|
||||||
container.innerHTML = books.map(book => `
|
container.innerHTML = books.map(book => `
|
||||||
<div class="col-md-4 mb-4">
|
<div class="col">
|
||||||
<div class="book-card card h-100">
|
<div class="book-card">
|
||||||
<a href="/book.html?id=${book.id}" class="book-link">
|
<a href="https://athenaeum.sykorax.eu/book.html?id=${book.id}">
|
||||||
<div class="book-cover">
|
<img src="${book.obraz_url}" class="book-cover" alt="${book.tytul}">
|
||||||
<img src="${book.obraz_url}"
|
<div class="book-body">
|
||||||
class="card-img-top"
|
|
||||||
alt="${book.tytul}"
|
|
||||||
onerror="this.src='/images/placeholder.jpg'">
|
|
||||||
<div class="book-overlay">
|
|
||||||
<h5 class="book-title">${book.tytul}</h5>
|
<h5 class="book-title">${book.tytul}</h5>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</a>
|
</a>
|
||||||
<div class="card-body">
|
|
||||||
<h5 class="card-title">${book.tytul}</h5>
|
|
||||||
<p class="card-text">${book.autor}</p>
|
|
||||||
<p class="card-text">${book.cena} PLN</p>
|
|
||||||
<button class="btn btn-gothic add-to-cart" data-book-id="${book.id}">Dodaj do koszyka</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
`).join('');
|
`).join('');
|
||||||
|
|
Loading…
Add table
Reference in a new issue