feat(frontend): pagini Termeni, Confidențialitate/GDPR și Contact
Activează linkurile din footer-ul landing-ului către pagini reale, în stilul paginilor statice din autopass. - Componentă comună LegalPage.vue: același antet (brand + selector de temă), footer și paletă (8 teme) ca landing-ul, cu slot "prose" - Logica temei extrasă în composable useLandingTheme (partajat de landing și paginile legale, persistat în localStorage) - Rute publice /termeni, /confidentialitate, /contact (fullBleed) - Footer-ul (landing + pagini) trimite acum la aceste rute Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
76
frontend/src/views/Confidentialitate.vue
Normal file
76
frontend/src/views/Confidentialitate.vue
Normal file
@@ -0,0 +1,76 @@
|
||||
<template>
|
||||
<LegalPage title="Politica de confidențialitate / GDPR" subtitle="Ultima actualizare: 10 iulie 2026">
|
||||
<h2>1. Cine prelucrează datele</h2>
|
||||
<p>
|
||||
Operatorul datelor este <strong>ROMFAST</strong>, furnizorul serviciului ROA Space.
|
||||
Ne poți contacta oricând la <a href="mailto:contact@romfast.ro">contact@romfast.ro</a>.
|
||||
</p>
|
||||
|
||||
<h2>2. Ce date prelucrăm și de ce</h2>
|
||||
<table>
|
||||
<thead><tr><th>Date</th><th>Scop</th><th>Temei</th></tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Date de cont: nume, email, parolă (stocată ca hash)</td>
|
||||
<td>Crearea și administrarea contului</td>
|
||||
<td>Executarea contractului</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Rezervări: spațiu, interval orar, titlu/descriere</td>
|
||||
<td>Gestionarea rezervărilor și evitarea suprapunerilor</td>
|
||||
<td>Executarea contractului</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Rezervări ca oaspete: nume și email introduse la rezervare</td>
|
||||
<td>Identificarea cererii și confirmarea rezervării</td>
|
||||
<td>Interes legitim / executarea contractului</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Jurnal tehnic (autentificări, acțiuni administrative)</td>
|
||||
<td>Securitate, suport, dovada acțiunilor</td>
|
||||
<td>Interes legitim</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>Nu colectăm date suplimentare față de cele necesare funcționării rezervărilor și nu folosim datele în scop de marketing.</p>
|
||||
|
||||
<h2>3. Cui le transmitem</h2>
|
||||
<p>
|
||||
Dacă activezi sincronizarea cu <strong>Google Calendar</strong>, evenimentele rezervărilor tale
|
||||
sunt transmise contului tău Google, la cererea ta. În rest nu vindem și nu cedăm datele către alte părți.
|
||||
</p>
|
||||
|
||||
<h2>4. Cât le păstrăm</h2>
|
||||
<ul>
|
||||
<li>Datele de cont se păstrează cât timp contul este activ.</li>
|
||||
<li>Poți șterge rezervările din aplicație; le poți solicita ștergerea completă oricând.</li>
|
||||
<li>La ștergerea contului, datele asociate sunt eliminate, cu excepția celor cerute de lege.</li>
|
||||
</ul>
|
||||
|
||||
<h2>5. Cum le protejăm</h2>
|
||||
<ul>
|
||||
<li>Parolele se stochează doar ca hash, niciodată în clar.</li>
|
||||
<li>Accesul la date este separat pe roluri și pe proprietăți: nu vezi datele la care nu ai drept.</li>
|
||||
<li>Conexiunile către serviciu sunt criptate (HTTPS).</li>
|
||||
</ul>
|
||||
|
||||
<h2>6. Drepturile tale</h2>
|
||||
<p>
|
||||
Conform GDPR ai dreptul de acces, rectificare, ștergere, restricționare, portabilitate și opoziție,
|
||||
precum și dreptul de a depune o plângere la ANSPDCP
|
||||
(<a href="https://www.dataprotection.ro" target="_blank" rel="noopener">dataprotection.ro</a>).
|
||||
Pentru exercitarea drepturilor scrie-ne la <a href="mailto:contact@romfast.ro">contact@romfast.ro</a> —
|
||||
răspundem în cel mult 30 de zile.
|
||||
</p>
|
||||
|
||||
<h2>7. Cookies</h2>
|
||||
<p>
|
||||
Folosim doar cookie-uri și stocare locală strict necesare (sesiunea de autentificare și preferințe
|
||||
precum tema aleasă). Nu folosim cookie-uri de tracking sau de marketing.
|
||||
</p>
|
||||
</LegalPage>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import LegalPage from '@/components/LegalPage.vue'
|
||||
</script>
|
||||
30
frontend/src/views/Contact.vue
Normal file
30
frontend/src/views/Contact.vue
Normal file
@@ -0,0 +1,30 @@
|
||||
<template>
|
||||
<LegalPage title="Contact" subtitle="Suntem aici pentru orice întrebare despre ROA Space.">
|
||||
<p>
|
||||
<strong>ROA Space</strong> este un serviciu operat de <strong>ROMFAST</strong>, din Constanța, din 1991.
|
||||
Scrie-ne și îți răspundem cât putem de repede.
|
||||
</p>
|
||||
|
||||
<h2>Email</h2>
|
||||
<p><a href="mailto:contact@romfast.ro">contact@romfast.ro</a> — pentru suport, întrebări și solicitări GDPR.</p>
|
||||
|
||||
<h2>Web</h2>
|
||||
<p><a href="https://romfast.ro" target="_blank" rel="noopener">romfast.ro</a> — despre ROMFAST și celelalte servicii.</p>
|
||||
|
||||
<h2>Ai deja cont?</h2>
|
||||
<p>
|
||||
Poți intra direct în aplicație la <router-link to="/login">Autentificare</router-link>
|
||||
sau îți creezi unul gratuit la <router-link to="/register">Creează cont</router-link>.
|
||||
</p>
|
||||
|
||||
<h2>Documente</h2>
|
||||
<p>
|
||||
<router-link to="/termeni">Termeni și condiții</router-link> ·
|
||||
<router-link to="/confidentialitate">Confidențialitate / GDPR</router-link>
|
||||
</p>
|
||||
</LegalPage>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import LegalPage from '@/components/LegalPage.vue'
|
||||
</script>
|
||||
@@ -172,9 +172,9 @@
|
||||
<div class="footer-inner">
|
||||
<span class="footer-copy">© 2026 ROMFAST · Constanța, din 1991</span>
|
||||
<nav class="footer-links">
|
||||
<a href="#">Termeni</a>
|
||||
<a href="#">Confidențialitate / GDPR</a>
|
||||
<a href="#">Contact</a>
|
||||
<router-link to="/termeni">Termeni</router-link>
|
||||
<router-link to="/confidentialitate">Confidențialitate / GDPR</router-link>
|
||||
<router-link to="/contact">Contact</router-link>
|
||||
<a href="https://romfast.ro" target="_blank" rel="noopener">romfast.ro</a>
|
||||
</nav>
|
||||
</div>
|
||||
@@ -185,40 +185,11 @@
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref, computed } from 'vue'
|
||||
import { useLandingTheme } from '@/composables/useLandingTheme'
|
||||
|
||||
const ctaText = 'Creează cont gratuit'
|
||||
|
||||
/* Theme selector — same 8 themes and cycle order as the ROA app / autopass landing. */
|
||||
const THEMES: [string, string][] = [
|
||||
['light', 'Light'],
|
||||
['dark', 'Dark'],
|
||||
['petrol', 'Petrol'],
|
||||
['grafit', 'Grafit'],
|
||||
['cobalt', 'Cobalt'],
|
||||
['cupru', 'Cupru'],
|
||||
['hartie', 'Hârtie'],
|
||||
['auto', 'Auto']
|
||||
]
|
||||
const THEME_KEY = 'roa-landing-theme'
|
||||
const VALID = new Set(THEMES.map((t) => t[0]))
|
||||
|
||||
function resolve(id: string): string {
|
||||
if (id === 'auto') {
|
||||
return window.matchMedia('(prefers-color-scheme: light)').matches ? 'light' : 'dark'
|
||||
}
|
||||
return id
|
||||
}
|
||||
|
||||
const stored = localStorage.getItem(THEME_KEY)
|
||||
const themeId = ref(stored && VALID.has(stored) ? stored : 'grafit')
|
||||
const theme = computed(() => resolve(themeId.value))
|
||||
const themeLabel = computed(() => THEMES.find((t) => t[0] === themeId.value)?.[1] ?? 'Grafit')
|
||||
|
||||
function cycleTheme() {
|
||||
const idx = THEMES.findIndex((t) => t[0] === themeId.value)
|
||||
themeId.value = THEMES[(idx + 1) % THEMES.length][0]
|
||||
localStorage.setItem(THEME_KEY, themeId.value)
|
||||
}
|
||||
const { theme, themeLabel, cycleTheme } = useLandingTheme()
|
||||
|
||||
interface Slot {
|
||||
time: string
|
||||
|
||||
60
frontend/src/views/Termeni.vue
Normal file
60
frontend/src/views/Termeni.vue
Normal file
@@ -0,0 +1,60 @@
|
||||
<template>
|
||||
<LegalPage title="Termeni și condiții" subtitle="Ultima actualizare: 10 iulie 2026">
|
||||
<h2>1. Serviciul</h2>
|
||||
<p>
|
||||
<strong>ROA Space</strong> este un serviciu operat de <strong>ROMFAST</strong> care te ajută să
|
||||
administrezi și să rezervi spații — birouri, săli de ședință, open space-uri sau hub-uri — și să
|
||||
vezi în timp real ce este liber și ce este ocupat.
|
||||
</p>
|
||||
<p>
|
||||
Serviciul este un instrument de organizare a rezervărilor: nu garantează accesul fizic în spații
|
||||
și nu înlocuiește regulile interne ale organizației care le pune la dispoziție.
|
||||
</p>
|
||||
|
||||
<h2>2. Contul</h2>
|
||||
<ul>
|
||||
<li>Contul se creează gratuit, pe baza unui email și a unei parole.</li>
|
||||
<li>Primul cont înregistrat pe o instanță devine administrator (proprietarul instanței).</li>
|
||||
<li>Ești responsabil de confidențialitatea parolei și de activitatea desfășurată din contul tău.</li>
|
||||
</ul>
|
||||
|
||||
<h2>3. Rezervări</h2>
|
||||
<ul>
|
||||
<li>O rezervare validă ocupă un interval; sistemul nu permite suprapuneri pe același spațiu.</li>
|
||||
<li>Spațiile pot fi <strong>publice</strong> (rezervabile și fără cont, ca oaspete) sau <strong>private</strong>.</li>
|
||||
<li>Administratorul spațiului poate cere aprobarea manuală a fiecărei cereri de rezervare.</li>
|
||||
</ul>
|
||||
|
||||
<h2>4. Ce garantăm și ce nu</h2>
|
||||
<ul>
|
||||
<li>Depunem eforturi rezonabile ca serviciul să fie disponibil, dar nu garantăm funcționarea neîntreruptă.</li>
|
||||
<li>Nu răspundem pentru neînțelegeri privind utilizarea efectivă a spațiilor rezervate.</li>
|
||||
<li>Răspunderea ROMFAST este limitată la contravaloarea eventualului abonament plătit pe ultimele 3 luni.</li>
|
||||
</ul>
|
||||
|
||||
<h2>5. Utilizare acceptabilă</h2>
|
||||
<p>
|
||||
Este interzisă folosirea serviciului pentru a bloca abuziv spații, pentru a rezerva în numele altor
|
||||
persoane fără acordul lor sau în orice mod care afectează funcționarea platformei. Conturile care
|
||||
încalcă aceste reguli pot fi suspendate.
|
||||
</p>
|
||||
|
||||
<h2>6. Datele tale</h2>
|
||||
<p>
|
||||
Prelucrarea datelor cu caracter personal este descrisă în
|
||||
<router-link to="/confidentialitate">Politica de confidențialitate / GDPR</router-link>.
|
||||
Pe scurt: reținem doar strictul necesar pentru funcționarea rezervărilor.
|
||||
</p>
|
||||
|
||||
<h2>7. Contact</h2>
|
||||
<p>
|
||||
Pentru orice întrebare legată de acești termeni:
|
||||
<a href="mailto:contact@romfast.ro">contact@romfast.ro</a> sau pagina de
|
||||
<router-link to="/contact">Contact</router-link>.
|
||||
</p>
|
||||
</LegalPage>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import LegalPage from '@/components/LegalPage.vue'
|
||||
</script>
|
||||
Reference in New Issue
Block a user