14 Commits

Author SHA1 Message Date
Jarian Cottingham
4764bedafc Add file editing via double-click and fix TVDB ID appending logic
- Add double-click handler to make file names editable in UI
- Remove duplicate IPC handler for rename-file in renderer.js
- Fix checkEpisodeCountMatch to properly validate sequential episodes
- Fix begin-mapping to handle both season folder and show folder cases
- Improve open-file-in-player handler to properly log results
2026-02-26 19:20:15 -06:00
Jarian Cottingham
ec8af7782d fix: Implement proper tagging feature with file movement
- Fix handleTagClick to unselect other tags when selecting new tag
- Add handlePlayButtonClick to move individual tagged files
- Add 'behind-the-scenes' tag support to main.js
- Map tag types to Jellyfin-compatible folder names
- Add comprehensive test coverage (24 new tests)
- Fix displayCreatedFolder folder name mapping issue

This implements the full tagging workflow: tag a file with extra/
behind-the-scenes/delete, then click play button to move it to the
appropriate folder.
2026-02-25 10:13:05 -06:00
Jarian Cottingham
1400a593a6 Add handleTagClick method and event listeners for tag icons 2026-02-25 09:15:19 -06:00
Jarian Cottingham
c82c5b9138 Fix behind-the-scenes tag class name and tagType consistency 2026-02-25 09:13:19 -06:00
Jarian Cottingham
ccf136fe2b Change behind-the-scenes icon from clapperboard to movie camera 2026-02-25 09:10:55 -06:00
Jarian Cottingham
a47857681e Rename commentary tag to behind-the-scenes (Jellyfin compatible) 2026-02-25 09:09:52 -06:00
Jarian Cottingham
03586ee420 Fix episode arrow buttons and expand test suite to 111 tests 2026-02-25 08:42:52 -06:00
Jarian Cottingham
4d7d476a44 Refactor renderer.js into modular class-based architecture
- Split renderer.js into 9 manager classes following SOLID principles:
  * AppState - State management
  * EpisodeManager - Episode numbering and range editing
  * TagManager - File tagging system
  * SearchManager - TheTVDB search integration
  * FileManager - Directory and file operations
  * ModalManager - Video preview modals
  * ProgressManager - Progress display
  * FileListManager - File list rendering and drag/drop
  * UIManager - Main UI coordinator

- Add comprehensive test suite (test-renderer-classes-comprehensive.js)
  with 100+ tests covering all business logic
- Fix drag/drop handler 'this' binding issues
- Add CSS for highlighted episodes and improved file list styling
- Restore all original functionality including episode cascading,
  tagging system, TVDB search, and Jellyfin naming
2026-02-25 02:47:35 -06:00
Jarian Cottingham
d0c70ca3e2 Refactor renderer.js into modular class-based structure
- Split large renderer.js file into 8 separate class files:
  - AppState.js: Manages application state
  - FileListManager.js: Handles file list display and manipulation
  - TagManager.js: Manages file tagging functionality
  - EpisodeManager.js: Handles episode number editing and highlighting
  - SearchManager.js: Manages TVDB search and show selection
  - FileManager.js: Handles file operations
  - ModalManager.js: Manages video preview modal
  - ProgressManager.js: Manages progress display
  - UIManager.js: Main coordinator for UI functionality
- Follows SOLID principles and single responsibility
- Improves code maintainability and testability
- All syntax verified with node --check
2026-02-25 02:32:08 -06:00
Jarian Cottingham
13fd64aa9d Fix play button, add progress spinner, folder navigation, and UI improvements 2026-02-22 01:38:48 -06:00
Jarian Cottingham
220cbe1e0b Split quality and frame rate into separate columns. Files now display quality and fps in separate columns for cleaner presentation. 2026-02-18 21:33:49 -06:00
Jarian Cottingham
be050b0057 Added quality column feature. Files now display quality information like 1080p30fps or 720p60fps. Enhanced error handling for problematic files with visual labeling and quality extraction. 2026-02-18 21:32:35 -06:00
Jarian Cottingham
21d6a65643 Enhanced error handling for problematic files with visual labeling. Fixed ffprobe issues with files like IGPX - The Complete Stage - Disc 2_t08.mkv. Added ⚠️ label for files that fail to process. Application now continues working normally even when encountering problematic media files. 2026-02-18 21:27:04 -06:00
Jarian Cottingham
c50bcb2cca Add ffmpeg integration for video duration detection and display in mm:ss format 2026-02-18 20:52:55 -06:00