Quellcode durchsuchen

Merge pull request #296 from Moonlight-Panel/NewAdminDomainNavigation

Added new admin domain navigation
Marcel Baumgartner vor 1 Jahr
Ursprung
Commit
24ce51a62e

+ 22 - 0
Moonlight/Shared/Components/Navigations/AdminDomainsNavigation.razor

@@ -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;
+}

+ 3 - 26
Moonlight/Shared/Layouts/DefaultLayout.razor

@@ -187,38 +187,15 @@ else
                 </span>
                 </span>
             </a>
             </a>
         </div>
         </div>
-        <div data-kt-menu-trigger="click" class="menu-item menu-accordion">
-            <span class="menu-link">
+        <div class="menu-item">
+            <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>
-            </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>
+            </a>
         </div>
         </div>
         <div class="menu-item">
         <div class="menu-item">
             <a class="menu-link" href="/admin/support">
             <a class="menu-link" href="/admin/support">

+ 47 - 46
Moonlight/Shared/Views/Admin/Domains/Index.razor

@@ -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-header border-0 pt-5">
-                <h3 class="card-title align-items-start flex-column">
-                    <span class="card-label fw-bold fs-3 mb-1">
-                        <TL>Domains</TL>
-                    </span>
-                </h3>
-                <div class="card-toolbar">
-                    <a href="/admin/domains/new" class="btn btn-sm btn-light-success">
-                        <i class="bx bx-layer-plus"></i>
-                        <TL>New domain</TL>
-                    </a>
+    <div class="card">
+                <div class="card-header border-0 pt-5">
+                    <h3 class="card-title align-items-start flex-column">
+                        <span class="card-label fw-bold fs-3 mb-1">
+                            <TL>Domains</TL>
+                        </span>
+                    </h3>
+                    <div class="card-toolbar">
+                        <a href="/admin/domains/new" class="btn btn-sm btn-light-success">
+                            <i class="bx bx-layer-plus"></i>
+                            <TL>New domain</TL>
+                        </a>
+                    </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 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>
-    </div>
 </LazyLoader>
 </LazyLoader>
 
 
 @code
 @code

+ 40 - 33
Moonlight/Shared/Views/Admin/Domains/Shared/Index.razor

@@ -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-header border-0 pt-5">
-                            <h3 class="card-title align-items-start flex-column">
-                                <span class="card-label fw-bold fs-3 mb-1">
-                                    <span><TL>Shared domains</TL></span>
-                                </span>
-                            </h3>
-                            <div class="card-toolbar">
-                                <a href="/admin/domains/shared/new" class="btn btn-sm btn-light-success">
-                                    <i class="bx bx-layer-plus"></i>
-                                    <span><TL>Add shared domain</TL></span>
-                                </a>
-                            </div>
-                        </div>
-                        <div class="card-body">
-                            <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">
-                                <Column TableItem="SharedDomain" Title="@(SmartTranslateService.Translate("Id"))" Field="@(x => x.Id)" Sortable="true" Filterable="true" Width="10%"/>
-                                <Column TableItem="SharedDomain" Title="@(SmartTranslateService.Translate("Name"))" Field="@(x => x.Name)" Sortable="true" Filterable="true" Width="10%"/>
-                                <Column TableItem="SharedDomain" Title="" Field="@(x => x.Id)" Sortable="false" Filterable="false" Width="10%">
-                                    <Template>
-                                        <DeleteButton Confirm="true"
-                                                      AdditionalCssClasses="float-end"
-                                                      OnClick="() => Delete(context)">
-                                        </DeleteButton>
-                                    </Template>
-                                </Column>
-                            </Table>
-                        </div>
-                    </div>
-                </LazyLoader>
+    <div class="card">
+        <div class="card-header border-0 pt-5">
+            <h3 class="card-title align-items-start flex-column">
+                <span class="card-label fw-bold fs-3 mb-1">
+                    <span>
+                        <TL>Shared domains</TL>
+                    </span>
+                </span>
+            </h3>
+            <div class="card-toolbar">
+                <a href="/admin/domains/shared/new" class="btn btn-sm btn-light-success">
+                    <i class="bx bx-layer-plus"></i>
+                    <span>
+                        <TL>Add shared domain</TL>
+                    </span>
+                </a>
+            </div>
+        </div>
+        <div class="card-body">
+            <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">
+                <Column TableItem="SharedDomain" Title="@(SmartTranslateService.Translate("Id"))" Field="@(x => x.Id)" Sortable="true" Filterable="true" Width="10%"/>
+                <Column TableItem="SharedDomain" Title="@(SmartTranslateService.Translate("Name"))" Field="@(x => x.Name)" Sortable="true" Filterable="true" Width="10%"/>
+                <Column TableItem="SharedDomain" Title="" Field="@(x => x.Id)" Sortable="false" Filterable="false" Width="10%">
+                    <Template>
+                        <DeleteButton Confirm="true"
+                                      AdditionalCssClasses="float-end"
+                                      OnClick="() => Delete(context)">
+                        </DeleteButton>
+                    </Template>
+                </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?")
-            );
+                );
         }
         }
     }
     }
 }
 }