Compare commits
12 commits
be1c5f3b12
...
88d3bb8cc4
Author | SHA1 | Date | |
---|---|---|---|
|
88d3bb8cc4 | ||
621599e138 | |||
a2e50fb2a6 | |||
dabe491612 | |||
ac48357e7a | |||
4b83970a8c | |||
fb2148544a | |||
c3aa47cd3e | |||
829d289c6d | |||
4f9ca794c4 | |||
66472b28f6 | |||
ba2e989d49 |
13 changed files with 176 additions and 1 deletions
29
compose.yml
Normal file
29
compose.yml
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
volumes:
|
||||||
|
employee_postgres_data:
|
||||||
|
driver: local
|
||||||
|
|
||||||
|
services:
|
||||||
|
postgres-employee:
|
||||||
|
container_name: postgres_employee
|
||||||
|
image: postgres:13.3
|
||||||
|
volumes:
|
||||||
|
- employee_postgres_data:/var/lib/postgresql/data
|
||||||
|
environment:
|
||||||
|
POSTGRES_DB: employee_db
|
||||||
|
POSTGRES_USER: employee
|
||||||
|
POSTGRES_PASSWORD: secret
|
||||||
|
ports:
|
||||||
|
- "5432:5432"
|
||||||
|
|
||||||
|
employee:
|
||||||
|
container_name: employee
|
||||||
|
image: berndheidemann/employee-management-service:1.1.3
|
||||||
|
# image: berndheidemann/employee-management-service_without_keycloak:1.1
|
||||||
|
environment:
|
||||||
|
spring.datasource.url: jdbc:postgresql://postgres-employee:5432/employee_db
|
||||||
|
spring.datasource.username: employee
|
||||||
|
spring.datasource.password: secret
|
||||||
|
ports:
|
||||||
|
- "8089:8089"
|
||||||
|
depends_on:
|
||||||
|
- postgres-employee
|
1
public/logo.svg
Normal file
1
public/logo.svg
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<svg fill="none" height="48" viewBox="0 0 48 48" width="48" xmlns="http://www.w3.org/2000/svg"><rect fill="white" fill-opacity="0.01" height="48" width="48"></rect><path d="M24 20C28.4183 20 32 16.4183 32 12C32 7.58172 28.4183 4 24 4C19.5817 4 16 7.58172 16 12C16 16.4183 19.5817 20 24 20Z" fill="#2F88FF" stroke="black" stroke-linejoin="round" stroke-width="4"></path><path d="M24 20V38" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="4"></path><path d="M16 32H12L4 44H44L36 32H32" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="4"></path></svg>
|
After Width: | Height: | Size: 604 B |
|
@ -0,0 +1,5 @@
|
||||||
|
|
||||||
|
:host {
|
||||||
|
display: block;
|
||||||
|
height: 100vh;
|
||||||
|
}
|
|
@ -5,10 +5,13 @@ import {
|
||||||
MitarbeiterverwaltungViewComponent
|
MitarbeiterverwaltungViewComponent
|
||||||
} from "./components/mitarbeiterverwaltung-view/mitarbeiterverwaltung-view.component";
|
} from "./components/mitarbeiterverwaltung-view/mitarbeiterverwaltung-view.component";
|
||||||
|
|
||||||
|
import { NavigationBarComponent } from './components/navigation-bar/navigation-bar.component';
|
||||||
|
import { EmployeeDetailComponent } from './components/employee-detail/employee-detail.component';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-root',
|
selector: 'app-root',
|
||||||
standalone: true,
|
standalone: true,
|
||||||
imports: [RouterOutlet, LoginViewComponent, MitarbeiterverwaltungViewComponent],
|
imports: [RouterOutlet, NavigationBarComponent, EmployeeDetailComponent, LoginViewComponent, MitarbeiterverwaltungViewComponent],
|
||||||
templateUrl: './app.component.html',
|
templateUrl: './app.component.html',
|
||||||
styleUrl: './app.component.css'
|
styleUrl: './app.component.css'
|
||||||
})
|
})
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
<div class="d-flex flex-col" style="height: 100%;">
|
||||||
|
<app-navigation-bar></app-navigation-bar>
|
||||||
|
<div class="p-3" style="width: 100%;">
|
||||||
|
<a href="" class="btn btn-primary">Zurück</a>
|
||||||
|
<div class="row align-items-start pt-3">
|
||||||
|
<div class="col">
|
||||||
|
<h1>Name des Mitarbeiters</h1>
|
||||||
|
<p><strong>Straße: </strong>Straße des Benutzers</p>
|
||||||
|
<p><strong>Postleitzahl: </strong>Postleitzahl des Benutzers</p>
|
||||||
|
<p><strong>Stadt: </strong>Stadt des Benutzers</p>
|
||||||
|
<p><strong>Telefonnummer: </strong>Telefonnummer des Benutzers</p>
|
||||||
|
<button class="btn btn-danger">Löschen</button>
|
||||||
|
<button class="ms-3 btn btn-primary">Bearbeiten</button>
|
||||||
|
</div>
|
||||||
|
<div class="col">
|
||||||
|
<h2>Qualifikationen</h2>
|
||||||
|
<ul class="list-group" style="width: fit-content;">
|
||||||
|
<li class="list-group-item">Qualifikation 1</li>
|
||||||
|
<li class="list-group-item">Qualifikation 2</li>
|
||||||
|
<li class="list-group-item">Qualifikation 3</li>
|
||||||
|
<li class="list-group-item">Qualifikation 4</li>
|
||||||
|
<li class="list-group-item">Qualifikation 5</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -0,0 +1,23 @@
|
||||||
|
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||||
|
|
||||||
|
import { EmployeeDetailComponent } from './employee-detail.component';
|
||||||
|
|
||||||
|
describe('EmployeeDetailComponent', () => {
|
||||||
|
let component: EmployeeDetailComponent;
|
||||||
|
let fixture: ComponentFixture<EmployeeDetailComponent>;
|
||||||
|
|
||||||
|
beforeEach(async () => {
|
||||||
|
await TestBed.configureTestingModule({
|
||||||
|
imports: [EmployeeDetailComponent]
|
||||||
|
})
|
||||||
|
.compileComponents();
|
||||||
|
|
||||||
|
fixture = TestBed.createComponent(EmployeeDetailComponent);
|
||||||
|
component = fixture.componentInstance;
|
||||||
|
fixture.detectChanges();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should create', () => {
|
||||||
|
expect(component).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
|
@ -0,0 +1,13 @@
|
||||||
|
import { Component } from '@angular/core';
|
||||||
|
import { NavigationBarComponent } from '../navigation-bar/navigation-bar.component';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'app-employee-detail',
|
||||||
|
standalone: true,
|
||||||
|
imports: [NavigationBarComponent],
|
||||||
|
templateUrl: './employee-detail.component.html',
|
||||||
|
styleUrl: './employee-detail.component.css'
|
||||||
|
})
|
||||||
|
export class EmployeeDetailComponent {
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
:host {
|
||||||
|
display: block;
|
||||||
|
height: 100%;
|
||||||
|
width: 300px;
|
||||||
|
}
|
|
@ -0,0 +1,24 @@
|
||||||
|
<div class="d-flex flex-column flex-shrink-0 p-3 text-bg-light border-end border-primary" style="width: 300px; height: 100%;">
|
||||||
|
<a href="/" class="d-flex align-items-center mb-3 mb-md-0 me-md-auto text-black text-decoration-none">
|
||||||
|
<img src="logo.svg" class="bi pe-none me-2" width="40" height="32"/>
|
||||||
|
<span class="fs-4">Hi-Tec GmbH</span>
|
||||||
|
</a>
|
||||||
|
<hr>
|
||||||
|
<ul class="nav nav-pills flex-column mb-auto">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a href="#" class="nav-link active text-black" aria-current="page">
|
||||||
|
Dashboard
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="#" class="nav-link text-black">
|
||||||
|
Mitarbeiterverwaltung
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="#" class="nav-link text-black">
|
||||||
|
Qualifikationsverwaltung
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
|
@ -0,0 +1,23 @@
|
||||||
|
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||||
|
|
||||||
|
import { NavigationBarComponent } from './navigation-bar.component';
|
||||||
|
|
||||||
|
describe('NavigationBarComponent', () => {
|
||||||
|
let component: NavigationBarComponent;
|
||||||
|
let fixture: ComponentFixture<NavigationBarComponent>;
|
||||||
|
|
||||||
|
beforeEach(async () => {
|
||||||
|
await TestBed.configureTestingModule({
|
||||||
|
imports: [NavigationBarComponent]
|
||||||
|
})
|
||||||
|
.compileComponents();
|
||||||
|
|
||||||
|
fixture = TestBed.createComponent(NavigationBarComponent);
|
||||||
|
component = fixture.componentInstance;
|
||||||
|
fixture.detectChanges();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should create', () => {
|
||||||
|
expect(component).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
|
@ -0,0 +1,12 @@
|
||||||
|
import { Component } from '@angular/core';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'app-navigation-bar',
|
||||||
|
standalone: true,
|
||||||
|
imports: [],
|
||||||
|
templateUrl: './navigation-bar.component.html',
|
||||||
|
styleUrl: './navigation-bar.component.css'
|
||||||
|
})
|
||||||
|
export class NavigationBarComponent {
|
||||||
|
|
||||||
|
}
|
|
@ -1 +1,10 @@
|
||||||
/* You can add global styles to this file, and also import other style files */
|
/* You can add global styles to this file, and also import other style files */
|
||||||
|
.container{
|
||||||
|
min-height:100vh;
|
||||||
|
}
|
||||||
|
|
||||||
|
html, body {
|
||||||
|
min-height: 100%;
|
||||||
|
height: auto;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue