From 1659ef93b572b56bcc81e7e956cde614bdddafee Mon Sep 17 00:00:00 2001 From: Flatlogic Bot Date: Wed, 15 Apr 2026 18:09:38 +0000 Subject: [PATCH] Autosave: 20260415-180938 --- index.php | 330 +++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 240 insertions(+), 90 deletions(-) diff --git a/index.php b/index.php index c1fef41..832923b 100644 --- a/index.php +++ b/index.php @@ -70,6 +70,7 @@ $ship_preset_rows = []; $ship_preset_manufacturers = []; $ship_preset_error = null; $item_custom_public_rows = []; +$item_custom_public_types = []; $item_custom_public_error = null; try { @@ -238,13 +239,24 @@ if ($has_member_access) { } } + $item_custom_public_types_lookup = []; + foreach ($grouped_item_custom_public as $item_custom_public_row) { $item_custom_public_row['search'] = trim(implode(' ', array_filter($item_custom_public_row['search_parts'], static function ($value) { return trim((string) $value) !== ''; }))); unset($item_custom_public_row['search_parts']); $item_custom_public_rows[] = $item_custom_public_row; + + $item_custom_public_type_label = $item_custom_public_row['type'] !== '' ? $item_custom_public_row['type'] : 'Type inconnu'; + $item_custom_public_type_key = strtolower($item_custom_public_type_label); + if (!isset($item_custom_public_types_lookup[$item_custom_public_type_key])) { + $item_custom_public_types_lookup[$item_custom_public_type_key] = $item_custom_public_type_label; + } } + + natcasesort($item_custom_public_types_lookup); + $item_custom_public_types = array_values($item_custom_public_types_lookup); } catch (Throwable $e) { $item_custom_public_error = 'Impossible de charger les objets Item Custom pour le moment.'; } @@ -491,9 +503,12 @@ if ($has_member_access) { } .item-custom-dialog { + display: flex; + flex-direction: column; background: linear-gradient(180deg, rgba(15, 20, 29, 0.98), rgba(7, 10, 16, 0.98)); border: 1px solid rgba(162, 155, 120, 0.35); box-shadow: 0 20px 50px rgba(0, 0, 0, 0.45); + max-height: min(88vh, 980px); } .item-custom-dialog h3 { @@ -502,10 +517,14 @@ if ($has_member_access) { } .item-custom-dialog > div { + display: flex; + flex-direction: column; + flex: 1 1 auto; + min-height: 0; + overflow: hidden; padding: 22px 26px 26px; } - .item-custom-intro, .item-custom-empty, .item-custom-error { margin: 0 0 18px; @@ -515,11 +534,6 @@ if ($has_member_access) { text-align: left !important; } - .item-custom-intro { - background: rgba(162, 155, 120, 0.12); - border: 1px solid rgba(162, 155, 120, 0.18); - color: #f0ead2; - } .item-custom-empty { background: rgba(255, 255, 255, 0.06); @@ -534,22 +548,92 @@ if ($has_member_access) { .item-custom-filter-bar { display: flex; - align-items: center; - gap: 16px; + flex-direction: column; + align-items: stretch; + gap: 10px; margin: 0 0 18px; padding: 14px 16px; border-radius: 14px; background: rgba(255, 255, 255, 0.04); border: 1px solid rgba(162, 155, 120, 0.18); - flex-wrap: wrap; + } + + .item-custom-filter-top { + display: flex; + align-items: center; + gap: 14px; + width: 100%; } .item-custom-search-wrap { display: flex; align-items: center; gap: 12px; - flex: 1 1 420px; - min-width: 280px; + flex: 1 1 auto; + min-width: 0; + } + + .item-custom-type-filters { + display: flex; + align-items: flex-start; + gap: 8px; + width: 100%; + } + + .item-custom-type-label { + font-size: 0.64em; + font-weight: 700; + letter-spacing: 0.08em; + text-transform: uppercase; + color: rgba(255, 255, 255, 0.62); + } + + .item-custom-type-options { + display: flex; + align-items: center; + gap: 6px; + flex-wrap: wrap; + } + + .item-custom-type-chip { + position: relative; + display: inline-flex; + align-items: center; + cursor: pointer; + } + + .item-custom-type-chip input { + position: absolute; + opacity: 0; + pointer-events: none; + } + + .item-custom-type-chip span { + display: inline-flex; + align-items: center; + padding: 4px 9px; + min-height: 24px; + border-radius: 999px; + border: 1px solid rgba(162, 155, 120, 0.22); + background: rgba(255, 255, 255, 0.028); + color: rgba(255, 255, 255, 0.76); + font-size: 0.62em; + font-weight: 400; + letter-spacing: 0.03em; + line-height: 1; + transition: border-color 0.18s ease, background 0.18s ease, color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease; + } + + .item-custom-type-chip input:checked + span { + border-color: rgba(162, 155, 120, 0.72); + background: rgba(162, 155, 120, 0.18); + color: #fff7dd; + box-shadow: inset 0 0 0 1px rgba(162, 155, 120, 0.18); + } + + .item-custom-type-chip input:focus-visible + span { + outline: 2px solid rgba(162, 155, 120, 0.45); + outline-offset: 2px; } .item-custom-search-input { @@ -581,24 +665,28 @@ if ($has_member_access) { } .item-custom-filter-status { - margin: 0 0 0 auto; + margin: 0; + flex: 0 0 auto; font-size: 0.85em; color: rgba(255, 255, 255, 0.7); text-align: right; + white-space: nowrap; } .item-custom-grid { display: flex; flex-direction: column; + flex: 1 1 auto; gap: 8px; - max-height: 68vh; + min-height: clamp(320px, 52vh, 620px); + max-height: none; overflow-y: auto; padding-right: 4px; } .item-custom-card { display: grid; - grid-template-columns: 56px minmax(0, 380px) minmax(320px, 1.65fr); + grid-template-columns: 56px minmax(0, 430px) minmax(320px, 1.65fr); gap: 14px; align-items: center; padding: 7px 14px 8px; @@ -839,7 +927,8 @@ if ($has_member_access) { font-size: 0.88em; } - .item-custom-card.is-hidden-by-search { + .item-custom-card.is-hidden-by-search, + .item-custom-card.is-hidden-by-type { display: none; } @@ -1060,13 +1149,13 @@ if ($has_member_access) { grid-template-columns: repeat(2, minmax(0, 1fr)); } - .item-custom-filter-bar { + .item-custom-filter-top { align-items: stretch; } .item-custom-filter-status { - margin-left: 0; text-align: left; + white-space: normal; } .item-custom-card { @@ -1081,6 +1170,14 @@ if ($has_member_access) { } @media (max-width: 720px) { + .item-custom-dialog { + max-height: 92vh; + } + + .item-custom-grid { + min-height: min(42vh, 340px); + } + .ship-presets-grid { grid-template-columns: 1fr; } @@ -1089,11 +1186,17 @@ if ($has_member_access) { min-height: 0; } - .item-custom-search-wrap { + .item-custom-filter-top, + .item-custom-search-wrap, + .item-custom-type-filters { flex-direction: column; align-items: stretch; } + .item-custom-filter-status { + text-align: left; + } + .item-custom-card { grid-template-columns: 52px minmax(0, 1fr); padding: 8px; @@ -1135,13 +1238,13 @@ if ($has_member_access) { -
- Signatures de minage - + + + Objet(s) personnalisé(s) +
+
id="accountPanel"> @@ -1263,7 +1366,7 @@ if ($has_member_access) {

- ITEM CUSTOM + OBJET(S) PERSONNALISÉ(S)

@@ -1272,18 +1375,32 @@ if ($has_member_access) {

Aucun objet Item Custom n'est disponible pour le moment.

-

Consulte ici les objets personnalisés partagés : nom de l'objet, créateur et statistiques configurées avec leur valeur finale directement lisible.

-
- - +
+
+ + +
+

-

+ +
+ Filtrer par type +
+ + + +
+
+
-
+
Aperçu de <?php echo htmlspecialchars($item_custom_public_row['name'], ENT_QUOTES, 'UTF-8'); ?>