4 Commits

Author SHA1 Message Date
gabatxo1312 09429080b1 Add favicon and title 2026-01-30 19:16:51 +01:00
loub fc82ffc481 Merge pull request 'Add empty state on table' (#17) from add-empty-state into main
Reviewed-on: #17
2026-01-30 18:41:42 +01:00
gabatxo1312 9317484deb Add empty state on table 2026-01-30 18:40:49 +01:00
loub 9a7c06b81d Merge pull request 'Add locales' (#16) from add-locales into main
Reviewed-on: #16
2026-01-30 18:24:49 +01:00
15 changed files with 164 additions and 91 deletions
+2
View File
@@ -1 +1,3 @@
/target
.DS_Store
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

+1
View File
@@ -11,6 +11,7 @@ common:
search: Search
reset: Reset
show: Show
no_result: No results
close: Close
confirmation: Confirmation
are_you_sure: Are you sure?
+16 -6
View File
@@ -11,6 +11,7 @@ common:
search: Filtrer
reset: Réini.
show: Voir
no_result: Aucun résultat
close: Fermer
confirmation: Confirmation
are_you_sure: Êtes-vous sûr ?
@@ -27,14 +28,17 @@ user:
owner_books: Livres possédés
borrowed_books: Livres empruntés
index:
title: Tous les utilisateurs
button: Ajouter un utilisateur
title_tag: Liste des utilisateur.ice.s | BookForge
title: Tous les utilisateur.ice.s
button: Ajouter un.e utilisateur.ice
edit:
title_tag: Modifier l'utilisateur.ice | BookForge
title: Modifier
button: Modifier l'utilisateur
button: Modifier l'utilisateur.ice
new:
title: Nouvel utilisateur
button: Créer l'utilisateur
title_tag: Nouvel utilisateur.ice | BookForge
title: Nouvel utilisateur.ice
button: Créer l'utilisateur.ice
book:
attributes:
title: Titre
@@ -44,24 +48,30 @@ book:
current_holder: Détenteur.ice actuel.le
comment: Commentaire
index:
title_tag: Liste des livres | BookForge
title: Tous les livres
new:
title_tag: Nouveau livre | BookForge
title: Nouveau livre
button: Créer le livre
button_short: Ajouter un livre
edit:
title_tag: Modifier le livre | BookForge
title: Modifier le livre
button: Modifier le livre
show:
title_tag: Details | BookForge
book_details: Détails du livre
user_details: Détails de l'utilisateur
user_details: Détails de l'utilisateur.ice
more_informations: Plus d'informations
footer:
message: Fait avec amour & Nique les fachos !
error:
error_404:
title_tag: Erreur 404 | BookForge
title: Oups ! Cette page n'existe pas
subtitle: 404 NOT FOUND
button: Retour à l'accueil
generic:
title_tag: Erreur | BookForge
title: Oups ! Une erreur s'est produite
+2 -2
View File
@@ -25,7 +25,7 @@ use crate::{
#[derive(Template, WebTemplate)]
#[template(path = "users/index.html")]
struct UsersIndexTemplate {
user_with_books_number: Vec<UserWithBookNumber>,
users_with_books_number: Vec<UserWithBookNumber>,
query: IndexQuery,
}
@@ -84,7 +84,7 @@ pub async fn index(
}
Ok(UsersIndexTemplate {
user_with_books_number: result,
users_with_books_number: result,
query,
})
}
+5
View File
@@ -1,4 +1,9 @@
{% extends "base.html" %}
{% block title %}
{{ t!("error.error_404.title_tag") }}
{% endblock %}
{% block main %}
<div class="mt-4 text-center">
<h1>{{ t!("error.error_404.title") }}</h1>
+1
View File
@@ -6,6 +6,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="/assets/css/bootstrap.css">
<link rel="stylesheet" href="/assets/css/main.css">
<link rel="icon" type="image/png" sizes="32x32" href="/assets/images/favicon.png">
<link rel="stylesheet" href="/assets/css/fork-awesome.min.css">
<link rel="icon" type="image/x-icon" href="/assets/images/favicon.ico">
+4
View File
@@ -2,6 +2,10 @@
{% import "components/typography.html" as typography %}
{% import "components/cards.html" as cards %}
{% block title %}
{{ t!("book.edit.title_tag") }}
{% endblock %}
{% block main %}
{{ typography::heading(t!("book.edit.title")) }}
+4
View File
@@ -3,6 +3,10 @@
{% import "components/cards.html" as cards %}
{% import "components/inputs.html" as form_helpers %}
{% block title %}
{{ t!("book.new.title_tag") }}
{% endblock %}
{% block main %}
{{ typography::heading(t!("book.new.title")) }}
+8 -4
View File
@@ -4,12 +4,16 @@
{% import "components/fields.html" as fields %}
{% import "components/cards.html" as cards %}
{% block title %}
{{ t!("book.show.title_tag") }}
{% endblock %}
{% block main %}
{{ typography::book_heading(book.title, book, show = false) }}
{% call cards::card() %}
<div class="mt-4">
<h5 class="mt-4 fw-bold">{{ t!("book.show.book_details") }}</h5>
<div class="">
<h5 class="fw-bold text-decoration-underline">{{ t!("book.show.book_details") }}</h5>
{{ fields::field(t!("book.attributes.title"), book.title) }}
{{ fields::field(t!("book.attributes.authors"), book.authors) }}
@@ -20,7 +24,7 @@
{{ fields::field(t!("book.attributes.description"), "-") }}
{% endmatch %}
<h5 class="mt-50px fw-bold">{{ t!("book.show.user_details") }}</h5>
<h5 class="mt-50px fw-bold text-decoration-underline">{{ t!("book.show.user_details") }}</h5>
{{ fields::field(t!("book.attributes.owner"), owner.name) }}
{% match current_holder %}
@@ -31,7 +35,7 @@
{% endmatch %}
<h5 class="mt-50px fw-bold">{{ t!("book.show.more_informations") }}</h5>
<h5 class="mt-50px fw-bold text-decoration-underline">{{ t!("book.show.more_informations") }}</h5>
{% match book.comment %}
{% when Some with (comment) %}
{{ fields::field(t!("book.attributes.comment"), comment) }}
+5
View File
@@ -1,4 +1,9 @@
{% extends "base.html" %}
{% block title %}
{{ t!("error.generic.title_tag") }}
{% endblock %}
{% block main %}
<div class="mt-4 text-center">
<h1>{{ t!("error.generic.title") }}</h1>
+15
View File
@@ -3,6 +3,10 @@
{% import "components/dropdown.html" as dropdown %}
{% import "components/cards.html" as cards %}
{% block title %}
{{ t!("book.index.title_tag") }}
{% endblock %}
{% block main %}
{% call typography::heading(t!("book.index.title")) %}
<a href="/books/download_csv?{{ base_query }}" class="btn btn-info">
@@ -90,6 +94,15 @@
{% endcall %}
{% call cards::card() %}
{% if books_with_user.is_empty() %}
<div class="d-flex flex-column align-items-center justify-content-center">
<h2>{{ t!("common.no_result") }}</h2>
<a class="btn btn-success text-white text-nowrap mt-3" href="/books/new">
{{ t!("book.new.button_short") }}
</a>
</div>
{% else %}
<table class="table table-hover">
<thead>
<tr>
@@ -147,5 +160,7 @@
</nav>
</div>
{% endif %}
{% endif %}
{% endcall %}
{% endblock %}
+5 -1
View File
@@ -1,7 +1,11 @@
{% extends "base.html" %}
{% import "components/typography.html" as typography %}
{% import "components/cards.html" as cards %}
o{% import "components/inputs.html" as form_helpers %}
{% import "components/inputs.html" as form_helpers %}
{% block title %}
{{ t!("book.edit.title_tag") }}
{% endblock %}
{% block main %}
{{ typography::heading(t!("user.edit.title")) }}
+15 -1
View File
@@ -4,6 +4,10 @@
{% import "components/cards.html" as cards %}
{% import "components/inputs.html" as form_helpers %}
{% block title %}
{{ t!("user.index.title_tag") }}
{% endblock %}
{% block main %}
{% call typography::heading(t!("user.index.title")) %}
<a class="btn-success btn" href="/users/new">{{ t!("user.index.button") }}</a>
@@ -34,6 +38,15 @@
{% endcall %}
{% call cards::card() %}
{% if users_with_books_number.is_empty() %}
<div class="d-flex flex-column align-items-center justify-content-center">
<h2>{{ t!("common.no_result") }}</h2>
<a class="btn btn-success text-white text-nowrap mt-3" href="//new">
{{ t!("user.index.button") }}
</a>
</div>
{% else %}
<table class="table table-hover">
<thead>
<tr>
@@ -45,7 +58,7 @@
</tr>
</thead>
<tbody>
{% for user_information in user_with_books_number %}
{% for user_information in users_with_books_number %}
<tr class="align-middle">
<th scope="row">{{ user_information.user.id }}</th>
<td>{{ user_information.user.name }}</td>
@@ -58,5 +71,6 @@
{% endfor %}
</tbody>
</table>
{% endif %}
{% endcall %}
{% endblock %}
+5 -1
View File
@@ -1,7 +1,11 @@
{% extends "base.html" %}
{% import "components/typography.html" as typography %}
{% import "components/cards.html" as cards %}
o{% import "components/inputs.html" as form_helpers %}
{% import "components/inputs.html" as form_helpers %}
{% block title %}
{{ t!("user.new.title_tag") }}
{% endblock %}
{% block main %}
{{ typography::heading(t!("user.new.title")) }}