Compare commits

...

7 Commits

Author SHA1 Message Date
Developer 02
27954cc0c4 chore(client): Client-App aktualisieren 2024-09-02 10:12:20 +02:00
Developer 02
3e0aeced71 Reapply "refactor(middleware): Entferne WebApiMiddleware"
This reverts commit 381f428f77.
2024-09-02 09:42:47 +02:00
Developer 02
43d0d86c79 Reapply "chore(config): NLog-Konfiguration aus WebApiConfig entfernt"
This reverts commit dddc01d24c.
2024-09-02 09:42:39 +02:00
Developer 02
dddc01d24c Revert "chore(config): NLog-Konfiguration aus WebApiConfig entfernt"
This reverts commit a55b4c5f63.
2024-09-02 09:36:59 +02:00
Developer 02
381f428f77 Revert "refactor(middleware): Entferne WebApiMiddleware"
This reverts commit bb61c6dca0.
2024-09-02 09:36:51 +02:00
Developer 02
bb61c6dca0 refactor(middleware): Entferne WebApiMiddleware 2024-09-02 09:15:58 +02:00
Developer 02
a55b4c5f63 chore(config): NLog-Konfiguration aus WebApiConfig entfernt 2024-09-02 09:12:32 +02:00
78 changed files with 4399 additions and 170 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
"use strict";(self.webpackChunkstaffdb=self.webpackChunkstaffdb||[]).push([[732],{69732:(D,c,n)=>{n.r(c),n.d(c,{AppAccountModule:()=>M});var u=n(60177),i=n(89417),m=n(19664),d=n(94753),h=n(31837),l=n(18498),t=n(54438),p=n(49619),v=n(96995),f=n(85956),A=n(99213),r=n(21009);const y=[{path:"",component:(()=>{class e extends p.l{constructor(){super(...arguments),this.appDataService=(0,t.WQX)(v.D)}onClick(){}static#t=this.\u0275fac=(()=>{let a;return function(s){return(a||(a=t.xGo(e)))(s||e)}})();static#n=this.\u0275cmp=t.VBU({type:e,selectors:[["app-account-ext"]],features:[t.Vt3],decls:9,vars:2,consts:[["profile-settings",""],["admin-settings",""],["id","input-WebApp","placeholder","Webapp","keyExpr","entityId","displayExpr","webAppName","sortField","*","separator",",",1,"input-webapp",3,"selectedItemsChange","dataSource","multiSelect"],["mat-button","",1,"btn",3,"click"],["other-settings",""]],template:function(o,s){1&o&&(t.j41(0,"app-account"),t.nrm(1,"div",0),t.j41(2,"div",1)(3,"hensel-selection",2),t.bIt("selectedItemsChange",function(j){return s.webAppIdList=j}),t.k0s(),t.j41(4,"button",3),t.bIt("click",function(){return s.onClick()}),t.j41(5,"mat-icon"),t.EFF(6,"autorenew"),t.k0s(),t.EFF(7," Synchronize WebAppRole mit ADGroupen "),t.k0s()(),t.nrm(8,"div",4),t.k0s()),2&o&&(t.R7$(3),t.Y8G("dataSource",s.appDataService.webAppList.items)("multiSelect",!0))},dependencies:[p.l,f.iV,A.An,r.n],styles:[".input-webapp[_ngcontent-%COMP%]{float:left}.btn[_ngcontent-%COMP%]{margin-left:10px;margin-top:8px}"]})}return e})(),canActivate:[n(27938).q]}];let F=(()=>{class e{static#t=this.\u0275fac=function(o){return new(o||e)};static#n=this.\u0275mod=t.$C({type:e});static#e=this.\u0275inj=t.G2t({imports:[l.iI.forChild(y),l.iI]})}return e})();var I=n(39655),x=n(18406);let M=(()=>{class e{static#t=this.\u0275fac=function(o){return new(o||e)};static#n=this.\u0275mod=t.$C({type:e});static#e=this.\u0275inj=t.G2t({imports:[u.MD,F,I.AccountModule,x.e,i.X1,i.YN,d.N,h.WC8,r.n,m.h]})}return e})()}}]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" width="900" height="600">
<rect fill="#c8102e" width="900" height="600"/>
<rect fill="#fff" y="200" width="900" height="200"/>
</svg>

After

Width:  |  Height:  |  Size: 213 B

View File

@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1280" height="640" viewBox="0 0 10080 5040">
<defs>
<clipPath id="c1"><path d="M0,0H6V3H0z"/></clipPath>
<clipPath id="c2"><path d="M0,0V1.5H6V3H6zM6,0H3V3H0V3z"/></clipPath>
<path id="Star7" d="M0,-360 69.421398,-144.155019 281.459334,-224.456329 155.988466,-35.603349 350.974048,80.107536 125.093037,99.758368 156.198146,324.348792 0,160 -156.198146,324.348792 -125.093037,99.758368 -350.974048,80.107536 -155.988466,-35.603349 -281.459334,-224.456329 -69.421398,-144.155019z"/>
<path id="Star5" d="M0,-210 54.859957,-75.508253 199.721868,-64.893569 88.765275,28.841586 123.434903,169.893569 0,93.333333 -123.434903,169.893569 -88.765275,28.841586 -199.721868,-64.893569 -54.859957,-75.508253z"/>
</defs>
<g transform="scale(840)">
<rect width="12" height="6" fill="#00008b"/>
<path d="M0,0 6,3M6,0 0,3" stroke="#fff" stroke-width="0.6" clip-path="url(#c1)"/>
<path d="M0,0 6,3M6,0 0,3" stroke="#f00" stroke-width="0.4" clip-path="url(#c2)"/>
<path d="M3,0V3M0,1.5H6" stroke="#fff"/>
<path d="M3,0V3M0,1.5H6" stroke="#f00" stroke-width="0.6"/>
</g>
<g fill="#fff">
<use id="Comwlth" xlink:href="#Star7" transform="translate(2520, 3780) scale(2.1)"/>
<use id="αCrucis" xlink:href="#Star7" x="7560" y="4200"/>
<use id="βCrucis" xlink:href="#Star7" x="6300" y="2205"/>
<use id="γCrucis" xlink:href="#Star7" x="7560" y="840"/>
<use id="δCrucis" xlink:href="#Star7" x="8680" y="1869"/>
<use id="εCrucis" xlink:href="#Star5" x="8064" y="2730"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" width="900" height="600" viewBox="0 0 9 6">
<rect fill="#FFCE00" width="9" height="6"/>
<rect fill="#DD0000" width="9" height="4"/>
<rect fill="#000000" width="9" height="2"/>
</svg>

After

Width:  |  Height:  |  Size: 222 B

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" width="900" height="600"><rect width="900" height="600" fill="#ED2939"/><rect width="600" height="600" fill="#fff"/><rect width="300" height="600" fill="#002395"/></svg>

After

Width:  |  Height:  |  Size: 249 B

View File

@@ -0,0 +1,16 @@
<?xml version="1.0"?>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60 30" width="1200" height="600">
<clipPath id="s">
<path d="M0,0 v30 h60 v-30 z"/>
</clipPath>
<clipPath id="t">
<path d="M30,15 h30 v15 z v15 h-30 z h-30 v-15 z v-15 h30 z"/>
</clipPath>
<g clip-path="url(#s)">
<path d="M0,0 v30 h60 v-30 z" fill="#012169"/>
<path d="M0,0 L60,30 M60,0 L0,30" stroke="#fff" stroke-width="6"/>
<path d="M0,0 L60,30 M60,0 L0,30" clip-path="url(#t)" stroke="#C8102E" stroke-width="4"/>
<path d="M30,0 v30 M0,15 h60" stroke="#fff" stroke-width="10"/>
<path d="M30,0 v30 M0,15 h60" stroke="#C8102E" stroke-width="6"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 641 B

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="900" height="600" viewBox="-36 -24 72 48">
<title>Flag of South Korea</title>
<path d="M-36-24h72v48h-72z" fill="#fff"/>
<g transform="rotate(-56.3099325)"><!--arctan(-3/2)-->
<g id="b2"><path id="b" d="M-6-26H6v2H-6zm0 3H6v2H-6zm0 3H6v2H-6z"/>
<use xlink:href="#b" y="44"/></g>
<path stroke="#fff" d="M0,17v10"/>
<path fill="#cd2e3a" d="M0-12A12 12 0 0 1 0 12z"/>
<path fill="#0047a0" d="M0-12A12 12 0 0 0 0 12 6 6 0 0 0 0 0z"/>
<circle cy="-6" fill="#cd2e3a" r="6"/></g>
<g transform="rotate(-123.6900675)"><use xlink:href="#b2"/>
<path stroke="#fff" d="M0-23.5v3M0,17v3.5M0,23.5v3"/></g></svg>

After

Width:  |  Height:  |  Size: 726 B

View File

@@ -0,0 +1,11 @@
<?xml version="1.0"?>
<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="600" viewBox="0 0 13440 6720" fill="none">
<title>Flag of Malaysia</title>
<g transform="scale(480)">
<path fill="#fff" d="m0 0h28v14H0z"/>
<path stroke="#c00" d="m1 .5h27m0 2H1m0 2h27m0 2H1"/>
<path fill="#006" d="m0 0h14v8.5H0z"/>
<path stroke="#c00" d="m0 8.5h28m0 2H0m0 2h28"/>
</g>
<path fill="#fc0" d="m4200 720 107 732 414-613-222 706 639-373-506 540 738-59-690 267 690 267-738-59 506 540-639-373 222 706-414-613-107 732-107-732-414 613 222-706-639 373 506-540-738 59 690-267-690-267 738 59-506-540 639 373-222-706 414 613zm-600 30a1280 1280 0 1 0 0 2340 1440 1440 0 1 1 0-2340z"/>
</svg>

After

Width:  |  Height:  |  Size: 683 B

View File

@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1235" height="650" viewBox="0 0 7410 3900">
<rect width="7410" height="3900" fill="#b22234"/>
<path d="M0,450H7410m0,600H0m0,600H7410m0,600H0m0,600H7410m0,600H0" stroke="#fff" stroke-width="300"/>
<rect width="2964" height="2100" fill="#3c3b6e"/>
<g fill="#fff">
<g id="s18">
<g id="s9">
<g id="s5">
<g id="s4">
<path id="s" d="M247,90 317.534230,307.082039 132.873218,172.917961H361.126782L176.465770,307.082039z"/>
<use xlink:href="#s" y="420"/>
<use xlink:href="#s" y="840"/>
<use xlink:href="#s" y="1260"/>
</g>
<use xlink:href="#s" y="1680"/>
</g>
<use xlink:href="#s4" x="247" y="210"/>
</g>
<use xlink:href="#s9" x="494"/>
</g>
<use xlink:href="#s18" x="988"/>
<use xlink:href="#s9" x="1976"/>
<use xlink:href="#s5" x="2470"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 874 B

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

View File

@@ -0,0 +1,7 @@
const environment = {
production: true,
useLoginWithJWT: true,
apiUrl: '/api',
sentry_dsn: '',
translationFolder: './assets/translate/',
};

View File

@@ -0,0 +1,70 @@
{
"name": "staffdb",
"version": "14.23.33",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"watch": "ng build --watch --configuration development",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e",
"reinstall:packages": "rm -rf node_modules dist && npm cache clean --force && rm package-lock.json && npm install",
"win_reinstall:packages": "rd /s /q node_modules && npm cache clean --force && del package-lock.json && npm install",
"add_pwa": "ng add @angular/pwa@latest"
},
"private": true,
"dependencies": {
"@angular/animations": "^17.3.10",
"@angular/cdk": "^16.2.14",
"@angular/common": "^17.3.10",
"@angular/compiler": "^17.3.10",
"@angular/core": "^17.3.10",
"@angular/forms": "^17.3.10",
"@angular/localize": "^17.3.10",
"@angular/material": "^16.2.14",
"@angular/material-moment-adapter": "^16.2.14",
"@angular/platform-browser": "^17.3.10",
"@angular/platform-browser-dynamic": "^17.3.10",
"@angular/pwa": "^17.3.8",
"@angular/router": "^17.3.10",
"@angular/service-worker": "^17.3.10",
"@ngx-translate/core": "^15.0.0",
"@ngx-translate/http-loader": "^8.0.0",
"@sentry/angular": "^8.4.0",
"angular-in-memory-web-api": "^0.17.0",
"devextreme-angular": "~23.2.6",
"exceljs": "^4.4.0",
"file-saver": "^2.0.5",
"jspdf": "^2.5.1",
"moment": "^2.30.1",
"ngx-clipboard": "^16.0.0",
"ngx-device-detector": "^7.0.0",
"ngx-mask": "^17.0.8",
"ngx-spinner": "^17.0.0",
"ngx-translate-multi-http-loader": "^17.0.0",
"ngx-webcam": "^0.4.1",
"rxjs": "^7.8.1",
"zone.js": "^0.14.6"
},
"devDependencies": {
"@angular-devkit/build-angular": "^17.3.8",
"@angular/cli": "^17.3.8",
"@angular/compiler-cli": "^17.3.10",
"@angular/language-service": "^17.3.10",
"@types/jasmine": "latest",
"@types/node": "latest",
"codelyzer": "latest",
"jasmine-core": "latest",
"jasmine-spec-reporter": "latest",
"karma": "latest",
"karma-chrome-launcher": "latest",
"karma-coverage": "latest",
"karma-jasmine": "latest",
"karma-jasmine-html-reporter": "latest",
"protractor": "latest",
"ts-node": "latest",
"tslint": "latest",
"typescript": "~5.4.5"
}
}

View File

@@ -0,0 +1,110 @@
{
"core.btn.ok": "Ok",
"core.btn.yes": "Ja",
"core.btn.no": "Nein",
"core.btn.cancel": "Abbrechen",
"core.btn.apply": "Übernehmen",
"core.btn.reset": "Reset",
"core.hint.reset": "Zurücksetzen",
"core.hint.undo": "Änderungen verwerfen",
"core.btn.undo": "Verwerfen",
"core.btn.search": "Suchen",
"core.dropdown-option.all": "< Alle >",
"core.dropdown-option.none": "< Keine >",
"core.caption.login": "Login",
"core.caption.hidepassword": "Hide password",
"core.caption.registration": "Anmeldung",
"core.caption.logout": "Logout",
"core.caption.config": "Einstellungen",
"core.caption.version": "Version",
"core.caption.username": "Benutzername",
"core.caption.password": "Passwort",
"core.caption.account": "Konto",
"core.caption.all": "Alle",
"core.caption.none": "Keine",
"core.caption.serverinfo-pollinginterval": "Abstang für Erneuerung von Serverver Info (Sek., 0-nie)",
"core.msg.saving": "Speichern {{value}}...",
"core.msg.saved": "Gespeichert {{value}}",
"core.msg.loading": "Laden {{value}}...",
"core.msg.loaded": "Geladen {{value}}: {{count}}",
"core.msg.loggedon": "Benutzeranmeldung für {{value}} war erfolgreich",
"core.msg.renewJWT": "Versuche zu verlängern von JWT",
"core.msg.waitingconnecton": "Warte auf Verbindung...",
"core.msg.checkuser": "Benutzer wird überprüft...",
"core.msg.greeting": "Hallo",
"core.msg.update": "Bitte aktualisieren!",
"core.hint.update": "Klicke um die Version zu aktualisieren",
"core.error.loading": "Fehler beim Laden von {{value}}",
"core.error.saving": "Fehler beim Speichern von {{value}}",
"core.error.deleting": "Fehler beim Löschen von {{value}}",
"core.error.nouserrole": "Keine Benutzerrole ist zugewiesen!",
"core.error.logon": "Anmeldung ist fehlgeschlagen!",
"core.error.logonnotpossible": "{{value}}Anmeldung ist nicht möglich!",
"core.error.disclaimernotconfirmed": "Haftungsausschluss muss bestätigt werden!",
"core.msgbox.header.cancel": "{{value}}",
"core.msgbox.body.cancel": "Sollen Änderungen gespeichert werden?",
"core.msgbox.header.delete": "{{value}}",
"core.msgbox.body.delete": "Soll {{value}} gelöscht werden?",
"core.msgbox.header.connect": "Verbindungsaufbau",
"core.msgbox.body.connect": "Keine Verbindung zum Server kann aufgebaut werden. Bitte wenden sie sich an IT-Entwicklung",
"core.grid.nodata": "Keine Daten vorhanden",
"core.hdatepicker.dateoutofrange": "Das Datum ist ausser zulässigem Bereich",
"core.hensel-selection.nohits": "Keine Treffer gefunden",
"core.hensel-selection.selectedfirst": "Selektierte zuerst",
"core.hensel-selection.processlist": "Liste bearbeiten",
"core.hensel-selection.inputminsybols": "Für Auswahl mind. {{value}} Zeichen eingeben",
"core.hwebcam.delete": "Foto löschen",
"core.hwebcam.takepicture": "Foto aufnehmen",
"core.footer.status": "Status",
"core.footer.noconnection": "Keine Verbindung ist vorhanden !!!",
"core.footer.lastloading": "Letzte Datenabruf",
"core.footer.loginexpires": "Anmeldung läuft ab in",
"core.footer.days": "Tag(e)",
"core.footer.hours": "Std.",
"core.footer.mins": "Min.",
"core.footer.secs": "Sek.",
"core.account.caption.price": "Preis",
"core.account.caption.weight" : "Gewicht",
"core.caption.date": "Datum",
"core.caption.user": "Benutzer",
"core.caption.role": "Rolle",
"core.caption.myaccount": "Mein Konto",
"core.caption.disclaimer": "Haftungsausschluss",
"core.caption.addsettings" : "Admineinstellungen",
"core.caption.showstatusbar" : "Statuszeile anzeigen",
"core.caption.showids" : "Ids anzeigen",
"core.caption.language" : "Sprache",
"core.caption.regionformat" : "Regionales Format",
"core.caption.name": "Name",
"core.caption.userloginname": "Benutzername",
"core.caption.country-ge": "Deutschland",
"core.caption.country-at": "Österrecih",
"core.caption.country-gb": "Grossbritanien",
"core.caption.country-us": "United States",
"core.caption.country-au": "Australien",
"core.caption.country-fr": "Frankreich",
"core.caption.country-kr": "Korea",
"core.caption.country-my": "Malaysia",
"core.caption.lang-ge": "Deutsch",
"core.caption.lang-at": "Deutsch",
"core.caption.lang-gb": "Englisch",
"core.caption.lang-us": "Englisch",
"core.caption.lang-au": "Englisch",
"core.caption.lang-fr": "Französisch",
"core.caption.lang-kr": "Koreanisch",
"core.caption.lang-my": "Malaiisch"
}

View File

@@ -0,0 +1,110 @@
{
"core.btn.ok": "Ok",
"core.btn.yes": "Yes",
"core.btn.no": "No",
"core.btn.cancel": "Cancel",
"core.btn.apply": "Apply",
"core.btn.reset": "Reset",
"core.hint.reset": "Reset",
"core.hint.undo": "Discard changes",
"core.btn.undo": "Discard",
"core.btn.search": "Search",
"core.dropdown-option.all": "< All >",
"core.dropdown-option.none": "< None >",
"core.caption.login": "Login",
"core.caption.hidepassword": "Hide password",
"core.caption.registration": "Log in",
"core.caption.logout": "Logout",
"core.caption.config": "Configuration",
"core.caption.version": "Version",
"core.caption.username": "Username",
"core.caption.password": "Password",
"core.caption.account": "Account",
"core.caption.all": "All",
"core.caption.none": "None",
"core.caption.serverinfo-pollinginterval": "Interval to refresh of Serverver Info (sec., 0-never)",
"core.msg.saving": "Saving {{value}}...",
"core.msg.saved": "Saved {{value}}",
"core.msg.loading": "Loading {{value}}...",
"core.msg.loaded": "Loaded {{value}}: {{count}}",
"core.msg.loggedon": "Logon for {{value}} succeeded",
"core.msg.renewJWT": "Try to renew JWT",
"core.msg.waitingconnecton": "Waiting connection...",
"core.msg.checkuser": "Check user...",
"core.msg.greeting": "Hello",
"core.msg.update": "Please update!",
"core.hint.update": "Click to update the version",
"core.error.loading": "Error during loading of {{value}}",
"core.error.saving": "Error during saving of {{value}}",
"core.error.deleting": "Error during deleting of {{value}}",
"core.error.nouserrole": "User is assigned no role!",
"core.error.logon": "Logon failed!",
"core.error.logonnotpossible": "{{value}}Logon is not possible!",
"core.error.disclaimernotconfirmed": "Disclaimer must be confirmed!",
"core.msgbox.header.cancel": "{{value}}",
"core.msgbox.body.cancel": "Save changes?",
"core.msgbox.header.delete": "{{value}}",
"core.msgbox.body.delete": "Delete {{value}}?",
"core.msgbox.header.connect": "Establish connection",
"core.msgbox.body.connect": "The server connot be connected. Please contact IT-Development",
"core.grid.nodata": "No data",
"core.hdatepicker.dateoutofrange": "The date is out of range",
"core.hensel-selection.nohits": "No hits",
"core.hensel-selection.selectedfirst": "Selected first",
"core.hensel-selection.processlist": "Edit list",
"core.hensel-selection.inputminsybols": "For selection input at least {{value}} symbols",
"core.hwebcam.delete": "Delete picture",
"core.hwebcam.takepicture": "Take picture",
"core.footer.status": "Status",
"core.footer.noconnection": "No connectoin to the server !!!",
"core.footer.lastloading": "Last Dataloading",
"core.footer.loginexpires": "Login expires in",
"core.footer.days": "Day(s)",
"core.footer.hours": "Hr(s)",
"core.footer.mins": "Min(s)",
"core.footer.secs": "Sec(s)",
"core.account.caption.price": "Price",
"core.account.caption.weight" : "Weight",
"core.caption.date": "Date",
"core.caption.user": "User",
"core.caption.role": "Role",
"core.caption.myaccount": "My Account",
"core.caption.disclaimer": "Disclaimer",
"core.caption.addsettings" : "Admin Settings",
"core.caption.showstatusbar" : "Show Statusbar",
"core.caption.showids" : "Show Ids",
"core.caption.language" : "Language",
"core.caption.regionformat" : "Regional Format",
"core.caption.name": "Name",
"core.caption.userloginname": "Loginname",
"core.caption.country-ge": "Germany",
"core.caption.country-at": "Austria",
"core.caption.country-gb": "United Kingdom",
"core.caption.country-us": "United States",
"core.caption.country-au": "Australia",
"core.caption.country-fr": "France",
"core.caption.country-kr": "Korea",
"core.caption.country-my": "Malaysia",
"core.caption.lang-ge": "German",
"core.caption.lang-at": "German",
"core.caption.lang-gb": "English",
"core.caption.lang-us": "English",
"core.caption.lang-au": "English",
"core.caption.lang-fr": "French",
"core.caption.lang-kr": "Korean",
"core.caption.lang-my": "Malay"
}

View File

@@ -0,0 +1,107 @@
{
"core.btn.ok": "Ok",
"core.btn.yes": "Yes",
"core.btn.no": "No",
"core.btn.cancel": "Cancel",
"core.btn.apply": "Accept",
"core.btn.reset": "Reset",
"core.hint.reset": "Reset",
"core.btn.search": "Search",
"core.dropdown-option.all": "< All >",
"core.dropdown-option.none": "< None >",
"core.caption.login": "Login",
"core.caption.registration": "Log in",
"core.caption.logout": "Logout",
"core.caption.config": "Configuration",
"core.caption.version": "Version",
"core.caption.username": "Username",
"core.caption.password": "Password",
"core.caption.account": "Account",
"core.caption.all": "All",
"core.caption.none": "None",
"core.caption.serverinfo-pollinginterval": "Interval to refresh of Serverver Info (sec., 0-never)",
"core.msg.saving": "Saving {{value}}...",
"core.msg.saved": "Saved {{value}}",
"core.msg.loading": "Loading {{value}}...",
"core.msg.loaded": "Loaded {{value}}: {{count}}",
"core.msg.loggedon": "Logon for {{value}} succeeded",
"core.msg.renewJWT": "Try to renew JWT",
"core.msg.waitingconnecton": "Waiting connection...",
"core.msg.checkuser": "Check user...",
"core.msg.greeting": "Hello",
"core.msg.update": "Please update!",
"core.hint.update": "Click to update the version",
"core.error.loading": "Error during loading of {{value}}",
"core.error.saving": "Error during saving of {{value}}",
"core.error.deleting": "Error during deleting of {{value}}",
"core.error.nouserrole": "User is assigned no role!",
"core.error.logon": "Logon failed!",
"core.error.logonnotpossible": "{{value}}Logon is not possible!",
"core.error.disclaimernotconfirmed": "Disclaimer must be confirmed!",
"core.msgbox.header.cancel": "Cancelling of processing of {{value}}",
"core.msgbox.body.cancel": "{{value}} was changed. Should changes be saved?",
"core-confirmmsgheader_delete": "Deleting of {{value}}",
"core.msgbox.body.delete": "Should {{value}} be deleted?",
"core-confirmmsgheader_connect": "Establish connection",
"core.msgbox.body.connect": "The server connot be connected. Please contact IT-Development",
"core.grid.nodata": "No data",
"core.hdatepicker.dateoutofrange": "The date is out of range",
"core.hensel-selection.nohits": "No hits",
"core.hensel-selection.selectedfirst": "Selected first",
"core.hensel-selection.processlist": "Edit list",
"core.hensel-selection.inputminsybols": "For selection input at least {{value}} symbols",
"core.hwebcam.takepicture": "Take picture",
"core.hwebcam.delete": "Delete picture",
"core.footer.status": "Status",
"core.footer.noconnection": "No connectoin to the server !!!",
"core.footer.lastloading": "Last Dataloading",
"core.footer.loginexpires": "Login expires in",
"core.footer.days": "Day(s)",
"core.footer.hours": "Hr(s)",
"core.footer.mins": "Min(s)",
"core.footer.secs": "Sec(s)",
"core.account.caption.price": "Price",
"core.account.caption.weight" : "Weight",
"core.caption.date": "Date",
"core.caption.user": "User",
"core.caption.role": "Role",
"core.caption.myaccount": "My Account",
"core.caption.disclaimer": "Disclaimer",
"core.caption.addsettings" : "Admin Settings",
"core.caption.showstatusbar" : "Show Statusbar",
"core.caption.showids" : "Show Ids",
"core.caption.language" : "Language",
"core.caption.regionformat" : "Regional Format",
"core.caption.name": "Name",
"core.caption.userloginname": "Loginname",
"core.caption.country-ge": "Germany",
"core.caption.country-at": "Austria",
"core.caption.country-gb": "United Kingdom",
"core.caption.country-us": "United States",
"core.caption.country-au": "Australia",
"core.caption.country-fr": "France",
"core.caption.country-kr": "Korea",
"core.caption.country-my": "Malaysia",
"core.caption.lang-ge": "German",
"core.caption.lang-at": "German",
"core.caption.lang-gb": "English",
"core.caption.lang-us": "English",
"core.caption.lang-au": "English",
"core.caption.lang-fr": "French",
"core.caption.lang-kr": "Korean",
"core.caption.lang-my": "Malay"
}

View File

@@ -0,0 +1,2 @@
{
}

View File

@@ -0,0 +1,2 @@
{
}

View File

@@ -0,0 +1,2 @@
{
}

File diff suppressed because one or more lines are too long

39
ClientApp/staff-db-ui/dist/index.html vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1863
ClientApp/staff-db-ui/dist/ngsw-worker.js vendored Normal file

File diff suppressed because it is too large Load Diff

181
ClientApp/staff-db-ui/dist/ngsw.json vendored Normal file
View File

@@ -0,0 +1,181 @@
{
"configVersion": 1,
"timestamp": 1725263531505,
"index": "/index.html",
"assetGroups": [
{
"name": "app",
"installMode": "prefetch",
"updateMode": "prefetch",
"cacheQueryOptions": {
"ignoreVary": true
},
"urls": [
"/102.a1cebbe1b2264d1a.js",
"/140.c3d21c5ed0a40561.js",
"/147.b04a1078d98ad77b.js",
"/233.c22447bd85c8ff2d.js",
"/239.8ff4ba6fe30b27c5.js",
"/426.76e714807174469a.js",
"/732.7127fbc84084fa8d.js",
"/826.a9ef1bb06db1b9fc.js",
"/973.d62bccb3860d3e9d.js",
"/995.4c2113718131dc04.js",
"/assets/icons/hr-logo_color.ico",
"/common.20ad2b8268292298.js",
"/index.html",
"/main.79a551caa62eec25.js",
"/polyfills.f3a85f3df42fd3cb.js",
"/runtime.3357f0de0086757c.js",
"/styles.3c191a76efd858de.css",
"/webmanifest.json"
],
"patterns": []
},
{
"name": "assets",
"installMode": "lazy",
"updateMode": "prefetch",
"cacheQueryOptions": {
"ignoreVary": true
},
"urls": [
"/assets/flags/at.svg",
"/assets/flags/au.svg",
"/assets/flags/de.svg",
"/assets/flags/fr.svg",
"/assets/flags/gb.svg",
"/assets/flags/ko.svg",
"/assets/flags/my.svg",
"/assets/flags/us.svg",
"/assets/icons/Master_Icon.xcf",
"/assets/icons/develop/dhr-icon-128x128.png",
"/assets/icons/develop/dhr-icon-144x144.png",
"/assets/icons/develop/dhr-icon-152x152.png",
"/assets/icons/develop/dhr-icon-152x152i.png",
"/assets/icons/develop/dhr-icon-16x16.png",
"/assets/icons/develop/dhr-icon-192x192.png",
"/assets/icons/develop/dhr-icon-24x24.png",
"/assets/icons/develop/dhr-icon-384x384.png",
"/assets/icons/develop/dhr-icon-48x48.png",
"/assets/icons/develop/dhr-icon-512x512.png",
"/assets/icons/develop/dhr-icon-72x72.png",
"/assets/icons/develop/dhr-icon-96x96.png",
"/assets/icons/dhr-icon-152x152i.png",
"/assets/icons/hr-logo_bright.ico",
"/assets/icons/hr-logo_color3d.ico",
"/assets/icons/hr-logo_red.ico",
"/assets/icons/hr-logo_white.ico",
"/assets/icons/main_48x48.png",
"/assets/icons/production/dhr-icon-128x128.png",
"/assets/icons/production/dhr-icon-144x144.png",
"/assets/icons/production/dhr-icon-152x152.png",
"/assets/icons/production/dhr-icon-152x152i.png",
"/assets/icons/production/dhr-icon-16x16.png",
"/assets/icons/production/dhr-icon-192x192.png",
"/assets/icons/production/dhr-icon-24x24.png",
"/assets/icons/production/dhr-icon-384x384.png",
"/assets/icons/production/dhr-icon-48x48.png",
"/assets/icons/production/dhr-icon-512x512.png",
"/assets/icons/production/dhr-icon-72x72.png",
"/assets/icons/production/dhr-icon-96x96.png",
"/assets/js/environment.js",
"/assets/json/package.json",
"/assets/translate-core/de.json",
"/assets/translate-core/en.json",
"/assets/translate-core/fr.json",
"/assets/translate/de.json",
"/assets/translate/en.json",
"/assets/translate/fr.json"
],
"patterns": []
}
],
"dataGroups": [],
"hashTable": {
"/102.a1cebbe1b2264d1a.js": "0411f02cdf9e10ba2176ca9f3de78b063ed09480",
"/140.c3d21c5ed0a40561.js": "97be34cbab80027e774995fb9062a4ec315cc028",
"/147.b04a1078d98ad77b.js": "51eec921d96189c155b4506fc603cdd277d01428",
"/233.c22447bd85c8ff2d.js": "39dc0fc05a5dd6a3d34c02f7ee90a11fe8cd7822",
"/239.8ff4ba6fe30b27c5.js": "8b91ad0d0a691a29020ea0b28ea0788554978cb7",
"/426.76e714807174469a.js": "2f7bf9c6708a630c8730cb2d55f0c763519796e4",
"/732.7127fbc84084fa8d.js": "f04be01aabf928a5889103a1a6a15a4fa9249c7e",
"/826.a9ef1bb06db1b9fc.js": "c3e899cc6916fdcb5e9d9d9ba1474892d97bde33",
"/973.d62bccb3860d3e9d.js": "05b58887b6e89767b641b28263e02a4f6ae64cff",
"/995.4c2113718131dc04.js": "64db02f4d432f60f2f8508e21fe04b00c1dc622c",
"/assets/flags/at.svg": "6183e2da9a0264dc227387294332895f1da4b9bf",
"/assets/flags/au.svg": "7993ca14904b1e1bd3af97aece612e77fec9c2f3",
"/assets/flags/de.svg": "4cb4d111b606807483240a8a1d8028e688c0a13e",
"/assets/flags/fr.svg": "9e00364488485559dcc5644f67c969f27be2526a",
"/assets/flags/gb.svg": "4fa0230bc933fb751866617eb102b1266a1738d3",
"/assets/flags/ko.svg": "54117c35dc98c6002ccdc13f9a8ff9abe48fbda1",
"/assets/flags/my.svg": "fb63e9d2a56dc3dcafcf1d51f8909623dc56fd40",
"/assets/flags/us.svg": "b3054f4dbd6e5353901537c770ff24360656a8b5",
"/assets/icons/Master_Icon.xcf": "a60ae86bcb50c97bd20e56b605ea62389cd211de",
"/assets/icons/develop/dhr-icon-128x128.png": "069d2f6bc03e5c6b35a6660d487a36bfd16f9ab5",
"/assets/icons/develop/dhr-icon-144x144.png": "22314bd2f99c99ac504253aac166f889856c4581",
"/assets/icons/develop/dhr-icon-152x152.png": "8fa84de00c3764dc6d5d779dee4728a038f8a773",
"/assets/icons/develop/dhr-icon-152x152i.png": "0650a9829e14413b064c6b1276fd30dca68598cf",
"/assets/icons/develop/dhr-icon-16x16.png": "e4a7e28c987b1d8b17bc90d93d651c5945f074d6",
"/assets/icons/develop/dhr-icon-192x192.png": "ad4584822c8a3ab1ae9020c243b652b1e3d58f2c",
"/assets/icons/develop/dhr-icon-24x24.png": "45b4f3fcc3845f53a45c2802539b1cbc03c881f3",
"/assets/icons/develop/dhr-icon-384x384.png": "533171e1c9ddb3580facc2a46ef2131d435d3cb3",
"/assets/icons/develop/dhr-icon-48x48.png": "5c9b8b185c9e7fa6046441dc45356d0558d2420a",
"/assets/icons/develop/dhr-icon-512x512.png": "fa36a5e3f96dad351c2c604a90a56050f1d10daf",
"/assets/icons/develop/dhr-icon-72x72.png": "ebf56206dd26bdf21b49e78b8aa3477ded3562aa",
"/assets/icons/develop/dhr-icon-96x96.png": "1893cc6ad131b50874ae12e70ac31418f96378f6",
"/assets/icons/dhr-icon-152x152i.png": "6ac691564d70831a487da0590a1675932e478e87",
"/assets/icons/hr-logo_bright.ico": "9c0f87a2b74e6841ccca8879a0ede0ec0ffbc0fa",
"/assets/icons/hr-logo_color.ico": "b5ad8eb4d1a526655a0b8639ede858876a9fd143",
"/assets/icons/hr-logo_color3d.ico": "16bb2f75d0d8a436a9d1c49e5f1a036e6d41b137",
"/assets/icons/hr-logo_red.ico": "66eb4a94f6c72dc540fe29884ad8ca8e52a06637",
"/assets/icons/hr-logo_white.ico": "34cb8164e6996c80372cbfc4032236776133df0f",
"/assets/icons/main_48x48.png": "e6d9580c6d1b910da8e0add9c41d051b9b119d46",
"/assets/icons/production/dhr-icon-128x128.png": "820470f0aa9639f86a639d341100b9b345c9a8b9",
"/assets/icons/production/dhr-icon-144x144.png": "17ede46b4568521a0c9ffa13c2a683e71cc16f72",
"/assets/icons/production/dhr-icon-152x152.png": "753ff9abf2451c3e1955ca20bd04830ce3a1fde0",
"/assets/icons/production/dhr-icon-152x152i.png": "6ac691564d70831a487da0590a1675932e478e87",
"/assets/icons/production/dhr-icon-16x16.png": "d5b8172ded82934ee4e92fe01e6fb6f11914204f",
"/assets/icons/production/dhr-icon-192x192.png": "c7f6481307fa369814f75ecf6fda308bf19a37a1",
"/assets/icons/production/dhr-icon-24x24.png": "8d7866fed1a63e4bbdace1e2dc8aa45f3dfd9a34",
"/assets/icons/production/dhr-icon-384x384.png": "837e17ec77159f7aff7a9aada79cb9026cc291f0",
"/assets/icons/production/dhr-icon-48x48.png": "2f54d152260d7e12d73bc23aaf0a62b500693b92",
"/assets/icons/production/dhr-icon-512x512.png": "69f1f4f514f0c10aaac151e951d4ae52c270283e",
"/assets/icons/production/dhr-icon-72x72.png": "ff384e38bd212d36da44b83d85730f5caf4b4e01",
"/assets/icons/production/dhr-icon-96x96.png": "0860e68d02018ce7dd9081720d88dd89ce998b73",
"/assets/js/environment.js": "f228e51d32b9b1e07b55b0e1c62108877e163e06",
"/assets/json/package.json": "2b4dcfe09606bf67d08364ae60eaec9d2a3ffd87",
"/assets/translate-core/de.json": "f50b0f2b2d49d7df89fec02a438daee23c3d73e8",
"/assets/translate-core/en.json": "c0226be00bbda803dc8e1cddf8b24d6f338ce5d7",
"/assets/translate-core/fr.json": "bf907a896e676f1e86e7475ff53eafaf38df6b3f",
"/assets/translate/de.json": "534e5f914ae99bf0a342a2f7a7e0724bd0d11ef7",
"/assets/translate/en.json": "534e5f914ae99bf0a342a2f7a7e0724bd0d11ef7",
"/assets/translate/fr.json": "534e5f914ae99bf0a342a2f7a7e0724bd0d11ef7",
"/common.20ad2b8268292298.js": "e3c2837ab8689c41ca2b3260e460a9f450bcf0c8",
"/index.html": "6cdb2574e917f149f8b9ac4717fca9fbe354275c",
"/main.79a551caa62eec25.js": "1ca119164988cba206064ec40243c23574c5baf7",
"/polyfills.f3a85f3df42fd3cb.js": "e7154fa31ed5feb8023c3aa2ac33a150776bb404",
"/runtime.3357f0de0086757c.js": "6a3751bd58616232d783a9c9b544abd4cb7ea927",
"/styles.3c191a76efd858de.css": "44d803a2ede68a3d431a99dfafb606057ff98fc0",
"/webmanifest.json": "5866f6cd8c30c59be09d37e12e294b432450cd0f"
},
"navigationUrls": [
{
"positive": true,
"regex": "^\\/.*$"
},
{
"positive": false,
"regex": "^\\/(?:.+\\/)?[^/]*\\.[^/]*$"
},
{
"positive": false,
"regex": "^\\/(?:.+\\/)?[^/]*__[^/]*$"
},
{
"positive": false,
"regex": "^\\/(?:.+\\/)?[^/]*__[^/]*\\/.*$"
}
],
"navigationRequestStrategy": "performance"
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
(()=>{"use strict";var e,v={},g={};function r(e){var f=g[e];if(void 0!==f)return f.exports;var t=g[e]={id:e,loaded:!1,exports:{}};return v[e].call(t.exports,t,t.exports,r),t.loaded=!0,t.exports}r.m=v,e=[],r.O=(f,t,n,i)=>{if(!t){var a=1/0;for(o=0;o<e.length;o++){for(var[t,n,i]=e[o],l=!0,d=0;d<t.length;d++)(!1&i||a>=i)&&Object.keys(r.O).every(p=>r.O[p](t[d]))?t.splice(d--,1):(l=!1,i<a&&(a=i));if(l){e.splice(o--,1);var s=n();void 0!==s&&(f=s)}}return f}i=i||0;for(var o=e.length;o>0&&e[o-1][2]>i;o--)e[o]=e[o-1];e[o]=[t,n,i]},r.n=e=>{var f=e&&e.__esModule?()=>e.default:()=>e;return r.d(f,{a:f}),f},(()=>{var f,e=Object.getPrototypeOf?t=>Object.getPrototypeOf(t):t=>t.__proto__;r.t=function(t,n){if(1&n&&(t=this(t)),8&n||"object"==typeof t&&t&&(4&n&&t.__esModule||16&n&&"function"==typeof t.then))return t;var i=Object.create(null);r.r(i);var o={};f=f||[null,e({}),e([]),e(e)];for(var a=2&n&&t;"object"==typeof a&&!~f.indexOf(a);a=e(a))Object.getOwnPropertyNames(a).forEach(l=>o[l]=()=>t[l]);return o.default=()=>t,r.d(i,o),i}})(),r.d=(e,f)=>{for(var t in f)r.o(f,t)&&!r.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:f[t]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((f,t)=>(r.f[t](e,f),f),[])),r.u=e=>(76===e?"common":e)+"."+{76:"20ad2b8268292298",102:"a1cebbe1b2264d1a",140:"c3d21c5ed0a40561",147:"b04a1078d98ad77b",233:"c22447bd85c8ff2d",239:"8ff4ba6fe30b27c5",426:"76e714807174469a",732:"7127fbc84084fa8d",826:"a9ef1bb06db1b9fc",973:"d62bccb3860d3e9d",995:"4c2113718131dc04"}[e]+".js",r.miniCssF=e=>{},r.o=(e,f)=>Object.prototype.hasOwnProperty.call(e,f),(()=>{var e={},f="staffdb:";r.l=(t,n,i,o)=>{if(e[t])e[t].push(n);else{var a,l;if(void 0!==i)for(var d=document.getElementsByTagName("script"),s=0;s<d.length;s++){var c=d[s];if(c.getAttribute("src")==t||c.getAttribute("data-webpack")==f+i){a=c;break}}a||(l=!0,(a=document.createElement("script")).type="module",a.charset="utf-8",a.timeout=120,r.nc&&a.setAttribute("nonce",r.nc),a.setAttribute("data-webpack",f+i),a.src=r.tu(t)),e[t]=[n];var u=(_,p)=>{a.onerror=a.onload=null,clearTimeout(b);var h=e[t];if(delete e[t],a.parentNode&&a.parentNode.removeChild(a),h&&h.forEach(y=>y(p)),_)return _(p)},b=setTimeout(u.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=u.bind(null,a.onerror),a.onload=u.bind(null,a.onload),l&&document.head.appendChild(a)}}})(),r.r=e=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{var e;r.tt=()=>(void 0===e&&(e={createScriptURL:f=>f},typeof trustedTypes<"u"&&trustedTypes.createPolicy&&(e=trustedTypes.createPolicy("angular#bundler",e))),e)})(),r.tu=e=>r.tt().createScriptURL(e),r.p="",(()=>{var e={121:0};r.f.j=(n,i)=>{var o=r.o(e,n)?e[n]:void 0;if(0!==o)if(o)i.push(o[2]);else if(121!=n){var a=new Promise((c,u)=>o=e[n]=[c,u]);i.push(o[2]=a);var l=r.p+r.u(n),d=new Error;r.l(l,c=>{if(r.o(e,n)&&(0!==(o=e[n])&&(e[n]=void 0),o)){var u=c&&("load"===c.type?"missing":c.type),b=c&&c.target&&c.target.src;d.message="Loading chunk "+n+" failed.\n("+u+": "+b+")",d.name="ChunkLoadError",d.type=u,d.request=b,o[1](d)}},"chunk-"+n,n)}else e[n]=0},r.O.j=n=>0===e[n];var f=(n,i)=>{var d,s,[o,a,l]=i,c=0;if(o.some(b=>0!==e[b])){for(d in a)r.o(a,d)&&(r.m[d]=a[d]);if(l)var u=l(r)}for(n&&n(i);c<o.length;c++)r.o(e,s=o[c])&&e[s]&&e[s][0](),e[s]=0;return r.O(u)},t=self.webpackChunkstaffdb=self.webpackChunkstaffdb||[];t.forEach(f.bind(null,0)),t.push=f.bind(null,t.push.bind(t))})()})();

View File

@@ -0,0 +1,30 @@
/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
// tslint:disable:no-console
self.addEventListener('install', (event) => {
self.skipWaiting();
});
self.addEventListener('activate', (event) => {
event.waitUntil(self.clients.claim());
event.waitUntil(
self.registration.unregister().then(() => {
console.log('NGSW Safety Worker - unregistered old service worker');
}),
);
event.waitUntil(
caches.keys().then((cacheNames) => {
const ngswCacheNames = cacheNames.filter((name) => /^ngsw:/.test(name));
return Promise.all(ngswCacheNames.map((name) => caches.delete(name)));
}),
);
});

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,77 @@
{
"name": "StaffDB",
"short_name": "StaffDB",
"theme_color": "#1976d2",
"background_color": "#fafafa",
"display": "standalone",
"scope": "./",
"start_url": "./",
"icons": [
{
"src": "assets/icons/production/dhr-icon-16x16.png",
"sizes": "16x16",
"type": "image/png",
"purpose": "maskable any"
},
{
"src": "assets/icons/production/dhr-icon-24x24.png",
"sizes": "24x24",
"type": "image/png",
"purpose": "maskable any"
},
{
"src": "assets/icons/production/dhr-icon-48x48.png",
"sizes": "48x48",
"type": "image/png",
"purpose": "maskable any"
},
{
"src": "assets/icons/production/dhr-icon-72x72.png",
"sizes": "72x72",
"type": "image/png",
"purpose": "maskable any"
},
{
"src": "assets/icons/production/dhr-icon-96x96.png",
"sizes": "96x96",
"type": "image/png",
"purpose": "maskable any"
},
{
"src": "assets/icons/production/dhr-icon-128x128.png",
"sizes": "128x128",
"type": "image/png",
"purpose": "maskable any"
},
{
"src": "assets/icons/production/dhr-icon-144x144.png",
"sizes": "144x144",
"type": "image/png",
"purpose": "maskable any"
},
{
"src": "assets/icons/production/dhr-icon-152x152.png",
"sizes": "152x152",
"type": "image/png",
"purpose": "maskable any"
},
{
"src": "assets/icons/production/dhr-icon-192x192.png",
"sizes": "192x192",
"type": "image/png",
"purpose": "maskable any"
},
{
"src": "assets/icons/production/dhr-icon-384x384.png",
"sizes": "384x384",
"type": "image/png",
"purpose": "maskable any"
},
{
"src": "assets/icons/production/dhr-icon-512x512.png",
"sizes": "512x512",
"type": "image/png",
"purpose": "maskable any"
}
]
}

View File

@@ -0,0 +1,30 @@
/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
// tslint:disable:no-console
self.addEventListener('install', (event) => {
self.skipWaiting();
});
self.addEventListener('activate', (event) => {
event.waitUntil(self.clients.claim());
event.waitUntil(
self.registration.unregister().then(() => {
console.log('NGSW Safety Worker - unregistered old service worker');
}),
);
event.waitUntil(
caches.keys().then((cacheNames) => {
const ngswCacheNames = cacheNames.filter((name) => /^ngsw:/.test(name));
return Promise.all(ngswCacheNames.map((name) => caches.delete(name)));
}),
);
});

View File

@@ -1,8 +1,6 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.Linq;
namespace HRD.WebApi
{
@@ -18,17 +16,6 @@ namespace HRD.WebApi
{
private static string _dalConnectionstring;
internal static LogLevel GetMonitoringWebRequestLevel(string method, string path)
{
var entity = NlogMonitoringWebRequest.FirstOrDefault(
x => x.WebRequestMethod.Equals(method, StringComparison.OrdinalIgnoreCase) &&
(x.WebRequestPath == "*" || path.StartsWith(x.WebRequestPath, StringComparison.OrdinalIgnoreCase))
);
if (entity == default)
return LogLevel.None;
return entity.LoggingLevel;
}
private static Dictionary<string, string> _customConfig = new Dictionary<string, string>();
public static int ConnectionstringTimeoutInMin { get; set; } = 5;
@@ -44,32 +31,6 @@ namespace HRD.WebApi
OfficeFileServerUrl = appSettings["AppConfig:OfficeFileServerUrl"];
IsLive = bool.Parse(appSettings["AppConfig:LDAP_WebAppGroup_Is_Live"]);
//LDAP
//LDAPService.LdapGlobals.LDAP_WebAppGroup_Is_Live = IsLive;
//Nlog
NlogConnectionstring = appSettings["Nlog:NlogConnectionstring"];
if (NlogConnectionstring.Equals("%sqlConnection%", StringComparison.OrdinalIgnoreCase))
{
NlogConnectionstring = appSettings["ConnectionStrings:sqlConnection"];
}
NlogDBLogLevel = ToEnumLoggingLevel(appSettings["Nlog:NlogDBLogLevel"]);
NlogFileLogLevel = ToEnumLoggingLevel(appSettings["Nlog:NlogFileLogLevel"]);
NlogLogDirectory = appSettings["Nlog:NlogLogDirectory"];
NlogSentryDSN = appSettings["Nlog:NlogSentryDSN"];
NlogSentryIsEnable = bool.Parse(appSettings["Nlog:NlogSentryIsEnable"]);
for (int i = 1; i < 100; i++)
{
string configString = appSettings[$"Nlog:MonitoringWebRequest{i}"];
if (!string.IsNullOrEmpty(configString))
{
string[] configArr = configString.Split("|").Select(x => x.Trim()).ToArray();
NlogMonitoringWebRequest.Add(new MonitoringWebRequest { WebRequestMethod = configArr[0], WebRequestPath = configArr[1], LoggingLevel = ToEnumLoggingLevel(configArr[2]) });
}
}
//custom
var list = appSettings.GetSection("CustomConfig").GetChildren();
foreach (var item in list)
@@ -118,43 +79,7 @@ namespace HRD.WebApi
public static string ClientVersion { get; set; }
public static bool IsLive { get; set; }
//Logger
public static List<MonitoringWebRequest> NlogMonitoringWebRequest { get; set; } = new List<MonitoringWebRequest>();
public static string NlogLogDirectory { get; set; } = string.Empty;
public static string NlogSentryDSN { get; set; } = string.Empty;
public static bool NlogSentryIsEnable { get; set; } = true;
public static string NlogConnectionstring { get; set; }
public static LogLevel NlogFileLogLevel { get; set; } = LogLevel.Error;
public static LogLevel NlogDBLogLevel { get; set; } = LogLevel.Error;
public static DbContextOptions<DbContext> SQLOptions()
{
if (string.IsNullOrEmpty(Connectionstring))
{
throw new NullReferenceException("Connectnion string is empty!");
}
var optionsBuilder = new DbContextOptionsBuilder<DbContext>();
optionsBuilder
.EnableDetailedErrors()
.UseSqlServer(Connectionstring,
opts =>
{
opts.CommandTimeout((int)TimeSpan.FromMinutes(ConnectionstringTimeoutInMin).TotalSeconds);
opts.EnableRetryOnFailure(
maxRetryCount: 5,
maxRetryDelay: TimeSpan.FromSeconds(30),
errorNumbersToAdd: null
);
}
);
return optionsBuilder.Options;
}
public static string ConnectionString(EN_ConnectionType connectionType = EN_ConnectionType.SQLServer)
{
switch (connectionType)

View File

@@ -4,10 +4,6 @@ namespace HRD.WebApi.DAL
{
public abstract class WebApiBaseContext : DbContext
{
public WebApiBaseContext() : base(WebApiConfig.SQLOptions())
{
}
public WebApiBaseContext(DbContextOptions options)
: base(options)
{

View File

@@ -1,55 +0,0 @@
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;
using System.IO;
using System.Threading.Tasks;
namespace HRD.WebApi.DAL.Middleware
{
/// <summary>
/// Gets the current API resource name from HTTP context
/// </summary>
/// <param name="httpContext">The HTTP context</param>
/// <returns>The current resource name if available, otherwise an empty string</returns>
public class WebApiMiddleware
{
private readonly RequestDelegate _next;
private readonly ILogger<WebApiMiddleware> _logger;
public WebApiMiddleware(RequestDelegate next, ILogger<WebApiMiddleware> logger)
{
_next = next;
_logger = logger;
}
public async Task InvokeAsync(HttpContext httpContext)
{
try
{
var loglevel = WebApiConfig.GetMonitoringWebRequestLevel(httpContext.Request.Method, httpContext.Request.Path.Value);
if (loglevel == LogLevel.Information
|| loglevel == LogLevel.Warning
|| loglevel == LogLevel.Error
)
{
var requestReader = new StreamReader(httpContext.Request.Body);
var requestContent = await requestReader.ReadToEndAsync();
if (string.IsNullOrEmpty(requestContent))
{
requestContent = $"{httpContext.Request.Method} {httpContext.Request.Path.Value}";
}
if (loglevel == LogLevel.Information) { _logger.LogInformation(requestContent); }
if (loglevel == LogLevel.Warning) { _logger.LogWarning(requestContent); }
if (loglevel == LogLevel.Error) { _logger.LogError(requestContent); }
}
}
catch (System.Exception)
{
//throw;
}
await _next(httpContext).ConfigureAwait(false);
}
}
}

View File

@@ -6,11 +6,6 @@ namespace HRD.WebApi.DAL.Middleware
{
public static class WebApiMiddlewareExtensions
{
public static IApplicationBuilder UseDALMiddleware(this IApplicationBuilder builder)
{
return builder.UseMiddleware<WebApiMiddleware>();
}
public static void ConfigureDAL(this IServiceCollection services, WebApiMiddlewareOptions options)
{
if (options == null)
@@ -27,10 +22,6 @@ namespace HRD.WebApi.DAL.Middleware
WebApiConfig.AssemblyName = options.AssemblyName;
WebApiConfig.ClientVersion = options.ClientVersion;
WebApiConfig.Connectionstring = options.Connectionstring;
WebApiConfig.NlogConnectionstring = options.NlogConnectionstring;
WebApiConfig.NlogDBLogLevel = options.NlogDBLogLevel;
WebApiConfig.NlogFileLogLevel = options.NlogFileLogLevel;
WebApiConfig.NlogLogDirectory = options.NlogLogDirectory;
}
}
}

View File

@@ -10,13 +10,5 @@ namespace HRD.WebApi.DAL.Middleware
public string ClientVersion { get; set; }
public string Connectionstring { get; set; } = String.Empty;
//Logger
public string NlogLogDirectory { get; set; } = String.Empty;
public string NlogConnectionstring { get; set; } = String.Empty;
public LogLevel NlogFileLogLevel { get; set; } = LogLevel.Error;
public LogLevel NlogDBLogLevel { get; set; } = LogLevel.Error;
}
}

View File

@@ -144,7 +144,6 @@ try
app.UseDefaultFiles();
app.UseStaticFiles();
app.UseOpenApi();
app.UseDALMiddleware();
app.UseJwtMiddleware();
app.UseSwaggerUi(cfg => cfg.DocExpansion = "none");

View File

@@ -12,13 +12,7 @@ namespace StaffDBServer.SharedExtensions
AssemblyVersion = WebApiConfig.AssemblyVersion,
AssemblyName = WebApiConfig.AssemblyName,
ClientVersion = WebApiConfig.ClientVersion,
Connectionstring = WebApiConfig.Connectionstring,
NlogConnectionstring = WebApiConfig.NlogConnectionstring,
NlogDBLogLevel = WebApiConfig.NlogDBLogLevel,
NlogFileLogLevel = WebApiConfig.NlogFileLogLevel,
NlogLogDirectory = WebApiConfig.NlogLogDirectory
Connectionstring = WebApiConfig.Connectionstring
};
return options;
}

View File

@@ -13,16 +13,15 @@
"ClientVersion": "1.6.8",
"OfficeFileServerUrl": ""
},
// "Nlog": {
// "NlogConnectionstring": "%sqlConnection%",
// "NlogDBLogLevel": "Warn",
// "NlogFileLogLevel": "Warn",
// "NlogLogDirectory": "c:\\temp\\_logs\\",
// "NlogSentryDSN": "",
// "NlogSentryIsEnable": "false"
// },
"NLog": {
//
"NlogConnectionstring": "%sqlConnection%",
"NlogDBLogLevel": "Warn",
"NlogFileLogLevel": "Warn",
"NlogLogDirectory": "c:\\temp\\_logs\\",
"NlogSentryDSN": "",
"NlogSentryIsEnable": "false",
//
"LogLevel": {
"Default": "Info"
},