136 Commits

Author SHA1 Message Date
a5afbb1dc1 fix: SSE sync indicator stuck on 'Connexion...' (3 fixes)
1. Move initSyncStatus() AFTER auth check — EventSource was connecting
   before the access_token cookie was available, causing 401 errors.

2. Reconnect SSE after login — Login form handler now calls
   IndexUpdateManager.connect() + showWelcome() after successful auth.

3. SSESafeGZipMiddleware — GZip buffering breaks Server-Sent Events
   streaming. Custom middleware subclass skips compression for
   /api/events endpoint (path-based bypass).
2026-05-27 21:40:32 -04:00
d6cf2a1a7f Remove vault filter dropdown from dashboard 2026-05-27 15:57:59 -04:00
6e742bfa2c Adjust dashboard tab styling for responsive layout 2026-05-27 15:23:50 -04:00
b5aae2b2fd Reduce dashboard tab padding and font, enlarge icons 2026-05-27 15:09:08 -04:00
b879163052 Refine mobile styles and improve search, sidebar, and layout 2026-05-27 12:55:46 -04:00
a7c719afb1 Prioritize autocomplete dropdown over search results on Enter keypress 2026-05-27 12:25:25 -04:00
fcf134d37e Always show tags section with placeholder or error message 2026-05-27 12:01:23 -04:00
73593f5e89 Remove duplicate _collectItems call 2026-05-27 11:54:24 -04:00
c3d583177a Handle aborted requests by returning early 2026-05-27 11:51:10 -04:00
96218f872e Avoid flashing loading state on fast search queries 2026-05-27 11:39:37 -04:00
56b2a004f9 Show loading state while fetching suggestions 2026-05-27 10:56:44 -04:00
e5b5f2d4f4 Limit search history to 5 items and isolate suggestion fetches 2026-05-27 09:59:35 -04:00
586acbe9a1 Keep the dropdown hidden after search execution 2026-05-27 09:45:22 -04:00
0d3de28967 Simplify sidebar tabs, improve saved search display, and refactor
suggestions
2026-05-27 09:27:26 -04:00
1c59300f11 Remove stray extra closing brace 2026-05-27 08:44:18 -04:00
e3c25b5b09 Add saved searches with CRUD API and UI sidebar
Add extension field to search results and display it
Add active filter badges and save button to search header
2026-05-27 08:39:52 -04:00
aa2c05b05f Add regex search with highlighted snippet support 2026-05-27 08:15:39 -04:00
0630aeba77 Remove case-sensitive toggle and reset search options on clear 2026-05-27 08:01:57 -04:00
dc9684e56c Remove deprecated PDF endpoint and update frontend download actions
Remove the old HTML-based PDF download endpoint in favor of the new
WeasyPrint-based one, and replace the generic "Télécharger" button
in popout.html with a dedicated .md download and a new PDF button.
Also remove the unused generic download button from the main file view.
2026-05-26 21:55:42 -04:00
c79202716c Add WeasyPrint PDF export for markdown files 2026-05-26 21:22:02 -04:00
9752b18529 Add dark theme support and bookmark status to share view
- Implement dark/light theme toggle with persistent preference via
  localStorage
- Add a sticky toolbar with theme toggle, Markdown export, and PDF
  export buttons
- Update bookmark button to reflect current state with visual feedback
- Introduce CSS custom properties for theming and responsive layout
  improvements
2026-05-26 20:19:58 -04:00
d4896a5df1 Sync YAML frontmatter with share and bookmark actions 2026-05-26 20:02:37 -04:00
32a41532ba Auto-set Content-Type for JSON HTTP requests
- Add automatic Content-Type header injection for JSON string bodies
- Explicitly set Content-Type on bookmark toggle and share creation
  calls
- Add escapeHtml helper function for safe string handling
2026-05-26 15:46:26 -04:00
b1fcc080e5 Add bookmark support and enhance share dialog
- Add bookmark button to file header and context menu
- Implement toggle bookmark API call with toast notification
- Redesign share dialog to show existing shares with revocation
- Add expiration options when creating a new share
- Add CSS styles for share action buttons
2026-05-26 15:40:02 -04:00
20f9bad9c0 Replace replace UI with search result navigation 2026-05-26 15:25:20 -04:00
6cd981f9bc Move search state variables to module scope 2026-05-26 14:37:44 -04:00
f2170e9ac8 Guard against missing search elements and restyle search layout 2026-05-26 14:05:26 -04:00
8fdcdaf412 Add search toggles, path filters, and find/replace functionality 2026-05-26 13:35:38 -04:00
872a3e56dd Refactor file opening to use TabManager and add dashboard tab system 2026-05-26 12:14:47 -04:00
b38f3f16e4 Coalesce index generation increments and add rebuild cooldown 2026-05-26 11:42:47 -04:00
0b611a8735 Add share, webhook, and conflict management features 2026-05-26 11:00:48 -04:00
482937fb30 Add audit logging, rate limiting, secret redactor, and backlinks
Implement several security and feature improvements across the backend
and frontend:
- New IP-based rate limiter for authentication endpoints
- New audit logging system for sensitive operations
- New secret redactor to mask sensitive patterns in rendered content
- Configurable token TTL and IGNORED_DIRS via environment variables
- Add backlink index and API endpoint
- Add preview tab support with single/double-click behavior in tree
- Add file backup before write/delete operations
2026-05-26 10:27:00 -04:00
c65063fbca Update README docker-compose syntax and add incremental sidebar refresh
Implement `incrementalLoadDirectory` to update tree items without full
DOM
rebuild. Modify `refreshSidebarTreePreservingState` to use incremental
updates for expanded vaults and directories, preserving existing DOM
state.
2026-05-25 22:05:40 -04:00
9ce95eda2d Remove toast notification for silent auto-indexing
Replace `loadVaults()` and `loadTags()` calls with state-preserving
sidebar and tag refresh functions after silent indexing
2026-05-25 21:54:25 -04:00
e84b66a257 Add fallback clipboard copy and wrap content in layout container 2026-05-25 21:21:41 -04:00
370420aa00 ajout de fonctionnalités 2026-05-25 20:21:42 -04:00
e1fcbe9ce7 feat: expand CSP connect-src directive and add async loading guard for highlight.js in popout view
- Add cdnjs.cloudflare.com, fonts.googleapis.com, and fonts.gstatic.com to connect-src CSP directive
- Add waitForHljs helper function with 50 attempt limit and 100ms polling interval
- Check if hljs is defined before highlighting code blocks in popout view
- Fall back to async waiting if hljs not immediately available to prevent undefined reference errors
2026-04-12 17:06:35 -04:00
ddb73461da feat: extract expandDirectoryInSidebar helper and add debouncing to breadcrumb navigation clicks
- Extract expandDirectoryInSidebar function to handle directory expansion logic with loading and chevron icon updates
- Replace inline directory expansion code in focusPathInSidebar with calls to new helper function
- Add busy state tracking to breadcrumb click handlers to prevent rapid successive clicks
- Disable pointer events during breadcrumb navigation execution
- Make breadcrumb onClick handlers async to support
2026-03-31 22:22:45 -04:00
0362d4dfeb feat: add center alignment option to scrollToElement and update breadcrumb navigation to center focused items
- Add "center" alignment option to scrollToElement function alongside existing top/default alignment
- Calculate centered scroll position by centering element vertically in viewport
- Update all breadcrumb navigation calls to use center alignment instead of top/false alignment
- Refactor targetTop calculation with ternary operator for cleaner conditional logic
2026-03-31 21:59:51 -04:00
78f7fd6a53 feat: improve dashboard navigation to files by focusing parent directory and syncing active state
- Extract getParentDirectoryPath helper to get parent directory from file path
- Extract syncActiveFileTreeItem helper to manage active tree item highlighting
- Update dashboard file navigation to focus parent directory with expansion instead of file itself
- Manually sync active state after navigation to ensure file is highlighted in tree
- Refactor openFile to use new syncActiveFileTreeItem helper
2026-03-31 21:26:45 -04:00
30b1d5fc93 feat: auto-expand collapsed directories when focusing path in sidebar from dashboard navigation
- Add expandTarget option to focusPathInSidebar function to control directory expansion behavior
- Check if target directory is collapsed and click to expand before highlighting
- Pass expandTarget: true when navigating to directories from dashboard to ensure visibility
- Add async delay after expansion to allow DOM update before path highlighting
2026-03-31 21:03:39 -04:00
84d3ad0e90 feat: add ext: operator for file extension filtering in advanced search
- Add ext: operator support to query parser in backend and frontend
- Update search documentation in README and help modal with ext: examples
- Parse ext: operator to extract file extension filter (strips leading dot, converts to lowercase)
- Filter search candidates by file extension in advanced_search function
- Add ext chip display in search UI alongside existing tag/vault/title/path chips
- Update API documentation and function
2026-03-31 13:41:07 -04:00
4c4b8be215 feat: redesign help modal with enhanced hero section, improved navigation styling, and card-based layout
- Increase help container max-width from 960px to 1320px for wider layout
- Add overflow-y auto and scroll-behavior smooth to help-body
- Redesign help navigation with wider sidebar (260px), softer background colors, and rounded pill-style links
- Add emoji icons to all navigation menu items for better visual hierarchy
- Transform navigation links with rounded borders, gradient backgrounds on
2026-03-31 13:15:25 -04:00
7dc7e9932b feat: hide vault filter dropdown menu item by adding hidden class to label element 2026-03-31 11:54:19 -04:00
309f945751 feat: add CodeMirror-based file editor with modal interface and syntax highlighting
- Import CodeMirror 6 modules via ESM with importmap for @codemirror/state
- Add editor modal UI with header, cancel/save buttons, and editor body container
- Implement openEditor function to load file content and initialize CodeMirror with language-specific syntax highlighting
- Support 20+ file extensions including markdown, python, javascript, html, css, json, xml, sql, php, cpp, java, rust, and shell scripts
2026-03-31 11:48:14 -04:00
f2de0d9456 feat: redesign dashboard card icons with outlined style and larger size
- Increase icon container size from 28px to 40px
- Change from solid accent background to transparent with 2px accent border
- Update border-radius from 6px to 8px
- Change icon color from white to accent color
- Increase SVG icon size from 20px to 24px
- Add flexbox centering for better icon alignment
2026-03-31 07:38:13 -04:00
1c2e867585 fix: rename icon variable to iconContainer to avoid shadowing Lucide icon function 2026-03-30 23:14:42 -04:00
f539d02bcd fix: add error handling for dashboard card icon creation with fallback to default file icon 2026-03-30 23:10:52 -04:00
01841b8abe feat: expand file extension icon mappings and use dynamic icons in dashboard cards
- Add comprehensive file extension mappings organized by category (text, web, programming, data, config, shell, documents, images, audio, video, archives, fonts)
- Add support for 100+ file extensions including modern languages (Rust, Go, Swift, Kotlin, Zig, etc.)
- Add media file support (images, audio, video) with appropriate icons
- Add archive and font file type mappings
- Replace hardcoded SVG in dashboard cards with dynamic icon
2026-03-30 23:00:35 -04:00
4ede1a4fb1 feat: update tree item and action button icons to use accent color instead of secondary/muted colors 2026-03-30 22:44:22 -04:00