Cookie obsługa
This commit is contained in:
87
src/content/polityka-prywatnosci/privacy.yaml
Normal file
87
src/content/polityka-prywatnosci/privacy.yaml
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
title: "Polityka Prywatności"
|
||||||
|
|
||||||
|
intro:
|
||||||
|
|
||||||
|
content: |
|
||||||
|
## §1. Informacje podstawowe.
|
||||||
|
|
||||||
|
1. Administratorem Twoich danych osobowych jest: FUZ Adam Rojek, ul. Świętojańska 46, 07-202 Wyszków, zwanym dalej Administratorem.
|
||||||
|
2. Kontakt z Administratorem jest możliwy za pośrednictwem:
|
||||||
|
- poczty e-mail: bok@fuz.pl,
|
||||||
|
- korespondencyjnie na adres: ul. Świętojańska 46, 07-202 Wyszków.
|
||||||
|
|
||||||
|
## §2. Zasady przetwarzania danych.
|
||||||
|
|
||||||
|
1. Administrator przetwarza dane osobowe z poszanowaniem następujących zasad:
|
||||||
|
1. w oparciu o podstawę prawną i zgodnie z prawem (legalizm);
|
||||||
|
2. rzetelnie i uczciwie (rzetelność);
|
||||||
|
3. w sposób przejrzysty dla osoby, której dane dotyczą (transparentność);
|
||||||
|
4. w konkretnych celach i nie „na zapas” (minimalizacja);
|
||||||
|
5. nie więcej niż potrzeba (adekwatność);
|
||||||
|
6. z dbałością o prawidłowość danych (prawidłowość);
|
||||||
|
7. nie dłużej niż potrzeba (czasowość);
|
||||||
|
8. zapewniając odpowiednie bezpieczeństwo danych (bezpieczeństwo).
|
||||||
|
|
||||||
|
## §3. Cele, podstawy prawne i zakres przetwarzania danych.
|
||||||
|
|
||||||
|
1. Twoje dane będziemy przetwarzać:
|
||||||
|
1. w celach kontaktowych, aby udzielić ci odpowiedzi na Twoją wiadomość przesłaną nam bezpośrednio drogą e-mailową lub za pośrednictwem formularza na podstawie realizacji prawnie uzasadnionego interesu Administratora związanego z koniecznością udzielenia Ci odpowiedzi.
|
||||||
|
2. w celach marketingowych, jeśli wyraziłeś zgodę,
|
||||||
|
3. w celu utworzenia i prowadzenia dla Ciebie konta użytkownika w Panelu Klienta,
|
||||||
|
4. w celu realizacji Twojego zamówienia, na podstawie zawartej umowy sprzedaży (poprzez skuteczne złożenie zamówienia dochodzi do zawarcia umowy, w której my występujemy w roli sprzedawcy, a Ty kupującego),
|
||||||
|
5. w celach statystycznych, analitycznych oraz monitorowania ruchu na Stronie przy użyciu plików cookies, na podstawie realizacji prawnie uzasadnionego interesu Administratora związanego z prawidłowym działaniem i funkcjonowaniem Strony oraz prowadzeniem analizy ruchu na stronie.
|
||||||
|
2. Przetwarzamy Twoje dane w zakresie:
|
||||||
|
1. jeśli prześlesz nam wiadomość drogą mailową lub za pośrednictwem formularza to będziemy przetwarzać dane, które będą w tej wiadomości zawarte. Przekazanie nam danych w ten sposób następuje dobrowolnie. W każdym czasie możesz zwrócić się do nas z prośbą o usunięcie tych danych.
|
||||||
|
2. w przypadku założenia konta użytkownika w Panelu Klienta będziemy przetwarzać dane, które podasz w trakcie podpisywania umowy abonenckiej, a w szczególności: Twoje imię i nazwisko, adres e-mail, nr telefonu, adres zamieszkania. Podanie imienia, nazwiska, adresu e-mail stanowi warunek założenia konta użytkownika.
|
||||||
|
3. pozostałe dane, które Administrator przetwarza to adres IP i inne dane zapisywane w plikach cookies, które służą Administratorowi do analizy korzystania przez Ciebie i innych użytkowników Strony. Przetwarzanie danych w tym zakresie może zostać wstrzymane po złożeniu przez Ciebie sprzeciwu.
|
||||||
|
3. Serwis wykorzystuje dane osobowe w następujących celach:
|
||||||
|
- prowadzenie rozmów typu chat online,
|
||||||
|
- prowadzenie rozmów telefonicznych,
|
||||||
|
- obsługa zapytań przez formularz,
|
||||||
|
- realizacja zamówionych usług,
|
||||||
|
- prezentacja oferty lub informacji,
|
||||||
|
- wstępna zdalna weryfikacja możliwości technicznych świadczenia usługi w danej lokalizacji (podstawą prawną przetwarzania danych jest udzielona zgoda).
|
||||||
|
4. Serwis realizuje funkcje pozyskiwania informacji o użytkownikach i ich zachowaniu w następujący sposób:
|
||||||
|
- poprzez dobrowolnie wprowadzone w formularzach dane, które zostają wprowadzone do systemów Operatora.
|
||||||
|
- poprzez zapisywanie w urządzeniach końcowych plików cookie (tzw. „ciasteczka”).
|
||||||
|
|
||||||
|
## §4. Odbiorcy danych oraz zamiar przekazywania danych do Państwa spoza EOG lub organizacji międzynarodowej.
|
||||||
|
|
||||||
|
1. Odbiorcami Twoich danych osobowych są:
|
||||||
|
- podmiot dostarczający oprogramowanie do analizy ruchu naszej stronie (np. Google Analytics);
|
||||||
|
- podmiot dostarczający oprogramowanie obsługujące konta użytkowników;
|
||||||
|
- pośrednicy płatności internetowych z których usług korzystamy.
|
||||||
|
|
||||||
|
Twoje dane nie są przekazywane do Państwa spoza EOG lub organizacji międzynarodowej.
|
||||||
|
|
||||||
|
## §5. Termin przechowywania danych.
|
||||||
|
|
||||||
|
Jeśli przekazałeś nam swoje dane w wiadomości przesłanej drogą mailową lub za pośrednictwem formularza, to Twoje dane będziemy przetwarzać do momentu złożenia przez Ciebie żądania usunięcia tych danych lub sprzeciwu wobec przetwarzania, ale również w przypadku, w którym uznamy, że zrealizowaliśmy prawnie uzasadniony interes Administratora.
|
||||||
|
|
||||||
|
## §6. Prawa użytkowników.
|
||||||
|
|
||||||
|
1. W związku z przetwarzaniem Twoich danych przysługują Ci następujące prawa:
|
||||||
|
- dostępu do treści swoich danych oraz
|
||||||
|
- prawo ich sprostowania, usunięcia, ograniczenia przetwarzania,
|
||||||
|
- prawo do przenoszenia danych,
|
||||||
|
- prawo wniesienia sprzeciwu,
|
||||||
|
- prawo do cofnięcia zgody na ich przetwarzanie w dowolnym momencie i w dowolnej formie, chyba że przetwarzanie Twoich danych odbywa się w celu wykonywania umowy przez Administratora, w celu wywiązania się przez Administratora z obowiązków prawnych względem instytucji państwowych lub w celu realizacji prawnie uzasadnionych interesów Administratora.
|
||||||
|
|
||||||
|
2. Masz także prawo wniesienia skargi do Prezesa Urzędu Ochrony Danych Osobowych (na adres Urzędu Ochrony Danych Osobowych, ul. Stawki 2, 00-193 Warszawa).
|
||||||
|
3. Więcej informacji w przedmiocie ochrony danych osobowych możesz otrzymać na stronie internetowej Urzędu Ochrony Danych Osobowych: www.uodo.gov.pl.
|
||||||
|
|
||||||
|
## §7. Pliki cookies.
|
||||||
|
|
||||||
|
1. Pliki cookies (tzw. „ciasteczka”) stanowią dane informatyczne, w szczególności pliki tekstowe, które przechowywane są w urządzeniu końcowym, czyli Twoim komputerze, laptopie lub smartfonie, w zależności jakiego urządzenia używasz do oglądania Strony. Cookies zazwyczaj zawierają nazwę strony internetowej, z której pochodzą, czas przechowywania ich na urządzeniu końcowym oraz unikalny numer. Sam możesz zadecydować o formie wykorzystania cookies – ustawienia te są dostępne w każdej przeglądarce internetowej.
|
||||||
|
2. Pliki cookies służą przede wszystkim Twojej wygodzie – dzięki ich użyciu, znacznie skraca się czas ładowania strony podczas kolejnych odwiedzin.
|
||||||
|
3. Cechy plików cookies:
|
||||||
|
-dostosowują zawartość stron internetowych serwisu do Użytkownika. Optymalizują poruszanie Użytkownika na stronie, w szczególności pliki te pozwalają rozpoznać urządzenie, za pomocą, którego wyświetlana jest strona i tak ustawić jej parametry, by nawigacja nie sprawiała problemów i zoptymalizowana pod względem indywidualnych potrzeb Użytkownika.
|
||||||
|
- pozwalają wyświetlić stronę internetową, dostosowaną do Twoich indywidualnych potrzeb;
|
||||||
|
- tworzą statystyki, dzięki którym Administrator wie, które treści cieszą się zainteresowaniem Użytkowników. Pozwala to na ciągłe ulepszanie strony i taką konstrukcję treści, która będzie odpowiadała osobom odwiedzającym stronę.
|
||||||
|
- pozwalają na wielokrotne wykorzystanie opcji logowania przez Użytkownika, co jest dla Ciebie dużo wygodniejsze, gdyż podczas przemieszczania się po stronie i wielokrotnych odwiedzin nie jesteś zmuszony do każdorazowego wpisywania loginu i hasła.
|
||||||
|
4. W ramach Strony stosowane są dwa zasadnicze rodzaje plików cookies: „sesyjne” (session cookies) oraz „stałe” (persistent cookies). Cookies „sesyjne” są plikami tymczasowymi, które przechowywane są w urządzeniu końcowym Użytkownika do czasu wylogowania, opuszczenia strony internetowej lub wyłączenia oprogramowania (przeglądarki internetowej). „Stałe” pliki cookies przechowywane są w urządzeniu końcowym Użytkownika przez czas określony w parametrach plików cookies lub do czasu ich usunięcia przez Użytkownika.
|
||||||
|
5. Użytkownik może w każdym momencie usunąć pliki cookies.
|
||||||
|
6. Wprowadzone przez użytkownika ograniczenia stosowania plików cookies mogą wpłynąć na niektóre funkcjonalności Strony, znacznie utrudniając swobodne korzystanie ze wszystkich jego opcji.
|
||||||
|
7. Pliki cookies są zamieszczane w urządzeniu końcowym Użytkownika i wykorzystywane mogą być również przez współpracujących z operatorem Strony reklamodawców oraz innych partnerów. Użytkownik jednakże w każdej chwili może je usunąć.
|
||||||
|
8. Jeżeli masz wątpliwości, co do ustawień plików cookies, skontaktuj się z operatorem swojej przeglądarki internetowej.
|
||||||
|
9. Jeżeli nie zgadzasz się na wykorzystywanie cookies przez Stronę, opuść ją lub aktywuj odpowiednie ustawienia w swojej przeglądarce internetowej.
|
||||||
11
src/content/site/cookie.yaml
Normal file
11
src/content/site/cookie.yaml
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
enabled: true
|
||||||
|
|
||||||
|
text:
|
||||||
|
message: "Ta strona korzysta z ciasteczek aby świadczyć usługi na najwyższym poziomie. Dalsze korzystanie ze strony oznacza, że zgadzasz się na ich użycie."
|
||||||
|
more: "Dowiedz się więcej"
|
||||||
|
accept: "Akceptuję"
|
||||||
|
reject: "Odrzucam"
|
||||||
|
|
||||||
|
links:
|
||||||
|
privacy: "/polityka-prywatnosci"
|
||||||
|
|
||||||
51
src/islands/Cookie.jsx
Normal file
51
src/islands/Cookie.jsx
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
import { useEffect, useState } from "preact/hooks";
|
||||||
|
import "../styles/cookie.css";
|
||||||
|
|
||||||
|
export default function Cookie({ config }) {
|
||||||
|
const [visible, setVisible] = useState(false);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
const consent = localStorage.getItem("cookie-consent");
|
||||||
|
|
||||||
|
// Jeśli brak zgody – pokaż po 150ms (animacja)
|
||||||
|
if (!consent) {
|
||||||
|
setTimeout(() => setVisible(true), 150);
|
||||||
|
}
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
const handle = (value) => {
|
||||||
|
localStorage.setItem("cookie-consent", value);
|
||||||
|
setVisible(false);
|
||||||
|
};
|
||||||
|
|
||||||
|
if (!config?.enabled) return null;
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div
|
||||||
|
id="cookie-banner"
|
||||||
|
style={{
|
||||||
|
transform: visible ? "translateY(0)" : "translateY(100%)",
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<div class="cookie-panel-inner max-w-4xl mx-auto flex flex-col md:flex-row items-start md:items-center justify-between gap-4">
|
||||||
|
|
||||||
|
<p class="text-sm leading-snug">
|
||||||
|
{config.text.message}
|
||||||
|
<a href={config.links.privacy} class="cookie-privacy-link ml-1">
|
||||||
|
{config.text.more}
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div class="flex gap-3 shrink-0">
|
||||||
|
<button onClick={() => handle("accepted")} class="cookie-accept">
|
||||||
|
{config.text.accept}
|
||||||
|
</button>
|
||||||
|
<button onClick={() => handle("rejected")} class="cookie-reject">
|
||||||
|
{config.text.reject}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -1,10 +1,15 @@
|
|||||||
---
|
---
|
||||||
|
import yaml from "yaml";
|
||||||
import "../styles/base.css";
|
import "../styles/base.css";
|
||||||
import BaseHead from "./BaseHead.astro";
|
import BaseHead from "./BaseHead.astro";
|
||||||
import Header from "../components/layout/Header.astro";
|
import Header from "../components/layout/Header.astro";
|
||||||
import Footer from "../components/layout/Footer.astro";
|
import Footer from "../components/layout/Footer.astro";
|
||||||
import ThemeToggle from "../islands/ThemeToggle.jsx";
|
import ThemeToggle from "../islands/ThemeToggle.jsx";
|
||||||
|
import Cookie from "../islands/Cookie.jsx";
|
||||||
|
|
||||||
|
|
||||||
|
import rawCookie from "../content/site/cookie.yaml?raw";
|
||||||
|
const cookieCfg = yaml.parse(rawCookie);
|
||||||
const { seo } = Astro.props;
|
const { seo } = Astro.props;
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -18,6 +23,7 @@ const { seo } = Astro.props;
|
|||||||
|
|
||||||
<main class="flex-1">
|
<main class="flex-1">
|
||||||
<slot />
|
<slot />
|
||||||
|
<Cookie client:load config={cookieCfg} />
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<Footer />
|
<Footer />
|
||||||
|
|||||||
21
src/pages/polityka-prywatnosci/index.astro
Normal file
21
src/pages/polityka-prywatnosci/index.astro
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
---
|
||||||
|
import yaml from "js-yaml";
|
||||||
|
import fs from "fs";
|
||||||
|
import DefaultLayout from "../../layouts/DefaultLayout.astro";
|
||||||
|
import Markdown from "../../islands/Markdown.jsx";
|
||||||
|
|
||||||
|
const privacy = yaml.load(
|
||||||
|
fs.readFileSync("./src/content/polityka-prywatnosci/privacy.yaml", "utf8"),
|
||||||
|
);
|
||||||
|
---
|
||||||
|
|
||||||
|
<DefaultLayout title={privacy.title}>
|
||||||
|
<section class="fuz-section">
|
||||||
|
<div class="fuz-section-grid">
|
||||||
|
<h1 class="text-3xl font-bold">
|
||||||
|
{privacy.title}
|
||||||
|
</h1>
|
||||||
|
<Markdown text={privacy.content} />
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</DefaultLayout>
|
||||||
50
src/styles/cookie.css
Normal file
50
src/styles/cookie.css
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
#cookie-banner {
|
||||||
|
position: fixed;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
transform: translateY(100%);
|
||||||
|
transition: transform 0.4s ease;
|
||||||
|
/* z-index: 9999; */
|
||||||
|
|
||||||
|
background: var(--fuz-bg-invert);
|
||||||
|
color: var(--fuz-text-invert);
|
||||||
|
border-top: 1px solid rgba(0,0,0,0.1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.cookie-panel-inner {
|
||||||
|
padding: 1rem 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cookie-privacy-link {
|
||||||
|
color: var(--fuz-link);
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cookie-privacy-link:hover {
|
||||||
|
color: var(--fuz-link-hover);
|
||||||
|
}
|
||||||
|
|
||||||
|
.cookie-accept,
|
||||||
|
.cookie-reject {
|
||||||
|
@apply px-4 py-2 rounded-md text-sm font-medium;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cookie-accept {
|
||||||
|
background: var(--btn-bg-invert);
|
||||||
|
color: var(--btn-text-invert);
|
||||||
|
}
|
||||||
|
|
||||||
|
.cookie-accept:hover {
|
||||||
|
background: var(--fuz-accent-hover);
|
||||||
|
}
|
||||||
|
|
||||||
|
.cookie-reject {
|
||||||
|
background: transparent;
|
||||||
|
border: 1px solid var(--btn-outline-invert);
|
||||||
|
color: var(--btn-outline-invert);
|
||||||
|
}
|
||||||
|
|
||||||
|
.cookie-reject:hover {
|
||||||
|
background: var(--btn-outline-bg-invert);
|
||||||
|
}
|
||||||
@@ -2,6 +2,14 @@
|
|||||||
--fuz-bg: #ffffff;
|
--fuz-bg: #ffffff;
|
||||||
--fuz-text: #0d0d0d;
|
--fuz-text: #0d0d0d;
|
||||||
|
|
||||||
|
/* Invert Color */
|
||||||
|
--fuz-bg-invert: #0d1117;
|
||||||
|
--fuz-text-invert: #e6edf3;
|
||||||
|
--btn-bg-invert: #58a6ff;
|
||||||
|
--btn-text-invert: #0d1117;
|
||||||
|
--btn-outline-invert: #58a6ff;
|
||||||
|
--btn-outline-bg-invert: rgba(88, 166, 255, 0.15);
|
||||||
|
|
||||||
/* Links */
|
/* Links */
|
||||||
--fuz-link: #0050c8;
|
--fuz-link: #0050c8;
|
||||||
--fuz-link-hover: #003f9a;
|
--fuz-link-hover: #003f9a;
|
||||||
@@ -27,6 +35,13 @@
|
|||||||
--fuz-bg: #0d1117;
|
--fuz-bg: #0d1117;
|
||||||
--fuz-text: #e6edf3;
|
--fuz-text: #e6edf3;
|
||||||
|
|
||||||
|
/* Invert Color */
|
||||||
|
--fuz-bg-invert: #ffffff;
|
||||||
|
--fuz-text-invert: #0d0d0d;
|
||||||
|
--btn-bg-invert: #0066ff;
|
||||||
|
--btn-text-invert: #ffffff;
|
||||||
|
--btn-outline-invert: #0066ff;
|
||||||
|
|
||||||
/* Links (GitHub Dark palette) */
|
/* Links (GitHub Dark palette) */
|
||||||
--fuz-link: #58a6ff;
|
--fuz-link: #58a6ff;
|
||||||
--fuz-link-hover: #79b7ff;
|
--fuz-link-hover: #79b7ff;
|
||||||
|
|||||||
Reference in New Issue
Block a user