- Add delete button with confirmation dialog to InterestDetailsModal
- Implement delete-interest API endpoint
- Add sales pipeline status section with visual indicators
- Update UI states to handle deletion loading states
- Add color-coded sales process level selection
Implement browser-specific download methods to ensure files download with correct filenames across all browsers. Safari now uses window.location.href while other browsers use blob URLs. Add Content-Disposition header to proxy endpoint for proper filename preservation.
- Implement proxy download endpoint for better mobile Safari compatibility
- Add bulk selection with checkboxes in file browser
- Add bulk actions bar for downloading/deleting selected files
- Replace direct S3 downloads with server-proxied downloads
- Fix download issues on mobile devices by using proper link handling
Replace window.open() with programmatic link creation and click to ensure
file downloads work properly on mobile Safari. Also adds proper filename
handling to preserve extensions during download.
Switch from embed to iframe element for displaying PDFs to improve
cross-browser compatibility and mobile experience. Add responsive
styling with proper positioning and iOS smooth scrolling support.
Adjust preview container heights for mobile devices.
- Implement file/folder rename feature with dialog and API endpoint
- Add rename button to file browser with keyboard shortcuts
- Switch PDF preview from object to embed tag for better compatibility
- Fix CORS issues by fetching preview files as blobs with object URLs
- Add proper cleanup for object URLs to prevent memory leaks
- Add renameObject utility function for MinIO operations
- Add console logging when setting preview proxy URL
- Enhance error handler to capture and log error event details
- Log current preview URL on load failure for debugging
- Create new `/api/files/proxy-preview` endpoint that fetches and serves files directly
- Update FilePreviewModal to use proxy endpoint for images and PDFs
- Set appropriate headers for inline display and caching
- Remove trailing slash from folder display names in file list
- Add logging for generated preview URLs with truncated URL for security
- Remove verbose logging from MinIO listObjectsV2 operations
- Add proper handling for folder prefixes returned by MinIO
- Keep only essential error/debug information in file listing
- Handle folder names properly in getDisplayName by preserving trailing slash
- Add validation to skip invalid objects during listing
- Add default values for missing object properties (size, lastModified, etag)
- Add debug logging for listObjectsV2 operations to help troubleshoot issues
- Add null checks in deleteFolder to prevent errors with invalid objects
Cleaned up console.log statements from MinIO client initialization and file listing operations. Refactored folder detection logic to better handle root level files and nested folder structures in non-recursive mode.
Update Minio configuration to use secure HTTPS connection by:
- Changing port from 9000 to 443 (standard HTTPS port)
- Enabling SSL/TLS encryption (useSSL: true)
This ensures secure communication with the S3-compatible storage service.
- Change MinIO configuration to use non-SSL connection (useSSL: false)
- Add test-connection endpoint to verify MinIO connectivity
- Add comprehensive logging to track connection issues
- Enhance error messages in list files API for better debugging
Added new navigation entry to the interest menu with:
- Route: /dashboard/file-browser
- Icon: mdi-folder
- Title: File Browser
This enables users to access the file browser feature from the dashboard navigation menu.
Remove conditional mobile styling from toolbar buttons and add dedicated
mobile action buttons section with improved card-based layout for better
mobile user experience.
- Use flagcdn.com for country flag images instead of emoji flags
- Add search functionality to filter countries in dropdown
- Expand country list to include all countries worldwide
- Improve country list UI with better layout and styling
- Add error handling for flag image loading failures
- Remove flag property from Country interface
Implement a custom PhoneInput component to replace the third-party v-phone-input library. The new component provides country selection, phone number formatting, and integrates seamlessly with Vuetify's form controls. Updated CreateInterestModal and InterestDetailsModal to use the new component.
Replace basic text fields with v-phone-input in CreateInterestModal and
InterestDetailsModal to provide country selection, validation, and better
UX for phone number entry. Includes US as default with preferred countries
list and search functionality.
- Change dashboard default route to always navigate to interest-list page
- Add horizontal scrolling for data table on mobile devices
- Implement responsive table styles with min-width and no-wrap for better mobile UX
- Remove conditional navigation logic based on portal tags