feat: reworked portfolio
This commit is contained in:
@@ -1,76 +1,85 @@
|
||||
<div class="container">
|
||||
<div class="card profile">
|
||||
<main class="page-shell imprint-page">
|
||||
<section class="panel legal-hero">
|
||||
<a class="back-link" routerLink="">
|
||||
<fa-icon [icon]="faArrowLeft"></fa-icon>
|
||||
<span>Back to portfolio</span>
|
||||
</a>
|
||||
|
||||
<h1>Imprint</h1>
|
||||
<p class="eyebrow">Legal</p>
|
||||
<h1>Imprint & Privacy</h1>
|
||||
<p class="legal-intro">
|
||||
Legal disclosure for this website under Austrian law, in particular Section 5 ECG (E-Commerce Act) and Section 25 Austrian Media Act.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<h2>Information according to §5 ECG</h2>
|
||||
<section class="legal-grid">
|
||||
<article class="panel legal-card">
|
||||
<p class="eyebrow">Provider</p>
|
||||
<p class="legal-provider-name">{{ global.firstname }} {{ global.lastname }}</p>
|
||||
<p class="legal-row">{{ global.address.street }} {{ global.address.houseNumber }}</p>
|
||||
<p class="legal-row">{{ global.address.zip }} {{ global.address.city }}</p>
|
||||
<p class="legal-row">{{ global.address.country }}</p>
|
||||
</article>
|
||||
|
||||
{{ globalFields.firstname }} {{ globalFields.lastname }} <br>
|
||||
{{ street }} {{ houseNumber }} <br>
|
||||
{{ zip }} {{ city }} <br>
|
||||
{{ country }} <br>
|
||||
<article class="panel legal-card">
|
||||
<p class="eyebrow">Contact</p>
|
||||
<p class="legal-row">
|
||||
Phone:
|
||||
<a href="tel:{{ global.hrefContactPhone }}">{{ global.contactPhone }}</a>
|
||||
</p>
|
||||
<p class="legal-row">
|
||||
E-mail:
|
||||
<a [href]="contactSafeMail">{{ global.contactMail }}</a>
|
||||
</p>
|
||||
<p class="legal-row">
|
||||
Abuse:
|
||||
<a [href]="abuseSafeMail">{{ global.abuseMail }}</a>
|
||||
</p>
|
||||
</article>
|
||||
</section>
|
||||
|
||||
<br>
|
||||
|
||||
<h4>Contact:</h4>
|
||||
Phone: <b><u><a href="tel:{{globalFields.hrefContactTel}}">{{ globalFields.contactPhone }}</a></u></b> <br>
|
||||
E-Mail: <b><u><a [href]="contactSafeMail">{{ globalFields.contactMail }}</a></u></b>
|
||||
|
||||
<br>
|
||||
|
||||
<h4>Abuse Contact:</h4>
|
||||
E-Mail: <b><u><a [href]="abuseSafeMail">{{ abuseMail }}</a></u></b>
|
||||
|
||||
<br>
|
||||
|
||||
<h2>Disclaimer:</h2>
|
||||
|
||||
<h3>Liability for links</h3>
|
||||
Our website contains links to external third-party websites over whose content we have no influence. Therefore, we
|
||||
cannot accept any liability for this third-party content. The respective provider or operator of the pages is
|
||||
always responsible for the content of the linked pages. The linked pages were checked for possible legal
|
||||
violations at the time of linking. Illegal content was not recognizable at the time of linking. However, permanent
|
||||
monitoring of the content of the linked pages is not reasonable without concrete evidence of an infringement. If
|
||||
we become aware of any legal infringements, we will remove such links immediately.
|
||||
|
||||
<br>
|
||||
<br>
|
||||
|
||||
<h3>Copyright</h3>
|
||||
The content and works created by the site operators on these pages are subject to German copyright law.
|
||||
Duplication, processing, distribution and any form of commercialization of such material beyond the scope of the
|
||||
copyright law shall require the prior written consent of its respective author or creator. Downloads and copies of
|
||||
this site are only permitted for private, non-commercial use. Insofar as the content on this site was not created
|
||||
by the operator, the copyrights of third parties are respected. In particular, third-party content is identified
|
||||
as such. Should you nevertheless become aware of a copyright infringement, please inform us accordingly. If we
|
||||
become aware of any infringements, we will remove such content immediately.
|
||||
|
||||
<br>
|
||||
<br>
|
||||
|
||||
<h3>Data privacy</h3>
|
||||
The use of our website is generally possible without providing personal data. Insofar as personal data (e.g. name,
|
||||
address or e-mail addresses) is collected on our website, this is always done on a voluntary basis as far as
|
||||
possible. This data will not be passed on to third parties without your express consent.
|
||||
We would like to point out that data transmission over the Internet (e.g. when communicating by e-mail) may be
|
||||
subject to security vulnerabilities. Complete protection of data against access by third parties is not possible.
|
||||
We hereby expressly prohibit the use of contact data published within the scope of the imprint obligation by third
|
||||
parties for sending unsolicited advertising and information material. The operators of the website expressly
|
||||
reserve the right to take legal action in the event of the unsolicited sending of advertising information, such as
|
||||
spam e-mails.
|
||||
|
||||
<div class="max60">
|
||||
<div id="short-desc" class="hover-items" routerLink="">
|
||||
<fa-icon [icon]="faArrowRight"></fa-icon>
|
||||
<a>
|
||||
<u>
|
||||
<h2>Back</h2>
|
||||
</u>
|
||||
</a>
|
||||
<fa-icon [icon]="faArrowLeft"></fa-icon>
|
||||
</div>
|
||||
<section class="panel legal-copy">
|
||||
<div class="legal-block">
|
||||
<h2>Scope of Website</h2>
|
||||
<p>This website is a personal portfolio and a contact point for software engineering and related digital services.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="legal-block">
|
||||
<h2>Media Disclosure (Section 25 Austrian Media Act)</h2>
|
||||
<p>
|
||||
Media owner and publisher: {{ global.firstname }} {{ global.lastname }}. Editorial policy: Information about projects, technical
|
||||
services, and professional activities in software development.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="legal-block">
|
||||
<h2>Liability for Content and External Links</h2>
|
||||
<p>
|
||||
Great care is taken when creating and maintaining this website. However, no liability is accepted for external websites linked from
|
||||
this page. The respective operators are solely responsible for linked content.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="legal-block">
|
||||
<h2>Copyright</h2>
|
||||
<p>
|
||||
All content on this website (including text, images, and layout) is protected by copyright law. Any use beyond statutory exceptions
|
||||
requires prior written permission.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="legal-block">
|
||||
<h2>Privacy (GDPR / DSGVO)</h2>
|
||||
<p>
|
||||
This website can generally be used without submitting personal data. If you contact me by e-mail, your data is processed only to
|
||||
handle your request and is not shared without a valid legal basis.
|
||||
</p>
|
||||
<p>
|
||||
You may exercise your data subject rights (access, rectification, erasure, restriction, objection) via the contact details listed
|
||||
above.
|
||||
</p>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
<app-footer ngSkipHydration></app-footer>
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import type { ComponentFixture } from '@angular/core/testing';
|
||||
import { TestBed } from '@angular/core/testing';
|
||||
|
||||
import { ImprintComponent } from './imprint.component';
|
||||
|
||||
@@ -8,9 +9,8 @@ describe('ImprintComponent', (): void => {
|
||||
|
||||
beforeEach(async (): Promise<void> => {
|
||||
await TestBed.configureTestingModule({
|
||||
imports: [ImprintComponent]
|
||||
})
|
||||
.compileComponents();
|
||||
imports: [ImprintComponent],
|
||||
}).compileComponents();
|
||||
|
||||
fixture = TestBed.createComponent(ImprintComponent);
|
||||
component = fixture.componentInstance;
|
||||
|
||||
@@ -1,41 +1,33 @@
|
||||
import {Component, OnInit} from '@angular/core';
|
||||
import {FooterComponent} from '../footer/footer.component';
|
||||
import {RouterLink} from '@angular/router';
|
||||
import {globalFields} from '../../global.fields';
|
||||
import {DomSanitizer, SafeUrl} from '@angular/platform-browser';
|
||||
import {FaIconComponent, IconDefinition} from '@fortawesome/angular-fontawesome';
|
||||
import {faArrowDown, faArrowLeft, faArrowRight} from '@fortawesome/free-solid-svg-icons';
|
||||
import type { OnInit } from '@angular/core';
|
||||
import { Component, inject } from '@angular/core';
|
||||
import { RouterLink } from '@angular/router';
|
||||
import { DomSanitizer } from '@angular/platform-browser';
|
||||
import type { SafeUrl } from '@angular/platform-browser';
|
||||
import type { IconDefinition } from '@fortawesome/angular-fontawesome';
|
||||
import { FaIconComponent } from '@fortawesome/angular-fontawesome';
|
||||
import { faArrowLeft } from '@fortawesome/free-solid-svg-icons';
|
||||
|
||||
import type { Global } from '../../global.fields';
|
||||
import { global } from '../../global.fields';
|
||||
import { FooterComponent } from '../footer/footer.component';
|
||||
|
||||
@Component({
|
||||
selector: 'app-imprint',
|
||||
imports: [
|
||||
FooterComponent,
|
||||
FaIconComponent,
|
||||
RouterLink
|
||||
],
|
||||
templateUrl: './imprint.component.html'
|
||||
imports: [FooterComponent, FaIconComponent, RouterLink],
|
||||
templateUrl: './imprint.component.html',
|
||||
})
|
||||
export class ImprintComponent implements OnInit {
|
||||
protected readonly globalFields: typeof globalFields = globalFields;
|
||||
private readonly sanitizer = inject(DomSanitizer);
|
||||
|
||||
protected readonly street: string = 'Ulmenstraße';
|
||||
protected readonly houseNumber: number = 9;
|
||||
protected readonly zip: number = 3380;
|
||||
protected readonly city: string = 'Pöchlarn';
|
||||
protected readonly country: string = 'Austria';
|
||||
protected readonly abuseMail: string = 'abuse@lechner-systems.at';
|
||||
protected readonly global: Global = global;
|
||||
|
||||
protected contactSafeMail!: SafeUrl;
|
||||
protected abuseSafeMail!: SafeUrl;
|
||||
|
||||
protected readonly faArrowRight: IconDefinition = faArrowRight;
|
||||
protected readonly faArrowLeft: IconDefinition = faArrowLeft;
|
||||
|
||||
constructor(private _sanitizer: DomSanitizer) {
|
||||
}
|
||||
|
||||
ngOnInit(): void {
|
||||
this.contactSafeMail = this._sanitizer.bypassSecurityTrustUrl(`mailto:${globalFields.contactMail}`);
|
||||
this.abuseSafeMail = this._sanitizer.bypassSecurityTrustUrl(`mailto:${this.abuseMail}`);
|
||||
this.contactSafeMail = this.sanitizer.bypassSecurityTrustUrl(`mailto:${global.contactMail}`);
|
||||
this.abuseSafeMail = this.sanitizer.bypassSecurityTrustUrl(`mailto:${this.global.abuseMail}`);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user