Create separate item form components:
- Created epg_source_item_form.rs for EPG sources
- Created alias_item_form.rs for input aliases
- Created trakt_list_item_form.rs for Trakt lists
Refactor parent forms:
- input_form.rs now uses EpgSourceItemForm and AliasItemForm
- output_xtream_form.rs now uses TraktListItemForm
- Add-buttons toggle form visibility instead of inline inputs
- Each item form has Cancel/Submit buttons
- Removed inline form reducers, moved to item forms
UI improvements:
- Consistent form pattern across all list items
- Better UX with explicit Cancel/Submit workflow
- Cleaner code without dyn_into DOM manipulation
i18n updates:
- Added EPG_SOURCE_URL, EPG_SOURCES, ADD_EPG_SOURCE labels
- Added ALIAS_NAME, ADD_ALIAS labels
- Added all Trakt labels (TRAKT_USER, TRAKT_LIST_SLUG, etc.)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Added TraktListConfigFormState reducer for add form
- Replaced raw HTML inputs with edit_field_* macros
- Removed dyn_into DOM element casting
- Use Select component for content type dropdown
- More consistent with existing form patterns
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
input_form.rs:
- Remove HashMap from generate_form_reducer macro (not supported)
- Add separate use_state for headers management
- Load headers from input in use_effect_with
- Update KeyValueEditor to use headers_state instead of form state
- Set headers in handle_apply_input callback
trakt.rs:
- Add Display trait for TraktContentType enum
- Add FromStr trait for TraktContentType enum
- Enables dropdown functionality for content type selection
These fixes resolve compilation errors related to:
- Unsupported HashMap type in form reducer macro
- Missing trait implementations for enum conversions
- Document completed form implementations
- Add statistics for all code changes
- List all implemented DTO fields
- Document translation keys needed
- Add quick reference commands
- Update current branch and status
ConfigInputDto enhancements:
- Add headers field (HashMap) with KeyValueEditor component
- Add epg field with sources list (EpgSourceDto)
- Add aliases field (Vec<ConfigInputAliasDto>) with full editing
- Add exp_date field with date picker support
- Add new Advanced tab for EPG, headers and aliases
- Implement form reducers for EpgSourceDto and ConfigInputAliasDto
XtreamTargetOutputDto enhancements:
- Add complete trakt field (TraktConfigDto) implementation
- Add TraktApiConfig section (key, version, url)
- Add TraktListConfig section with list editing
- Implement content_type dropdown (Vod/Series/Both)
- Add fuzzy_match_threshold field (0-100)
- Implement form reducers for TraktApiConfig and TraktListConfig
UI improvements:
- Use KeyValueEditor for key-value pairs
- Add list management for arrays (add/remove buttons)
- Maintain consistent form patterns across components
- Add proper state management for nested structures
- Implement M3u output form with filename, type inclusion and filter fields
- Implement STRM output form with directory, export style and advanced options
- Implement HDHomeRun output form with device and output type selection
- Add FromStr trait implementations for StrmExportStyle and TargetType enums
- Update output_form.rs to route to new form components
- Update module declarations in mod.rs
This completes the form implementation for all output block types,
allowing users to edit M3u, STRM and HDHomeRun configurations
directly in the source editor UI.
- Short EPG is now served from local disk, if available
- WebUI Api-User Category selection implemented
- Stream Table Copy-To-Clipboard functions added
- Refactored provider connection handling to avoid possible race conditions
- Added `exp_date` field to inputs, aliases, and CSV batch files; accepts date in "YYYY-MM-DD HH:MM:SS" format or Unix timestamp (seconds since epoch).