bruno
d7c1f4c03e
feat(v4.1.0): Data Sources & Linked Databases
...
- Add collection_data_sources table for multi-source collections
- API: GET/POST/DELETE /db/{id}/sources/api — data source management
- API: POST /db/{id}/linked/api — create linked database (copies views/properties)
- API: POST /db/{id}/toggle-inline/api — toggle full-page vs inline
- API: POST /db/inline/api — create inline database
- Linked DB inherits workspace_id (permissions) from source
- Migration: add workspace_id + created_by to collections table
- 10 new tests (153 total)
2026-07-21 21:55:45 -04:00
bruno
3fcfa8fdbb
style: bouton New page → icône document+plus (même que sidebar)
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
2026-07-21 21:30:55 -04:00
bruno
ce2bae1f1b
feat: fichier filter dropdown + fonctionnel sur toutes les vues
...
FlowDeck CI / test (push) Failing after 12s
FlowDeck CI / docker (push) Has been skipped
- Dropdown Filter dans la toolbar (icône filtre, à côté de Sort)
- Menu avec Folders, Pages, PDF, Images, Code, Text + Clear filter
- doFilter() applique maintenant filterType au tree view via _filterTree()
- Filter chips visibles dans toutes les vues comme indicateur
- L'enhanced table prend le relais quand un filtre est actif dans les vues non-tree
143 tests passent
2026-07-21 20:47:32 -04:00
bruno
85b4d624b8
refactor: local-workspace UI → Library-style
...
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
CSS:
- Ajouté: ws-container, ws-tabs-row, ws-tab, ws-icon-btn, ws-btn-primary
- Ajouté: ws-dropdown, ws-search-bar, ws-select-bar, ws-row
- Ajouté: row-name, row-icon, row-title, hover-only, ws-checkbox
- Ajouté: tree-chevron, btn-open, more-menu (Library-style)
- Conservé: ws-tree, ws-tree-item, ws-act, breadcrumb-row pour compatibilité
Navbar:
- Breadcrumb + toolbar fusionnés en une seule row propre
- Dropdowns style Library (View, Sort)
- Search toggle avec barre coulissante
- Bulk bar → ws-select-bar avec icônes SVG
Context menu:
- .ctx-menu → .more-menu (style Library)
- Toutes les refs JS mises à jour
143 tests passent
2026-07-21 15:53:36 -04:00
bruno
ef8d4e6bca
fix: page not found → redirect workspaces (dashboard.py manquait)
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
2026-07-21 14:07:48 -04:00
bruno
27352c84e5
feat: 404 pages → redirect to /workspaces
...
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
- main.py: @app.exception_handler(404) → RedirectResponse(/workspaces)
- dashboard.py: page_detail 404 → RedirectResponse(/workspaces)
- tests: test_styled_404_page → 302 redirect
- API paths (containing /api) still get JSON 404, not redirect
- 143 tests passent
2026-07-21 13:51:31 -04:00
bruno
bf329a4ba0
fix: PDF viewer — URL encode filename + error fallback
...
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
- dashboard.py: quote(filename) dans file_url (espaces/caractères spéciaux)
- page_editor.html: iframe PDF → onerror fallback avec lien Open in new tab
- 143 tests passent
2026-07-21 13:41:34 -04:00
bruno
b505cfc156
fix: sidebar workspace section → + external-link to /local-workspace
...
FlowDeck CI / test (push) Failing after 5s
FlowDeck CI / docker (push) Has been skipped
Maintenant au bon endroit: base.html sidebar-section-actions (L229-233)
Pas dans local_workspace.html tree (où il n'était pas visible).
143 tests passent
2026-07-21 13:24:44 -04:00
bruno
3079d53cab
fix: sidebar root external-link → href static (pas Alpine :href)
...
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
Alpine ne résolvait pas wsId dans le scope x-for.
Maintenant: href='/local-workspace' (route qui utilise le cookie ws actif).
+ hard refresh nécessaire (Ctrl+Shift+R) pour vider cache ancien JS.
143 tests passent
2026-07-21 11:59:05 -04:00
bruno
d3bada54f0
feat: sidebar tree — add external-link icon to /local-workspace
...
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
- local_workspace.html: hover actions (folder) → + external-link → /local-workspace
- Ajouté dans JS renderChildren ET template x-for
- 143 tests passent
2026-07-21 11:54:12 -04:00
bruno
eac6e5aed3
fix: 2 context menu width fixes
...
FlowDeck CI / test (push) Failing after 5s
FlowDeck CI / docker (push) Has been skipped
- base.html showContextMenu: edge detection (menu never overflows right/bottom)
- app.css .more-menu: min-width:200px → unset + width:max-content
- 143 tests passent
2026-07-21 11:25:36 -04:00
bruno
55853db625
fix: library empty state → outline SVG + 19 new JS getSvgIcon icons
...
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
- library.html L342: x-text→x-html + getSvgIcon(emptyIcon,48)
- base.html getSvgIcon: +19 icons: link, lock, globe, edit, clock, users,
book, settings, tag, bar-chart, grid, align-left, calendar, bot, refresh,
inbox, help-circle, check-square, plus
- 143 tests passent
2026-07-21 11:15:52 -04:00
bruno
fd1a4319b4
fix: library row icons → outline SVG + context menu width
...
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
- library.html L591: item.icon (emoji) → self._renderIcon('file')
- library.html: +_renderIcon() helper with validNames filter
- app.css: context-menu min-width:200px → width:max-content + max-width:240px
- 143 tests passent
2026-07-21 11:02:25 -04:00
bruno
b818bc908f
fix: _header page_icon rendered word → SVG icon
...
FlowDeck CI / test (push) Failing after 6s
FlowDeck CI / docker (push) Has been skipped
_header.html L54: {{ page_icon }} affichait le mot 'home'/'file'/'paperclip'
au lieu de l'icône SVG. Maintenant détecte les noms connus → fd_icon().
Fallback pour les valeurs non-reconnues: affiche tel quel.
143 tests passent
2026-07-21 10:22:33 -04:00
bruno
8a94c3b676
fix: Alpine x-text error — fd_icon SVG double-quotes broke JS expression
...
FlowDeck CI / test (push) Failing after 5s
FlowDeck CI / docker (push) Has been skipped
page_editor.html L5: le bouton star utilisait x-text avec fd_icon('star',14)
contenant des guillemets doubles SVG → Expression Error.
→ x-html + getSvgIcon('star',14) (JS, pas de guillemets dans l'expression)
→ share/lock/link: utilisent déjà la concaténation ~ (safe)
143 tests passent
2026-07-21 10:11:21 -04:00
bruno
53d31572e6
fix: sidebar workspace tree + pages DB — emojis → outlined icons
...
Root cause: 3 sources d'icônes colorées dans le sidebar:
1. _workspace_tree_macro.html L28: {{ page.icon }} raw → filtré via valid_icons
2. db.py: DEFAULT '📄 ' → 'file'
3. board.py _file_icon(): 15 émojis → 'file'/'edit'/'image'
4. board.py/dashboard.py: JSON icon: 📄 /📁 → file/folder
5. base.html L931: JS favorites icon → validNames filter
6. base.html render_tree_item: valid_icons list étendue + fallback
Migration: nouvelles pages utilisent 'file'/'folder'. Pages existantes
avec émojis → les templates utilisent le fallback automatiquement.
143 tests passent
2026-07-21 09:28:28 -04:00
bruno
3fcc12ad8c
feat: sweep complet — tous les émojis → outline SVG icons
...
Templates modifiés (22 fichiers):
- _icons.html: +14 new icons (paperclip, external-link, sparkles, lightbulb, tag,
file-text, save, upload, trending-up, zap, alert-triangle, user, eye-off)
- base.html: +8 JS icons, 🦎 🐙 🔑 🔗 👁📋 🔲 📑 ❓ ⚠️ →SVG
- page_editor.html: 43→0 émojis (📎 📄 🔒 🔗 ⭐ 📋 📁 ✨ 📝 🗄📑 📊 📅 🗓🖼📥 🌐 ✏💬 💡 etc)
- settings.html: 30→0 (⚙️ 📋 🏷🧩 👥 💾 🙈 👁🔒 🌙 ☀️ 🌳 📊 📝 ⚠🦎 ✅ 🐙 🔗 ✏🗑)
- local_workspace.html: 25→0 (📄 📁 ✏🗑⚠📋 ➕ )
- gitea_workspace.html: 25→0 (🔗 📄 📤 🔄 ⚙📁 📄 🔒 ✏🗑💾 )
- board.html: 13→0 (📁 📊 📋 ☰📈 👥 ✕✓🗑⚡ 🔍 )
- workspace.html: 11→0 (🏠 🔑 ⚙📁 🔗 📂 🐙 )
- landing.html: 8→0 (📚 🚀 📝 📊 🦎 🌐 🔒 ⚡ )
- trash.html, table_view, dashboard, accounts, card_detail, public_page,
workspaces, team_load, notes, _header, detailed_board, card, board_fragment
- Ajouté import _icons.html aux fragments standalone
- 143 tests passent
2026-07-21 08:27:10 -04:00
bruno
b88a972531
fix: 4 colored JS icons in /local-workspace hover → outline SVG
...
- 📄 New file → getSvgIcon('file',14)
- 📁 New folder → getSvgIcon('folder',14)
- ✏️ Rename → getSvgIcon('edit',14)
- 🗑 Delete → getSvgIcon('trash',14)
- 143 tests passent
2026-07-21 08:10:30 -04:00
bruno
3d10400f8f
fix: workspace cards edit/delete + remaining workspaces emojis
...
- ✏️ →edit SVG (card rename button)
- 🔗 →link SVG (Gitea section title, Connect button)
- 🔍 →removed (search placeholder)
- 🔒 →lock SVG (private project indicator)
- 143 tests passent
2026-07-21 08:03:31 -04:00
bruno
9e45ea8870
feat: version dynamique via fichier VERSION
...
- Fichier VERSION à la racine (4.0.3)
- _get_app_version() avec cache dans dashboard.py
- Lecture depuis VERSION (dev) ou /app/VERSION (Docker)
- Fallback '0.0.0' si fichier absent
- board.py: import _get_app_version depuis dashboard
- Les deux _sidebar_data() remplacent '4.0.3' par _get_app_version()
- Déploiement: changer VERSION → mettre à jour sans toucher le code
- 143 tests passent
2026-07-21 07:58:24 -04:00
bruno
d94dd3da99
fix: workspaces topbar 🔑 ⚙ → outline SVG key+settings
...
- _icons.html: +key icon (Lucide style)
- getSvgIcon JS: +key (matching SVG)
- workspaces.html: 🔑 Login → fd_icon('key'), ⚙ Settings → fd_icon('settings')
- 143 tests passent
2026-07-21 07:55:46 -04:00
bruno
aa434e9fe9
fix: derniers émojis — workspaces 🏠 , hover actions, sidebar context menu
...
FlowDeck CI / test (push) Failing after 5s
FlowDeck CI / docker (push) Has been skipped
- workspaces.html: 🏠 →home SVG (page_icon, header)
- local_workspace.html: ✏️ 🗑 ✕→SVG (rename, delete, clear buttons, rename modal)
- base.html: ✏️ 🗑️ 📁 📄 →SVG (context menus Rename/Delete/New File/Folder)
+ pageIcon default '📁 '→'folder', modal title '📁 New Folder'→SVG
- 143 tests passent
2026-07-20 23:13:01 -04:00
bruno
45911438f0
fix: Home button pointe vers workspace par défaut au lieu de /workspaces
...
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
- Si local_workspaces existe: redirige vers /local-workspace?ws=<premier id>
- Sinon (fallback): redirige vers /workspaces
- 143 tests passent
2026-07-20 22:48:56 -04:00
bruno
5ac8dd10b2
fix: ajout '..' parent folder dans vues List, Details, Cards, Content
...
FlowDeck CI / test (push) Failing after 16s
FlowDeck CI / docker (push) Has been skipped
- List (compact): rangée '..' avec icône folder avant les données
- Details (enhanced): rangée '..' avec toutes les colonnes
- Cards (title grid): carte '..' dans la grille
- Content (content list): élément '..' avec preview 'Parent folder'
- x-show='currentFolder > 0' pour n'afficher que dans un sous-dossier
- 143 tests passent
2026-07-20 22:47:35 -04:00
bruno
eca4067c82
fix: view button 'list List' duplicate + 📁 Folder dans colonne Type
...
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
- View button: supprimé x-text='viewMode' (double affichage 'listList')
- Col. Type: 📁 Folder → Folder (details, compact, enhanced table, preview panel)
- _fileTypeLabel: déjà clean (Page/PDF/Code/Text/... sans emoji)
- 143 tests passent
2026-07-20 22:11:52 -04:00
bruno
fff502a700
fix: /local-workspace — final emoji sweep + view menu icons
...
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
- _fileIcon(): 📜 →getSvgIcon('file') (JS/TS + code languages)
- Breadcrumb: ☰🏠 ←→📁 ✏→ SVG (chevron-right, home, chevron-left/right, folder, edit)
- View menu: +5 outline icons (folder, list, bar-chart, grid, align-left)
- View button: 🌳 →viewMode text only
- Filter chips: 📄 →getSvgIcon('file')
- Parent folder: 📂 →folder SVG
- Context menu: 📄 📂 ✏📋 →file, folder, edit, copy SVG
- Drop overlay: 📥 →download SVG
- _icons.html: +chevron-left, chevron-right, list, bar-chart, grid, align-left, corner-down-right, copy
- 143 tests passent
2026-07-20 21:56:46 -04:00
bruno
fbd4b836f7
fix: /local-workspace SVG rendering + ALL emoji icons converted
...
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
- BUG: x-text→x-html pour _fileIcon() (SVG s'affichait en texte brut)
- _fileIcon(): 11 types de fichiers → SVG (🐍 📕 🖼️ 📜 🌐 🎨 🗃️ 💻 ⚡ 📦 📄 )
- title-card: x-text '📁 ' → x-html getSvgIcon('folder',24)
- preview empty states (PDF): 📕 → getSvgIcon('file')
- toolbar: 🔍 📄 📁 🗑 → SVG icons
- filter chips: 📁 📝 📕 🖼️ 📜 → getSvgIcon()
- view menu: 🌳 📋 📊 🏷️ 📝 → text-only (clean)
- _icons.html: +image, +download
- getSvgIcon JS: +image, +download, +search, +home
- 143 tests passent
2026-07-20 21:39:40 -04:00
bruno
b835dd6b5e
fix: WORKSPSACES section + remaining emoji icons replaced
...
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
- base.html: séparateur entre version et Log out, _local_workspaces_for_user
- board.py: _local_workspaces_for_user helper, app_version, fix emoji icons
- dashboard.py: _local_workspaces_for_user helper
- library.html: 📚 📁 📄 🕒 ⭐ 👥 🌐 🔒 📦 → SVG + icon map
- workspaces.html: 📁 🔍 🗑📝 → SVG
- local_workspace.html: page_icon, empty states, icon functions → SVG
- settings.html: 👤 🔔 → SVG nav icons
- _icons.html: +'bell' icon
- CSS: .nav-icon-inline, .empty-state-icon
- 143 tests passent
2026-07-20 20:58:02 -04:00
bruno
5372f4f22f
feat: outline SVG icons + version + workspaces in user menu
...
FlowDeck CI / test (push) Failing after 12s
FlowDeck CI / docker (push) Has been skipped
- _icons.html: 25 outline SVG icons (Feather/Lucide style, stroke=currentColor)
- base.html: toutes les icônes emoji remplacées par {{ fd_icon() }}
- Sidebar sections, empty states, user menu, footer links, context menu
- JS getSvgIcon() helper pour rendu dynamique
- User menu: ajout version (FlowDeck v4.0.3) + liste workspaces locaux
- Entre Switch workspace et Log out, avec ✓ sur le workspace actif
- dashboard.py: _sidebar_data enrichi (app_version, local_workspaces)
- CSS: .page-icon-svg, .um-version, .um-section-label, .um-item svg
- Dark + light theme compatible (stroke:currentColor)
- 143 tests passent
2026-07-20 20:18:50 -04:00
bruno
39b485622d
feat: CSRF token auto-refresh après expiration session
...
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
- app/main.py: GET /api/csrf-token → retourne un token frais JSON + cookie
- app/middleware/csrf.py: /api/csrf-token ajouté aux EXCLUDED_PATHS
- app/templates/base.html:
- FlowDeck.refreshCsrfToken() → appelle /api/csrf-token
- FlowDeck.csrfFetch() → wrapper fetch avec auto-refresh sur 403 CSRF
- Si un POST/PUT/DELETE reçoit 403 'CSRF', refresh automatique + retry
- ROADMAP: item CSRF token refresh marqué ✅
- 143 tests passent
2026-07-20 19:32:43 -04:00
bruno
63773cb904
fix: 4 correctifs UX — workspace +, library empty, settings spacing
...
FlowDeck CI / test (push) Failing after 3s
FlowDeck CI / docker (push) Has been skipped
- Workspaces: bouton bleu '+' maintenant centré, 48px, min-height 140px (plus coupé)
- Library no-workspace: 'Open a Workspace...' avec lien Go to Workspaces au lieu de Loading
- Library: boutons '+ Add new' et 'New page' cachés quand pas de workspace
- Settings: espacement bouton Upload photo (margin-bottom, margin-top augmentés)
- 143 tests passent
2026-07-20 11:21:14 -04:00
bruno
ec3ad6b1de
fix: aligner Search à droite dans la nav sidebar
FlowDeck CI / test (push) Failing after 5s
FlowDeck CI / docker (push) Has been skipped
2026-07-20 11:07:35 -04:00
bruno
cefc7eb356
fix: admin password permanent + Help/My Tasks content rendering
...
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
- main.py: lifespan insère toujours le hash de 'FlowDeck2026!' pour admin
- dashboard.py + my_tasks.py: content_html passe via {% block content %} (Jinja)
- Avant: content_html ignoré car base.html utilise des blocs, pas des variables
- 143 tests passent
2026-07-20 11:02:37 -04:00
bruno
4806097bc5
feat: Help page complète — 6 cartes, raccourcis, auth, tips
...
- Grille 2 colonnes de cartes: Getting Started, Pages, Workspaces, Gitea, Sharing, Library
- Section Keyboard Shortcuts avec style kbd + hover
- Section Authentication avec badges colorés (Local/Gitea/GitHub)
- Section Tips & Tricks
- Style Notion dark élégant, responsive
2026-07-20 10:47:30 -04:00
bruno
0d9c1bf9ee
feat: My Tasks dans base.html (sidebar visible) + Help page complète
...
- /my-tasks: wrappé dans base.html pour garder le sidebar visible
- /help: page d'aide complète avec 5 sections (démarrage, pages, workspaces, intégrations, raccourcis)
- Style élégant Notion dark avec cartes, grille 2 colonnes, badges
- 143 tests passent
2026-07-20 10:46:24 -04:00
bruno
d5ba29714c
feat: remplacer section Notion apps par liens statiques Library/My Tasks/Trash/Help
...
- Section 'Notion apps' retirée
- Liens statiques en bas du sidebar (toujours visibles): Library, My Tasks, Trash, Help
- Nouvelle route /help avec page d'aide (raccourcis, guide rapide)
- Trash visible pour tous (plus de condition sur auth_method)
- 143 tests passent
2026-07-20 10:12:55 -04:00
bruno
79bc1bf1fd
fix: cacher tous les boutons create du sidebar quand aucun workspace actif
...
- Meetings '+' button → gardé avec has_active_workspace
- Sidebar footer 'New page' → gardé avec has_active_workspace
- Context menu New File/New Folder → déjà gardé car l'arbre est caché sans workspace
- Workspace section déjà gardée (commit précédent)
- 143 tests passent
2026-07-20 09:12:03 -04:00
bruno
b2486a6e11
fix: sidebar workspace section — hide create buttons quand aucun workspace actif
...
- Ajout flag has_active_workspace dans _sidebar_data (dashboard.py + board.py)
- Template base.html: quand has_active_workspace=False:
- Titre section → '📁 No workspace open'
- Boutons New File/New Folder cachés
- Message 'Open a workspace to see your files'
- Guard JS newPageInWorkspace()/newFolderInWorkspace(): toast + redirect si pas de workspace
- 143 tests passent
2026-07-20 08:59:00 -04:00
bruno
ed465333e4
feat: v4.0.2 — qualité & robustesse (session expiry UX, validation, mobile, tests)
...
- Session expiry: redirects ajoutent ?expired=1 → bannière "Session expired" sur login
- Page titles: titre vide → 'Untitled' par défaut (au lieu de chaîne vide)
- Error handling: try/catch dans create_page avec message user-friendly (500)
- Mobile responsive: sidebar slide-in, modales centrées, landing page adaptative
- 10 nouveaux tests de non-régression: landing, register, 404, validation, duplicate
- 143 tests passent (133 + 10)
2026-07-20 08:07:22 -04:00
bruno
0a675a94f7
feat: v4.0.1 — onboarding, landing page, smart redirect, register GET, 404 stylé, API unifiée
...
- Landing page / pour visiteurs non-auth (template landing.html)
- Redirection / intelligente: non-auth → landing, auth sans Gitea → local workspace, auth+Gitea → dashboard
- GET /auth/register — page d'inscription dédiée (tab register actif)
- 404 handler stylisé thème Notion sombre (JSON pour /api/*, HTML pour le reste)
- Alias /api/pages GET/POST → /board/api/pages (307 redirect)
- 133 tests passent
2026-07-20 07:55:09 -04:00
bruno
c94dac2bbf
Remove per-file 📚 icon from Recents/Favorites/Shared/Published section items
FlowDeck CI / test (push) Failing after 5s
FlowDeck CI / docker (push) Has been skipped
2026-07-20 06:55:49 -04:00
bruno
29d1ccb3dc
Sidebar: replace '→ Library' text with 📚 icon, remove per-file 📚 in workspace tree
FlowDeck CI / test (push) Failing after 6s
FlowDeck CI / docker (push) Has been skipped
2026-07-20 06:47:45 -04:00
bruno
8d3bb36982
Remove prompt() from createPage() — creates Untitled file directly in correct workspace
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
2026-07-19 22:01:34 -04:00
bruno
98bda37484
Make createPage() and createFolder() context-aware
...
FlowDeck CI / test (push) Failing after 3s
FlowDeck CI / docker (push) Has been skipped
- createPage() now detects active workspace context (library, local-workspace page, sidebar)
- In a local/Gitea workspace: creates workspace item via /api/local-workspace/items with prompt
- No workspace: creates general Notion page via /board/api/pages (no prompt)
- Added hidden #fd-local-ws-id in local_workspace.html to expose workspace_id
- _confirmCreateFolder() passes workspace_id for Gitea workspaces
- Added _getContext() helper that checks multiple context sources in priority order
- Added _toast() helper for cross-component notifications
2026-07-19 21:56:46 -04:00
bruno
9100da74f3
Unify all New Page / New Folder buttons across the app
...
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
- Add global window.FlowDeck namespace with createPage() and showCreateFolderModal()
- createPage() creates a Notion-style page via /board/api/pages (same as sidebar bottom-right button)
- showCreateFolderModal() opens a global themed modal (dark/light) instead of browser prompt()
- All New Page buttons now call window.FlowDeck.createPage()
- All New Folder buttons now call window.FlowDeck.showCreateFolderModal()
- Global New Folder modal uses existing .flowdeck-modal CSS classes for theme consistency
- Updated Ctrl+N keyboard shortcut to use unified createPage()
2026-07-19 21:40:39 -04:00
bruno
74883688ef
fix(library): filtres source/tri/vue + recherche + colonnes masquables + icônes SVG + drag-drop visuel
...
FlowDeck CI / test (push) Failing after 12s
FlowDeck CI / docker (push) Has been skipped
Ajout dropdowns filter/sort/view dans toolbar, recherche inline, colonnes author/source masquables, remplacement emojis par SVG, amélioration styles hover/drag, modal move-to, menus contextuels enrichis.
2026-07-19 21:22:59 -04:00
bruno
a5242ee79b
fix(library): augmenter opacité hover-only 0.4→0.55, dots plus visibles, bouton OPEN amélioré
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
2026-07-19 15:15:44 -04:00
bruno
10d10b28c8
debug: log offsetHeight
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
2026-07-19 15:09:27 -04:00
bruno
2471119b4a
fix(library): supprimer tous les x-show (loading, empty) — _renderTable contrôle tout
FlowDeck CI / test (push) Failing after 8s
FlowDeck CI / docker (push) Has been skipped
2026-07-19 15:07:48 -04:00
bruno
02cf759ec8
debug(library): add console.log in _renderTable
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
2026-07-19 15:04:44 -04:00