Browse Source

start of admin panel

benc1 3 years ago
parent
commit
611fbc8c2d

+ 3 - 1
ng/src/app/app-routing.module.ts

@@ -2,10 +2,12 @@ import { NgModule } from '@angular/core';
 import { RouterModule, Routes } from '@angular/router';
 import { HomePageComponent } from './pages/home-page/home-page.component';
 import { ServerDataPageComponent } from './pages/server-data-page/server-data-page.component';
+import {AdminPanelComponent} from "./components/admin/admin-panel/admin-panel.component";
 
 const routes: Routes = [
   { path: '', pathMatch: 'full', component: HomePageComponent },
-  { path: 'srv/:id', component: ServerDataPageComponent }
+  { path: 'srv/:id', component: ServerDataPageComponent },
+  { path: 'admin', component: AdminPanelComponent }
 ];
 
 @NgModule({

+ 2 - 1
ng/src/app/app.module.ts

@@ -12,9 +12,10 @@ import { FaByTypePipe } from './pipes/fa-by-type.pipe';
 import { ServerDataPageComponent } from './pages/server-data-page/server-data-page.component';
 import { BytePipe } from './pipes/byte.pipe';
 import { ServerDataChartComponent } from './components/server-data-chart/server-data-chart.component';
+import { AdminPanelComponent } from './components/admin/admin-panel/admin-panel.component';
 
 @NgModule({
-  declarations: [AppComponent, BytePipe, FaByTypePipe, HeaderComponent, HomePageComponent, ServerDataChartComponent, ServerDataPageComponent],
+  declarations: [AppComponent, BytePipe, FaByTypePipe, HeaderComponent, HomePageComponent, ServerDataChartComponent, ServerDataPageComponent, AdminPanelComponent],
   imports: [AppRoutingModule, BrowserModule, FontAwesomeModule, HttpClientModule, NgChartsModule],
   providers: [{ provide: BytePipe, multi: false }],
   bootstrap: [AppComponent]

+ 1 - 0
ng/src/app/components/admin/admin-panel/admin-panel.component.html

@@ -0,0 +1 @@
+<p>admin-panel works!</p>

+ 0 - 0
ng/src/app/components/admin/admin-panel/admin-panel.component.scss


+ 23 - 0
ng/src/app/components/admin/admin-panel/admin-panel.component.spec.ts

@@ -0,0 +1,23 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { AdminPanelComponent } from './admin-panel.component';
+
+describe('AdminPanelComponent', () => {
+  let component: AdminPanelComponent;
+  let fixture: ComponentFixture<AdminPanelComponent>;
+
+  beforeEach(async () => {
+    await TestBed.configureTestingModule({
+      declarations: [ AdminPanelComponent ]
+    })
+    .compileComponents();
+
+    fixture = TestBed.createComponent(AdminPanelComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});

+ 15 - 0
ng/src/app/components/admin/admin-panel/admin-panel.component.ts

@@ -0,0 +1,15 @@
+import { Component, OnInit } from '@angular/core';
+import { AdminPanelService } from '../../../services/admin-panel.service';
+
+@Component({
+  selector: 'app-admin-panel',
+  templateUrl: './admin-panel.component.html',
+  styleUrls: ['./admin-panel.component.scss']
+})
+export class AdminPanelComponent implements OnInit {
+  constructor(private adminService: AdminPanelService) {}
+
+  ngOnInit(): void {
+    this.adminService.loadServer();
+  }
+}

+ 1 - 1
ng/src/app/components/header/header.component.html

@@ -15,7 +15,7 @@
   <div class="collapse navbar-collapse justify-content-end" id="navbarSupportedContent">
     <ul class="navbar-nav pull-right">
       <li class="nav-item dropdown">
-        <a id="loginDropdown" class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">Dropdown</a>
+        <a id="loginDropdown" class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false" [routerLink]="'admin'" >Admin</a>
       </li>
     </ul>
   </div>

+ 16 - 0
ng/src/app/services/admin-panel.service.spec.ts

@@ -0,0 +1,16 @@
+import { TestBed } from '@angular/core/testing';
+
+import { AdminPanelService } from './admin-panel.service';
+
+describe('AdminPanelService', () => {
+  let service: AdminPanelService;
+
+  beforeEach(() => {
+    TestBed.configureTestingModule({});
+    service = TestBed.inject(AdminPanelService);
+  });
+
+  it('should be created', () => {
+    expect(service).toBeTruthy();
+  });
+});

+ 15 - 0
ng/src/app/services/admin-panel.service.ts

@@ -0,0 +1,15 @@
+import { Injectable } from '@angular/core';
+import { ServiceConfig } from '../../../../common/interfaces/service-config.interface';
+import { environment } from '../../environments/environment';
+import { HttpClient } from '@angular/common/http';
+
+@Injectable({
+  providedIn: 'root'
+})
+export class AdminPanelService {
+  constructor(private http: HttpClient) {}
+
+  loadServer() {
+    this.http.get<ServiceConfig[]>(`${environment.apiBaseUrl}server`);
+  }
+}