mirror of
https://gitlab.dit.htwk-leipzig.de/htwk-software/htwkalender.git
synced 2025-08-04 02:39:14 +02:00
feat:#60 added localization for more pages
This commit is contained in:
@@ -1,146 +0,0 @@
|
||||
<script lang="ts" setup>
|
||||
import { defineAsyncComponent, ref, Ref } from "vue";
|
||||
import { Module } from "../model/module.ts";
|
||||
import { fetchAllModules } from "../api/fetchCourse.ts";
|
||||
import moduleStore from "../store/moduleStore.ts";
|
||||
import { MultiSelectAllChangeEvent } from "primevue/multiselect";
|
||||
|
||||
import { useDialog } from "primevue/usedialog";
|
||||
const dialog = useDialog();
|
||||
|
||||
import router from "../router";
|
||||
import { fetchModule } from "../api/fetchModule.ts";
|
||||
|
||||
const fetchedModules = async () => {
|
||||
return await fetchAllModules();
|
||||
};
|
||||
|
||||
const modules: Ref<Module[]> = ref([]);
|
||||
|
||||
const selectedModules: Ref<Module[]> = ref([] as Module[]);
|
||||
|
||||
fetchedModules().then(
|
||||
(data) =>
|
||||
(modules.value = data.map((module: Module) => {
|
||||
return module;
|
||||
})),
|
||||
);
|
||||
|
||||
async function nextStep() {
|
||||
selectedModules.value.forEach((module: Module) => {
|
||||
moduleStore().addModule(module);
|
||||
});
|
||||
|
||||
await router.push("/rename-modules");
|
||||
}
|
||||
|
||||
const ModuleInformation = defineAsyncComponent(
|
||||
() => import("./ModuleInformation.vue"),
|
||||
);
|
||||
|
||||
async function showInfo(module: Module) {
|
||||
await fetchModule(module).then((data) => {
|
||||
module = data;
|
||||
});
|
||||
dialog.open(ModuleInformation, {
|
||||
props: {
|
||||
style: {
|
||||
width: "50vw",
|
||||
},
|
||||
breakpoints: {
|
||||
"960px": "75vw",
|
||||
"640px": "90vw",
|
||||
},
|
||||
modal: true,
|
||||
},
|
||||
data: {
|
||||
module: module,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
const display = (module: Module) => module.name + " (" + module.course + ")";
|
||||
|
||||
const selectAll = ref(false);
|
||||
|
||||
const onSelectAllChange = (event: MultiSelectAllChangeEvent) => {
|
||||
selectedModules.value = event.checked
|
||||
? modules.value.map((module: Module) => module)
|
||||
: [];
|
||||
selectAll.value = event.checked;
|
||||
};
|
||||
|
||||
function selectChange() {
|
||||
selectAll.value = selectedModules.value.length === modules.value.length;
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="flex flex-column">
|
||||
<div class="flex align-items-center justify-content-center h-4rem m-2">
|
||||
<h3>
|
||||
Select additional Modules that are not listed in the regular semester
|
||||
for your Course
|
||||
</h3>
|
||||
</div>
|
||||
<div class="card flex align-items-center justify-content-center m-2">
|
||||
<MultiSelect
|
||||
v-model="selectedModules"
|
||||
:max-selected-labels="1"
|
||||
:option-label="display"
|
||||
:options="modules"
|
||||
:select-all="selectAll"
|
||||
:virtual-scroller-options="{ itemSize: 70 }"
|
||||
class="custom-multiselect"
|
||||
filter
|
||||
placeholder="Select additional modules"
|
||||
@change="selectChange()"
|
||||
@selectall-change="onSelectAllChange($event)"
|
||||
:autoFilterFocus="true"
|
||||
>
|
||||
<template #option="slotProps">
|
||||
<div class="flex justify-content-between w-full">
|
||||
<div class="flex align-items-center justify-content-center">
|
||||
<p class="text-1xl white-space-normal p-mb-0">
|
||||
{{ display(slotProps.option) }}
|
||||
</p>
|
||||
</div>
|
||||
<div class="flex align-items-center justify-content-center ml-2">
|
||||
<Button
|
||||
icon="pi pi-info"
|
||||
severity="secondary"
|
||||
rounded
|
||||
outlined
|
||||
aria-label="Information"
|
||||
@click.stop="showInfo(slotProps.option)"
|
||||
></Button>
|
||||
<DynamicDialog />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<template #footer>
|
||||
<div class="py-2 px-3">
|
||||
<b>{{ selectedModules ? selectedModules.length : 0 }}</b>
|
||||
item{{
|
||||
(selectedModules ? selectedModules.length : 0) > 1 ? "s" : ""
|
||||
}}
|
||||
selected.
|
||||
</div>
|
||||
</template>
|
||||
</MultiSelect>
|
||||
</div>
|
||||
<div class="flex align-items-center justify-content-center h-4rem m-2">
|
||||
<Button @click="nextStep()">Next Step</Button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
:deep(.custom-multiselect) {
|
||||
width: 50rem;
|
||||
}
|
||||
|
||||
:deep(.custom-multiselect li) {
|
||||
height: unset;
|
||||
}
|
||||
</style>
|
@@ -7,8 +7,7 @@ import {
|
||||
import ModuleSelection from "./ModuleSelection.vue";
|
||||
import { Module } from "../model/module.ts";
|
||||
import { useI18n } from "vue-i18n";
|
||||
const { t } = useI18n({ useScope: 'global' })
|
||||
|
||||
const { t } = useI18n({ useScope: "global" });
|
||||
|
||||
const courses = async () => {
|
||||
return await fetchCourse();
|
||||
@@ -16,10 +15,12 @@ const courses = async () => {
|
||||
|
||||
const selectedCourse: Ref<{ name: string }> = ref({ name: "" });
|
||||
const countries: Ref<{ name: string }[]> = ref([]);
|
||||
const semesters: ComputedRef<{ name: string; value: string }[]> = computed(() =>[
|
||||
{ name: t('courseSelection.winterSemester'), value: "ws" },
|
||||
{ name: t('courseSelection.summerSemester'), value: "ss" },
|
||||
]);
|
||||
const semesters: ComputedRef<{ name: string; value: string }[]> = computed(
|
||||
() => [
|
||||
{ name: t("courseSelection.winterSemester"), value: "ws" },
|
||||
{ name: t("courseSelection.summerSemester"), value: "ss" },
|
||||
],
|
||||
);
|
||||
|
||||
const selectedSemester: Ref<{ name: string; value: string }> = ref(
|
||||
semesters.value[0],
|
||||
@@ -46,7 +47,7 @@ async function getModules() {
|
||||
<div class="flex flex-column">
|
||||
<div class="flex align-items-center justify-content-center h-4rem m-2">
|
||||
<h3 class="text-4xl">
|
||||
Welcome to HTWKalender
|
||||
{{$t("courseSelection.headline")}}
|
||||
<i
|
||||
class="pi pi-calendar vertical-align-baseline"
|
||||
style="font-size: 2rem"
|
||||
@@ -56,7 +57,7 @@ async function getModules() {
|
||||
<div
|
||||
class="flex align-items-center justify-content-center h-4rem border-round m-2"
|
||||
>
|
||||
<h5 class="text-2xl">{{ $t('courseSelection.selectCourse') }}</h5>
|
||||
<h5 class="text-2xl">{{ $t("courseSelection.subTitle") }}</h5>
|
||||
</div>
|
||||
<div
|
||||
class="flex align-items-center justify-content-center border-round m-2"
|
||||
@@ -67,7 +68,8 @@ async function getModules() {
|
||||
class="w-full md:w-25rem mx-2"
|
||||
filter
|
||||
option-label="name"
|
||||
placeholder="Select a Course"
|
||||
:placeholder="$t('courseSelection.courseDropDown')"
|
||||
:empty-message="$t('courseSelection.noCoursesAvailable')"
|
||||
@change="getModules()"
|
||||
:autoFilterFocus="true"
|
||||
></Dropdown>
|
||||
@@ -76,7 +78,7 @@ async function getModules() {
|
||||
:options="semesters"
|
||||
class="w-full md:w-25rem mx-2"
|
||||
option-label="name"
|
||||
placeholder="Select a Semester"
|
||||
:placeholder="$t('courseSelection.semesterDropDown')"
|
||||
@change="getModules()"
|
||||
></Dropdown>
|
||||
</div>
|
||||
@@ -91,4 +93,4 @@ async function getModules() {
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</template>
|
@@ -1,85 +0,0 @@
|
||||
<script lang="ts" setup></script>
|
||||
|
||||
<template>
|
||||
<div class="flex align-items-center justify-content-center flex-column">
|
||||
<div class="flex align-items-center justify-content-center h-4rem mt-2">
|
||||
<h3 class="text-4xl">Imprint</h3>
|
||||
</div>
|
||||
<div class="flex flex-column col-7">
|
||||
<p>nach dem Telemediengesetz (TMG) der Bundesrepublik Deutschland.</p>
|
||||
|
||||
<h2>Kontakt</h2>
|
||||
<p>
|
||||
Per Email: <a href="mailto:support@ekresse.de">support@ekresse.de</a>
|
||||
</p>
|
||||
|
||||
<h2>Adresse</h2>
|
||||
<p>
|
||||
Angaben gemäß § 5 TMG und verantwortlich für den Inhalt nach § 55 Abs. 2
|
||||
RStV:
|
||||
</p>
|
||||
<p>
|
||||
Elmar Kresse<br />
|
||||
Philipp-Rosenthal-Straße 33<br />
|
||||
04103 Leipzig
|
||||
</p>
|
||||
|
||||
<h2>Haftungsausschluss</h2>
|
||||
|
||||
<h3>Haftung für Inhalte</h3>
|
||||
<p>
|
||||
Ich bemühe mich die Inhalte der Seite aktuell zu halten. Trotz
|
||||
sorgfältiger Bearbeitung bleibt eine Haftung ausgeschlossen.
|
||||
</p>
|
||||
<p>
|
||||
Als Diensteanbieter bin ich gemäß § 7 Abs.1 TMG für eigene Inhalte auf
|
||||
diesen Seiten nach den allgemeinen Gesetzen verantwortlich.
|
||||
</p>
|
||||
<p>
|
||||
Nach §§ 8 bis 10 TMG bin ich als Diensteanbieter jedoch nicht
|
||||
verpflichtet, übermittelte oder gespeicherte fremde Informationen zu
|
||||
überwachen. Bei bekannt werden von Rechtsverletzungen, werde ich diese
|
||||
Inhalte umgehend entfernen. Eine diesbezügliche Haftung übernehme ich
|
||||
erst ab dem Zeitpunkt der Kenntnis einer möglichen Rechtsverletzung.
|
||||
</p>
|
||||
|
||||
<h3>Haftung für Links</h3>
|
||||
<p>
|
||||
Unser Angebot enthält Links zu externen Webseiten Dritter, auf deren
|
||||
Inhalte wir keinen Einfluss haben. Für die Inhalte der verlinkten Seiten
|
||||
ist stets der jeweilige Anbieter oder Betreiber der Seiten
|
||||
verantwortlich. Für die Inhalte und die Richtigkeit der Informationen
|
||||
verlinkter Websites fremder Informationsanbieter wird keine Gewähr
|
||||
übernommen.
|
||||
</p>
|
||||
<p>
|
||||
Die verlinkten Seiten wurden zum Zeitpunkt der Verlinkung auf mögliche
|
||||
Rechtsverstöße <strong>ohne Beanstandung</strong> überprüft. Bei bekannt
|
||||
werden von Rechtsverletzungen werden wir derartige Links umgehend
|
||||
entfernen.
|
||||
</p>
|
||||
|
||||
<h2>Urheberrecht</h2>
|
||||
<p>
|
||||
Die durch die Seitenbetreiber erstellten Inhalte und Werke auf diesen
|
||||
Seiten unterliegen dem deutschen Urheberrecht. Die Vervielfältigung,
|
||||
Bearbeitung, Verbreitung und jede Art der Verwertung außerhalb der
|
||||
Grenzen des Urheberrechtes bedürfen der schriftlichen Zustimmung des
|
||||
jeweiligen Autors bzw. Erstellers.
|
||||
</p>
|
||||
|
||||
<h2>Datenschutz</h2>
|
||||
<p>siehe <a href="/privacy-policy">Datenschutzerklärung</a></p>
|
||||
|
||||
<h2>Salvatorische Klausel</h2>
|
||||
<p>
|
||||
Sollte eine Bestimmung des Vertrages unwirksam sein, so bleibt die
|
||||
Wirksamkeit der übrigen unberührt. Die unwirksame Bestimmung ist durch
|
||||
eine Bestimmung zu ersetzen, die dem gewollten Zweck in rechtlich
|
||||
zulässiger Weise am nächsten kommt. Das gleiche gilt für Vertragslücken.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped></style>
|
@@ -8,40 +8,52 @@ const items = computed(() => [
|
||||
{
|
||||
label: t("createCalendar"),
|
||||
icon: "pi pi-fw pi-plus",
|
||||
to: "/",
|
||||
route: "/",
|
||||
},
|
||||
{
|
||||
label: t("editCalendar"),
|
||||
icon: "pi pi-fw pi-pencil",
|
||||
to: "/edit",
|
||||
route: "/edit",
|
||||
},
|
||||
{
|
||||
label: t("roomFinder"),
|
||||
icon: "pi pi-fw pi-calendar",
|
||||
to: `rooms`,
|
||||
route: `rooms`,
|
||||
},
|
||||
{
|
||||
label: t("faq"),
|
||||
icon: "pi pi-fw pi-book",
|
||||
to: `faq`,
|
||||
route: `faq`,
|
||||
},
|
||||
{
|
||||
label: t("imprint"),
|
||||
icon: "pi pi-fw pi-id-card",
|
||||
to: `imprint`,
|
||||
route: `imprint`,
|
||||
},
|
||||
{
|
||||
label: t("privacy"),
|
||||
icon: "pi pi-fw pi-exclamation-triangle",
|
||||
to: `privacy-policy`,
|
||||
route: `privacy-policy`,
|
||||
},
|
||||
]);
|
||||
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<Menubar :model="items" class="menubar justify-content-center">
|
||||
<template #start>
|
||||
<Menubar :model="items" class="menubar justify-content-between">
|
||||
<template #start class="mr-2">
|
||||
<img
|
||||
width="35" height="40"
|
||||
src="../../public/htwk.svg"
|
||||
alt="Logo"
|
||||
class="h-10 w-10 mr-6"
|
||||
style="margin-left: 1rem"
|
||||
/>
|
||||
</template>
|
||||
<template #item="{ item }">
|
||||
<router-link v-slot="{ navigate }" :to="item.route" custom>
|
||||
<Button :label='String(item.label)' :icon="item.icon" severity="secondary" @click="navigate" text />
|
||||
</router-link>
|
||||
</template>
|
||||
<template #end>
|
||||
<LocaleSwitcher></LocaleSwitcher>
|
||||
|
@@ -12,13 +12,13 @@ const module = dialogRef.value.data.module as Module;
|
||||
<h2>{{ module.name }}</h2>
|
||||
<table>
|
||||
<tr>
|
||||
<td>Course: {{ module.course }}</td>
|
||||
<td>{{$t('moduleInformation.course')}}: {{ module.course }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Person: {{ module.prof }}</td>
|
||||
<td>{{$t('moduleInformation.person')}}: {{ module.prof }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Semester: {{ module.semester }}</td>
|
||||
<td>{{$t('moduleInformation.semester')}}: {{ module.semester }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
|
@@ -64,7 +64,7 @@ function nextStep() {
|
||||
:disabled="selectedModules.length < 1"
|
||||
class="col-4 justify-content-center"
|
||||
@click="nextStep()"
|
||||
>Next Step
|
||||
>{{ $t("moduleSelection.nextStep") }}
|
||||
</Button>
|
||||
</div>
|
||||
<div class="flex align-items-center justify-content-center">
|
||||
@@ -72,16 +72,16 @@ function nextStep() {
|
||||
<template #header>
|
||||
<div class="flex justify-content-between flex-wrap">
|
||||
<div class="flex align-items-center justify-content-center">
|
||||
<h3>Modules - {{ selectedModules.length }}</h3>
|
||||
<h3>{{$t('moduleSelection.modules')}} - {{ selectedModules.length }}</h3>
|
||||
</div>
|
||||
<div class="flex align-items-center justify-content-center">
|
||||
<ToggleButton
|
||||
v-model="allSelected"
|
||||
class="w-12rem"
|
||||
off-icon="pi pi-times"
|
||||
off-label="Unselect All"
|
||||
:off-label="$t('moduleSelection.deselectAll')"
|
||||
on-icon="pi pi-check"
|
||||
on-label="Select All"
|
||||
:on-label="$t('moduleSelection.selectAll')"
|
||||
@click="selectAllModules(!allSelected)"
|
||||
/>
|
||||
</div>
|
||||
@@ -89,7 +89,7 @@ function nextStep() {
|
||||
</template>
|
||||
<template #empty>
|
||||
<p class="p-4 text-2xl font-bold text-900 empty-message">
|
||||
No Modules found for this course
|
||||
{{$t("moduleSelection.noModulesAvailable")}}
|
||||
</p>
|
||||
</template>
|
||||
<template #list="slotProps">
|
||||
@@ -112,9 +112,9 @@ function nextStep() {
|
||||
v-model="modulesWithSelection[slotProps.index].selected"
|
||||
class="w-9rem"
|
||||
off-icon="pi pi-times"
|
||||
off-label="Unselected"
|
||||
:off-label="$t('moduleSelection.unselected')"
|
||||
on-icon="pi pi-check"
|
||||
on-label="Selected"
|
||||
:on-label="$t('moduleSelection.selected')"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
@@ -132,4 +132,4 @@ function nextStep() {
|
||||
width: 50rem;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</style>
|
@@ -1,646 +0,0 @@
|
||||
<script lang="ts" setup></script>
|
||||
|
||||
<template>
|
||||
<div class="flex align-items-center justify-content-center flex-column">
|
||||
<div class="flex align-items-center justify-content-center h-4rem mt-2">
|
||||
<h3 class="text-4xl">Privacy policy</h3>
|
||||
</div>
|
||||
<div class="flex flex-column col-7">
|
||||
<h1>Datenschutzerklärung</h1>
|
||||
<p>Stand: 19. September 2023</p>
|
||||
<p>
|
||||
Mit der folgenden Datenschutzerklärung möchten wir Sie darüber
|
||||
aufklären, welche Arten Ihrer personenbezogenen Daten (nachfolgend auch
|
||||
kurz als "Daten“ bezeichnet) wir zu welchen Zwecken und in welchem
|
||||
Umfang im Rahmen der Bereitstellung unserer Applikation verarbeiten. Die
|
||||
verwendeten Begriffe sind nicht geschlechtsspezifisch.
|
||||
</p>
|
||||
|
||||
<h2>Inhaltsübersicht</h2>
|
||||
<ul class="index">
|
||||
<li><a class="index-link" href="#m3">Verantwortlicher</a></li>
|
||||
<li>
|
||||
<a class="index-link" href="#mOverview"
|
||||
>Übersicht der Verarbeitungen</a
|
||||
>
|
||||
</li>
|
||||
<li>
|
||||
<a class="index-link" href="#m2427">Maßgebliche Rechtsgrundlagen</a>
|
||||
</li>
|
||||
<li><a class="index-link" href="#m27">Sicherheitsmaßnahmen</a></li>
|
||||
<li>
|
||||
<a class="index-link" href="#m25"
|
||||
>Übermittlung von personenbezogenen Daten</a
|
||||
>
|
||||
</li>
|
||||
<li>
|
||||
<a class="index-link" href="#m24">Internationale Datentransfers</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="index-link" href="#m10">Rechte der betroffenen Personen</a>
|
||||
</li>
|
||||
<li><a class="index-link" href="#m134">Einsatz von Cookies</a></li>
|
||||
<li>
|
||||
<a class="index-link" href="#m225"
|
||||
>Bereitstellung des Onlineangebotes und Webhosting</a
|
||||
>
|
||||
</li>
|
||||
<li>
|
||||
<a class="index-link" href="#m182">Kontakt- und Anfragenverwaltung</a>
|
||||
</li>
|
||||
</ul>
|
||||
<h2 id="m3">Verantwortlicher</h2>
|
||||
<p>
|
||||
Elmar Kresse<br />Philipp-Rosenthal-Straße 33<br />04103, Leipzig,
|
||||
Deutschland
|
||||
</p>
|
||||
E-Mail-Adresse:
|
||||
<p><a href="mailto:support@ekresse.de">support@ekresse.de</a></p>
|
||||
|
||||
<h2 id="mOverview">Übersicht der Verarbeitungen</h2>
|
||||
<p>
|
||||
Die nachfolgende Übersicht fasst die Arten der verarbeiteten Daten und
|
||||
die Zwecke ihrer Verarbeitung zusammen und verweist auf die betroffenen
|
||||
Personen.
|
||||
</p>
|
||||
<h3>Arten der verarbeiteten Daten</h3>
|
||||
<ul>
|
||||
<li>Kontaktdaten.</li>
|
||||
<li>Inhaltsdaten.</li>
|
||||
<li>Nutzungsdaten.</li>
|
||||
<li>Meta-, Kommunikations- und Verfahrensdaten.</li>
|
||||
</ul>
|
||||
<h3>Kategorien betroffener Personen</h3>
|
||||
<ul>
|
||||
<li>Kommunikationspartner.</li>
|
||||
<li>Nutzer.</li>
|
||||
</ul>
|
||||
<h3>Zwecke der Verarbeitung</h3>
|
||||
<ul>
|
||||
<li>Kontaktanfragen und Kommunikation.</li>
|
||||
<li>Sicherheitsmaßnahmen.</li>
|
||||
<li>Verwaltung und Beantwortung von Anfragen.</li>
|
||||
<li>Feedback.</li>
|
||||
<li>
|
||||
Bereitstellung unseres Onlineangebotes und Nutzerfreundlichkeit.
|
||||
</li>
|
||||
<li>Informationstechnische Infrastruktur.</li>
|
||||
</ul>
|
||||
<h2 id="m2427">Maßgebliche Rechtsgrundlagen</h2>
|
||||
<p>
|
||||
<strong>Maßgebliche Rechtsgrundlagen nach der DSGVO: </strong>Im
|
||||
Folgenden erhalten Sie eine Übersicht der Rechtsgrundlagen der DSGVO,
|
||||
auf deren Basis wir personenbezogene Daten verarbeiten. Bitte nehmen Sie
|
||||
zur Kenntnis, dass neben den Regelungen der DSGVO nationale
|
||||
Datenschutzvorgaben in Ihrem bzw. unserem Wohn- oder Sitzland gelten
|
||||
können. Sollten ferner im Einzelfall speziellere Rechtsgrundlagen
|
||||
maßgeblich sein, teilen wir Ihnen diese in der Datenschutzerklärung mit.
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<strong>Einwilligung (Art. 6 Abs. 1 S. 1 lit. a) DSGVO)</strong> - Die
|
||||
betroffene Person hat ihre Einwilligung in die Verarbeitung der sie
|
||||
betreffenden personenbezogenen Daten für einen spezifischen Zweck oder
|
||||
mehrere bestimmte Zwecke gegeben.
|
||||
</li>
|
||||
<li>
|
||||
<strong
|
||||
>Berechtigte Interessen (Art. 6 Abs. 1 S. 1 lit. f) DSGVO)</strong
|
||||
>
|
||||
- Die Verarbeitung ist zur Wahrung der berechtigten Interessen des
|
||||
Verantwortlichen oder eines Dritten erforderlich, sofern nicht die
|
||||
Interessen oder Grundrechte und Grundfreiheiten der betroffenen
|
||||
Person, die den Schutz personenbezogener Daten erfordern, überwiegen.
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
<strong>Nationale Datenschutzregelungen in Deutschland: </strong
|
||||
>Zusätzlich zu den Datenschutzregelungen der DSGVO gelten nationale
|
||||
Regelungen zum Datenschutz in Deutschland. Hierzu gehört insbesondere
|
||||
das Gesetz zum Schutz vor Missbrauch personenbezogener Daten bei der
|
||||
Datenverarbeitung (Bundesdatenschutzgesetz – BDSG). Das BDSG enthält
|
||||
insbesondere Spezialregelungen zum Recht auf Auskunft, zum Recht auf
|
||||
Löschung, zum Widerspruchsrecht, zur Verarbeitung besonderer Kategorien
|
||||
personenbezogener Daten, zur Verarbeitung für andere Zwecke und zur
|
||||
Übermittlung sowie automatisierten Entscheidungsfindung im Einzelfall
|
||||
einschließlich Profiling. Ferner können Landesdatenschutzgesetze der
|
||||
einzelnen Bundesländer zur Anwendung gelangen.
|
||||
</p>
|
||||
<p>
|
||||
<strong>Hinweis auf Geltung DSGVO und Schweizer DSG: </strong>Diese
|
||||
Datenschutzhinweise dienen sowohl der Informationserteilung nach dem
|
||||
schweizerischen Bundesgesetz über den Datenschutz (Schweizer DSG) als
|
||||
auch nach der Datenschutzgrundverordnung (DSGVO). Aus diesem Grund
|
||||
bitten wir Sie zu beachten, dass aufgrund der breiteren räumlichen
|
||||
Anwendung und Verständlichkeit die Begriffe der DSGVO verwendet werden.
|
||||
Insbesondere statt der im Schweizer DSG verwendeten Begriffe
|
||||
„Bearbeitung" von „Personendaten", "überwiegendes Interesse" und
|
||||
"besonders schützenswerte Personendaten" werden die in der DSGVO
|
||||
verwendeten Begriffe „Verarbeitung" von „personenbezogenen Daten" sowie
|
||||
"berechtigtes Interesse" und "besondere Kategorien von Daten" verwendet.
|
||||
Die gesetzliche Bedeutung der Begriffe wird jedoch im Rahmen der Geltung
|
||||
des Schweizer DSG weiterhin nach dem Schweizer DSG bestimmt.
|
||||
</p>
|
||||
|
||||
<h2 id="m27">Sicherheitsmaßnahmen</h2>
|
||||
<p>
|
||||
Wir treffen nach Maßgabe der gesetzlichen Vorgaben unter
|
||||
Berücksichtigung des Stands der Technik, der Implementierungskosten und
|
||||
der Art, des Umfangs, der Umstände und der Zwecke der Verarbeitung sowie
|
||||
der unterschiedlichen Eintrittswahrscheinlichkeiten und des Ausmaßes der
|
||||
Bedrohung der Rechte und Freiheiten natürlicher Personen geeignete
|
||||
technische und organisatorische Maßnahmen, um ein dem Risiko
|
||||
angemessenes Schutzniveau zu gewährleisten.
|
||||
</p>
|
||||
<p>
|
||||
Zu den Maßnahmen gehören insbesondere die Sicherung der Vertraulichkeit,
|
||||
Integrität und Verfügbarkeit von Daten durch Kontrolle des physischen
|
||||
und elektronischen Zugangs zu den Daten als auch des sie betreffenden
|
||||
Zugriffs, der Eingabe, der Weitergabe, der Sicherung der Verfügbarkeit
|
||||
und ihrer Trennung. Des Weiteren haben wir Verfahren eingerichtet, die
|
||||
eine Wahrnehmung von Betroffenenrechten, die Löschung von Daten und
|
||||
Reaktionen auf die Gefährdung der Daten gewährleisten. Ferner
|
||||
berücksichtigen wir den Schutz personenbezogener Daten bereits bei der
|
||||
Entwicklung bzw. Auswahl von Hardware, Software sowie Verfahren
|
||||
entsprechend dem Prinzip des Datenschutzes, durch Technikgestaltung und
|
||||
durch datenschutzfreundliche Voreinstellungen.
|
||||
</p>
|
||||
<p>
|
||||
TLS-Verschlüsselung (https): Um Ihre via unserem Online-Angebot
|
||||
übermittelten Daten zu schützen, nutzen wir eine TLS-Verschlüsselung.
|
||||
Sie erkennen derart verschlüsselte Verbindungen an dem Präfix https://
|
||||
in der Adresszeile Ihres Browsers.
|
||||
</p>
|
||||
|
||||
<h2 id="m25">Übermittlung von personenbezogenen Daten</h2>
|
||||
<p>
|
||||
Im Rahmen unserer Verarbeitung von personenbezogenen Daten kommt es vor,
|
||||
dass die Daten an andere Stellen, Unternehmen, rechtlich selbstständige
|
||||
Organisationseinheiten oder Personen übermittelt oder sie ihnen
|
||||
gegenüber offengelegt werden. Zu den Empfängern dieser Daten können z.B.
|
||||
mit IT-Aufgaben beauftragte Dienstleister oder Anbieter von Diensten und
|
||||
Inhalten, die in eine Webseite eingebunden werden, gehören. In solchen
|
||||
Fällen beachten wir die gesetzlichen Vorgaben und schließen insbesondere
|
||||
entsprechende Verträge bzw. Vereinbarungen, die dem Schutz Ihrer Daten
|
||||
dienen, mit den Empfängern Ihrer Daten ab.
|
||||
</p>
|
||||
|
||||
<h2 id="m24">Internationale Datentransfers</h2>
|
||||
<p>
|
||||
Datenverarbeitung in Drittländern: Sofern wir Daten in einem Drittland
|
||||
(d.h., außerhalb der Europäischen Union (EU), des Europäischen
|
||||
Wirtschaftsraums (EWR)) verarbeiten oder die Verarbeitung im Rahmen der
|
||||
Inanspruchnahme von Diensten Dritter oder der Offenlegung bzw.
|
||||
Übermittlung von Daten an andere Personen, Stellen oder Unternehmen
|
||||
stattfindet, erfolgt dies nur im Einklang mit den gesetzlichen Vorgaben.
|
||||
Sofern das Datenschutzniveau in dem Drittland mittels eines
|
||||
Angemessenheitsbeschlusses anerkannt wurde (Art. 45 DSGVO), dient dieser
|
||||
als Grundlage des Datentransfers. Im Übrigen erfolgen Datentransfers nur
|
||||
dann, wenn das Datenschutzniveau anderweitig gesichert ist, insbesondere
|
||||
durch Standardvertragsklauseln (Art. 46 Abs. 2 lit. c) DSGVO),
|
||||
ausdrückliche Einwilligung oder im Fall vertraglicher oder gesetzlich
|
||||
erforderlicher Übermittlung (Art. 49 Abs. 1 DSGVO). Im Übrigen teilen
|
||||
wir Ihnen die Grundlagen der Drittlandübermittlung bei den einzelnen
|
||||
Anbietern aus dem Drittland mit, wobei die Angemesenheitsbeschlüsse als
|
||||
Grundlagen vorrangig gelten. Informationen zu Drittlandtransfers und
|
||||
vorliegenden Angemessenheitsbeschlüssen können dem Informationsangebot
|
||||
der EU-Kommission entnommen werden:
|
||||
<a
|
||||
href="https://ec.europa.eu/info/law/law-topic/data-protection/international-dimension-data-protection_de"
|
||||
target="_blank"
|
||||
>https://ec.europa.eu/info/law/law-topic/data-protection/international-dimension-data-protection_de.</a
|
||||
>
|
||||
</p>
|
||||
<p>
|
||||
EU-US Trans-Atlantic Data Privacy Framework: Im Rahmen des sogenannten
|
||||
„Data Privacy Framework" (DPF) hat die EU-Kommission das
|
||||
Datenschutzniveau ebenfalls für bestimmte Unternehmen aus den USA im
|
||||
Rahmen der Angemessenheitsbeschlusses vom 10.07.2023 als sicher
|
||||
anerkannt. Die Liste der zertifizierten Unternehmen als auch weitere
|
||||
Informationen zu dem DPF können Sie der Webseite des Handelsministeriums
|
||||
der USA unter
|
||||
<a href="https://www.dataprivacyframework.gov/" target="_blank"
|
||||
>https://www.dataprivacyframework.gov/</a
|
||||
>
|
||||
(in Englisch) entnehmen. Wir informieren Sie im Rahmen der
|
||||
Datenschutzhinweise welche von uns eingesetzten Diensteanbieter unter
|
||||
dem Data Privacy Framework zertifiziert sind.
|
||||
</p>
|
||||
|
||||
<h2 id="m10">Rechte der betroffenen Personen</h2>
|
||||
<p>
|
||||
Rechte der betroffenen Personen aus der DSGVO: Ihnen stehen als
|
||||
Betroffene nach der DSGVO verschiedene Rechte zu, die sich insbesondere
|
||||
aus Art. 15 bis 21 DSGVO ergeben:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<strong
|
||||
>Widerspruchsrecht: Sie haben das Recht, aus Gründen, die sich aus
|
||||
Ihrer besonderen Situation ergeben, jederzeit gegen die Verarbeitung
|
||||
der Sie betreffenden personenbezogenen Daten, die aufgrund von Art.
|
||||
6 Abs. 1 lit. e oder f DSGVO erfolgt, Widerspruch einzulegen; dies
|
||||
gilt auch für ein auf diese Bestimmungen gestütztes Profiling.
|
||||
Werden die Sie betreffenden personenbezogenen Daten verarbeitet, um
|
||||
Direktwerbung zu betreiben, haben Sie das Recht, jederzeit
|
||||
Widerspruch gegen die Verarbeitung der Sie betreffenden
|
||||
personenbezogenen Daten zum Zwecke derartiger Werbung einzulegen;
|
||||
dies gilt auch für das Profiling, soweit es mit solcher
|
||||
Direktwerbung in Verbindung steht.</strong
|
||||
>
|
||||
</li>
|
||||
<li>
|
||||
<strong>Widerrufsrecht bei Einwilligungen:</strong> Sie haben das
|
||||
Recht, erteilte Einwilligungen jederzeit zu widerrufen.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Auskunftsrecht:</strong> Sie haben das Recht, eine Bestätigung
|
||||
darüber zu verlangen, ob betreffende Daten verarbeitet werden und auf
|
||||
Auskunft über diese Daten sowie auf weitere Informationen und Kopie
|
||||
der Daten entsprechend den gesetzlichen Vorgaben.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Recht auf Berichtigung:</strong> Sie haben entsprechend den
|
||||
gesetzlichen Vorgaben das Recht, die Vervollständigung der Sie
|
||||
betreffenden Daten oder die Berichtigung der Sie betreffenden
|
||||
unrichtigen Daten zu verlangen.
|
||||
</li>
|
||||
<li>
|
||||
<strong
|
||||
>Recht auf Löschung und Einschränkung der Verarbeitung:</strong
|
||||
>
|
||||
Sie haben nach Maßgabe der gesetzlichen Vorgaben das Recht, zu
|
||||
verlangen, dass Sie betreffende Daten unverzüglich gelöscht werden,
|
||||
bzw. alternativ nach Maßgabe der gesetzlichen Vorgaben eine
|
||||
Einschränkung der Verarbeitung der Daten zu verlangen.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Recht auf Datenübertragbarkeit:</strong> Sie haben das Recht,
|
||||
Sie betreffende Daten, die Sie uns bereitgestellt haben, nach Maßgabe
|
||||
der gesetzlichen Vorgaben in einem strukturierten, gängigen und
|
||||
maschinenlesbaren Format zu erhalten oder deren Übermittlung an einen
|
||||
anderen Verantwortlichen zu fordern.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Beschwerde bei Aufsichtsbehörde:</strong> Sie haben
|
||||
unbeschadet eines anderweitigen verwaltungsrechtlichen oder
|
||||
gerichtlichen Rechtsbehelfs das Recht auf Beschwerde bei einer
|
||||
Aufsichtsbehörde, insbesondere in dem Mitgliedstaat ihres gewöhnlichen
|
||||
Aufenthaltsorts, ihres Arbeitsplatzes oder des Orts des mutmaßlichen
|
||||
Verstoßes, wenn Sie der Ansicht sind, dass die Verarbeitung der Sie
|
||||
betreffenden personenbezogenen Daten gegen die Vorgaben der DSGVO
|
||||
verstößt.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2 id="m134">Einsatz von Cookies</h2>
|
||||
<p>
|
||||
Cookies sind kleine Textdateien, bzw. sonstige Speichervermerke, die
|
||||
Informationen auf Endgeräten speichern und Informationen aus den
|
||||
Endgeräten auslesen. Z.B. um den Login-Status in einem Nutzerkonto,
|
||||
einen Warenkorbinhalt in einem E-Shop, die aufgerufenen Inhalte oder
|
||||
verwendete Funktionen eines Onlineangebotes speichern. Cookies können
|
||||
ferner zu unterschiedlichen Zwecken eingesetzt werden, z.B. zu Zwecken
|
||||
der Funktionsfähigkeit, Sicherheit und Komfort von Onlineangeboten sowie
|
||||
der Erstellung von Analysen der Besucherströme.
|
||||
</p>
|
||||
<p>
|
||||
<strong>Hinweise zur Einwilligung: </strong>Wir setzen Cookies im
|
||||
Einklang mit den gesetzlichen Vorschriften ein. Daher holen wir von den
|
||||
Nutzern eine vorhergehende Einwilligung ein, außer wenn diese gesetzlich
|
||||
nicht gefordert ist. Eine Einwilligung ist insbesondere nicht notwendig,
|
||||
wenn das Speichern und das Auslesen der Informationen, also auch von
|
||||
Cookies, unbedingt erforderlich sind, um dem den Nutzern einen von ihnen
|
||||
ausdrücklich gewünschten Telemediendienst (also unser Onlineangebot) zur
|
||||
Verfügung zu stellen. Zu den unbedingt erforderlichen Cookies gehören in
|
||||
der Regel Cookies mit Funktionen, die der Anzeige und Lauffähigkeit des
|
||||
Onlineangebotes , dem Lastausgleich, der Sicherheit, der Speicherung der
|
||||
Präferenzen und Auswahlmöglichkeiten der Nutzer oder ähnlichen mit der
|
||||
Bereitstellung der Haupt- und Nebenfunktionen des von den Nutzern
|
||||
angeforderten Onlineangebotes zusammenhängenden Zwecken dienen. Die
|
||||
widerrufliche Einwilligung wird gegenüber den Nutzern deutlich
|
||||
kommuniziert und enthält die Informationen zu der jeweiligen
|
||||
Cookie-Nutzung.
|
||||
</p>
|
||||
<p>
|
||||
<strong>Hinweise zu datenschutzrechtlichen Rechtsgrundlagen: </strong
|
||||
>Auf welcher datenschutzrechtlichen Rechtsgrundlage wir die
|
||||
personenbezogenen Daten der Nutzer mit Hilfe von Cookies verarbeiten,
|
||||
hängt davon ab, ob wir Nutzer um eine Einwilligung bitten. Falls die
|
||||
Nutzer einwilligen, ist die Rechtsgrundlage der Verarbeitung Ihrer Daten
|
||||
die erklärte Einwilligung. Andernfalls werden die mithilfe von Cookies
|
||||
verarbeiteten Daten auf Grundlage unserer berechtigten Interessen (z.B.
|
||||
an einem betriebswirtschaftlichen Betrieb unseres Onlineangebotes und
|
||||
Verbesserung seiner Nutzbarkeit) verarbeitet oder, wenn dies im Rahmen
|
||||
der Erfüllung unserer vertraglichen Pflichten erfolgt, wenn der Einsatz
|
||||
von Cookies erforderlich ist, um unsere vertraglichen Verpflichtungen zu
|
||||
erfüllen. Zu welchen Zwecken die Cookies von uns verarbeitet werden,
|
||||
darüber klären wir im Laufe dieser Datenschutzerklärung oder im Rahmen
|
||||
von unseren Einwilligungs- und Verarbeitungsprozessen auf.
|
||||
</p>
|
||||
<p>
|
||||
<strong>Speicherdauer:</strong>Im Hinblick auf die Speicherdauer werden
|
||||
die folgenden Arten von Cookies unterschieden:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<strong
|
||||
>Temporäre Cookies (auch: Session- oder Sitzungs-Cookies):</strong
|
||||
>
|
||||
Temporäre Cookies werden spätestens gelöscht, nachdem ein Nutzer ein
|
||||
Online-Angebot verlassen und sein Endgerät (z.B. Browser oder mobile
|
||||
Applikation) geschlossen hat.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Permanente Cookies:</strong> Permanente Cookies bleiben auch
|
||||
nach dem Schließen des Endgerätes gespeichert. So können
|
||||
beispielsweise der Login-Status gespeichert oder bevorzugte Inhalte
|
||||
direkt angezeigt werden, wenn der Nutzer eine Website erneut besucht.
|
||||
Ebenso können die mit Hilfe von Cookies erhobenen Daten der Nutzer zur
|
||||
Reichweitenmessung verwendet werden. Sofern wir Nutzern keine
|
||||
expliziten Angaben zur Art und Speicherdauer von Cookies mitteilen
|
||||
(z.B. im Rahmen der Einholung der Einwilligung), sollten Nutzer davon
|
||||
ausgehen, dass Cookies permanent sind und die Speicherdauer bis zu
|
||||
zwei Jahre betragen kann.
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
<strong
|
||||
>Allgemeine Hinweise zum Widerruf und Widerspruch (sog. "Opt-Out"): </strong
|
||||
>Nutzer können die von ihnen abgegebenen Einwilligungen jederzeit
|
||||
widerrufen und der Verarbeitung entsprechend den gesetzlichen Vorgaben
|
||||
widersprechen. Hierzu können Nutzer unter anderem die Verwendung von
|
||||
Cookies in den Einstellungen ihres Browsers einschränken (wobei dadurch
|
||||
auch die Funktionalität unseres Onlineangebotes eingeschränkt sein
|
||||
kann). Ein Widerspruch gegen die Verwendung von Cookies zu
|
||||
Online-Marketing-Zwecken kann auch über die Websites
|
||||
<a href="https://optout.aboutads.info/" target="_new"
|
||||
>https://optout.aboutads.info</a
|
||||
>
|
||||
und
|
||||
<a href="https://www.youronlinechoices.com/" target="_new"
|
||||
>https://www.youronlinechoices.com/</a
|
||||
>
|
||||
erklärt werden.
|
||||
</p>
|
||||
<ul class="m-elements">
|
||||
<li class="">
|
||||
<strong>Rechtsgrundlagen:</strong> Berechtigte Interessen (Art. 6 Abs.
|
||||
1 S. 1 lit. f) DSGVO). Einwilligung (Art. 6 Abs. 1 S. 1 lit. a)
|
||||
DSGVO).
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
<strong
|
||||
>Weitere Hinweise zu Verarbeitungsprozessen, Verfahren und
|
||||
Diensten:</strong
|
||||
>
|
||||
</p>
|
||||
<ul class="m-elements">
|
||||
<li>
|
||||
<strong
|
||||
>Verarbeitung von Cookie-Daten auf Grundlage einer Einwilligung: </strong
|
||||
>Wir setzen ein Verfahren zum Cookie-Einwilligungs-Management ein, in
|
||||
dessen Rahmen die Einwilligungen der Nutzer in den Einsatz von
|
||||
Cookies, bzw. der im Rahmen des
|
||||
Cookie-Einwilligungs-Management-Verfahrens genannten Verarbeitungen
|
||||
und Anbieter eingeholt sowie von den Nutzern verwaltet und widerrufen
|
||||
werden können. Hierbei wird die Einwilligungserklärung gespeichert, um
|
||||
deren Abfrage nicht erneut wiederholen zu müssen und die Einwilligung
|
||||
entsprechend der gesetzlichen Verpflichtung nachweisen zu können. Die
|
||||
Speicherung kann serverseitig und/oder in einem Cookie (sogenanntes
|
||||
Opt-In-Cookie, bzw. mithilfe vergleichbarer Technologien) erfolgen, um
|
||||
die Einwilligung einem Nutzer, bzw. dessen Gerät zuordnen zu können.
|
||||
Vorbehaltlich individueller Angaben zu den Anbietern von
|
||||
Cookie-Management-Diensten, gelten die folgenden Hinweise: Die Dauer
|
||||
der Speicherung der Einwilligung kann bis zu zwei Jahren betragen.
|
||||
Hierbei wird ein pseudonymer Nutzer-Identifikator gebildet und mit dem
|
||||
Zeitpunkt der Einwilligung, Angaben zur Reichweite der Einwilligung
|
||||
(z.B. welche Kategorien von Cookies und/oder Diensteanbieter) sowie
|
||||
dem Browser, System und verwendeten Endgerät gespeichert;
|
||||
<span class=""
|
||||
><strong>Rechtsgrundlagen:</strong> Einwilligung (Art. 6 Abs. 1 S. 1
|
||||
lit. a) DSGVO).</span
|
||||
>
|
||||
</li>
|
||||
</ul>
|
||||
<h2 id="m225">Bereitstellung des Onlineangebotes und Webhosting</h2>
|
||||
<p>
|
||||
Wir verarbeiten die Daten der Nutzer, um ihnen unsere Online-Dienste zur
|
||||
Verfügung stellen zu können. Zu diesem Zweck verarbeiten wir die
|
||||
IP-Adresse des Nutzers, die notwendig ist, um die Inhalte und Funktionen
|
||||
unserer Online-Dienste an den Browser oder das Endgerät der Nutzer zu
|
||||
übermitteln.
|
||||
</p>
|
||||
<ul class="m-elements">
|
||||
<li>
|
||||
<strong>Verarbeitete Datenarten:</strong> Nutzungsdaten (z.B. besuchte
|
||||
Webseiten, Interesse an Inhalten, Zugriffszeiten); Meta-,
|
||||
Kommunikations- und Verfahrensdaten (z.B. IP-Adressen, Zeitangaben,
|
||||
Identifikationsnummern, Einwilligungsstatus).
|
||||
</li>
|
||||
<li>
|
||||
<strong>Betroffene Personen:</strong> Nutzer (z..B. Webseitenbesucher,
|
||||
Nutzer von Onlinediensten).
|
||||
</li>
|
||||
<li>
|
||||
<strong>Zwecke der Verarbeitung:</strong> Bereitstellung unseres
|
||||
Onlineangebotes und Nutzerfreundlichkeit; Informationstechnische
|
||||
Infrastruktur (Betrieb und Bereitstellung von Informationssystemen und
|
||||
technischen Geräten (Computer, Server etc.).). Sicherheitsmaßnahmen.
|
||||
</li>
|
||||
<li class="">
|
||||
<strong>Rechtsgrundlagen:</strong> Berechtigte Interessen (Art. 6 Abs.
|
||||
1 S. 1 lit. f) DSGVO).
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
<strong
|
||||
>Weitere Hinweise zu Verarbeitungsprozessen, Verfahren und
|
||||
Diensten:</strong
|
||||
>
|
||||
</p>
|
||||
<ul class="m-elements">
|
||||
<li>
|
||||
<strong
|
||||
>Bereitstellung Onlineangebot auf eigener/ dedizierter
|
||||
Serverhardware: </strong
|
||||
>Für die Bereitstellung unseres Onlineangebotes nutzen wir von uns
|
||||
betriebene Serverhardware sowie den damit verbundenen Speicherplatz,
|
||||
die Rechenkapazität und die Software;
|
||||
<span class=""
|
||||
><strong>Rechtsgrundlagen:</strong> Berechtigte Interessen (Art. 6
|
||||
Abs. 1 S. 1 lit. f) DSGVO).</span
|
||||
>
|
||||
</li>
|
||||
<li>
|
||||
<strong>Erhebung von Zugriffsdaten und Logfiles: </strong>Der Zugriff
|
||||
auf unser Onlineangebot wird in Form von so genannten
|
||||
"Server-Logfiles" protokolliert. Zu den Serverlogfiles können die
|
||||
Adresse und Name der abgerufenen Webseiten und Dateien, Datum und
|
||||
Uhrzeit des Abrufs, übertragene Datenmengen, Meldung über
|
||||
erfolgreichen Abruf, Browsertyp nebst Version, das Betriebssystem des
|
||||
Nutzers, Referrer URL (die zuvor besuchte Seite) und im Regelfall
|
||||
IP-Adressen und der anfragende Provider gehören. Die Serverlogfiles
|
||||
können zum einen zu Zwecken der Sicherheit eingesetzt werden, z.B., um
|
||||
eine Überlastung der Server zu vermeiden (insbesondere im Fall von
|
||||
missbräuchlichen Angriffen, sogenannten DDoS-Attacken) und zum
|
||||
anderen, um die Auslastung der Server und ihre Stabilität
|
||||
sicherzustellen;
|
||||
<span class=""
|
||||
><strong>Rechtsgrundlagen:</strong> Berechtigte Interessen (Art. 6
|
||||
Abs. 1 S. 1 lit. f) DSGVO). </span
|
||||
><strong>Löschung von Daten:</strong> Logfile-Informationen werden für
|
||||
die Dauer von maximal 30 Tagen gespeichert und danach gelöscht oder
|
||||
anonymisiert. Daten, deren weitere Aufbewahrung zu Beweiszwecken
|
||||
erforderlich ist, sind bis zur endgültigen Klärung des jeweiligen
|
||||
Vorfalls von der Löschung ausgenommen.
|
||||
</li>
|
||||
</ul>
|
||||
<h2 id="m182">Kontakt- und Anfragenverwaltung</h2>
|
||||
<p>
|
||||
Bei der Kontaktaufnahme mit uns (z.B. per Post, Kontaktformular, E-Mail,
|
||||
Telefon oder via soziale Medien) sowie im Rahmen bestehender Nutzer- und
|
||||
Geschäftsbeziehungen werden die Angaben der anfragenden Personen
|
||||
verarbeitet soweit dies zur Beantwortung der Kontaktanfragen und
|
||||
etwaiger angefragter Maßnahmen erforderlich ist.
|
||||
</p>
|
||||
<ul class="m-elements">
|
||||
<li>
|
||||
<strong>Verarbeitete Datenarten:</strong> Kontaktdaten (z.B. E-Mail,
|
||||
Telefonnummern); Inhaltsdaten (z.B. Eingaben in Onlineformularen);
|
||||
Nutzungsdaten (z.B. besuchte Webseiten, Interesse an Inhalten,
|
||||
Zugriffszeiten); Meta-, Kommunikations- und Verfahrensdaten (z.B.
|
||||
IP-Adressen, Zeitangaben, Identifikationsnummern,
|
||||
Einwilligungsstatus).
|
||||
</li>
|
||||
<li><strong>Betroffene Personen:</strong> Kommunikationspartner.</li>
|
||||
<li>
|
||||
<strong>Zwecke der Verarbeitung:</strong> Kontaktanfragen und
|
||||
Kommunikation; Verwaltung und Beantwortung von Anfragen; Feedback
|
||||
(z.B. Sammeln von Feedback via Online-Formular). Bereitstellung
|
||||
unseres Onlineangebotes und Nutzerfreundlichkeit.
|
||||
</li>
|
||||
<li class="">
|
||||
<strong>Rechtsgrundlagen:</strong> Berechtigte Interessen (Art. 6 Abs.
|
||||
1 S. 1 lit. f) DSGVO).
|
||||
</li>
|
||||
</ul>
|
||||
<h2 id="m10">Rechte der betroffenen Personen</h2>
|
||||
<p>
|
||||
Ihnen stehen als Betroffene nach der DSGVO verschiedene Rechte zu, die
|
||||
sich insbesondere aus Art. 15 bis 21 DSGVO ergeben:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<strong
|
||||
>Widerspruchsrecht: Sie haben das Recht, aus Gründen, die sich aus
|
||||
Ihrer besonderen Situation ergeben, jederzeit gegen die Verarbeitung
|
||||
der Sie betreffenden personenbezogenen Daten, die aufgrund von Art.
|
||||
6 Abs. 1 lit. e oder f DSGVO erfolgt, Widerspruch einzulegen; dies
|
||||
gilt auch für ein auf diese Bestimmungen gestütztes Profiling.
|
||||
Werden die Sie betreffenden personenbezogenen Daten verarbeitet, um
|
||||
Direktwerbung zu betreiben, haben Sie das Recht, jederzeit
|
||||
Widerspruch gegen die Verarbeitung der Sie betreffenden
|
||||
personenbezogenen Daten zum Zwecke derartiger Werbung einzulegen;
|
||||
dies gilt auch für das Profiling, soweit es mit solcher
|
||||
Direktwerbung in Verbindung steht.</strong
|
||||
>
|
||||
</li>
|
||||
<li>
|
||||
<strong>Widerrufsrecht bei Einwilligungen:</strong> Sie haben das
|
||||
Recht, erteilte Einwilligungen jederzeit zu widerrufen.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Auskunftsrecht:</strong> Sie haben das Recht, eine Bestätigung
|
||||
darüber zu verlangen, ob betreffende Daten verarbeitet werden und auf
|
||||
Auskunft über diese Daten sowie auf weitere Informationen und Kopie
|
||||
der Daten entsprechend den gesetzlichen Vorgaben.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Recht auf Berichtigung:</strong> Sie haben entsprechend den
|
||||
gesetzlichen Vorgaben das Recht, die Vervollständigung der Sie
|
||||
betreffenden Daten oder die Berichtigung der Sie betreffenden
|
||||
unrichtigen Daten zu verlangen.
|
||||
</li>
|
||||
<li>
|
||||
<strong
|
||||
>Recht auf Löschung und Einschränkung der Verarbeitung:</strong
|
||||
>
|
||||
Sie haben nach Maßgabe der gesetzlichen Vorgaben das Recht, zu
|
||||
verlangen, dass Sie betreffende Daten unverzüglich gelöscht werden,
|
||||
bzw. alternativ nach Maßgabe der gesetzlichen Vorgaben eine
|
||||
Einschränkung der Verarbeitung der Daten zu verlangen.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Recht auf Datenübertragbarkeit:</strong> Sie haben das Recht,
|
||||
Sie betreffende Daten, die Sie uns bereitgestellt haben, nach Maßgabe
|
||||
der gesetzlichen Vorgaben in einem strukturierten, gängigen und
|
||||
maschinenlesbaren Format zu erhalten oder deren Übermittlung an einen
|
||||
anderen Verantwortlichen zu fordern.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Beschwerde bei Aufsichtsbehörde:</strong> Sie haben
|
||||
unbeschadet eines anderweitigen verwaltungsrechtlichen oder
|
||||
gerichtlichen Rechtsbehelfs das Recht auf Beschwerde bei einer
|
||||
Aufsichtsbehörde, insbesondere in dem Mitgliedstaat ihres gewöhnlichen
|
||||
Aufenthaltsorts, ihres Arbeitsplatzes oder des Orts des mutmaßlichen
|
||||
Verstoßes, wenn Sie der Ansicht sind, dass die Verarbeitung der Sie
|
||||
betreffenden personenbezogenen Daten gegen die Vorgaben der DSGVO
|
||||
verstößt.
|
||||
</li>
|
||||
</ul>
|
||||
<h2 id="m42">Begriffsdefinitionen</h2>
|
||||
<p>
|
||||
In diesem Abschnitt erhalten Sie eine Übersicht über die in dieser
|
||||
Datenschutzerklärung verwendeten Begrifflichkeiten. Viele der Begriffe
|
||||
sind dem Gesetz entnommen und vor allem im Art. 4 DSGVO definiert. Die
|
||||
gesetzlichen Definitionen sind verbindlich. Die nachfolgenden
|
||||
Erläuterungen sollen dagegen vor allem dem Verständnis dienen. Die
|
||||
Begriffe sind alphabetisch sortiert.
|
||||
</p>
|
||||
<ul class="glossary">
|
||||
<li>
|
||||
<strong>Personenbezogene Daten:</strong> "Personenbezogene Daten“ sind
|
||||
alle Informationen, die sich auf eine identifizierte oder
|
||||
identifizierbare natürliche Person (im Folgenden "betroffene Person“)
|
||||
beziehen; als identifizierbar wird eine natürliche Person angesehen,
|
||||
die direkt oder indirekt, insbesondere mittels Zuordnung zu einer
|
||||
Kennung wie einem Namen, zu einer Kennnummer, zu Standortdaten, zu
|
||||
einer Online-Kennung (z.B. Cookie) oder zu einem oder mehreren
|
||||
besonderen Merkmalen identifiziert werden kann, die Ausdruck der
|
||||
physischen, physiologischen, genetischen, psychischen,
|
||||
wirtschaftlichen, kulturellen oder sozialen Identität dieser
|
||||
natürlichen Person sind.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Verantwortlicher:</strong> Als "Verantwortlicher“ wird die
|
||||
natürliche oder juristische Person, Behörde, Einrichtung oder andere
|
||||
Stelle, die allein oder gemeinsam mit anderen über die Zwecke und
|
||||
Mittel der Verarbeitung von personenbezogenen Daten entscheidet,
|
||||
bezeichnet.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Verarbeitung:</strong> "Verarbeitung" ist jeder mit oder ohne
|
||||
Hilfe automatisierter Verfahren ausgeführte Vorgang oder jede solche
|
||||
Vorgangsreihe im Zusammenhang mit personenbezogenen Daten. Der Begriff
|
||||
reicht weit und umfasst praktisch jeden Umgang mit Daten, sei es das
|
||||
Erheben, das Auswerten, das Speichern, das Übermitteln oder das
|
||||
Löschen.
|
||||
</li>
|
||||
</ul>
|
||||
<p class="seal">
|
||||
<a
|
||||
href="https://datenschutz-generator.de/"
|
||||
rel="noopener noreferrer nofollow"
|
||||
target="_blank"
|
||||
title="Rechtstext von Dr. Schwenke - für weitere Informationen bitte anklicken."
|
||||
>Erstellt mit kostenlosem Datenschutz-Generator.de von Dr. Thomas
|
||||
Schwenke</a
|
||||
>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped></style>
|
@@ -1,48 +0,0 @@
|
||||
<script lang="ts" setup>
|
||||
import { Ref, ref } from "vue";
|
||||
import { fetchRoom } from "../api/fetchRoom.ts";
|
||||
import RoomOccupation from "./RoomOccupation.vue";
|
||||
|
||||
const rooms = async () => {
|
||||
return await fetchRoom();
|
||||
};
|
||||
|
||||
const roomsList: Ref<{ name: string }[]> = ref([]);
|
||||
const selectedRoom: Ref<{ name: string }> = ref({ name: "" });
|
||||
|
||||
rooms().then(
|
||||
(data) =>
|
||||
(roomsList.value = data.map((room) => {
|
||||
return { name: room };
|
||||
})),
|
||||
);
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="flex flex-column">
|
||||
<div class="flex align-items-center justify-content-center h-4rem m-2">
|
||||
<h3 class="text-4xl">Raumfinder</h3>
|
||||
</div>
|
||||
<div
|
||||
class="flex align-items-center justify-content-center h-4rem border-round m-2"
|
||||
>
|
||||
<h5 class="text-2xl">Please select a room</h5>
|
||||
</div>
|
||||
<div
|
||||
class="flex align-items-center justify-content-center border-round m-2"
|
||||
>
|
||||
<Dropdown
|
||||
v-model="selectedRoom"
|
||||
:options="roomsList"
|
||||
class="w-full md:w-25rem mx-2"
|
||||
filter
|
||||
option-label="name"
|
||||
placeholder="Select a Room"
|
||||
:autoFilterFocus="true"
|
||||
/>
|
||||
</div>
|
||||
<div class="m-6">
|
||||
<RoomOccupation :room="selectedRoom.name" />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
@@ -3,9 +3,11 @@ import FullCalendar from "@fullcalendar/vue3";
|
||||
import dayGridPlugin from "@fullcalendar/daygrid";
|
||||
import interactionPlugin from "@fullcalendar/interaction";
|
||||
import timeGridPlugin from "@fullcalendar/timegrid";
|
||||
import { computed, ref, Ref, watch } from "vue";
|
||||
import { computed, ComputedRef, ref, Ref, watch } from "vue";
|
||||
import { CalendarOptions, EventInput } from "@fullcalendar/core";
|
||||
import { fetchEventsByRoomAndDuration } from "../api/fetchRoom.ts";
|
||||
import { useI18n } from "vue-i18n";
|
||||
const { t } = useI18n({ useScope: 'global' })
|
||||
|
||||
const props = defineProps({
|
||||
room: {
|
||||
@@ -53,7 +55,14 @@ async function getOccupation() {
|
||||
calendar?.refetchEvents();
|
||||
}
|
||||
|
||||
const calendarOptions: CalendarOptions = {
|
||||
import allLocales from "@fullcalendar/core/locales-all";
|
||||
|
||||
|
||||
const calendarOptions: ComputedRef<CalendarOptions> = computed(() =>
|
||||
{
|
||||
return {
|
||||
locales: allLocales,
|
||||
locale: t('languageCode'),
|
||||
plugins: [dayGridPlugin, interactionPlugin, timeGridPlugin],
|
||||
initialView: "week",
|
||||
dayHeaderFormat: { weekday: "short", omitCommas: true },
|
||||
@@ -65,6 +74,7 @@ const calendarOptions: CalendarOptions = {
|
||||
},
|
||||
views: {
|
||||
week: {
|
||||
description: "Wochenansicht",
|
||||
type: "timeGrid",
|
||||
slotLabelFormat: {
|
||||
hour: "numeric",
|
||||
@@ -77,7 +87,6 @@ const calendarOptions: CalendarOptions = {
|
||||
titleFormat: { month: "short", day: "numeric" },
|
||||
slotMinTime: "06:00:00",
|
||||
slotMaxTime: "22:00:00",
|
||||
|
||||
duration: { days: 7 },
|
||||
firstDay: 1,
|
||||
allDaySlot: false,
|
||||
@@ -106,7 +115,7 @@ const calendarOptions: CalendarOptions = {
|
||||
start: "week,Day",
|
||||
},
|
||||
|
||||
datesSet: function (dateInfo) {
|
||||
datesSet: function (dateInfo: any) {
|
||||
const view = dateInfo.view;
|
||||
const offset = new Date().getTimezoneOffset();
|
||||
const startDate = new Date(view.activeStart.getTime() - offset * 60 * 1000);
|
||||
@@ -115,7 +124,7 @@ const calendarOptions: CalendarOptions = {
|
||||
currentDateTo.value = endDate.toISOString().split("T")[0];
|
||||
getOccupation();
|
||||
},
|
||||
events: function (_info, successCallback, failureCallback) {
|
||||
events: function (_info: any, successCallback: any, failureCallback: any) {
|
||||
if (occupations.value.length === 0) {
|
||||
failureCallback(new Error("no events"));
|
||||
} else {
|
||||
@@ -130,8 +139,8 @@ const calendarOptions: CalendarOptions = {
|
||||
);
|
||||
}
|
||||
},
|
||||
};
|
||||
}})
|
||||
</script>
|
||||
<template>
|
||||
<FullCalendar ref="fullCalendar" :options="calendarOptions" />
|
||||
<FullCalendar ref="fullCalendar" :options="calendarOptions"/>
|
||||
</template>
|
||||
|
Reference in New Issue
Block a user