Fix all the styling issues in all the files
This commit is contained in:
parent
5aa97e162d
commit
9124edc3f2
|
|
@ -16,6 +16,8 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rules": {
|
"rules": {
|
||||||
|
"react/jsx-uses-react": "error",
|
||||||
|
"react/jsx-uses-vars": "error",
|
||||||
"indent": [
|
"indent": [
|
||||||
"error",
|
"error",
|
||||||
4
|
4
|
||||||
|
|
|
||||||
|
|
@ -11,11 +11,11 @@ import {
|
||||||
NavLink
|
NavLink
|
||||||
} from 'reactstrap';
|
} from 'reactstrap';
|
||||||
|
|
||||||
import { connect } from 'react-redux'
|
import { connect } from 'react-redux';
|
||||||
|
|
||||||
import React from "react";
|
import React from 'react';
|
||||||
|
|
||||||
import { logout } from './api'
|
import { logout } from './api';
|
||||||
|
|
||||||
export function BigImage(props) {
|
export function BigImage(props) {
|
||||||
return (
|
return (
|
||||||
|
|
@ -77,7 +77,7 @@ function Betabadge() {
|
||||||
class InvisibleLoginLogoutButtons extends React.Component {
|
class InvisibleLoginLogoutButtons extends React.Component {
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { isSignedIn, username } = this.props
|
const { isSignedIn, username } = this.props;
|
||||||
|
|
||||||
if(isSignedIn) {
|
if(isSignedIn) {
|
||||||
return (
|
return (
|
||||||
|
|
@ -100,12 +100,12 @@ class InvisibleLoginLogoutButtons extends React.Component {
|
||||||
|
|
||||||
const mapStateToLoginLogoutButtonProperties = (state) => {
|
const mapStateToLoginLogoutButtonProperties = (state) => {
|
||||||
const { isSignedIn, username } = state.userinfo;
|
const { isSignedIn, username } = state.userinfo;
|
||||||
return { isSignedIn, username }
|
return { isSignedIn, username };
|
||||||
}
|
};
|
||||||
|
|
||||||
const LoginLogoutButtons = connect(
|
const LoginLogoutButtons = connect(
|
||||||
mapStateToLoginLogoutButtonProperties
|
mapStateToLoginLogoutButtonProperties
|
||||||
)(InvisibleLoginLogoutButtons)
|
)(InvisibleLoginLogoutButtons);
|
||||||
|
|
||||||
export function Footer() {
|
export function Footer() {
|
||||||
return (
|
return (
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import React from "react";
|
import React from 'react';
|
||||||
import {Alert, Button, Input, InputGroup, InputGroupAddon} from "reactstrap";
|
import { Alert, Button, Input, InputGroup, InputGroupAddon } from 'reactstrap';
|
||||||
|
|
||||||
export default class EditableStringList extends React.Component {
|
export default class EditableStringList extends React.Component {
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
|
|
@ -31,17 +31,14 @@ export default class EditableStringList extends React.Component {
|
||||||
if ((typeof this.state.entries !== 'undefined') && this.state.entries.length > 0) {
|
if ((typeof this.state.entries !== 'undefined') && this.state.entries.length > 0) {
|
||||||
return (
|
return (
|
||||||
<div className="bg-light p-3 text-secondary font-italic">
|
<div className="bg-light p-3 text-secondary font-italic">
|
||||||
<StringInput submit={this.add} placeholder={this.props.inputPlaceholder}
|
<StringInput submit={this.add} placeholder={this.props.inputPlaceholder} addButtonText={this.props.addButtonText}/>
|
||||||
addButtonText={this.props.addButtonText}/>
|
{this.state.entries.map((text) => <Item text={text} key={text} removeItem={this.remove}/>)}
|
||||||
{this.state.entries.map((text) => <Item text={text} key={text}
|
|
||||||
removeItem={this.remove}/>)}
|
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
return (
|
return (
|
||||||
<div className="bg-light p-3 text-secondary text-center font-italic">
|
<div className="bg-light p-3 text-secondary text-center font-italic">
|
||||||
<StringInput submit={this.add} placeholder={this.props.inputPlaceholder}
|
<StringInput submit={this.add} placeholder={this.props.inputPlaceholder} addButtonText={this.props.addButtonText}/>
|
||||||
addButtonText={this.props.addButtonText}/>
|
|
||||||
{this.props.placeholder}
|
{this.props.placeholder}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|
@ -64,8 +61,7 @@ class StringInput extends React.Component {
|
||||||
render() {
|
render() {
|
||||||
return (
|
return (
|
||||||
<InputGroup className="mb-3">
|
<InputGroup className="mb-3">
|
||||||
<Input placeholder={this.props.placeholder} type="text" size="255" value={this.state.value} required
|
<Input placeholder={this.props.placeholder} type="text" size="255" value={this.state.value} required onChange={this.handleChange} onKeyPress={(e) => {
|
||||||
onChange={this.handleChange} onKeyPress={(e) => {
|
|
||||||
if (e.key === 'Enter') {
|
if (e.key === 'Enter') {
|
||||||
this.submit();
|
this.submit();
|
||||||
return false;
|
return false;
|
||||||
|
|
@ -73,10 +69,10 @@ class StringInput extends React.Component {
|
||||||
}}/>
|
}}/>
|
||||||
<InputGroupAddon addonType="append">
|
<InputGroupAddon addonType="append">
|
||||||
<Button color="success" outline={true}
|
<Button color="success" outline={true}
|
||||||
onClick={(e) => this.submit()}>{this.props.addButtonText}</Button>
|
onClick={() => this.submit()}>{this.props.addButtonText}</Button>
|
||||||
</InputGroupAddon>
|
</InputGroupAddon>
|
||||||
</InputGroup>
|
</InputGroup>
|
||||||
)
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
submit() {
|
submit() {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import React from "react";
|
import React from 'react';
|
||||||
|
|
||||||
export function BigImage(props) {
|
export function BigImage(props) {
|
||||||
return (
|
return (
|
||||||
|
|
|
||||||
|
|
@ -7,5 +7,5 @@ export const errorMessages = {
|
||||||
login_errorunknown : {
|
login_errorunknown : {
|
||||||
en : 'An unknown error prevented a successful login.'
|
en : 'An unknown error prevented a successful login.'
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,20 +1,20 @@
|
||||||
import React from 'react'
|
import React from 'react';
|
||||||
import { initializeStore } from '../api'
|
import { initializeStore } from '../api';
|
||||||
|
|
||||||
const isServer = typeof window === 'undefined'
|
const isServer = typeof window === 'undefined';
|
||||||
const __NEXT_REDUX_STORE__ = '__NEXT_REDUX_STORE__'
|
const __NEXT_REDUX_STORE__ = '__NEXT_REDUX_STORE__';
|
||||||
|
|
||||||
function getOrCreateStore (initialState) {
|
function getOrCreateStore (initialState) {
|
||||||
// Always make a new store if server, otherwise state is shared between requests
|
// Always make a new store if server, otherwise state is shared between requests
|
||||||
if (isServer) {
|
if (isServer) {
|
||||||
return initializeStore(initialState)
|
return initializeStore(initialState);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create store if unavailable on the client and set it on the window object
|
// Create store if unavailable on the client and set it on the window object
|
||||||
if (!window[__NEXT_REDUX_STORE__]) {
|
if (!window[__NEXT_REDUX_STORE__]) {
|
||||||
window[__NEXT_REDUX_STORE__] = initializeStore(initialState)
|
window[__NEXT_REDUX_STORE__] = initializeStore(initialState);
|
||||||
}
|
}
|
||||||
return window[__NEXT_REDUX_STORE__]
|
return window[__NEXT_REDUX_STORE__];
|
||||||
}
|
}
|
||||||
|
|
||||||
export default (App) => {
|
export default (App) => {
|
||||||
|
|
@ -22,29 +22,29 @@ export default (App) => {
|
||||||
static async getInitialProps (appContext) {
|
static async getInitialProps (appContext) {
|
||||||
// Get or Create the store with `undefined` as initialState
|
// Get or Create the store with `undefined` as initialState
|
||||||
// This allows you to set a custom default initialState
|
// This allows you to set a custom default initialState
|
||||||
const reduxStore = getOrCreateStore()
|
const reduxStore = getOrCreateStore();
|
||||||
|
|
||||||
// Provide the store to getInitialProps of pages
|
// Provide the store to getInitialProps of pages
|
||||||
appContext.ctx.reduxStore = reduxStore
|
appContext.ctx.reduxStore = reduxStore;
|
||||||
|
|
||||||
let appProps = {}
|
let appProps = {};
|
||||||
if (typeof App.getInitialProps === 'function') {
|
if (typeof App.getInitialProps === 'function') {
|
||||||
appProps = await App.getInitialProps(appContext)
|
appProps = await App.getInitialProps(appContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
...appProps,
|
...appProps,
|
||||||
initialReduxState: reduxStore.getState()
|
initialReduxState: reduxStore.getState()
|
||||||
}
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
constructor (props) {
|
constructor (props) {
|
||||||
super(props)
|
super(props);
|
||||||
this.reduxStore = getOrCreateStore(props.initialReduxState)
|
this.reduxStore = getOrCreateStore(props.initialReduxState);
|
||||||
}
|
}
|
||||||
|
|
||||||
render () {
|
render () {
|
||||||
return <App {...this.props} reduxStore={this.reduxStore} />
|
return <App {...this.props} reduxStore={this.reduxStore} />;
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
}
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
|
|
||||||
const withCSS = require('@zeit/next-css')
|
const withCSS = require('@zeit/next-css');
|
||||||
module.exports = withCSS()
|
module.exports = withCSS();
|
||||||
|
|
@ -1,25 +1,25 @@
|
||||||
import App, {Container} from 'next/app'
|
import App, {Container} from 'next/app';
|
||||||
import React from 'react'
|
import React from 'react';
|
||||||
import { Provider } from 'react-redux'
|
import { Provider } from 'react-redux';
|
||||||
import withReduxStore from '../js/redux/reduxStoreBinder'
|
import withReduxStore from '../js/redux/reduxStoreBinder';
|
||||||
import { verifyCredentials } from '../js/api'
|
import { verifyCredentials } from '../js/api';
|
||||||
|
|
||||||
class TurniereApp extends App {
|
class TurniereApp extends App {
|
||||||
|
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
verifyCredentials();
|
verifyCredentials();
|
||||||
}
|
}
|
||||||
|
|
||||||
render () {
|
render () {
|
||||||
const {Component, pageProps, reduxStore} = this.props
|
const {Component, pageProps, reduxStore} = this.props;
|
||||||
return (
|
return (
|
||||||
<Container>
|
<Container>
|
||||||
<Provider store={reduxStore}>
|
<Provider store={reduxStore}>
|
||||||
<Component {...pageProps} />
|
<Component {...pageProps} />
|
||||||
</Provider>
|
</Provider>
|
||||||
</Container>
|
</Container>
|
||||||
)
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export default withReduxStore(TurniereApp)
|
export default withReduxStore(TurniereApp);
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,15 @@
|
||||||
import Head from 'next/head'
|
import Head from 'next/head';
|
||||||
import React from 'react'
|
import React from 'react';
|
||||||
import {Footer, TurniereNavigation} from "../js/CommonComponents";
|
import {Footer, TurniereNavigation} from '../js/CommonComponents';
|
||||||
import 'bootstrap/dist/css/bootstrap.min.css';
|
import 'bootstrap/dist/css/bootstrap.min.css';
|
||||||
import {Container} from "reactstrap";
|
import {Container} from 'reactstrap';
|
||||||
import '../static/everypage.css'
|
import '../static/everypage.css';
|
||||||
import '../static/css/error.css'
|
import '../static/css/error.css';
|
||||||
|
|
||||||
export default class Error extends React.Component {
|
export default class Error extends React.Component {
|
||||||
static getInitialProps({ res, err }) {
|
static getInitialProps({ res, err }) {
|
||||||
const statusCode = res ? res.statusCode : err ? err.statusCode : 400;
|
const statusCode = res ? res.statusCode : err ? err.statusCode : 400;
|
||||||
return { statusCode }
|
return { statusCode };
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
|
|
@ -22,7 +22,7 @@ export default class Error extends React.Component {
|
||||||
<ErrorPage statusCode={this.props.statusCode}/>
|
<ErrorPage statusCode={this.props.statusCode}/>
|
||||||
<Footer/>
|
<Footer/>
|
||||||
</div>
|
</div>
|
||||||
)
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -44,43 +44,43 @@ function ErrorPage(props){
|
||||||
|
|
||||||
function ErrorMessage(props) {
|
function ErrorMessage(props) {
|
||||||
switch (props.code) {
|
switch (props.code) {
|
||||||
case 400:
|
case 400:
|
||||||
return (<div className="running-text">
|
return (<div className="running-text">
|
||||||
<h2>Deine Anfrage ist fehlerhaft.</h2>
|
<h2>Deine Anfrage ist fehlerhaft.</h2>
|
||||||
<p>
|
<p>
|
||||||
Wir empfehlen, die eingegebene Seite über die <a href="/">Startseite</a> zu suchen.
|
Wir empfehlen, die eingegebene Seite über die <a href="/">Startseite</a> zu suchen.
|
||||||
</p>
|
</p>
|
||||||
</div>);
|
</div>);
|
||||||
case 403:
|
case 403:
|
||||||
return (<div className="running-text">
|
return (<div className="running-text">
|
||||||
<h2>Du bist nicht autorisiert, diese Seite aufzurufen.</h2>
|
<h2>Du bist nicht autorisiert, diese Seite aufzurufen.</h2>
|
||||||
<p>
|
<p>
|
||||||
Bitte stelle sicher, dass Du angemeldet bist und auf dieses Turnier oder dieses Match zugreifen darfst.
|
Bitte stelle sicher, dass Du angemeldet bist und auf dieses Turnier oder dieses Match zugreifen darfst.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
Wir empfehlen, die eingegebene Seite über die <a href="/">Startseite</a> zu suchen.
|
Wir empfehlen, die eingegebene Seite über die <a href="/">Startseite</a> zu suchen.
|
||||||
</p>
|
</p>
|
||||||
</div>);
|
</div>);
|
||||||
case 404:
|
case 404:
|
||||||
return (<div className="running-text">
|
return (<div className="running-text">
|
||||||
<h2>Die aufgerufene Seite wurde leider nicht gefunden.</h2>
|
<h2>Die aufgerufene Seite wurde leider nicht gefunden.</h2>
|
||||||
<p>
|
<p>
|
||||||
Entweder hast Du dich vertippt, oder die gesuchte Seite gibt es nicht.
|
Entweder hast Du dich vertippt, oder die gesuchte Seite gibt es nicht.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
Wir empfehlen, die eingegebene Seite über die <a href="/">Startseite</a> zu suchen.
|
Wir empfehlen, die eingegebene Seite über die <a href="/">Startseite</a> zu suchen.
|
||||||
</p>
|
</p>
|
||||||
</div>);
|
</div>);
|
||||||
case 500:
|
case 500:
|
||||||
return (<div className="running-text">
|
return (<div className="running-text">
|
||||||
<h2>Diese Seite funktioniert nicht.</h2>
|
<h2>Diese Seite funktioniert nicht.</h2>
|
||||||
<p>
|
<p>
|
||||||
turnie.re kann Deine Anfrage im Moment nicht verarbeiten. Bitte versuche es später erneut.
|
turnie.re kann Deine Anfrage im Moment nicht verarbeiten. Bitte versuche es später erneut.
|
||||||
</p>
|
</p>
|
||||||
</div>);
|
</div>);
|
||||||
default:
|
default:
|
||||||
return (<div>
|
return (<div>
|
||||||
<h2>Ein unbekannter Fehler ist aufgetreten.</h2>
|
<h2>Ein unbekannter Fehler ist aufgetreten.</h2>
|
||||||
</div>);
|
</div>);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,9 +1,22 @@
|
||||||
import Head from 'next/head'
|
import Head from 'next/head';
|
||||||
import '../static/everypage.css'
|
import '../static/everypage.css';
|
||||||
import {Footer, TurniereNavigation} from "../js/CommonComponents";
|
import { Footer, TurniereNavigation } from '../js/CommonComponents';
|
||||||
import React from "react";
|
import React from 'react';
|
||||||
import {Button, Card, CardBody, Container, CustomInput, Fade, Form, FormGroup, Input, Label} from "reactstrap";
|
|
||||||
import EditableStringList from "../js/EditableStringList";
|
import {
|
||||||
|
Button,
|
||||||
|
Card,
|
||||||
|
CardBody,
|
||||||
|
Container,
|
||||||
|
CustomInput,
|
||||||
|
Fade,
|
||||||
|
Form,
|
||||||
|
FormGroup,
|
||||||
|
Input,
|
||||||
|
Label
|
||||||
|
} from 'reactstrap';
|
||||||
|
|
||||||
|
import EditableStringList from '../js/EditableStringList';
|
||||||
|
|
||||||
export default () => (
|
export default () => (
|
||||||
<div className="main generic-fullpage-bg">
|
<div className="main generic-fullpage-bg">
|
||||||
|
|
@ -16,7 +29,7 @@ export default () => (
|
||||||
</div>
|
</div>
|
||||||
<Footer/>
|
<Footer/>
|
||||||
</div>
|
</div>
|
||||||
)
|
);
|
||||||
|
|
||||||
function CreateTournamentCard() {
|
function CreateTournamentCard() {
|
||||||
return (
|
return (
|
||||||
|
|
@ -53,12 +66,12 @@ class CreateTournamentForm extends React.Component {
|
||||||
</FormGroup>
|
</FormGroup>
|
||||||
<FormGroup>
|
<FormGroup>
|
||||||
<CustomInput type="checkbox" id="public"
|
<CustomInput type="checkbox" id="public"
|
||||||
label="Turnier öffentlich anzeigen (schreibgeschützt)"/>
|
label="Turnier öffentlich anzeigen (schreibgeschützt)"/>
|
||||||
<CustomInput type="checkbox" id="mix-teams" label="Teams mischen"/>
|
<CustomInput type="checkbox" id="mix-teams" label="Teams mischen"/>
|
||||||
<CustomInput type="checkbox" id="group-phase" label="Gruppenphase" onClick={this.toggle}/>
|
<CustomInput type="checkbox" id="group-phase" label="Gruppenphase" onClick={this.toggle}/>
|
||||||
</FormGroup>
|
</FormGroup>
|
||||||
<Fade in={this.state.fadeIn} tag="div" className="mt-3" baseClass="d-none"
|
<Fade in={this.state.fadeIn} tag="div" className="mt-3" baseClass="d-none"
|
||||||
baseClassActive="d-block">
|
baseClassActive="d-block">
|
||||||
<FormGroup>
|
<FormGroup>
|
||||||
<Label for="teams-per-group">Anzahl Teams pro Gruppe</Label>
|
<Label for="teams-per-group">Anzahl Teams pro Gruppe</Label>
|
||||||
<Input type="number" name="teams-per-group" size="255"/>
|
<Input type="number" name="teams-per-group" size="255"/>
|
||||||
|
|
@ -72,7 +85,7 @@ class CreateTournamentForm extends React.Component {
|
||||||
</Form>
|
</Form>
|
||||||
<h3 className="custom-font mt-4">Teams</h3>
|
<h3 className="custom-font mt-4">Teams</h3>
|
||||||
<EditableStringList addButtonText="hinzufügen" placeholder="Keine Teams hinzugefügt!" entries={[]}
|
<EditableStringList addButtonText="hinzufügen" placeholder="Keine Teams hinzugefügt!" entries={[]}
|
||||||
onChange={this.teamListUpdate} inputPlaceholder="Teamname"/>
|
onChange={this.teamListUpdate} inputPlaceholder="Teamname"/>
|
||||||
<Button color="success" size="lg" className="w-100 shadow-sm mt-4">Turnier erstellen</Button>
|
<Button color="success" size="lg" className="w-100 shadow-sm mt-4">Turnier erstellen</Button>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|
|
||||||
146
pages/faq.js
146
pages/faq.js
|
|
@ -1,9 +1,9 @@
|
||||||
import Head from 'next/head'
|
import Head from 'next/head';
|
||||||
import React from 'react'
|
import React from 'react';
|
||||||
import {Col, Container, Row} from 'reactstrap';
|
import {Col, Container, Row} from 'reactstrap';
|
||||||
import 'bootstrap/dist/css/bootstrap.min.css';
|
import 'bootstrap/dist/css/bootstrap.min.css';
|
||||||
import {BigImage, Footer, TurniereNavigation} from '../js/CommonComponents.js'
|
import { BigImage, Footer, TurniereNavigation } from '../js/CommonComponents.js';
|
||||||
import '../static/everypage.css'
|
import '../static/everypage.css';
|
||||||
|
|
||||||
function Main() {
|
function Main() {
|
||||||
return (
|
return (
|
||||||
|
|
@ -33,25 +33,28 @@ function GeneralFaq() {
|
||||||
mit allen Leuten teilen kannst, ohne dir Gedanken machen zu müssen, wer gegen wen spielen
|
mit allen Leuten teilen kannst, ohne dir Gedanken machen zu müssen, wer gegen wen spielen
|
||||||
muss. Du trägst ein, wer gewonnen hat, und turnie.re sagt, wer als nächstes spielt.
|
muss. Du trägst ein, wer gewonnen hat, und turnie.re sagt, wer als nächstes spielt.
|
||||||
</p>
|
</p>
|
||||||
</Col><Col sm="4">
|
</Col>
|
||||||
<h4>Für welche Sportarten ist turnie.re geeignet?</h4>
|
<Col sm="4">
|
||||||
<p>
|
<h4>Für welche Sportarten ist turnie.re geeignet?</h4>
|
||||||
turnie.re ist prinzipiell für jede Sportart geeignet. Die einzige Vor­aus­setzung ist, dass
|
<p>
|
||||||
in jedem Spiel zwei Mannschaften oder Spieler gegeinander antreten und dass derjenige mit
|
turnie.re ist prinzipiell für jede Sportart geeignet. Die einzige Vor­aus­setzung ist, dass
|
||||||
den meisten Punkten gewinnt.
|
in jedem Spiel zwei Mannschaften oder Spieler gegeinander antreten und dass derjenige mit
|
||||||
</p>
|
den meisten Punkten gewinnt.
|
||||||
</Col><Col sm="4">
|
</p>
|
||||||
<h4>Für welche Anzahl an Teams ist turnie.re geeignet?</h4>
|
</Col>
|
||||||
<p>
|
<Col sm="4">
|
||||||
turnie.re ist unabhängig von der Anzahl der Teams nutzbar.
|
<h4>Für welche Anzahl an Teams ist turnie.re geeignet?</h4>
|
||||||
</p>
|
<p>
|
||||||
</Col><Col sm="4">
|
turnie.re ist unabhängig von der Anzahl der Teams nutzbar.
|
||||||
<h4>Fallen für die Nutzung von turnie.re Kosten an?</h4>
|
</p>
|
||||||
<p>
|
</Col>
|
||||||
turnie.re ist ein kostenloser Service! Wir erheben keine Kosten und sind nur darauf aus,
|
<Col sm="4">
|
||||||
dein Turnier-Management so einfach wie möglich zu gestalten.
|
<h4>Fallen für die Nutzung von turnie.re Kosten an?</h4>
|
||||||
</p>
|
<p>
|
||||||
</Col>
|
turnie.re ist ein kostenloser Service! Wir erheben keine Kosten und sind nur darauf aus,
|
||||||
|
dein Turnier-Management so einfach wie möglich zu gestalten.
|
||||||
|
</p>
|
||||||
|
</Col>
|
||||||
</Row>
|
</Row>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|
@ -69,40 +72,46 @@ function AccountFaq() {
|
||||||
dich als berechtigt verifizieren können, benötigst du einen Acoount, sodass wir dir die
|
dich als berechtigt verifizieren können, benötigst du einen Acoount, sodass wir dir die
|
||||||
entsprechenden Bearbeitungsrechte zuteilen können.
|
entsprechenden Bearbeitungsrechte zuteilen können.
|
||||||
</p>
|
</p>
|
||||||
</Col><Col sm="4">
|
</Col>
|
||||||
<h4>Welche Daten muss ich bei der Accounterstellung angeben?</h4>
|
<Col sm="4">
|
||||||
<p>
|
<h4>Welche Daten muss ich bei der Accounterstellung angeben?</h4>
|
||||||
Um einen Account anzulegen musst du einen Nutzernamen, eine gültige E-Mailadresse sowie ein
|
<p>
|
||||||
Passwort angeben.
|
Um einen Account anzulegen musst du einen Nutzernamen, eine gültige E-Mailadresse sowie ein
|
||||||
</p>
|
Passwort angeben.
|
||||||
</Col><Col sm="4">
|
</p>
|
||||||
<h4>Wie werden meine Daten verarbeitet?</h4>
|
</Col>
|
||||||
<p>
|
<Col sm="4">
|
||||||
Deine Daten werden in unserer Datenbank gespeichert. Eine Weitergabe dieser Daten an Dritte
|
<h4>Wie werden meine Daten verarbeitet?</h4>
|
||||||
erfolgt nicht!</p>
|
<p>
|
||||||
<p>
|
Deine Daten werden in unserer Datenbank gespeichert. Eine Weitergabe dieser Daten an Dritte
|
||||||
Zusätlich wird dein Passwort verschlüsselt gespeichert, das bedeutet auch wir kennen dein
|
erfolgt nicht!
|
||||||
Passwort nicht und dein Account wird zuverlässig geschützt.
|
</p>
|
||||||
</p>
|
<p>
|
||||||
</Col><Col sm="4">
|
Zusätlich wird dein Passwort verschlüsselt gespeichert, das bedeutet auch wir kennen dein
|
||||||
<h4>Wie kann ich meinen Nutzernamen ändern?</h4>
|
Passwort nicht und dein Account wird zuverlässig geschützt.
|
||||||
<p>
|
</p>
|
||||||
Über deinen Nutzernamen, der in der Kopfzeile angezeigt wird, gelangst du auf deine
|
</Col>
|
||||||
Profilseite. Hier kannst du deinen Nutzernamen ändern.
|
<Col sm="4">
|
||||||
</p>
|
<h4>Wie kann ich meinen Nutzernamen ändern?</h4>
|
||||||
</Col><Col sm="4">
|
<p>
|
||||||
<h4>Wie kann ich meine E-Mailadresse ändern?</h4>
|
Über deinen Nutzernamen, der in der Kopfzeile angezeigt wird, gelangst du auf deine
|
||||||
<p>
|
Profilseite. Hier kannst du deinen Nutzernamen ändern.
|
||||||
Über deinen Nutzernamen, der in der Kopfzeile angezeigt wird, gelangst du auf deine
|
</p>
|
||||||
Profilseite. Hier kannst du deine E-Mailadresse ändern ändern.
|
</Col>
|
||||||
</p>
|
<Col sm="4">
|
||||||
</Col><Col sm="4">
|
<h4>Wie kann ich meine E-Mailadresse ändern?</h4>
|
||||||
<h4>Wie kann ich mein Passwort ändern?</h4>
|
<p>
|
||||||
<p>
|
Über deinen Nutzernamen, der in der Kopfzeile angezeigt wird, gelangst du auf deine
|
||||||
Auf deiner Profilseite findest du einen "Passwort ändern" Button. Auf der sich dann
|
Profilseite. Hier kannst du deine E-Mailadresse ändern ändern.
|
||||||
öffnenden Seite kannst du dein Passwort ändern.
|
</p>
|
||||||
</p>
|
</Col>
|
||||||
</Col>
|
<Col sm="4">
|
||||||
|
<h4>Wie kann ich mein Passwort ändern?</h4>
|
||||||
|
<p>
|
||||||
|
Auf deiner Profilseite findest du einen "Passwort ändern" Button. Auf der sich dann
|
||||||
|
öffnenden Seite kannst du dein Passwort ändern.
|
||||||
|
</p>
|
||||||
|
</Col>
|
||||||
</Row>
|
</Row>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|
@ -121,15 +130,16 @@ function TournamentFaq() {
|
||||||
Über "Turnier erstellen" gelangst du auf die "Turnier erstellen" Seite. Auf dieser kannst du
|
Über "Turnier erstellen" gelangst du auf die "Turnier erstellen" Seite. Auf dieser kannst du
|
||||||
deinem Turnier einen Namen geben und eine (optionale) Beschreibung hinzufügen. Dann kannst
|
deinem Turnier einen Namen geben und eine (optionale) Beschreibung hinzufügen. Dann kannst
|
||||||
du dein Turnier <a href="#public-tournament">öffentlich oder privat</a> erstellen, die Teams
|
du dein Turnier <a href="#public-tournament">öffentlich oder privat</a> erstellen, die Teams
|
||||||
für die Spielpaarungen <a href="#randomize-teams">mischen</a> lassen und eine <a
|
für die Spielpaarungen <a href="#randomize-teams">mischen</a> lassen und eine <a href="#groupstage">Gruppenphase</a>
|
||||||
href="#groupstage">Gruppenphase</a> hinzufügen. Im Feld "Teams" kannst du die
|
hinzufügen. Im Feld "Teams" kannst du die
|
||||||
teilnehmenden <a href="#add-teams">Teams
|
teilnehmenden <a href="#add-teams">Teams
|
||||||
eintragen</a> und hinzufügen. </p>
|
eintragen</a> und hinzufügen. </p>
|
||||||
<p>
|
<p>
|
||||||
Wenn du die Option Gruppenphase aktiviert hast, kannst du zusätzlich noch die Größe der
|
Wenn du die Option Gruppenphase aktiviert hast, kannst du zusätzlich noch die Größe der
|
||||||
Gruppen angeben.
|
Gruppen angeben.
|
||||||
</p>
|
</p>
|
||||||
</Col><Col sm="4">
|
</Col>
|
||||||
|
<Col sm="4">
|
||||||
<h4 id="public-tournament">Was ist der Unterschied zwischen einem öffentlichen und einem
|
<h4 id="public-tournament">Was ist der Unterschied zwischen einem öffentlichen und einem
|
||||||
privaten Turnier?</h4>
|
privaten Turnier?</h4>
|
||||||
<p>
|
<p>
|
||||||
|
|
@ -147,7 +157,8 @@ function TournamentFaq() {
|
||||||
Trotzdem bleibt der Turnierersteller der Einzige, der die Turnierinformationen bearbeiten
|
Trotzdem bleibt der Turnierersteller der Einzige, der die Turnierinformationen bearbeiten
|
||||||
und Spielstände eintragen kann.
|
und Spielstände eintragen kann.
|
||||||
</p>
|
</p>
|
||||||
</Col><Col sm="4">
|
</Col>
|
||||||
|
<Col sm="4">
|
||||||
<h4 id="randomize-teams">Was bedeutet "Teams mischen"?</h4>
|
<h4 id="randomize-teams">Was bedeutet "Teams mischen"?</h4>
|
||||||
<p>
|
<p>
|
||||||
Die Spielpaarungen werden anhand der Eingabereihenfolge der Teams erstellt. So spielt z.B.
|
Die Spielpaarungen werden anhand der Eingabereihenfolge der Teams erstellt. So spielt z.B.
|
||||||
|
|
@ -157,7 +168,8 @@ function TournamentFaq() {
|
||||||
Wenn du das nicht möchtest kannst du die Option "Teams mischen" aktivieren und die
|
Wenn du das nicht möchtest kannst du die Option "Teams mischen" aktivieren und die
|
||||||
Spielpaarungen werden in einer zufälligen Reihenfolge erstellt.
|
Spielpaarungen werden in einer zufälligen Reihenfolge erstellt.
|
||||||
</p>
|
</p>
|
||||||
</Col><Col sm="4">
|
</Col>
|
||||||
|
<Col sm="4">
|
||||||
<h4 id="groupstage">Was passiert wenn ich die Gruppenphase aktiviere?</h4>
|
<h4 id="groupstage">Was passiert wenn ich die Gruppenphase aktiviere?</h4>
|
||||||
<p>
|
<p>
|
||||||
Grundsätzlich erstellt turnie.re dir einen Spielplan für ein Turnier <strong>ohne</strong>
|
Grundsätzlich erstellt turnie.re dir einen Spielplan für ein Turnier <strong>ohne</strong>
|
||||||
|
|
@ -168,7 +180,8 @@ function TournamentFaq() {
|
||||||
<p>
|
<p>
|
||||||
Bitte beachte, dass die Anzahl der Teams durch die Gruppengröße teilbar sein muss.
|
Bitte beachte, dass die Anzahl der Teams durch die Gruppengröße teilbar sein muss.
|
||||||
</p>
|
</p>
|
||||||
</Col><Col sm="4">
|
</Col>
|
||||||
|
<Col sm="4">
|
||||||
<h4 id="add-teams">Wie kann ich Teams hinzufügen?</h4>
|
<h4 id="add-teams">Wie kann ich Teams hinzufügen?</h4>
|
||||||
<p>
|
<p>
|
||||||
Auf der "Turnier erstellen" Seite kannst du im Feld "Teams" deine Teams eintragen. </p>
|
Auf der "Turnier erstellen" Seite kannst du im Feld "Teams" deine Teams eintragen. </p>
|
||||||
|
|
@ -177,14 +190,15 @@ function TournamentFaq() {
|
||||||
Button "Team hinzufügen" das Team deinem Turnier hinzufügen. Du kannst aber auch deine Teams
|
Button "Team hinzufügen" das Team deinem Turnier hinzufügen. Du kannst aber auch deine Teams
|
||||||
als eine mit Kommas getrennte Liste eingeben und dann hinzufügen.
|
als eine mit Kommas getrennte Liste eingeben und dann hinzufügen.
|
||||||
</p>
|
</p>
|
||||||
</Col><Col sm="4">
|
</Col>
|
||||||
|
<Col sm="4">
|
||||||
<h4>Wie starte ich ein Spiel?</h4>
|
<h4>Wie starte ich ein Spiel?</h4>
|
||||||
<p>
|
<p>
|
||||||
Auf der Turnierübersicht Seite gibt es für jede Partie einen "Spiel starten" Button. Über
|
Auf der Turnierübersicht Seite gibt es für jede Partie einen "Spiel starten" Button. Über
|
||||||
diesen kannst du einfach das jeweilige Spiel starten.
|
diesen kannst du einfach das jeweilige Spiel starten.
|
||||||
</p>
|
</p>
|
||||||
</Col><Col sm="4">
|
</Col>
|
||||||
|
<Col sm="4">
|
||||||
<h4>Wie trage ich einen Spielstand für eine Partie ein?</h4>
|
<h4>Wie trage ich einen Spielstand für eine Partie ein?</h4>
|
||||||
<p>
|
<p>
|
||||||
Auf der Turnierübersicht Seite gibt es für jede Partie einen "Spielstand ändern" Button.
|
Auf der Turnierübersicht Seite gibt es für jede Partie einen "Spielstand ändern" Button.
|
||||||
|
|
|
||||||
122
pages/imprint.js
122
pages/imprint.js
|
|
@ -1,9 +1,9 @@
|
||||||
import Head from 'next/head'
|
import Head from 'next/head';
|
||||||
import React from 'react'
|
import React from 'react';
|
||||||
import {Container} from 'reactstrap';
|
import {Container} from 'reactstrap';
|
||||||
import 'bootstrap/dist/css/bootstrap.min.css';
|
import 'bootstrap/dist/css/bootstrap.min.css';
|
||||||
import {BigImage, Footer, TurniereNavigation} from '../js/CommonComponents.js'
|
import {BigImage, Footer, TurniereNavigation} from '../js/CommonComponents.js';
|
||||||
import '../static/everypage.css'
|
import '../static/everypage.css';
|
||||||
|
|
||||||
function Main() {
|
function Main() {
|
||||||
return (
|
return (
|
||||||
|
|
@ -14,68 +14,58 @@ function Main() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function ImprintText(){
|
function ImprintText(){
|
||||||
return (<Container>
|
return (
|
||||||
<h3>
|
<Container>
|
||||||
Angaben gemäß §5 TMG:
|
<h3>
|
||||||
</h3>
|
Angaben gemäß §5 TMG:
|
||||||
<p>
|
</h3>
|
||||||
Jonas Seydel<br/>
|
<p>
|
||||||
August-Euler-Weg 3<br/>
|
Jonas Seydel<br/>
|
||||||
76133 Karlsruhe<br/>
|
August-Euler-Weg 3<br/>
|
||||||
Germany<br/>
|
76133 Karlsruhe<br/>
|
||||||
</p>
|
Germany<br/>
|
||||||
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<strong>Vertreten durch</strong><br/>
|
<strong>Vertreten durch</strong><br/>
|
||||||
Jonas Seydel
|
Jonas Seydel
|
||||||
</p>
|
</p>
|
||||||
|
<p>
|
||||||
<p>
|
<strong>Kontakt</strong><br/>
|
||||||
<strong>Kontakt</strong><br/>
|
jon@s-seydel.de
|
||||||
jon@s-seydel.de
|
</p>
|
||||||
</p>
|
<h3>Haftungsausschluss</h3>
|
||||||
|
<h4>Haftung für Inhalte</h4>
|
||||||
|
<p>
|
||||||
<h3>Haftungsausschluss</h3>
|
Die Inhalte unserer Seiten wurden mit größter Sorgfalt erstellt. Für die Richtigkeit, Vollständigkeit und Aktualität
|
||||||
|
der Inhalte können wir jedoch keine Gewähr übernehmen. Als Diensteanbieter sind wir gemäß § 7 Abs.1 TMG für eigene
|
||||||
<h4>Haftung für Inhalte</h4>
|
Inhalte auf diesen Seiten nach den allgemeinen Gesetzen verantwortlich. Nach §§ 8 bis 10 TMG sind wir als
|
||||||
|
Diensteanbieter jedoch nicht verpflichtet, übermittelte oder gespeicherte fremde Informationen zu überwachen oder nach
|
||||||
<p>
|
Umständen zu forschen, die auf eine rechtswidrige Tätigkeit hinweisen. Verpflichtungen zur Entfernung oder Sperrung
|
||||||
Die Inhalte unserer Seiten wurden mit größter Sorgfalt erstellt. Für die Richtigkeit, Vollständigkeit und Aktualität
|
der Nutzung von Informationen nach den allgemeinen Gesetzen bleiben hiervon unberührt. Eine diesbezügliche Haftung ist
|
||||||
der Inhalte können wir jedoch keine Gewähr übernehmen. Als Diensteanbieter sind wir gemäß § 7 Abs.1 TMG für eigene
|
jedoch erst ab dem Zeitpunkt der Kenntnis einer konkreten Rechtsverletzung möglich. Bei Bekanntwerden von
|
||||||
Inhalte auf diesen Seiten nach den allgemeinen Gesetzen verantwortlich. Nach §§ 8 bis 10 TMG sind wir als
|
entsprechenden Rechtsverletzungen werden wir diese Inhalte umgehend entfernen.
|
||||||
Diensteanbieter jedoch nicht verpflichtet, übermittelte oder gespeicherte fremde Informationen zu überwachen oder nach
|
</p>
|
||||||
Umständen zu forschen, die auf eine rechtswidrige Tätigkeit hinweisen. Verpflichtungen zur Entfernung oder Sperrung
|
<h4>Haftung für Links</h4>
|
||||||
der Nutzung von Informationen nach den allgemeinen Gesetzen bleiben hiervon unberührt. Eine diesbezügliche Haftung ist
|
<p>
|
||||||
jedoch erst ab dem Zeitpunkt der Kenntnis einer konkreten Rechtsverletzung möglich. Bei Bekanntwerden von
|
Unser Angebot enthält Links zu externen Webseiten Dritter, auf deren Inhalte wir keinen Einfluss haben. Deshalb können
|
||||||
entsprechenden Rechtsverletzungen werden wir diese Inhalte umgehend entfernen.
|
wir für diese fremden Inhalte auch keine Gewähr übernehmen. Für die Inhalte der verlinkten Seiten ist stets der
|
||||||
</p>
|
jeweilige Anbieter oder Betreiber der Seiten verantwortlich. Die verlinkten Seiten wurden zum Zeitpunkt der Verlinkung
|
||||||
|
auf mögliche Rechtsverstöße überprüft. Rechtswidrige Inhalte waren zum Zeitpunkt der Verlinkung nicht erkennbar. Eine
|
||||||
<h4>Haftung für Links</h4>
|
permanente inhaltliche Kontrolle der verlinkten Seiten ist jedoch ohne konkrete Anhaltspunkte einer Rechtsverletzung
|
||||||
|
nicht zumutbar. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Links umgehend entfernen.
|
||||||
<p>
|
</p>
|
||||||
Unser Angebot enthält Links zu externen Webseiten Dritter, auf deren Inhalte wir keinen Einfluss haben. Deshalb können
|
<h4>Urheberrecht</h4>
|
||||||
wir für diese fremden Inhalte auch keine Gewähr übernehmen. Für die Inhalte der verlinkten Seiten ist stets der
|
<p>
|
||||||
jeweilige Anbieter oder Betreiber der Seiten verantwortlich. Die verlinkten Seiten wurden zum Zeitpunkt der Verlinkung
|
Die durch die Seitenbetreiber erstellten Inhalte und Werke auf diesen Seiten unterliegen dem deutschen Urheberrecht.
|
||||||
auf mögliche Rechtsverstöße überprüft. Rechtswidrige Inhalte waren zum Zeitpunkt der Verlinkung nicht erkennbar. Eine
|
Die Vervielfältigung, Bearbeitung, Verbreitung und jede Art der Verwertung außerhalb der Grenzen des Urheberrechtes
|
||||||
permanente inhaltliche Kontrolle der verlinkten Seiten ist jedoch ohne konkrete Anhaltspunkte einer Rechtsverletzung
|
bedürfen der schriftlichen Zustimmung des jeweiligen Autors bzw. Erstellers. Downloads und Kopien dieser Seite sind
|
||||||
nicht zumutbar. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Links umgehend entfernen.
|
nur für den privaten, nicht kommerziellen Gebrauch gestattet. Soweit die Inhalte auf dieser Seite nicht vom Betreiber
|
||||||
</p>
|
erstellt wurden, werden die Urheberrechte Dritter beachtet. Insbesondere werden Inhalte Dritter als solche
|
||||||
|
gekennzeichnet. Sollten Sie trotzdem auf eine Urheberrechtsverletzung aufmerksam werden, bitten wir um einen
|
||||||
<h4>Urheberrecht</h4>
|
entsprechenden Hinweis. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Inhalte umgehend entfernen.
|
||||||
|
</p>
|
||||||
<p>
|
</Container>
|
||||||
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. Downloads und Kopien dieser Seite sind
|
|
||||||
nur für den privaten, nicht kommerziellen Gebrauch gestattet. Soweit die Inhalte auf dieser Seite nicht vom Betreiber
|
|
||||||
erstellt wurden, werden die Urheberrechte Dritter beachtet. Insbesondere werden Inhalte Dritter als solche
|
|
||||||
gekennzeichnet. Sollten Sie trotzdem auf eine Urheberrechtsverletzung aufmerksam werden, bitten wir um einen
|
|
||||||
entsprechenden Hinweis. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Inhalte umgehend entfernen.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
</Container>);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,16 @@
|
||||||
import Head from 'next/head'
|
import Head from 'next/head';
|
||||||
import React from 'react'
|
import React from 'react';
|
||||||
|
|
||||||
import {Alert, Button, Card, CardBody} from 'reactstrap';
|
import { Alert, Button, Card, CardBody } from 'reactstrap';
|
||||||
|
|
||||||
import 'bootstrap/dist/css/bootstrap.min.css';
|
import 'bootstrap/dist/css/bootstrap.min.css';
|
||||||
|
|
||||||
import { BigImage, Footer, TurniereNavigation } from '../js/CommonComponents.js'
|
import { BigImage, Footer, TurniereNavigation } from '../js/CommonComponents.js';
|
||||||
|
|
||||||
import '../static/everypage.css'
|
import '../static/everypage.css';
|
||||||
import '../static/css/index.css'
|
import '../static/css/index.css';
|
||||||
|
|
||||||
import { connect } from 'react-redux'
|
import { connect } from 'react-redux';
|
||||||
|
|
||||||
function Main() {
|
function Main() {
|
||||||
return (
|
return (
|
||||||
|
|
@ -26,7 +26,6 @@ function Marketing() {
|
||||||
return (
|
return (
|
||||||
<div className="container marketing my-5">
|
<div className="container marketing my-5">
|
||||||
<div className="row">
|
<div className="row">
|
||||||
|
|
||||||
<div className="col-lg-4">
|
<div className="col-lg-4">
|
||||||
<h2>Für jede Sportart</h2>
|
<h2>Für jede Sportart</h2>
|
||||||
<p>
|
<p>
|
||||||
|
|
@ -88,12 +87,10 @@ function MainBottomSummary() {
|
||||||
<div className="col-lg-6">
|
<div className="col-lg-6">
|
||||||
<h2>Ich habe einen Turniercode bekommen. Was nun?</h2>
|
<h2>Ich habe einen Turniercode bekommen. Was nun?</h2>
|
||||||
<p>
|
<p>
|
||||||
Der Turniercode führt dich direkt zu einem Turnier. Gebe dafür den Code <a className="text-success"
|
Der Turniercode führt dich direkt zu einem Turnier. Gebe dafür den Code
|
||||||
href="#turniercode-form">oben </a>
|
<a className="text-success" href="#turniercode-form">oben</a> ein, dann wirst du sofort weitergeleitet.
|
||||||
ein, dann wirst du sofort weitergeleitet.
|
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div className="my-5 text-center">
|
<div className="my-5 text-center">
|
||||||
<p>
|
<p>
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import Head from 'next/head'
|
import Head from 'next/head';
|
||||||
|
|
||||||
export default () => (
|
export default () => (
|
||||||
<div>
|
<div>
|
||||||
|
|
@ -7,4 +7,4 @@ export default () => (
|
||||||
</Head>
|
</Head>
|
||||||
<p>Turnierliste</p>
|
<p>Turnierliste</p>
|
||||||
</div>
|
</div>
|
||||||
)
|
);
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
import Head from 'next/head'
|
import Head from 'next/head';
|
||||||
import '../static/everypage.css'
|
import '../static/everypage.css';
|
||||||
import {Footer, TurniereNavigation} from "../js/CommonComponents";
|
import {Footer, TurniereNavigation} from '../js/CommonComponents';
|
||||||
import React from "react";
|
import React from 'react';
|
||||||
import {Button, Card, CardBody, Container, Form, FormGroup, Input, Label} from "reactstrap";
|
import { Button, Card, CardBody, Container, Form, FormGroup, Input, Label } from 'reactstrap';
|
||||||
import { login } from '../js/api'
|
import { login } from '../js/api';
|
||||||
import { connect } from 'react-redux'
|
import { connect } from 'react-redux';
|
||||||
|
|
||||||
export default () => (
|
export default () => (
|
||||||
<div className="main generic-fullpage-bg">
|
<div className="main generic-fullpage-bg">
|
||||||
|
|
@ -17,7 +17,7 @@ export default () => (
|
||||||
</div>
|
</div>
|
||||||
<Footer/>
|
<Footer/>
|
||||||
</div>
|
</div>
|
||||||
)
|
);
|
||||||
|
|
||||||
function Login() {
|
function Login() {
|
||||||
return (
|
return (
|
||||||
|
|
@ -37,7 +37,6 @@ function Login() {
|
||||||
}
|
}
|
||||||
|
|
||||||
class LoginErrorList extends React.Component {
|
class LoginErrorList extends React.Component {
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { error, errorMessages } = this.props;
|
const { error, errorMessages } = this.props;
|
||||||
if(error) {
|
if(error) {
|
||||||
|
|
@ -64,7 +63,7 @@ class LoginErrorList extends React.Component {
|
||||||
|
|
||||||
const mapStateToErrorMessages = (state) => {
|
const mapStateToErrorMessages = (state) => {
|
||||||
const { errorMessages, error } = state.userinfo;
|
const { errorMessages, error } = state.userinfo;
|
||||||
return { errorMessages, error }
|
return { errorMessages, error };
|
||||||
};
|
};
|
||||||
|
|
||||||
const VisibleLoginErrorList = connect(
|
const VisibleLoginErrorList = connect(
|
||||||
|
|
|
||||||
969
pages/privacy.js
969
pages/privacy.js
|
|
@ -1,9 +1,9 @@
|
||||||
import Head from 'next/head'
|
import Head from 'next/head';
|
||||||
import React from 'react'
|
import React from 'react';
|
||||||
import {Container} from 'reactstrap';
|
import {Container} from 'reactstrap';
|
||||||
import 'bootstrap/dist/css/bootstrap.min.css';
|
import 'bootstrap/dist/css/bootstrap.min.css';
|
||||||
import {BigImage, Footer, TurniereNavigation} from '../js/CommonComponents.js'
|
import { BigImage, Footer, TurniereNavigation } from '../js/CommonComponents.js';
|
||||||
import '../static/everypage.css'
|
import '../static/everypage.css';
|
||||||
|
|
||||||
function Main() {
|
function Main() {
|
||||||
return (
|
return (
|
||||||
|
|
@ -14,504 +14,477 @@ function Main() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function PrivacyText(){
|
function PrivacyText(){
|
||||||
return (<Container>
|
return (
|
||||||
<p>
|
<Container>
|
||||||
Die nachfolgende Datenschutzerklärung gilt für die Nutzung unseres Online-Angebots turnie.re (nachfolgend
|
<p>
|
||||||
„Website“).<br/>
|
Die nachfolgende Datenschutzerklärung gilt für die Nutzung unseres Online-Angebots turnie.re (nachfolgend
|
||||||
Wir messen dem Datenschutz große Bedeutung bei. Die Erhebung und Verarbeitung Ihrer personenbezogenen Daten
|
„Website“).<br/>
|
||||||
geschieht
|
Wir messen dem Datenschutz große Bedeutung bei. Die Erhebung und Verarbeitung Ihrer personenbezogenen Daten
|
||||||
unter Beachtung der geltenden datenschutzrechtlichen Vorschriften, insbesondere der
|
geschieht
|
||||||
Datenschutzgrundverordnung
|
unter Beachtung der geltenden datenschutzrechtlichen Vorschriften, insbesondere der
|
||||||
(DSGVO).
|
Datenschutzgrundverordnung
|
||||||
</p>
|
(DSGVO).
|
||||||
|
</p>
|
||||||
|
<h3>1 Verantwortlicher</h3>
|
||||||
|
<p>
|
||||||
|
Verantwortlicher für die Erhebung, Verarbeitung und Nutzung Ihrer personenbezogenen Daten im Sinne von Art.
|
||||||
|
4 Nr. 7
|
||||||
|
DSGVO ist
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Jonas Seydel<br/>
|
||||||
|
August-Euler-Weg 3<br/>
|
||||||
|
76133 Karlsruhe<br/>
|
||||||
|
Germany<br/>
|
||||||
|
jon@s-seydel.de<br/>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Sofern Sie der Erhebung, Verarbeitung oder Nutzung Ihrer Daten durch uns nach Maßgabe dieser
|
||||||
|
Datenschutzbestimmungen
|
||||||
|
insgesamt oder für einzelne Maßnahmen widersprechen wollen, können Sie Ihren Widerspruch an den
|
||||||
|
Verantwortlichen
|
||||||
|
richten.<br/>
|
||||||
|
Sie können diese Datenschutzerklärung jederzeit speichern und ausdrucken.
|
||||||
|
</p>
|
||||||
|
<h3>2 Allgemeine Zwecke der Verarbeitung</h3>
|
||||||
|
<p>
|
||||||
|
Wir verwenden personenbezogene Daten zum Zweck des Betriebs der Website.
|
||||||
|
</p>
|
||||||
|
<h3>3 Welche Daten wir verwenden und warum</h3>
|
||||||
|
<h4>3.1 Hosting</h4>
|
||||||
|
<p>
|
||||||
|
Die von uns in Anspruch genommenen Hosting-Leistungen dienen der Zurverfügungstellung der folgenden
|
||||||
|
Leistungen:
|
||||||
|
Infrastruktur- und Plattformdienstleistungen, Rechenkapazität, Speicherplatz und Datenbankdienste,
|
||||||
|
Sicherheitsleistungen sowie technische Wartungsleistungen, die wir zum Zweck des Betriebs der Website
|
||||||
|
einsetzen.<br/>
|
||||||
|
Hierbei verarbeiten wir, bzw. unser Hostinganbieter Bestandsdaten, Kontaktdaten, Inhaltsdaten,
|
||||||
|
Vertragsdaten,
|
||||||
|
Nutzungsdaten, Meta- und Kommunikationsdaten von Kunden, Interessenten und Besuchern dieser Website auf
|
||||||
|
Grundlage
|
||||||
|
unserer berechtigten Interessen an einer effizienten und sicheren Zurverfügungstellung unserer Website gem.
|
||||||
|
Art. 6
|
||||||
|
Abs. 1 S. 1 f) DSGVO i.V.m. Art. 28 DSGVO.
|
||||||
|
</p>
|
||||||
|
<h4>3.2 Zugriffsdaten</h4>
|
||||||
|
<p>
|
||||||
|
Wir sammeln Informationen über Sie, wenn Sie diese Website nutzen. Wir erfassen automatisch Informationen
|
||||||
|
über Ihr
|
||||||
|
Nutzungsverhalten und Ihre Interaktion mit uns und registrieren Daten zu Ihrem Computer oder Mobilgerät. Wir
|
||||||
|
erheben,
|
||||||
|
speichern und nutzen Daten über jeden Zugriff auf unsere Website (sogenannte Serverlogfiles). Zu den
|
||||||
|
Zugriffsdaten
|
||||||
|
gehören:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>Name und URL der abgerufenen Datei</li>
|
||||||
|
<li>Datum und Uhrzeit des Abrufs</li>
|
||||||
|
<li>übertragene Datenmenge</li>
|
||||||
|
<li>Meldung über erfolgreichen Abruf (HTTP response code)</li>
|
||||||
|
<li>Browsertyp und Browserversion</li>
|
||||||
|
<li>Betriebssystem</li>
|
||||||
|
<li>Referer URL (d.h. die zuvor besuchte Seite)</li>
|
||||||
|
<li>Websites, die vom System des Nutzers über unsere Website aufgerufen werden</li>
|
||||||
|
<li>Internet-Service-Provider des Nutzers</li>
|
||||||
|
<li>IP-Adresse und der anfragende Provider</li>
|
||||||
|
</ul>
|
||||||
|
<p>
|
||||||
|
Wir nutzen diese Protokolldaten ohne Zuordnung zu Ihrer Person oder sonstiger Profilerstellung für
|
||||||
|
statistische
|
||||||
|
Auswertungen zum Zweck des Betriebs, der Sicherheit und der Optimierung unserer Website, aber auch zur
|
||||||
|
anonymen
|
||||||
|
Erfassung der Anzahl der Besucher auf unserer Website (traffic) sowie zum Umfang und zur Art der Nutzung
|
||||||
|
unserer
|
||||||
|
Website und Dienste, ebenso zu Abrechnungszwecken, um die Anzahl der von Kooperationspartnern erhaltenen
|
||||||
|
Clicks zu
|
||||||
|
messen. Aufgrund dieser Informationen können wir personalisierte und standortbezogene Inhalte zur Verfügung
|
||||||
|
stellen
|
||||||
|
und den Datenverkehr analysieren, Fehler suchen und beheben und unsere Dienste verbessern.<br/>
|
||||||
|
Hierin liegt auch unser berechtigtes Interesse gemäß Art 6 Abs. 1 S. 1 f) DSGVO.<br/>
|
||||||
|
Wir behalten uns vor, die Protokolldaten nachträglich zu überprüfen, wenn aufgrund konkreter Anhaltspunkte
|
||||||
|
der
|
||||||
|
berechtigte Verdacht einer rechtswidrigen Nutzung besteht. IP-Adressen speichern wir für einen begrenzten
|
||||||
|
Zeitraum in
|
||||||
|
den Logfiles, wenn dies für Sicherheitszwecke erforderlich oder für die Leistungserbringung oder die
|
||||||
|
Abrechnung einer
|
||||||
|
Leistung nötig ist, z. B. wenn Sie eines unserer Angebote nutzen. Nach Abbruch des Vorgangs der Bestellung
|
||||||
|
oder nach
|
||||||
|
Zahlungseingang löschen wir die IP-Adresse, wenn diese für Sicherheitszwecke nicht mehr erforderlich ist.
|
||||||
|
IP-Adressen
|
||||||
|
speichern wir auch dann, wenn wir den konkreten Verdacht einer Straftat im Zusammenhang mit der Nutzung
|
||||||
|
unserer
|
||||||
|
Website haben. Außerdem speichern wir als Teil Ihres Accounts das Datum Ihres letzten Besuchs (z.B. bei
|
||||||
|
Registrierung,
|
||||||
|
Login, Klicken von Links etc.).
|
||||||
|
</p>
|
||||||
|
<h4>3.3 Cookies</h4>
|
||||||
|
<p>
|
||||||
|
Wir verwenden sogenannte Session-Cookies, um unsere Website zu optimieren. Ein Session-Cookie ist eine
|
||||||
|
kleine
|
||||||
|
Textdatei, die von den jeweiligen Servern beim Besuch einer Internetseite verschickt und auf Ihrer
|
||||||
|
Festplatte
|
||||||
|
zwischengespeichert wird. Diese Datei als solche enthält eine sogenannte Session-ID, mit welcher sich
|
||||||
|
verschiedene
|
||||||
|
Anfragen Ihres Browsers der gemeinsamen Sitzung zuordnen lassen. Dadurch kann Ihr Rechner wiedererkannt
|
||||||
|
werden, wenn
|
||||||
|
Sie auf unsere Website zurückkehren. Diese Cookies werden gelöscht, nachdem Sie Ihren Browser schließen. Sie
|
||||||
|
dienen z.
|
||||||
|
B. dazu, dass Sie die Warenkorbfunktion über mehrere Seiten hinweg nutzen können.<br/>
|
||||||
|
Wir verwenden in geringem Umfang auch persistente Cookies (ebenfalls kleine Textdateien, die auf Ihrem
|
||||||
|
Endgerät
|
||||||
|
abgelegt werden), die auf Ihrem Endgerät verbleiben und es uns ermöglichen, Ihren Browser beim nächsten
|
||||||
|
Besuch
|
||||||
|
wiederzuerkennen. Diese Cookies werden auf Ihrer Festplatte gespeichert und löschen sich nach der
|
||||||
|
vorgegebenen Zeit
|
||||||
|
von allein. Ihre Lebensdauer beträgt 1 Monat bis 10 Jahre. So können wir Ihnen unser Angebot
|
||||||
|
nutzerfreundlicher,
|
||||||
|
effektiver und sicherer präsentieren und Ihnen beispielsweise speziell auf Ihre Interessen abgestimmte
|
||||||
|
Informationen
|
||||||
|
auf der Seite anzeigen.<br/>
|
||||||
|
Unser berechtigtes Interesse an der Nutzung der Cookies gemäß Art 6 Abs. 1 S. 1 f) DSGVO liegt darin, unsere
|
||||||
|
Website
|
||||||
|
nutzerfreundlicher, effektiver und sicherer zu machen.<br/>
|
||||||
|
In den Cookies werden etwa folgende Daten und Informationen gespeichert:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>Log-In-Informationen</li>
|
||||||
|
<li>Spracheinstellungen</li>
|
||||||
|
<li>eingegebene Suchbegriffe</li>
|
||||||
|
<li>Informationen über die Anzahl der Aufrufe unserer Website sowie Nutzung einzelner Funktionen unseres
|
||||||
|
Internetauftritts.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<p>
|
||||||
|
Bei Aktivierung des Cookies wird diesem eine Identifikationsnummer zugewiesen und eine Zuordnung Ihrer
|
||||||
|
personenbezogenen Daten zu dieser Identifikationsnummer wird nicht vorgenommen. Ihr Name, Ihre IP-Adresse
|
||||||
|
oder
|
||||||
|
ähnliche Daten, die eine Zuordnung des Cookies zu Ihnen ermöglichen würden, werden nicht in den Cookie
|
||||||
|
eingelegt. Auf
|
||||||
|
Basis der Cookie-Technologie erhalten wir lediglich pseudonymisierte Informationen, beispielsweise darüber,
|
||||||
|
welche
|
||||||
|
Seiten unseres Shops besucht wurden, welche Produkte angesehen wurden, etc.<br/>
|
||||||
|
Sie können Ihren Browser so einstellen, dass Sie über das Setzen von Cookies vorab informiert werden und im
|
||||||
|
Einzelfall
|
||||||
|
entscheiden können, ob Sie die Annahme von Cookies für bestimmte Fälle oder generell ausschließen, oder dass
|
||||||
|
Cookies
|
||||||
|
komplett verhindert werden. Dadurch kann die Funktionalität der Website eingeschränkt werden.
|
||||||
|
</p>
|
||||||
|
<h4>3.4 Nutzerkonto</h4>
|
||||||
|
<p>Sie können auf unserer Website ein Nutzerkonto anlegen. Wünschen Sie dies, so benötigen wir die beim Login
|
||||||
|
abgefragten
|
||||||
|
personenbezogenen Daten. Beim späteren Einloggen werden nur Ihre Email bzw. Benutzername und das von Ihnen
|
||||||
|
gewählte
|
||||||
|
Passwort benötigt.<br/>
|
||||||
|
Für die Neuregistrierung erheben wir Stammdaten (z. B. Name, Adresse), Kommunikationsdaten (z. B.
|
||||||
|
E-Mail-Adresse)
|
||||||
|
sowie Zugangsdaten (Benutzername u. Passwort).<br/>
|
||||||
|
Sie können ein einmal angelegtes Nutzerkonto jederzeit von uns löschen lassen, ohne dass hierfür andere
|
||||||
|
als die
|
||||||
|
Übermittlungskosten nach den Basistarifen entstehen. Eine Mitteilung in Textform an die unter Ziffer 1
|
||||||
|
genannten
|
||||||
|
Kontaktdaten (z.B. E-Mail, Fax, Brief) reicht hierfür aus. Wir werden dann Ihre gespeicherten
|
||||||
|
personenbezogenen Daten
|
||||||
|
löschen, soweit wir diese nicht noch zur Abwicklung von Bestellungen oder aufgrund gesetzlicher
|
||||||
|
Aufbewahrungspflichten
|
||||||
|
speichern müssen.<br/>
|
||||||
|
Rechtgrundlage für die Verarbeitung dieser Daten ist Ihre Einwilligung gemäß Art. 6 Abs. 1 S. 1 a)
|
||||||
|
DSGVO.
|
||||||
|
</p>
|
||||||
|
<h4>3.5 E-Mail Kontakt</h4>
|
||||||
|
<p>
|
||||||
|
Wenn Sie mit uns in Kontakt treten (z. B. per Kontaktformular oder E-Mail), verarbeiten wir Ihre Angaben zur
|
||||||
|
Bearbeitung der Anfrage sowie für den Fall, dass Anschlussfragen entstehen.
|
||||||
|
Erfolgt die Datenverarbeitung zur Durchführung vorvertraglicher Maßnahmen, die auf Ihre Anfrage hin
|
||||||
|
erfolgen, bzw.,
|
||||||
|
wenn Sie bereits unser Kunde sind, zur Durchführung des Vertrages, ist Rechtsgrundlage für diese
|
||||||
|
Datenverarbeitung
|
||||||
|
Art. 6 Abs. 1 S. 1 b) DSGVO.
|
||||||
|
Weitere personenbezogene Daten verarbeiten wir nur, wenn Sie dazu einwilligen (Art. 6 Abs. 1 S. 1 a) DSGVO)
|
||||||
|
oder wir
|
||||||
|
ein berechtigtes Interesse an der Verarbeitung Ihrer Daten haben (Art. 6 Abs. 1 S. 1 f) DSGVO). Ein
|
||||||
|
berechtigtes
|
||||||
|
Interesse liegt z. B. darin, auf Ihre E-Mail zu antworten.
|
||||||
|
</p>
|
||||||
|
<h3>4 Speicherdauer</h3>
|
||||||
|
<p>
|
||||||
|
Sofern nicht spezifisch angegeben speichern wir personenbezogene Daten nur so lange, wie dies zur Erfüllung
|
||||||
|
der
|
||||||
|
verfolgten Zwecke notwendig ist.<br/>
|
||||||
|
In einigen Fällen sieht der Gesetzgeber die Aufbewahrung von personenbezogenen Daten vor, etwa im Steuer-
|
||||||
|
oder
|
||||||
|
Handelsrecht. In diesen Fällen werden die Daten von uns lediglich für diese gesetzlichen Zwecke weiter
|
||||||
|
gespeichert,
|
||||||
|
aber nicht anderweitig verarbeitet und nach Ablauf der gesetzlichen Aufbewahrungsfrist gelöscht.
|
||||||
|
</p>
|
||||||
|
<h3>5 Ihre Rechte als von der Datenverarbeitung Betroffener</h3>
|
||||||
|
<p>
|
||||||
|
Nach den anwendbaren Gesetzen haben Sie verschiedene Rechte bezüglich Ihrer personenbezogenen Daten. Möchten
|
||||||
|
Sie diese
|
||||||
|
Rechte geltend machen, so richten Sie Ihre Anfrage bitte per E-Mail oder per Post unter eindeutiger
|
||||||
|
Identifizierung
|
||||||
|
Ihrer Person an die in Ziffer 1 genannte Adresse.<br/>
|
||||||
|
Nachfolgend finden Sie eine Übersicht über Ihre Rechte.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h4>5.1 Recht auf Bestätigung und Auskunft</h4>
|
||||||
|
<p>
|
||||||
|
Sie haben das Recht auf eine übersichtliche Auskunft über die Verarbeitung Ihrer personenbezogenen
|
||||||
|
Daten.<br/>
|
||||||
|
Im Einzelnen:<br/>
|
||||||
|
|
||||||
<h3>1 Verantwortlicher</h3>
|
Sie haben jederzeit das Recht, von uns eine Bestätigung darüber zu erhalten, ob Sie betreffende
|
||||||
<p>
|
personenbezogene Daten
|
||||||
Verantwortlicher für die Erhebung, Verarbeitung und Nutzung Ihrer personenbezogenen Daten im Sinne von Art.
|
verarbeitet werden. Ist dies der Fall, so haben Sie das Recht, von uns eine unentgeltliche Auskunft über die
|
||||||
4 Nr. 7
|
zu Ihnen
|
||||||
DSGVO ist
|
gespeicherten personenbezogenen Daten nebst einer Kopie dieser Daten zu verlangen. Des Weiteren besteht ein
|
||||||
</p>
|
Recht auf
|
||||||
<p>
|
folgende Informationen:
|
||||||
Jonas Seydel<br/>
|
</p>
|
||||||
August-Euler-Weg 3<br/>
|
<ol>
|
||||||
76133 Karlsruhe<br/>
|
<li>die Verarbeitungszwecke;</li>
|
||||||
Germany<br/>
|
<li>die Kategorien personenbezogener Daten, die verarbeitet werden;</li>
|
||||||
jon@s-seydel.de<br/>
|
<li>die Empfänger oder Kategorien von Empfängern, gegenüber denen die personenbezogenen Daten offengelegt
|
||||||
</p>
|
worden sind
|
||||||
<p>
|
oder noch offengelegt werden, insbesondere bei Empfängern in Drittländern oder bei internationalen
|
||||||
Sofern Sie der Erhebung, Verarbeitung oder Nutzung Ihrer Daten durch uns nach Maßgabe dieser
|
Organisationen;
|
||||||
Datenschutzbestimmungen
|
</li>
|
||||||
insgesamt oder für einzelne Maßnahmen widersprechen wollen, können Sie Ihren Widerspruch an den
|
<li>falls möglich, die geplante Dauer, für die die personenbezogenen Daten gespeichert werden, oder, falls
|
||||||
Verantwortlichen
|
dies nicht
|
||||||
richten.<br/>
|
möglich ist, die Kriterien für die Festlegung dieser Dauer;
|
||||||
Sie können diese Datenschutzerklärung jederzeit speichern und ausdrucken.
|
</li>
|
||||||
</p>
|
<li>das Bestehen eines Rechts auf Berichtigung oder Löschung der Sie betreffenden personenbezogenen Daten
|
||||||
|
oder auf
|
||||||
|
Einschränkung der Verarbeitung durch den Verantwortlichen oder eines Widerspruchsrechts gegen diese
|
||||||
|
Verarbeitung;
|
||||||
|
</li>
|
||||||
|
<li>das Bestehen eines Beschwerderechts bei einer Aufsichtsbehörde;</li>
|
||||||
|
<li>wenn die personenbezogenen Daten nicht bei Ihnen erhoben werden, alle verfügbaren Informationen über die
|
||||||
|
Herkunft
|
||||||
|
der Daten;
|
||||||
|
</li>
|
||||||
|
<li>das Bestehen einer automatisierten Entscheidungsfindung einschließlich Profiling gemäß Art. 22 Abs. 1
|
||||||
|
und 4 DSGVO
|
||||||
|
und – zumindest in diesen Fällen – aussagekräftige Informationen über die involvierte Logik sowie die
|
||||||
|
Tragweite
|
||||||
|
und die angestrebten Auswirkungen einer derartigen Verarbeitung für Sie.
|
||||||
|
</li>
|
||||||
|
</ol>
|
||||||
|
<p>
|
||||||
|
Werden personenbezogene Daten an ein Drittland oder an eine internationale Organisation übermittelt, so
|
||||||
|
haben Sie das
|
||||||
|
Recht, über die geeigneten Garantien gemäß Art. 46 DSGVO im Zusammenhang mit der Übermittlung unterrichtet
|
||||||
|
zu werden.
|
||||||
|
</p>
|
||||||
|
<h4>5.2 Recht auf Berichtigung</h4>
|
||||||
|
<p>
|
||||||
|
Sie haben das Recht, von uns die Berichtigung und ggf. auch Vervollständigung Sie betreffender
|
||||||
|
personenbezogener Daten
|
||||||
|
zu verlangen.<br/>
|
||||||
|
Im Einzelnen:<br/>
|
||||||
|
Sie haben das Recht, von uns unverzüglich die Berichtigung Sie betreffender unrichtiger personenbezogener
|
||||||
|
Daten zu
|
||||||
|
verlangen. Unter Berücksichtigung der Zwecke der Verarbeitung haben Sie das Recht, die Vervollständigung
|
||||||
|
unvollständiger personenbezogener Daten – auch mittels einer ergänzenden Erklärung – zu verlangen.<br/>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h4>5.3 Recht auf Löschung ("Recht auf Vergessenwerden")</h4>
|
||||||
|
<p>
|
||||||
|
In einer Reihe von Fällen sind wir verpflichtet, Sie betreffende personenbezogene Daten zu löschen.<br/>
|
||||||
|
Im Einzelnen:<br/>
|
||||||
|
Sie haben gemäß Art. 17 Abs. 1 DSGVO das Recht, von uns zu verlangen, dass Sie betreffende personenbezogene
|
||||||
|
Daten
|
||||||
|
unverzüglich gelöscht werden, und wir sind verpflichtet, personenbezogene Daten unverzüglich zu löschen,
|
||||||
|
sofern einer
|
||||||
|
der folgenden Gründe zutrifft:
|
||||||
|
</p>
|
||||||
|
<ol>
|
||||||
|
<li>Die personenbezogenen Daten sind für die Zwecke, für die sie erhoben oder auf sonstige Weise verarbeitet
|
||||||
|
wurden,
|
||||||
|
nicht mehr notwendig.
|
||||||
|
</li>
|
||||||
|
<li>Sie widerrufen Ihre Einwilligung, auf die sich die Verarbeitung gemäß Art. 6 Abs. 1 S. 1 a) DSGVO oder
|
||||||
|
Art. 9 Abs.
|
||||||
|
2 a) DSGVO stützte, und es fehlt an einer anderweitigen Rechtsgrundlage für die Verarbeitung.
|
||||||
|
</li>
|
||||||
|
<li>Sie legen gemäß Art. 21 Abs. 1 DSGVO Widerspruch gegen die Verarbeitung ein und es liegen keine
|
||||||
|
vorrangigen
|
||||||
|
berechtigten Gründe für die Verarbeitung vor, oder Sie legen gemäß Art. 21 Abs. 2 DSGVO Widerspruch
|
||||||
|
gegen die
|
||||||
|
Verarbeitung ein.
|
||||||
|
</li>
|
||||||
|
<li>Die personenbezogenen Daten wurden unrechtmäßig verarbeitet.</li>
|
||||||
|
<li>Die Löschung der personenbezogenen Daten ist zur Erfüllung einer rechtlichen Verpflichtung nach dem
|
||||||
|
Unionsrecht
|
||||||
|
oder dem Recht der Mitgliedstaaten erforderlich, dem wir unterliegen.
|
||||||
|
</li>
|
||||||
|
<li>Die personenbezogenen Daten wurden in Bezug auf angebotene Dienste der Informationsgesellschaft gemäß
|
||||||
|
Art. 8 Abs.
|
||||||
|
1 DSGVO erhoben.
|
||||||
|
</li>
|
||||||
|
</ol>
|
||||||
|
<p>
|
||||||
|
Haben wir die personenbezogenen Daten öffentlich gemacht und sind wir gemäß Art. 17 Abs. 1 DSGVO zu deren
|
||||||
|
Löschung
|
||||||
|
verpflichtet, so treffen wir unter Berücksichtigung der verfügbaren Technologie und der
|
||||||
|
Implementierungskosten
|
||||||
|
angemessene Maßnahmen, auch technischer Art, um für die Datenverarbeitung Verantwortliche, die die
|
||||||
|
personenbezogenen
|
||||||
|
Daten verarbeiten, darüber zu informieren, dass Sie von ihnen die Löschung aller Links zu diesen
|
||||||
|
personenbezogenen
|
||||||
|
Daten oder von Kopien oder Replikationen dieser personenbezogenen Daten verlangt haben.
|
||||||
|
</p>
|
||||||
|
<h4>5.4 Recht auf Einschränkung der Verarbeitung</h4>
|
||||||
|
<p>
|
||||||
|
In einer Reihe von Fällen sind Sie berechtigt, von uns eine Einschränkung der Verarbeitung Ihrer
|
||||||
|
personenbezogenen
|
||||||
|
Daten zu verlangen.<br/>
|
||||||
|
Im Einzelnen:<br/>
|
||||||
|
Sie haben das Recht, von uns die Einschränkung der Verarbeitung zu verlangen, wenn eine der folgenden
|
||||||
|
Voraussetzungen
|
||||||
|
gegeben ist:
|
||||||
|
</p>
|
||||||
|
<ol>
|
||||||
|
<li>die Richtigkeit der personenbezogenen Daten wird von Ihnen bestritten, und zwar für eine Dauer, die es
|
||||||
|
uns
|
||||||
|
ermöglicht, die Richtigkeit der personenbezogenen Daten zu überprüfen,
|
||||||
|
</li>
|
||||||
|
<li>die Verarbeitung unrechtmäßig ist und Sie die Löschung der personenbezogenen Daten ablehnten und
|
||||||
|
stattdessen die
|
||||||
|
Einschränkung der Nutzung der personenbezogenen Daten verlangt haben;
|
||||||
|
</li>
|
||||||
|
<li>wir die personenbezogenen Daten für die Zwecke der Verarbeitung nicht länger benötigen, Sie die Daten
|
||||||
|
jedoch zur
|
||||||
|
Geltendmachung, Ausübung oder Verteidigung von Rechtsansprüchen benötigen, oder
|
||||||
|
</li>
|
||||||
|
<li>Sie Widerspruch gegen die Verarbeitung gemäß Art. 21 Abs. 1 DSGVO eingelegt haben, solange noch nicht
|
||||||
|
feststeht,
|
||||||
|
ob die berechtigten Gründe unseres Unternehmens gegenüber den Ihren überwiegen.
|
||||||
|
</li>
|
||||||
|
</ol>
|
||||||
|
<h4>5.5 Recht auf Datenübertragbarkeit</h4>
|
||||||
|
<p>
|
||||||
|
Sie haben das Recht, Sie betreffende personenbezogene Daten maschinenlesbar zu erhalten, zu übermitteln,
|
||||||
|
oder von uns
|
||||||
|
übermitteln zu lasen.<br/>
|
||||||
|
Im Einzelnen:<br/>
|
||||||
|
Sie haben das Recht, die Sie betreffenden personenbezogenen Daten, die Sie uns bereitgestellt haben, in
|
||||||
|
einem
|
||||||
|
strukturierten, gängigen und maschinenlesbaren Format zu erhalten, und Sie haben das Recht, diese Daten
|
||||||
|
einem anderen
|
||||||
|
Verantwortlichen ohne Behinderung durch uns zu übermitteln, sofern
|
||||||
|
</p>
|
||||||
|
<ol>
|
||||||
|
<li>die Verarbeitung auf einer Einwilligung gemäß Art. 6 Abs. 1 S. 1 a) DSGVO oder Art. 9 Abs. 2 a) DSGVO
|
||||||
|
oder auf
|
||||||
|
einem Vertrag gemäß Art. 6 Abs. 1 S. 1 b) DSGVO beruht und
|
||||||
|
</li>
|
||||||
|
<li>die Verarbeitung mithilfe automatisierter Verfahren erfolgt.</li>
|
||||||
|
</ol>
|
||||||
|
<p>
|
||||||
|
Bei der Ausübung Ihres Rechts auf Datenübertragbarkeit gemäß Absatz 1 haben Sie das Recht, zu erwirken, dass
|
||||||
|
die
|
||||||
|
personenbezogenen Daten direkt von uns einem anderen Verantwortlichen übermittelt werden, soweit dies
|
||||||
|
technisch
|
||||||
|
machbar ist.
|
||||||
|
</p>
|
||||||
|
<h4>5.6 Widerspruchsrecht</h4>
|
||||||
|
<p>
|
||||||
|
Sie haben das Recht, auch einer rechtmäßigen Verarbeitung Ihrer personenbezogenen Daten durch uns zu
|
||||||
|
widersprechen,
|
||||||
|
wenn sich dies aus Ihrer besonderen Situation begründet und unsere Interessen an der Verarbeitung nicht
|
||||||
|
überwiegen.<br/>
|
||||||
|
Im Einzelnen:<br/>
|
||||||
|
Sie haben das Recht, aus Gründen, die sich aus Ihrer besonderen Situation ergeben, jederzeit gegen die
|
||||||
|
Verarbeitung
|
||||||
|
Sie betreffender personenbezogener Daten, die aufgrund von Art. 6 Abs. 1 S. 1 e) oder f) DSGVO erfolgt,
|
||||||
|
Widerspruch
|
||||||
|
einzulegen; dies gilt auch für ein auf diese Bestimmungen gestütztes Profiling. Wir verarbeiten die
|
||||||
|
personenbezogenen
|
||||||
|
Daten nicht mehr, es sei denn, wir können zwingende schutzwürdige Gründe für die Verarbeitung nachweisen,
|
||||||
|
die Ihre
|
||||||
|
Interessen, Rechte und Freiheiten überwiegen, oder die Verarbeitung dient der Geltendmachung, Ausübung oder
|
||||||
|
Verteidigung von Rechtsansprüchen.<br/>
|
||||||
|
Werden personenbezogene Daten von uns verarbeitet, um Direktwerbung zu betreiben, so haben Sie das Recht,
|
||||||
|
jederzeit
|
||||||
|
Widerspruch gegen die Verarbeitung Sie betreffender personenbezogener Daten zum Zwecke derartiger Werbung
|
||||||
|
einzulegen;
|
||||||
|
dies gilt auch für das Profiling, soweit es mit solcher Direktwerbung in Verbindung steht.<br/>
|
||||||
|
Sie haben das Recht, aus Gründen, die sich aus Ihrer besonderen Situation ergeben, gegen die Sie betreffende
|
||||||
|
Verarbeitung Sie betreffender personenbezogener Daten, die zu wissenschaftlichen oder historischen
|
||||||
|
Forschungszwecken
|
||||||
|
oder zu statistischen Zwecken gemäß Art. 89 Abs. 1 DSGVO erfolgt, Widerspruch einzulegen, es sei denn, die
|
||||||
|
Verarbeitung ist zur Erfüllung einer im öffentlichen Interesse liegenden Aufgabe erforderlich.<br/>
|
||||||
|
</p>
|
||||||
|
<h4>5.7 Automatisierte Entscheidungen einschließlich Profiling</h4>
|
||||||
|
<p>
|
||||||
|
Sie haben das Recht, nicht einer ausschließlich auf einer automatisierten Verarbeitung – einschließlich
|
||||||
|
Profiling –
|
||||||
|
beruhenden Entscheidung unterworfen zu werden, die Ihnen gegenüber rechtliche Wirkung entfaltet oder Sie in
|
||||||
|
ähnlicher
|
||||||
|
Weise erheblich beeinträchtigt.<br/>
|
||||||
|
Eine automatisierte Entscheidungsfindung auf der Grundlage der erhobenen personenbezogenen Daten findet
|
||||||
|
nicht statt.
|
||||||
|
</p>
|
||||||
|
<h4>5.8 Recht auf Widerruf einer datenschutzrechtlichen Einwilligung</h4>
|
||||||
|
<p>
|
||||||
|
Sie haben das Recht, eine Einwilligung zur Verarbeitung personenbezogener Daten jederzeit zu widerrufen.
|
||||||
|
</p>
|
||||||
|
|
||||||
<h3>2 Allgemeine Zwecke der Verarbeitung</h3>
|
<h4>5.9 Recht auf Beschwerde bei einer Aufsichtsbehörde</h4>
|
||||||
<p>
|
<p>
|
||||||
Wir verwenden personenbezogene Daten zum Zweck des Betriebs der Website.
|
Sie haben das Recht auf Beschwerde bei einer Aufsichtsbehörde, insbesondere in dem Mitgliedstaat Ihres
|
||||||
</p>
|
Aufenthaltsorts, Ihres Arbeitsplatzes oder des Orts des mutmaßlichen Verstoßes, wenn Sie der Ansicht sind,
|
||||||
|
dass die
|
||||||
|
Verarbeitung der Sie betreffenden personenbezogenen Daten rechtswidrig ist.
|
||||||
<h3>3 Welche Daten wir verwenden und warum</h3>
|
</p>
|
||||||
|
<h3>6 Datensicherheit</h3>
|
||||||
<h4>3.1 Hosting</h4>
|
<p>
|
||||||
<p>
|
Wir sind um die Sicherheit Ihrer Daten im Rahmen der geltenden Datenschutzgesetze und technischen
|
||||||
Die von uns in Anspruch genommenen Hosting-Leistungen dienen der Zurverfügungstellung der folgenden
|
Möglichkeiten
|
||||||
Leistungen:
|
maximal bemüht.<br/>
|
||||||
Infrastruktur- und Plattformdienstleistungen, Rechenkapazität, Speicherplatz und Datenbankdienste,
|
Ihre persönlichen Daten werden bei uns verschlüsselt übertragen. Dies gilt für Ihre Bestellungen und auch
|
||||||
Sicherheitsleistungen sowie technische Wartungsleistungen, die wir zum Zweck des Betriebs der Website
|
für das
|
||||||
einsetzen.<br/>
|
Kundenlogin. Wir nutzen das Codierungssystem SSL (Secure Socket Layer), weisen jedoch darauf hin, dass die
|
||||||
Hierbei verarbeiten wir, bzw. unser Hostinganbieter Bestandsdaten, Kontaktdaten, Inhaltsdaten,
|
Datenübertragung im Internet (z.B. bei der Kommunikation per E-Mail) Sicherheitslücken aufweisen kann. Ein
|
||||||
Vertragsdaten,
|
lückenloser
|
||||||
Nutzungsdaten, Meta- und Kommunikationsdaten von Kunden, Interessenten und Besuchern dieser Website auf
|
Schutz der Daten vor dem Zugriff durch Dritte ist nicht möglich.<br/>
|
||||||
Grundlage
|
Zur Sicherung Ihrer Daten unterhalten wir technische und organisatorische Sicherungsmaßnahmen entsprechend
|
||||||
unserer berechtigten Interessen an einer effizienten und sicheren Zurverfügungstellung unserer Website gem.
|
Art. 32
|
||||||
Art. 6
|
DSGVO, die wir immer wieder dem Stand der Technik anpassen.<br/>
|
||||||
Abs. 1 S. 1 f) DSGVO i.V.m. Art. 28 DSGVO.
|
Wir gewährleisten außerdem nicht, dass unser Angebot zu bestimmten Zeiten zur Verfügung steht; Störungen,
|
||||||
</p>
|
Unterbrechungen oder Ausfälle können nicht ausgeschlossen werden. Die von uns verwendeten Server werden
|
||||||
|
regelmäßig
|
||||||
<h4>3.2 Zugriffsdaten</h4>
|
sorgfältig gesichert.
|
||||||
<p>
|
</p>
|
||||||
Wir sammeln Informationen über Sie, wenn Sie diese Website nutzen. Wir erfassen automatisch Informationen
|
<h3>7 Weitergabe von Daten an Dritte, keine Datenübertragung ins Nicht-EU-Ausland</h3>
|
||||||
über Ihr
|
<p>
|
||||||
Nutzungsverhalten und Ihre Interaktion mit uns und registrieren Daten zu Ihrem Computer oder Mobilgerät. Wir
|
Grundsätzlich verwenden wir Ihre personenbezogenen Daten nur innerhalb unseres Unternehmens.<br/>
|
||||||
erheben,
|
Wenn und soweit wir Dritte im Rahmen der Erfüllung von Verträgen einschalten (etwa Logistik-Dienstleister),
|
||||||
speichern und nutzen Daten über jeden Zugriff auf unsere Website (sogenannte Serverlogfiles). Zu den
|
erhalten
|
||||||
Zugriffsdaten
|
diese personenbezogene Daten nur in dem Umfang, in welchem die Übermittlung für die entsprechende Leistung
|
||||||
gehören:
|
erforderlich ist.<br/>
|
||||||
</p>
|
Für den Fall, dass wir bestimmte Teile der Datenverarbeitung auslagern („Auftragsverarbeitung“),
|
||||||
<ul>
|
verpflichten wir
|
||||||
<li>Name und URL der abgerufenen Datei</li>
|
Auftragsverarbeiter vertraglich dazu, personenbezogene Daten nur im Einklang mit den Anforderungen der
|
||||||
<li>Datum und Uhrzeit des Abrufs</li>
|
Datenschutzgesetze zu verwenden und den Schutz der Rechte der betroffenen Person zu gewährleisten.<br/>
|
||||||
<li>übertragene Datenmenge</li>
|
Eine Datenübertragung an Stellen oder Personen außerhalb der EU außerhalb des in dieser Erklärung in Ziffer
|
||||||
<li>Meldung über erfolgreichen Abruf (HTTP response code)</li>
|
4
|
||||||
<li>Browsertyp und Browserversion</li>
|
genannten Falls findet nicht statt und ist nicht geplant.
|
||||||
<li>Betriebssystem</li>
|
</p>
|
||||||
<li>Referer URL (d.h. die zuvor besuchte Seite)</li>
|
<h3>8 Datenschutzbeauftragter</h3>
|
||||||
<li>Websites, die vom System des Nutzers über unsere Website aufgerufen werden</li>
|
<p>
|
||||||
<li>Internet-Service-Provider des Nutzers</li>
|
Sollten Sie noch Fragen oder Bedenken zum Datenschutz haben, so wenden Sie sich bitte an unseren
|
||||||
<li>IP-Adresse und der anfragende Provider</li>
|
Datenschutzbeauftragten:
|
||||||
</ul>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
Wir nutzen diese Protokolldaten ohne Zuordnung zu Ihrer Person oder sonstiger Profilerstellung für
|
Jonas Seydel<br/>
|
||||||
statistische
|
August-Euler-Weg 3<br/>
|
||||||
Auswertungen zum Zweck des Betriebs, der Sicherheit und der Optimierung unserer Website, aber auch zur
|
76133 Karlsruhe<br/>
|
||||||
anonymen
|
Germany<br/>
|
||||||
Erfassung der Anzahl der Besucher auf unserer Website (traffic) sowie zum Umfang und zur Art der Nutzung
|
jon@s-seydel.de
|
||||||
unserer
|
</p>
|
||||||
Website und Dienste, ebenso zu Abrechnungszwecken, um die Anzahl der von Kooperationspartnern erhaltenen
|
</Container>
|
||||||
Clicks zu
|
);
|
||||||
messen. Aufgrund dieser Informationen können wir personalisierte und standortbezogene Inhalte zur Verfügung
|
|
||||||
stellen
|
|
||||||
und den Datenverkehr analysieren, Fehler suchen und beheben und unsere Dienste verbessern.<br/>
|
|
||||||
Hierin liegt auch unser berechtigtes Interesse gemäß Art 6 Abs. 1 S. 1 f) DSGVO.<br/>
|
|
||||||
Wir behalten uns vor, die Protokolldaten nachträglich zu überprüfen, wenn aufgrund konkreter Anhaltspunkte
|
|
||||||
der
|
|
||||||
berechtigte Verdacht einer rechtswidrigen Nutzung besteht. IP-Adressen speichern wir für einen begrenzten
|
|
||||||
Zeitraum in
|
|
||||||
den Logfiles, wenn dies für Sicherheitszwecke erforderlich oder für die Leistungserbringung oder die
|
|
||||||
Abrechnung einer
|
|
||||||
Leistung nötig ist, z. B. wenn Sie eines unserer Angebote nutzen. Nach Abbruch des Vorgangs der Bestellung
|
|
||||||
oder nach
|
|
||||||
Zahlungseingang löschen wir die IP-Adresse, wenn diese für Sicherheitszwecke nicht mehr erforderlich ist.
|
|
||||||
IP-Adressen
|
|
||||||
speichern wir auch dann, wenn wir den konkreten Verdacht einer Straftat im Zusammenhang mit der Nutzung
|
|
||||||
unserer
|
|
||||||
Website haben. Außerdem speichern wir als Teil Ihres Accounts das Datum Ihres letzten Besuchs (z.B. bei
|
|
||||||
Registrierung,
|
|
||||||
Login, Klicken von Links etc.).
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h4>3.3 Cookies</h4>
|
|
||||||
<p>
|
|
||||||
Wir verwenden sogenannte Session-Cookies, um unsere Website zu optimieren. Ein Session-Cookie ist eine
|
|
||||||
kleine
|
|
||||||
Textdatei, die von den jeweiligen Servern beim Besuch einer Internetseite verschickt und auf Ihrer
|
|
||||||
Festplatte
|
|
||||||
zwischengespeichert wird. Diese Datei als solche enthält eine sogenannte Session-ID, mit welcher sich
|
|
||||||
verschiedene
|
|
||||||
Anfragen Ihres Browsers der gemeinsamen Sitzung zuordnen lassen. Dadurch kann Ihr Rechner wiedererkannt
|
|
||||||
werden, wenn
|
|
||||||
Sie auf unsere Website zurückkehren. Diese Cookies werden gelöscht, nachdem Sie Ihren Browser schließen. Sie
|
|
||||||
dienen z.
|
|
||||||
B. dazu, dass Sie die Warenkorbfunktion über mehrere Seiten hinweg nutzen können.<br/>
|
|
||||||
Wir verwenden in geringem Umfang auch persistente Cookies (ebenfalls kleine Textdateien, die auf Ihrem
|
|
||||||
Endgerät
|
|
||||||
abgelegt werden), die auf Ihrem Endgerät verbleiben und es uns ermöglichen, Ihren Browser beim nächsten
|
|
||||||
Besuch
|
|
||||||
wiederzuerkennen. Diese Cookies werden auf Ihrer Festplatte gespeichert und löschen sich nach der
|
|
||||||
vorgegebenen Zeit
|
|
||||||
von allein. Ihre Lebensdauer beträgt 1 Monat bis 10 Jahre. So können wir Ihnen unser Angebot
|
|
||||||
nutzerfreundlicher,
|
|
||||||
effektiver und sicherer präsentieren und Ihnen beispielsweise speziell auf Ihre Interessen abgestimmte
|
|
||||||
Informationen
|
|
||||||
auf der Seite anzeigen.<br/>
|
|
||||||
Unser berechtigtes Interesse an der Nutzung der Cookies gemäß Art 6 Abs. 1 S. 1 f) DSGVO liegt darin, unsere
|
|
||||||
Website
|
|
||||||
nutzerfreundlicher, effektiver und sicherer zu machen.<br/>
|
|
||||||
In den Cookies werden etwa folgende Daten und Informationen gespeichert:
|
|
||||||
</p>
|
|
||||||
<ul>
|
|
||||||
<li>Log-In-Informationen</li>
|
|
||||||
<li>Spracheinstellungen</li>
|
|
||||||
<li>eingegebene Suchbegriffe</li>
|
|
||||||
<li>Informationen über die Anzahl der Aufrufe unserer Website sowie Nutzung einzelner Funktionen unseres
|
|
||||||
Internetauftritts.
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<p>
|
|
||||||
Bei Aktivierung des Cookies wird diesem eine Identifikationsnummer zugewiesen und eine Zuordnung Ihrer
|
|
||||||
personenbezogenen Daten zu dieser Identifikationsnummer wird nicht vorgenommen. Ihr Name, Ihre IP-Adresse
|
|
||||||
oder
|
|
||||||
ähnliche Daten, die eine Zuordnung des Cookies zu Ihnen ermöglichen würden, werden nicht in den Cookie
|
|
||||||
eingelegt. Auf
|
|
||||||
Basis der Cookie-Technologie erhalten wir lediglich pseudonymisierte Informationen, beispielsweise darüber,
|
|
||||||
welche
|
|
||||||
Seiten unseres Shops besucht wurden, welche Produkte angesehen wurden, etc.<br/>
|
|
||||||
Sie können Ihren Browser so einstellen, dass Sie über das Setzen von Cookies vorab informiert werden und im
|
|
||||||
Einzelfall
|
|
||||||
entscheiden können, ob Sie die Annahme von Cookies für bestimmte Fälle oder generell ausschließen, oder dass
|
|
||||||
Cookies
|
|
||||||
komplett verhindert werden. Dadurch kann die Funktionalität der Website eingeschränkt werden.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h4>3.4 Nutzerkonto</h4>
|
|
||||||
<p>Sie können auf unserer Website ein Nutzerkonto anlegen. Wünschen Sie dies, so benötigen wir die beim Login
|
|
||||||
abgefragten
|
|
||||||
personenbezogenen Daten. Beim späteren Einloggen werden nur Ihre Email bzw. Benutzername und das von Ihnen
|
|
||||||
gewählte
|
|
||||||
Passwort benötigt.<br/>
|
|
||||||
Für die Neuregistrierung erheben wir Stammdaten (z. B. Name, Adresse), Kommunikationsdaten (z. B.
|
|
||||||
E-Mail-Adresse)
|
|
||||||
sowie Zugangsdaten (Benutzername u. Passwort).<br/>
|
|
||||||
Sie können ein einmal angelegtes Nutzerkonto jederzeit von uns löschen lassen, ohne dass hierfür andere
|
|
||||||
als die
|
|
||||||
Übermittlungskosten nach den Basistarifen entstehen. Eine Mitteilung in Textform an die unter Ziffer 1
|
|
||||||
genannten
|
|
||||||
Kontaktdaten (z.B. E-Mail, Fax, Brief) reicht hierfür aus. Wir werden dann Ihre gespeicherten
|
|
||||||
personenbezogenen Daten
|
|
||||||
löschen, soweit wir diese nicht noch zur Abwicklung von Bestellungen oder aufgrund gesetzlicher
|
|
||||||
Aufbewahrungspflichten
|
|
||||||
speichern müssen.<br/>
|
|
||||||
Rechtgrundlage für die Verarbeitung dieser Daten ist Ihre Einwilligung gemäß Art. 6 Abs. 1 S. 1 a)
|
|
||||||
DSGVO.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h4>3.5 E-Mail Kontakt</h4>
|
|
||||||
<p>
|
|
||||||
Wenn Sie mit uns in Kontakt treten (z. B. per Kontaktformular oder E-Mail), verarbeiten wir Ihre Angaben zur
|
|
||||||
Bearbeitung der Anfrage sowie für den Fall, dass Anschlussfragen entstehen.
|
|
||||||
Erfolgt die Datenverarbeitung zur Durchführung vorvertraglicher Maßnahmen, die auf Ihre Anfrage hin
|
|
||||||
erfolgen, bzw.,
|
|
||||||
wenn Sie bereits unser Kunde sind, zur Durchführung des Vertrages, ist Rechtsgrundlage für diese
|
|
||||||
Datenverarbeitung
|
|
||||||
Art. 6 Abs. 1 S. 1 b) DSGVO.
|
|
||||||
Weitere personenbezogene Daten verarbeiten wir nur, wenn Sie dazu einwilligen (Art. 6 Abs. 1 S. 1 a) DSGVO)
|
|
||||||
oder wir
|
|
||||||
ein berechtigtes Interesse an der Verarbeitung Ihrer Daten haben (Art. 6 Abs. 1 S. 1 f) DSGVO). Ein
|
|
||||||
berechtigtes
|
|
||||||
Interesse liegt z. B. darin, auf Ihre E-Mail zu antworten.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h3>4 Speicherdauer</h3>
|
|
||||||
<p>
|
|
||||||
Sofern nicht spezifisch angegeben speichern wir personenbezogene Daten nur so lange, wie dies zur Erfüllung
|
|
||||||
der
|
|
||||||
verfolgten Zwecke notwendig ist.<br/>
|
|
||||||
In einigen Fällen sieht der Gesetzgeber die Aufbewahrung von personenbezogenen Daten vor, etwa im Steuer-
|
|
||||||
oder
|
|
||||||
Handelsrecht. In diesen Fällen werden die Daten von uns lediglich für diese gesetzlichen Zwecke weiter
|
|
||||||
gespeichert,
|
|
||||||
aber nicht anderweitig verarbeitet und nach Ablauf der gesetzlichen Aufbewahrungsfrist gelöscht.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h3>5 Ihre Rechte als von der Datenverarbeitung Betroffener</h3>
|
|
||||||
<p>
|
|
||||||
Nach den anwendbaren Gesetzen haben Sie verschiedene Rechte bezüglich Ihrer personenbezogenen Daten. Möchten
|
|
||||||
Sie diese
|
|
||||||
Rechte geltend machen, so richten Sie Ihre Anfrage bitte per E-Mail oder per Post unter eindeutiger
|
|
||||||
Identifizierung
|
|
||||||
Ihrer Person an die in Ziffer 1 genannte Adresse.<br/>
|
|
||||||
Nachfolgend finden Sie eine Übersicht über Ihre Rechte.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h4>5.1 Recht auf Bestätigung und Auskunft</h4>
|
|
||||||
<p>
|
|
||||||
Sie haben das Recht auf eine übersichtliche Auskunft über die Verarbeitung Ihrer personenbezogenen
|
|
||||||
Daten.<br/>
|
|
||||||
Im Einzelnen:<br/>
|
|
||||||
|
|
||||||
Sie haben jederzeit das Recht, von uns eine Bestätigung darüber zu erhalten, ob Sie betreffende
|
|
||||||
personenbezogene Daten
|
|
||||||
verarbeitet werden. Ist dies der Fall, so haben Sie das Recht, von uns eine unentgeltliche Auskunft über die
|
|
||||||
zu Ihnen
|
|
||||||
gespeicherten personenbezogenen Daten nebst einer Kopie dieser Daten zu verlangen. Des Weiteren besteht ein
|
|
||||||
Recht auf
|
|
||||||
folgende Informationen:
|
|
||||||
</p>
|
|
||||||
<ol>
|
|
||||||
<li>die Verarbeitungszwecke;</li>
|
|
||||||
<li>die Kategorien personenbezogener Daten, die verarbeitet werden;</li>
|
|
||||||
<li>die Empfänger oder Kategorien von Empfängern, gegenüber denen die personenbezogenen Daten offengelegt
|
|
||||||
worden sind
|
|
||||||
oder noch offengelegt werden, insbesondere bei Empfängern in Drittländern oder bei internationalen
|
|
||||||
Organisationen;
|
|
||||||
</li>
|
|
||||||
<li>falls möglich, die geplante Dauer, für die die personenbezogenen Daten gespeichert werden, oder, falls
|
|
||||||
dies nicht
|
|
||||||
möglich ist, die Kriterien für die Festlegung dieser Dauer;
|
|
||||||
</li>
|
|
||||||
<li>das Bestehen eines Rechts auf Berichtigung oder Löschung der Sie betreffenden personenbezogenen Daten
|
|
||||||
oder auf
|
|
||||||
Einschränkung der Verarbeitung durch den Verantwortlichen oder eines Widerspruchsrechts gegen diese
|
|
||||||
Verarbeitung;
|
|
||||||
</li>
|
|
||||||
<li>das Bestehen eines Beschwerderechts bei einer Aufsichtsbehörde;</li>
|
|
||||||
<li>wenn die personenbezogenen Daten nicht bei Ihnen erhoben werden, alle verfügbaren Informationen über die
|
|
||||||
Herkunft
|
|
||||||
der Daten;
|
|
||||||
</li>
|
|
||||||
<li>das Bestehen einer automatisierten Entscheidungsfindung einschließlich Profiling gemäß Art. 22 Abs. 1
|
|
||||||
und 4 DSGVO
|
|
||||||
und – zumindest in diesen Fällen – aussagekräftige Informationen über die involvierte Logik sowie die
|
|
||||||
Tragweite
|
|
||||||
und die angestrebten Auswirkungen einer derartigen Verarbeitung für Sie.
|
|
||||||
</li>
|
|
||||||
</ol>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Werden personenbezogene Daten an ein Drittland oder an eine internationale Organisation übermittelt, so
|
|
||||||
haben Sie das
|
|
||||||
Recht, über die geeigneten Garantien gemäß Art. 46 DSGVO im Zusammenhang mit der Übermittlung unterrichtet
|
|
||||||
zu werden.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h4>5.2 Recht auf Berichtigung</h4>
|
|
||||||
<p>
|
|
||||||
Sie haben das Recht, von uns die Berichtigung und ggf. auch Vervollständigung Sie betreffender
|
|
||||||
personenbezogener Daten
|
|
||||||
zu verlangen.<br/>
|
|
||||||
Im Einzelnen:<br/>
|
|
||||||
Sie haben das Recht, von uns unverzüglich die Berichtigung Sie betreffender unrichtiger personenbezogener
|
|
||||||
Daten zu
|
|
||||||
verlangen. Unter Berücksichtigung der Zwecke der Verarbeitung haben Sie das Recht, die Vervollständigung
|
|
||||||
unvollständiger personenbezogener Daten – auch mittels einer ergänzenden Erklärung – zu verlangen.<br/>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h4>5.3 Recht auf Löschung ("Recht auf Vergessenwerden")</h4>
|
|
||||||
<p>
|
|
||||||
In einer Reihe von Fällen sind wir verpflichtet, Sie betreffende personenbezogene Daten zu löschen.<br/>
|
|
||||||
Im Einzelnen:<br/>
|
|
||||||
Sie haben gemäß Art. 17 Abs. 1 DSGVO das Recht, von uns zu verlangen, dass Sie betreffende personenbezogene
|
|
||||||
Daten
|
|
||||||
unverzüglich gelöscht werden, und wir sind verpflichtet, personenbezogene Daten unverzüglich zu löschen,
|
|
||||||
sofern einer
|
|
||||||
der folgenden Gründe zutrifft:
|
|
||||||
</p>
|
|
||||||
<ol>
|
|
||||||
<li>Die personenbezogenen Daten sind für die Zwecke, für die sie erhoben oder auf sonstige Weise verarbeitet
|
|
||||||
wurden,
|
|
||||||
nicht mehr notwendig.
|
|
||||||
</li>
|
|
||||||
<li>Sie widerrufen Ihre Einwilligung, auf die sich die Verarbeitung gemäß Art. 6 Abs. 1 S. 1 a) DSGVO oder
|
|
||||||
Art. 9 Abs.
|
|
||||||
2 a) DSGVO stützte, und es fehlt an einer anderweitigen Rechtsgrundlage für die Verarbeitung.
|
|
||||||
</li>
|
|
||||||
<li>Sie legen gemäß Art. 21 Abs. 1 DSGVO Widerspruch gegen die Verarbeitung ein und es liegen keine
|
|
||||||
vorrangigen
|
|
||||||
berechtigten Gründe für die Verarbeitung vor, oder Sie legen gemäß Art. 21 Abs. 2 DSGVO Widerspruch
|
|
||||||
gegen die
|
|
||||||
Verarbeitung ein.
|
|
||||||
</li>
|
|
||||||
<li>Die personenbezogenen Daten wurden unrechtmäßig verarbeitet.</li>
|
|
||||||
<li>Die Löschung der personenbezogenen Daten ist zur Erfüllung einer rechtlichen Verpflichtung nach dem
|
|
||||||
Unionsrecht
|
|
||||||
oder dem Recht der Mitgliedstaaten erforderlich, dem wir unterliegen.
|
|
||||||
</li>
|
|
||||||
<li>Die personenbezogenen Daten wurden in Bezug auf angebotene Dienste der Informationsgesellschaft gemäß
|
|
||||||
Art. 8 Abs.
|
|
||||||
1 DSGVO erhoben.
|
|
||||||
</li>
|
|
||||||
</ol>
|
|
||||||
<p>
|
|
||||||
Haben wir die personenbezogenen Daten öffentlich gemacht und sind wir gemäß Art. 17 Abs. 1 DSGVO zu deren
|
|
||||||
Löschung
|
|
||||||
verpflichtet, so treffen wir unter Berücksichtigung der verfügbaren Technologie und der
|
|
||||||
Implementierungskosten
|
|
||||||
angemessene Maßnahmen, auch technischer Art, um für die Datenverarbeitung Verantwortliche, die die
|
|
||||||
personenbezogenen
|
|
||||||
Daten verarbeiten, darüber zu informieren, dass Sie von ihnen die Löschung aller Links zu diesen
|
|
||||||
personenbezogenen
|
|
||||||
Daten oder von Kopien oder Replikationen dieser personenbezogenen Daten verlangt haben.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h4>5.4 Recht auf Einschränkung der Verarbeitung</h4>
|
|
||||||
<p>
|
|
||||||
In einer Reihe von Fällen sind Sie berechtigt, von uns eine Einschränkung der Verarbeitung Ihrer
|
|
||||||
personenbezogenen
|
|
||||||
Daten zu verlangen.<br/>
|
|
||||||
Im Einzelnen:<br/>
|
|
||||||
Sie haben das Recht, von uns die Einschränkung der Verarbeitung zu verlangen, wenn eine der folgenden
|
|
||||||
Voraussetzungen
|
|
||||||
gegeben ist:
|
|
||||||
</p>
|
|
||||||
<ol>
|
|
||||||
<li>die Richtigkeit der personenbezogenen Daten wird von Ihnen bestritten, und zwar für eine Dauer, die es
|
|
||||||
uns
|
|
||||||
ermöglicht, die Richtigkeit der personenbezogenen Daten zu überprüfen,
|
|
||||||
</li>
|
|
||||||
<li>die Verarbeitung unrechtmäßig ist und Sie die Löschung der personenbezogenen Daten ablehnten und
|
|
||||||
stattdessen die
|
|
||||||
Einschränkung der Nutzung der personenbezogenen Daten verlangt haben;
|
|
||||||
</li>
|
|
||||||
<li>wir die personenbezogenen Daten für die Zwecke der Verarbeitung nicht länger benötigen, Sie die Daten
|
|
||||||
jedoch zur
|
|
||||||
Geltendmachung, Ausübung oder Verteidigung von Rechtsansprüchen benötigen, oder
|
|
||||||
</li>
|
|
||||||
<li>Sie Widerspruch gegen die Verarbeitung gemäß Art. 21 Abs. 1 DSGVO eingelegt haben, solange noch nicht
|
|
||||||
feststeht,
|
|
||||||
ob die berechtigten Gründe unseres Unternehmens gegenüber den Ihren überwiegen.
|
|
||||||
</li>
|
|
||||||
</ol>
|
|
||||||
|
|
||||||
<h4>5.5 Recht auf Datenübertragbarkeit</h4>
|
|
||||||
<p>
|
|
||||||
Sie haben das Recht, Sie betreffende personenbezogene Daten maschinenlesbar zu erhalten, zu übermitteln,
|
|
||||||
oder von uns
|
|
||||||
übermitteln zu lasen.<br/>
|
|
||||||
Im Einzelnen:<br/>
|
|
||||||
Sie haben das Recht, die Sie betreffenden personenbezogenen Daten, die Sie uns bereitgestellt haben, in
|
|
||||||
einem
|
|
||||||
strukturierten, gängigen und maschinenlesbaren Format zu erhalten, und Sie haben das Recht, diese Daten
|
|
||||||
einem anderen
|
|
||||||
Verantwortlichen ohne Behinderung durch uns zu übermitteln, sofern
|
|
||||||
</p>
|
|
||||||
<ol>
|
|
||||||
<li>die Verarbeitung auf einer Einwilligung gemäß Art. 6 Abs. 1 S. 1 a) DSGVO oder Art. 9 Abs. 2 a) DSGVO
|
|
||||||
oder auf
|
|
||||||
einem Vertrag gemäß Art. 6 Abs. 1 S. 1 b) DSGVO beruht und
|
|
||||||
</li>
|
|
||||||
<li>die Verarbeitung mithilfe automatisierter Verfahren erfolgt.</li>
|
|
||||||
</ol>
|
|
||||||
<p>
|
|
||||||
Bei der Ausübung Ihres Rechts auf Datenübertragbarkeit gemäß Absatz 1 haben Sie das Recht, zu erwirken, dass
|
|
||||||
die
|
|
||||||
personenbezogenen Daten direkt von uns einem anderen Verantwortlichen übermittelt werden, soweit dies
|
|
||||||
technisch
|
|
||||||
machbar ist.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h4>5.6 Widerspruchsrecht</h4>
|
|
||||||
<p>
|
|
||||||
Sie haben das Recht, auch einer rechtmäßigen Verarbeitung Ihrer personenbezogenen Daten durch uns zu
|
|
||||||
widersprechen,
|
|
||||||
wenn sich dies aus Ihrer besonderen Situation begründet und unsere Interessen an der Verarbeitung nicht
|
|
||||||
überwiegen.<br/>
|
|
||||||
Im Einzelnen:<br/>
|
|
||||||
Sie haben das Recht, aus Gründen, die sich aus Ihrer besonderen Situation ergeben, jederzeit gegen die
|
|
||||||
Verarbeitung
|
|
||||||
Sie betreffender personenbezogener Daten, die aufgrund von Art. 6 Abs. 1 S. 1 e) oder f) DSGVO erfolgt,
|
|
||||||
Widerspruch
|
|
||||||
einzulegen; dies gilt auch für ein auf diese Bestimmungen gestütztes Profiling. Wir verarbeiten die
|
|
||||||
personenbezogenen
|
|
||||||
Daten nicht mehr, es sei denn, wir können zwingende schutzwürdige Gründe für die Verarbeitung nachweisen,
|
|
||||||
die Ihre
|
|
||||||
Interessen, Rechte und Freiheiten überwiegen, oder die Verarbeitung dient der Geltendmachung, Ausübung oder
|
|
||||||
Verteidigung von Rechtsansprüchen.<br/>
|
|
||||||
Werden personenbezogene Daten von uns verarbeitet, um Direktwerbung zu betreiben, so haben Sie das Recht,
|
|
||||||
jederzeit
|
|
||||||
Widerspruch gegen die Verarbeitung Sie betreffender personenbezogener Daten zum Zwecke derartiger Werbung
|
|
||||||
einzulegen;
|
|
||||||
dies gilt auch für das Profiling, soweit es mit solcher Direktwerbung in Verbindung steht.<br/>
|
|
||||||
Sie haben das Recht, aus Gründen, die sich aus Ihrer besonderen Situation ergeben, gegen die Sie betreffende
|
|
||||||
Verarbeitung Sie betreffender personenbezogener Daten, die zu wissenschaftlichen oder historischen
|
|
||||||
Forschungszwecken
|
|
||||||
oder zu statistischen Zwecken gemäß Art. 89 Abs. 1 DSGVO erfolgt, Widerspruch einzulegen, es sei denn, die
|
|
||||||
Verarbeitung ist zur Erfüllung einer im öffentlichen Interesse liegenden Aufgabe erforderlich.<br/>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h4>5.7 Automatisierte Entscheidungen einschließlich Profiling</h4>
|
|
||||||
<p>
|
|
||||||
Sie haben das Recht, nicht einer ausschließlich auf einer automatisierten Verarbeitung – einschließlich
|
|
||||||
Profiling –
|
|
||||||
beruhenden Entscheidung unterworfen zu werden, die Ihnen gegenüber rechtliche Wirkung entfaltet oder Sie in
|
|
||||||
ähnlicher
|
|
||||||
Weise erheblich beeinträchtigt.<br/>
|
|
||||||
Eine automatisierte Entscheidungsfindung auf der Grundlage der erhobenen personenbezogenen Daten findet
|
|
||||||
nicht statt.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h4>5.8 Recht auf Widerruf einer datenschutzrechtlichen Einwilligung</h4>
|
|
||||||
<p>
|
|
||||||
Sie haben das Recht, eine Einwilligung zur Verarbeitung personenbezogener Daten jederzeit zu widerrufen.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h4>5.9 Recht auf Beschwerde bei einer Aufsichtsbehörde</h4>
|
|
||||||
<p>
|
|
||||||
Sie haben das Recht auf Beschwerde bei einer Aufsichtsbehörde, insbesondere in dem Mitgliedstaat Ihres
|
|
||||||
Aufenthaltsorts, Ihres Arbeitsplatzes oder des Orts des mutmaßlichen Verstoßes, wenn Sie der Ansicht sind,
|
|
||||||
dass die
|
|
||||||
Verarbeitung der Sie betreffenden personenbezogenen Daten rechtswidrig ist.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h3>6 Datensicherheit</h3>
|
|
||||||
<p>
|
|
||||||
Wir sind um die Sicherheit Ihrer Daten im Rahmen der geltenden Datenschutzgesetze und technischen
|
|
||||||
Möglichkeiten
|
|
||||||
maximal bemüht.<br/>
|
|
||||||
Ihre persönlichen Daten werden bei uns verschlüsselt übertragen. Dies gilt für Ihre Bestellungen und auch
|
|
||||||
für das
|
|
||||||
Kundenlogin. Wir nutzen das Codierungssystem SSL (Secure Socket Layer), weisen jedoch darauf hin, dass die
|
|
||||||
Datenübertragung im Internet (z.B. bei der Kommunikation per E-Mail) Sicherheitslücken aufweisen kann. Ein
|
|
||||||
lückenloser
|
|
||||||
Schutz der Daten vor dem Zugriff durch Dritte ist nicht möglich.<br/>
|
|
||||||
Zur Sicherung Ihrer Daten unterhalten wir technische und organisatorische Sicherungsmaßnahmen entsprechend
|
|
||||||
Art. 32
|
|
||||||
DSGVO, die wir immer wieder dem Stand der Technik anpassen.<br/>
|
|
||||||
Wir gewährleisten außerdem nicht, dass unser Angebot zu bestimmten Zeiten zur Verfügung steht; Störungen,
|
|
||||||
Unterbrechungen oder Ausfälle können nicht ausgeschlossen werden. Die von uns verwendeten Server werden
|
|
||||||
regelmäßig
|
|
||||||
sorgfältig gesichert.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h3>7 Weitergabe von Daten an Dritte, keine Datenübertragung ins Nicht-EU-Ausland</h3>
|
|
||||||
<p>
|
|
||||||
Grundsätzlich verwenden wir Ihre personenbezogenen Daten nur innerhalb unseres Unternehmens.<br/>
|
|
||||||
Wenn und soweit wir Dritte im Rahmen der Erfüllung von Verträgen einschalten (etwa Logistik-Dienstleister),
|
|
||||||
erhalten
|
|
||||||
diese personenbezogene Daten nur in dem Umfang, in welchem die Übermittlung für die entsprechende Leistung
|
|
||||||
erforderlich ist.<br/>
|
|
||||||
Für den Fall, dass wir bestimmte Teile der Datenverarbeitung auslagern („Auftragsverarbeitung“),
|
|
||||||
verpflichten wir
|
|
||||||
Auftragsverarbeiter vertraglich dazu, personenbezogene Daten nur im Einklang mit den Anforderungen der
|
|
||||||
Datenschutzgesetze zu verwenden und den Schutz der Rechte der betroffenen Person zu gewährleisten.<br/>
|
|
||||||
Eine Datenübertragung an Stellen oder Personen außerhalb der EU außerhalb des in dieser Erklärung in Ziffer
|
|
||||||
4
|
|
||||||
genannten Falls findet nicht statt und ist nicht geplant.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h3>8 Datenschutzbeauftragter</h3>
|
|
||||||
<p>
|
|
||||||
Sollten Sie noch Fragen oder Bedenken zum Datenschutz haben, so wenden Sie sich bitte an unseren
|
|
||||||
Datenschutzbeauftragten:
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Jonas Seydel<br/>
|
|
||||||
August-Euler-Weg 3<br/>
|
|
||||||
76133 Karlsruhe<br/>
|
|
||||||
Germany<br/>
|
|
||||||
jon@s-seydel.de
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</Container>);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
import Head from 'next/head'
|
import Head from 'next/head';
|
||||||
import '../static/everypage.css'
|
import '../static/everypage.css';
|
||||||
import {Footer, TurniereNavigation} from "../js/CommonComponents";
|
import {Footer, TurniereNavigation} from '../js/CommonComponents';
|
||||||
import React from "react";
|
import React from 'react';
|
||||||
import {Button, Card, CardBody, Container, Form, FormGroup, FormText, Input, Label} from "reactstrap";
|
import { Button, Card, CardBody, Container, Form, FormGroup, FormText, Input, Label } from 'reactstrap';
|
||||||
import { register } from '../js/api'
|
import { register } from '../js/api';
|
||||||
import { connect } from 'react-redux'
|
import { connect } from 'react-redux';
|
||||||
|
|
||||||
export default () => (
|
export default () => (
|
||||||
<div className="main generic-fullpage-bg">
|
<div className="main generic-fullpage-bg">
|
||||||
|
|
@ -18,7 +18,7 @@ export default () => (
|
||||||
</div>
|
</div>
|
||||||
<Footer/>
|
<Footer/>
|
||||||
</div>
|
</div>
|
||||||
)
|
);
|
||||||
|
|
||||||
function Register() {
|
function Register() {
|
||||||
return (
|
return (
|
||||||
|
|
@ -37,7 +37,6 @@ function Register() {
|
||||||
}
|
}
|
||||||
|
|
||||||
class RegisterErrorList extends React.Component {
|
class RegisterErrorList extends React.Component {
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { error, errorMessages } = this.props;
|
const { error, errorMessages } = this.props;
|
||||||
if(error) {
|
if(error) {
|
||||||
|
|
@ -64,7 +63,7 @@ class RegisterErrorList extends React.Component {
|
||||||
|
|
||||||
const mapStateToErrorMessages = (state) => {
|
const mapStateToErrorMessages = (state) => {
|
||||||
const { errorMessages, error } = state.userinfo;
|
const { errorMessages, error } = state.userinfo;
|
||||||
return { errorMessages, error }
|
return { errorMessages, error };
|
||||||
};
|
};
|
||||||
|
|
||||||
const VisibleRegisterErrorList = connect(
|
const VisibleRegisterErrorList = connect(
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,10 @@
|
||||||
import Head from 'next/head'
|
import Head from 'next/head';
|
||||||
|
import React from 'react';
|
||||||
|
|
||||||
class FullscreenTournamentPage extends React.Component {
|
class FullscreenTournamentPage extends React.Component {
|
||||||
|
|
||||||
static async getInitialProps({query}) {
|
static async getInitialProps({query}) {
|
||||||
return {query}
|
return {query};
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
|
|
@ -19,4 +20,4 @@ class FullscreenTournamentPage extends React.Component {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export default FullscreenTournamentPage
|
export default FullscreenTournamentPage;
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,11 @@
|
||||||
import Head from 'next/head'
|
import Head from 'next/head';
|
||||||
import "../style.css"
|
import React from 'react';
|
||||||
|
import '../style.css';
|
||||||
|
|
||||||
class TournamentPage extends React.Component {
|
class TournamentPage extends React.Component {
|
||||||
|
|
||||||
static async getInitialProps({query}) {
|
static async getInitialProps({query}) {
|
||||||
return {query}
|
return {query};
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
|
|
@ -20,4 +21,4 @@ class TournamentPage extends React.Component {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export default TournamentPage
|
export default TournamentPage;
|
||||||
|
|
|
||||||
56
server.js
56
server.js
|
|
@ -1,36 +1,34 @@
|
||||||
const express = require('express')
|
const express = require('express');
|
||||||
const next = require('next')
|
const next = require('next');
|
||||||
|
|
||||||
const dev = process.env.NODE_ENV !== 'production'
|
const dev = process.env.NODE_ENV !== 'production';
|
||||||
const app = next({ dev })
|
const app = next({ dev });
|
||||||
const handle = app.getRequestHandler()
|
const handle = app.getRequestHandler();
|
||||||
|
|
||||||
app.prepare()
|
app.prepare()
|
||||||
.then(() => {
|
.then(() => {
|
||||||
const server = express()
|
const server = express();
|
||||||
|
|
||||||
server.get('/t/:code', (req, res) => {
|
server.get('/t/:code', (req, res) => {
|
||||||
const actualPage = '/tournament'
|
const actualPage = '/tournament';
|
||||||
const queryParam = { code: req.params.code }
|
const queryParam = { code: req.params.code };
|
||||||
app.render(req, res, actualPage, queryParam)
|
app.render(req, res, actualPage, queryParam);
|
||||||
})
|
});
|
||||||
|
|
||||||
server.get('/t/:code/fullscreen', (req, res) => {
|
server.get('/t/:code/fullscreen', (req, res) => {
|
||||||
const actualPage = '/tournament-fullscreen'
|
const actualPage = '/tournament-fullscreen';
|
||||||
const queryParam = { code: req.params.code }
|
const queryParam = { code: req.params.code };
|
||||||
app.render(req, res, actualPage, queryParam)
|
app.render(req, res, actualPage, queryParam);
|
||||||
})
|
});
|
||||||
|
|
||||||
server.get('*', (req, res) => {
|
server.get('*', (req, res) => {
|
||||||
return handle(req, res)
|
return handle(req, res);
|
||||||
})
|
});
|
||||||
|
|
||||||
server.listen(3000, (err) => {
|
server.listen(3000, (err) => {
|
||||||
if (err) throw err
|
if (err) throw err;
|
||||||
console.log('> Ready on http://localhost:3000')
|
});
|
||||||
})
|
})
|
||||||
})
|
.catch(() => {
|
||||||
.catch((ex) => {
|
process.exit(1);
|
||||||
console.error(ex.stack)
|
});
|
||||||
process.exit(1)
|
|
||||||
})
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue