117 Commits

Author SHA1 Message Date
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
10a312ae89 feat: wrap tree item text in span elements and improve text overflow handling with flexbox
- Wrap vault, directory, and file names in span.tree-item-text elements
- Add flex: 1 to tree-item-text to enable proper text truncation
- Set min-width: 0 on tree-item and tree-item-text to allow flex shrinking
- Move overflow and text-overflow styles from tree-item to tree-item-text
- Update icon colors: use text-secondary for default, accent for active/vault items
2026-03-30 21:50:29 -04:00
f51c4e848d feat: update action button icon from ellipsis to more-vertical and fix icon rendering scope
- Change action button icon from 'ellipsis' to 'more-vertical' for better visual consistency
- Update safeCreateIcons call to render all icons globally instead of scoping to button element
2026-03-30 21:19:06 -04:00
1a575020e6 feat: improve action button visibility with explicit styling and icon rendering
- Add explicit border and background colors to action buttons for better visibility
- Ensure Lucide icons are properly rendered in action buttons with deferred safeCreateIcons call
- Adjust badge margin to prevent overlap with action buttons
- Add z-index to action buttons to ensure proper layering
2026-03-30 21:12:22 -04:00
9a812eb34a feat: make action buttons always visible on all tree items
- Remove hover-based opacity transitions for action buttons
- Set action buttons to always visible (opacity: 1, pointer-events: auto)
- Remove desktop hover states and mobile/touch device media queries
- Simplify CSS by eliminating conditional visibility logic
2026-03-30 21:08:18 -04:00
db812a6176 feat: add action buttons and long-press support for vault tree items with mobile-friendly context menus
- Add action buttons (ellipsis icon) to vault, directory, and file tree items
- Implement long-press gesture detection for mobile devices with 550ms delay and 10px movement threshold
- Show action buttons on hover for desktop and always visible on mobile/touch devices
- Position context menus near action buttons to prevent off-screen rendering
- Prevent click events from firing after long-press ges
2026-03-30 20:56:34 -04:00
628a664c59 feat: implement inline rename for files and directories with state preservation
- Replace placeholder inline rename with full implementation
- Add input validation for file/directory names with character restrictions
- Handle file extensions separately during rename operations
- Update current path when renaming open files or parent directories
- Replace refreshVaultTree calls with refreshSidebarTreePreservingState to maintain tree expansion state
- Add keyboard shortcuts (Enter to submit, Escape to cancel)
2026-03-30 15:53:42 -04:00
32c1bad1a1 feat: add context menu support for vault items with create file/directory operations 2026-03-30 15:44:16 -04:00
d3b9298dfa feat: add file and directory management endpoints with context menu support
- Add POST/PATCH/DELETE endpoints for directory operations (create, rename, delete)
- Add POST/PATCH endpoints for file operations (create, rename)
- Implement writable vault check to prevent modifications on read-only vaults
- Update file delete endpoint to broadcast SSE events and update index
- Add Pydantic models for all new request/response schemas
- Integrate context menu support in frontend for files and directories
- Broadcast real
2026-03-30 15:26:44 -04:00
d26a40a99d feat: initialize frontend structure with login screen, search interface, and CodeMirror integration 2026-03-27 23:13:59 -04:00
6fc1c59664 feat: initialize ObsiGate frontend with SPA structure, search history, and autocomplete functionality 2026-03-27 23:09:47 -04:00
4e8c36cc61 feat: initialize frontend application structure and search functionality with autocomplete support 2026-03-27 23:04:42 -04:00
9e1b4f4105 feat: add initial frontend SPA for vault browsing, advanced search, and markdown rendering. 2026-03-27 21:29:22 -04:00
e91cc1c52c feat: implement the initial ObsiGate frontend application with search, history, and autocomplete functionality. 2026-03-27 14:45:07 -04:00
960a06f189 feat: Initialize ObsiGate application with core frontend and backend components. 2026-03-27 14:37:23 -04:00
c72f3369dd feat: implement initial vanilla JS frontend application for ObsiGate. 2026-03-27 14:23:06 -04:00
fff0e94470 feat: add initial implementation of the ObsiGate frontend SPA. 2026-03-27 14:11:07 -04:00
f71d97e06c feat: Implement core application structure with frontend styling, JavaScript, and Python backend services. 2026-03-27 13:54:08 -04:00
4afa0ab5f9 feat: add "Derniers fichiers ouverts" widget to main dashboard
- Replace welcome message with a professional dashboard widget displaying the last opened files.
- Implement configurable file limit via existing settings.
- Design includes responsive grid layout and various UI states (loading, empty, error).
- Introduce new JavaScript module `DashboardRecentWidget` for handling file loading and rendering.
- Ensure accessibility compliance and responsive design breakpoints.
2026-03-27 11:25:08 -04:00
3506d6c45e feat: Implement initial application styling including dark/light theme support and base layout for core components. 2026-03-27 09:55:46 -04:00