Adds a new section "Scripting" in the server UI where PowerShell modules can be defined. These can be used for defining a library of functions that can be used in any script. These modules are automatically synced to the launcher and imported upon script execution.
133 lines
No EOL
6.1 KiB
Text
133 lines
No EOL
6.1 KiB
Text
@inherits LayoutComponentBase
|
|
@using System.Security.Claims;
|
|
@using LANCommander.Server.Settings
|
|
@inject AuthenticationStateProvider AuthenticationStateProvider
|
|
@inject SettingsProvider<Settings> SettingsProvider
|
|
|
|
<Menu Mode="MenuMode.Inline" Style="border-right: 0;">
|
|
@if (User?.Identity?.IsAuthenticated ?? false)
|
|
{
|
|
<SubMenu Title="Profile" Placement="Placement.BottomRight">
|
|
<TitleTemplate>
|
|
<Icon Type="@IconType.Outline.User"/>
|
|
<span>@User?.Identity.Name</span>
|
|
</TitleTemplate>
|
|
<ChildContent>
|
|
<MenuItem RouterLink="/Profile">General</MenuItem>
|
|
@if (SettingsProvider.CurrentValue.Server.Library.EnableUserLibraries)
|
|
{
|
|
<MenuItem RouterLink="/Profile/Library">Library</MenuItem>
|
|
}
|
|
<MenuItem RouterLink="/Profile/ConnectedAccounts">Connected Accounts</MenuItem>
|
|
<MenuItem RouterLink="/Profile/ChangePassword">Change Password</MenuItem>
|
|
<MenuItem RouterLink="/Profile/Saves">Saves</MenuItem>
|
|
<MenuItem RouterLink="/Logout">Logout</MenuItem>
|
|
</ChildContent>
|
|
</SubMenu>
|
|
<MenuDivider/>
|
|
}
|
|
<SubMenu>
|
|
<TitleTemplate>
|
|
<Icon Type="@IconType.Outline.Dashboard"/>
|
|
<span>Dashboards</span>
|
|
</TitleTemplate>
|
|
<ChildContent>
|
|
<MenuItem RouterLink="/">Overview</MenuItem>
|
|
<MenuItem RouterLink="/Dashboard/SessionPlaytime">Average Session Playtime</MenuItem>
|
|
</ChildContent>
|
|
</SubMenu>
|
|
<MenuDivider/>
|
|
@if (User != null && User.IsInRole(RoleService.AdministratorRoleName))
|
|
{
|
|
<MenuItem RouterLink="/Games" Icon="@IconType.Outline.Appstore">Games</MenuItem>
|
|
<SubMenu>
|
|
<TitleTemplate>
|
|
<Icon Type="@IconType.Outline.Tags"/>
|
|
<span>Metadata</span>
|
|
</TitleTemplate>
|
|
<ChildContent>
|
|
<MenuItem RouterLink="/Metadata/Collections">Collections</MenuItem>
|
|
<MenuItem RouterLink="/Metadata/Companies">Companies</MenuItem>
|
|
<MenuItem RouterLink="/Metadata/Engines">Engines</MenuItem>
|
|
<MenuItem RouterLink="/Metadata/Genres">Genres</MenuItem>
|
|
<MenuItem RouterLink="/Metadata/Platforms">Platforms</MenuItem>
|
|
<MenuItem RouterLink="/Metadata/Tags">Tags</MenuItem>
|
|
</ChildContent>
|
|
</SubMenu>
|
|
<MenuItem RouterLink="/Redistributables" Icon="@IconType.Outline.Block">Redistributables</MenuItem>
|
|
<MenuItem RouterLink="/Tools" Icon="@IconType.Outline.Tool">Tools</MenuItem>
|
|
<MenuItem RouterLink="/Servers" Icon="@IconType.Outline.Database">Servers</MenuItem>
|
|
<SubMenu>
|
|
<TitleTemplate>
|
|
<Icon Type="@IconType.Outline.Code"/>
|
|
<span>Scripting</span>
|
|
</TitleTemplate>
|
|
<ChildContent>
|
|
<MenuItem RouterLink="/Scripting/Snippets">Snippets</MenuItem>
|
|
<MenuItem RouterLink="/Scripting/Modules">Modules</MenuItem>
|
|
</ChildContent>
|
|
</SubMenu>
|
|
<MenuDivider/>
|
|
<SubMenu>
|
|
<TitleTemplate>
|
|
<Icon Type="@IconType.Outline.Read"/>
|
|
<span>Pages</span>
|
|
</TitleTemplate>
|
|
<ChildContent>
|
|
<MenuItem RouterLink="/Pages/Edit">Edit</MenuItem>
|
|
<MenuItem RouterLink="/Pages">View</MenuItem>
|
|
</ChildContent>
|
|
</SubMenu>
|
|
<MenuItem RouterLink="/Issues" Icon="@IconType.Outline.Bug">Issues</MenuItem>
|
|
<MenuItem RouterLink="/Files" Icon="@IconType.Outline.Folder">Files</MenuItem>
|
|
<SubMenu>
|
|
<TitleTemplate>
|
|
<Icon Type="@IconType.Outline.Setting"/>
|
|
<span>Settings</span>
|
|
</TitleTemplate>
|
|
<ChildContent>
|
|
<MenuItem RouterLink="/Settings/General">General</MenuItem>
|
|
<MenuItem RouterLink="/Settings/Database">Database</MenuItem>
|
|
<MenuItem RouterLink="/Settings/Users">Users</MenuItem>
|
|
<MenuItem RouterLink="/Settings/Roles">Roles</MenuItem>
|
|
<MenuItem RouterLink="/Settings/Authentication">Authentication</MenuItem>
|
|
<MenuItem RouterLink="/Settings/Appearance">Appearance</MenuItem>
|
|
<MenuItem RouterLink="/Settings/UserSaves">User Saves</MenuItem>
|
|
<MenuItem RouterLink="/Settings/Library">Library</MenuItem>
|
|
<MenuItem RouterLink="/Settings/Archives">Archives</MenuItem>
|
|
<MenuItem RouterLink="/Settings/Media">Media</MenuItem>
|
|
<MenuItem RouterLink="/Settings/Scripts">Scripts</MenuItem>
|
|
<MenuItem RouterLink="/Settings/IPXRelay">IPX Relay</MenuItem>
|
|
<MenuItem RouterLink="/Settings/Servers">Servers</MenuItem>
|
|
<MenuItem RouterLink="/Settings/Beacon">Beacon</MenuItem>
|
|
<MenuItem RouterLink="/Settings/Tools">Tools</MenuItem>
|
|
<MenuItem RouterLink="/Settings/Logs">Logs</MenuItem>
|
|
<MenuItem RouterLink="/Settings/Launcher">Launcher</MenuItem>
|
|
<MenuItem RouterLink="/Settings/Updates">Updates</MenuItem>
|
|
<SubMenu Title="Integrations">
|
|
<MenuItem RouterLink="/Settings/Integrations/HQ">HQ</MenuItem>
|
|
<MenuItem RouterLink="/Settings/Integrations/IGDB">IGDB</MenuItem>
|
|
<MenuItem RouterLink="/Settings/Integrations/Steam">Steam</MenuItem>
|
|
<MenuItem RouterLink="/Settings/Integrations/SteamGridDB">SteamGridDB</MenuItem>
|
|
</SubMenu>
|
|
<MenuItem RouterLink="/api">API</MenuItem>
|
|
</ChildContent>
|
|
</SubMenu>
|
|
}
|
|
else
|
|
{
|
|
<MenuItem RouterLink="/Pages" Icon="@IconType.Outline.Read">Pages</MenuItem>
|
|
}
|
|
</Menu>
|
|
|
|
@code {
|
|
ClaimsPrincipal User;
|
|
|
|
protected override async Task OnInitializedAsync()
|
|
{
|
|
var authState = await AuthenticationStateProvider.GetAuthenticationStateAsync();
|
|
|
|
if (authState.User.Identity.IsAuthenticated)
|
|
User = authState.User;
|
|
}
|
|
} |