feat: imprint
This commit is contained in:
@@ -1,83 +1,161 @@
|
||||
<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>
|
||||
<section class="hero-section panel legal-hero">
|
||||
<div class="hero-copy">
|
||||
<div class="hero-copy-main">
|
||||
<p class="eyebrow">Legal</p>
|
||||
<h1>Imprint & Privacy</h1>
|
||||
<p class="hero-intro legal-intro">
|
||||
Legal information for this website under Austrian law, including privacy information for websites operated by Julian Lechner
|
||||
(Lechner Systems).
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<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>
|
||||
<div class="hero-actions">
|
||||
<a class="back-link" routerLink="">
|
||||
<fa-icon [icon]="faArrowLeft"></fa-icon>
|
||||
<span>Back to portfolio</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="hero-visual">
|
||||
<div class="portrait-highlight legal-contact-box">
|
||||
<p class="hero-contact-title">Provider</p>
|
||||
<p class="legal-provider-name">{{ global.firstname }} {{ global.lastname }} / Lechner Systems</p>
|
||||
<p>{{ displayStreet }} {{ global.address.houseNumber }}</p>
|
||||
<p>{{ global.address.zip }} {{ displayCity }}</p>
|
||||
<p>{{ global.address.country }}</p>
|
||||
<hr />
|
||||
<p class="hero-contact-title">Direct Contact</p>
|
||||
<p>
|
||||
Phone:
|
||||
<a class="inline-link" href="tel:{{ global.hrefContactPhone }}">{{ global.contactPhone }}</a>
|
||||
</p>
|
||||
<p>
|
||||
Contact:
|
||||
<a class="inline-link" [href]="contactSafeMail">{{ global.contactMail }}</a>
|
||||
</p>
|
||||
<p>
|
||||
Abuse:
|
||||
<a class="inline-link" [href]="abuseSafeMail">{{ global.abuseMail }}</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<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>
|
||||
<section class="story-section panel legal-section">
|
||||
<div class="section-heading">
|
||||
<p class="eyebrow">Scope</p>
|
||||
<h2>Scope Of These Notices</h2>
|
||||
</div>
|
||||
|
||||
<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>
|
||||
<div class="story-grid">
|
||||
<div class="story-copy">
|
||||
<p>
|
||||
These notices apply to this website and, unless a more specific notice is published there, to other websites operated by Julian
|
||||
Lechner under the name Lechner Systems.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="story-detail">
|
||||
<p>
|
||||
This website provides information about projects, technical services, contact options, and professional work in software
|
||||
engineering, IT, and related digital services.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<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>
|
||||
<section class="story-section panel legal-section">
|
||||
<div class="section-heading compact">
|
||||
<p class="eyebrow">Privacy</p>
|
||||
<h2>Privacy And Data Processing</h2>
|
||||
</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 class="story-grid">
|
||||
<div class="story-copy">
|
||||
<p>
|
||||
The controller for data processing within the meaning of the GDPR is {{ global.firstname }} {{ global.lastname }}, reachable at
|
||||
<a class="inline-link" [href]="contactSafeMail">{{ global.contactMail }}</a> and by phone at
|
||||
<a class="inline-link" href="tel:{{ global.hrefContactPhone }}">{{ global.contactPhone }}</a>.
|
||||
</p>
|
||||
<p>
|
||||
As currently implemented in this web project, this website does not use its own tracking, analytics cookies, marketing cookies, or
|
||||
long-term personal usage profiling.
|
||||
</p>
|
||||
<p>
|
||||
For informational website access, technically necessary connection and server data may be processed for operation, IT security,
|
||||
abuse prevention, and troubleshooting.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="story-detail">
|
||||
<p>
|
||||
If you contact me by email or phone, the data you provide is processed to handle your request and maintain communication.
|
||||
Applicable legal bases may include Article 6(1)(b), 6(1)(c), and 6(1)(f) GDPR, depending on context.
|
||||
</p>
|
||||
<p>
|
||||
Personal data is disclosed only where legally required, needed for the establishment, exercise, or defence of legal claims, or
|
||||
explicitly initiated by you.
|
||||
</p>
|
||||
<p>
|
||||
Data is stored only as long as required for communication, request handling, and legal retention duties.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="story-section panel legal-section">
|
||||
<div class="section-heading compact">
|
||||
<p class="eyebrow">Rights</p>
|
||||
<h2>Data Subject Rights And Complaints</h2>
|
||||
</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 class="story-grid">
|
||||
<div class="story-copy">
|
||||
<p>
|
||||
Subject to statutory requirements, data subjects have the right of access, rectification, erasure, restriction of processing, data
|
||||
portability, and objection.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="story-detail">
|
||||
<p>
|
||||
Complaints can be submitted to the Austrian Data Protection Authority: Barichgasse 40-42, 1030 Vienna, email
|
||||
<a class="inline-link" href="mailto:dsb@dsb.gv.at">dsb@dsb.gv.at</a>, website
|
||||
<a class="inline-link" href="https://dsb.gv.at/">dsb.gv.at</a>.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="story-section panel legal-section">
|
||||
<div class="section-heading compact">
|
||||
<p class="eyebrow">Copyright</p>
|
||||
<h2>Copyright, External Links, And Applicable Law</h2>
|
||||
</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="story-grid">
|
||||
<div class="story-copy">
|
||||
<p>
|
||||
All content on this website, including texts, images, graphics, photographs, layouts, source code, and other works, is protected
|
||||
by copyright unless stated otherwise. All rights remain reserved.
|
||||
</p>
|
||||
<p>
|
||||
Any use beyond statutory exceptions requires prior written consent of the respective rights holder.
|
||||
</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 class="story-detail">
|
||||
<p>
|
||||
This website may contain links to third-party websites. Their operators are solely responsible for those contents, and no liability
|
||||
is accepted for external links to the extent permitted by law.
|
||||
</p>
|
||||
<p>
|
||||
Austrian law applies exclusively, excluding conflict-of-law rules that would refer to another legal system, unless mandatory
|
||||
consumer protection provisions require otherwise.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
@@ -20,6 +20,8 @@ export class ImprintComponent implements OnInit {
|
||||
private readonly sanitizer = inject(DomSanitizer);
|
||||
|
||||
protected readonly global: Global = global;
|
||||
protected readonly displayStreet: string = this.normalizeText(global.address.street);
|
||||
protected readonly displayCity: string = this.normalizeText(global.address.city);
|
||||
|
||||
protected contactSafeMail!: SafeUrl;
|
||||
protected abuseSafeMail!: SafeUrl;
|
||||
@@ -30,4 +32,14 @@ export class ImprintComponent implements OnInit {
|
||||
this.contactSafeMail = this.sanitizer.bypassSecurityTrustUrl(`mailto:${global.contactMail}`);
|
||||
this.abuseSafeMail = this.sanitizer.bypassSecurityTrustUrl(`mailto:${this.global.abuseMail}`);
|
||||
}
|
||||
|
||||
private normalizeText(value: string): string {
|
||||
return value
|
||||
.replaceAll('ß', 'ß')
|
||||
.replaceAll('ö', 'ö')
|
||||
.replaceAll('Ä', 'Ä')
|
||||
.replaceAll('ä', 'ä')
|
||||
.replaceAll('Ü', 'Ü')
|
||||
.replaceAll('ü', 'ü');
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user