Files
qbtmud/Lantean.QBTMud/Components/Dialogs/RssRulesDialog.razor
2025-10-21 14:20:25 +01:00

107 lines
6.6 KiB
Plaintext

<MudDialog>
<DialogContent>
<MudGrid>
<MudItem xs="3">
<MudToolBar Class="px-0" Dense>
<MudText Class="no-wrap">Download Rules</MudText>
<MudSpacer />
<MudIconButton Icon="@Icons.Material.Filled.Add" OnClick="AddRule" />
<MudIconButton Icon="@Icons.Material.Filled.Delete" OnClick="RemoveRule" Disabled="SelectedRuleName is null" />
</MudToolBar>
<MudList T="string" SelectionMode="SelectionMode.SingleSelection" SelectedValue="SelectedRuleName" SelectedValueChanged="SelectedRuleChanged">
@foreach (var (ruleName, rule) in Rules)
{
<MudListItem Icon="@((rule?.Enabled ?? true) ? Icons.Material.Filled.CheckBox : Icons.Material.Filled.CheckBoxOutlineBlank)" Text="@ruleName" Value="@ruleName" />
}
</MudList>
</MudItem>
<MudItem xs="6">
<MudGrid>
<MudItem xs="12">
<FieldSwitch Label="Use regular expressions" Value="UseRegex" ValueChanged="UseRegexChanged" Disabled="@(SelectedRuleName is null)" />
</MudItem>
<MudItem xs="12">
<MudTextField T="string" Label="Must contain" Value="MustContain" ValueChanged="MustContainChanged" Disabled="@(SelectedRuleName is null)" Variant="Variant.Outlined" />
</MudItem>
<MudItem xs="12">
<MudTextField T="string" Label="Must not contain" Value="MustNotContain" ValueChanged="MustNotContainChanged" Disabled="@(SelectedRuleName is null)" Variant="Variant.Outlined" />
</MudItem>
<MudItem xs="12">
<MudTextField T="string" Label="Episode filter" Value="EpisodeFilter" ValueChanged="EpisodeFilterChanged" Disabled="@(SelectedRuleName is null)" Variant="Variant.Outlined" />
</MudItem>
<MudItem xs="12">
<FieldSwitch Label="Use smart episode filter" Value="SmartFilter" ValueChanged="SmartFilterChanged" Disabled="@(SelectedRuleName is null)" />
</MudItem>
<MudDivider />
<MudItem xs="12">
<MudSelect T="string" Label="Assign category" Value="Category" ValueChanged="CategoryChanged" Disabled="@(SelectedRuleName is null)" Variant="Variant.Outlined">
<MudSelectItem Value="@("")"></MudSelectItem>
@foreach (var category in Categories)
{
<MudSelectItem Value="@category">@category</MudSelectItem>
}
</MudSelect>
</MudItem>
<MudItem xs="12">
<MudTextField T="string" Label="Add tags" Value="Tags" ValueChanged="TagsChanged" Disabled="@(SelectedRuleName is null)" Variant="Variant.Outlined" />
</MudItem>
<MudItem xs="12">
<FieldSwitch Label="Save to a different directory" Value="SaveToDifferentDirectory" ValueChanged="SaveToDifferentDirectoryChanged" Disabled="@(SelectedRuleName is null)" />
</MudItem>
<MudItem xs="12">
<MudNumericField T="int" Label="Ignore Subsequent Matches for (0 to Disable)" Value="IgnoreDays" ValueChanged="IgnoreDaysChanged" Disabled="@(SelectedRuleName is null)" Variant="Variant.Outlined" />
</MudItem>
<MudItem xs="12">
<MudSelect T="string" Label="Add stopped" Value="AddStopped" ValueChanged="AddStoppedChanged" Disabled="@(SelectedRuleName is null)" Variant="Variant.Outlined">
<MudSelectItem Value="@("default")">Use global settings</MudSelectItem>
<MudSelectItem Value="@("always")">Always</MudSelectItem>
<MudSelectItem Value="@("never")">Never</MudSelectItem>
</MudSelect>
</MudItem>
<MudItem xs="12">
<MudSelect T="string" Label="Torrent content layout" Value="ContentLayout" ValueChanged="ContentLayoutChanged" Disabled="@(SelectedRuleName is null)" Variant="Variant.Outlined">
<MudSelectItem Value="@("Default")">Use global settings</MudSelectItem>
<MudSelectItem Value="@("Original")">Original</MudSelectItem>
<MudSelectItem Value="@("Subfolder")">Create subfolder</MudSelectItem>
<MudSelectItem Value="@("NoSubfolder")">Don't create subfolder</MudSelectItem>
</MudSelect>
</MudItem>
<MudItem xs="12">
<MudList T="string" SelectionMode="SelectionMode.MultiSelection" SelectedValues="SelectedFeeds" SelectedValuesChanged="SelectedFeedsChanged" CheckBoxColor="Color.Default" Disabled="@(SelectedRuleName is null)" Dense>
<MudListSubheader>Apply Rule to Feeds</MudListSubheader>
@foreach (var (feed, _) in Feeds)
{
<MudListItem Value="@feed" Text="@feed" />
}
</MudList>
</MudItem>
</MudGrid>
</MudItem>
<MudItem xs="3">
<MudText Class="no-wrap">Matching RSS Articles</MudText>
<MudList T="string" ReadOnly Dense>
@if (MatchingArticles is not null)
{
foreach (var (feed, articles) in MatchingArticles)
{
<MudListItem Text="@feed" Expanded="true">
<NestedList>
@foreach (var article in articles)
{
<MudListItem Text="@article" />
}
</NestedList>
</MudListItem>
}
}
</MudList>
</MudItem>
</MudGrid>
</DialogContent>
<DialogActions>
<MudButton OnClick="Cancel">Close</MudButton>
<MudButton Color="Color.Primary" OnClick="Submit">Save</MudButton>
</DialogActions>
</MudDialog>