Merge pull request #296 from Moonlight-Panel/NewAdminDomainNavigation

Added new admin domain navigation
This commit is contained in:
Marcel Baumgartner
2023-08-29 15:55:46 +02:00
committed by GitHub
4 changed files with 113 additions and 106 deletions

View File

@@ -0,0 +1,22 @@
<div class="card mb-5 mb-xl-10">
<div class="card-body pt-0 pb-0">
<ul class="nav nav-stretch nav-line-tabs nav-line-tabs-2x border-transparent fs-5 fw-bold">
<li class="nav-item mt-2">
<a class="nav-link text-active-primary ms-0 me-10 py-5 @(Index == 0 ? "active" : "")" href="/admin/domains">
<TL>Domains</TL>
</a>
</li>
<li class="nav-item mt-2">
<a class="nav-link text-active-primary ms-0 me-10 py-5 @(Index == 1 ? "active" : "")" href="/admin/domains/shared">
<TL>Shared domains</TL>
</a>
</li>
</ul>
</div>
</div>
@code
{
[Parameter]
public int Index { get; set; } = 0;
}

View File

@@ -187,38 +187,15 @@ else
</span> </span>
</a> </a>
</div> </div>
<div data-kt-menu-trigger="click" class="menu-item menu-accordion"> <div class="menu-item">
<span class="menu-link"> <a class="menu-link" href="/admin/domains">
<span class="menu-icon"> <span class="menu-icon">
<i class="bx bx-purchase-tag"></i> <i class="bx bx-purchase-tag"></i>
</span> </span>
<span class="menu-title"> <span class="menu-title">
<TL>Domains</TL> <TL>Domains</TL>
</span> </span>
<span class="menu-arrow"></span> </a>
</span>
<div class="menu-sub menu-sub-accordion">
<div class="menu-item">
<a class="menu-link" href="/admin/domains/">
<span class="menu-bullet">
<span class="bullet bullet-dot"></span>
</span>
<span class="menu-title">
<TL>Domains</TL>
</span>
</a>
</div>
<div class="menu-item">
<a class="menu-link" href="/admin/domains/shared">
<span class="menu-bullet">
<span class="bullet bullet-dot"></span>
</span>
<span class="menu-title">
<TL>Shared domains</TL>
</span>
</a>
</div>
</div>
</div> </div>
<div class="menu-item"> <div class="menu-item">
<a class="menu-link" href="/admin/support"> <a class="menu-link" href="/admin/support">

View File

@@ -4,6 +4,7 @@
@using Microsoft.EntityFrameworkCore @using Microsoft.EntityFrameworkCore
@using BlazorTable @using BlazorTable
@using Moonlight.App.Services @using Moonlight.App.Services
@using Moonlight.Shared.Components.Navigations
@inject DomainRepository DomainRepository @inject DomainRepository DomainRepository
@inject DomainService DomainService @inject DomainService DomainService
@@ -11,56 +12,56 @@
@attribute [PermissionRequired(nameof(Permissions.AdminDomains))] @attribute [PermissionRequired(nameof(Permissions.AdminDomains))]
<AdminDomainsNavigation Index="0" />
<LazyLoader @ref="LazyLoader" Load="Load"> <LazyLoader @ref="LazyLoader" Load="Load">
<div class="row"> <div class="card">
<div class="card"> <div class="card-header border-0 pt-5">
<div class="card-header border-0 pt-5"> <h3 class="card-title align-items-start flex-column">
<h3 class="card-title align-items-start flex-column"> <span class="card-label fw-bold fs-3 mb-1">
<span class="card-label fw-bold fs-3 mb-1"> <TL>Domains</TL>
<TL>Domains</TL> </span>
</span> </h3>
</h3> <div class="card-toolbar">
<div class="card-toolbar"> <a href="/admin/domains/new" class="btn btn-sm btn-light-success">
<a href="/admin/domains/new" class="btn btn-sm btn-light-success"> <i class="bx bx-layer-plus"></i>
<i class="bx bx-layer-plus"></i> <TL>New domain</TL>
<TL>New domain</TL> </a>
</a> </div>
</div>
<div class="card-body pt-0">
<div class="table-responsive">
<Table TableItem="Domain" Items="Domains" PageSize="25" TableClass="table table-row-bordered table-row-gray-100 align-middle gs-0 gy-3" TableHeadClass="fw-bold text-muted">
<Column TableItem="Domain" Title="@(SmartTranslateService.Translate("Id"))" Field="@(x => x.Id)" Sortable="true" Filterable="true" Width="10%"/>
<Column TableItem="Domain" Title="@(SmartTranslateService.Translate("Name"))" Field="@(x => x.Name)" Sortable="true" Filterable="true" Width="10%"/>
<Column TableItem="Domain" Title="@(SmartTranslateService.Translate("Shared domain"))" Field="@(x => x.SharedDomain)" Sortable="true" Filterable="true" Width="10%">
<Template>
<span>@(context.SharedDomain.Name)</span>
</Template>
</Column>
<Column TableItem="Domain" Title="@(SmartTranslateService.Translate("Owner"))" Field="@(x => x.Owner)" Sortable="true" Filterable="true" Width="10%">
<Template>
<a href="/admin/users/view/@(context.Owner.Id)">@(context.Owner.Email)</a>
</Template>
</Column>
<Column TableItem="Domain" Title="@(SmartTranslateService.Translate("Manage"))" Field="@(x => x.Id)" Sortable="false" Filterable="false" Width="10%">
<Template>
<a href="/domain/@(context.Id)">Manage</a>
</Template>
</Column>
<Column TableItem="Domain" Title="" Field="@(x => x.Id)" Sortable="false" Filterable="false" Width="10%">
<Template>
<DeleteButton Confirm="true"
AdditionalCssClasses="float-end"
OnClick="() => Delete(context)">
</DeleteButton>
</Template>
</Column>
<Pager ShowPageNumber="true" ShowTotalCount="true"/>
</Table>
</div>
</div> </div>
</div> </div>
<div class="card-body pt-0">
<div class="table-responsive">
<Table TableItem="Domain" Items="Domains" PageSize="25" TableClass="table table-row-bordered table-row-gray-100 align-middle gs-0 gy-3" TableHeadClass="fw-bold text-muted">
<Column TableItem="Domain" Title="@(SmartTranslateService.Translate("Id"))" Field="@(x => x.Id)" Sortable="true" Filterable="true" Width="10%"/>
<Column TableItem="Domain" Title="@(SmartTranslateService.Translate("Name"))" Field="@(x => x.Name)" Sortable="true" Filterable="true" Width="10%"/>
<Column TableItem="Domain" Title="@(SmartTranslateService.Translate("Shared domain"))" Field="@(x => x.SharedDomain)" Sortable="true" Filterable="true" Width="10%">
<Template>
<span>@(context.SharedDomain.Name)</span>
</Template>
</Column>
<Column TableItem="Domain" Title="@(SmartTranslateService.Translate("Owner"))" Field="@(x => x.Owner)" Sortable="true" Filterable="true" Width="10%">
<Template>
<a href="/admin/users/view/@(context.Owner.Id)">@(context.Owner.Email)</a>
</Template>
</Column>
<Column TableItem="Domain" Title="@(SmartTranslateService.Translate("Manage"))" Field="@(x => x.Id)" Sortable="false" Filterable="false" Width="10%">
<Template>
<a href="/domain/@(context.Id)">Manage</a>
</Template>
</Column>
<Column TableItem="Domain" Title="" Field="@(x => x.Id)" Sortable="false" Filterable="false" Width="10%">
<Template>
<DeleteButton Confirm="true"
AdditionalCssClasses="float-end"
OnClick="() => Delete(context)">
</DeleteButton>
</Template>
</Column>
<Pager ShowPageNumber="true" ShowTotalCount="true"/>
</Table>
</div>
</div>
</div>
</div>
</LazyLoader> </LazyLoader>
@code @code

View File

@@ -5,6 +5,7 @@
@using Moonlight.App.Database.Entities @using Moonlight.App.Database.Entities
@using Moonlight.App.Services.Interop @using Moonlight.App.Services.Interop
@using BlazorTable @using BlazorTable
@using Moonlight.Shared.Components.Navigations
@inject SharedDomainRepository SharedDomainRepository @inject SharedDomainRepository SharedDomainRepository
@inject SmartTranslateService SmartTranslateService @inject SmartTranslateService SmartTranslateService
@@ -14,37 +15,43 @@
@attribute [PermissionRequired(nameof(Permissions.AdminSharedDomains))] @attribute [PermissionRequired(nameof(Permissions.AdminSharedDomains))]
<AdminDomainsNavigation Index="1" />
<LazyLoader @ref="LazyLoader" Load="Load"> <LazyLoader @ref="LazyLoader" Load="Load">
<div class="card"> <div class="card">
<div class="card-header border-0 pt-5"> <div class="card-header border-0 pt-5">
<h3 class="card-title align-items-start flex-column"> <h3 class="card-title align-items-start flex-column">
<span class="card-label fw-bold fs-3 mb-1"> <span class="card-label fw-bold fs-3 mb-1">
<span><TL>Shared domains</TL></span> <span>
</span> <TL>Shared domains</TL>
</h3> </span>
<div class="card-toolbar"> </span>
<a href="/admin/domains/shared/new" class="btn btn-sm btn-light-success"> </h3>
<i class="bx bx-layer-plus"></i> <div class="card-toolbar">
<span><TL>Add shared domain</TL></span> <a href="/admin/domains/shared/new" class="btn btn-sm btn-light-success">
</a> <i class="bx bx-layer-plus"></i>
</div> <span>
</div> <TL>Add shared domain</TL>
<div class="card-body"> </span>
<Table TableItem="SharedDomain" Items="SharedDomains" PageSize="25" TableClass="table table-row-bordered table-row-gray-100 align-middle gs-0 gy-3" TableHeadClass="fw-bold text-muted"> </a>
<Column TableItem="SharedDomain" Title="@(SmartTranslateService.Translate("Id"))" Field="@(x => x.Id)" Sortable="true" Filterable="true" Width="10%"/> </div>
<Column TableItem="SharedDomain" Title="@(SmartTranslateService.Translate("Name"))" Field="@(x => x.Name)" Sortable="true" Filterable="true" Width="10%"/> </div>
<Column TableItem="SharedDomain" Title="" Field="@(x => x.Id)" Sortable="false" Filterable="false" Width="10%"> <div class="card-body">
<Template> <Table TableItem="SharedDomain" Items="SharedDomains" PageSize="25" TableClass="table table-row-bordered table-row-gray-100 align-middle gs-0 gy-3" TableHeadClass="fw-bold text-muted">
<DeleteButton Confirm="true" <Column TableItem="SharedDomain" Title="@(SmartTranslateService.Translate("Id"))" Field="@(x => x.Id)" Sortable="true" Filterable="true" Width="10%"/>
AdditionalCssClasses="float-end" <Column TableItem="SharedDomain" Title="@(SmartTranslateService.Translate("Name"))" Field="@(x => x.Name)" Sortable="true" Filterable="true" Width="10%"/>
OnClick="() => Delete(context)"> <Column TableItem="SharedDomain" Title="" Field="@(x => x.Id)" Sortable="false" Filterable="false" Width="10%">
</DeleteButton> <Template>
</Template> <DeleteButton Confirm="true"
</Column> AdditionalCssClasses="float-end"
</Table> OnClick="() => Delete(context)">
</div> </DeleteButton>
</div> </Template>
</LazyLoader> </Column>
</Table>
</div>
</div>
</LazyLoader>
@code @code
{ {
@@ -72,12 +79,12 @@
} }
catch (Exception e) catch (Exception e)
{ {
//TODO: Add check if any domains are left //TODO: Add check if any domains are left
await AlertService.Error( await AlertService.Error(
SmartTranslateService.Translate("Error"), SmartTranslateService.Translate("Error"),
SmartTranslateService.Translate("Something went wrong. Are any domains associated with this shared domain still there?") SmartTranslateService.Translate("Something went wrong. Are any domains associated with this shared domain still there?")
); );
} }
} }
} }