mirror of https://github.com/ErsatzTV/ErsatzTV.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
124 lines
5.4 KiB
124 lines
5.4 KiB
@using System.Reflection |
|
@using ErsatzTV.Extensions |
|
@inherits LayoutComponentBase |
|
@inject NavigationManager _navigationManager |
|
|
|
<MudThemeProvider Theme="_ersatzTvTheme"/> |
|
<MudDialogProvider DisableBackdropClick="true"/> |
|
<MudSnackbarProvider/> |
|
|
|
<MudLayout> |
|
<MudAppBar Elevation="1" Class="app-bar"> |
|
<div style="min-width: 240px"> |
|
<a href="/"> |
|
<img src="/images/ersatztv.png" alt="ErsatzTV"/> |
|
</a> |
|
</div> |
|
<EditForm Model="@_dummyModel" OnSubmit="@(_ => PerformSearch())"> |
|
<MudTextField T="string" |
|
@bind-Value="@_query" |
|
AdornmentIcon="@Icons.Material.Filled.Search" |
|
Adornment="Adornment.Start" |
|
Variant="Variant.Outlined" |
|
Class="search-bar"> |
|
</MudTextField> |
|
</EditForm> |
|
<MudSpacer/> |
|
<MudLink Color="Color.Info" Href="/iptv/channels.m3u" Target="_blank" Underline="Underline.None">M3U</MudLink> |
|
<MudLink Color="Color.Info" Href="/iptv/xmltv.xml" Target="_blank" Class="mx-4" Underline="Underline.None">XMLTV</MudLink> |
|
@* <MudLink Color="Color.Info" Href="/swagger" Target="_blank" Class="mr-4" Underline="Underline.None">API</MudLink> *@ |
|
<MudTooltip Text="Documentation"> |
|
<MudIconButton Icon="@Icons.Material.Filled.Help" Color="Color.Primary" Link="https://ersatztv.org" Target="_blank"/> |
|
</MudTooltip> |
|
<MudTooltip Text="Discord"> |
|
<MudIconButton Icon="fab fa-discord" Color="Color.Primary" Link="https://discord.gg/hHaJm3yGy6" Target="_blank"/> |
|
</MudTooltip> |
|
<MudTooltip Text="GitHub"> |
|
<MudIconButton Icon="@Icons.Custom.Brands.GitHub" Color="Color.Primary" Link="https://github.com/jasongdove/ErsatzTV" Target="_blank"/> |
|
</MudTooltip> |
|
</MudAppBar> |
|
<MudDrawer Open="true" Elevation="2" ClipMode="DrawerClipMode.Always"> |
|
<MudNavMenu> |
|
<MudNavLink Href="/channels">Channels</MudNavLink> |
|
<MudNavLink Href="/ffmpeg">FFmpeg Profiles</MudNavLink> |
|
<MudNavLink Href="/watermarks">Watermarks</MudNavLink> |
|
<MudNavGroup Title="Media Sources" Expanded="true"> |
|
<MudNavLink Href="/media/sources/local">Local</MudNavLink> |
|
<MudNavLink Href="/media/sources/emby">Emby</MudNavLink> |
|
<MudNavLink Href="/media/sources/jellyfin">Jellyfin</MudNavLink> |
|
<MudNavLink Href="/media/sources/plex">Plex</MudNavLink> |
|
</MudNavGroup> |
|
<MudNavGroup Title="Media" Expanded="true"> |
|
<MudNavLink Href="/media/libraries">Libraries</MudNavLink> |
|
<MudNavLink Href="/media/tv/shows">TV Shows</MudNavLink> |
|
<MudNavLink Href="/media/movies">Movies</MudNavLink> |
|
<MudNavLink Href="/media/music/artists">Music</MudNavLink> |
|
<MudNavLink Href="/media/other/videos">Other Videos</MudNavLink> |
|
<MudNavLink Href="/music/songs">Songs</MudNavLink> |
|
</MudNavGroup> |
|
<MudNavGroup Title="Lists" Expanded="true"> |
|
<MudNavLink Href="/media/collections">Collections</MudNavLink> |
|
<MudNavLink Href="/media/trakt/lists">Trakt Lists</MudNavLink> |
|
<MudNavLink Href="/media/filler/presets">Filler Presets</MudNavLink> |
|
</MudNavGroup> |
|
<MudNavLink Href="/schedules">Schedules</MudNavLink> |
|
<MudNavLink Href="/playouts">Playouts</MudNavLink> |
|
<MudNavLink Href="/settings">Settings</MudNavLink> |
|
<MudNavLink Href="/system/logs">Logs</MudNavLink> |
|
<MudDivider Class="my-6" DividerType="DividerType.Middle"/> |
|
<MudContainer Style="text-align: right" Class="mr-6"> |
|
<MudText Typo="Typo.body2">ErsatzTV Version</MudText> |
|
<MudText Typo="Typo.body2" Color="Color.Info">@InfoVersion</MudText> |
|
</MudContainer> |
|
</MudNavMenu> |
|
</MudDrawer> |
|
<MudMainContent> |
|
@Body |
|
</MudMainContent> |
|
</MudLayout> |
|
|
|
@code { |
|
private static readonly string InfoVersion = Assembly.GetEntryAssembly().GetCustomAttribute<AssemblyInformationalVersionAttribute>()?.InformationalVersion ?? "unknown"; |
|
|
|
private string _query; |
|
|
|
private record SearchModel; |
|
|
|
private readonly SearchModel _dummyModel = new(); |
|
|
|
private MudTheme _ersatzTvTheme => new() |
|
{ |
|
Palette = new Palette |
|
{ |
|
ActionDefault = "rgba(255,255,255, 0.80)", |
|
Primary = "#009000", |
|
Secondary = "#009090", |
|
AppbarBackground = "#121212", |
|
Background = "#272727", |
|
DrawerBackground = "#1f1f1f", |
|
Surface = "#1f1f1f", |
|
DrawerText = "rgba(255,255,255, 0.80)", |
|
TextPrimary = "rgba(255,255,255, 0.80)", |
|
TextSecondary = "rgba(255,255,255, 0.80)", |
|
TextDisabled = "rgba(255,255,255, 0.40)", |
|
ActionDisabled = "rgba(255,255,255, 0.40)", |
|
TableHover = "rgba(255,255,255, 0.10)", |
|
Info = "#00c0c0", |
|
Tertiary = "#00c000", |
|
White = Colors.Shades.White |
|
} |
|
}; |
|
|
|
protected override async Task OnParametersSetAsync() |
|
{ |
|
await base.OnParametersSetAsync(); |
|
_query = _navigationManager.Uri.GetSearchQuery(); |
|
} |
|
|
|
private void PerformSearch() |
|
{ |
|
_navigationManager.NavigateTo(_query.GetRelativeSearchQuery(), true); |
|
StateHasChanged(); |
|
} |
|
|
|
} |