diff --git a/README.md b/README.md index 2618a54..ccc49fa 100644 --- a/README.md +++ b/README.md @@ -211,3 +211,5 @@ Das Projekt basiert auf bewährten Web-Standards: * Bearbeiten-Funktion für bestehende ToDo-Listen Titel und deren Einträge implementiert. * Anzeige in der Haushaltsverwaltung nutzt nun den Anzeigenamen (Display Name) anstatt des Loginnamens, sofern vorhanden. * Neuer Menüpunkt zur Verwaltung (Bearbeiten, Löschen, Hinzufügen) von Kategorien analog zu den Herstellern implementiert. + * Kategorien können nun mit individuellen Farben (Hex-Code per Color-Picker) versehen werden. Diese Farben werden in der Detailansicht von Packlisten sowie in der Kachelansicht von Artikeln als farbige Badges dargestellt. + * Kachelhöhe in der Artikel-Übersicht und im Packlisten-Editor (`manage_packing_list_items.php`) leicht angepasst. diff --git a/src/articles.php b/src/articles.php index 3cdb40e..afb3108 100644 --- a/src/articles.php +++ b/src/articles.php @@ -83,7 +83,7 @@ $types = str_repeat('i', count($household_member_ids)); $sql = "SELECT a.id, a.name, a.weight_grams, a.quantity_owned, a.product_url, a.consumable, a.image_url, a.user_id, a.parent_article_id, u.username as creator_name, a.household_id, a.product_designation, - c.id AS category_id, c.name AS category_name, + c.id AS category_id, c.name AS category_name, c.color AS category_color, m.id AS manufacturer_id, m.name AS manufacturer_name, l2.name AS location_level2_name, l1.name AS location_level1_name FROM articles a @@ -399,15 +399,6 @@ document.addEventListener('DOMContentLoaded', function () { initializeInteractivity(); } - function getColorForCategory(categoryName) { - let hash = 0; - for (let i = 0; i < categoryName.length; i++) { - hash = categoryName.charCodeAt(i) + ((hash << 5) - hash); - } - const hue = Math.abs(hash % 360); - return `hsl(${hue}, 60%, 85%)`; - } - function generateCardHTML(article) { const imagePath = article.image_url ? article.image_url : 'assets/images/keinbild.png'; const productLink = article.product_url ? `` : ''; @@ -427,7 +418,7 @@ document.addEventListener('DOMContentLoaded', function () { const metaText = [article.manufacturer_name, article.product_designation].filter(Boolean).join(' - '); const catName = article.category_name || 'Ohne Kat.'; - const catColor = getColorForCategory(catName); + const catColor = article.category_color || '#e2e8f0'; return `