fix: bouton de repli des facettes compact et icone seule qui pivote sur mobile #157
CI / lint (push) Successful in 2m44s
CI / security (push) Successful in 2m1s
CI / test (push) Successful in 4m36s
CI / build (push) Successful in 1m51s
CI / e2e (push) Successful in 15m47s

This commit is contained in:
2026-10-02 08:14:48 -04:00
parent 1e0e419210
commit 5ffc9d851a
11 changed files with 45 additions and 16 deletions
+9 -1
View File
@@ -6,7 +6,7 @@ Format basé sur [Keep a Changelog](https://keepachangelog.com/fr/1.1.0/),
et [Semantic Versioning](https://semver.org/spec/v2.0.0.html). et [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
> **En cours de développement** : les changements à venir sont listés dans la section > **En cours de développement** : les changements à venir sont listés dans la section
> [Unreleased](#unreleased). La dernière version livrée est **2.47.0**. > [Unreleased](#unreleased). La dernière version livrée est **2.47.1**.
--- ---
@@ -14,6 +14,10 @@ et [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
--- ---
## [2.47.1] — 2026-10-02
---
## [2.47.0] — 2026-10-01 ## [2.47.0] — 2026-10-01
### Ajouté ### Ajouté
@@ -30,6 +34,10 @@ et [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
plus les tests d'advanced-search pointaient la route inexistante `/api/advanced-search` plus les tests d'advanced-search pointaient la route inexistante `/api/advanced-search`
et sautaient en silence — ils ciblent désormais `/api/search/advanced`, avec une assertion et sautaient en silence — ils ciblent désormais `/api/search/advanced`, avec une assertion
stricte sur `facets.extensions`. stricte sur `facets.extensions`.
- **#157 — bouton de repli des facettes maladroit sur mobile.** En dessous de 768 px, le
panneau passe en colonne et le bouton s'étirait en pleine largeur d'écran, pivotait
entièrement à la vertical au clic. Le bouton reste compact (`align-self: flex-start`) et
**seule l'icône chevron pivote** (transition 120 ms), sur mobile comme sur desktop.
--- ---
+3 -3
View File
@@ -4,7 +4,7 @@
**Porte d'entrée web ultra-léger pour vos vaults Obsidian** — Accédez, naviguez et recherchez dans toutes vos notes Obsidian depuis n'importe quel appareil via une interface web moderne et responsive. **Porte d'entrée web ultra-léger pour vos vaults Obsidian** — Accédez, naviguez et recherchez dans toutes vos notes Obsidian depuis n'importe quel appareil via une interface web moderne et responsive.
[![Version](https://img.shields.io/badge/Version-2.47.0-blue.svg)]() [![Version](https://img.shields.io/badge/Version-2.47.1-blue.svg)]()
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Docker](https://img.shields.io/badge/Docker-Ready-blue.svg)](https://www.docker.com/) [![Docker](https://img.shields.io/badge/Docker-Ready-blue.svg)](https://www.docker.com/)
[![Python](https://img.shields.io/badge/Python-3.11+-green.svg)](https://www.python.org/) [![Python](https://img.shields.io/badge/Python-3.11+-green.svg)](https://www.python.org/)
@@ -976,8 +976,8 @@ Ce projet est sous licence **MIT** — voir le fichier [LICENSE](LICENSE) pour l
## 📝 Changelog ## 📝 Changelog
Consultez le [CHANGELOG.md](./CHANGELOG.md) pour l'historique complet de toutes les versions (v1.0.0 → v2.47.0). Consultez le [CHANGELOG.md](./CHANGELOG.md) pour l'historique complet de toutes les versions (v1.0.0 → v2.47.1).
--- ---
*Projet : ObsiGate | Version : 2.47.0 | Dernière mise à jour : Septembre 2026* *Projet : ObsiGate | Version : 2.47.1 | Dernière mise à jour : Septembre 2026*
+3 -3
View File
@@ -2,7 +2,7 @@
**Ultra-light web gateway for your Obsidian vaults** — Access, browse, and search all your Obsidian notes from any device via a modern, responsive web interface. **Ultra-light web gateway for your Obsidian vaults** — Access, browse, and search all your Obsidian notes from any device via a modern, responsive web interface.
[![Version](https://img.shields.io/badge/Version-2.47.0-blue.svg)]() [![Version](https://img.shields.io/badge/Version-2.47.1-blue.svg)]()
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Docker](https://img.shields.io/badge/Docker-Ready-blue.svg)](https://www.docker.com/) [![Docker](https://img.shields.io/badge/Docker-Ready-blue.svg)](https://www.docker.com/)
[![Python](https://img.shields.io/badge/Python-3.11+-green.svg)](https://www.python.org/) [![Python](https://img.shields.io/badge/Python-3.11+-green.svg)](https://www.python.org/)
@@ -1151,8 +1151,8 @@ This project is licensed under the **MIT License** - see the [LICENSE](LICENSE)
## 📝 Changelog ## 📝 Changelog
See [CHANGELOG.md](./CHANGELOG.md) for the complete version history (v1.0.0 → v2.47.0). See [CHANGELOG.md](./CHANGELOG.md) for the complete version history (v1.0.0 → v2.47.1).
--- ---
*Project: ObsiGate | Version: 2.47.0 | Last updated: September 2026* *Project: ObsiGate | Version: 2.47.1 | Last updated: September 2026*
+1 -1
View File
@@ -1 +1 @@
2.47.0 2.47.1
+1 -1
View File
@@ -2626,7 +2626,7 @@ dependencies = [
[[package]] [[package]]
name = "obsigate-desktop" name = "obsigate-desktop"
version = "2.47.0" version = "2.47.1"
dependencies = [ dependencies = [
"chrono", "chrono",
"env_logger", "env_logger",
+1 -1
View File
@@ -1,6 +1,6 @@
[package] [package]
name = "obsigate-desktop" name = "obsigate-desktop"
version = "2.47.0" version = "2.47.1"
description = "ObsiGate Desktop — Porte d'entrée native pour vos vaults Obsidian" description = "ObsiGate Desktop — Porte d'entrée native pour vos vaults Obsidian"
authors = ["Bruno Charest"] authors = ["Bruno Charest"]
edition = "2021" edition = "2021"
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"$schema": "https://raw.githubusercontent.com/nicedoc/obsigate/main/desktop/tauri.conf.schema.json", "$schema": "https://raw.githubusercontent.com/nicedoc/obsigate/main/desktop/tauri.conf.schema.json",
"productName": "ObsiGate", "productName": "ObsiGate",
"version": "2.47.0", "version": "2.47.1",
"identifier": "com.obsigate.desktop", "identifier": "com.obsigate.desktop",
"build": { "build": {
"frontendDist": "../frontend", "frontendDist": "../frontend",
+1 -1
View File
@@ -1,6 +1,6 @@
# ObsiGate — Roadmap # ObsiGate — Roadmap
> **Version :** 2.47.0 | **Dernière mise à jour :** 2026-10-01 > **Version :** 2.47.1 | **Dernière mise à jour :** 2026-10-02
> **Ce fichier ne contient que le travail à venir** (🔵 En cours + ⚪ Backlog) et un index compact > **Ce fichier ne contient que le travail à venir** (🔵 En cours + ⚪ Backlog) et un index compact
> vers les fonctionnalités livrées. > vers les fonctionnalités livrées.
> - **Méthode de livraison à appliquer pour toute tâche : [DELIVERY_WORKFLOW.md](./DELIVERY_WORKFLOW.md)** > - **Méthode de livraison à appliquer pour toute tâche : [DELIVERY_WORKFLOW.md](./DELIVERY_WORKFLOW.md)**
+10 -3
View File
@@ -5480,6 +5480,7 @@ body.resizing-v {
display: inline-flex; display: inline-flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
align-self: flex-start; /* mobile (colonne) : ne jamais s'étirer en pleine largeur */
padding: 2px 6px; padding: 2px 6px;
border: 1px solid var(--border); border: 1px solid var(--border);
border-radius: 6px; border-radius: 6px;
@@ -5487,15 +5488,21 @@ body.resizing-v {
color: var(--text-muted); color: var(--text-muted);
cursor: pointer; cursor: pointer;
transition: transition:
transform 120ms,
border-color 120ms, border-color 120ms,
color 120ms; color 120ms,
background 120ms;
} }
.search-facets__toggle:hover { .search-facets__toggle:hover {
border-color: var(--accent); border-color: var(--accent);
color: var(--text-secondary); color: var(--text-secondary);
} }
.search-facets[data-collapsed="true"] .search-facets__toggle { /* Seule l'icône pivote — la boîte du bouton reste fixe */
.search-facets__toggle i,
.search-facets__toggle svg {
transition: transform 120ms;
}
.search-facets[data-collapsed="true"] .search-facets__toggle i,
.search-facets[data-collapsed="true"] .search-facets__toggle svg {
transform: rotate(-90deg); transform: rotate(-90deg);
} }
.search-facets__body { .search-facets__body {
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "obsigate", "name": "obsigate",
"version": "2.47.0", "version": "2.47.1",
"description": "**Porte d'entrée web ultra-léger pour vos vaults Obsidian** — Accédez, naviguez et recherchez dans toutes vos notes Obsidian depuis n'importe quel appareil via une interface web moderne et responsive.", "description": "**Porte d'entrée web ultra-léger pour vos vaults Obsidian** — Accédez, naviguez et recherchez dans toutes vos notes Obsidian depuis n'importe quel appareil via une interface web moderne et responsive.",
"main": "patch.js", "main": "patch.js",
"directories": { "directories": {
+14
View File
@@ -154,6 +154,20 @@ test.describe('Full-Text Search', () => {
await expect(page.locator('.search-facets__body')).toBeHidden(); await expect(page.locator('.search-facets__body')).toBeHidden();
await page.locator('.search-facets__toggle').click(); await page.locator('.search-facets__toggle').click();
await expect(page.locator('.search-facets__body')).toBeVisible(); await expect(page.locator('.search-facets__body')).toBeVisible();
// mobile: the toggle stays compact (no full-width stretch) and only the
// icon rotates — the button box itself never spins
await page.setViewportSize({ width: 390, height: 844 });
const toggle = page.locator('.search-facets__toggle');
const box = await toggle.boundingBox();
expect(box).not.toBeNull();
expect(box!.width).toBeLessThan(150);
await toggle.click();
expect(await toggle.evaluate((el) => getComputedStyle(el).transform)).toBe('none');
const icon = toggle.locator('svg');
expect(await icon.evaluate((el) => getComputedStyle(el).transform)).not.toBe('none');
await toggle.click();
await page.setViewportSize({ width: 1280, height: 720 });
}); });
test('should navigate results with floating bar arrows', async ({ page }) => { test('should navigate results with floating bar arrows', async ({ page }) => {