From 914971deeedc3d02956824f269f0ed07ebeba2cb Mon Sep 17 00:00:00 2001
From: Peter Hornburger
Date: Sat, 26 Oct 2024 17:24:33 +0200
Subject: [PATCH] Samstag 17:30
---
src/app/app-routing.module.ts | 4 +
src/app/app.component.ts | 3 +-
src/app/dataclasses/mitarbeiterstruktur.ts | 3 +
.../pages/common-home/common-home.page.html | 46 +
src/app/pages/common-home/common-home.page.ts | 12 +
.../fi-mitarbeiterlisteneu.html | 235 ++++
.../fi-mitarbeiterlisteneu.module.ts | 41 +
.../fi-mitarbeiterlisteneu.scss | 47 +
.../fi-mitarbeiterlisteneu.ts | 1129 +++++++++++++++++
.../database-mitarbeiter.service.ts | 12 +-
.../database-pool/database-pool.service.ts | 12 +
src/index.html | 4 +-
www/index.html | 6 +-
www/main.2ff3f67f4bb03547.js | 1 -
www/main.aa9d44e4d803a702.js | 1 +
15 files changed, 1544 insertions(+), 12 deletions(-)
create mode 100644 src/app/pages/fi-mitarbeiterlisteneu/fi-mitarbeiterlisteneu.html
create mode 100644 src/app/pages/fi-mitarbeiterlisteneu/fi-mitarbeiterlisteneu.module.ts
create mode 100644 src/app/pages/fi-mitarbeiterlisteneu/fi-mitarbeiterlisteneu.scss
create mode 100644 src/app/pages/fi-mitarbeiterlisteneu/fi-mitarbeiterlisteneu.ts
delete mode 100644 www/main.2ff3f67f4bb03547.js
create mode 100644 www/main.aa9d44e4d803a702.js
diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts
index 8ba5799..e461258 100644
--- a/src/app/app-routing.module.ts
+++ b/src/app/app-routing.module.ts
@@ -17,6 +17,10 @@ const routes: Routes = [
path: 'FiMitarbeiterlistePage',
loadChildren: () => import('./pages/fi-mitarbeiterliste/fi-mitarbeiterliste.module').then(m => m.FIMitarbeiterlistePageModule),
},
+ {
+ path: 'PageNeu',
+ loadChildren: () => import('./pages/fi-mitarbeiterlisteneu/fi-mitarbeiterlisteneu.module').then(m => m.FIMitarbeiterlisteNeuPageModule),
+ },
{
path: '',
loadChildren: () => import('./pages/common-home/common-home.module').then(m => m.CommonHomePageModule),
diff --git a/src/app/app.component.ts b/src/app/app.component.ts
index 666c253..f4e161d 100644
--- a/src/app/app.component.ts
+++ b/src/app/app.component.ts
@@ -338,7 +338,8 @@ export class AppComponent implements OnInit, OnDestroy, AfterContentChecked {
if(this.Pool.Mitarbeiterdaten.Planeradministrator === true) {
- Page = this.Pool.Appeinstellungen.AdminStartseite;
+ Page = 'PageNeu'; // this.Pool.Appeinstellungen.AdminStartseite;
+ // Page = this.Pool.Appeinstellungen.AdminStartseite;
}
else {
diff --git a/src/app/dataclasses/mitarbeiterstruktur.ts b/src/app/dataclasses/mitarbeiterstruktur.ts
index d9730c9..27c157c 100644
--- a/src/app/dataclasses/mitarbeiterstruktur.ts
+++ b/src/app/dataclasses/mitarbeiterstruktur.ts
@@ -32,6 +32,9 @@ export interface Mitarbeiterstruktur {
Homeofficefreigabestandorte: string[];
Urlaubsfreigabeorte: string[];
+ Urlaubsfreigeberliste: string[];
+ Homeofficefreigeberliste: string[];
+ Urlaubsfreigabeinfomailliste: string[];
Meintagliste: Meintagstruktur[];
Meinewocheliste: Meinewochestruktur[];
diff --git a/src/app/pages/common-home/common-home.page.html b/src/app/pages/common-home/common-home.page.html
index b0eee1a..1c56849 100644
--- a/src/app/pages/common-home/common-home.page.html
+++ b/src/app/pages/common-home/common-home.page.html
@@ -226,6 +226,52 @@
+
+
+ |
+
+
+
+
+ |
diff --git a/src/app/pages/common-home/common-home.page.ts b/src/app/pages/common-home/common-home.page.ts
index a6cbfe8..804c9ab 100644
--- a/src/app/pages/common-home/common-home.page.ts
+++ b/src/app/pages/common-home/common-home.page.ts
@@ -281,6 +281,18 @@ export class CommonHomePage implements OnInit, OnDestroy {
}
}
+ MitarbeiterNeuButtonClicked() {
+
+ try {
+
+ this.Tools.SetRootPage('PageNeu');
+
+ } catch (error) {
+
+ this.Debug.ShowErrorMessage(error.message, 'Home', 'MitarbeiterNeuButtonClicked', this.Debug.Typen.Page);
+ }
+ }
+
PlanerButtonClicked() {
try {
diff --git a/src/app/pages/fi-mitarbeiterlisteneu/fi-mitarbeiterlisteneu.html b/src/app/pages/fi-mitarbeiterlisteneu/fi-mitarbeiterlisteneu.html
new file mode 100644
index 0000000..37a54c2
--- /dev/null
+++ b/src/app/pages/fi-mitarbeiterlisteneu/fi-mitarbeiterlisteneu.html
@@ -0,0 +1,235 @@
+
+
+
+
+ |
+
+
+
+ |
+
+
+
+ |
+
+
+ {{Eintrag.Titel}}
+ |
+ |
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+ {{Freigeber.Vorname}} |
+
+
+ {{Freigeber.Name}} |
+
+
+
+ Urlaub
+ |
+
+ Homeoffice
+ |
+
+ Infomail
+ |
+
+
+ |
+
+
+
+
+ |
+
+
+ |
+
+
+
+
+
+
+
+ 0">
+
+
+
+
+
+
+
+ {{Mitarbeiterbuchstabenliste[i]}}
+ |
+
+
+ |
+
+
+
+
+
+
+
+
+
+ |
+
+ {{Mitarbeiter.Name}} {{Mitarbeiter.Vorname}} / {{Mitarbeiter.Kuerzel}}
+ |
+
+
+
+ |
+
+
+
+
+
+ |
+
+
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ | Urlaubsfreigaben |
+
+
+ |
+ {{GetStandortliste(Mitarbeiter.Urlaubsfreigabeorte)}} |
+
+
+ |
+
+
+
+ | Homeofficefreigaben |
+
+
+ |
+ {{GetStandortliste(Mitarbeiter.Homeofficefreigabestandorte)}} |
+
+
+ |
+ |
+
+
+ |
+
+
+ |
+
+
+
+
+
+
+
+
+
+ keine Mitarbeiter vorhanden
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+ {{Mitarbeiterliste.length}} Einträge
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/app/pages/fi-mitarbeiterlisteneu/fi-mitarbeiterlisteneu.module.ts b/src/app/pages/fi-mitarbeiterlisteneu/fi-mitarbeiterlisteneu.module.ts
new file mode 100644
index 0000000..67a815c
--- /dev/null
+++ b/src/app/pages/fi-mitarbeiterlisteneu/fi-mitarbeiterlisteneu.module.ts
@@ -0,0 +1,41 @@
+import { NgModule } from '@angular/core';
+import { CommonModule } from '@angular/common';
+import {FormsModule, ReactiveFormsModule} from '@angular/forms';
+import { Routes, RouterModule } from '@angular/router';
+import { IonicModule } from '@ionic/angular';
+import {FiMitarbeiterlisteNeuPage} from './fi-mitarbeiterlisteneu';
+import {PageHeaderModule} from "../../components/page-header/page-header.module";
+import {AbstandElementFixedModule} from "../../components/abstand-element-fixed/abstand-element-fixed.module";
+import {AlphabetModule} from "../../components/alphabet/alphabet.module";
+import {PageFooterModule} from "../../components/page-footer/page-footer.module";
+import {PageHeaderMenuModule} from "../../components/page-header-menu/page-header-menu.module";
+import {FiMitarbeiterEditorModule} from "../../components-page/fi-mitarbeiter-editor/fi-mitarbeiter-editor.module";
+import {AuswahlDialogModule} from "../../components/auswahl-dialog/auswahl-dialog.module";
+import {CheckboxClonModule} from "../../components/checkbox-clon/checkbox-clon.module";
+
+const routes: Routes = [
+ {
+ path: '',
+ component: FiMitarbeiterlisteNeuPage
+ }
+];
+
+@NgModule({
+ imports: [
+ CommonModule,
+ FormsModule,
+ ReactiveFormsModule,
+ IonicModule,
+ RouterModule.forChild(routes),
+ PageHeaderModule,
+ PageFooterModule,
+ AbstandElementFixedModule,
+ AlphabetModule,
+ PageHeaderMenuModule,
+ FiMitarbeiterEditorModule,
+ AuswahlDialogModule,
+ CheckboxClonModule,
+ ],
+ declarations: [FiMitarbeiterlisteNeuPage]
+})
+export class FIMitarbeiterlisteNeuPageModule {}
diff --git a/src/app/pages/fi-mitarbeiterlisteneu/fi-mitarbeiterlisteneu.scss b/src/app/pages/fi-mitarbeiterlisteneu/fi-mitarbeiterlisteneu.scss
new file mode 100644
index 0000000..8736ca1
--- /dev/null
+++ b/src/app/pages/fi-mitarbeiterlisteneu/fi-mitarbeiterlisteneu.scss
@@ -0,0 +1,47 @@
+
+.menubuttonclass {
+
+ display: flex;
+ justify-content: flex-start; // horizontal
+ align-items: center; // vertikal
+ width: 100%;
+ min-height: 50px;
+ padding: 2px;
+}
+
+.trennertdclass {
+
+ width: 30px;
+}
+
+.trennerdivclass {
+
+ width: 1px;
+ min-height: 30px;
+ height: 100%;
+ background: white;
+}
+
+.butttonclass {
+
+ padding: 8px;
+ border-radius: 4px;
+ background: #444444;
+ font-size: 120%;
+ cursor: pointer;
+}
+.butttonclass:hover {
+
+ background: #7b6a58;
+}
+
+.checkboxdivclass {
+
+ border-radius: 3px;
+ padding: 4px; width: 34px;
+ height: 34px;
+ display: flex;
+ justify-content: center; /* horizontal */
+ align-items: center; /* vertikal */
+
+}
diff --git a/src/app/pages/fi-mitarbeiterlisteneu/fi-mitarbeiterlisteneu.ts b/src/app/pages/fi-mitarbeiterlisteneu/fi-mitarbeiterlisteneu.ts
new file mode 100644
index 0000000..054ea58
--- /dev/null
+++ b/src/app/pages/fi-mitarbeiterlisteneu/fi-mitarbeiterlisteneu.ts
@@ -0,0 +1,1129 @@
+import {Component, OnDestroy, OnInit, ViewChild} from '@angular/core';
+import {BasicsProvider} from "../../services/basics/basics";
+import {DebugProvider} from "../../services/debug/debug";
+import {ToolsProvider} from "../../services/tools/tools";
+import {ConstProvider} from "../../services/const/const";
+import {Mitarbeiterstruktur} from "../../dataclasses/mitarbeiterstruktur";
+import {AlphabetComponent} from "../../components/alphabet/alphabet";
+import {DatabasePoolService} from "../../services/database-pool/database-pool.service";
+import {Subscription} from "rxjs";
+import {PageHeaderComponent} from "../../components/page-header/page-header";
+import {PageFooterComponent} from "../../components/page-footer/page-footer";
+import {Standortestruktur} from "../../dataclasses/standortestruktur";
+import * as lodash from "lodash-es";
+import {DatabaseMitarbeiterService} from "../../services/database-mitarbeiter/database-mitarbeiter.service";
+import {Auswahldialogstruktur} from "../../dataclasses/auswahldialogstruktur";
+import {DatabaseStandorteService} from "../../services/database-standorte/database-standorte.service";
+import {AuswahlDialogService} from "../../services/auswahl-dialog/auswahl-dialog.service";
+import {SecurityService} from "../../services/security/security.service";
+import {MenueService} from "../../services/menue/menue.service";
+
+@Component({
+ selector: 'fi-mitarbeiterliste-page',
+ templateUrl: 'fi-mitarbeiterlisteneu.html',
+ styleUrls: ['fi-mitarbeiterlisteneu.scss'],
+})
+export class FiMitarbeiterlisteNeuPage implements OnInit, OnDestroy {
+
+ @ViewChild('Alphabet', { static: false }) Alphabetcomponent: AlphabetComponent;
+ @ViewChild('PageHeader', { static: false }) PageHeader: PageHeaderComponent;
+ @ViewChild('PageFooter', { static: false }) PageFooter: PageFooterComponent;
+
+ private ListeSubscription: Subscription;
+ public Mitarbeiterliste: Mitarbeiterstruktur[];
+ public Mitarbeiteralphabet: string[];
+ public Alphapetbreite: number;
+ public Mitarbeiteralphabetauswahl: string;
+ public HideAuswahl: boolean;
+ public Auswahlliste: Auswahldialogstruktur[];
+ public Auswahlindex: number;
+ public Auswahltitel: string;
+ public Lastletter: string;
+ public Mitarbeiterbuchstabenliste: string[];
+ public Standardalphabet: string[];
+ public Zusatzbuttonliste: string[];
+ public Mitarbeiterfiltertext: string;
+ public Listenbreite: number;
+ public ShowEditor: boolean;
+ public ShowAuswahl: boolean;
+ private Auswahldialogorigin: string;
+ public ShowAktuelle: boolean;
+ public HomeMouseOver: boolean;
+ public CurrentStandort: Standortestruktur;
+ public Menueliste: {
+ id: string,
+ Titel: string;
+ }[];
+ public CurrentMenueID: string;
+ public Freigabefiltervarianten = {
+
+ Keiner: 'keiner',
+ Administrator: 'Administrator',
+ Urlaubsfreigaben: 'Urlaubsfreigaben',
+ Homeofficefreigaben: 'Homeofficefreigaben'
+ };
+ public Freigabefilter: string;
+ public Freigeberliste: Mitarbeiterstruktur[];
+
+ constructor(public Basics: BasicsProvider,
+ public Debug: DebugProvider,
+ public Tools: ToolsProvider,
+ public Const: ConstProvider,
+ private Security: SecurityService,
+ public DB: DatabaseMitarbeiterService,
+ public DBStandort: DatabaseStandorteService,
+ public Auswahlservice: AuswahlDialogService,
+ public Menuservice: MenueService,
+ public Pool: DatabasePoolService) {
+ try
+ {
+ this.Standardalphabet = ['Alle', 'A', 'B', 'C', 'D', 'E','F', 'G', 'H', 'I', 'J', 'K','L', 'M', 'N', 'O', 'P', 'Q','R', 'S', 'T', 'U', 'V', 'W','X', 'Y', 'Z'];
+ this.Mitarbeiteralphabet = [];
+ this.Mitarbeiteralphabetauswahl = 'Alle';
+ this.Mitarbeiterliste = [];
+ this.Alphapetbreite = 44;
+ this.Zusatzbuttonliste =[];
+ this.HideAuswahl = true;
+ this.Mitarbeiteralphabet = this.Standardalphabet;
+ this.Mitarbeiterbuchstabenliste = [];
+ this.Mitarbeiterfiltertext = '';
+ this.Listenbreite = 0;
+ this.ShowEditor = false;
+ this.ShowAuswahl = false;
+ this.Auswahltitel = 'Standort festlegen';
+ this.Auswahlliste = [];
+ this.Auswahldialogorigin = this.Const.NONE;
+ this.ListeSubscription = null;
+ this.ShowAktuelle = true;
+ this.Freigabefilter = this.Freigabefiltervarianten.Keiner;
+ this.HomeMouseOver = false;
+ this.Menueliste = [];
+ this.Freigeberliste = [];
+ }
+ catch (error) {
+
+ this.Debug.ShowErrorMessage(error.message, 'Mitarbeiterliste', 'constructor', this.Debug.Typen.Page);
+ }
+ }
+
+ ngOnDestroy(): void {
+
+ try {
+
+ if(this.ListeSubscription !== null) {
+
+ this.ListeSubscription.unsubscribe();
+ this.ListeSubscription = null;
+ }
+
+ } catch (error) {
+
+ this.Debug.ShowErrorMessage(error.message, 'Mitarbeiterliste', 'OnDestroy', this.Debug.Typen.Page);
+ }
+ }
+
+ MainMenueButtonClicked(mainmenubereich: string) {
+
+ try {
+
+ this.Menuservice.MainMenuebereich = mainmenubereich;
+
+ this.Menuservice.SetCurrentPage();
+ }
+ catch (error) {
+
+ this.Debug.ShowErrorMessage(error.message, 'Page Header Menu', 'MainMenueButtonClicked', this.Debug.Typen.Component);
+ }
+ }
+
+ ngOnInit(): void {
+
+ try {
+
+ this.Security.CheckSecurity();
+
+ this.ListeSubscription = this.Pool.MitarbeiterlisteChanged.subscribe(() => {
+
+ this.InitMenue();
+ this.PrepareDaten();
+ });
+
+ this.InitMenue();
+ this.PrepareDaten();
+
+ } catch (error) {
+
+ this.Debug.ShowErrorMessage(error.message, 'Mitarbeiterliste', 'OnInit', this.Debug.Typen.Page);
+ }
+ }
+
+ ResetSucheButtonClicked() {
+
+ try {
+ this.Mitarbeiterfiltertext = '';
+ this.Mitarbeiteralphabetauswahl = 'Alle';
+
+ this.PrepareDaten();
+
+ /*
+ switch (this.Menueindex) {
+
+ case 0:
+
+
+ break;
+
+ case 1:
+
+ this.Lieferantenfiltertext = '';
+ this.Lieferantenfilter = '';
+ this.Lieferantenalphabetauswahl = 'Alle';
+ this.Suchleiste.value = '';
+
+ this.PrepareLieferantenDaten();
+
+ break;
+ }
+
+ */
+
+ }
+ catch (error) {
+
+ this.Debug.ShowErrorMessage(error.message, 'Mitarbeiterliste', 'ResetSucheButtonClicked', this.Debug.Typen.Page);
+ }
+ }
+
+ public ionViewDidEnter() {
+
+ try {
+
+ let Alphabetbreite: number = typeof this.Alphabetcomponent.Breite !== 'undefined' ? this.Alphabetcomponent.Breite : 40;
+
+ this.Basics.MeassureInnercontent(this.PageHeader, this.PageFooter);
+
+ this.Listenbreite = this.Basics.Contentbreite - Alphabetbreite - 4;
+
+ this.Alphabetcomponent.InitScreen();
+ }
+ catch (error) {
+
+ this.Debug.ShowErrorMessage(error.message, 'Mitarbeiterliste', 'ionViewDidEnter', this.Debug.Typen.Page);
+ }
+ }
+
+ ionViewDidLeave() {
+
+ try {
+
+ }
+ catch (error) {
+
+ this.Debug.ShowErrorMessage(error.message, 'Mitarbeiterliste', 'ionViewDidLeave', this.Debug.Typen.Page);
+ }
+ }
+
+ MitrabeiterButtonClicked(eintrag: Mitarbeiterstruktur) {
+
+ try {
+
+ this.DB.CurrentMitarbeiter = lodash.cloneDeep(eintrag);
+ this.ShowEditor = true;
+ }
+ catch (error) {
+
+ this.Debug.ShowErrorMessage(error.message, 'Mitarbeiterliste', 'MitrabeiterButtonClicked', this.Debug.Typen.Page);
+ }
+ }
+
+ AddMitarbeiterButtonClicked() {
+
+ try {
+
+ this.DB.CurrentMitarbeiter = this.DB.GetEmptyMitarbeiter();
+ this.ShowEditor = true;
+ }
+ catch (error) {
+
+ this.Debug.ShowErrorMessage(error.message, 'Mitarbeiterliste', 'AddMitarbeiterButtonClicked', this.Debug.Typen.Page);
+ }
+ }
+
+ AlphabetClicked(buchstabe: any) {
+
+ try {
+
+ this.Mitarbeiterfiltertext = '';
+ this.Mitarbeiteralphabetauswahl = buchstabe;
+
+ this.PrepareDaten();
+ }
+ catch (error) {
+
+ this.Debug.ShowErrorMessage(error.message, 'Mitarbeiterliste', 'AlphabetClicked', this.Debug.Typen.Page);
+ }
+ }
+
+ private GetMitarbeiterAlphabetbuchstabe(value: Mitarbeiterstruktur) {
+
+ try {
+
+ let Buchstabe: string = value.Name.substring(0, 1).toUpperCase();
+
+ if(Buchstabe !== this.Lastletter) {
+
+ this.Lastletter = Buchstabe;
+
+ return Buchstabe;
+ }
+ else {
+
+ return '';
+ }
+
+ } catch (error) {
+
+ this.Debug.ShowErrorMessage(error.message, 'Mitarbeiterliste', 'GetMitarbeiterAlphabetbuchstabe', this.Debug.Typen.Page);
+ }
+ }
+
+ private InitMenue() {
+
+ try {
+
+ let Anzahl: number = 0;
+
+ this.Menueliste = [];
+
+ for(let Mitarbeiter of this.Pool.Mitarbeiterliste) {
+
+ if(Mitarbeiter.StandortID === null || Mitarbeiter.StandortID === 'none' || Mitarbeiter.StandortID === '') Anzahl++;
+ }
+
+ if(Anzahl > 0) {
+
+ this.Menueliste.push({id: 'Unbekannt', Titel : 'Standort unbekannt'});
+ }
+
+
+ for(let Standort of this.Pool.Standorteliste) {
+
+ this.Menueliste.push({id: Standort._id, Titel: Standort.Ort});
+ }
+
+
+
+ if(Anzahl > 0) this.CurrentMenueID = 'Unbekannt';
+ else this.CurrentMenueID = this.Pool.Standorteliste[0]._id;
+
+ this.Menueliste.push({id: 'Archiviert', Titel: 'Archivierte Einträge'});
+ this.Menueliste.push({id: 'Berechtigtenliste', Titel: 'Berechtigtenliste'});
+
+
+ } catch (error) {
+
+ this.Debug.ShowErrorMessage(error, 'Mitarbeiterliste', 'InitMenue', this.Debug.Typen.Component);
+ }
+ }
+
+
+ private PrepareDaten() {
+
+ try {
+
+ let Liste: Mitarbeiterstruktur[];
+ let Merker: Mitarbeiterstruktur[];
+ let Buchstabe: string;
+ let Quelle: Mitarbeiterstruktur[];
+ let Laenge: number;
+ let TeilA: string;
+ let TeilB: string;
+ let TeilC: string;
+ let Teillaenge: number;
+ let PosA: number;
+ let Solltext: string;
+ let Suchtext: string;
+ let Anzahl: number = 0;
+ let NextMitarbeiter: Mitarbeiterstruktur;
+ let Mitarbeiter: Mitarbeiterstruktur;
+
+ this.Freigeberliste = [];
+
+ if(this.Pool.Mitarbeiterliste !== null) {
+
+ Quelle = lodash.cloneDeep(this.Pool.Mitarbeiterliste);
+
+ this.Lastletter = '';
+
+ // Nach Namen sortieren
+
+ Quelle.sort( (a: Mitarbeiterstruktur, b: Mitarbeiterstruktur) => {
+
+ if (a.Name < b.Name) return -1;
+ if (a.Name > b.Name) return 1;
+ return 0;
+ });
+
+ // Filter
+
+ Liste = lodash.cloneDeep(Quelle);
+
+ switch (this.CurrentMenueID) {
+
+ case 'Unbekannt':
+
+ this.CurrentStandort = null;
+
+ Liste = lodash.filter(Liste, (Eintrag: Mitarbeiterstruktur) => {
+
+ return (Eintrag.StandortID === '' || Eintrag.StandortID === null || Eintrag.StandortID === 'none') && Eintrag.Archiviert === false;
+ });
+
+ break;
+
+ case 'Archiviert':
+
+ this.CurrentStandort = null;
+
+ Liste = lodash.filter(Liste, (Eintrag: Mitarbeiterstruktur) => {
+
+ return Eintrag.Archiviert === true;
+ });
+
+ break;
+
+ case 'Berechtigtenliste':
+
+ this.CurrentStandort = null;
+
+ Liste = lodash.filter(Liste, (Eintrag: Mitarbeiterstruktur) => {
+
+ return (Eintrag.Planeradministrator === true || Eintrag.Urlaubsfreigaben === true || Eintrag.Homeofficefreigaben === true) && Eintrag.Archiviert === false;
+ });
+
+ break;
+
+ default:
+
+ this.CurrentStandort = lodash.find(this.Pool.Standorteliste, { _id: this.CurrentMenueID });
+
+ Liste = lodash.filter(Liste, (Eintrag: Mitarbeiterstruktur) => {
+
+ return Eintrag.StandortID === this.CurrentMenueID && Eintrag.Archiviert === false;
+ });
+
+ this.Freigeberliste = [];
+
+ for(let ID of this.CurrentStandort.Urlaubfreigabepersonen) {
+
+ NextMitarbeiter = lodash.find(this.Pool.Mitarbeiterliste, {_id: ID});
+
+ if(!lodash.isUndefined(NextMitarbeiter)) {
+
+ Mitarbeiter = lodash.find(this.Freigeberliste, {_id: NextMitarbeiter._id});
+
+ if(lodash.isUndefined(Mitarbeiter)) {
+
+ this.Freigeberliste.push(NextMitarbeiter);
+ }
+ }
+ }
+
+ this.Freigeberliste.sort( (a: Mitarbeiterstruktur, b: Mitarbeiterstruktur) => {
+
+ if (a.Name < b.Name) return -1;
+ if (a.Name > b.Name) return 1;
+ return 0;
+ });
+ }
+
+ // Mitarbeiteralphabetauswahl Buchstaben festlegen
+
+ if(Liste.length > 6) {
+
+ this.Mitarbeiteralphabet = ['Alle'];
+
+ for(let Eintrag of Liste) {
+
+ Buchstabe = Eintrag.Name.substring(0, 1).toUpperCase();
+
+ if(this.Mitarbeiteralphabet.indexOf(Buchstabe) === -1) this.Mitarbeiteralphabet.push(Buchstabe);
+ }
+ } else {
+
+ this.Mitarbeiteralphabet = this.Standardalphabet;
+ }
+
+ // Alphabetfilter anwenden
+
+ if(this.Mitarbeiteralphabetauswahl !== 'Alle') {
+
+ Merker = lodash.cloneDeep(Liste);
+
+ Liste = [];
+
+ for(let Eintrag of Merker) {
+
+ Buchstabe = Eintrag.Name.substring(0, 1).toUpperCase();
+
+ Buchstabe = Buchstabe === 'Ä' ? 'A' : Buchstabe;
+ Buchstabe = Buchstabe === 'Ö' ? 'O' : Buchstabe;
+ Buchstabe = Buchstabe === 'Ü' ? 'U' : Buchstabe;
+
+ if(this.Mitarbeiteralphabetauswahl === Buchstabe) Liste.push(Eintrag);
+ }
+ }
+
+ // Suche Mitarbeiterfilter anwenden
+
+ if(this.Mitarbeiterfiltertext !== '') {
+
+ Merker = lodash.cloneDeep(Liste);
+ Liste = [];
+
+ for(let Eintrag of Merker) {
+
+ Solltext = this.Mitarbeiterfiltertext.toLowerCase();
+ Suchtext = Eintrag.Name.toLowerCase();
+ PosA = Suchtext.indexOf(Solltext);
+
+ if(PosA !== -1) {
+
+ Laenge = Eintrag.Name.length;
+ Teillaenge = Solltext.length;
+ TeilA = Eintrag.Name.substr(0, PosA);
+ TeilB = Eintrag.Name.substr(PosA, Teillaenge);
+ Teillaenge = Laenge - Teillaenge - PosA;
+ TeilC = Eintrag.Name.substr(Laenge - Teillaenge, Teillaenge);
+
+ Eintrag.Filtered = true;
+ Eintrag.Text_A = TeilA;
+ Eintrag.Text_B = TeilB;
+ Eintrag.Text_C = TeilC;
+
+ Liste.push(Eintrag);
+ }
+ }
+ }
+
+ // Buchstabenliste festlegen
+
+ this.Mitarbeiterbuchstabenliste = [];
+
+ for(let Eintrag of Liste) {
+
+ this.Mitarbeiterbuchstabenliste.push(this.GetMitarbeiterAlphabetbuchstabe(Eintrag));
+ }
+
+ this.Mitarbeiterliste = lodash.cloneDeep(Liste);
+ }
+ }
+ catch (error) {
+
+ this.Debug.ShowErrorMessage(error.message, 'Mitarbeiterliste', 'PrepareDaten', this.Debug.Typen.Page);
+ }
+ }
+
+
+ GetDialogTitel(): string {
+
+ try {
+
+ if(this.DB.CurrentMitarbeiter !== null) {
+
+ return this.DB.CurrentMitarbeiter._id === null ? 'Neuen Mitarbeiter anlegen' : 'Mitarbeiter bearbeiten';
+ }
+ else {
+
+ return 'Unbekannt';
+ }
+
+ } catch (error) {
+
+ this.Debug.ShowErrorMessage(error.message, 'Mitarbeiterliste', 'GetDialogTitel', this.Debug.Typen.Page);
+ }
+ }
+
+ StandortClickedHandler() {
+
+ try {
+
+ let Index = 0;
+
+ this.ShowAuswahl = true;
+ this.Auswahltitel = 'Standort festlegen';
+ this.Auswahlliste = [];
+
+ this.Auswahldialogorigin = this.Auswahlservice.Auswahloriginvarianten.Mitarbeiter_Editor_Standort;
+
+ for(let Eintrag of this.Pool.Standorteliste) {
+
+ this.Auswahlliste.push({ Index: Index, FirstColumn: Eintrag.Kuerzel, SecoundColumn: Eintrag.Ort, Data: Eintrag });
+ Index++;
+ }
+
+
+ this.Auswahlindex = lodash.findIndex(this.Pool.Standorteliste, {_id: this.DB.CurrentMitarbeiter.StandortID});
+
+ } catch (error) {
+
+ this.Debug.ShowErrorMessage(error.message, 'Mitarbeiterliste', 'StandortClickedHandler', this.Debug.Typen.Page);
+ }
+ }
+
+ AuswahlOkButtonClicked(data: any) {
+
+ try {
+
+ switch (this.Auswahldialogorigin) {
+
+ case this.Auswahlservice.Auswahloriginvarianten.Mitarbeiter_Editor_Anrede:
+
+ this.DB.CurrentMitarbeiter.Anrede = data;
+
+ break;
+
+ case this.Auswahlservice.Auswahloriginvarianten.Mitarbeiter_Editor_Urlaub:
+
+ this.DB.CurrentMitarbeiter.Urlaub = data;
+
+ break;
+
+ case this.Auswahlservice.Auswahloriginvarianten.Mitarbeiter_Editor_Standort:
+
+ this.DB.CurrentMitarbeiter.StandortID = data._id;
+
+ break;
+
+ case this.Auswahlservice.Auswahloriginvarianten.Mitarbeiter_Liste_Position:
+
+ this.DB.CurrentMitarbeiter.PositionID = data;
+
+ break;
+
+ case 'Resturlaub':
+
+ this.DB.CurrentMitarbeiter.Resturlaub = data;
+
+ break;
+
+ case this.Auswahlservice.Auswahloriginvarianten.Mitarbeiter_Liste_Standortfilter:
+
+ this.DBStandort.CurrentStandortfilter = data;
+ this.Pool.Mitarbeitersettings.StandortFilter = data !== null ? data._id : this.Const.NONE;
+ this.Mitarbeiteralphabetauswahl = 'Alle';
+
+ this.DB.UpdateMitarbeiter(this.Pool.Mitarbeiterdaten).then(() => {
+
+ this.DBStandort.StandortfilterChanged.emit();
+
+ }).catch((error) => {
+
+ this.Debug.ShowErrorMessage(error.message, 'Mitarbeiterliste', 'AuswahlOkButtonClicked', this.Debug.Typen.Page);
+ });
+
+ this.PrepareDaten();
+
+ break;
+ }
+
+ this.ShowAuswahl = false;
+
+ } catch (error) {
+
+ this.Debug.ShowErrorMessage(error.message, 'Mitarbeiterliste', 'AuswahlOkButtonClicked', this.Debug.Typen.Page);
+ }
+ }
+
+ GetDialogTitelicon(): string {
+
+ try {
+
+ if(this.DB.CurrentMitarbeiter || this.Pool.Mitarbeiterdaten) {
+
+ switch (this.Auswahltitel) {
+
+ case 'Standort festlegen':
+
+ return 'location-outline';
+
+ break;
+
+ case 'Fachbereich festlegen':
+
+ return 'hammer-outline';
+
+ break;
+
+ case 'Standortfilter festlegen':
+
+ return 'location-outline';
+
+ break;
+
+ default:
+
+ return 'help-outline';
+
+ break;
+ }
+ }
+ else return 'help-outline';
+
+ } catch (error) {
+
+ this.Debug.ShowErrorMessage(error.message, 'Mitarbeiterliste', 'GetDialogTitelicon', this.Debug.Typen.Page);
+ }
+ }
+
+ AnredeClickedEventHandler() {
+
+ try {
+
+ this.ShowAuswahl = true;
+ this.Auswahltitel = 'Anrede festlegen';
+ this.Auswahlliste = [];
+
+ this.Auswahldialogorigin = this.Auswahlservice.Auswahloriginvarianten.Mitarbeiter_Editor_Anrede;
+
+ this.Auswahlliste.push({ Index: 0, FirstColumn: 'Unbekannt', SecoundColumn: '', Data: this.Const.NONE });
+ this.Auswahlliste.push({ Index: 1, FirstColumn: 'Frau', SecoundColumn: '', Data: 'Frau' });
+ this.Auswahlliste.push({ Index: 2, FirstColumn: 'Herr', SecoundColumn: '', Data: 'Herr' });
+
+ this.Auswahlindex = lodash.findIndex(this.Auswahlliste, {Data: this.DB.CurrentMitarbeiter.Anrede});
+
+
+ } catch (error) {
+
+ this.Debug.ShowErrorMessage(error, 'Mitarbeiterliste', 'AnredeClickedEventHandler', this.Debug.Typen.Page);
+ }
+ }
+
+ UrlaubClickedEventHandler() {
+
+ let Index: number = 0;
+
+ this.ShowAuswahl = true;
+ this.Auswahltitel = 'Urlaubstage festlegen';
+ this.Auswahlliste = [];
+
+ this.Auswahldialogorigin = this.Auswahlservice.Auswahloriginvarianten.Mitarbeiter_Editor_Urlaub;
+
+ for(let i = 0; i <= 40; i = i + 0.5) {
+
+ this.Auswahlliste.push({ Index: Index, FirstColumn:i.toFixed(1), SecoundColumn: i === 1 ? 'Tag' : 'Tage', Data: i });
+ Index++;
+ }
+
+ this.Auswahlindex = lodash.findIndex(this.Auswahlliste, {Data: this.DB.CurrentMitarbeiter.Urlaub});
+
+ } catch (error) {
+
+ this.Debug.ShowErrorMessage(error, 'Mitarbeiterliste', 'UrlaubClickedEventHandler', this.Debug.Typen.Page);
+ }
+
+ ShowAktuelleChanged(event: { status: boolean; index: number; event: any; value: string }) {
+
+ try {
+
+ this.ShowAktuelle = event.status;
+
+ this.PrepareDaten();
+
+ } catch (error) {
+
+ this.Debug.ShowErrorMessage(error, 'Mitarbeiterliste', 'ShowAktuelleChanged', this.Debug.Typen.Page);
+ }
+
+ }
+
+ GetStandortliste(Urlaubsfreigabeorte: string[]): string {
+
+ try {
+
+ let Standort: Standortestruktur;
+ let Standortliste: Standortestruktur[] = [];
+ let Text: string = '';
+ let Index: number = 0;
+
+
+ for(let id of Urlaubsfreigabeorte) {
+
+ Standort = lodash.find(this.Pool.Standorteliste, {_id: id});
+
+ if(!lodash.isUndefined(Standort)) Standortliste.push(Standort);
+ }
+
+ Standortliste.sort((a: Standortestruktur, b: Standortestruktur) => {
+
+ if (a.Ort < b.Ort) return -1;
+ if (a.Ort > b.Ort) return 1;
+
+ return 0;
+ });
+
+ for(Standort of Standortliste) {
+
+ Text += Standort.Ort.substring(0, 3).toUpperCase();
+
+ if(Index < Standortliste.length - 1) Text += ', ';
+
+ Index++;
+ }
+
+ return Text;
+
+ } catch (error) {
+
+ this.Debug.ShowErrorMessage(error, 'Mitarbeiterliste', 'GetStandortliste', this.Debug.Typen.Page);
+ }
+ }
+
+ FreigabefilterChanged(event: any) {
+
+ try {
+
+ this.Freigabefilter = event.detail.value;
+
+ this.PrepareDaten();
+
+ } catch (error) {
+
+ this.Debug.ShowErrorMessage(error, 'Mitarbeiterliste', 'FreigabefilterChanged', this.Debug.Typen.Page);
+ }
+ }
+
+ PositionClickedEventHandler() {
+
+ try {
+
+ let Index = 0;
+
+ this.Auswahldialogorigin = this.Auswahlservice.Auswahloriginvarianten.Mitarbeiter_Liste_Position;
+
+ this.ShowAuswahl = true;
+ this.Auswahltitel = 'Position festlegen';
+ this.Auswahlliste = [];
+
+ for(let Eintrag of this.Pool.Mitarbeiterpositionenliste) {
+
+ this.Auswahlliste.push({ Index: Index, FirstColumn: Eintrag.Bezeichnung, SecoundColumn: '', Data: Eintrag._id });
+ Index++;
+ }
+
+ debugger;
+
+
+ this.Auswahlindex = lodash.findIndex(this.Pool.Mitarbeiterpositionenliste, {_id: this.DB.CurrentMitarbeiter.PositionID});
+ this.Auswahlindex++;
+
+
+ } catch (error) {
+
+ this.Debug.ShowErrorMessage(error, 'Mitarbeiterliste', 'PositionClickedEventHandler', this.Debug.Typen.Page);
+ }
+ }
+
+
+ ResturlaubClicked() {
+
+ try {
+
+ let Index: number = 0;
+
+ this.Auswahldialogorigin = 'Resturlaub';
+ this.Auswahltitel = 'Resturlaub festlegen';
+ this.Auswahlliste = [];
+
+ for(let i = -25; i < 0; i = i + 0.5) {
+
+ this.Auswahlliste.push({ Index: Index, FirstColumn:i.toFixed(1), SecoundColumn: i === - 1 ? 'Tag' : 'Tage', Data: i });
+ Index++;
+ }
+
+ for(let i = 0; i <= 25; i = i + 0.5) {
+
+ this.Auswahlliste.push({ Index: Index, FirstColumn:i.toFixed(1), SecoundColumn: i === 1 ? 'Tag' : 'Tage', Data: i });
+ Index++;
+ }
+
+ this.Auswahlindex = lodash.findIndex(this.Auswahlliste, (Eintrag: Auswahldialogstruktur) => {
+
+ return Eintrag.Data === this.DB.CurrentMitarbeiter.Resturlaub;
+ });
+
+ this.ShowAuswahl = true;
+
+ } catch (error) {
+
+ this.Debug.ShowErrorMessage(error, 'Mitarbeiterliste', 'ResturlaubClicked', this.Debug.Typen.Page);
+ }
+ }
+
+ MenueButtonClicked(id: string) {
+
+ try {
+
+ this.CurrentMenueID = id;
+
+ this.PrepareDaten();
+
+ } catch (error) {
+
+ this.Debug.ShowErrorMessage(error, 'Mitarbeiterliste', 'MenueButtonClicked', this.Debug.Typen.Page);
+ }
+
+ }
+
+ CanUrlaubsfreigabe(Freigeber: Mitarbeiterstruktur): boolean {
+
+ try {
+
+ if(this.CurrentStandort !== null) {
+
+ return this.CurrentStandort.Urlaubfreigabepersonen.indexOf(Freigeber._id) !== -1;
+ }
+ else {
+
+ return false;
+ }
+ } catch (error) {
+
+ this.Debug.ShowErrorMessage(error, 'Mitarbeiterliste', 'CanUrlaubsfreigabe', this.Debug.Typen.Page);
+ }
+ }
+
+ CanHomeofficefreigabe(Freigeber: Mitarbeiterstruktur): boolean {
+
+ try {
+
+ if(this.CurrentStandort !== null) {
+
+ return this.CurrentStandort.Homeofficefreigabepersonen.indexOf(Freigeber._id) !== -1;
+ }
+ else {
+
+ return false;
+ }
+ } catch (error) {
+
+ this.Debug.ShowErrorMessage(error, 'Mitarbeiterliste', 'CanHomeofficefreigabe', this.Debug.Typen.Page);
+ }
+ }
+
+ UrlaufsfreigabeIsSet(Freigeber: Mitarbeiterstruktur, Mitarbeiter: Mitarbeiterstruktur) {
+
+ try {
+
+ return Mitarbeiter.Urlaubsfreigeberliste.indexOf(Freigeber._id) !== -1;
+
+ } catch (error) {
+
+ this.Debug.ShowErrorMessage(error, 'Mitarbeiterliste', 'UrlaufsfreigabeIsSet', this.Debug.Typen.Page);
+ }
+ }
+
+ UrlaufsfreigabeinfomailIsSet(Freigeber: Mitarbeiterstruktur, Mitarbeiter: Mitarbeiterstruktur) {
+
+ try {
+
+ return Mitarbeiter.Urlaubsfreigabeinfomailliste.indexOf(Freigeber._id) !== -1;
+
+ } catch (error) {
+
+ this.Debug.ShowErrorMessage(error, 'Mitarbeiterliste', 'UrlaufsfreigabeinfomailIsSet', this.Debug.Typen.Page);
+ }
+ }
+
+ HomeofficefreigabeIsSet(Freigeber: Mitarbeiterstruktur, Mitarbeiter: Mitarbeiterstruktur) {
+
+ try {
+
+ return Mitarbeiter.Homeofficefreigeberliste.indexOf(Freigeber._id) !== -1;
+
+ } catch (error) {
+
+ this.Debug.ShowErrorMessage(error, 'Mitarbeiterliste', 'HomeofficefreigabeIsSet', this.Debug.Typen.Page);
+ }
+ }
+
+ async UrlaufsfreigabeChanged(event: { status: boolean; index: number; event: any; value: string }, Freigeber: Mitarbeiterstruktur, Mitarbeiter: Mitarbeiterstruktur) {
+
+ try {
+
+ if(event.status === true) {
+
+ Mitarbeiter.Urlaubsfreigeberliste.push(Freigeber._id);
+ }
+ else {
+
+ Mitarbeiter.Urlaubsfreigeberliste = lodash.filter(Mitarbeiter.Urlaubsfreigeberliste, (id: string) => {
+
+ return id !== Freigeber._id;
+ });
+ }
+
+ await this.DB.UpdateMitarbeiter(Mitarbeiter);
+
+ } catch (error) {
+
+ this.Debug.ShowErrorMessage(error, 'Mitarbeiterliste', 'UrlaufsfreigabeChanged', this.Debug.Typen.Page);
+ }
+ }
+
+ async UrlaufsfreigabeinfomailChanged(event: { status: boolean; index: number; event: any; value: string }, Freigeber: Mitarbeiterstruktur, Mitarbeiter: Mitarbeiterstruktur) {
+
+ try {
+
+ if(event.status === true) {
+
+ Mitarbeiter.Urlaubsfreigabeinfomailliste.push(Freigeber._id);
+ }
+ else {
+
+ Mitarbeiter.Urlaubsfreigabeinfomailliste = lodash.filter(Mitarbeiter.Urlaubsfreigabeinfomailliste, (id: string) => {
+
+ return id !== Freigeber._id;
+ });
+ }
+
+ await this.DB.UpdateMitarbeiter(Mitarbeiter);
+
+ } catch (error) {
+
+ this.Debug.ShowErrorMessage(error, 'Mitarbeiterliste', 'UrlaufsfreigabeinfomailChanged', this.Debug.Typen.Page);
+ }
+ }
+
+ async HomeofficefreigabeChanged(event: { status: boolean; index: number; event: any; value: string }, Freigeber: Mitarbeiterstruktur, Mitarbeiter: Mitarbeiterstruktur) {
+
+ try {
+
+ if(event.status === true) {
+
+ Mitarbeiter.Homeofficefreigeberliste.push(Freigeber._id);
+ }
+ else {
+
+ Mitarbeiter.Homeofficefreigeberliste = lodash.filter(Mitarbeiter.Homeofficefreigeberliste, (id: string) => {
+
+ return id !== Freigeber._id;
+ });
+ }
+
+ await this.DB.UpdateMitarbeiter(Mitarbeiter);
+
+ } catch (error) {
+
+ this.Debug.ShowErrorMessage(error, 'Mitarbeiterliste', 'HomeofficefreigabeChanged', this.Debug.Typen.Page);
+ }
+ }
+
+ async AllUrlaubClicked(Freigeber: Mitarbeiterstruktur) {
+
+ try {
+
+ this.Pool.ProgressMessage = 'Urlaubsfreigaben werden geändert';
+ this.Pool.ShowProgress = true;
+ this.Pool.MaxProgressValue = this.Mitarbeiterliste.length;
+ this.Pool.CurrentProgressValue = 0;
+
+ for(let Mitarbeiter of this.Mitarbeiterliste) {
+
+ if(Mitarbeiter.Urlaubsfreigeberliste.indexOf(Freigeber._id) === -1) {
+
+ Mitarbeiter.Urlaubsfreigeberliste.push(Freigeber._id);
+ }
+ else {
+
+ Mitarbeiter.Urlaubsfreigeberliste = lodash.filter(Mitarbeiter.Urlaubsfreigeberliste, (id: string) => {
+
+ return id !== Freigeber._id;
+ });
+ }
+
+ await this.DB.UpdateMitarbeiter(Mitarbeiter);
+
+ this.Pool.CurrentProgressValue++;
+ }
+
+ this.Pool.ShowProgress = false;
+
+ } catch (error) {
+
+ this.Debug.ShowErrorMessage(error, 'Mitarbeiterliste', 'AllUrlaubClicked', this.Debug.Typen.Page);
+ }
+ }
+
+ async AllHomeofficeClicked(Freigeber: Mitarbeiterstruktur) {
+
+ try {
+
+ this.Pool.ProgressMessage = 'Homeofficefreigaben werden geändert';
+ this.Pool.ShowProgress = true;
+ this.Pool.MaxProgressValue = this.Mitarbeiterliste.length;
+ this.Pool.CurrentProgressValue = 0;
+
+ for(let Mitarbeiter of this.Mitarbeiterliste) {
+
+ if(Mitarbeiter.Homeofficefreigeberliste.indexOf(Freigeber._id) === -1) {
+
+ Mitarbeiter.Homeofficefreigeberliste.push(Freigeber._id);
+ }
+ else {
+
+ Mitarbeiter.Homeofficefreigeberliste = lodash.filter(Mitarbeiter.Homeofficefreigeberliste, (id: string) => {
+
+ return id !== Freigeber._id;
+ });
+ }
+
+ await this.DB.UpdateMitarbeiter(Mitarbeiter);
+
+ this.Pool.CurrentProgressValue++;
+ }
+
+ this.Pool.ShowProgress = false;
+
+ } catch (error) {
+
+ this.Debug.ShowErrorMessage(error, 'Mitarbeiterliste', 'AllHomeofficeClicked', this.Debug.Typen.Page);
+ }
+ }
+
+ async AllUrlaubfreigabeInfomailClicked(Freigeber: Mitarbeiterstruktur) {
+
+ try {
+
+ this.Pool.ProgressMessage = 'Urlaubfreigaben Infomails werden geändert';
+ this.Pool.ShowProgress = true;
+ this.Pool.MaxProgressValue = this.Mitarbeiterliste.length;
+ this.Pool.CurrentProgressValue = 0;
+
+ for(let Mitarbeiter of this.Mitarbeiterliste) {
+
+ if(Mitarbeiter.Urlaubsfreigabeinfomailliste.indexOf(Freigeber._id) === -1) {
+
+ Mitarbeiter.Urlaubsfreigabeinfomailliste.push(Freigeber._id);
+ }
+ else {
+
+ Mitarbeiter.Urlaubsfreigabeinfomailliste = lodash.filter(Mitarbeiter.Urlaubsfreigabeinfomailliste, (id: string) => {
+
+ return id !== Freigeber._id;
+ });
+ }
+
+ await this.DB.UpdateMitarbeiter(Mitarbeiter);
+
+ this.Pool.CurrentProgressValue++;
+ }
+
+ this.Pool.ShowProgress = false;
+
+ } catch (error) {
+
+ this.Debug.ShowErrorMessage(error, 'Mitarbeiterliste', 'AllUrlaubfreigabeInfomailClicked', this.Debug.Typen.Page);
+ }
+ }
+}
diff --git a/src/app/services/database-mitarbeiter/database-mitarbeiter.service.ts b/src/app/services/database-mitarbeiter/database-mitarbeiter.service.ts
index 8f38057..2956461 100644
--- a/src/app/services/database-mitarbeiter/database-mitarbeiter.service.ts
+++ b/src/app/services/database-mitarbeiter/database-mitarbeiter.service.ts
@@ -84,6 +84,8 @@ export class DatabaseMitarbeiterService {
}
}
+ /*
+
if(Mitarbeiter.StandortID === '') {
let Standort = lodash.find(this.Pool.Standorteliste, {Ort: 'Bamberg'});
@@ -93,6 +95,7 @@ export class DatabaseMitarbeiterService {
Mitarbeiter.StandortID = Standort._id;
}
}
+ */
let A = graphuser.surname !== null ? graphuser.surname.substring(0, 2).toUpperCase() : '';
let B = graphuser.givenName !== null ? graphuser.givenName.substring(0, 1).toUpperCase() : '';
@@ -236,6 +239,9 @@ export class DatabaseMitarbeiterService {
Meinewocheliste: [],
Archiviert: false,
Urlaubsliste: [],
+ Urlaubsfreigeberliste: [],
+ Homeofficefreigeberliste: [],
+ Urlaubsfreigabeinfomailliste: []
};
} catch (error) {
@@ -327,9 +333,9 @@ export class DatabaseMitarbeiterService {
if(Merker !== null) {
- this.CurrentMitarbeiter = Merker;
- // this.Pool.Mitarbeiterdaten = Merker;
- // this.Pool.MitarbeiterdatenChanged.emit();
+ this.CurrentMitarbeiter = Merker;
+
+ debugger;
this.UpdateMitarbeiterliste(this.CurrentMitarbeiter);
this.Pool.MitarbeiterlisteChanged.emit();
diff --git a/src/app/services/database-pool/database-pool.service.ts b/src/app/services/database-pool/database-pool.service.ts
index 6e72cb5..0064b4f 100644
--- a/src/app/services/database-pool/database-pool.service.ts
+++ b/src/app/services/database-pool/database-pool.service.ts
@@ -885,6 +885,14 @@ export class DatabasePoolService {
if(lodash.isUndefined(Standort.Urlaubfreigabepersonen)) Standort.Urlaubfreigabepersonen = [];
}
+ this.Standorteliste.sort((a: Standortestruktur, b: Standortestruktur) => {
+
+ if (a.Ort < b.Ort) return -1;
+ if (a.Ort > b.Ort) return 1;
+
+ return 0;
+ });
+
this.StandortelisteChanged.emit();
@@ -1026,6 +1034,10 @@ export class DatabasePoolService {
mitarbeiter.PositionID = null;
}
+ if(lodash.isUndefined(mitarbeiter.Urlaubsfreigeberliste)) mitarbeiter.Urlaubsfreigeberliste = [];
+ if(lodash.isUndefined(mitarbeiter.Homeofficefreigeberliste)) mitarbeiter.Homeofficefreigeberliste = [];
+ if(lodash.isUndefined(mitarbeiter.Urlaubsfreigabeinfomailliste)) mitarbeiter.Urlaubsfreigabeinfomailliste = []
+
for(let Eintrag of mitarbeiter.Meinewocheliste) {
if(lodash.isUndefined(Eintrag.Kalenderwoche)) Eintrag.Kalenderwoche = 0;
diff --git a/src/index.html b/src/index.html
index 3bab924..d454f0e 100644
--- a/src/index.html
+++ b/src/index.html
@@ -14,9 +14,7 @@
-
-
-
+
diff --git a/www/index.html b/www/index.html
index 3ba70bf..1ae6a89 100644
--- a/www/index.html
+++ b/www/index.html
@@ -14,14 +14,12 @@
-
-
-
+
-
+