diff --git a/README.md b/README.md
index cc4588f..b3e34a6 100644
--- a/README.md
+++ b/README.md
@@ -57,3 +57,17 @@ Angular CLI does not come with an end-to-end testing framework by default. You c
## Additional Resources
For more information on using the Angular CLI, including detailed command references, visit the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page.
+
+
+## Cheat sheet
+
+### Create new component
+
+```bash
+ng generate c app/immo-manager/billing
+
+CREATE src/app/app/immo-manager/billing/billing.scss (0 bytes)
+CREATE src/app/app/immo-manager/billing/billing.spec.ts (535 bytes)
+CREATE src/app/app/immo-manager/billing/billing.ts (190 bytes)
+CREATE src/app/app/immo-manager/billing/billing.html (22 bytes)
+```
diff --git a/src/app.routes.ts b/src/app.routes.ts
index a742123..fd038f9 100644
--- a/src/app.routes.ts
+++ b/src/app.routes.ts
@@ -19,35 +19,35 @@ export const appRoutes: Routes = [
children: [
{
path: '', component: Dashboard,
- // data: { role: ['admin', 'can-view-dashboard'] }, canActivate: [canActivateAuthRole]
+ // data: { role: ['dev', 'admin', 'can-view-dashboard'] }, canActivate: [canActivateAuthRole]
},
{
path: 'projects', component: Projects,
- data: { role: ['admin', 'can-view-projects'] }, canActivate: [canActivateAuthRole]
+ data: { role: ['dev', 'admin', 'can-view-projects'] }, canActivate: [canActivateAuthRole]
},
{
path: 'projects/:id', component: ProjectDetails,
- data: { role: ['admin', 'can-view-projects'] }, canActivate: [canActivateAuthRole]
+ data: { role: ['dev', 'admin', 'can-view-projects'] }, canActivate: [canActivateAuthRole]
},
{
path: 'contacts', component: Contacts,
- data: { role: ['admin', 'can-view-contacts'] }, canActivate: [canActivateAuthRole]
+ data: { role: ['dev', 'admin', 'can-view-contacts'] }, canActivate: [canActivateAuthRole]
},
// admin pages
{
path: 'properties', component: Properties,
- data: { role: ['admin', 'can-view-properties'] }, canActivate: [canActivateAuthRole]
+ data: { role: ['dev', 'admin', 'can-view-properties'] }, canActivate: [canActivateAuthRole]
},
{
path: 'properties/:id', component: PropertyDetails,
- data: { role: ['admin', 'can-view-properties'] }, canActivate: [canActivateAuthRole]
+ data: { role: ['dev', 'admin', 'can-view-properties'] }, canActivate: [canActivateAuthRole]
},
{
path: 'admin/properties', component: PropertyManager,
- data: { role: ['admin', 'can-manage-properties'] }, canActivate: [canActivateAuthRole]
+ data: { role: ['dev', 'admin', 'can-manage-properties'] }, canActivate: [canActivateAuthRole]
},
{ path: 'uikit', loadChildren: () => import('./app/pages/uikit/uikit.routes') },
diff --git a/src/app/app/immo-manager/billing/billing.html b/src/app/app/immo-manager/billing/billing.html
new file mode 100644
index 0000000..0a4070f
--- /dev/null
+++ b/src/app/app/immo-manager/billing/billing.html
@@ -0,0 +1 @@
+
billing works!
diff --git a/src/app/app/immo-manager/billing/billing.scss b/src/app/app/immo-manager/billing/billing.scss
new file mode 100644
index 0000000..e69de29
diff --git a/src/app/app/immo-manager/billing/billing.spec.ts b/src/app/app/immo-manager/billing/billing.spec.ts
new file mode 100644
index 0000000..6b1b477
--- /dev/null
+++ b/src/app/app/immo-manager/billing/billing.spec.ts
@@ -0,0 +1,23 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { Billing } from './billing';
+
+describe('Billing', () => {
+ let component: Billing;
+ let fixture: ComponentFixture;
+
+ beforeEach(async () => {
+ await TestBed.configureTestingModule({
+ imports: [Billing]
+ })
+ .compileComponents();
+
+ fixture = TestBed.createComponent(Billing);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/src/app/app/immo-manager/billing/billing.ts b/src/app/app/immo-manager/billing/billing.ts
new file mode 100644
index 0000000..c41633d
--- /dev/null
+++ b/src/app/app/immo-manager/billing/billing.ts
@@ -0,0 +1,11 @@
+import { Component } from '@angular/core';
+
+@Component({
+ selector: 'app-billing',
+ imports: [],
+ templateUrl: './billing.html',
+ styleUrl: './billing.scss'
+})
+export class Billing {
+
+}
diff --git a/src/app/layout/component/app.menu.ts b/src/app/layout/component/app.menu.ts
index ed0fff4..9a10131 100644
--- a/src/app/layout/component/app.menu.ts
+++ b/src/app/layout/component/app.menu.ts
@@ -45,9 +45,24 @@ export class AppMenu {
items: [
{ label: 'Dashboard', icon: 'pi pi-fw pi-home', routerLink: ['/'] },
{ label: 'Projekte', icon: 'pi pi-fw pi-list', routerLink: ['/projects'], roles: ['dev', 'admin', 'can-view-projects'] },
+ { label: 'Organisationen', icon: 'pi pi-fw pi-list', routerLink: ['/organizations'], roles: ['dev', 'admin', 'can-view-organizations'] },
{ label: 'Kontakte', icon: 'pi pi-fw pi-id-card', routerLink: ['/contacts'], roles: ['dev', 'admin', 'can-view-contacts'] }
]
},
+ {
+ roles: ['dev', 'real_estate_agent'],
+ label: 'Immo Manager',
+ items: [
+ { label: 'Kontaktverwaltung', icon: 'pi pi-fw pi-list', routerLink: ['/immo-manager/contacts'], roles: ['dev', 'admin', 'can-view-projects'] },
+ { label: 'Objektverwaltung', icon: 'pi pi-fw pi-id-card', routerLink: ['/immo-manager/objects'], roles: ['dev', 'admin', 'can-view-contacts'] },
+ { label: 'Abrechnungen & Auswertung', icon: 'pi pi-fw pi-id-card', routerLink: ['/immo-manager/billing'], roles: ['dev', 'admin', 'can-view-contacts'] },
+ { label: 'Ticketsystem', icon: 'pi pi-fw pi-id-card', routerLink: ['/immo-manager/ticket-system'], roles: ['dev', 'admin', 'can-view-contacts'] },
+ { label: 'Buchhaltung & Rechnungswesen', icon: 'pi pi-fw pi-id-card', routerLink: ['/immo-manager/accounting'], roles: ['dev', 'admin', 'can-view-contacts'] },
+ { label: 'Effizienz-Features', icon: 'pi pi-fw pi-id-card', routerLink: ['/immo-manager/efficiency-features'], roles: ['dev', 'admin', 'can-view-contacts'] },
+ { label: 'Dokumenten-Management-System', icon: 'pi pi-fw pi-id-card', routerLink: ['/immo-manager/dms'], roles: ['dev', 'admin', 'can-view-contacts'] },
+ { label: 'Service-Portal', icon: 'pi pi-fw pi-id-card', routerLink: ['/immo-manager/service-portal'], roles: ['dev', 'admin', 'can-view-contacts'] }
+ ]
+ },
{
roles: ['dev', 'admin'],
label: 'Admin',
diff --git a/src/app/layout/component/app.topbar.ts b/src/app/layout/component/app.topbar.ts
index 204457d..00234af 100644
--- a/src/app/layout/component/app.topbar.ts
+++ b/src/app/layout/component/app.topbar.ts
@@ -47,9 +47,12 @@ import { Tag } from 'primeng/tag';
@if (keycloak.authenticated) {
+ @if(keycloak) {
+
+ }
@for (item of keycloak.realmAccess?.roles; track $index) {
-
+
}
}
@if (!keycloak.authenticated) {
@@ -104,17 +107,13 @@ import { Tag } from 'primeng/tag';
@if (loggedIn) {
Logged in as {{ firstName }} {{ lastName }}
+ class="font-medium text-surface-900 dark:text-surface-0 block mb-2">{{ firstName }} {{ lastName }} <{{ email }}>
}
-
- Team Members
- ...
-
@@ -130,14 +129,18 @@ export class AppTopbar {
public loggedIn: boolean = false;
public firstName?: string = 'unknown';
public lastName?: string = 'unknown';
+ public email?: string = 'unknown';
+
constructor(public layoutService: LayoutService) {
if (this.keycloak.authenticated) {
+ // console.log('KC', this.keycloak);
this.loggedIn = true;
this.keycloak.loadUserProfile().then((userProfile) => {
this.firstName = userProfile.firstName;
this.lastName = userProfile.lastName;
+ this.email = userProfile.email;
});
}
}
diff --git a/src/app/pages/contacts/contacts.html b/src/app/pages/contacts/contacts.html
index c3fdf3d..b90d354 100644
--- a/src/app/pages/contacts/contacts.html
+++ b/src/app/pages/contacts/contacts.html
@@ -1,20 +1,20 @@
-
Contacts
+
Contacts
Verwalten Sie Personen und Organisationen in Ihrem Netzwerk
-
+
download
-
+
person_add
@@ -300,7 +300,7 @@
1
- Contacts total
+ Contacts total
@@ -315,7 +315,7 @@
0
- Persons
+ Persons
@@ -330,7 +330,7 @@
0
- Organisations
+ Organisations
@@ -345,7 +345,7 @@
12
- With notes
+ With notes
diff --git a/src/app/pages/dashboard/components/activities-widget.component.ts b/src/app/pages/dashboard/components/activities-widget.component.ts
index c707c7e..cac4feb 100644
--- a/src/app/pages/dashboard/components/activities-widget.component.ts
+++ b/src/app/pages/dashboard/components/activities-widget.component.ts
@@ -8,14 +8,14 @@ import { MenuModule } from 'primeng/menu';
imports: [ButtonModule, MenuModule],
template: `
-
Letzte Aktivitäten
+
Letzte Aktivitäten
-
HEUTE
+
HEUTE
-
Ereignis "Antrag Bafa iSFP" hinzugefügt
-
Ein neues Ereignis wurde zu Projekt "Heizungsmodernisierung " hinzugefügt
-
01.09.2025
+
Ereignis "Antrag Bafa iSFP" hinzugefügt
+
Ein neues Ereignis wurde zu Projekt "Heizungsmodernisierung " hinzugefügt
+
01.09.2025
- GESTERN
+ GESTERN
- LETZTE WOCHE
+ LETZTE WOCHE
diff --git a/src/app/pages/dashboard/components/current-projects-widget.component.ts b/src/app/pages/dashboard/components/current-projects-widget.component.ts
index 170a10b..cad9f94 100644
--- a/src/app/pages/dashboard/components/current-projects-widget.component.ts
+++ b/src/app/pages/dashboard/components/current-projects-widget.component.ts
@@ -12,7 +12,7 @@ import { ProgressBar } from 'primeng/progressbar';
template: `
-
Aktuelle Projekte
+
Aktuelle Projekte
-
Aktive Projekte
+
Aktive Projekte
12
-
von 73 insgesamt
+
von 73 insgesamt
-
Kontakte
+
Kontakte
28441
@@ -51,14 +51,14 @@ import { CommonModule } from '@angular/common';
-
Projekte abgeschlossen
+
Projekte abgeschlossen
152
-
Erfolgreich beendet
+
Erfolgreich beendet
`
})
diff --git a/src/app/pages/dashboard/dashboard.ts b/src/app/pages/dashboard/dashboard.ts
index 8d24812..7837e7e 100644
--- a/src/app/pages/dashboard/dashboard.ts
+++ b/src/app/pages/dashboard/dashboard.ts
@@ -8,7 +8,7 @@ import { CurrentProjectsWidget } from './components/current-projects-widget.comp
imports: [StatsWidget, CurrentProjectsWidget, ActivitiesWidget],
template: `
-
Dashboard
+
Dashboard
Willkommen zurück! Hier ist ein Überblick über Ihr Portfolio.
diff --git a/src/app/pages/project-details/project-details.html b/src/app/pages/project-details/project-details.html
index 9fd18ff..85a43f5 100644
--- a/src/app/pages/project-details/project-details.html
+++ b/src/app/pages/project-details/project-details.html
@@ -1,7 +1,7 @@
-
Projekt Details
+
Projekt Details
{{ projectDetailsDTO?.name }}
Erstellt: {{ projectDetailsDTO?.createdAt | date: 'dd.MM.yyyy HH:mm' }}
diff --git a/src/app/pages/property-manager/property-manager.html b/src/app/pages/property-manager/property-manager.html
index a6cbc55..1efa29c 100644
--- a/src/app/pages/property-manager/property-manager.html
+++ b/src/app/pages/property-manager/property-manager.html
@@ -1,11 +1,11 @@
-
-
+
+
-
+
@@ -26,7 +26,7 @@
>
-
Verwalte Liegenschaften
+
Verwalte Liegenschaften
@@ -39,39 +39,39 @@
|
-
+ |
Nr.
|
-
+ |
Name
|
-
+ |
Eigentümer
|
-
+ |
Straße
|
-
+ |
Hausnummer
|
-
+ |
Postleitzahl
|
-
+ |
Stadt
|
-
+ |
Bundesland
|
-
+ |
Einheiten
|
@@ -244,8 +244,8 @@
-
-
+
+
diff --git a/src/assets/styles.scss b/src/assets/styles.scss
index a0b7bbf..0109447 100644
--- a/src/assets/styles.scss
+++ b/src/assets/styles.scss
@@ -26,14 +26,13 @@ body {
// Default the application to a light color theme. This can be changed to
// `dark` to enable the dark color theme, or to `light dark` to defer to the
// user's system settings.
- color-scheme: light;
+ color-scheme: dark;
// Set a default background, font and text colors for the application using
// Angular Material's system-level CSS variables. Learn more about these
// variables at https://material.angular.dev/guide/system-variables
- background-color: var(--mat-sys-surface);
- color: var(--mat-sys-on-surface);
- font: var(--mat-sys-body-medium);
+ background-color: var(--surface-ground);
+ color: var(--text-color);
// Reset the user agent margin.
margin: 0;
diff --git a/src/environments/environments.staging.ts b/src/environments/environments.staging.ts
index b5c19f3..1193d41 100644
--- a/src/environments/environments.staging.ts
+++ b/src/environments/environments.staging.ts
@@ -3,7 +3,6 @@ const keycloakBaseUrl = 'https://auth.dev.localhost';
const keycloakRealm = 'skamp';
const keycloakClientId = 'skamp-app';
-
export const environment = {
production: false,
bearerTokenUrlCondition: `^(${apiBaseUrl})(/.*)?$`,
diff --git a/src/environments/environments.ts b/src/environments/environments.ts
index 317d6d9..aa3d3ae 100644
--- a/src/environments/environments.ts
+++ b/src/environments/environments.ts
@@ -1,5 +1,5 @@
-const apiBaseUrl = 'http://localhost:8080';
-const keycloakBaseUrl = 'http://localhost:8280';
+const apiBaseUrl = 'http://localhost:8180';
+const keycloakBaseUrl = 'https://kc.dev.localhost';
const keycloakRealm = 'skamp';
const keycloakClientId = 'skamp-app';