Commit graph

39 commits

Author SHA1 Message Date
dffc925bb6 refactor: Change logging level from info to debug for download and JS messages
Some checks failed
Tests & Quality Checks / Test on Python 3.11 (push) Has been cancelled
Tests & Quality Checks / Test on Python 3.12 (push) Has been cancelled
Tests & Quality Checks / Test on Python 3.11-1 (push) Has been cancelled
Tests & Quality Checks / Test on Python 3.12-1 (push) Has been cancelled
Tests & Quality Checks / Test on Python 3.10 (push) Has been cancelled
Tests & Quality Checks / Test on Python 3.11-2 (push) Has been cancelled
Tests & Quality Checks / Test on Python 3.12-2 (push) Has been cancelled
Tests & Quality Checks / Build Artifacts (push) Has been cancelled
Tests & Quality Checks / Build Artifacts-1 (push) Has been cancelled
2026-02-18 13:19:38 +01:00
6d8af7f8fb fix: Improve checkout data handling in response processing 2026-02-18 13:14:17 +01:00
de98623ee0 Add application icon in PNG format to resources/icons directory 2026-02-18 13:07:01 +01:00
4011f46ab7 fix: Add error handling for script injection and improve logging for URL mappings 2026-02-18 10:28:15 +01:00
0eba82b8af feat: Enhance drag interception with dynamic URL pattern matching configuration injection 2026-02-18 10:15:42 +01:00
ae5c86814f Remove obsolete WebDrop Bridge scripts: bridge_script.js, bridge_script_debug.js, bridge_script_drop_intercept.js, bridge_script_hybrid.js, bridge_script_v2.js 2026-02-18 09:29:33 +01:00
c32453018b feat: Improve dragstart handler installation with retry logic for Angular handlers 2026-02-18 08:06:11 +01:00
e91a2445f3 feat: Implement asynchronous checkout status check with improved error handling and logging 2026-02-18 08:01:33 +01:00
2a9926d934 feat: Enhance checkout process by checking asset status before prompting user 2026-02-18 07:41:28 +01:00
dee02ad600 Add drag & drop script variants and enhanced debugging tools
- Introduced multiple JavaScript scripts for handling drag & drop functionality:
  - `bridge_script.js`: Original implementation with popup prevention.
  - `bridge_script_debug.js`: Debug version with extensive logging for troubleshooting.
  - `bridge_script_v2.js`: Enhanced version extending DataTransfer for better integration.
  - `bridge_script_hybrid.js`: Hybrid approach allowing parallel native file drag.
  - `bridge_script_drop_intercept.js`: Intercepts drop events for custom handling.
  - `bridge_script_intercept.js`: Prevents browser drag for ALT+drag, using Qt for file drag.

- Added detailed documentation in `SCRIPT_VARIANTS.md` outlining usage, status, and recommended workflows for each script.
- Implemented logging features to capture drag events, DataTransfer modifications, and network requests for better debugging.
- Enhanced DataTransfer handling to support Windows-specific file formats and improve user experience during drag & drop operations.
2026-02-17 19:19:14 +01:00
88dc358894 Refactor drag handling and update tests
- Renamed `initiate_drag` to `handle_drag` in MainWindow and updated related tests.
- Improved drag handling logic to utilize a bridge for starting file drags.
- Updated `_on_drag_started` and `_on_drag_failed` methods to match new signatures.
- Modified test cases to reflect changes in drag handling and assertions.

Enhance path validation and logging

- Updated `PathValidator` to log warnings for nonexistent roots instead of raising errors.
- Adjusted tests to verify the new behavior of skipping nonexistent roots.

Update web application UI and functionality

- Changed displayed text for drag items to reflect local paths and Azure Blob Storage URLs.
- Added debug logging for drag operations in the web application.
- Improved instructions for testing drag and drop functionality.

Add configuration documentation and example files

- Created `CONFIG_README.md` to provide detailed configuration instructions for WebDrop Bridge.
- Added `config.example.json` and `config_test.json` for reference and testing purposes.

Implement URL conversion logic

- Introduced `URLConverter` class to handle conversion of Azure Blob Storage URLs to local paths.
- Added unit tests for URL conversion to ensure correct functionality.

Develop download interceptor script

- Created `download_interceptor.js` to intercept download-related actions in the web application.
- Implemented logging for fetch calls, XMLHttpRequests, and Blob URL creations.

Add download test page and related tests

- Created `test_download.html` for testing various download scenarios.
- Implemented `test_download.py` to verify download path resolution and file construction.
- Added `test_url_mappings.py` to ensure URL mappings are loaded correctly.

Add unit tests for URL converter

- Created `test_url_converter.py` to validate URL conversion logic and mapping behavior.
2026-02-17 15:56:53 +01:00
4ab44c83ba feat: Enhance update check and download processes with safety timeouts and logging 2026-01-30 13:09:50 +01:00
f4eb511a1c feat: Implement timeout handling and background processing for update feature 2026-01-30 12:09:03 +01:00
c97301728c feat: Add settings button and dialog for configuration management 2026-01-30 11:31:52 +01:00
8e97f85c64 feat: Add window title configuration and update related components and tests 2026-01-30 11:28:23 +01:00
c621e63a8d feat: Enhance navigation toolbar with help actions and update related tests 2026-01-30 11:22:33 +01:00
f701247fab fix: Implement drag-and-drop functionality with QWebChannel integration 2026-01-30 08:17:01 +01:00
b2681a9cbd fix: Remove type ignore comments for web view page actions 2026-01-30 07:10:42 +01:00
64378f753b feat: Add user feedback dialog for manual update checks and handle dialog closure 2026-01-29 15:52:59 +01:00
e57e822bed fix: Improve background thread management and error handling in update check 2026-01-29 15:27:00 +01:00
a8eaa84310 fix: Specify type for log level combo box and adjust method signature 2026-01-29 12:53:54 +01:00
8b0df0e04f Add unit tests for configuration management and settings dialog
- Implement tests for ConfigValidator to ensure proper validation of configuration settings, including valid configurations, required fields, type checks, and error handling.
- Create tests for ConfigProfile to verify profile management functionalities such as saving, loading, listing, and deleting profiles.
- Add tests for ConfigExporter to validate JSON export and import processes, including error handling for non-existent files and invalid JSON.
- Introduce tests for SettingsDialog to confirm proper initialization, tab existence, and configuration data retrieval and application.
2026-01-29 12:52:53 +01:00
db3799a643 Refactor code structure for improved readability and maintainability 2026-01-29 10:19:52 +01:00
4581fd393c fix: Correct method call for retrieving URL in navigation request handler 2026-01-29 10:04:21 +01:00
ca9526c1c1 fix: Ensure release objects are not None in update flow integration tests 2026-01-29 10:02:44 +01:00
6278ef8eed feat: Enhance Help menu with About dialog and update check functionality 2026-01-29 09:09:04 +01:00
50311139bf fix: Correct window flag type for close button hint in update dialogs 2026-01-29 08:48:29 +01:00
41549848ed feat: Implement asynchronous update check on startup with UI integration 2026-01-29 08:44:03 +01:00
5b28c931d8 feat: Add status bar with update status indicator
Status bar implementation:
- Status bar at bottom of main window
- Update status label with emoji support
- set_update_status() method for updates:
  -  Checking for updates
  -  Update available
  -  Downloading update
  -  Update failed
  - Clean status display

Test coverage:
- 8 new tests for status bar
- Test creation and initialization
- Test status updates with/without emoji
- Test all status states (checking, available, downloading, error)
- All 154 tests passing, 86% coverage

Enables visual feedback during update operations
2026-01-29 08:37:53 +01:00
2896f6ba5c feat: Add Help menu with Check for Updates action
Menu implementation:
- Added menu bar to MainWindow
- Help menu with 'Check for Updates...' action
- Signal-based architecture for async update check
- Action triggers check_for_updates signal

Test coverage:
- 3 new tests for menu bar functionality
- Test menu bar creation
- Test signal exists and is callable
- Test callback method exists
- All 146 tests passing, 86% coverage

Design:
- Decoupled menu from update logic
- Emits signal that main app listens to
- Allows async update check without blocking UI
2026-01-29 08:35:21 +01:00
af8e417197 feat: Implement auto-update system with Forgejo releases management 2026-01-29 08:19:42 +01:00
b221ba8436 feat: Add 6 update manager UI dialogs (100% coverage)
Dialog implementations:
1. CheckingDialog - Animated progress while checking for updates (10s timeout)
2. UpdateAvailableDialog - Shows version, changelog, action buttons
3. DownloadingDialog - Progress bar with size display and cancel option
4. InstallDialog - Confirmation with unsaved changes warning
5. NoUpdateDialog - Clean confirmation when up-to-date
6. ErrorDialog - Error handling with retry and manual download options

Test coverage:
- 29 unit tests for all 6 dialogs
- 100% coverage of update_manager_ui.py
- Signal emission testing for all interactive elements
- Progress bar and file display functionality
- Dialog state and flags validation
2026-01-29 08:18:39 +01:00
f0c96f15b8 feat: Implement default welcome page for missing web application
- Added a professional HTML welcome page displayed when no web application is configured.
- Enhanced `_load_webapp()` method to support improved path resolution for both development and bundled modes.
- Updated error handling to show the welcome page instead of a bare error message when the webapp file is not found.
- Modified unit tests to verify the welcome page is displayed in error scenarios.

build: Complete Windows and macOS build scripts

- Created `build_windows.py` for building Windows executable and optional MSI installer using PyInstaller.
- Developed `build_macos.sh` for creating macOS application bundle and DMG image.
- Added logging and error handling to build scripts for better user feedback.

docs: Add build and icon requirements documentation

- Created `PHASE_3_BUILD_SUMMARY.md` detailing the build process, results, and next steps.
- Added `resources/icons/README.md` outlining icon requirements and creation guidelines.

chore: Sync remotes script for repository maintenance

- Introduced `sync_remotes.ps1` PowerShell script to fetch updates from origin and upstream remotes.
2026-01-28 12:59:33 +01:00
dbf8f2b92f Enhance test coverage and refactor code in various modules
- Achieved 85% overall test coverage with detailed results for individual components.
- Added unit tests for DragInterceptor and MainWindow components.
- Refactored imports and removed unused code in multiple files.
- Updated test configurations and ensured compliance with coverage standards.
2026-01-28 11:51:59 +01:00
736b80b8f1 Fix URL retrieval in navigation request handler for restricted web view 2026-01-28 11:47:15 +01:00
6db67ee445 bugfixes 2026-01-28 11:43:31 +01:00
86034358b7 Add URL whitelist enforcement for Kiosk-mode and enhance configuration management
- Introduced `allowed_urls` in configuration to specify whitelisted domains/patterns.
- Implemented `RestrictedWebEngineView` to enforce URL restrictions in the web view.
- Updated `MainWindow` to utilize the new restricted web view and added navigation toolbar.
- Enhanced unit tests for configuration and restricted web view to cover new functionality.
2026-01-28 11:33:37 +01:00
6bef2f6119 Implement configuration management, drag-and-drop functionality, and logging utilities for WebDrop Bridge 2026-01-28 11:21:11 +01:00
61aa33633c Add initial project structure and documentation
- Created architecture documentation outlining high-level design, module organization, data flow, security model, performance considerations, testing strategy, and deployment architecture.
- Added pyproject.toml for project metadata and dependencies management.
- Introduced requirements files for development and production dependencies.
- Set up testing configuration with pytest and tox.
- Established basic directory structure for source code and tests, including __init__.py files.
- Implemented a sample web application (index.html) for drag-and-drop functionality.
- Configured VS Code workspace settings for Python development.
2026-01-28 10:48:36 +01:00