99 Commits

Author SHA1 Message Date
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
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
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
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
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
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
413524c3bf feat: introduce initial ObsiGate Single Page Application with Python backend for vault browsing and search. 2026-03-26 21:02:58 -04:00
ec97d75e59 feat: Implement the initial ObsiGate vanilla JavaScript single-page application frontend. 2026-03-26 20:32:28 -04:00
3ae430aaa6 feat: implement core backend API with data models, SSE, index management, and initial admin bootstrap. 2026-03-26 20:18:56 -04:00
2b69c49ed1 refactor: remove hidden files indexing configuration and convert to UI-only display preference, eliminating includeHidden and hiddenWhitelist from vault config and indexing logic while adding hideHiddenFiles client-side filtering 2026-03-26 19:53:40 -04:00
34f4e41419 feat: add comprehensive error handling and logging for vault settings save operations with permission error detection and detailed error messages in UI toast notifications 2026-03-26 16:00:27 -04:00
2686cc5d11 feat: add dynamic button state updates for hidden files config with modified vault count display and visual highlights to indicate unsaved changes 2026-03-26 15:17:55 -04:00
ac962bd416 feat: add per-vault reindexing with selective reload based on modified vaults, simplify hidden files whitelist logic to include all sub-hidden files when parent is whitelisted, and auto-uncheck includeHidden when adding whitelist items 2026-03-26 15:08:01 -04:00