20 Commits

Author SHA1 Message Date
Johannes
99bcbc9e9a feat: Add filtering for system files in FilePreview component
- Implemented  function in  to filter out  and similar system files.
- Updated rendering logic to ensure ignored files are not displayed in the frontend.
- Ensured consistency with backend filtering logic for a seamless user experience.

This change improves the frontend by preventing unnecessary or system files from being
2025-09-14 18:19:28 +02:00
Johannes
bae5afa73f feat: Add admin toggle and dark mode to login page
- Add admin toggle switch to switch between user/admin login modes
- Implement dark mode toggle button in top-right corner
- Style dark mode toggle with adaptive colors and hover effects

Enhances login page with flexible authentication modes and
improved visual customization options for better user experience.
2025-09-14 17:18:01 +02:00
Johannes
c9160136cb fix: Preserve anchor links after login redirect
- Fix onLogin callback to properly set user state
- Use preserveFullUrl() to maintain hash fragments in redirects
- Switch to window.location.assign() for better browser support
- Faster redirect timing (500ms) for improved
2025-09-14 16:48:05 +02:00
Johannes
d36b9de4a6 feat: Viewport lazy loading and video refresh support
- Add intersection observer hooks for viewport detection
- Lazy load iframes and control video autoplay based on visibility
- Extend refresh button to restart videos from beginning
- Show refresh button for both HTML animations and video content
- Add intelligent feedback messages for mixed media types
- Optimize performance by loading media only when in viewport
2025-09-14 16:27:36 +02:00
Johannes
e37bc9e381 refactor: Extract utilities and fix Ant Design message context warnings
- Extract ad utilities to separate files for better code organization
  - Create adUtils.js with generateAdId, copy/refresh handlers
  - Create zoomUtils.js with useZoomState custom hook
  - Create tabUtils.js with buildTabsFromCategories function
- Replace static message API with App.useApp() hook to fix context warnings
- Implement factory pattern for utility functions with callback support
- Improve code separation, testability and maintainability
- Remove direct antd context dependencies from utility functions

Components now follow single responsibility principle with clean separation
between business logic and UI concerns.
2025-09-14 16:08:56 +02:00
Johannes
d465fbeb94 feat: Add conditional iframe refresh button for animated HTML ads
- Add ReloadOutlined icon import for refresh functionality
- Implement handleRefreshAd() to reload iframes with cache-busting timestamps
- Add refresh button next to share button with consistent styling
- Show refresh button only for ads containing HTML files (iframe content)
- Add user feedback messages for successful refresh operations
- Prevent unnecessary refresh buttons on image-only or video-only ads

HTML ads with animations can now be restarted without full page reload.
Button appears conditionally based on file type detection.
2025-09-14 15:54:39 +02:00
Johannes
71b4d3f845 feat: Add anchor link sharing for ads with scroll offset
- Add generateAdId() function to create unique hashes from ad names and categories
- Implement handleCopyLink() to copy shareable links with anchor fragments
- Add scroll-to-anchor functionality with 20px offset to avoid navigation overlap
- Add visual highlight animation when navigating to shared links
- Import message component for user feedback on successful copy operations

Each ad now gets a unique ID and share button that copies a direct link.
Shared links automatically scroll to the target ad with proper offset.
2025-09-14 15:40:28 +02:00
Johannes
713a1156c4 refactor: Rename project order file and clean up file structure
- Rename project_order.json to order_project.json for consistency with order_ads.json naming convention
- Update all references in ProjectService and ProjectsController
2025-09-14 11:26:09 +02:00
Johannes
233a952c04 fix: make mobile header truly fixed to prevent horizontal scrolling
- Change mobile header from sticky to fixed positioning
- Add left, right, and width properties for full viewport coverage
- Prevent header from scrolling horizontally with wide content
- Add top padding to mobile content to compensate for fixed header
- Ensure consistent behavior between mobile and desktop navigation
- Fix content being hidden behind fixed header on mobile devices
2025-09-12 18:16:56 +02:00
Johannes
8ab35c79af feat: implement mobile-responsive tab navigation with select dropdown
- Replace tabs with select dropdown on mobile devices for better UX
- Add responsive Layout.Header for mobile with proper styling
- Implement hybrid CSS approach: static styles in CSS, dynamic in inline
- Add mobile-specific select styling with transparent background
- Remove unused CaretDownOutlined import, use EllipsisOutlined for dropdown
- Optimize mobile header layout with compact zoom controls
- Separate mobile and desktop rendering logic for better maintainability
- Add CSS class for mobile project header with proper positioning
2025-09-12 18:07:53 +02:00
Johannes
1390e35efe feat: implement tabs overflow with more functionality and UI improvements
- Add tabs overflow handling with EllipsisOutlined more button
- Simplify tabs styling by removing dynamic CSS injection
- Add consistent background and color styling for tab navigation
- Improve zoom controls with circular buttons and proper icons
- Style more button and disabled states for better visibility
- Clean up unused CSS rules and improve maintainability
- Fix tab bar extra content layout using div instead of span
2025-09-12 17:21:22 +02:00
Johannes
fd3fc6bcc2 fix: correct .gitignore pattern for workspace files
- Change from .code-workspace to *.code-workspace to match all workspace files
- Ensures proper exclusion of VS Code workspace configurations
2025-09-09 18:50:59 +02:00
Johannes
754ee5b923 fix: remove .code-workspace file from repository
- Remove accidentally tracked .code-workspace file
- File is now properly ignored by .gitignore pattern
2025-09-09 18:49:07 +02:00
Johannes
501dc92119 feat: UI improvements and responsive design enhancements
- Fix dark mode overscroll areas with proper background colors
- Add mobile responsiveness for project logos in header
- Improve viewport handling with interactive-widget support
- Update app title to proper case 'AdsPreview'
- Add mobile-friendly padding adjustments for tabs and headers
- Update .gitignore to exclude .code-workspace files
- Enhance CSS with anticon color overrides and mobile breakpoints
2025-09-09 18:45:39 +02:00
Johannes
df746eae6a refactor: modularize ProjectsController into service-based architecture
- Split monolithic 600+ line controller into 5 focused service classes
- AuthorizationService: centralized auth/permission handling
- FileSystemService: path management and file operations
- MediaAnalysisService: image/video metadata extraction
- ProjectService: business logic for project operations
- AdsOverviewService: complex recursive tree generation

- Apply Single Responsibility Principle for better maintainability
- Preserve all existing functionality and API compatibility
- Remove temporary backup and development files
- Improve code organization and reusability
2025-09-07 17:18:09 +02:00
Johannes
a6ae81f5b5 feat: Add SSH-Key support for secure deployment authentication
- upload.sh: Conditional SSH-Key vs. password authentication
- Automatic detection of SSH-Keys via FTP_SSH_KEY variable
- CloudPanel-compatible SSH-Key integration
- .env.upload.example: Added SSH-Key documentation
- Secure SFTP uploads without passwords in code
2025-09-07 15:46:11 +02:00
Johannes
58764765dd fix: Add SSH port support and exclude deployment build from Git
- Updated .gitignore to exclude /deployment/build/ directory
- Added FTP_PORT configuration to .env.upload.example
- Enhanced upload.sh to support custom SSH ports (default 22, configurable)
- Deployment build artifacts are now properly excluded from version control

The upload script now correctly handles custom SSH ports like 2222.
2025-09-07 14:48:45 +02:00
Johannes
d4de83ceb1 docs: Add comprehensive area/ directory structure documentation
- Created AREA_STRUCTURE.md with complete guide for media file organization
- Includes JSON configuration examples and naming conventions
- Added security guidelines and setup checklist
- Updated DEPLOYMENT.md to reference new documentation

This helps users understand how to structure their project data and media files
outside of the Git repository for security and size optimization.
2025-09-07 14:10:44 +02:00
Johannes
7136131fcd cleanup: remove temporary files from security cleanup
- Removed .gitignore-temp
- Removed BFG report files
- Repository is now clean and ready for development
2025-09-07 11:15:45 +02:00
Johannes
b4758b4f26 security: clean repository without media files and sensitive data
- Removed area/ directory with 816MB of media files
- Removed sensitive FTP credentials from Git history
- Implemented .env.upload system for secure deployments
- Added comprehensive .gitignore for future protection

This commit represents a clean slate with all sensitive data removed.
2025-09-07 11:05:29 +02:00