From cc6e872f24718e2b0853654593d2405057bf1d98 Mon Sep 17 00:00:00 2001 From: Aichnerc Date: Fri, 24 Apr 2020 21:30:59 +0200 Subject: [PATCH 01/22] Add SmoothScrolling Some smooth scroll links have been added. --- src/components/molecules/Footer/index.jsx | 575 +++++++++--------- src/components/molecules/Navbar/index.jsx | 244 ++++---- .../organisms/sections/CallToAction/index.jsx | 118 ++-- .../organisms/sections/Hero/index.jsx | 217 +++---- 4 files changed, 586 insertions(+), 568 deletions(-) diff --git a/src/components/molecules/Footer/index.jsx b/src/components/molecules/Footer/index.jsx index 302b0e5..5f87d8a 100644 --- a/src/components/molecules/Footer/index.jsx +++ b/src/components/molecules/Footer/index.jsx @@ -2,19 +2,20 @@ // Contains all the functionality necessary to define React components import React from "react"; // React Router DOM bindings -import { Link } from "react-router-dom"; +import { Link, withRouter } from "react-router-dom"; //> MDB // "Material Design for Bootstrap" is a great UI design framework import { - MDBFooter, - MDBRow, - MDBCol, - MDBContainer, - MDBIcon, - MDBBtn, - MDBSwitch, - MDBBadge, + MDBFooter, + MDBRow, + MDBCol, + MDBContainer, + MDBIcon, + MDBBtn, + MDBSwitch, + MDBBadge, + MDBSmoothScroll, } from "mdbreact"; //> Images @@ -27,135 +28,137 @@ import "./footer.scss"; //> Dynamic texts // Slogans const slogans = [ - "Wählen Sie den Weg zum Erfolg!", - "Erhöhen Sie Ihren Bekanntheitsgrad!", - "Jetzt Beratungsgespräch vereinbaren!", - "Lassen Sie sich von uns beraten!", - "Worauf warten Sie noch?", - "Der Erfolg wartet!", + "Wählen Sie den Weg zum Erfolg!", + "Erhöhen Sie Ihren Bekanntheitsgrad!", + "Jetzt Beratungsgespräch vereinbaren!", + "Lassen Sie sich von uns beraten!", + "Worauf warten Sie noch?", + "Der Erfolg wartet!", ]; class Footer extends React.PureComponent { - state = { - slogan: "", - }; + state = { + slogan: "", + }; - // Update parent state (Root Component) - handleSwitchChange = () => { - this.props.handler(); - }; + // Update parent state (Root Component) + handleSwitchChange = () => { + this.props.handler(); + }; - // When component is ready to mount - componentWillMount() { - this._getSlogan(); - } + // When component is ready to mount + componentWillMount() { + this._getSlogan(); + } - // Get a random slogan and save to state - _getSlogan = () => { - this.setState({ - slogan: slogans[Math.floor(Math.random() * slogans.length)], - }); - }; + // Get a random slogan and save to state + _getSlogan = () => { + this.setState({ + slogan: slogans[Math.floor(Math.random() * slogans.length)], + }); + }; - render() { - return ( - - - -

Verbinde Dich mit uns!

-
- - - - - - - - - - - - - - - - - + + +

Verbinde Dich mit uns!

+
+ + + + + + + + + + + + + + + + + - - - - - - -
- - - - - -
Dienste
-
- +
+ +
Kontakt
+
+ +
+ +

{this.state.slogan}

+ {location.pathname === "/" ? ( + + + Kontakt + + + ) : ( + + + Kontakt + + + )} +
+
+
+
+ + © 2017 - {new Date().getFullYear()} Copyright: Werbeagentur + Christian Aichner +
+ + Stable release + · + Version v{process.env.REACT_APP_VERSION} + · + + + View on GitHub + + · + + + Report bug + + +
+

+ Made with{" "} + {" "} + by us. +

+
+
+
+ ); + } } -export default Footer; +export default withRouter(Footer); /** * SPDX-License-Identifier: (EUPL-1.2) diff --git a/src/components/molecules/Navbar/index.jsx b/src/components/molecules/Navbar/index.jsx index 149d4b9..97903ab 100644 --- a/src/components/molecules/Navbar/index.jsx +++ b/src/components/molecules/Navbar/index.jsx @@ -6,17 +6,17 @@ import { withRouter, Link } from "react-router-dom"; //> MDB // "Material Design for Bootstrap" is a great UI design framework import { - MDBNavbar, - MDBNavbarBrand, - MDBNavbarNav, - MDBNavbarToggler, - MDBCollapse, - MDBNavItem, - MDBNavLink, - MDBContainer, - MDBSmoothScroll, - MDBBtn, - MDBIcon, + MDBNavbar, + MDBNavbarBrand, + MDBNavbarNav, + MDBNavbarToggler, + MDBCollapse, + MDBNavItem, + MDBNavLink, + MDBContainer, + MDBSmoothScroll, + MDBBtn, + MDBIcon, } from "mdbreact"; //> Images @@ -27,120 +27,114 @@ import { ReactComponent as Logo } from "../../../assets/content/logo_main.svg"; import "./navbar.scss"; class Navbar extends React.Component { - constructor(props) { - super(props); - - this.state = { - collapseID: "", - }; - } - - toggleCollapse = (collapseID) => () => - this.setState((prevState) => ({ - collapseID: prevState.collapseID !== collapseID ? collapseID : "", - })); - - closeCollapse = (collapseID) => () => { - window.scrollTo(0, 0); - this.state.collapseID === collapseID && this.setState({ collapseID: "" }); - }; - - // Get navbar mode - getMode = () => { - let opts = {}; - - if (this.props.darkMode) { - opts["dark"] = "dark"; - } else { - opts["light"] = "light"; - } - - return opts; - }; - - render() { - const overlay = ( -
- ); - - // Get react-router-dom location and navbar collapseID - const { location } = this.props; - const { collapseID } = this.state; - - // Debugging - //console.log(location); - - return ( -
- - - - - - - - - - - - Termin - - - - - - Kostenlose Analyse - - - - {location.pathname === "/" ? ( - - Home - - ) : ( - - Home - - )} - - - - Login - - - - - - - {collapseID && overlay} -
- ); - } + constructor(props) { + super(props); + + this.state = { + collapseID: "", + }; + } + + toggleCollapse = (collapseID) => () => + this.setState((prevState) => ({ + collapseID: prevState.collapseID !== collapseID ? collapseID : "", + })); + + closeCollapse = (collapseID) => () => { + window.scrollTo(0, 0); + this.state.collapseID === collapseID && this.setState({ collapseID: "" }); + }; + + render() { + const overlay = ( +
+ ); + + // Get react-router-dom location and navbar collapseID + const { location } = this.props; + const { collapseID } = this.state; + + // Debugging + //console.log(location); + + return ( +
+ + + + + + + + + + + + Termin + + + + + {location.pathname === "/" ? ( + + Kostenlose Analyse + + ) : ( + + Kostenlose Analyse + + )} + + + {location.pathname === "/" ? ( + + Home + + ) : ( + + Home + + )} + + + + Login + + + + + + + {collapseID && overlay} +
+ ); + } } export default withRouter(Navbar); diff --git a/src/components/organisms/sections/CallToAction/index.jsx b/src/components/organisms/sections/CallToAction/index.jsx index 5a9582b..44c1876 100644 --- a/src/components/organisms/sections/CallToAction/index.jsx +++ b/src/components/organisms/sections/CallToAction/index.jsx @@ -10,7 +10,15 @@ import { Parallax } from "react-scroll-parallax"; //> MDB // "Material Design for Bootstrap" is a great UI design framework -import { MDBRow, MDBCol, MDBBtn, MDBView, MDBIcon, MDBMask } from "mdbreact"; +import { + MDBRow, + MDBCol, + MDBBtn, + MDBView, + MDBIcon, + MDBMask, + MDBSmoothScroll, +} from "mdbreact"; //> Images // Rocket @@ -21,61 +29,61 @@ import planet1 from "../../../../assets/content/icons/planet1.jpg"; import "./callToAction.scss"; class CallToAction extends React.Component { - render() { - const { darkMode } = this.props; + render() { + const { darkMode } = this.props; - return ( -
- - - - - - - Moon - - - - - - - - Rocket - - - - - - - - -

- Es ist einfach, jetzt zu starten! -

-

Und der Einstieg und die Erstberatung sind kostenlos.

- - - - Jetzt starten - - -
- - - - - - Moon - - - - - - -
-
- ); - } + return ( +
+ + + + + + + Moon + + + + + + + + Rocket + + + + + + + + +

+ Es ist einfach, jetzt zu starten! +

+

Und der Einstieg und die Erstberatung sind kostenlos.

+ + + + Jetzt starten + + +
+ + + + + + Moon + + + + + + +
+
+ ); + } } export default CallToAction; diff --git a/src/components/organisms/sections/Hero/index.jsx b/src/components/organisms/sections/Hero/index.jsx index d6b32db..5d7c9c5 100644 --- a/src/components/organisms/sections/Hero/index.jsx +++ b/src/components/organisms/sections/Hero/index.jsx @@ -11,14 +11,15 @@ import { Radar } from "react-chartjs-2"; //> MDB // "Material Design for Bootstrap" is a great UI design framework import { - MDBRow, - MDBCol, - MDBBtn, - MDBView, - MDBContainer, - MDBIcon, - MDBCard, - MDBCardBody, + MDBRow, + MDBCol, + MDBBtn, + MDBView, + MDBContainer, + MDBIcon, + MDBCard, + MDBCardBody, + MDBSmoothScroll, } from "mdbreact"; //> Images @@ -32,112 +33,114 @@ import "./hero.scss"; import radarSettings from "./radarSettings.js"; class HomePage extends React.Component { - state = { - valuesRadar: undefined, - }; + state = { + valuesRadar: undefined, + }; - componentDidMount = () => { - // Set random values for the signet chart - if (!this.state.valuesRadar) { - this.setState({ valuesRadar: this.generateRandom() }); - } - // Generate new random values every 1000 ms - this.interval = setInterval( - () => this.setState({ valuesRadar: this.generateRandom() }), - 1000 - ); - }; + componentDidMount = () => { + // Set random values for the signet chart + if (!this.state.valuesRadar) { + this.setState({ valuesRadar: this.generateRandom() }); + } + // Generate new random values every 1000 ms + this.interval = setInterval( + () => this.setState({ valuesRadar: this.generateRandom() }), + 1000 + ); + }; - componentWillUnmount() { - clearInterval(this.interval); - } + componentWillUnmount() { + clearInterval(this.interval); + } - generateRandom = () => { - let min = Math.ceil(10); - let max = Math.floor(100); - let arr = [1, 2, 3, 4, 5, 6, 7, 8]; - let results = arr.map((item, i) => { - return Math.floor(Math.random() * (max - min + 1)) + min; - }); + generateRandom = () => { + let min = Math.ceil(10); + let max = Math.floor(100); + let arr = [1, 2, 3, 4, 5, 6, 7, 8]; + let results = arr.map((item, i) => { + return Math.floor(Math.random() * (max - min + 1)) + min; + }); - return results; - }; + return results; + }; - getRadarData = () => { - return { - labels: [ - "Website", - "SEO", - "Präsenz", - "Instagram", - "Erscheinungsbild", - "Image", - "Facebook", - "Google Business", - ], - datasets: [ - { - backgroundColor: "rgba(246, 26, 66, 0.5)", - borderColor: "rgb(246, 26, 66)", - data: this.state.valuesRadar, - }, - ], - }; - }; + getRadarData = () => { + return { + labels: [ + "Website", + "SEO", + "Präsenz", + "Instagram", + "Erscheinungsbild", + "Image", + "Facebook", + "Google Business", + ], + datasets: [ + { + backgroundColor: "rgba(246, 26, 66, 0.5)", + borderColor: "rgb(246, 26, 66)", + data: this.state.valuesRadar, + }, + ], + }; + }; - render() { - const { darkMode } = this.props; + render() { + const { darkMode } = this.props; - return ( -
- - - - -

- Deine Vision ist unser Auftrag -

- - Mehr erfahren - - -
- - - -
-
-
- - - - - - - -

Was taugt Deine Online-Präsenz?

-

- Unsere kostenlose Analyse zeigt Dir den - aktuellen Stand Deiner gesamten Online-Präsenz und liefert - individuelle und unkomplizierte Lösungen. -

- - - - JETZT kostenlos herausfinden - - -
-
-
-
-
- ); - } + return ( +
+ + + + +

+ Deine Vision ist unser Auftrag +

+ + + Mehr erfahren + + + +
+ + + +
+
+
+ + + + + + + +

Was taugt Deine Online-Präsenz?

+

+ Unsere kostenlose Analyse zeigt Dir den + aktuellen Stand Deiner gesamten Online-Präsenz und liefert + individuelle und unkomplizierte Lösungen. +

+ + + + JETZT kostenlos herausfinden + + +
+
+
+
+
+ ); + } } export default HomePage; From 63d17d534651f71ba3f331f456be5099c300ee17 Mon Sep 17 00:00:00 2001 From: Aichnerc Date: Fri, 24 Apr 2020 21:32:03 +0200 Subject: [PATCH 02/22] Add contact functionality It is now possible to use the contact form. Although updates for anon user and error messages are being required. --- .../organisms/sections/ContactForm/index.jsx | 404 ++++++++++-------- src/index.js | 48 ++- src/store/actions/contactActions.js | 28 ++ src/store/reducers/contactReducer.js | 33 ++ src/store/reducers/rootReducer.js | 3 + 5 files changed, 306 insertions(+), 210 deletions(-) create mode 100644 src/store/actions/contactActions.js create mode 100644 src/store/reducers/contactReducer.js diff --git a/src/components/organisms/sections/ContactForm/index.jsx b/src/components/organisms/sections/ContactForm/index.jsx index a8cea3b..7d25327 100644 --- a/src/components/organisms/sections/ContactForm/index.jsx +++ b/src/components/organisms/sections/ContactForm/index.jsx @@ -7,20 +7,26 @@ import { Link } from "react-router-dom"; //> MDB // "Material Design for Bootstrap" is a great UI design framework import { - MDBRow, - MDBCol, - MDBBtn, - MDBView, - MDBContainer, - MDBCard, - MDBCardBody, - MDBAlert, - MDBIcon, + MDBRow, + MDBCol, + MDBBtn, + MDBView, + MDBContainer, + MDBCard, + MDBCardBody, + MDBAlert, + MDBIcon, } from "mdbreact"; //> Images // To be added +//> Redux +// Connect +import { connect } from "react-redux"; +// Actions +import { createContact } from "../../../../store/actions/contactActions"; + //> CSS import "./contactForm.scss"; @@ -28,186 +34,210 @@ import "./contactForm.scss"; // To be added class ContactForm extends React.Component { - state = { - fullname: "", - email: "", - phone: "", - note: "", - }; - - onTextChange = (e) => { - this.setState({ - [e.target.name]: e.target.value, - }); - }; - - onCheckChange = (e) => { - this.setState({ - [e.target.name]: e.target.checked, - }); - }; - - render() { - const { darkMode } = this.props; - - return ( -
- - - - - -

Kontakt aufnehmen

-

- Du hast eine Projektidee und bist Dir nicht sicher um deren - Umsetzung? Du benötigst einen Web-Shop, Imagefilm, eine - Website oder eine individuelle Applikation? Zögere nicht und - kontaktiere uns. -

-
this.handleSubmit(e)}> -
-
- - - -
- this.onTextChange(e)} - aria-describedby="basic-addon" - required - /> -
-
-
- - - -
- this.onTextChange(e)} - aria-describedby="basic-addon" - required - /> -
-
-
- - - -
- this.onTextChange(e)} - aria-describedby="basic-addon" - /> -
-
-
- - - -
- -
- - - Absenden - -
-
-
-
- - - -

Direkt Termin ausmachen

-

- Die Erstberatung ist immer kostenlos. -

-

- Jetzt einfach und online Termin festlegen. -

- - - - Termin ausmachen - - -
-
- - oder - -
-
- - - - E-Mail senden - - - this.setState({ call: true })} - disabled={this.state.call} - > - - Anrufen - - {this.state.call && ( - - - Du kannst uns täglich von 9:00 bis 18:00 telefonisch - unter -
- - +43 681 205 027 54 - {" "} - erreichen. -
-
- )} -
-
-
-
-
-
- ); - } + state = { + fullname: "", + email: "", + phone: "", + note: "", + }; + + onTextChange = (e) => { + this.setState({ + [e.target.name]: e.target.value, + }); + }; + + onCheckChange = (e) => { + this.setState({ + [e.target.name]: e.target.checked, + }); + }; + + handleSubmit = (e) => { + e.preventDefault(); + + this.props.createContact({ + fullname: this.state.fullname, + email: this.state.email, + phone: this.state.phone, + note: this.state.note, + }); + }; + + render() { + const { darkMode } = this.props; + + return ( +
+ + + + + +

Kontakt aufnehmen

+

+ Du hast eine Projektidee und bist Dir nicht sicher um deren + Umsetzung? Du benötigst einen Web-Shop, Imagefilm, eine + Website oder eine individuelle Applikation? Zögere nicht und + kontaktiere uns. +

+
this.handleSubmit(e)}> +
+
+ + + +
+ this.onTextChange(e)} + aria-describedby="basic-addon" + required + /> +
+
+
+ + + +
+ this.onTextChange(e)} + aria-describedby="basic-addon" + required + /> +
+
+
+ + + +
+ this.onTextChange(e)} + aria-describedby="basic-addon" + /> +
+
+
+ + + +
+ +
+ + + Absenden + +
+
+
+
+ + + +

Direkt Termin ausmachen

+

+ Die Erstberatung ist immer kostenlos. +

+

+ Jetzt einfach und online Termin festlegen. +

+ + + + Termin ausmachen + + +
+
+ + oder + +
+
+ + + + E-Mail senden + + + this.setState({ call: true })} + disabled={this.state.call} + > + + Anrufen + + {this.state.call && ( + + + Du kannst uns täglich von 9:00 bis 18:00 telefonisch + unter +
+ + +43 681 205 027 54 + {" "} + erreichen. +
+
+ )} +
+
+
+
+
+
+ ); + } } -export default ContactForm; +const mapStateToProps = (state) => { + return { + auth: state.firebase.auth, + contact: state.contact, + }; +}; + +const mapDispatchToProps = (dispatch) => { + return { + createContact: (newContact) => dispatch(createContact(newContact)), + }; +}; + +export default connect(mapStateToProps, mapDispatchToProps)(ContactForm); /** * SPDX-License-Identifier: (EUPL-1.2) diff --git a/src/index.js b/src/index.js index b2ef670..d76da6a 100644 --- a/src/index.js +++ b/src/index.js @@ -64,33 +64,35 @@ const userCollection = "partners"; const onlyLoadWhenReady = true; // Create Redux data-store and store it in store and apply thunk middleware const store = createStore( - rootReducer, - compose( - applyMiddleware( - thunk.withExtraArgument({ - getFirebase, // Firebase - getFirestore, // Cloud Firestore Database - }) - ), - reduxFirestore(fbInit), - reactReduxFirebase(fbInit, { - useFirestoreForProfile: syncUserToAuth, - userProfile: userCollection, - attachAuthIsReady: onlyLoadWhenReady, - }) - ) + rootReducer, + compose( + applyMiddleware( + thunk.withExtraArgument({ + getFirebase, // Firebase + getFirestore, // Cloud Firestore Database + }) + ), + reduxFirestore(fbInit), + reactReduxFirebase(fbInit, { + useFirestoreForProfile: syncUserToAuth, + userProfile: userCollection, + attachAuthIsReady: onlyLoadWhenReady, + }) + ) ); // Wait until firebase is initialized, then render the DOM store.firebaseAuthIsReady.then(() => { - // Render the DOM - ReactDOM.render( - - - , - document.getElementById("root") - ); - registerServiceWorker(); + // Render the DOM + ReactDOM.render( + + + + + , + document.getElementById("root") + ); + registerServiceWorker(); }); /** diff --git a/src/store/actions/contactActions.js b/src/store/actions/contactActions.js new file mode 100644 index 0000000..75a8c7f --- /dev/null +++ b/src/store/actions/contactActions.js @@ -0,0 +1,28 @@ +export const createContact = (newContact) => { + return (dispatch, getState, { getFirebase, getFirestore }) => { + const firestore = getFirestore(); + + // Create contact post + firestore + .collection("contact") + .doc() + .set({ + ...newContact, + timestamp: new Date().getTime(), + assigned: null, + processed: false, + }) + .then(() => { + dispatch({ type: "CONTACT_SUCCESS" }); + return; + }) + .catch((err) => { + dispatch({ type: "CONTACT_ERROR", err }); + }); + }; +}; + +/** + * SPDX-License-Identifier: (EUPL-1.2) + * Copyright © 2019-2020 Werbeagentur Christian Aichner + */ diff --git a/src/store/reducers/contactReducer.js b/src/store/reducers/contactReducer.js new file mode 100644 index 0000000..3e94efa --- /dev/null +++ b/src/store/reducers/contactReducer.js @@ -0,0 +1,33 @@ +// Have initial state for when state is not ready to be passed +const initState = { + contactError: null, + contactSuccess: null, +}; + +const contactReducer = (state = initState, action) => { + switch (action.type) { + case "CONTACT_SUCCESS": + console.log("Contact created"); + return { + ...state, + contactError: undefined, + contactSuccess: true, + }; + case "CONTACT_ERROR": + console.log("Error creating contact", action.err); + return { + ...state, + contactError: true, + contactSuccess: false, + }; + default: + return state; + } +}; + +export default contactReducer; + +/** + * SPDX-License-Identifier: (EUPL-1.2) + * Copyright © 2019-2020 Werbeagentur Christian Aichner + */ diff --git a/src/store/reducers/rootReducer.js b/src/store/reducers/rootReducer.js index a4bc121..240b4fd 100644 --- a/src/store/reducers/rootReducer.js +++ b/src/store/reducers/rootReducer.js @@ -1,6 +1,8 @@ //> Reducers // Authentication import authReducer from "./authReducer"; +// Contact +import contactReducer from "./contactReducer"; //> Redux import { combineReducers } from "redux"; @@ -13,6 +15,7 @@ import { firebaseReducer } from "react-redux-firebase"; const rootReducer = combineReducers({ auth: authReducer, + contact: contactReducer, firestore: firestoreReducer, firebase: firebaseReducer, // Authentication }); From 76a1fb82c8b501a9254c176efa3a43c54d5044dd Mon Sep 17 00:00:00 2001 From: Aichnerc Date: Fri, 24 Apr 2020 21:44:21 +0200 Subject: [PATCH 03/22] Improve code quality Some unused imports and variables have been removed. --- src/Routes.js | 5 - src/components/molecules/Footer/index.jsx | 6 +- src/components/molecules/Navbar/index.jsx | 2 +- .../organisms/sections/CallToAction/index.jsx | 4 +- .../organisms/sections/ContactForm/index.jsx | 3 +- .../organisms/sections/Hero/index.jsx | 4 - .../organisms/sections/Services/index.jsx | 6 +- src/components/pages/BrandingPage/index.jsx | 657 ++++++++---------- src/components/pages/LocationPage/index.jsx | 5 +- src/components/pages/MessagePage/index.jsx | 2 +- 10 files changed, 317 insertions(+), 377 deletions(-) diff --git a/src/Routes.js b/src/Routes.js index 0be368a..8bec503 100644 --- a/src/Routes.js +++ b/src/Routes.js @@ -5,14 +5,9 @@ import React from "react"; import { Route, Switch } from "react-router-dom"; //> Components -/** - * HomePage: A basic template page - */ import { HomePage, MessagePage, - LoginPage, - ProfilePage, PrintingPage, BrandingPage, LocationPage, diff --git a/src/components/molecules/Footer/index.jsx b/src/components/molecules/Footer/index.jsx index 5f87d8a..56fc552 100644 --- a/src/components/molecules/Footer/index.jsx +++ b/src/components/molecules/Footer/index.jsx @@ -263,7 +263,11 @@ class Footer extends React.PureComponent { Villach-Landskron, Kärnten, AT - +
  • Termin ausmachen diff --git a/src/components/molecules/Navbar/index.jsx b/src/components/molecules/Navbar/index.jsx index 97903ab..bc967df 100644 --- a/src/components/molecules/Navbar/index.jsx +++ b/src/components/molecules/Navbar/index.jsx @@ -1,7 +1,7 @@ //> React // Contains all the functionality necessary to define React components import React from "react"; -import { withRouter, Link } from "react-router-dom"; +import { withRouter } from "react-router-dom"; //> MDB // "Material Design for Bootstrap" is a great UI design framework diff --git a/src/components/organisms/sections/CallToAction/index.jsx b/src/components/organisms/sections/CallToAction/index.jsx index 44c1876..3374acc 100644 --- a/src/components/organisms/sections/CallToAction/index.jsx +++ b/src/components/organisms/sections/CallToAction/index.jsx @@ -2,7 +2,7 @@ // Contains all the functionality necessary to define React components import React from "react"; // React Router DOM bindings -import { Link } from "react-router-dom"; +//import { Link } from "react-router-dom"; //> Additional libraries // Parallax @@ -33,7 +33,7 @@ class CallToAction extends React.Component { const { darkMode } = this.props; return ( -
    +
    diff --git a/src/components/organisms/sections/ContactForm/index.jsx b/src/components/organisms/sections/ContactForm/index.jsx index 7d25327..fca8a88 100644 --- a/src/components/organisms/sections/ContactForm/index.jsx +++ b/src/components/organisms/sections/ContactForm/index.jsx @@ -2,7 +2,7 @@ // Contains all the functionality necessary to define React components import React from "react"; // Router -import { Link } from "react-router-dom"; +//import { Link } from "react-router-dom"; //> MDB // "Material Design for Bootstrap" is a great UI design framework @@ -10,7 +10,6 @@ import { MDBRow, MDBCol, MDBBtn, - MDBView, MDBContainer, MDBCard, MDBCardBody, diff --git a/src/components/organisms/sections/Hero/index.jsx b/src/components/organisms/sections/Hero/index.jsx index 5d7c9c5..a5c0b84 100644 --- a/src/components/organisms/sections/Hero/index.jsx +++ b/src/components/organisms/sections/Hero/index.jsx @@ -1,8 +1,6 @@ //> React // Contains all the functionality necessary to define React components import React from "react"; -// Router -import { Link } from "react-router-dom"; //> Additional // Chart @@ -17,8 +15,6 @@ import { MDBView, MDBContainer, MDBIcon, - MDBCard, - MDBCardBody, MDBSmoothScroll, } from "mdbreact"; diff --git a/src/components/organisms/sections/Services/index.jsx b/src/components/organisms/sections/Services/index.jsx index 501a923..71411ff 100644 --- a/src/components/organisms/sections/Services/index.jsx +++ b/src/components/organisms/sections/Services/index.jsx @@ -1,12 +1,12 @@ //> React // Contains all the functionality necessary to define React components import React from "react"; -// Router Link -import { Link } from "react-router-dom"; +// Router +//import { Link } from "react-router-dom"; //> MDB // "Material Design for Bootstrap" is a great UI design framework -import { MDBRow, MDBCol, MDBBtn, MDBContainer } from "mdbreact"; +import { MDBRow, MDBCol, MDBContainer } from "mdbreact"; //> CSS import "./services.scss"; diff --git a/src/components/pages/BrandingPage/index.jsx b/src/components/pages/BrandingPage/index.jsx index 94afc00..c57fc84 100644 --- a/src/components/pages/BrandingPage/index.jsx +++ b/src/components/pages/BrandingPage/index.jsx @@ -5,15 +5,15 @@ import React from "react"; //> MDB // "Material Design for Bootstrap" is a great UI design framework import { - MDBContainer, - MDBRow, - MDBCol, - MDBCard, - MDBCardBody, - MDBTable, - MDBTableBody, - MDBBtn, - MDBIcon, + MDBContainer, + MDBRow, + MDBCol, + MDBCard, + MDBCardBody, + MDBTable, + MDBTableBody, + MDBBtn, + MDBIcon, } from "mdbreact"; //> CSS @@ -26,353 +26,302 @@ import { ReactComponent as Logo } from "../../../assets/content/logo_full.svg"; import weddingsLogo from "../../../assets/content/weddings.png"; class BrandingPage extends React.Component { - componentDidMount = () => { - // Set page title - document.title = "Evolving Our Identity"; - }; + componentDidMount = () => { + // Set page title + document.title = "Evolving Our Identity"; + }; - downloadImage = (type, format) => { - // Preset variable - let options = undefined; + render() { + const { globalProps } = this.props; - // Check what URL to get - switch (type) { - case "dark": - switch (format) { - case "svg": - options = { - url: "https://www.aichner-christian.com/public/logo_dark.svg", - }; - break; - case "png": - options = { - url: "https://www.aichner-christian.com/public/logo_dark.png", - }; - break; - default: - break; - } - break; - case "light": - switch (format) { - case "svg": - options = { - url: "https://www.aichner-christian.com/public/logo_white.svg", - }; - break; - case "png": - options = { - url: "https://www.aichner-christian.com/public/logo_white.png", - }; - break; - default: - break; - } - break; - case "wedding": - options = { - url: "https://www.aichner-christian.com/public/logo_wedding.png", - }; - break; - default: - break; - } - - //> Temp output of the file URL - //console.log(options); - }; - - render() { - const { globalProps } = this.props; - - return ( -
    - -

    Logos und Verwendung

    - - - - -

    Logo (on light)

    - -
    - this.downloadImage("dark", "svg")} - > - - .svg - - this.downloadImage("dark", "png")} - > - - .png - -
    -
    -
    -
    - - - -

    Logo (on dark)

    - -
    - this.downloadImage("light", "svg")} - > - - .svg - - this.downloadImage("light", "png")} - > - - .png - -
    -
    -
    -
    - - - -

    Wedding Logo (universal)

    - Weddings logo -
    - this.downloadImage("wedding", "png")} - > - - .png - -
    -
    -
    -
    -
    - - -

    Mach diese tollen Dinge

    -
      -
    • -

      - - Verwende unser Logo um auf uns zu verlinken -

      -
    • -
    • -

      - - Verwende unser Logo in Deinem Blog oder Nachrichtenartikel - über uns -

      -
    • -
    • -

      - - Verwende unser Logo um auf Zusammenarbeit hinzuweisen -

      -
    • -
    -
    - -

    - Bitte tu diese Dinge nicht -

    -
      -
    • -

      - - Verwendung des Logos für eigene Zwecke -

      -
    • -
    • -

      - - Erstellung einer abgeänderten / modifizierten Version des - Logos -

      -
    • -
    • -

      - - Einbettung des Logos in Dein eigenes Logo -

      -
    • -
    • -

      - - Verwendung jeglicher Schaffungen der Agentur ohne Erlaubnis -

      -
    • -
    • -

      - - Verkauf jeglicher Schaffungen der Agentur ohne Erlaubnis -

      -
    • -
    • -

      - - Jegliche Veränderung des Logos (z.B. Farben, Maße, Text, - ...) -

      -
    • -
    • -

      - - Einbettung des Logos auf unpassendem Hintergrund (z.B. - Dunkles Logo auf dunklem Hintergrund) -

      -
    • -
    -
    -
    -
    - - - - -

    AGENCY RED

    - - - - HEX COLOR - #f61a42 - - - RGB - 246, 26, 66 - - - HSL - 349°, 92%, 53% - - - CMYK - 0%, 89%, 73%, 4% - - - -
    -
    -
    - - - -

    AGENCY DARK

    - - - - HEX COLOR - #212529 - - - RGB - 33, 37, 41 - - - HSL - 210°, 11%, 15% - - - CMYK - 20%, 10%, 0%, 84% - - - -
    -
    -
    - - - -

    AGENCY LIGHT

    - - - - HEX COLOR - #e5e5e5 - - - RGB - 229, 229, 229 - - - HSL - 0°, 0%, 90% - - - CMYK - 0%, 0%, 0%, 10% - - - -
    -
    -
    -
    -
    - - -

    Bitte kontaktiere uns

    -

    - wenn Du unsere Schaffungen verwenden willst oder Du diese in - einem Video oder Mainstream-Medien verwenden willst. -

    - - Kontakt - -
    - -

    - Du willst über uns berichten? -

    -

    - Nutze gerne unsere Ressourcen unter Berücksichtung der oben - angeführten Regeln. -

    -

    Du benötigst Auskunft?

    -

    - Über firmeninterne Details können wir Dir für deinen Bericht / - Blog / Artikel gerne Auskunft geben. -

    - - Kontakt - -
    -
    -
    -
    - ); - } + return ( +
    + +

    Logos und Verwendung

    + + + + +

    Logo (on light)

    + +
    + this.downloadImage("dark", "svg")} + > + + .svg + + this.downloadImage("dark", "png")} + > + + .png + +
    +
    +
    +
    + + + +

    Logo (on dark)

    + +
    + this.downloadImage("light", "svg")} + > + + .svg + + this.downloadImage("light", "png")} + > + + .png + +
    +
    +
    +
    + + + +

    Wedding Logo (universal)

    + Weddings logo +
    + this.downloadImage("wedding", "png")} + > + + .png + +
    +
    +
    +
    +
    + + +

    Mach diese tollen Dinge

    +
      +
    • +

      + + Verwende unser Logo um auf uns zu verlinken +

      +
    • +
    • +

      + + Verwende unser Logo in Deinem Blog oder Nachrichtenartikel + über uns +

      +
    • +
    • +

      + + Verwende unser Logo um auf Zusammenarbeit hinzuweisen +

      +
    • +
    +
    + +

    + Bitte tu diese Dinge nicht +

    +
      +
    • +

      + + Verwendung des Logos für eigene Zwecke +

      +
    • +
    • +

      + + Erstellung einer abgeänderten / modifizierten Version des + Logos +

      +
    • +
    • +

      + + Einbettung des Logos in Dein eigenes Logo +

      +
    • +
    • +

      + + Verwendung jeglicher Schaffungen der Agentur ohne Erlaubnis +

      +
    • +
    • +

      + + Verkauf jeglicher Schaffungen der Agentur ohne Erlaubnis +

      +
    • +
    • +

      + + Jegliche Veränderung des Logos (z.B. Farben, Maße, Text, + ...) +

      +
    • +
    • +

      + + Einbettung des Logos auf unpassendem Hintergrund (z.B. + Dunkles Logo auf dunklem Hintergrund) +

      +
    • +
    +
    +
    +
    + + + + +

    AGENCY RED

    + + + + HEX COLOR + #f61a42 + + + RGB + 246, 26, 66 + + + HSL + 349°, 92%, 53% + + + CMYK + 0%, 89%, 73%, 4% + + + +
    +
    +
    + + + +

    AGENCY DARK

    + + + + HEX COLOR + #212529 + + + RGB + 33, 37, 41 + + + HSL + 210°, 11%, 15% + + + CMYK + 20%, 10%, 0%, 84% + + + +
    +
    +
    + + + +

    AGENCY LIGHT

    + + + + HEX COLOR + #e5e5e5 + + + RGB + 229, 229, 229 + + + HSL + 0°, 0%, 90% + + + CMYK + 0%, 0%, 0%, 10% + + + +
    +
    +
    +
    +
    + + +

    Bitte kontaktiere uns

    +

    + wenn Du unsere Schaffungen verwenden willst oder Du diese in + einem Video oder Mainstream-Medien verwenden willst. +

    + + Kontakt + +
    + +

    + Du willst über uns berichten? +

    +

    + Nutze gerne unsere Ressourcen unter Berücksichtung der oben + angeführten Regeln. +

    +

    Du benötigst Auskunft?

    +

    + Über firmeninterne Details können wir Dir für deinen Bericht / + Blog / Artikel gerne Auskunft geben. +

    + + Kontakt + +
    +
    +
    +
    + ); + } } export default BrandingPage; diff --git a/src/components/pages/LocationPage/index.jsx b/src/components/pages/LocationPage/index.jsx index d916b7b..cc55323 100644 --- a/src/components/pages/LocationPage/index.jsx +++ b/src/components/pages/LocationPage/index.jsx @@ -10,10 +10,6 @@ import { MDBCol, MDBBtn, MDBIcon, - MDBPopover, - MDBPopoverHeader, - MDBPopoverBody, - MDBView, } from "mdbreact"; //> CSS @@ -102,6 +98,7 @@ class LocationPage extends React.Component { width="450" height="250" frameBorder="0" + title="Location" style={{ Border: 0 }} src={url + `&key=${process.env.REACT_APP_GOOGLE_MAPS}`} allowFullScreen diff --git a/src/components/pages/MessagePage/index.jsx b/src/components/pages/MessagePage/index.jsx index 15ebd12..f9deac9 100644 --- a/src/components/pages/MessagePage/index.jsx +++ b/src/components/pages/MessagePage/index.jsx @@ -8,7 +8,7 @@ import copy from "copy-to-clipboard"; //> MDB // "Material Design for Bootstrap" is a great UI design framework -import { MDBContainer, MDBBtn, MDBAlert, MDBIcon, MDBTooltip } from "mdbreact"; +import { MDBContainer, MDBBtn, MDBIcon, MDBTooltip } from "mdbreact"; class MessagePage extends React.Component { state = {}; From 3bdce7d49f3c9e41aa23b847dd4a06c8974634e0 Mon Sep 17 00:00:00 2001 From: Aichnerc Date: Sat, 25 Apr 2020 20:18:07 +0200 Subject: [PATCH 04/22] Improve footer logo The logo is no longer that big on mobile devices. --- src/components/molecules/Footer/footer.scss | 236 ++++++++++---------- 1 file changed, 118 insertions(+), 118 deletions(-) diff --git a/src/components/molecules/Footer/footer.scss b/src/components/molecules/Footer/footer.scss index 1112e06..0cbff27 100644 --- a/src/components/molecules/Footer/footer.scss +++ b/src/components/molecules/Footer/footer.scss @@ -1,138 +1,138 @@ @import "../../../utilities/variables"; .social-buttons { - .btn { - i { - padding: 0; - } - } - // Button WhatsApp - .btn-wa { - background-color: #25d366 !important; - color: white !important; - } + .btn { + i { + padding: 0; + } + } + // Button WhatsApp + .btn-wa { + background-color: #25d366 !important; + color: white !important; + } } // Footer footer { - transition: all 0.5s ease; + transition: all 0.5s ease; + a { + color: #6c757d !important; + &:hover { + color: lighten(#6c757d, 10%) !important; + } + } - a { - color: #6c757d !important; - &:hover { - color: lighten(#6c757d, 10%) !important; - } - } + // List item style + // Footer link icons + ul { + padding: 0; + li { + background: rgba(255, 255, 255, 0.05); + transition: all 0.1s ease; + padding: 1rem !important; + align-items: center; + i { + width: 30px; + text-align: center; + padding-right: 0.5rem; + } + &:hover { + background: rgba(255, 255, 255, 0.1); + } + .badge { + box-shadow: none; + } + } + } - // List item style - // Footer link icons - ul { - padding: 0; - li { - background: rgba(255, 255, 255, 0.05); - transition: all 0.1s ease; - padding: 1rem !important; - align-items: center; - i { - width: 30px; - text-align: center; - padding-right: 0.5rem; - } - &:hover { - background: rgba(255, 255, 255, 0.1); - } - .badge { - box-shadow: none; - } - } - } + // Custom pulsating heart + .pulse { + -webkit-animation: pulse 1s infinite; + animation: pulse 1s infinite; + } - // Custom pulsating heart - .pulse { - -webkit-animation: pulse 1s infinite; - animation: pulse 1s infinite; - } + // Footer column headers + .title { + text-transform: uppercase; + font-weight: bold; + } - // Footer column headers - .title { - text-transform: uppercase; - font-weight: bold; - } + // Column header separator + .col-md-3, + .col-md-4 { + hr { + width: 60px; + height: 1px; + } + } - // Column header separator - .col-md-3, - .col-md-4 { - hr { - width: 60px; - height: 1px; - } - } + // Dark Mode switch + .switch-red { + label input[type="checkbox"]:checked + .lever { + background-color: lighten($agencyRed, 35%); + &::after { + background-color: $agencyRed !important; + } + } + } - // Dark Mode switch - .switch-red { - label input[type="checkbox"]:checked + .lever { - background-color: lighten($agencyRed, 35%); - &::after { - background-color: $agencyRed !important; - } - } - } + // Social tab + .social { + padding: 2rem 0 2rem 0; + margin: 0; + background-color: rgba(0, 0, 0, 0.1); + } - // Social tab - .social { - padding: 2rem 0 2rem 0; - margin: 0; - background-color: rgba(0, 0, 0, 0.1); - } - - // Company img - svg { + // Company img + svg { width: 80%; - } + max-width: 200px; + } - // Dark Mode - &.agency-dark { - .social { - padding: 2rem 0 2rem 0; - margin: 0; - background-color: rgba(0, 0, 0, 0.2); - } - svg { - &#logo { - .st0 { - fill: #ffffff; - } - .st1 { - fill: #f61a42; - } - } - } - } + // Dark Mode + &.agency-dark { + .social { + padding: 2rem 0 2rem 0; + margin: 0; + background-color: rgba(0, 0, 0, 0.2); + } + svg { + &#logo { + .st0 { + fill: #ffffff; + } + .st1 { + fill: #f61a42; + } + } + } + } - // Light Mode - &.white { - ul li { - background: rgba(0, 0, 0, 0.05); - &:hover { - background: rgba(0, 0, 0, 0.1); - } - } - .footer-copyright { - background: rgba(0, 0, 0, 0.1); - color: #212121 !important; - } - ul { - i { - color: #212121 !important; - } - a { - color: #212121 !important; - } - } - .btn { - color: white; - } - } + // Light Mode + &.white { + ul li { + background: rgba(0, 0, 0, 0.05); + &:hover { + background: rgba(0, 0, 0, 0.1); + } + } + .footer-copyright { + background: rgba(0, 0, 0, 0.1); + color: #212121 !important; + } + ul { + i { + color: #212121 !important; + } + a { + color: #212121 !important; + } + } + .btn { + color: white; + } + } } /** From cce646650a676fff4674527ca7072fb862afe3ec Mon Sep 17 00:00:00 2001 From: Aichnerc Date: Sat, 25 Apr 2020 20:18:43 +0200 Subject: [PATCH 05/22] Improve mobile view Some changes have been made to improve the mobile experience. --- src/components/organisms/sections/CallToAction/index.jsx | 2 +- src/components/organisms/sections/Services/services.scss | 2 ++ src/components/organisms/sections/Trusted/trusted.scss | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/components/organisms/sections/CallToAction/index.jsx b/src/components/organisms/sections/CallToAction/index.jsx index 3374acc..0f9aaca 100644 --- a/src/components/organisms/sections/CallToAction/index.jsx +++ b/src/components/organisms/sections/CallToAction/index.jsx @@ -69,7 +69,7 @@ class CallToAction extends React.Component {
    - + diff --git a/src/components/organisms/sections/Services/services.scss b/src/components/organisms/sections/Services/services.scss index 4fefde6..9d7254c 100644 --- a/src/components/organisms/sections/Services/services.scss +++ b/src/components/organisms/sections/Services/services.scss @@ -1,4 +1,6 @@ #services { + // Fix transition + margin-top: -1px; &::before { content: " "; background: linear-gradient(#e6e6e6, white); diff --git a/src/components/organisms/sections/Trusted/trusted.scss b/src/components/organisms/sections/Trusted/trusted.scss index b8ff84f..a5e4d70 100644 --- a/src/components/organisms/sections/Trusted/trusted.scss +++ b/src/components/organisms/sections/Trusted/trusted.scss @@ -1,7 +1,7 @@ #trusted { background: #e7e7e7; img { - max-height: 100px; + max-height: 80px; } } From f5be7c7a1d34b5e2bc107d58f3679b93165a8e07 Mon Sep 17 00:00:00 2001 From: Aichnerc Date: Sat, 25 Apr 2020 20:19:21 +0200 Subject: [PATCH 06/22] Improve trusted The logos are now being created dynamically. --- .../organisms/sections/Trusted/index.jsx | 109 ++++++------------ 1 file changed, 38 insertions(+), 71 deletions(-) diff --git a/src/components/organisms/sections/Trusted/index.jsx b/src/components/organisms/sections/Trusted/index.jsx index 7d496f0..3e34960 100644 --- a/src/components/organisms/sections/Trusted/index.jsx +++ b/src/components/organisms/sections/Trusted/index.jsx @@ -21,78 +21,45 @@ import snekIMG from "../../../../assets/content/trusted/snek.png"; import psvIMG from "../../../../assets/content/trusted/psv.png"; import e4yIMG from "../../../../assets/content/trusted/e4y.png"; +//> Data +const data = [ + { src: pharmaziegasseIMG, alt: "Pharmaziegasse Logo" }, + { src: snekIMG, alt: "SNEK" }, + { src: gasserPartnerIMG, alt: "Gasser+Partner" }, + { src: kelagbigbandIMG, alt: "KELAG BigBand" }, + { src: e4yIMG, alt: "Emotions 4 You" }, + { src: erlebnishotelIMG, alt: "Erlebnishotel Mölltal" }, + { src: psvIMG, alt: "Polizeisportverein" }, + { src: rauchIMG, alt: "Andreas Rauch" }, + { src: kelagIMG, alt: "KELAG" }, + { src: bluelupiIMG, alt: "Blue Lupi" }, +]; + class Trusted extends React.PureComponent { - render() { - return ( -
    - -

    - Viele Firmen profitieren von unseren Services -

    -

    - Wir bieten Dir hochwertige, auf Deine Vision - zugeschnittene Lösungen in sämtlichen Bereichen des Marketings. -

    - - - Pharmaziegasse Logo - - - SNEK - - - Gasser+Partner - - - Kelag Big Band Logo - - - Emotions 4 you - - - Erlebnishotel Mölltal Logo - - - Polizeisportverein Villach - - - Andreas Rauch - - - Kelag Logo - - - Blue Lupi Logo - - -
    -
    - ); - } + render() { + return ( +
    + +

    + Viele Firmen profitieren von unseren Services +

    +

    + Wir bieten Dir hochwertige, auf Deine Vision + zugeschnittene Lösungen in sämtlichen Bereichen des Marketings. +

    + + {data.map((item, i) => { + return ( + + {item.alt} + + ); + })} + +
    +
    + ); + } } export default Trusted; From 6e837193eca66e51e1c4516c4b167b75ad3c52fb Mon Sep 17 00:00:00 2001 From: Aichnerc Date: Sat, 25 Apr 2020 20:19:55 +0200 Subject: [PATCH 07/22] Add key param to Trusted section A missing key parameter has been added. --- src/components/organisms/sections/Trusted/index.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/organisms/sections/Trusted/index.jsx b/src/components/organisms/sections/Trusted/index.jsx index 3e34960..6740c7a 100644 --- a/src/components/organisms/sections/Trusted/index.jsx +++ b/src/components/organisms/sections/Trusted/index.jsx @@ -50,7 +50,7 @@ class Trusted extends React.PureComponent { {data.map((item, i) => { return ( - + {item.alt} ); From edba345921be1e06bc246d75ed553a4ab410db7c Mon Sep 17 00:00:00 2001 From: Aichnerc Date: Sat, 25 Apr 2020 20:20:21 +0200 Subject: [PATCH 08/22] Improve mobile hero The hero section has been improved to improve the mobile experience. --- .../organisms/sections/Hero/hero.scss | 231 ++++++++++-------- .../organisms/sections/Hero/index.jsx | 27 +- 2 files changed, 154 insertions(+), 104 deletions(-) diff --git a/src/components/organisms/sections/Hero/hero.scss b/src/components/organisms/sections/Hero/hero.scss index fd8e62a..8a7c327 100644 --- a/src/components/organisms/sections/Hero/hero.scss +++ b/src/components/organisms/sections/Hero/hero.scss @@ -1,116 +1,143 @@ @import "../../../../utilities/variables"; #hero { - // Basic setup - h1 { - font-size: 4.2rem; - } - // Left column text more center - .col-md-6:first-child { - margin-bottom: 6rem !important; - } - .gradient { - background: -moz-linear-gradient( - 45deg, - rgba(42, 27, 161, 0.7), - rgba(29, 210, 177, 0.7) 100% - ); - background: -webkit-linear-gradient( - 45deg, - rgba(42, 27, 161, 0.7), - rgba(29, 210, 177, 0.7) 100% - ); - background: -webkit-gradient( - linear, - 45deg, - from(rgba(42, 27, 161, 0.7)), - to(rgba(29, 210, 177, 0.7)) - ); - background: -o-linear-gradient( - 45deg, - rgba(42, 27, 161, 0.7), - rgba(29, 210, 177, 0.7) 100% - ); - background: linear-gradient( - 45deg, - rgba(42, 27, 161, 0.7), - rgba(29, 210, 177, 0.7) 100% - ); - } - .hero-view { - max-height: 100vh; - } - .container, - #hero .hero-row { - max-height: 100%; - } - h6 { - line-height: 1.7; - } + // Mobile view background + .top-mobile-bg { + background-color: darken(white, 10%); + position: relative; + z-index: 1; + &::after { + background: inherit; + top: 0; + margin-top: -20px; + content: ""; + display: block; + height: 50%; + left: 0; + position: absolute; + right: 0; + transform: skewY(-1.5deg); + transform-origin: 100%; + z-index: -1; + } + } + // Desktop version + .desktop { + // Basic setup + h1 { + font-size: 4.2rem; + } + // Left column text more center + .col-md-6:first-child { + margin-bottom: 6rem !important; + } + .gradient { + background: -moz-linear-gradient( + 45deg, + rgba(42, 27, 161, 0.7), + rgba(29, 210, 177, 0.7) 100% + ); + background: -webkit-linear-gradient( + 45deg, + rgba(42, 27, 161, 0.7), + rgba(29, 210, 177, 0.7) 100% + ); + background: -webkit-gradient( + linear, + 45deg, + from(rgba(42, 27, 161, 0.7)), + to(rgba(29, 210, 177, 0.7)) + ); + background: -o-linear-gradient( + 45deg, + rgba(42, 27, 161, 0.7), + rgba(29, 210, 177, 0.7) 100% + ); + background: linear-gradient( + 45deg, + rgba(42, 27, 161, 0.7), + rgba(29, 210, 177, 0.7) 100% + ); + } + .hero-view { + max-height: 100vh; + } + .container, + #hero .hero-row { + max-height: 100%; + } + h6 { + line-height: 1.7; + } + } - // Dark mode - &.dark { - background: linear-gradient(to top, $agencyDark 0%, darken($agencyDark, 10%) 100%); - color: white; - } + // Dark mode + &.dark { + background: linear-gradient( + to top, + $agencyDark 0%, + darken($agencyDark, 10%) 100% + ); + color: white; + } - // Light mode - &.light { - background: linear-gradient(to top, white 0%, darken(white, 10%) 100%); - color: $agencyDark !important; - } + // Light mode + &.light { + background: linear-gradient(to top, white 0%, darken(white, 10%) 100%); + color: $agencyDark !important; + } } #seperator { - background-image: url("../../../../assets/bg/title-curve.svg"); - background-position: left top; - background-repeat: no-repeat; - background-size: cover; - padding: 2rem 0 2rem 0; - width: 100%; - min-height: 400px; - max-height: 500px; - margin-top: -220px; - position: relative; - z-index: 1; + background-image: url("../../../../assets/bg/title-curve.svg"); + background-position: left top; + background-repeat: no-repeat; + background-size: cover; + padding: 2rem 0 2rem 0; + width: 100%; + min-height: 400px; + max-height: 500px; + margin-top: -220px; + position: relative; + z-index: 1; - .row { - margin-top: 8rem; - } + .row { + margin-top: 8rem; + } - // Custom button - .btn-start { - text-transform: unset; - } + // Custom button + .btn-start { + text-transform: unset; + } - // Custom container fix - .container { - width: 100%; - padding-right: 15px; - padding-left: 15px; - margin-right: auto; - margin-left: auto; - } - @media (min-width: 576px) { - .container { - max-width: 540px; - } - } - @media (min-width: 768px) { - .container { - max-width: 720px; - } - } - @media (min-width: 992px) { - .container { - max-width: 960px; - } - } - @media (min-width: 1200px) { - .container { - max-width: 1440px; - } - } + // Custom container fix + .container { + width: 100%; + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; + } + @media (min-width: 576px) { + .container { + max-width: 540px; + } + } + @media (min-width: 768px) { + .container { + max-width: 720px; + } + } + @media (min-width: 992px) { + .container { + max-width: 960px; + } + } + @media (min-width: 1200px) { + .container { + max-width: 1440px; + } + } } /** diff --git a/src/components/organisms/sections/Hero/index.jsx b/src/components/organisms/sections/Hero/index.jsx index a5c0b84..36bb70e 100644 --- a/src/components/organisms/sections/Hero/index.jsx +++ b/src/components/organisms/sections/Hero/index.jsx @@ -87,9 +87,17 @@ class HomePage extends React.Component { return (
    - + - + + + +

    + Deine Vision ist unser Auftrag +

    +
    +
    +

    Deine Vision ist unser Auftrag @@ -107,6 +115,21 @@ class HomePage extends React.Component { +
    +

    + Was taugt Deine Online-Präsenz? +

    +

    + Unsere kostenlose Analyse zeigt Dir, welches Potential Deine Online + Präsenz besitzt und was Du davon nutzt. +

    + + + + JETZT herausfinden + + +
    Date: Sat, 25 Apr 2020 21:29:38 +0200 Subject: [PATCH 09/22] Improve ContactForm The contact form has been improved by adding a thank you page. --- src/App.js | 2 +- src/Routes.js | 2 +- .../organisms/sections/ContactForm/index.jsx | 8 +- src/components/pages/MessagePage/index.jsx | 2072 +++++++++-------- src/components/pages/MessagePage/message.scss | 8 + 5 files changed, 1062 insertions(+), 1030 deletions(-) create mode 100644 src/components/pages/MessagePage/message.scss diff --git a/src/App.js b/src/App.js index 709d05b..d7d3d7b 100644 --- a/src/App.js +++ b/src/App.js @@ -17,7 +17,7 @@ import Routes from "./Routes"; //> Configuration // Is the homepage ready to launch? -const isLive = false; +const isLive = true; class App extends React.Component { state = { diff --git a/src/Routes.js b/src/Routes.js index 8bec503..5e10881 100644 --- a/src/Routes.js +++ b/src/Routes.js @@ -14,7 +14,7 @@ import { } from "./components/pages"; //> MessagePage content -const messagePage = ["about", "privacy"]; +const messagePage = ["about", "privacy", "thankyou"]; class Routes extends React.Component { render() { diff --git a/src/components/organisms/sections/ContactForm/index.jsx b/src/components/organisms/sections/ContactForm/index.jsx index fca8a88..142006d 100644 --- a/src/components/organisms/sections/ContactForm/index.jsx +++ b/src/components/organisms/sections/ContactForm/index.jsx @@ -2,7 +2,7 @@ // Contains all the functionality necessary to define React components import React from "react"; // Router -//import { Link } from "react-router-dom"; +import { Redirect } from "react-router-dom"; //> MDB // "Material Design for Bootstrap" is a great UI design framework @@ -64,7 +64,11 @@ class ContactForm extends React.Component { }; render() { - const { darkMode } = this.props; + console.log(this.props); + const { darkMode, contact } = this.props; + + // Check if sent and redirect + if (contact.contactSuccess) return ; return (
    diff --git a/src/components/pages/MessagePage/index.jsx b/src/components/pages/MessagePage/index.jsx index f9deac9..479163c 100644 --- a/src/components/pages/MessagePage/index.jsx +++ b/src/components/pages/MessagePage/index.jsx @@ -1,6 +1,8 @@ //> React // Contains all the functionality necessary to define React components import React from "react"; +// Router +import { Link } from "react-router-dom"; //> Additional // Copy data to clipboard @@ -10,1060 +12,1078 @@ import copy from "copy-to-clipboard"; // "Material Design for Bootstrap" is a great UI design framework import { MDBContainer, MDBBtn, MDBIcon, MDBTooltip } from "mdbreact"; +//> CSS +import "./message.scss"; + class MessagePage extends React.Component { - state = {}; + state = {}; - render() { - return ( - - {this.props.location.pathname === "/about" && ( -
    -

    Impressum

    -

    - Werbeagentur Christian Aichner -

    -

    - Christian Aichner -
    - Tel: +43 681 205 027 54 -
    - Emailwerkstraße 29 -
    - 9523 Villach-Landskron -
    - - - Kontakt - -

    Firmeninformationen

    -

    - UID-Nummer: ATU72504738 - - - - - Echtheit garantiert - -

    - {!this.state.copy_uid ? ( - - this.setState({ copy_uid: true }, () => copy("ATU72504738")) - } - > - - UID Nummer kopieren - - ) : ( - this.setState({ copy_uid: false })} - > - - UID Nummer kopiert - - )} -

    -

    - GISA-Zahl: 31375511 -

    -

    - Behörde gem. ECG (E-Commerce Gesetz): Magistrat - der Stadt Villach -

    -

    Haftungsausschluss

    -

    - Dieser Haftungsausschluss ist als Teil des Internetangebotes zu - betrachten, von dem aus auf diese Webseite verwiesen wurde. Sofern - Teile oder einzelne Formulierungen dieses Textes der geltenden - Rechtslage nicht, nicht mehr oder nicht vollständig entsprechen - sollten, bleiben die übrigen Teile des Dokumentes in ihrem Inhalt - und ihrer Gültigkeit davon unberührt. -

    -

    Haftung für Inhalte dieser Webseite

    -

    - 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 für eigene Inhalte auf diesen Seiten nach den allgemeinen - Gesetzen verantwortlich. Wir sind jedoch nicht verpflichtet, - übermittelte oder gespeicherte fremde Informationen zu überwachen - oder nach Umständen zu forschen, die auf eine rechtswidrige - Tätigkeit hinweisen. Verpflichtungen zur Entfernung oder Sperrung - der Nutzung von Informationen nach den allgemeinen Gesetzen - bleiben hiervon unberührt. Eine diesbezügliche Haftung ist jedoch - erst ab dem Zeitpunkt der Kenntnis einer konkreten - Rechtsverletzung möglich. Bei Bekanntwerden von entsprechenden - Rechtsverletzungen werden wir diese Inhalte umgehend entfernen. -

    -

    Haftung für Links auf Webseiten Dritter

    -

    - Unser Angebot enthält Links zu externen Websites. Auf den Inhalt - dieser externen Webseiten haben wir keinerlei Einfluss. Deshalb - können wir für diese fremden Inhalte auch keine Gewähr übernehmen. - Für die Inhalte der verlinkten Seiten ist stets der 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 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. -

    -

    Urheberrecht

    -

    - Die Betreiber dieser Webseite sind bemüht, stets die Urheberrechte - anderer zu beachten bzw. auf selbst erstellte sowie lizenzfreie - Werke zurückzugreifen. Die durch die Seitenbetreiber erstellten - Inhalte und Werke auf dieser Webseite unterliegen dem - Urheberrecht. Beiträge Dritter sind als solche gekennzeichnet. 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. -

    -
    - )} - {this.props.location.pathname === "/privacy" && ( -
    -

    Datenschutzerklärung

    -

    - Werbeagentur Christian Aichner -

    -

    - Christian Aichner -
    - Tel: +43 681 205 027 54 -
    - Emailwerkstraße 29 -
    - 9523 Villach-Landskron -
    - - - Kontakt + render() { + return ( + + {this.props.location.pathname === "/about" && ( +

    +

    Impressum

    +

    + Werbeagentur Christian Aichner +

    +

    + Christian Aichner +
    + Tel: +43 681 205 027 54 +
    + Emailwerkstraße 29 +
    + 9523 Villach-Landskron +
    + + + Kontakt + +

    Firmeninformationen

    +

    + UID-Nummer: ATU72504738 + + + + + Echtheit garantiert + +

    + {!this.state.copy_uid ? ( + + this.setState({ copy_uid: true }, () => copy("ATU72504738")) + } + > + + UID Nummer kopieren + + ) : ( + this.setState({ copy_uid: false })} + > + + UID Nummer kopiert + + )} +

    +

    + GISA-Zahl: 31375511 +

    +

    + Behörde gem. ECG (E-Commerce Gesetz): Magistrat + der Stadt Villach +

    +

    Haftungsausschluss

    +

    + Dieser Haftungsausschluss ist als Teil des Internetangebotes zu + betrachten, von dem aus auf diese Webseite verwiesen wurde. Sofern + Teile oder einzelne Formulierungen dieses Textes der geltenden + Rechtslage nicht, nicht mehr oder nicht vollständig entsprechen + sollten, bleiben die übrigen Teile des Dokumentes in ihrem Inhalt + und ihrer Gültigkeit davon unberührt. +

    +

    Haftung für Inhalte dieser Webseite

    +

    + 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 für eigene Inhalte auf diesen Seiten nach den allgemeinen + Gesetzen verantwortlich. Wir sind jedoch nicht verpflichtet, + übermittelte oder gespeicherte fremde Informationen zu überwachen + oder nach Umständen zu forschen, die auf eine rechtswidrige + Tätigkeit hinweisen. Verpflichtungen zur Entfernung oder Sperrung + der Nutzung von Informationen nach den allgemeinen Gesetzen + bleiben hiervon unberührt. Eine diesbezügliche Haftung ist jedoch + erst ab dem Zeitpunkt der Kenntnis einer konkreten + Rechtsverletzung möglich. Bei Bekanntwerden von entsprechenden + Rechtsverletzungen werden wir diese Inhalte umgehend entfernen. +

    +

    Haftung für Links auf Webseiten Dritter

    +

    + Unser Angebot enthält Links zu externen Websites. Auf den Inhalt + dieser externen Webseiten haben wir keinerlei Einfluss. Deshalb + können wir für diese fremden Inhalte auch keine Gewähr übernehmen. + Für die Inhalte der verlinkten Seiten ist stets der 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 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. +

    +

    Urheberrecht

    +

    + Die Betreiber dieser Webseite sind bemüht, stets die Urheberrechte + anderer zu beachten bzw. auf selbst erstellte sowie lizenzfreie + Werke zurückzugreifen. Die durch die Seitenbetreiber erstellten + Inhalte und Werke auf dieser Webseite unterliegen dem + Urheberrecht. Beiträge Dritter sind als solche gekennzeichnet. 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. +

    +
    + )} + {this.props.location.pathname === "/thankyou" && ( +
    +

    + +
    + Danke für Deine Nachricht! +

    +

    Wir melden uns schnellstmöglich möglich bei Dir.

    + + + Zurück zur Hompage -

    -

    - Diese Datenschutzerklärung klärt Sie über die Art, den Umfang und - Zweck der Verarbeitung von personenbezogenen Daten (nachfolgend - kurz „Daten“) innerhalb unseres Onlineangebotes und der mit ihm - verbundenen Webseiten, Funktionen und Inhalte sowie externen - Onlinepräsenzen, wie z.B. unser Social Media Profile auf - (nachfolgend gemeinsam bezeichnet als „Onlineangebot“). Im - Hinblick auf die verwendeten Begrifflichkeiten, wie z.B. - „Verarbeitung“ oder „Verantwortlicher“ verweisen wir auf die - Definitionen im Art. 4 der Datenschutzgrundverordnung (DSGVO). -

    + +
    + )} + {this.props.location.pathname === "/privacy" && ( +
    +

    Datenschutzerklärung

    +

    + Werbeagentur Christian Aichner +

    +

    + Christian Aichner +
    + Tel: +43 681 205 027 54 +
    + Emailwerkstraße 29 +
    + 9523 Villach-Landskron +
    + + + Kontakt + +

    +

    + Diese Datenschutzerklärung klärt Sie über die Art, den Umfang und + Zweck der Verarbeitung von personenbezogenen Daten (nachfolgend + kurz „Daten“) innerhalb unseres Onlineangebotes und der mit ihm + verbundenen Webseiten, Funktionen und Inhalte sowie externen + Onlinepräsenzen, wie z.B. unser Social Media Profile auf + (nachfolgend gemeinsam bezeichnet als „Onlineangebot“). Im + Hinblick auf die verwendeten Begrifflichkeiten, wie z.B. + „Verarbeitung“ oder „Verantwortlicher“ verweisen wir auf die + Definitionen im Art. 4 der Datenschutzgrundverordnung (DSGVO). +

    -

    Datenschutzbeauftragter

    -

    - Christian Aichner -
    - 9500 Villach -
    -

    -

    - Kontakt:{" "} - - legal@aichner-christian.com - -

    +

    Datenschutzbeauftragter

    +

    + Christian Aichner +
    + 9500 Villach +
    +

    +

    + Kontakt:{" "} + + legal@aichner-christian.com + +

    -

    Arten der verarbeiteten Daten

    -
      -
    • Bestandsdaten (z.B., Namen, Adressen)
    • -
    • Kontaktdaten (z.B., E-Mail, Telefonnummern)
    • -
    • Inhaltsdaten (z.B., Texteingaben, Fotografien, Videos)
    • -
    • - Nutzungsdaten (z.B., besuchte Webseiten, Interesse an Inhalten, - Zugriffszeiten) -
    • -
    • - Meta-/Kommunikationsdaten (z.B., Geräte-Informationen, - IP-Adressen) -
    • -
    +

    Arten der verarbeiteten Daten

    +
      +
    • Bestandsdaten (z.B., Namen, Adressen)
    • +
    • Kontaktdaten (z.B., E-Mail, Telefonnummern)
    • +
    • Inhaltsdaten (z.B., Texteingaben, Fotografien, Videos)
    • +
    • + Nutzungsdaten (z.B., besuchte Webseiten, Interesse an Inhalten, + Zugriffszeiten) +
    • +
    • + Meta-/Kommunikationsdaten (z.B., Geräte-Informationen, + IP-Adressen) +
    • +
    -

    Kategorien betroffener Personen

    -

    - Besucher und Nutzer des Onlineangebotes (Nachfolgend bezeichnen - wir die betroffenen Personen zusammenfassend auch als „Nutzer“). -

    +

    Kategorien betroffener Personen

    +

    + Besucher und Nutzer des Onlineangebotes (Nachfolgend bezeichnen + wir die betroffenen Personen zusammenfassend auch als „Nutzer“). +

    -

    Zweck der Verarbeitung

    -
      -
    • - Zurverfügungstellung des Onlineangebotes, seiner Funktionen und - Inhalte -
    • -
    • - Beantwortung von Kontaktanfragen und Kommunikation mit Nutzern -
    • -
    • Sicherheitsmaßnahmen
    • -
    • Reichweitenmessung/Marketing
    • -
    +

    Zweck der Verarbeitung

    +
      +
    • + Zurverfügungstellung des Onlineangebotes, seiner Funktionen und + Inhalte +
    • +
    • + Beantwortung von Kontaktanfragen und Kommunikation mit Nutzern +
    • +
    • Sicherheitsmaßnahmen
    • +
    • Reichweitenmessung/Marketing
    • +
    -

    Verwendete Begrifflichkeiten

    -

    - „Personenbezogene Daten“ sind alle Informationen, die sich auf - eine identifizierte oder identifizierbare natürliche Person (im - Folgenden „betroffene Person“) beziehen; als identifizierbar wird - eine natürliche Person angesehen, die direkt oder indirekt, - insbesondere mittels Zuordnung zu einer Kennung wie einem Namen, - zu einer Kennnummer, zu Standortdaten, zu einer Online-Kennung - (z.B. Cookie) oder zu einem oder mehreren besonderen Merkmalen - identifiziert werden kann, die Ausdruck der physischen, - physiologischen, genetischen, psychischen, wirtschaftlichen, - kulturellen oder sozialen Identität dieser natürlichen Person - sind. -

    -

    - „Verarbeitung“ ist jeder mit oder ohne Hilfe automatisierter - Verfahren ausgeführte Vorgang oder jede solche Vorgangsreihe im - Zusammenhang mit personenbezogenen Daten. Der Begriff reicht weit - und umfasst praktisch jeden Umgang mit Daten. -

    -

    - „Pseudonymisierung“ die Verarbeitung personenbezogener Daten in - einer Weise, dass die personenbezogenen Daten ohne Hinzuziehung - zusätzlicher Informationen nicht mehr einer spezifischen - betroffenen Person zugeordnet werden können, sofern diese - zusätzlichen Informationen gesondert aufbewahrt werden und - technischen und organisatorischen Maßnahmen unterliegen, die - gewährleisten, dass die personenbezogenen Daten nicht einer - identifizierten oder identifizierbaren natürlichen Person - zugewiesen werden. -

    -

    - „Profiling“ jede Art der automatisierten Verarbeitung - personenbezogener Daten, die darin besteht, dass diese - personenbezogenen Daten verwendet werden, um bestimmte persönliche - Aspekte, die sich auf eine natürliche Person beziehen, zu - bewerten, insbesondere um Aspekte bezüglich Arbeitsleistung, - wirtschaftliche Lage, Gesundheit, persönliche Vorlieben, - Interessen, Zuverlässigkeit, Verhalten, Aufenthaltsort oder - Ortswechsel dieser natürlichen Person zu analysieren oder - vorherzusagen. -

    -

    - Als „Verantwortlicher“ wird die natürliche oder juristische - Person, Behörde, Einrichtung oder andere Stelle, die allein oder - gemeinsam mit anderen über die Zwecke und Mittel der Verarbeitung - von personenbezogenen Daten entscheidet, bezeichnet. -

    -

    - „Auftragsverarbeiter“ eine natürliche oder juristische Person, - Behörde, Einrichtung oder andere Stelle, die personenbezogene - Daten im Auftrag des Verantwortlichen verarbeitet. -

    +

    Verwendete Begrifflichkeiten

    +

    + „Personenbezogene Daten“ sind alle Informationen, die sich auf + eine identifizierte oder identifizierbare natürliche Person (im + Folgenden „betroffene Person“) beziehen; als identifizierbar wird + eine natürliche Person angesehen, die direkt oder indirekt, + insbesondere mittels Zuordnung zu einer Kennung wie einem Namen, + zu einer Kennnummer, zu Standortdaten, zu einer Online-Kennung + (z.B. Cookie) oder zu einem oder mehreren besonderen Merkmalen + identifiziert werden kann, die Ausdruck der physischen, + physiologischen, genetischen, psychischen, wirtschaftlichen, + kulturellen oder sozialen Identität dieser natürlichen Person + sind. +

    +

    + „Verarbeitung“ ist jeder mit oder ohne Hilfe automatisierter + Verfahren ausgeführte Vorgang oder jede solche Vorgangsreihe im + Zusammenhang mit personenbezogenen Daten. Der Begriff reicht weit + und umfasst praktisch jeden Umgang mit Daten. +

    +

    + „Pseudonymisierung“ die Verarbeitung personenbezogener Daten in + einer Weise, dass die personenbezogenen Daten ohne Hinzuziehung + zusätzlicher Informationen nicht mehr einer spezifischen + betroffenen Person zugeordnet werden können, sofern diese + zusätzlichen Informationen gesondert aufbewahrt werden und + technischen und organisatorischen Maßnahmen unterliegen, die + gewährleisten, dass die personenbezogenen Daten nicht einer + identifizierten oder identifizierbaren natürlichen Person + zugewiesen werden. +

    +

    + „Profiling“ jede Art der automatisierten Verarbeitung + personenbezogener Daten, die darin besteht, dass diese + personenbezogenen Daten verwendet werden, um bestimmte persönliche + Aspekte, die sich auf eine natürliche Person beziehen, zu + bewerten, insbesondere um Aspekte bezüglich Arbeitsleistung, + wirtschaftliche Lage, Gesundheit, persönliche Vorlieben, + Interessen, Zuverlässigkeit, Verhalten, Aufenthaltsort oder + Ortswechsel dieser natürlichen Person zu analysieren oder + vorherzusagen. +

    +

    + Als „Verantwortlicher“ wird die natürliche oder juristische + Person, Behörde, Einrichtung oder andere Stelle, die allein oder + gemeinsam mit anderen über die Zwecke und Mittel der Verarbeitung + von personenbezogenen Daten entscheidet, bezeichnet. +

    +

    + „Auftragsverarbeiter“ eine natürliche oder juristische Person, + Behörde, Einrichtung oder andere Stelle, die personenbezogene + Daten im Auftrag des Verantwortlichen verarbeitet. +

    -

    Sicherheitsmaßnahmen

    -

    - Wir treffen nach Maßgabe des Art. 32 DSGVO unter Berücksichtigung - des Stands der Technik, der Implementierungskosten und der Art, - des Umfangs, der Umstände und der Zwecke der Verarbeitung sowie - der unterschiedlichen Eintrittswahrscheinlichkeit und Schwere des - Risikos für die Rechte und Freiheiten natürlicher Personen, - geeignete technische und organisatorische Maßnahmen, um ein dem - Risiko angemessenes Schutzniveau zu gewährleisten. -

    -

    - Zu den Maßnahmen gehören insbesondere die Sicherung der - Vertraulichkeit, Integrität und Verfügbarkeit von Daten durch - Kontrolle des physischen Zugangs zu den Daten, als auch des sie - betreffenden Zugriffs, der Eingabe, Weitergabe, der Sicherung der - Verfügbarkeit und ihrer Trennung. Des Weiteren haben wir Verfahren - eingerichtet, die eine Wahrnehmung von Betroffenenrechten, - Löschung von Daten und Reaktion auf Gefährdung der Daten - gewährleisten. Ferner berücksichtigen wir den Schutz - personenbezogener Daten bereits bei der Entwicklung, bzw. Auswahl - von Hardware, Software sowie Verfahren, entsprechend dem Prinzip - des Datenschutzes durch Technikgestaltung und durch - datenschutzfreundliche Voreinstellungen (Art. 25 DSGVO). -

    +

    Sicherheitsmaßnahmen

    +

    + Wir treffen nach Maßgabe des Art. 32 DSGVO unter Berücksichtigung + des Stands der Technik, der Implementierungskosten und der Art, + des Umfangs, der Umstände und der Zwecke der Verarbeitung sowie + der unterschiedlichen Eintrittswahrscheinlichkeit und Schwere des + Risikos für die Rechte und Freiheiten natürlicher Personen, + geeignete technische und organisatorische Maßnahmen, um ein dem + Risiko angemessenes Schutzniveau zu gewährleisten. +

    +

    + Zu den Maßnahmen gehören insbesondere die Sicherung der + Vertraulichkeit, Integrität und Verfügbarkeit von Daten durch + Kontrolle des physischen Zugangs zu den Daten, als auch des sie + betreffenden Zugriffs, der Eingabe, Weitergabe, der Sicherung der + Verfügbarkeit und ihrer Trennung. Des Weiteren haben wir Verfahren + eingerichtet, die eine Wahrnehmung von Betroffenenrechten, + Löschung von Daten und Reaktion auf Gefährdung der Daten + gewährleisten. Ferner berücksichtigen wir den Schutz + personenbezogener Daten bereits bei der Entwicklung, bzw. Auswahl + von Hardware, Software sowie Verfahren, entsprechend dem Prinzip + des Datenschutzes durch Technikgestaltung und durch + datenschutzfreundliche Voreinstellungen (Art. 25 DSGVO). +

    -

    Zusammenarbeit mit Auftragsverarbeitern und Dritten

    -

    - Sofern wir im Rahmen unserer Verarbeitung Daten gegenüber anderen - Personen und Unternehmen (Auftragsverarbeitern oder Dritten) - offenbaren, sie an diese übermitteln oder ihnen sonst Zugriff auf - die Daten gewähren, erfolgt dies nur auf Grundlage einer - gesetzlichen Erlaubnis (z.B. wenn eine Übermittlung der Daten an - Dritte, wie an Zahlungsdienstleister, gem. Art. 6 Abs. 1 lit. b - DSGVO zur Vertragserfüllung erforderlich ist), Sie eingewilligt - haben, eine rechtliche Verpflichtung dies vorsieht oder auf - Grundlage unserer berechtigten Interessen (z.B. beim Einsatz von - Beauftragten, Webhostern, etc.). -

    -

    - Sofern wir Dritte mit der Verarbeitung von Daten auf Grundlage - eines sog. „Auftragsverarbeitungsvertrages“ beauftragen, geschieht - dies auf Grundlage des Art. 28 DSGVO. -

    +

    Zusammenarbeit mit Auftragsverarbeitern und Dritten

    +

    + Sofern wir im Rahmen unserer Verarbeitung Daten gegenüber anderen + Personen und Unternehmen (Auftragsverarbeitern oder Dritten) + offenbaren, sie an diese übermitteln oder ihnen sonst Zugriff auf + die Daten gewähren, erfolgt dies nur auf Grundlage einer + gesetzlichen Erlaubnis (z.B. wenn eine Übermittlung der Daten an + Dritte, wie an Zahlungsdienstleister, gem. Art. 6 Abs. 1 lit. b + DSGVO zur Vertragserfüllung erforderlich ist), Sie eingewilligt + haben, eine rechtliche Verpflichtung dies vorsieht oder auf + Grundlage unserer berechtigten Interessen (z.B. beim Einsatz von + Beauftragten, Webhostern, etc.). +

    +

    + Sofern wir Dritte mit der Verarbeitung von Daten auf Grundlage + eines sog. „Auftragsverarbeitungsvertrages“ beauftragen, geschieht + dies auf Grundlage des Art. 28 DSGVO. +

    -

    Übermittlungen in Drittländer

    -

    - Sofern wir Daten in einem Drittland (d.h. außerhalb der - Europäischen Union (EU) oder des Europäischen Wirtschaftsraums - (EWR)) verarbeiten oder dies im Rahmen der Inanspruchnahme von - Diensten Dritter oder Offenlegung, bzw. Übermittlung von Daten an - Dritte geschieht, erfolgt dies nur, wenn es zur Erfüllung unserer - (vor)vertraglichen Pflichten, auf Grundlage Ihrer Einwilligung, - aufgrund einer rechtlichen Verpflichtung oder auf Grundlage - unserer berechtigten Interessen geschieht. Vorbehaltlich - gesetzlicher oder vertraglicher Erlaubnisse, verarbeiten oder - lassen wir die Daten in einem Drittland nur beim Vorliegen der - besonderen Voraussetzungen der Art. 44 ff. DSGVO verarbeiten. D.h. - die Verarbeitung erfolgt z.B. auf Grundlage besonderer Garantien, - wie der offiziell anerkannten Feststellung eines der EU - entsprechenden Datenschutzniveaus (z.B. für die USA durch das - „Privacy Shield“) oder Beachtung offiziell anerkannter spezieller - vertraglicher Verpflichtungen (so genannte - „Standardvertragsklauseln“). -

    +

    Übermittlungen in Drittländer

    +

    + Sofern wir Daten in einem Drittland (d.h. außerhalb der + Europäischen Union (EU) oder des Europäischen Wirtschaftsraums + (EWR)) verarbeiten oder dies im Rahmen der Inanspruchnahme von + Diensten Dritter oder Offenlegung, bzw. Übermittlung von Daten an + Dritte geschieht, erfolgt dies nur, wenn es zur Erfüllung unserer + (vor)vertraglichen Pflichten, auf Grundlage Ihrer Einwilligung, + aufgrund einer rechtlichen Verpflichtung oder auf Grundlage + unserer berechtigten Interessen geschieht. Vorbehaltlich + gesetzlicher oder vertraglicher Erlaubnisse, verarbeiten oder + lassen wir die Daten in einem Drittland nur beim Vorliegen der + besonderen Voraussetzungen der Art. 44 ff. DSGVO verarbeiten. D.h. + die Verarbeitung erfolgt z.B. auf Grundlage besonderer Garantien, + wie der offiziell anerkannten Feststellung eines der EU + entsprechenden Datenschutzniveaus (z.B. für die USA durch das + „Privacy Shield“) oder Beachtung offiziell anerkannter spezieller + vertraglicher Verpflichtungen (so genannte + „Standardvertragsklauseln“). +

    -

    Rechte der betroffenen Personen

    -

    - Sie haben das Recht, eine Bestätigung darüber zu verlangen, ob - betreffende Daten verarbeitet werden und auf Auskunft über diese - Daten sowie auf weitere Informationen und Kopie der Daten - entsprechend Art. 15 DSGVO. -

    -

    - Sie haben entsprechend. Art. 16 DSGVO das Recht, die - Vervollständigung der Sie betreffenden Daten oder die Berichtigung - der Sie betreffenden unrichtigen Daten zu verlangen. -

    -

    - Sie haben nach Maßgabe des Art. 17 DSGVO das Recht zu verlangen, - dass betreffende Daten unverzüglich gelöscht werden, bzw. - alternativ nach Maßgabe des Art. 18 DSGVO eine Einschränkung der - Verarbeitung der Daten zu verlangen. -

    -

    - Sie haben das Recht zu verlangen, dass die Sie betreffenden Daten, - die Sie uns bereitgestellt haben nach Maßgabe des Art. 20 DSGVO zu - erhalten und deren Übermittlung an andere Verantwortliche zu - fordern. -

    -

    - Sie haben ferner gem. Art. 77 DSGVO das Recht, eine Beschwerde bei - der zuständigen Aufsichtsbehörde einzureichen. -

    +

    Rechte der betroffenen Personen

    +

    + Sie haben das Recht, eine Bestätigung darüber zu verlangen, ob + betreffende Daten verarbeitet werden und auf Auskunft über diese + Daten sowie auf weitere Informationen und Kopie der Daten + entsprechend Art. 15 DSGVO. +

    +

    + Sie haben entsprechend. Art. 16 DSGVO das Recht, die + Vervollständigung der Sie betreffenden Daten oder die Berichtigung + der Sie betreffenden unrichtigen Daten zu verlangen. +

    +

    + Sie haben nach Maßgabe des Art. 17 DSGVO das Recht zu verlangen, + dass betreffende Daten unverzüglich gelöscht werden, bzw. + alternativ nach Maßgabe des Art. 18 DSGVO eine Einschränkung der + Verarbeitung der Daten zu verlangen. +

    +

    + Sie haben das Recht zu verlangen, dass die Sie betreffenden Daten, + die Sie uns bereitgestellt haben nach Maßgabe des Art. 20 DSGVO zu + erhalten und deren Übermittlung an andere Verantwortliche zu + fordern. +

    +

    + Sie haben ferner gem. Art. 77 DSGVO das Recht, eine Beschwerde bei + der zuständigen Aufsichtsbehörde einzureichen. +

    -

    Widerrufsrecht

    -

    - Sie haben das Recht, erteilte Einwilligungen gem. Art. 7 Abs. 3 - DSGVO mit Wirkung für die Zukunft zu widerrufen. -

    +

    Widerrufsrecht

    +

    + Sie haben das Recht, erteilte Einwilligungen gem. Art. 7 Abs. 3 + DSGVO mit Wirkung für die Zukunft zu widerrufen. +

    -

    Widerspruchsrecht

    -

    - Sie können der künftigen Verarbeitung der Sie betreffenden Daten - nach Maßgabe des Art. 21 DSGVO jederzeit widersprechen. Der - Widerspruch kann insbesondere gegen die Verarbeitung für Zwecke - der Direktwerbung erfolgen. -

    +

    Widerspruchsrecht

    +

    + Sie können der künftigen Verarbeitung der Sie betreffenden Daten + nach Maßgabe des Art. 21 DSGVO jederzeit widersprechen. Der + Widerspruch kann insbesondere gegen die Verarbeitung für Zwecke + der Direktwerbung erfolgen. +

    -

    Cookies und Widerspruchsrecht bei Direktwerbung

    -

    - Als „Cookies“ werden kleine Dateien bezeichnet, die auf Rechnern - der Nutzer gespeichert werden. Innerhalb der Cookies können - unterschiedliche Angaben gespeichert werden. Ein Cookie dient - primär dazu, die Angaben zu einem Nutzer (bzw. dem Gerät auf dem - das Cookie gespeichert ist) während oder auch nach seinem Besuch - innerhalb eines Onlineangebotes zu speichern. Als temporäre - Cookies, bzw. „Session-Cookies“ oder „transiente Cookies“, werden - Cookies bezeichnet, die gelöscht werden, nachdem ein Nutzer ein - Onlineangebot verlässt und seinen Browser schließt. In einem - solchen Cookie kann z.B. der Inhalt eines Warenkorbs in einem - Onlineshop oder ein Login-Status gespeichert werden. Als - „permanent“ oder „persistent“ werden Cookies bezeichnet, die auch - nach dem Schließen des Browsers gespeichert bleiben. So kann z.B. - der Login-Status gespeichert werden, wenn die Nutzer diese nach - mehreren Tagen aufsuchen. Ebenso können in einem solchen Cookie - die Interessen der Nutzer gespeichert werden, die für - Reichweitenmessung oder Marketingzwecke verwendet werden. Als - „Third-Party-Cookie“ werden Cookies bezeichnet, die von anderen - Anbietern als dem Verantwortlichen, der das Onlineangebot - betreibt, angeboten werden (andernfalls, wenn es nur dessen - Cookies sind spricht man von „First-Party Cookies“). -

    -

    - Wir können temporäre und permanente Cookies einsetzen und klären - hierüber im Rahmen unserer Datenschutzerklärung auf. -

    -

    - Falls die Nutzer nicht möchten, dass Cookies auf ihrem Rechner - gespeichert werden, werden sie gebeten die entsprechende Option in - den Systemeinstellungen ihres Browsers zu deaktivieren. - Gespeicherte Cookies können in den Systemeinstellungen des - Browsers gelöscht werden. Der Ausschluss von Cookies kann zu - Funktionseinschränkungen dieses Onlineangebotes führen. -

    -

    - Ein genereller Widerspruch gegen den Einsatz der zu Zwecken des - Onlinemarketing eingesetzten Cookies kann bei einer Vielzahl der - Dienste, vor allem im Fall des Trackings, über die S-amerikanische - Seite http://www.aboutads.info/choices/ oder die EU-Seite - http://www.youronlinechoices.com/ erklärt werden. Des Weiteren - kann die Speicherung von Cookies mittels deren Abschaltung in den - Einstellungen des Browsers erreicht werden. Bitte beachten Sie, - dass dann gegebenenfalls nicht alle Funktionen dieses - Onlineangebotes genutzt werden können. -

    +

    Cookies und Widerspruchsrecht bei Direktwerbung

    +

    + Als „Cookies“ werden kleine Dateien bezeichnet, die auf Rechnern + der Nutzer gespeichert werden. Innerhalb der Cookies können + unterschiedliche Angaben gespeichert werden. Ein Cookie dient + primär dazu, die Angaben zu einem Nutzer (bzw. dem Gerät auf dem + das Cookie gespeichert ist) während oder auch nach seinem Besuch + innerhalb eines Onlineangebotes zu speichern. Als temporäre + Cookies, bzw. „Session-Cookies“ oder „transiente Cookies“, werden + Cookies bezeichnet, die gelöscht werden, nachdem ein Nutzer ein + Onlineangebot verlässt und seinen Browser schließt. In einem + solchen Cookie kann z.B. der Inhalt eines Warenkorbs in einem + Onlineshop oder ein Login-Status gespeichert werden. Als + „permanent“ oder „persistent“ werden Cookies bezeichnet, die auch + nach dem Schließen des Browsers gespeichert bleiben. So kann z.B. + der Login-Status gespeichert werden, wenn die Nutzer diese nach + mehreren Tagen aufsuchen. Ebenso können in einem solchen Cookie + die Interessen der Nutzer gespeichert werden, die für + Reichweitenmessung oder Marketingzwecke verwendet werden. Als + „Third-Party-Cookie“ werden Cookies bezeichnet, die von anderen + Anbietern als dem Verantwortlichen, der das Onlineangebot + betreibt, angeboten werden (andernfalls, wenn es nur dessen + Cookies sind spricht man von „First-Party Cookies“). +

    +

    + Wir können temporäre und permanente Cookies einsetzen und klären + hierüber im Rahmen unserer Datenschutzerklärung auf. +

    +

    + Falls die Nutzer nicht möchten, dass Cookies auf ihrem Rechner + gespeichert werden, werden sie gebeten die entsprechende Option in + den Systemeinstellungen ihres Browsers zu deaktivieren. + Gespeicherte Cookies können in den Systemeinstellungen des + Browsers gelöscht werden. Der Ausschluss von Cookies kann zu + Funktionseinschränkungen dieses Onlineangebotes führen. +

    +

    + Ein genereller Widerspruch gegen den Einsatz der zu Zwecken des + Onlinemarketing eingesetzten Cookies kann bei einer Vielzahl der + Dienste, vor allem im Fall des Trackings, über die S-amerikanische + Seite http://www.aboutads.info/choices/ oder die EU-Seite + http://www.youronlinechoices.com/ erklärt werden. Des Weiteren + kann die Speicherung von Cookies mittels deren Abschaltung in den + Einstellungen des Browsers erreicht werden. Bitte beachten Sie, + dass dann gegebenenfalls nicht alle Funktionen dieses + Onlineangebotes genutzt werden können. +

    -

    Löschung von Daten

    -

    - Die von uns verarbeiteten Daten werden nach Maßgabe der Art. 17 - und 18 DSGVO gelöscht oder in ihrer Verarbeitung eingeschränkt. - Sofern nicht im Rahmen dieser Datenschutzerklärung ausdrücklich - angegeben, werden die bei uns gespeicherten Daten gelöscht, sobald - sie für ihre Zweckbestimmung nicht mehr erforderlich sind und der - Löschung keine gesetzlichen Aufbewahrungspflichten entgegenstehen. - Sofern die Daten nicht gelöscht werden, weil sie für andere und - gesetzlich zulässige Zwecke erforderlich sind, wird deren - Verarbeitung eingeschränkt. D.h. die Daten werden gesperrt und - nicht für andere Zwecke verarbeitet. Das gilt z.B. für Daten, die - aus handels- oder steuerrechtlichen Gründen aufbewahrt werden - müssen. -

    -

    - Nach gesetzlichen Vorgaben in Österreich erfolgt die Aufbewahrung - insbesondere für 7 J gemäß § 132 Abs. 1 BAO - (Buchhaltungsunterlagen, Belege/Rechnungen, Konten, Belege, - Geschäftspapiere, Aufstellung der Einnahmen und Ausgaben, etc.), - für 22 Jahre im Zusammenhang mit Grundstücken und für 10 Jahre bei - Unterlagen im Zusammenhang mit elektronisch erbrachten Leistungen, - Telekommunikations-, Rundfunk- und Fernsehleistungen, die an - Nichtunternehmer in EU-Mitgliedstaaten erbracht werden und für die - der Mini-One-Stop-Shop (MOSS) in Anspruch genommen wird. -

    +

    Löschung von Daten

    +

    + Die von uns verarbeiteten Daten werden nach Maßgabe der Art. 17 + und 18 DSGVO gelöscht oder in ihrer Verarbeitung eingeschränkt. + Sofern nicht im Rahmen dieser Datenschutzerklärung ausdrücklich + angegeben, werden die bei uns gespeicherten Daten gelöscht, sobald + sie für ihre Zweckbestimmung nicht mehr erforderlich sind und der + Löschung keine gesetzlichen Aufbewahrungspflichten entgegenstehen. + Sofern die Daten nicht gelöscht werden, weil sie für andere und + gesetzlich zulässige Zwecke erforderlich sind, wird deren + Verarbeitung eingeschränkt. D.h. die Daten werden gesperrt und + nicht für andere Zwecke verarbeitet. Das gilt z.B. für Daten, die + aus handels- oder steuerrechtlichen Gründen aufbewahrt werden + müssen. +

    +

    + Nach gesetzlichen Vorgaben in Österreich erfolgt die Aufbewahrung + insbesondere für 7 J gemäß § 132 Abs. 1 BAO + (Buchhaltungsunterlagen, Belege/Rechnungen, Konten, Belege, + Geschäftspapiere, Aufstellung der Einnahmen und Ausgaben, etc.), + für 22 Jahre im Zusammenhang mit Grundstücken und für 10 Jahre bei + Unterlagen im Zusammenhang mit elektronisch erbrachten Leistungen, + Telekommunikations-, Rundfunk- und Fernsehleistungen, die an + Nichtunternehmer in EU-Mitgliedstaaten erbracht werden und für die + der Mini-One-Stop-Shop (MOSS) in Anspruch genommen wird. +

    -

    Registrierfunktion

    -

    - Nutzer können ein Nutzerkonto anlegen. Im Rahmen der Registrierung - werden die erforderlichen Pflichtangaben den Nutzern mitgeteilt - und auf Grundlage des Art. 6 Abs. 1 lit. b DSGVO zu Zwecken der - Bereitstellung des Nutzerkontos verarbeitet. Zu den verarbeiteten - Daten gehören insbesondere die Login-Informationen (Name, Passwort - sowie eine E-Mailadresse). Die im Rahmen der Registrierung - eingegebenen Daten werden für die Zwecke der Nutzung des - Nutzerkontos und dessen Zwecks verwendet. -

    -

    - Die Nutzer können über Informationen, die für deren Nutzerkonto - relevant sind, wie z.B. technische Änderungen, per E-Mail - informiert werden. Wenn Nutzer ihr Nutzerkonto gekündigt haben, - werden deren Daten im Hinblick auf das Nutzerkonto, vorbehaltlich - einer gesetzlichen Aufbewahrungspflicht, gelöscht. Es obliegt den - Nutzern, ihre Daten bei erfolgter Kündigung vor dem Vertragsende - zu sichern. Wir sind berechtigt, sämtliche während der - Vertragsdauer gespeicherten Daten des Nutzers unwiederbringlich zu - löschen. -

    -

    - Im Rahmen der Inanspruchnahme unserer Registrierungs- und - Anmeldefunktionen sowie der Nutzung des Nutzerkontos, speichern - wir die IP-Adresse und den Zeitpunkt der jeweiligen - Nutzerhandlung. Die Speicherung erfolgt auf Grundlage unserer - berechtigten Interessen, als auch der Nutzer an Schutz vor - Missbrauch und sonstiger unbefugter Nutzung. Eine Weitergabe - dieser Daten an Dritte erfolgt grundsätzlich nicht, außer sie ist - zur Verfolgung unserer Ansprüche erforderlich oder es besteht - hierzu besteht eine gesetzliche Verpflichtung gem. Art. 6 Abs. 1 - lit. c. DSGVO. Die IP-Adressen werden spätestens nach 7 Tagen - anonymisiert oder gelöscht. -

    +

    Registrierfunktion

    +

    + Nutzer können ein Nutzerkonto anlegen. Im Rahmen der Registrierung + werden die erforderlichen Pflichtangaben den Nutzern mitgeteilt + und auf Grundlage des Art. 6 Abs. 1 lit. b DSGVO zu Zwecken der + Bereitstellung des Nutzerkontos verarbeitet. Zu den verarbeiteten + Daten gehören insbesondere die Login-Informationen (Name, Passwort + sowie eine E-Mailadresse). Die im Rahmen der Registrierung + eingegebenen Daten werden für die Zwecke der Nutzung des + Nutzerkontos und dessen Zwecks verwendet. +

    +

    + Die Nutzer können über Informationen, die für deren Nutzerkonto + relevant sind, wie z.B. technische Änderungen, per E-Mail + informiert werden. Wenn Nutzer ihr Nutzerkonto gekündigt haben, + werden deren Daten im Hinblick auf das Nutzerkonto, vorbehaltlich + einer gesetzlichen Aufbewahrungspflicht, gelöscht. Es obliegt den + Nutzern, ihre Daten bei erfolgter Kündigung vor dem Vertragsende + zu sichern. Wir sind berechtigt, sämtliche während der + Vertragsdauer gespeicherten Daten des Nutzers unwiederbringlich zu + löschen. +

    +

    + Im Rahmen der Inanspruchnahme unserer Registrierungs- und + Anmeldefunktionen sowie der Nutzung des Nutzerkontos, speichern + wir die IP-Adresse und den Zeitpunkt der jeweiligen + Nutzerhandlung. Die Speicherung erfolgt auf Grundlage unserer + berechtigten Interessen, als auch der Nutzer an Schutz vor + Missbrauch und sonstiger unbefugter Nutzung. Eine Weitergabe + dieser Daten an Dritte erfolgt grundsätzlich nicht, außer sie ist + zur Verfolgung unserer Ansprüche erforderlich oder es besteht + hierzu besteht eine gesetzliche Verpflichtung gem. Art. 6 Abs. 1 + lit. c. DSGVO. Die IP-Adressen werden spätestens nach 7 Tagen + anonymisiert oder gelöscht. +

    -

    Kommentare und Beiträge

    -

    - Wenn Nutzer Kommentare oder sonstige Beiträge hinterlassen, können - ihre IP-Adressen auf Grundlage unserer berechtigten Interessen im - Sinne des Art. 6 Abs. 1 lit. f. DSGVO für 7 Tage gespeichert - werden. Das erfolgt zu unserer Sicherheit, falls jemand in - Kommentaren und Beiträgen widerrechtliche Inhalte hinterlässt - (Beleidigungen, verbotene politische Propaganda, etc.). In diesem - Fall können wir selbst für den Kommentar oder Beitrag belangt - werden und sind daher an der Identität des Verfassers - interessiert. -

    -

    - Des Weiteren behalten wir uns vor, auf Grundlage unserer - berechtigten Interessen gem. Art. 6 Abs. 1 lit. f. DSGVO, die - Angaben der Nutzer zwecks Spamerkennung zu verarbeiten. Auf - derselben Rechtsgrundlage behalten wir uns vor, im Fall von - Umfragen die IP-Adressen der Nutzer für deren Dauer zu speichern - und Cookies zu verwenden, um Mehrfachabstimmungen zu vermeiden. - Die im Rahmen der Kommentare und Beiträge angegebenen Daten, - werden von uns bis zum Widerspruch der Nutzer dauerhaft - gespeichert. -

    +

    Kommentare und Beiträge

    +

    + Wenn Nutzer Kommentare oder sonstige Beiträge hinterlassen, können + ihre IP-Adressen auf Grundlage unserer berechtigten Interessen im + Sinne des Art. 6 Abs. 1 lit. f. DSGVO für 7 Tage gespeichert + werden. Das erfolgt zu unserer Sicherheit, falls jemand in + Kommentaren und Beiträgen widerrechtliche Inhalte hinterlässt + (Beleidigungen, verbotene politische Propaganda, etc.). In diesem + Fall können wir selbst für den Kommentar oder Beitrag belangt + werden und sind daher an der Identität des Verfassers + interessiert. +

    +

    + Des Weiteren behalten wir uns vor, auf Grundlage unserer + berechtigten Interessen gem. Art. 6 Abs. 1 lit. f. DSGVO, die + Angaben der Nutzer zwecks Spamerkennung zu verarbeiten. Auf + derselben Rechtsgrundlage behalten wir uns vor, im Fall von + Umfragen die IP-Adressen der Nutzer für deren Dauer zu speichern + und Cookies zu verwenden, um Mehrfachabstimmungen zu vermeiden. + Die im Rahmen der Kommentare und Beiträge angegebenen Daten, + werden von uns bis zum Widerspruch der Nutzer dauerhaft + gespeichert. +

    -

    Kontaktaufnahme

    -

    - Bei der Kontaktaufnahme mit uns (z.B. per Kontaktformular, E-Mail, - Telefon oder via sozialer Medien) werden die Angaben des Nutzers - zur Bearbeitung der Kontaktanfrage und deren Abwicklung gem. Art. - 6 Abs. 1 lit. b. (im Rahmen vertraglicher-/vorvertraglicher - Beziehungen), Art. 6 Abs. 1 lit. f. (andere Anfragen) DSGVO - verarbeitet.. Die Angaben der Nutzer können in einem - Customer-Relationship-Management System ("CRM System") oder - vergleichbarer Anfragenorganisation gespeichert werden. Wir - löschen die Anfragen, sofern diese nicht mehr erforderlich sind. - Wir überprüfen die Erforderlichkeit alle zwei Jahre; Ferner gelten - die gesetzlichen Archivierungspflichten. -

    +

    Kontaktaufnahme

    +

    + Bei der Kontaktaufnahme mit uns (z.B. per Kontaktformular, E-Mail, + Telefon oder via sozialer Medien) werden die Angaben des Nutzers + zur Bearbeitung der Kontaktanfrage und deren Abwicklung gem. Art. + 6 Abs. 1 lit. b. (im Rahmen vertraglicher-/vorvertraglicher + Beziehungen), Art. 6 Abs. 1 lit. f. (andere Anfragen) DSGVO + verarbeitet.. Die Angaben der Nutzer können in einem + Customer-Relationship-Management System ("CRM System") oder + vergleichbarer Anfragenorganisation gespeichert werden. Wir + löschen die Anfragen, sofern diese nicht mehr erforderlich sind. + Wir überprüfen die Erforderlichkeit alle zwei Jahre; Ferner gelten + die gesetzlichen Archivierungspflichten. +

    -

    Newsletter

    -

    - Mit den nachfolgenden Hinweisen informieren wir Sie über die - Inhalte unseres Newsletters sowie das Anmelde-, Versand- und das - statistische Auswertungsverfahren sowie Ihre Widerspruchsrechte - auf. Indem Sie unseren Newsletter abonnieren, erklären Sie sich - mit dem Empfang und den beschriebenen Verfahren einverstanden. -

    -

    - Inhalt des Newsletters: Wir versenden Newsletter, E-Mails und - weitere elektronische Benachrichtigungen mit werblichen - Informationen (nachfolgend „Newsletter“) nur mit der Einwilligung - der Empfänger oder einer gesetzlichen Erlaubnis. Sofern im Rahmen - einer Anmeldung zum Newsletter dessen Inhalte konkret umschrieben - werden, sind sie für die Einwilligung der Nutzer maßgeblich. Im - Übrigen enthalten unsere Newsletter Informationen zu unseren - Produkten und sie begleitenden Informationen (z.B. - Sicherheitshinweise), Angeboten, Aktionen und unser Unternehmen. -

    -

    - Double-Opt-In und Protokollierung: Die Anmeldung zu unserem - Newsletter erfolgt in einem sog. Double-Opt-In-Verfahren. D.h. Sie - erhalten nach der Anmeldung eine E-Mail, in der Sie um die - Bestätigung Ihrer Anmeldung gebeten werden. Diese Bestätigung ist - notwendig, damit sich niemand mit fremden E-Mailadressen anmelden - kann. Die Anmeldungen zum Newsletter werden protokolliert, um den - Anmeldeprozess entsprechend den rechtlichen Anforderungen - nachweisen zu können. Hierzu gehört die Speicherung des Anmelde- - und des Bestätigungszeitpunkts, als auch der IP-Adresse. Ebenso - werden die Änderungen Ihrer bei dem Versanddienstleister - gespeicherten Daten protokolliert. -

    -

    - Anmeldedaten: Um sich für den Newsletter anzumelden, reicht es - aus, wenn Sie Ihre E-Mailadresse angeben. Optional bitten wir Sie - einen Namen, zwecks persönlicher Ansprache im Newsletters - anzugeben. -

    -

    - Der Versand des Newsletters und die mit ihm verbundene - Erfolgsmessung erfolgen auf Grundlage einer Einwilligung der - Empfänger gem. Art. 6 Abs. 1 lit. a, Art. 7 DSGVO i.V.m § 107 Abs. - 2 TKG oder falls eine Einwilligung nicht erforderlich ist, auf - Grundlage unserer berechtigten Interessen am Direktmarketing gem. - Art. 6 Abs. 1 lt. f. DSGVO i.V.m. § 107 Abs. 2 u. 3 TKG. -

    -

    - Die Protokollierung des Anmeldeverfahrens erfolgt auf Grundlage - unserer berechtigten Interessen gem. Art. 6 Abs. 1 lit. f DSGVO. - Unser Interesse richtet sich auf den Einsatz eines - nutzerfreundlichen sowie sicheren Newslettersystems, das sowohl - unseren geschäftlichen Interessen dient, als auch den Erwartungen - der Nutzer entspricht und uns ferner den Nachweis von - Einwilligungen erlaubt. -

    -

    - Kündigung/Widerruf - Sie können den Empfang unseres Newsletters - jederzeit kündigen, d.h. Ihre Einwilligungen widerrufen. Einen - Link zur Kündigung des Newsletters finden Sie am Ende eines jeden - Newsletters. Wir können die ausgetragenen E-Mailadressen bis zu - drei Jahren auf Grundlage unserer berechtigten Interessen - speichern bevor wir sie löschen, um eine ehemals gegebene - Einwilligung nachweisen zu können. Die Verarbeitung dieser Daten - wird auf den Zweck einer möglichen Abwehr von Ansprüchen - beschränkt. Ein individueller Löschungsantrag ist jederzeit - möglich, sofern zugleich das ehemalige Bestehen einer Einwilligung - bestätigt wird. -

    +

    Newsletter

    +

    + Mit den nachfolgenden Hinweisen informieren wir Sie über die + Inhalte unseres Newsletters sowie das Anmelde-, Versand- und das + statistische Auswertungsverfahren sowie Ihre Widerspruchsrechte + auf. Indem Sie unseren Newsletter abonnieren, erklären Sie sich + mit dem Empfang und den beschriebenen Verfahren einverstanden. +

    +

    + Inhalt des Newsletters: Wir versenden Newsletter, E-Mails und + weitere elektronische Benachrichtigungen mit werblichen + Informationen (nachfolgend „Newsletter“) nur mit der Einwilligung + der Empfänger oder einer gesetzlichen Erlaubnis. Sofern im Rahmen + einer Anmeldung zum Newsletter dessen Inhalte konkret umschrieben + werden, sind sie für die Einwilligung der Nutzer maßgeblich. Im + Übrigen enthalten unsere Newsletter Informationen zu unseren + Produkten und sie begleitenden Informationen (z.B. + Sicherheitshinweise), Angeboten, Aktionen und unser Unternehmen. +

    +

    + Double-Opt-In und Protokollierung: Die Anmeldung zu unserem + Newsletter erfolgt in einem sog. Double-Opt-In-Verfahren. D.h. Sie + erhalten nach der Anmeldung eine E-Mail, in der Sie um die + Bestätigung Ihrer Anmeldung gebeten werden. Diese Bestätigung ist + notwendig, damit sich niemand mit fremden E-Mailadressen anmelden + kann. Die Anmeldungen zum Newsletter werden protokolliert, um den + Anmeldeprozess entsprechend den rechtlichen Anforderungen + nachweisen zu können. Hierzu gehört die Speicherung des Anmelde- + und des Bestätigungszeitpunkts, als auch der IP-Adresse. Ebenso + werden die Änderungen Ihrer bei dem Versanddienstleister + gespeicherten Daten protokolliert. +

    +

    + Anmeldedaten: Um sich für den Newsletter anzumelden, reicht es + aus, wenn Sie Ihre E-Mailadresse angeben. Optional bitten wir Sie + einen Namen, zwecks persönlicher Ansprache im Newsletters + anzugeben. +

    +

    + Der Versand des Newsletters und die mit ihm verbundene + Erfolgsmessung erfolgen auf Grundlage einer Einwilligung der + Empfänger gem. Art. 6 Abs. 1 lit. a, Art. 7 DSGVO i.V.m § 107 Abs. + 2 TKG oder falls eine Einwilligung nicht erforderlich ist, auf + Grundlage unserer berechtigten Interessen am Direktmarketing gem. + Art. 6 Abs. 1 lt. f. DSGVO i.V.m. § 107 Abs. 2 u. 3 TKG. +

    +

    + Die Protokollierung des Anmeldeverfahrens erfolgt auf Grundlage + unserer berechtigten Interessen gem. Art. 6 Abs. 1 lit. f DSGVO. + Unser Interesse richtet sich auf den Einsatz eines + nutzerfreundlichen sowie sicheren Newslettersystems, das sowohl + unseren geschäftlichen Interessen dient, als auch den Erwartungen + der Nutzer entspricht und uns ferner den Nachweis von + Einwilligungen erlaubt. +

    +

    + Kündigung/Widerruf - Sie können den Empfang unseres Newsletters + jederzeit kündigen, d.h. Ihre Einwilligungen widerrufen. Einen + Link zur Kündigung des Newsletters finden Sie am Ende eines jeden + Newsletters. Wir können die ausgetragenen E-Mailadressen bis zu + drei Jahren auf Grundlage unserer berechtigten Interessen + speichern bevor wir sie löschen, um eine ehemals gegebene + Einwilligung nachweisen zu können. Die Verarbeitung dieser Daten + wird auf den Zweck einer möglichen Abwehr von Ansprüchen + beschränkt. Ein individueller Löschungsantrag ist jederzeit + möglich, sofern zugleich das ehemalige Bestehen einer Einwilligung + bestätigt wird. +

    -

    Erhebung von Zugriffsdaten und Logfiles

    -

    - Wir, bzw. unser Hostinganbieter, erhebt auf Grundlage unserer - berechtigten Interessen im Sinne des Art. 6 Abs. 1 lit. f. DSGVO - Daten über jeden Zugriff auf den Server, auf dem sich dieser - Dienst befindet (sogenannte Serverlogfiles). Zu den Zugriffsdaten - gehören Name der abgerufenen Webseite, Datei, Datum und Uhrzeit - des Abrufs, übertragene Datenmenge, Meldung über erfolgreichen - Abruf, Browsertyp nebst Version, das Betriebssystem des Nutzers, - Referrer URL (die zuvor besuchte Seite), IP-Adresse und der - anfragende Provider. -

    -

    - Logfile-Informationen werden aus Sicherheitsgründen (z.B. zur - Aufklärung von Missbrauchs- oder Betrugshandlungen) für die Dauer - von maximal 7 Tagen gespeichert und danach gelöscht. Daten, deren - weitere Aufbewahrung zu Beweiszwecken erforderlich ist, sind bis - zur endgültigen Klärung des jeweiligen Vorfalls von der Löschung - ausgenommen. -

    +

    Erhebung von Zugriffsdaten und Logfiles

    +

    + Wir, bzw. unser Hostinganbieter, erhebt auf Grundlage unserer + berechtigten Interessen im Sinne des Art. 6 Abs. 1 lit. f. DSGVO + Daten über jeden Zugriff auf den Server, auf dem sich dieser + Dienst befindet (sogenannte Serverlogfiles). Zu den Zugriffsdaten + gehören Name der abgerufenen Webseite, Datei, Datum und Uhrzeit + des Abrufs, übertragene Datenmenge, Meldung über erfolgreichen + Abruf, Browsertyp nebst Version, das Betriebssystem des Nutzers, + Referrer URL (die zuvor besuchte Seite), IP-Adresse und der + anfragende Provider. +

    +

    + Logfile-Informationen werden aus Sicherheitsgründen (z.B. zur + Aufklärung von Missbrauchs- oder Betrugshandlungen) für die Dauer + von maximal 7 Tagen gespeichert und danach gelöscht. Daten, deren + weitere Aufbewahrung zu Beweiszwecken erforderlich ist, sind bis + zur endgültigen Klärung des jeweiligen Vorfalls von der Löschung + ausgenommen. +

    -

    Onlinepräsenzen in sozialen Medien

    -

    - Wir unterhalten Onlinepräsenzen innerhalb sozialer Netzwerke und - Plattformen, um mit den dort aktiven Kunden, Interessenten und - Nutzern kommunizieren und sie dort über unsere Leistungen - informieren zu können. -

    -

    - Wir weisen darauf hin, dass dabei Daten der Nutzer außerhalb des - Raumes der Europäischen Union verarbeitet werden können. Hierdurch - können sich für die Nutzer Risiken ergeben, weil so z.B. die - Durchsetzung der Rechte der Nutzer erschwert werden könnte. Im - Hinblick auf US-Anbieter die unter dem Privacy-Shield zertifiziert - sind, weisen wir darauf hin, dass sie sich damit verpflichten, die - Datenschutzstandards der EU einzuhalten. -

    -

    - Ferner werden die Daten der Nutzer im Regelfall für - Marktforschungs- und Werbezwecke verarbeitet. So können z.B. aus - dem Nutzungsverhalten und sich daraus ergebenden Interessen der - Nutzer Nutzungsprofile erstellt werden. Die Nutzungsprofile können - wiederum verwendet werden, um z.B. Werbeanzeigen innerhalb und - außerhalb der Plattformen zu schalten, die mutmaßlich den - Interessen der Nutzer entsprechen. Zu diesen Zwecken werden im - Regelfall Cookies auf den Rechnern der Nutzer gespeichert, in - denen das Nutzungsverhalten und die Interessen der Nutzer - gespeichert werden. Ferner können in den Nutzungsprofilen auch - Daten unabhängig der von den Nutzern verwendeten Geräte - gespeichert werden (insbesondere wenn die Nutzer Mitglieder der - jeweiligen Plattformen sind und bei diesen eingeloggt sind). Die - Verarbeitung der personenbezogenen Daten der Nutzer erfolgt auf - Grundlage unserer berechtigten Interessen an einer effektiven - Information der Nutzer und Kommunikation mit den Nutzern gem. Art. - 6 Abs. 1 lit. f. DSGVO. Falls die Nutzer von den jeweiligen - Anbietern um eine Einwilligung in die Datenverarbeitung gebeten - werden (d.h. ihr Einverständnis z.B. über das Anhaken eines - Kontrollkästchens oder Bestätigung einer Schaltfläche erklären) - ist die Rechtsgrundlage der Verarbeitung Art. 6 Abs. 1 lit. a., - Art. 7 DSGVO. Für eine detaillierte Darstellung der jeweiligen - Verarbeitungen und der Widerspruchsmöglichkeiten (Opt-Out), - verweisen wir auf die nachfolgend verlinkten Angaben der Anbieter. - Auch im Fall von Auskunftsanfragen und der Geltendmachung von - Nutzerrechten, weisen wir darauf hin, dass diese am effektivsten - bei den Anbietern geltend gemacht werden können. Nur die Anbieter - haben jeweils Zugriff auf die Daten der Nutzer und können direkt - entsprechende Maßnahmen ergreifen und Auskünfte geben. Sollten Sie - dennoch Hilfe benötigen, dann können Sie sich an uns wenden. -

    -

    Facebook

    - -

    Google / YouTube

    - -

    Instagram

    - -

    Twitter

    - +

    Onlinepräsenzen in sozialen Medien

    +

    + Wir unterhalten Onlinepräsenzen innerhalb sozialer Netzwerke und + Plattformen, um mit den dort aktiven Kunden, Interessenten und + Nutzern kommunizieren und sie dort über unsere Leistungen + informieren zu können. +

    +

    + Wir weisen darauf hin, dass dabei Daten der Nutzer außerhalb des + Raumes der Europäischen Union verarbeitet werden können. Hierdurch + können sich für die Nutzer Risiken ergeben, weil so z.B. die + Durchsetzung der Rechte der Nutzer erschwert werden könnte. Im + Hinblick auf US-Anbieter die unter dem Privacy-Shield zertifiziert + sind, weisen wir darauf hin, dass sie sich damit verpflichten, die + Datenschutzstandards der EU einzuhalten. +

    +

    + Ferner werden die Daten der Nutzer im Regelfall für + Marktforschungs- und Werbezwecke verarbeitet. So können z.B. aus + dem Nutzungsverhalten und sich daraus ergebenden Interessen der + Nutzer Nutzungsprofile erstellt werden. Die Nutzungsprofile können + wiederum verwendet werden, um z.B. Werbeanzeigen innerhalb und + außerhalb der Plattformen zu schalten, die mutmaßlich den + Interessen der Nutzer entsprechen. Zu diesen Zwecken werden im + Regelfall Cookies auf den Rechnern der Nutzer gespeichert, in + denen das Nutzungsverhalten und die Interessen der Nutzer + gespeichert werden. Ferner können in den Nutzungsprofilen auch + Daten unabhängig der von den Nutzern verwendeten Geräte + gespeichert werden (insbesondere wenn die Nutzer Mitglieder der + jeweiligen Plattformen sind und bei diesen eingeloggt sind). Die + Verarbeitung der personenbezogenen Daten der Nutzer erfolgt auf + Grundlage unserer berechtigten Interessen an einer effektiven + Information der Nutzer und Kommunikation mit den Nutzern gem. Art. + 6 Abs. 1 lit. f. DSGVO. Falls die Nutzer von den jeweiligen + Anbietern um eine Einwilligung in die Datenverarbeitung gebeten + werden (d.h. ihr Einverständnis z.B. über das Anhaken eines + Kontrollkästchens oder Bestätigung einer Schaltfläche erklären) + ist die Rechtsgrundlage der Verarbeitung Art. 6 Abs. 1 lit. a., + Art. 7 DSGVO. Für eine detaillierte Darstellung der jeweiligen + Verarbeitungen und der Widerspruchsmöglichkeiten (Opt-Out), + verweisen wir auf die nachfolgend verlinkten Angaben der Anbieter. + Auch im Fall von Auskunftsanfragen und der Geltendmachung von + Nutzerrechten, weisen wir darauf hin, dass diese am effektivsten + bei den Anbietern geltend gemacht werden können. Nur die Anbieter + haben jeweils Zugriff auf die Daten der Nutzer und können direkt + entsprechende Maßnahmen ergreifen und Auskünfte geben. Sollten Sie + dennoch Hilfe benötigen, dann können Sie sich an uns wenden. +

    +

    Facebook

    + +

    Google / YouTube

    + +

    Instagram

    + +

    Twitter

    + -

    Einbindung von Diensten und Inhalten Dritter

    -

    - Wir setzen innerhalb unseres Onlineangebotes auf Grundlage unserer - berechtigten Interessen (d.h. Interesse an der Analyse, - Optimierung und wirtschaftlichem Betrieb unseres Onlineangebotes - im Sinne des Art. 6 Abs. 1 lit. f. DSGVO) Inhalts- oder - Serviceangebote von Drittanbietern ein, um deren Inhalte und - Services, wie z.B. Videos oder Schriftarten einzubinden - (nachfolgend einheitlich bezeichnet als “Inhalte”). -

    -

    - Dies setzt immer voraus, dass die Drittanbieter dieser Inhalte, - die IP-Adresse der Nutzer wahrnehmen, da sie ohne die IP-Adresse - die Inhalte nicht an deren Browser senden könnten. Die IP-Adresse - ist damit für die Darstellung dieser Inhalte erforderlich. Wir - bemühen uns nur solche Inhalte zu verwenden, deren jeweilige - Anbieter die IP-Adresse lediglich zur Auslieferung der Inhalte - verwenden. Drittanbieter können ferner so genannte Pixel-Tags - (unsichtbare Grafiken, auch als "Web Beacons" bezeichnet) für - statistische oder Marketingzwecke verwenden. Durch die - "Pixel-Tags" können Informationen, wie der Besucherverkehr auf den - Seiten dieser Website ausgewertet werden. Die pseudonymen - Informationen können ferner in Cookies auf dem Gerät der Nutzer - gespeichert werden und unter anderem technische Informationen zum - Browser und Betriebssystem, verweisende Webseiten, Besuchszeit - sowie weitere Angaben zur Nutzung unseres Onlineangebotes - enthalten, als auch mit solchen Informationen aus anderen Quellen - verbunden werden. -

    +

    Einbindung von Diensten und Inhalten Dritter

    +

    + Wir setzen innerhalb unseres Onlineangebotes auf Grundlage unserer + berechtigten Interessen (d.h. Interesse an der Analyse, + Optimierung und wirtschaftlichem Betrieb unseres Onlineangebotes + im Sinne des Art. 6 Abs. 1 lit. f. DSGVO) Inhalts- oder + Serviceangebote von Drittanbietern ein, um deren Inhalte und + Services, wie z.B. Videos oder Schriftarten einzubinden + (nachfolgend einheitlich bezeichnet als “Inhalte”). +

    +

    + Dies setzt immer voraus, dass die Drittanbieter dieser Inhalte, + die IP-Adresse der Nutzer wahrnehmen, da sie ohne die IP-Adresse + die Inhalte nicht an deren Browser senden könnten. Die IP-Adresse + ist damit für die Darstellung dieser Inhalte erforderlich. Wir + bemühen uns nur solche Inhalte zu verwenden, deren jeweilige + Anbieter die IP-Adresse lediglich zur Auslieferung der Inhalte + verwenden. Drittanbieter können ferner so genannte Pixel-Tags + (unsichtbare Grafiken, auch als "Web Beacons" bezeichnet) für + statistische oder Marketingzwecke verwenden. Durch die + "Pixel-Tags" können Informationen, wie der Besucherverkehr auf den + Seiten dieser Website ausgewertet werden. Die pseudonymen + Informationen können ferner in Cookies auf dem Gerät der Nutzer + gespeichert werden und unter anderem technische Informationen zum + Browser und Betriebssystem, verweisende Webseiten, Besuchszeit + sowie weitere Angaben zur Nutzung unseres Onlineangebotes + enthalten, als auch mit solchen Informationen aus anderen Quellen + verbunden werden. +

    -

    YouTube

    -

    - Wir binden die Videos der Plattform “YouTube” des Anbieters Google - LLC, 1600 Amphitheatre Parkway, Mountain View, CA 94043, USA, ein. -

    +

    YouTube

    +

    + Wir binden die Videos der Plattform “YouTube” des Anbieters Google + LLC, 1600 Amphitheatre Parkway, Mountain View, CA 94043, USA, ein. +

    -

    Verwendung von Facebook Social Plugins

    -

    - Wir nutzen auf Grundlage unserer berechtigten Interessen (d.h. - Interesse an der Analyse, Optimierung und wirtschaftlichem Betrieb - unseres Onlineangebotes im Sinne des Art. 6 Abs. 1 lit. f. DSGVO) - Social Plugins ("Plugins") des sozialen Netzwerkes facebook.com, - welches von der Facebook Ireland Ltd., 4 Grand Canal Square, Grand - Canal Harbour, Dublin 2, Irland betrieben wird ("Facebook"). - Hierzu können z.B. Inhalte wie Bilder, Videos oder Texte und - Schaltflächen gehören, mit denen Nutzer Inhalte dieses - Onlineangebotes innerhalb von Facebook teilen können. Die Liste - und das Aussehen der Facebook Social Plugins kann - - {" "} - hier{" "} - - eingesehen werden. -

    -

    - Facebook ist unter dem Privacy-Shield-Abkommen zertifiziert und - bietet hierdurch eine Garantie, das europäische Datenschutzrecht - einzuhalten. -

    -

    - Wenn ein Nutzer eine Funktion dieses Onlineangebotes aufruft, die - ein solches Plugin enthält, baut sein Gerät eine direkte - Verbindung mit den Servern von Facebook auf. Der Inhalt des - Plugins wird von Facebook direkt an das Gerät des Nutzers - übermittelt und von diesem in das Onlineangebot eingebunden. Dabei - können aus den verarbeiteten Daten Nutzungsprofile der Nutzer - erstellt werden. Wir haben daher keinen Einfluss auf den Umfang - der Daten, die Facebook mit Hilfe dieses Plugins erhebt und - informiert die Nutzer daher entsprechend unserem Kenntnisstand. - Durch die Einbindung der Plugins erhält Facebook die Information, - dass ein Nutzer die entsprechende Seite des Onlineangebotes - aufgerufen hat. Ist der Nutzer bei Facebook eingeloggt, kann - Facebook den Besuch seinem Facebook-Konto zuordnen. Wenn Nutzer - mit den Plugins interagieren, zum Beispiel den Like Button - betätigen oder einen Kommentar abgeben, wird die entsprechende - Information von Ihrem Gerät direkt an Facebook übermittelt und - dort gespeichert. Falls ein Nutzer kein Mitglied von Facebook ist, - besteht trotzdem die Möglichkeit, dass Facebook seine IP-Adresse - in Erfahrung bringt und speichert. Laut Facebook wird in - Deutschland nur eine anonymisierte IP-Adresse gespeichert. -

    -

    - Zweck und Umfang der Datenerhebung und die weitere Verarbeitung - und Nutzung der Daten durch Facebook sowie die diesbezüglichen - Rechte und Einstellungsmöglichkeiten zum Schutz der Privatsphäre - der Nutzer, können diese den Datenschutzhinweisen von Facebook - entnehmen -

    -

    - Wenn ein Nutzer Facebookmitglied ist und nicht möchte, dass - Facebook über dieses Onlineangebot Daten über ihn sammelt und mit - seinen bei Facebook gespeicherten Mitgliedsdaten verknüpft, muss - er sich vor der Nutzung unseres Onlineangebotes bei Facebook - ausloggen und seine Cookies löschen. Weitere Einstellungen und - Widersprüche zur Nutzung von Daten für Werbezwecke, sind innerhalb - der Facebook-Profileinstellungen möglich: - https://www.facebook.com/settings?tab=ads oder über die - US-amerikanische Seite http://www.aboutads.info/choices/ oder die - EU-Seite http://www.youronlinechoices.com/. Die Einstellungen - erfolgen plattformunabhängig, d.h. sie werden für alle Geräte, wie - Desktopcomputer oder mobile Geräte übernommen. -

    +

    Verwendung von Facebook Social Plugins

    +

    + Wir nutzen auf Grundlage unserer berechtigten Interessen (d.h. + Interesse an der Analyse, Optimierung und wirtschaftlichem Betrieb + unseres Onlineangebotes im Sinne des Art. 6 Abs. 1 lit. f. DSGVO) + Social Plugins ("Plugins") des sozialen Netzwerkes facebook.com, + welches von der Facebook Ireland Ltd., 4 Grand Canal Square, Grand + Canal Harbour, Dublin 2, Irland betrieben wird ("Facebook"). + Hierzu können z.B. Inhalte wie Bilder, Videos oder Texte und + Schaltflächen gehören, mit denen Nutzer Inhalte dieses + Onlineangebotes innerhalb von Facebook teilen können. Die Liste + und das Aussehen der Facebook Social Plugins kann + + {" "} + hier{" "} + + eingesehen werden. +

    +

    + Facebook ist unter dem Privacy-Shield-Abkommen zertifiziert und + bietet hierdurch eine Garantie, das europäische Datenschutzrecht + einzuhalten. +

    +

    + Wenn ein Nutzer eine Funktion dieses Onlineangebotes aufruft, die + ein solches Plugin enthält, baut sein Gerät eine direkte + Verbindung mit den Servern von Facebook auf. Der Inhalt des + Plugins wird von Facebook direkt an das Gerät des Nutzers + übermittelt und von diesem in das Onlineangebot eingebunden. Dabei + können aus den verarbeiteten Daten Nutzungsprofile der Nutzer + erstellt werden. Wir haben daher keinen Einfluss auf den Umfang + der Daten, die Facebook mit Hilfe dieses Plugins erhebt und + informiert die Nutzer daher entsprechend unserem Kenntnisstand. + Durch die Einbindung der Plugins erhält Facebook die Information, + dass ein Nutzer die entsprechende Seite des Onlineangebotes + aufgerufen hat. Ist der Nutzer bei Facebook eingeloggt, kann + Facebook den Besuch seinem Facebook-Konto zuordnen. Wenn Nutzer + mit den Plugins interagieren, zum Beispiel den Like Button + betätigen oder einen Kommentar abgeben, wird die entsprechende + Information von Ihrem Gerät direkt an Facebook übermittelt und + dort gespeichert. Falls ein Nutzer kein Mitglied von Facebook ist, + besteht trotzdem die Möglichkeit, dass Facebook seine IP-Adresse + in Erfahrung bringt und speichert. Laut Facebook wird in + Deutschland nur eine anonymisierte IP-Adresse gespeichert. +

    +

    + Zweck und Umfang der Datenerhebung und die weitere Verarbeitung + und Nutzung der Daten durch Facebook sowie die diesbezüglichen + Rechte und Einstellungsmöglichkeiten zum Schutz der Privatsphäre + der Nutzer, können diese den Datenschutzhinweisen von Facebook + entnehmen +

    +

    + Wenn ein Nutzer Facebookmitglied ist und nicht möchte, dass + Facebook über dieses Onlineangebot Daten über ihn sammelt und mit + seinen bei Facebook gespeicherten Mitgliedsdaten verknüpft, muss + er sich vor der Nutzung unseres Onlineangebotes bei Facebook + ausloggen und seine Cookies löschen. Weitere Einstellungen und + Widersprüche zur Nutzung von Daten für Werbezwecke, sind innerhalb + der Facebook-Profileinstellungen möglich: + https://www.facebook.com/settings?tab=ads oder über die + US-amerikanische Seite http://www.aboutads.info/choices/ oder die + EU-Seite http://www.youronlinechoices.com/. Die Einstellungen + erfolgen plattformunabhängig, d.h. sie werden für alle Geräte, wie + Desktopcomputer oder mobile Geräte übernommen. +

    -

    Instagram

    -

    - Innerhalb unseres Onlineangebotes können Funktionen und Inhalte - des Dienstes LinkedIn, angeboten durch die LinkedIn Ireland - Unlimited Company Wilton Place, Dublin 2, Irland, eingebunden - werden. Hierzu können z.B. Inhalte wie Bilder, Videos oder Texte - und Schaltflächen gehören, mit denen Nutzer Inhalte dieses - Onlineangebotes innerhalb von LinkedIn teilen können. Sofern die - Nutzer Mitglieder der Plattform LinkedIn sind, kann LinkedIn den - Aufruf der o.g. Inhalte und Funktionen den dortigen Profilen der - Nutzer zuordnen. Datenschutzerklärung von LinkedIn: - https://www.linkedin.com/legal/privacy-policy.. LinkedIn ist unter - dem Privacy-Shield-Abkommen zertifiziert und bietet hierdurch eine - Garantie, das europäische Datenschutzrecht einzuhalten. -

    +

    Instagram

    +

    + Innerhalb unseres Onlineangebotes können Funktionen und Inhalte + des Dienstes LinkedIn, angeboten durch die LinkedIn Ireland + Unlimited Company Wilton Place, Dublin 2, Irland, eingebunden + werden. Hierzu können z.B. Inhalte wie Bilder, Videos oder Texte + und Schaltflächen gehören, mit denen Nutzer Inhalte dieses + Onlineangebotes innerhalb von LinkedIn teilen können. Sofern die + Nutzer Mitglieder der Plattform LinkedIn sind, kann LinkedIn den + Aufruf der o.g. Inhalte und Funktionen den dortigen Profilen der + Nutzer zuordnen. Datenschutzerklärung von LinkedIn: + https://www.linkedin.com/legal/privacy-policy.. LinkedIn ist unter + dem Privacy-Shield-Abkommen zertifiziert und bietet hierdurch eine + Garantie, das europäische Datenschutzrecht einzuhalten. +

    -

    Google Analytics

    -

    - Wir verwenden auf dieser Website Google Analytics der Firma Google - LLC (1600 Amphitheatre Parkway Mountain View, CA 94043, USA) um - Besucherdaten statistisch auszuwerten. Dabei verwendet Google - Analytics zielorientierte Cookies. -

    -

    Pseudonymisierung

    -

    - Unser Anliegen im Sinne der DSGVO ist die Verbesserung unseres - Angebotes und unseres Webauftritts. Da uns die Privatsphäre - unserer Nutzer wichtig ist, werden die Nutzerdaten - pseudonymisiert. Die Datenverarbeitung erfolgt auf Basis der - gesetzlichen Bestimmungen des § 96 Abs 3 TKG sowie des Art 6 - EU-DSGVO Abs 1 lit a (Einwilligung) und/oder f (berechtigtes - Interesse) der DSGVO. -

    -

    - Mithilfe des Browser-Add-ons zur Deaktivierung von Google - Analytics-JavaScript (ga.js, analytics.js, dc.js) können - Website-Besucher verhindern, dass Google Analytics ihre Daten - verwendet. Sie können die Erfassung der durch das Cookie erzeugten - und auf Ihre Nutzung der Website bezogenen Daten an Google sowie - die Verarbeitung dieser Daten durch Google verhindern, indem Sie - das unter dem folgenden Link verfügbare Browser-Plugin - herunterladen und installieren: - https://tools.google.com/dlpage/gaoptout?hl=de -

    -

    Google Analytics IP-Anonymisierung

    -

    - Wir haben auf dieser Webseite die IP-Adressen-Anonymisierung von - Google Analytics implementiert. Diese Funktion wurde von Google - entwickelt, damit diese Webseite die geltenden - Datenschutzbestimmungen und Empfehlungen der lokalen - Datenschutzbehörden einhalten kann, wenn diese eine Speicherung - der vollständigen IP-Adresse untersagen. Die Anonymisierung bzw. - Maskierung der IP findet statt, sobald die IP-Adressen im Google - Analytics-Datenerfassungsnetzwerk eintreffen und bevor eine - Speicherung oder Verarbeitung der Daten stattfindet. -

    +

    Google Analytics

    +

    + Wir verwenden auf dieser Website Google Analytics der Firma Google + LLC (1600 Amphitheatre Parkway Mountain View, CA 94043, USA) um + Besucherdaten statistisch auszuwerten. Dabei verwendet Google + Analytics zielorientierte Cookies. +

    +

    Pseudonymisierung

    +

    + Unser Anliegen im Sinne der DSGVO ist die Verbesserung unseres + Angebotes und unseres Webauftritts. Da uns die Privatsphäre + unserer Nutzer wichtig ist, werden die Nutzerdaten + pseudonymisiert. Die Datenverarbeitung erfolgt auf Basis der + gesetzlichen Bestimmungen des § 96 Abs 3 TKG sowie des Art 6 + EU-DSGVO Abs 1 lit a (Einwilligung) und/oder f (berechtigtes + Interesse) der DSGVO. +

    +

    + Mithilfe des Browser-Add-ons zur Deaktivierung von Google + Analytics-JavaScript (ga.js, analytics.js, dc.js) können + Website-Besucher verhindern, dass Google Analytics ihre Daten + verwendet. Sie können die Erfassung der durch das Cookie erzeugten + und auf Ihre Nutzung der Website bezogenen Daten an Google sowie + die Verarbeitung dieser Daten durch Google verhindern, indem Sie + das unter dem folgenden Link verfügbare Browser-Plugin + herunterladen und installieren: + https://tools.google.com/dlpage/gaoptout?hl=de +

    +

    Google Analytics IP-Anonymisierung

    +

    + Wir haben auf dieser Webseite die IP-Adressen-Anonymisierung von + Google Analytics implementiert. Diese Funktion wurde von Google + entwickelt, damit diese Webseite die geltenden + Datenschutzbestimmungen und Empfehlungen der lokalen + Datenschutzbehörden einhalten kann, wenn diese eine Speicherung + der vollständigen IP-Adresse untersagen. Die Anonymisierung bzw. + Maskierung der IP findet statt, sobald die IP-Adressen im Google + Analytics-Datenerfassungsnetzwerk eintreffen und bevor eine + Speicherung oder Verarbeitung der Daten stattfindet. +

    -

    Cloudflare

    -

    - Wir verwenden auf dieser Webseite Cloudflare der Firma Cloudflare, - Inc. (101 Townsend St., San Francisco, CA 94107, USA), um unsere - Webseite schneller und sicherer zu machen. Dabei verwendet - Cloudflare Cookies und verarbeitet User-Daten. Cloudflare, Inc. - ist eine amerikanische Firma, die ein Content Delivery Network und - diverse Sicherheitsdienste anbietet. Diese Dienste befinden sich - zwischen dem User und unserem Hosting-Anbieter. Was das alles - genau bedeutet, versuchen wir im Folgenden genauer zu erläutern. -

    -

    Was ist Cloudflare?

    -

    - Ein Content Delivery Network (CDN), wie es die Firma Cloudflare - bereitstellt, ist nichts anderes als ein Netzwerk aus verbundenen - Servern. Cloudflare hat auf der ganzen Welt solche Server - verteilt, um Webseiten schneller auf Ihren Bildschirm zu bringen. - Ganz einfach gesagt, legt Cloudflare Kopien unserer Webseite an - und platziert sie auf ihren eigenen Servern. Wenn Sie jetzt unsere - Webseite besuchen, stellt ein System der Lastenverteilung sicher, - dass die größten Teile unsere Webseite von jenem Server - ausgeliefert werden, der Ihnen unsere Webseite am schnellsten - anzeigen kann. Die Strecke der Datenübertragung zu Ihrem Browser - wird durch ein CDN deutlich verkürzt. Somit wird Ihnen der Content - unserer Webseite durch Cloudflare nicht nur von unserem - Hosting-Server geliefert, sondern von Servern aus der ganzen Welt. - Besonders hilfreich wird der Einsatz von Cloudflare für User aus - dem Ausland, da hier die Seite von einem Server in der Nähe - ausgeliefert werden kann. Neben dem schnellen Ausliefern von - Webseiten bietet Cloudflare auch diverse Sicherheitsdienste, wie - den DDoS-Schutz oder die Web Application Firewall an. -

    -

    Warum wir Cloudflare auf unserer Webseite verwenden?

    -

    - Natürlich wollen wir Ihnen mit unserer Webseite das bestmögliche - Service bieten. Cloudflare hilft uns dabei, unsere Webseite - schneller und sicherer zu machen. Cloudflare bietet uns sowohl - Web-Optimierungen als auch Sicherheitsdienste, wie DDoS-Schutz und - Web-Firewall, an. Dazu gehören auch ein Reverse-Proxy und das - Content-Verteilungsnetzwerk (CDN). Cloudflare blockiert - Bedrohungen und begrenzt missbräuchliche Bots und Crawler, die - unsere Bandbreite und Serverressourcen verschwenden. Durch das - Speichern unserer Webseite auf lokalen Datenzentren und das - Blockieren von Spam-Software ermöglicht Cloudflare, unsere - Bandbreitnutzung etwa um 60% zu reduzieren. Das Bereitstellen von - Inhalten über ein Datenzentrum in Ihrer Nähe und einiger dort - durchgeführten Web-Optimierungen reduziert die durchschnittliche - Ladezeit einer Webseite etwa um die Hälfte. Durch die Einstellung - „I´m Under Attack Mode“ („Ich werde angegriffen“-Modus) können - laut Cloudflare weitere Angriffe abgeschwächt werden, indem eine - JavaScript-Rechenaufgabe angezeigt wird, die man lösen muss, bevor - ein User auf eine Webseite zugreifen kann. Insgesamt wird dadurch - unsere Webseite deutlich leistungsstärker und weniger anfällig auf - Spam oder andere Angriffe. -

    -

    Welche Daten werden von Cloudflare gespeichert?

    -

    - Cloudflare leitet im Allgemeinen nur jene Daten weiter, die von - Webseitenbetreibern gesteuert werden. Die Inhalte werden also - nicht von Cloudflare bestimmt, sondern immer vom - Webseitenbetreiber selbst. Zudem erfasst Cloudflare unter - Umständen bestimmte Informationen zur Nutzung unserer Webseite und - verarbeitet Daten, die von uns versendet werden oder für die - Cloudflare entsprechende Anweisungen erhalten hat. In den meisten - Fällen erhält Cloudflare Daten wie IP-Adresse, Kontakt- und - Protokollinfos, Sicherheitsfingerabdrücke und Leistungsdaten für - Webseiten. Protokolldaten helfen Cloudflare beispielsweise dabei, - neue Bedrohungen zu erkennen. So kann Cloudflare einen hohen - Sicherheitsschutz für unsere Webseite gewährleisten. Cloudflare - verarbeitet diese Daten im Rahmen der Services unter Einhaltung - der geltenden Gesetze. Dazu zählt natürlich auch die - Datenschutzgrundverordnung (DSGVO). Aus Sicherheitsgründen - verwendet Cloudflare auch ein Cookie. Das Cookie (__cfduid) wird - eingesetzt, um einzelne User hinter einer gemeinsam genutzten - IP-Adresse zu identifizieren und Sicherheitseinstellungen für - jeden einzelnen User anzuwenden. Sehr nützlich wird dieses Cookie - beispielsweise, wenn Sie unsere Webseite aus einem Lokal benutzen, - in dem sich eine Reihe infizierter Computer befinden. Wenn aber - Ihr Computer vertrauenswürdig ist, können wir dies anhand des - Cookies erkennen. So können Sie, trotz infizierter PCs in Ihrem - Umfeld, ungehindert und sorgenfrei durch unsere Webseite surfen. - Wichtig zu wissen ist auch noch, dass dieses Cookie keine - personenbezogenen Daten speichert. Dieses Cookie ist für die - Cloudflare-Sicherheitsfunktionen unbedingt erforderlich und kann - nicht deaktiviert werden. -

    -

    - Wie kann ich meine Daten löschen bzw. die Datenspeicherung - verhindern? -

    -

    - Cloudflare bewahrt Daten-Protokolle nur solange wie nötig auf und - diese Daten werden auch in den meisten Fällen innerhalb von 24 - Stunden wieder gelöscht. Cloudflare speichert auch keine - personenbezogenen Daten, wie beispielsweise Ihre IP-Adresse. Es - gibt allerdings Informationen, die Cloudflare als Teil seiner - permanenten Protokolle auf unbestimmte Zeit speichert, um so die - Gesamtleistung von Cloudflare Resolver zu verbessern und etwaige - Sicherheitsrisiken zu erkennen. Alle Daten, die Cloudflare sammelt - (temporär oder permanent), werden von allen personenbezogenen - Daten bereinigt. Alle permanenten Protokolle werden zudem von - Cloudflare anonymisiert. Cloudflare geht in Ihrer - Datenschutzerklärung darauf ein, dass sie für die Inhalte, die sie - erhalten nicht verantwortlich sind. Wenn Sie beispielsweise bei - Cloudflare anfragen, ob sie Ihre Inhalte aktualisieren oder - löschen können, verweist Cloudflare grundsätzlich auf uns als - Webseitenbetreiber. Sie können auch die gesamte Erfassung und - Verarbeitung Ihrer Daten durch Cloudflare komplett unterbinden, - indem Sie die Ausführung von Script-Code in Ihrem Browser - deaktivieren oder einen Script-Blocker in Ihren Browser einbinden. - Cloudflare ist aktiver Teilnehmer beim EU-U.S. Privacy Shield - Framework, wodurch der korrekte und sichere Datentransfer - persönlicher Daten geregelt wird. -

    -
    - )} - - ); - } +

    Cloudflare

    +

    + Wir verwenden auf dieser Webseite Cloudflare der Firma Cloudflare, + Inc. (101 Townsend St., San Francisco, CA 94107, USA), um unsere + Webseite schneller und sicherer zu machen. Dabei verwendet + Cloudflare Cookies und verarbeitet User-Daten. Cloudflare, Inc. + ist eine amerikanische Firma, die ein Content Delivery Network und + diverse Sicherheitsdienste anbietet. Diese Dienste befinden sich + zwischen dem User und unserem Hosting-Anbieter. Was das alles + genau bedeutet, versuchen wir im Folgenden genauer zu erläutern. +

    +

    Was ist Cloudflare?

    +

    + Ein Content Delivery Network (CDN), wie es die Firma Cloudflare + bereitstellt, ist nichts anderes als ein Netzwerk aus verbundenen + Servern. Cloudflare hat auf der ganzen Welt solche Server + verteilt, um Webseiten schneller auf Ihren Bildschirm zu bringen. + Ganz einfach gesagt, legt Cloudflare Kopien unserer Webseite an + und platziert sie auf ihren eigenen Servern. Wenn Sie jetzt unsere + Webseite besuchen, stellt ein System der Lastenverteilung sicher, + dass die größten Teile unsere Webseite von jenem Server + ausgeliefert werden, der Ihnen unsere Webseite am schnellsten + anzeigen kann. Die Strecke der Datenübertragung zu Ihrem Browser + wird durch ein CDN deutlich verkürzt. Somit wird Ihnen der Content + unserer Webseite durch Cloudflare nicht nur von unserem + Hosting-Server geliefert, sondern von Servern aus der ganzen Welt. + Besonders hilfreich wird der Einsatz von Cloudflare für User aus + dem Ausland, da hier die Seite von einem Server in der Nähe + ausgeliefert werden kann. Neben dem schnellen Ausliefern von + Webseiten bietet Cloudflare auch diverse Sicherheitsdienste, wie + den DDoS-Schutz oder die Web Application Firewall an. +

    +

    Warum wir Cloudflare auf unserer Webseite verwenden?

    +

    + Natürlich wollen wir Ihnen mit unserer Webseite das bestmögliche + Service bieten. Cloudflare hilft uns dabei, unsere Webseite + schneller und sicherer zu machen. Cloudflare bietet uns sowohl + Web-Optimierungen als auch Sicherheitsdienste, wie DDoS-Schutz und + Web-Firewall, an. Dazu gehören auch ein Reverse-Proxy und das + Content-Verteilungsnetzwerk (CDN). Cloudflare blockiert + Bedrohungen und begrenzt missbräuchliche Bots und Crawler, die + unsere Bandbreite und Serverressourcen verschwenden. Durch das + Speichern unserer Webseite auf lokalen Datenzentren und das + Blockieren von Spam-Software ermöglicht Cloudflare, unsere + Bandbreitnutzung etwa um 60% zu reduzieren. Das Bereitstellen von + Inhalten über ein Datenzentrum in Ihrer Nähe und einiger dort + durchgeführten Web-Optimierungen reduziert die durchschnittliche + Ladezeit einer Webseite etwa um die Hälfte. Durch die Einstellung + „I´m Under Attack Mode“ („Ich werde angegriffen“-Modus) können + laut Cloudflare weitere Angriffe abgeschwächt werden, indem eine + JavaScript-Rechenaufgabe angezeigt wird, die man lösen muss, bevor + ein User auf eine Webseite zugreifen kann. Insgesamt wird dadurch + unsere Webseite deutlich leistungsstärker und weniger anfällig auf + Spam oder andere Angriffe. +

    +

    Welche Daten werden von Cloudflare gespeichert?

    +

    + Cloudflare leitet im Allgemeinen nur jene Daten weiter, die von + Webseitenbetreibern gesteuert werden. Die Inhalte werden also + nicht von Cloudflare bestimmt, sondern immer vom + Webseitenbetreiber selbst. Zudem erfasst Cloudflare unter + Umständen bestimmte Informationen zur Nutzung unserer Webseite und + verarbeitet Daten, die von uns versendet werden oder für die + Cloudflare entsprechende Anweisungen erhalten hat. In den meisten + Fällen erhält Cloudflare Daten wie IP-Adresse, Kontakt- und + Protokollinfos, Sicherheitsfingerabdrücke und Leistungsdaten für + Webseiten. Protokolldaten helfen Cloudflare beispielsweise dabei, + neue Bedrohungen zu erkennen. So kann Cloudflare einen hohen + Sicherheitsschutz für unsere Webseite gewährleisten. Cloudflare + verarbeitet diese Daten im Rahmen der Services unter Einhaltung + der geltenden Gesetze. Dazu zählt natürlich auch die + Datenschutzgrundverordnung (DSGVO). Aus Sicherheitsgründen + verwendet Cloudflare auch ein Cookie. Das Cookie (__cfduid) wird + eingesetzt, um einzelne User hinter einer gemeinsam genutzten + IP-Adresse zu identifizieren und Sicherheitseinstellungen für + jeden einzelnen User anzuwenden. Sehr nützlich wird dieses Cookie + beispielsweise, wenn Sie unsere Webseite aus einem Lokal benutzen, + in dem sich eine Reihe infizierter Computer befinden. Wenn aber + Ihr Computer vertrauenswürdig ist, können wir dies anhand des + Cookies erkennen. So können Sie, trotz infizierter PCs in Ihrem + Umfeld, ungehindert und sorgenfrei durch unsere Webseite surfen. + Wichtig zu wissen ist auch noch, dass dieses Cookie keine + personenbezogenen Daten speichert. Dieses Cookie ist für die + Cloudflare-Sicherheitsfunktionen unbedingt erforderlich und kann + nicht deaktiviert werden. +

    +

    + Wie kann ich meine Daten löschen bzw. die Datenspeicherung + verhindern? +

    +

    + Cloudflare bewahrt Daten-Protokolle nur solange wie nötig auf und + diese Daten werden auch in den meisten Fällen innerhalb von 24 + Stunden wieder gelöscht. Cloudflare speichert auch keine + personenbezogenen Daten, wie beispielsweise Ihre IP-Adresse. Es + gibt allerdings Informationen, die Cloudflare als Teil seiner + permanenten Protokolle auf unbestimmte Zeit speichert, um so die + Gesamtleistung von Cloudflare Resolver zu verbessern und etwaige + Sicherheitsrisiken zu erkennen. Alle Daten, die Cloudflare sammelt + (temporär oder permanent), werden von allen personenbezogenen + Daten bereinigt. Alle permanenten Protokolle werden zudem von + Cloudflare anonymisiert. Cloudflare geht in Ihrer + Datenschutzerklärung darauf ein, dass sie für die Inhalte, die sie + erhalten nicht verantwortlich sind. Wenn Sie beispielsweise bei + Cloudflare anfragen, ob sie Ihre Inhalte aktualisieren oder + löschen können, verweist Cloudflare grundsätzlich auf uns als + Webseitenbetreiber. Sie können auch die gesamte Erfassung und + Verarbeitung Ihrer Daten durch Cloudflare komplett unterbinden, + indem Sie die Ausführung von Script-Code in Ihrem Browser + deaktivieren oder einen Script-Blocker in Ihren Browser einbinden. + Cloudflare ist aktiver Teilnehmer beim EU-U.S. Privacy Shield + Framework, wodurch der korrekte und sichere Datentransfer + persönlicher Daten geregelt wird. +

    +
    + )} + + ); + } } export default MessagePage; diff --git a/src/components/pages/MessagePage/message.scss b/src/components/pages/MessagePage/message.scss new file mode 100644 index 0000000..5aea9e5 --- /dev/null +++ b/src/components/pages/MessagePage/message.scss @@ -0,0 +1,8 @@ +#message { + margin-top: 4rem !important; +} + +/** + * SPDX-License-Identifier: (EUPL-1.2) + * Copyright © 2019-2020 Werbeagentur Christian Aichner + */ From d994367279e66a6349ce51f755ecb010f3c5e6f5 Mon Sep 17 00:00:00 2001 From: Aichnerc Date: Sat, 25 Apr 2020 21:30:59 +0200 Subject: [PATCH 10/22] Improve meta tag color The color has been adjusted. --- public/404.html | 4 ++-- public/index.html | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/public/404.html b/public/404.html index 59590ed..fc1fcc6 100644 --- a/public/404.html +++ b/public/404.html @@ -76,12 +76,12 @@ href="%PUBLIC_URL%/fav/favicon-16x16.png" /> - + - + Werbeagentur Christian Aichner - Ihr Partner diff --git a/public/index.html b/public/index.html index a1567b2..cffdaba 100644 --- a/public/index.html +++ b/public/index.html @@ -80,12 +80,12 @@ href="%PUBLIC_URL%/fav/favicon-16x16.png" /> - + - + Werbeagentur Christian Aichner - Ihr Partner From b2b5c58e3508fdee76a5f7a61e76cc29edb07332 Mon Sep 17 00:00:00 2001 From: Aichnerc Date: Sat, 25 Apr 2020 22:05:43 +0200 Subject: [PATCH 11/22] Improve SEO The robots.txt and sitemap have been added. --- public/robots.txt | 2 ++ public/sitemap.xml | 27 +++++++++++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 public/robots.txt create mode 100644 public/sitemap.xml diff --git a/public/robots.txt b/public/robots.txt new file mode 100644 index 0000000..6f27bb6 --- /dev/null +++ b/public/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: \ No newline at end of file diff --git a/public/sitemap.xml b/public/sitemap.xml new file mode 100644 index 0000000..15d8561 --- /dev/null +++ b/public/sitemap.xml @@ -0,0 +1,27 @@ + + + + https://aichner-christian.com/ + 2020-04-25T19:31:32+00:00 + 1.00 + + + https://aichner-christian.com/location/ + 2020-04-25T19:31:32+00:00 + 0.80 + + + https://aichner-christian.com/branding + 2020-04-25T19:31:32+00:00 + 0.70 + + + https://aichner-christian.com/about + 2020-04-25T19:31:32+00:00 + 0.60 + + \ No newline at end of file From 4fa372517c4ba030133f9fae1f5a5d3e4b0fadf7 Mon Sep 17 00:00:00 2001 From: Aichnerc Date: Sat, 25 Apr 2020 22:06:18 +0200 Subject: [PATCH 12/22] Add React-Helmet This allows us to set meta tags on each page. --- package.json | 1 + src/components/pages/BrandingPage/index.jsx | 17 +- src/components/pages/HomePage/index.jsx | 58 +++--- src/components/pages/LocationPage/index.jsx | 190 ++++++++++---------- src/components/pages/PrintingPage/index.jsx | 5 - 5 files changed, 144 insertions(+), 127 deletions(-) diff --git a/package.json b/package.json index 771e945..614f68f 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "gh-pages": "^2.2.0", "mdbreact": "mdbreact-4.25.6.tgz", "node-sass": "^4.13.0", + "react-helmet": "^6.0.0", "react-redux": "^7.1.1", "react-redux-firebase": "^2.4.1", "react-router-dom": "^5.0.1", diff --git a/src/components/pages/BrandingPage/index.jsx b/src/components/pages/BrandingPage/index.jsx index c57fc84..f1dc16e 100644 --- a/src/components/pages/BrandingPage/index.jsx +++ b/src/components/pages/BrandingPage/index.jsx @@ -2,6 +2,10 @@ // Contains all the functionality necessary to define React components import React from "react"; +//> Additional +// React Helmet +import { Helmet } from "react-helmet"; + //> MDB // "Material Design for Bootstrap" is a great UI design framework import { @@ -26,16 +30,19 @@ import { ReactComponent as Logo } from "../../../assets/content/logo_full.svg"; import weddingsLogo from "../../../assets/content/weddings.png"; class BrandingPage extends React.Component { - componentDidMount = () => { - // Set page title - document.title = "Evolving Our Identity"; - }; - render() { const { globalProps } = this.props; return (
    + + Evolving Our Identity + +

    Logos und Verwendung

    diff --git a/src/components/pages/HomePage/index.jsx b/src/components/pages/HomePage/index.jsx index 91db45f..8b2b58b 100644 --- a/src/components/pages/HomePage/index.jsx +++ b/src/components/pages/HomePage/index.jsx @@ -2,41 +2,49 @@ // Contains all the functionality necessary to define React components import React from "react"; +//> Additional +// React Helmet +import { Helmet } from "react-helmet"; + //> Components // Sections import { - Hero, - ContactForm, - Services, - CallToAction, - Trusted, + Hero, + ContactForm, + Services, + CallToAction, + Trusted, } from "../../organisms/sections"; //> CSS // All organisms use their own scss implementation class HomePage extends React.Component { - componentDidMount = () => { - document.title = "Ihr verlässlicher Allround-Partner"; - }; - - render() { - const { globalProps } = this.props; + render() { + const { globalProps } = this.props; - if (globalProps) { - return ( - <> - - - - - - - ); - } else { - return null; - } - } + if (globalProps) { + return ( + <> + + Werbeagentur Christian Aichner - Ihr Partner + + + + + + + + + ); + } else { + return null; + } + } } export default HomePage; diff --git a/src/components/pages/LocationPage/index.jsx b/src/components/pages/LocationPage/index.jsx index cc55323..c0a83e5 100644 --- a/src/components/pages/LocationPage/index.jsx +++ b/src/components/pages/LocationPage/index.jsx @@ -2,15 +2,13 @@ // Contains all the functionality necessary to define React components import React from "react"; +//> Additional +// React Helmet +import { Helmet } from "react-helmet"; + //> MDB // "Material Design for Bootstrap" is a great UI design framework -import { - MDBContainer, - MDBRow, - MDBCol, - MDBBtn, - MDBIcon, -} from "mdbreact"; +import { MDBContainer, MDBRow, MDBCol, MDBBtn, MDBIcon } from "mdbreact"; //> CSS import "./location.scss"; @@ -21,94 +19,102 @@ import { Egg } from "../../atoms"; //> Data // Google Maps URL const url = - "https://www.google.com/maps/embed/v1/place?q=place_id:ChIJF-itd11_ekcR-bHkoK2Mfx4"; + "https://www.google.com/maps/embed/v1/place?q=place_id:ChIJF-itd11_ekcR-bHkoK2Mfx4"; class LocationPage extends React.Component { - state = {}; + state = {}; - render() { - return ( - - - -

    Wie Du uns findest

    -
    -

    Hauptstandort

    -

    Emailwerkstraße 29

    -

    9523 Villach-Landskron

    -

    Kärtnen, Österreich

    -

    - - Gäste WLAN -

    -

    - - Dedicated Meeting Room -

    -

    - - Chromecast enabled Smart TV für Präsentationen -

    -

    - - Ausreichend Parkmöglichkeiten -

    -

    - - Für Erfrischungen ist gesorgt -

    -

    - - Papier und Stifte stehen zur Verfügung -

    - {(new Date().getHours() === 4 || new Date().getHours() === 16) && - new Date().getMinutes() === 20 && ( -

    - - Nice. Du siehst Dir diese Seite um 4:20 an. - -

    - )} -
    -

    Öffnungszeiten

    -

    - Wir haben keine fixen Öffnungszeiten. Bitte wenden Sie sich vor - einem Besuch an uns oder machen Sie einen Termin mit uns aus. -

    - - - - Termin ausmachen - - - - - - Kontakt - - -
    - -
    - -
    -
    -
    -
    - ); - } + render() { + return ( + + + Wo Du uns findest + + + + +

    Wie Du uns findest

    +
    +

    Hauptstandort

    +

    Emailwerkstraße 29

    +

    9523 Villach-Landskron

    +

    Kärtnen, Österreich

    +

    + + Gäste WLAN +

    +

    + + Dedicated Meeting Room +

    +

    + + Chromecast enabled Smart TV für Präsentationen +

    +

    + + Ausreichend Parkmöglichkeiten +

    +

    + + Für Erfrischungen ist gesorgt +

    +

    + + Papier und Stifte stehen zur Verfügung +

    + {(new Date().getHours() === 4 || new Date().getHours() === 16) && + new Date().getMinutes() === 20 && ( +

    + + Nice. Du siehst Dir diese Seite um 4:20 an. + +

    + )} +
    +

    Öffnungszeiten

    +

    + Wir haben keine fixen Öffnungszeiten. Bitte wenden Sie sich vor + einem Besuch an uns oder machen Sie einen Termin mit uns aus. +

    + + + + Termin ausmachen + + + + + + Kontakt + + +
    + +
    + +
    +
    +
    +
    + ); + } } export default LocationPage; diff --git a/src/components/pages/PrintingPage/index.jsx b/src/components/pages/PrintingPage/index.jsx index adef3f7..5c86f7d 100644 --- a/src/components/pages/PrintingPage/index.jsx +++ b/src/components/pages/PrintingPage/index.jsx @@ -45,11 +45,6 @@ const notusecases = [ ]; class PrintingPage extends React.Component { - componentDidMount = () => { - // Set page title - document.title = "Ihr verlässlicher Allround-Partner"; - }; - render() { const { globalProps } = this.props; From 820332604d4db2d94750aa1726805b7e69396514 Mon Sep 17 00:00:00 2001 From: Aichnerc Date: Sat, 25 Apr 2020 22:06:34 +0200 Subject: [PATCH 13/22] Improve mobile design The mobile view has been improved. --- .../organisms/sections/CallToAction/callToAction.scss | 7 +++++++ src/components/organisms/sections/CallToAction/index.jsx | 6 +++++- src/components/organisms/sections/ContactForm/index.jsx | 2 +- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/components/organisms/sections/CallToAction/callToAction.scss b/src/components/organisms/sections/CallToAction/callToAction.scss index b14161e..58cccf2 100644 --- a/src/components/organisms/sections/CallToAction/callToAction.scss +++ b/src/components/organisms/sections/CallToAction/callToAction.scss @@ -2,6 +2,13 @@ // Hide overflow once the animation can exceed the width sometimes overflow: hidden; + // Mobile view moon + .mobile-moon{ + max-height: 100px; + left: 10%; + margin: auto; + } + padding-top: 7.5rem; padding-bottom: 7.5rem; h2 { diff --git a/src/components/organisms/sections/CallToAction/index.jsx b/src/components/organisms/sections/CallToAction/index.jsx index 0f9aaca..dffe571 100644 --- a/src/components/organisms/sections/CallToAction/index.jsx +++ b/src/components/organisms/sections/CallToAction/index.jsx @@ -71,12 +71,16 @@ class CallToAction extends React.Component { - + Moon + + Moon + + diff --git a/src/components/organisms/sections/ContactForm/index.jsx b/src/components/organisms/sections/ContactForm/index.jsx index 142006d..84f25ec 100644 --- a/src/components/organisms/sections/ContactForm/index.jsx +++ b/src/components/organisms/sections/ContactForm/index.jsx @@ -75,7 +75,7 @@ class ContactForm extends React.Component { - +

    Kontakt aufnehmen

    From 7e2494b8f5b1dc09a68735f67dcaee8a3004dc2f Mon Sep 17 00:00:00 2001 From: Aichnerc Date: Sat, 25 Apr 2020 22:10:32 +0200 Subject: [PATCH 14/22] Move sitemap.xml The sitemap has been moved to a sub folder to test if it can be detected. --- public/{ => seo}/sitemap.xml | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename public/{ => seo}/sitemap.xml (100%) diff --git a/public/sitemap.xml b/public/seo/sitemap.xml similarity index 100% rename from public/sitemap.xml rename to public/seo/sitemap.xml From 7243a18e47ded1f71b8b7101edcdc8f145dc2aad Mon Sep 17 00:00:00 2001 From: Aichnerc Date: Sat, 25 Apr 2020 22:16:52 +0200 Subject: [PATCH 15/22] Move sitemap.xml back The subfolder was not needed for it to be found. --- public/{seo => }/sitemap.xml | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename public/{seo => }/sitemap.xml (100%) diff --git a/public/seo/sitemap.xml b/public/sitemap.xml similarity index 100% rename from public/seo/sitemap.xml rename to public/sitemap.xml From ef1c75edd13b840ede71054946da658382b0dc1b Mon Sep 17 00:00:00 2001 From: Aichnerc Date: Sat, 25 Apr 2020 22:35:24 +0200 Subject: [PATCH 16/22] Update version The version has been updated (minor). --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 614f68f..7f06f94 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "company-homepage", - "version": "1.1.0", + "version": "1.2.0", "private": true, "license": "(EUPL-1.2)", "homepage": ".", From d69f653d1240035a6449c708a00aace3b29ff413 Mon Sep 17 00:00:00 2001 From: Aichnerc Date: Sat, 25 Apr 2020 22:44:18 +0200 Subject: [PATCH 17/22] Improve code quality The indentation may be bugged. --- src/components/molecules/Footer/footer.scss | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/molecules/Footer/footer.scss b/src/components/molecules/Footer/footer.scss index 0cbff27..c106496 100644 --- a/src/components/molecules/Footer/footer.scss +++ b/src/components/molecules/Footer/footer.scss @@ -86,8 +86,8 @@ footer { // Company img svg { - width: 80%; - max-width: 200px; + width: 80%; + max-width: 200px; } // Dark Mode From 834bb7b57d2be023a18dbc31a5c157975ac1d80c Mon Sep 17 00:00:00 2001 From: Aichnerc Date: Sat, 25 Apr 2020 22:52:18 +0200 Subject: [PATCH 18/22] Improve code quality The indentation bug is really annoying,. --- src/components/molecules/Footer/footer.scss | 238 +++++++++--------- .../organisms/sections/Trusted/index.jsx | 68 ++--- 2 files changed, 153 insertions(+), 153 deletions(-) diff --git a/src/components/molecules/Footer/footer.scss b/src/components/molecules/Footer/footer.scss index c106496..9906c00 100644 --- a/src/components/molecules/Footer/footer.scss +++ b/src/components/molecules/Footer/footer.scss @@ -1,138 +1,138 @@ @import "../../../utilities/variables"; .social-buttons { - .btn { - i { - padding: 0; - } - } - // Button WhatsApp - .btn-wa { - background-color: #25d366 !important; - color: white !important; - } + .btn { + i { + padding: 0; + } + } + // Button WhatsApp + .btn-wa { + background-color: #25d366 !important; + color: white !important; + } } // Footer footer { - transition: all 0.5s ease; - a { - color: #6c757d !important; - &:hover { - color: lighten(#6c757d, 10%) !important; - } - } + transition: all 0.5s ease; + a { + color: #6c757d !important; + &:hover { + color: lighten(#6c757d, 10%) !important; + } + } - // List item style - // Footer link icons - ul { - padding: 0; - li { - background: rgba(255, 255, 255, 0.05); - transition: all 0.1s ease; - padding: 1rem !important; - align-items: center; - i { - width: 30px; - text-align: center; - padding-right: 0.5rem; - } - &:hover { - background: rgba(255, 255, 255, 0.1); - } - .badge { - box-shadow: none; - } - } - } + // List item style + // Footer link icons + ul { + padding: 0; + li { + background: rgba(255, 255, 255, 0.05); + transition: all 0.1s ease; + padding: 1rem !important; + align-items: center; + i { + width: 30px; + text-align: center; + padding-right: 0.5rem; + } + &:hover { + background: rgba(255, 255, 255, 0.1); + } + .badge { + box-shadow: none; + } + } + } - // Custom pulsating heart - .pulse { - -webkit-animation: pulse 1s infinite; - animation: pulse 1s infinite; - } + // Custom pulsating heart + .pulse { + -webkit-animation: pulse 1s infinite; + animation: pulse 1s infinite; + } - // Footer column headers - .title { - text-transform: uppercase; - font-weight: bold; - } + // Footer column headers + .title { + text-transform: uppercase; + font-weight: bold; + } - // Column header separator - .col-md-3, - .col-md-4 { - hr { - width: 60px; - height: 1px; - } - } + // Column header separator + .col-md-3, + .col-md-4 { + hr { + width: 60px; + height: 1px; + } + } - // Dark Mode switch - .switch-red { - label input[type="checkbox"]:checked + .lever { - background-color: lighten($agencyRed, 35%); - &::after { - background-color: $agencyRed !important; - } - } - } + // Dark Mode switch + .switch-red { + label input[type="checkbox"]:checked + .lever { + background-color: lighten($agencyRed, 35%); + &::after { + background-color: $agencyRed !important; + } + } + } - // Social tab - .social { - padding: 2rem 0 2rem 0; - margin: 0; - background-color: rgba(0, 0, 0, 0.1); - } + // Social tab + .social { + padding: 2rem 0 2rem 0; + margin: 0; + background-color: rgba(0, 0, 0, 0.1); + } - // Company img - svg { - width: 80%; - max-width: 200px; - } + // Company img + svg { + width: 80%; + max-width: 200px; + } - // Dark Mode - &.agency-dark { - .social { - padding: 2rem 0 2rem 0; - margin: 0; - background-color: rgba(0, 0, 0, 0.2); - } - svg { - &#logo { - .st0 { - fill: #ffffff; - } - .st1 { - fill: #f61a42; - } - } - } - } + // Dark Mode + &.agency-dark { + .social { + padding: 2rem 0 2rem 0; + margin: 0; + background-color: rgba(0, 0, 0, 0.2); + } + svg { + &#logo { + .st0 { + fill: #ffffff; + } + .st1 { + fill: #f61a42; + } + } + } + } - // Light Mode - &.white { - ul li { - background: rgba(0, 0, 0, 0.05); - &:hover { - background: rgba(0, 0, 0, 0.1); - } - } - .footer-copyright { - background: rgba(0, 0, 0, 0.1); - color: #212121 !important; - } - ul { - i { - color: #212121 !important; - } - a { - color: #212121 !important; - } - } - .btn { - color: white; - } - } + // Light Mode + &.white { + ul li { + background: rgba(0, 0, 0, 0.05); + &:hover { + background: rgba(0, 0, 0, 0.1); + } + } + .footer-copyright { + background: rgba(0, 0, 0, 0.1); + color: #212121 !important; + } + ul { + i { + color: #212121 !important; + } + a { + color: #212121 !important; + } + } + .btn { + color: white; + } + } } /** diff --git a/src/components/organisms/sections/Trusted/index.jsx b/src/components/organisms/sections/Trusted/index.jsx index 6740c7a..223828d 100644 --- a/src/components/organisms/sections/Trusted/index.jsx +++ b/src/components/organisms/sections/Trusted/index.jsx @@ -23,43 +23,43 @@ import e4yIMG from "../../../../assets/content/trusted/e4y.png"; //> Data const data = [ - { src: pharmaziegasseIMG, alt: "Pharmaziegasse Logo" }, - { src: snekIMG, alt: "SNEK" }, - { src: gasserPartnerIMG, alt: "Gasser+Partner" }, - { src: kelagbigbandIMG, alt: "KELAG BigBand" }, - { src: e4yIMG, alt: "Emotions 4 You" }, - { src: erlebnishotelIMG, alt: "Erlebnishotel Mölltal" }, - { src: psvIMG, alt: "Polizeisportverein" }, - { src: rauchIMG, alt: "Andreas Rauch" }, - { src: kelagIMG, alt: "KELAG" }, - { src: bluelupiIMG, alt: "Blue Lupi" }, + { src: pharmaziegasseIMG, alt: "Pharmaziegasse Logo" }, + { src: snekIMG, alt: "SNEK" }, + { src: gasserPartnerIMG, alt: "Gasser+Partner" }, + { src: kelagbigbandIMG, alt: "KELAG BigBand" }, + { src: e4yIMG, alt: "Emotions 4 You" }, + { src: erlebnishotelIMG, alt: "Erlebnishotel Mölltal" }, + { src: psvIMG, alt: "Polizeisportverein" }, + { src: rauchIMG, alt: "Andreas Rauch" }, + { src: kelagIMG, alt: "KELAG" }, + { src: bluelupiIMG, alt: "Blue Lupi" }, ]; class Trusted extends React.PureComponent { - render() { - return ( -

    - -

    - Viele Firmen profitieren von unseren Services -

    -

    - Wir bieten Dir hochwertige, auf Deine Vision - zugeschnittene Lösungen in sämtlichen Bereichen des Marketings. -

    - - {data.map((item, i) => { - return ( - - {item.alt} - - ); - })} - -
    -
    - ); - } + render() { + return ( +
    + +

    + Viele Firmen profitieren von unseren Services +

    +

    + Wir bieten Dir hochwertige, auf Deine Vision + zugeschnittene Lösungen in sämtlichen Bereichen des Marketings. +

    + + {data.map((item, i) => { + return ( + + {item.alt} + + ); + })} + +
    +
    + ); + } } export default Trusted; From 02d683e026919873d94355e8c8497498212e4bf7 Mon Sep 17 00:00:00 2001 From: Aichnerc Date: Sat, 25 Apr 2020 22:56:51 +0200 Subject: [PATCH 19/22] Fix indentation The indentation bug has been fixed. --- src/components/molecules/Footer/index.jsx | 590 ++--- src/components/molecules/Navbar/index.jsx | 224 +- .../organisms/sections/CallToAction/index.jsx | 130 +- .../organisms/sections/ContactForm/index.jsx | 414 ++-- .../organisms/sections/Hero/hero.scss | 254 +- .../organisms/sections/Hero/index.jsx | 262 +-- src/components/pages/BrandingPage/index.jsx | 614 ++--- src/components/pages/HomePage/index.jsx | 56 +- src/components/pages/LocationPage/index.jsx | 184 +- src/components/pages/MessagePage/index.jsx | 2074 ++++++++--------- src/components/pages/MessagePage/message.scss | 2 +- src/store/actions/contactActions.js | 38 +- 12 files changed, 2421 insertions(+), 2421 deletions(-) diff --git a/src/components/molecules/Footer/index.jsx b/src/components/molecules/Footer/index.jsx index 56fc552..65ab1ce 100644 --- a/src/components/molecules/Footer/index.jsx +++ b/src/components/molecules/Footer/index.jsx @@ -7,15 +7,15 @@ import { Link, withRouter } from "react-router-dom"; //> MDB // "Material Design for Bootstrap" is a great UI design framework import { - MDBFooter, - MDBRow, - MDBCol, - MDBContainer, - MDBIcon, - MDBBtn, - MDBSwitch, - MDBBadge, - MDBSmoothScroll, + MDBFooter, + MDBRow, + MDBCol, + MDBContainer, + MDBIcon, + MDBBtn, + MDBSwitch, + MDBBadge, + MDBSmoothScroll, } from "mdbreact"; //> Images @@ -28,137 +28,137 @@ import "./footer.scss"; //> Dynamic texts // Slogans const slogans = [ - "Wählen Sie den Weg zum Erfolg!", - "Erhöhen Sie Ihren Bekanntheitsgrad!", - "Jetzt Beratungsgespräch vereinbaren!", - "Lassen Sie sich von uns beraten!", - "Worauf warten Sie noch?", - "Der Erfolg wartet!", + "Wählen Sie den Weg zum Erfolg!", + "Erhöhen Sie Ihren Bekanntheitsgrad!", + "Jetzt Beratungsgespräch vereinbaren!", + "Lassen Sie sich von uns beraten!", + "Worauf warten Sie noch?", + "Der Erfolg wartet!", ]; class Footer extends React.PureComponent { - state = { - slogan: "", - }; + state = { + slogan: "", + }; - // Update parent state (Root Component) - handleSwitchChange = () => { - this.props.handler(); - }; + // Update parent state (Root Component) + handleSwitchChange = () => { + this.props.handler(); + }; - // When component is ready to mount - componentWillMount() { - this._getSlogan(); - } + // When component is ready to mount + componentWillMount() { + this._getSlogan(); + } - // Get a random slogan and save to state - _getSlogan = () => { - this.setState({ - slogan: slogans[Math.floor(Math.random() * slogans.length)], - }); - }; + // Get a random slogan and save to state + _getSlogan = () => { + this.setState({ + slogan: slogans[Math.floor(Math.random() * slogans.length)], + }); + }; - render() { - const { location } = this.props; + render() { + const { location } = this.props; - return ( - - - -

    Verbinde Dich mit uns!

    -
    - - - - - - - - - - - - - - - - - + + +

    Verbinde Dich mit uns!

    +
    + + + + + + + + + + + + + + + + + - - - - - - -
    - - - - - -
    Dienste
    -
    - +
    + +
    Kontakt
    +
    + +
    + +

    {this.state.slogan}

    + {location.pathname === "/" ? ( + + + Kontakt + + + ) : ( + + + Kontakt + + + )} +
    +
    +
    +
    + + © 2017 - {new Date().getFullYear()} Copyright: Werbeagentur + Christian Aichner +
    + + Stable release + · + Version v{process.env.REACT_APP_VERSION} + · + + + View on GitHub + + · + + + Report bug + + +
    +

    + Made with{" "} + {" "} + by us. +

    +
    +
    +
    + ); + } } export default withRouter(Footer); diff --git a/src/components/molecules/Navbar/index.jsx b/src/components/molecules/Navbar/index.jsx index bc967df..8648dcb 100644 --- a/src/components/molecules/Navbar/index.jsx +++ b/src/components/molecules/Navbar/index.jsx @@ -6,17 +6,17 @@ import { withRouter } from "react-router-dom"; //> MDB // "Material Design for Bootstrap" is a great UI design framework import { - MDBNavbar, - MDBNavbarBrand, - MDBNavbarNav, - MDBNavbarToggler, - MDBCollapse, - MDBNavItem, - MDBNavLink, - MDBContainer, - MDBSmoothScroll, - MDBBtn, - MDBIcon, + MDBNavbar, + MDBNavbarBrand, + MDBNavbarNav, + MDBNavbarToggler, + MDBCollapse, + MDBNavItem, + MDBNavLink, + MDBContainer, + MDBSmoothScroll, + MDBBtn, + MDBIcon, } from "mdbreact"; //> Images @@ -27,114 +27,114 @@ import { ReactComponent as Logo } from "../../../assets/content/logo_main.svg"; import "./navbar.scss"; class Navbar extends React.Component { - constructor(props) { - super(props); + constructor(props) { + super(props); - this.state = { - collapseID: "", - }; - } + this.state = { + collapseID: "", + }; + } - toggleCollapse = (collapseID) => () => - this.setState((prevState) => ({ - collapseID: prevState.collapseID !== collapseID ? collapseID : "", - })); + toggleCollapse = (collapseID) => () => + this.setState((prevState) => ({ + collapseID: prevState.collapseID !== collapseID ? collapseID : "", + })); - closeCollapse = (collapseID) => () => { - window.scrollTo(0, 0); - this.state.collapseID === collapseID && this.setState({ collapseID: "" }); - }; + closeCollapse = (collapseID) => () => { + window.scrollTo(0, 0); + this.state.collapseID === collapseID && this.setState({ collapseID: "" }); + }; - render() { - const overlay = ( -
    - ); + render() { + const overlay = ( +
    + ); - // Get react-router-dom location and navbar collapseID - const { location } = this.props; - const { collapseID } = this.state; + // Get react-router-dom location and navbar collapseID + const { location } = this.props; + const { collapseID } = this.state; - // Debugging - //console.log(location); + // Debugging + //console.log(location); - return ( -
    - - - - - - - - - - - - Termin - - - - - {location.pathname === "/" ? ( - - Kostenlose Analyse - - ) : ( - - Kostenlose Analyse - - )} - - - {location.pathname === "/" ? ( - - Home - - ) : ( - - Home - - )} - - - - Login - - - - - - - {collapseID && overlay} -
    - ); - } + return ( +
    + + + + + + + + + + + + Termin + + + + + {location.pathname === "/" ? ( + + Kostenlose Analyse + + ) : ( + + Kostenlose Analyse + + )} + + + {location.pathname === "/" ? ( + + Home + + ) : ( + + Home + + )} + + + + Login + + + + + + + {collapseID && overlay} +
    + ); + } } export default withRouter(Navbar); diff --git a/src/components/organisms/sections/CallToAction/index.jsx b/src/components/organisms/sections/CallToAction/index.jsx index dffe571..ce94d2e 100644 --- a/src/components/organisms/sections/CallToAction/index.jsx +++ b/src/components/organisms/sections/CallToAction/index.jsx @@ -11,13 +11,13 @@ import { Parallax } from "react-scroll-parallax"; //> MDB // "Material Design for Bootstrap" is a great UI design framework import { - MDBRow, - MDBCol, - MDBBtn, - MDBView, - MDBIcon, - MDBMask, - MDBSmoothScroll, + MDBRow, + MDBCol, + MDBBtn, + MDBView, + MDBIcon, + MDBMask, + MDBSmoothScroll, } from "mdbreact"; //> Images @@ -29,65 +29,65 @@ import planet1 from "../../../../assets/content/icons/planet1.jpg"; import "./callToAction.scss"; class CallToAction extends React.Component { - render() { - const { darkMode } = this.props; + render() { + const { darkMode } = this.props; - return ( -
    - - - - - - - Moon - - - - - - - - Rocket - - - - - - - - -

    - Es ist einfach, jetzt zu starten! -

    -

    Und der Einstieg und die Erstberatung sind kostenlos.

    - - - - Jetzt starten - - -
    - - - - - - Moon - - - - - Moon - - - - - -
    -
    - ); - } + return ( +
    + + + + + + + Moon + + + + + + + + Rocket + + + + + + + + +

    + Es ist einfach, jetzt zu starten! +

    +

    Und der Einstieg und die Erstberatung sind kostenlos.

    + + + + Jetzt starten + + +
    + + + + + + Moon + + + + + Moon + + + + + +
    +
    + ); + } } export default CallToAction; diff --git a/src/components/organisms/sections/ContactForm/index.jsx b/src/components/organisms/sections/ContactForm/index.jsx index 84f25ec..167232c 100644 --- a/src/components/organisms/sections/ContactForm/index.jsx +++ b/src/components/organisms/sections/ContactForm/index.jsx @@ -7,14 +7,14 @@ import { Redirect } from "react-router-dom"; //> MDB // "Material Design for Bootstrap" is a great UI design framework import { - MDBRow, - MDBCol, - MDBBtn, - MDBContainer, - MDBCard, - MDBCardBody, - MDBAlert, - MDBIcon, + MDBRow, + MDBCol, + MDBBtn, + MDBContainer, + MDBCard, + MDBCardBody, + MDBAlert, + MDBIcon, } from "mdbreact"; //> Images @@ -33,211 +33,211 @@ import "./contactForm.scss"; // To be added class ContactForm extends React.Component { - state = { - fullname: "", - email: "", - phone: "", - note: "", - }; - - onTextChange = (e) => { - this.setState({ - [e.target.name]: e.target.value, - }); - }; - - onCheckChange = (e) => { - this.setState({ - [e.target.name]: e.target.checked, - }); - }; - - handleSubmit = (e) => { - e.preventDefault(); - - this.props.createContact({ - fullname: this.state.fullname, - email: this.state.email, - phone: this.state.phone, - note: this.state.note, - }); - }; - - render() { - console.log(this.props); - const { darkMode, contact } = this.props; - - // Check if sent and redirect - if (contact.contactSuccess) return ; - - return ( -
    - - - - - -

    Kontakt aufnehmen

    -

    - Du hast eine Projektidee und bist Dir nicht sicher um deren - Umsetzung? Du benötigst einen Web-Shop, Imagefilm, eine - Website oder eine individuelle Applikation? Zögere nicht und - kontaktiere uns. -

    -
    this.handleSubmit(e)}> -
    -
    - - - -
    - this.onTextChange(e)} - aria-describedby="basic-addon" - required - /> -
    -
    -
    - - - -
    - this.onTextChange(e)} - aria-describedby="basic-addon" - required - /> -
    -
    -
    - - - -
    - this.onTextChange(e)} - aria-describedby="basic-addon" - /> -
    -
    -
    - - - -
    - -
    - - - Absenden - -
    -
    -
    -
    - - - -

    Direkt Termin ausmachen

    -

    - Die Erstberatung ist immer kostenlos. -

    -

    - Jetzt einfach und online Termin festlegen. -

    - - - - Termin ausmachen - - -
    -
    - - oder - -
    -
    - - - - E-Mail senden - - - this.setState({ call: true })} - disabled={this.state.call} - > - - Anrufen - - {this.state.call && ( - - - Du kannst uns täglich von 9:00 bis 18:00 telefonisch - unter -
    - - +43 681 205 027 54 - {" "} - erreichen. -
    -
    - )} -
    -
    -
    -
    -
    -
    - ); - } + state = { + fullname: "", + email: "", + phone: "", + note: "", + }; + + onTextChange = (e) => { + this.setState({ + [e.target.name]: e.target.value, + }); + }; + + onCheckChange = (e) => { + this.setState({ + [e.target.name]: e.target.checked, + }); + }; + + handleSubmit = (e) => { + e.preventDefault(); + + this.props.createContact({ + fullname: this.state.fullname, + email: this.state.email, + phone: this.state.phone, + note: this.state.note, + }); + }; + + render() { + console.log(this.props); + const { darkMode, contact } = this.props; + + // Check if sent and redirect + if (contact.contactSuccess) return ; + + return ( +
    + + + + + +

    Kontakt aufnehmen

    +

    + Du hast eine Projektidee und bist Dir nicht sicher um deren + Umsetzung? Du benötigst einen Web-Shop, Imagefilm, eine + Website oder eine individuelle Applikation? Zögere nicht und + kontaktiere uns. +

    +
    this.handleSubmit(e)}> +
    +
    + + + +
    + this.onTextChange(e)} + aria-describedby="basic-addon" + required + /> +
    +
    +
    + + + +
    + this.onTextChange(e)} + aria-describedby="basic-addon" + required + /> +
    +
    +
    + + + +
    + this.onTextChange(e)} + aria-describedby="basic-addon" + /> +
    +
    +
    + + + +
    + +
    + + + Absenden + +
    +
    +
    +
    + + + +

    Direkt Termin ausmachen

    +

    + Die Erstberatung ist immer kostenlos. +

    +

    + Jetzt einfach und online Termin festlegen. +

    + + + + Termin ausmachen + + +
    +
    + + oder + +
    +
    + + + + E-Mail senden + + + this.setState({ call: true })} + disabled={this.state.call} + > + + Anrufen + + {this.state.call && ( + + + Du kannst uns täglich von 9:00 bis 18:00 telefonisch + unter +
    + + +43 681 205 027 54 + {" "} + erreichen. +
    +
    + )} +
    +
    +
    +
    +
    +
    + ); + } } const mapStateToProps = (state) => { - return { - auth: state.firebase.auth, - contact: state.contact, - }; + return { + auth: state.firebase.auth, + contact: state.contact, + }; }; const mapDispatchToProps = (dispatch) => { - return { - createContact: (newContact) => dispatch(createContact(newContact)), - }; + return { + createContact: (newContact) => dispatch(createContact(newContact)), + }; }; export default connect(mapStateToProps, mapDispatchToProps)(ContactForm); diff --git a/src/components/organisms/sections/Hero/hero.scss b/src/components/organisms/sections/Hero/hero.scss index 8a7c327..1b9e476 100644 --- a/src/components/organisms/sections/Hero/hero.scss +++ b/src/components/organisms/sections/Hero/hero.scss @@ -1,143 +1,143 @@ @import "../../../../utilities/variables"; #hero { - // Mobile view background - .top-mobile-bg { - background-color: darken(white, 10%); - position: relative; - z-index: 1; - &::after { - background: inherit; + // Mobile view background + .top-mobile-bg { + background-color: darken(white, 10%); + position: relative; + z-index: 1; + &::after { + background: inherit; top: 0; margin-top: -20px; - content: ""; - display: block; - height: 50%; - left: 0; - position: absolute; - right: 0; - transform: skewY(-1.5deg); - transform-origin: 100%; - z-index: -1; - } - } - // Desktop version - .desktop { - // Basic setup - h1 { - font-size: 4.2rem; - } - // Left column text more center - .col-md-6:first-child { - margin-bottom: 6rem !important; - } - .gradient { - background: -moz-linear-gradient( - 45deg, - rgba(42, 27, 161, 0.7), - rgba(29, 210, 177, 0.7) 100% - ); - background: -webkit-linear-gradient( - 45deg, - rgba(42, 27, 161, 0.7), - rgba(29, 210, 177, 0.7) 100% - ); - background: -webkit-gradient( - linear, - 45deg, - from(rgba(42, 27, 161, 0.7)), - to(rgba(29, 210, 177, 0.7)) - ); - background: -o-linear-gradient( - 45deg, - rgba(42, 27, 161, 0.7), - rgba(29, 210, 177, 0.7) 100% - ); - background: linear-gradient( - 45deg, - rgba(42, 27, 161, 0.7), - rgba(29, 210, 177, 0.7) 100% - ); - } - .hero-view { - max-height: 100vh; - } - .container, - #hero .hero-row { - max-height: 100%; - } - h6 { - line-height: 1.7; - } - } + content: ""; + display: block; + height: 50%; + left: 0; + position: absolute; + right: 0; + transform: skewY(-1.5deg); + transform-origin: 100%; + z-index: -1; + } + } + // Desktop version + .desktop { + // Basic setup + h1 { + font-size: 4.2rem; + } + // Left column text more center + .col-md-6:first-child { + margin-bottom: 6rem !important; + } + .gradient { + background: -moz-linear-gradient( + 45deg, + rgba(42, 27, 161, 0.7), + rgba(29, 210, 177, 0.7) 100% + ); + background: -webkit-linear-gradient( + 45deg, + rgba(42, 27, 161, 0.7), + rgba(29, 210, 177, 0.7) 100% + ); + background: -webkit-gradient( + linear, + 45deg, + from(rgba(42, 27, 161, 0.7)), + to(rgba(29, 210, 177, 0.7)) + ); + background: -o-linear-gradient( + 45deg, + rgba(42, 27, 161, 0.7), + rgba(29, 210, 177, 0.7) 100% + ); + background: linear-gradient( + 45deg, + rgba(42, 27, 161, 0.7), + rgba(29, 210, 177, 0.7) 100% + ); + } + .hero-view { + max-height: 100vh; + } + .container, + #hero .hero-row { + max-height: 100%; + } + h6 { + line-height: 1.7; + } + } - // Dark mode - &.dark { - background: linear-gradient( - to top, - $agencyDark 0%, - darken($agencyDark, 10%) 100% - ); - color: white; - } + // Dark mode + &.dark { + background: linear-gradient( + to top, + $agencyDark 0%, + darken($agencyDark, 10%) 100% + ); + color: white; + } - // Light mode - &.light { - background: linear-gradient(to top, white 0%, darken(white, 10%) 100%); - color: $agencyDark !important; - } + // Light mode + &.light { + background: linear-gradient(to top, white 0%, darken(white, 10%) 100%); + color: $agencyDark !important; + } } #seperator { - background-image: url("../../../../assets/bg/title-curve.svg"); - background-position: left top; - background-repeat: no-repeat; - background-size: cover; - padding: 2rem 0 2rem 0; - width: 100%; - min-height: 400px; - max-height: 500px; - margin-top: -220px; - position: relative; - z-index: 1; + background-image: url("../../../../assets/bg/title-curve.svg"); + background-position: left top; + background-repeat: no-repeat; + background-size: cover; + padding: 2rem 0 2rem 0; + width: 100%; + min-height: 400px; + max-height: 500px; + margin-top: -220px; + position: relative; + z-index: 1; - .row { - margin-top: 8rem; - } + .row { + margin-top: 8rem; + } - // Custom button - .btn-start { - text-transform: unset; - } + // Custom button + .btn-start { + text-transform: unset; + } - // Custom container fix - .container { - width: 100%; - padding-right: 15px; - padding-left: 15px; - margin-right: auto; - margin-left: auto; - } - @media (min-width: 576px) { - .container { - max-width: 540px; - } - } - @media (min-width: 768px) { - .container { - max-width: 720px; - } - } - @media (min-width: 992px) { - .container { - max-width: 960px; - } - } - @media (min-width: 1200px) { - .container { - max-width: 1440px; - } - } + // Custom container fix + .container { + width: 100%; + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; + } + @media (min-width: 576px) { + .container { + max-width: 540px; + } + } + @media (min-width: 768px) { + .container { + max-width: 720px; + } + } + @media (min-width: 992px) { + .container { + max-width: 960px; + } + } + @media (min-width: 1200px) { + .container { + max-width: 1440px; + } + } } /** diff --git a/src/components/organisms/sections/Hero/index.jsx b/src/components/organisms/sections/Hero/index.jsx index 36bb70e..170f053 100644 --- a/src/components/organisms/sections/Hero/index.jsx +++ b/src/components/organisms/sections/Hero/index.jsx @@ -9,13 +9,13 @@ import { Radar } from "react-chartjs-2"; //> MDB // "Material Design for Bootstrap" is a great UI design framework import { - MDBRow, - MDBCol, - MDBBtn, - MDBView, - MDBContainer, - MDBIcon, - MDBSmoothScroll, + MDBRow, + MDBCol, + MDBBtn, + MDBView, + MDBContainer, + MDBIcon, + MDBSmoothScroll, } from "mdbreact"; //> Images @@ -29,137 +29,137 @@ import "./hero.scss"; import radarSettings from "./radarSettings.js"; class HomePage extends React.Component { - state = { - valuesRadar: undefined, - }; + state = { + valuesRadar: undefined, + }; - componentDidMount = () => { - // Set random values for the signet chart - if (!this.state.valuesRadar) { - this.setState({ valuesRadar: this.generateRandom() }); - } - // Generate new random values every 1000 ms - this.interval = setInterval( - () => this.setState({ valuesRadar: this.generateRandom() }), - 1000 - ); - }; + componentDidMount = () => { + // Set random values for the signet chart + if (!this.state.valuesRadar) { + this.setState({ valuesRadar: this.generateRandom() }); + } + // Generate new random values every 1000 ms + this.interval = setInterval( + () => this.setState({ valuesRadar: this.generateRandom() }), + 1000 + ); + }; - componentWillUnmount() { - clearInterval(this.interval); - } + componentWillUnmount() { + clearInterval(this.interval); + } - generateRandom = () => { - let min = Math.ceil(10); - let max = Math.floor(100); - let arr = [1, 2, 3, 4, 5, 6, 7, 8]; - let results = arr.map((item, i) => { - return Math.floor(Math.random() * (max - min + 1)) + min; - }); + generateRandom = () => { + let min = Math.ceil(10); + let max = Math.floor(100); + let arr = [1, 2, 3, 4, 5, 6, 7, 8]; + let results = arr.map((item, i) => { + return Math.floor(Math.random() * (max - min + 1)) + min; + }); - return results; - }; + return results; + }; - getRadarData = () => { - return { - labels: [ - "Website", - "SEO", - "Präsenz", - "Instagram", - "Erscheinungsbild", - "Image", - "Facebook", - "Google Business", - ], - datasets: [ - { - backgroundColor: "rgba(246, 26, 66, 0.5)", - borderColor: "rgb(246, 26, 66)", - data: this.state.valuesRadar, - }, - ], - }; - }; + getRadarData = () => { + return { + labels: [ + "Website", + "SEO", + "Präsenz", + "Instagram", + "Erscheinungsbild", + "Image", + "Facebook", + "Google Business", + ], + datasets: [ + { + backgroundColor: "rgba(246, 26, 66, 0.5)", + borderColor: "rgb(246, 26, 66)", + data: this.state.valuesRadar, + }, + ], + }; + }; - render() { - const { darkMode } = this.props; + render() { + const { darkMode } = this.props; - return ( -
    - - - - - -

    - Deine Vision ist unser Auftrag -

    -
    -
    - - -

    - Deine Vision ist unser Auftrag -

    - - - Mehr erfahren - - - -
    - - - -
    -
    -
    -
    -

    - Was taugt Deine Online-Präsenz? -

    -

    - Unsere kostenlose Analyse zeigt Dir, welches Potential Deine Online - Präsenz besitzt und was Du davon nutzt. -

    - - - - JETZT herausfinden - - -
    - - - - - - - -

    Was taugt Deine Online-Präsenz?

    -

    - Unsere kostenlose Analyse zeigt Dir den - aktuellen Stand Deiner gesamten Online-Präsenz und liefert - individuelle und unkomplizierte Lösungen. -

    - - - - JETZT kostenlos herausfinden - - -
    -
    -
    -
    -
    - ); - } + return ( +
    + + + + + +

    + Deine Vision ist unser Auftrag +

    +
    +
    + + +

    + Deine Vision ist unser Auftrag +

    + + + Mehr erfahren + + + +
    + + + +
    +
    +
    +
    +

    + Was taugt Deine Online-Präsenz? +

    +

    + Unsere kostenlose Analyse zeigt Dir, welches Potential Deine Online + Präsenz besitzt und was Du davon nutzt. +

    + + + + JETZT herausfinden + + +
    + + + + + + + +

    Was taugt Deine Online-Präsenz?

    +

    + Unsere kostenlose Analyse zeigt Dir den + aktuellen Stand Deiner gesamten Online-Präsenz und liefert + individuelle und unkomplizierte Lösungen. +

    + + + + JETZT kostenlos herausfinden + + +
    +
    +
    +
    +
    + ); + } } export default HomePage; diff --git a/src/components/pages/BrandingPage/index.jsx b/src/components/pages/BrandingPage/index.jsx index f1dc16e..8b03e0b 100644 --- a/src/components/pages/BrandingPage/index.jsx +++ b/src/components/pages/BrandingPage/index.jsx @@ -9,15 +9,15 @@ import { Helmet } from "react-helmet"; //> MDB // "Material Design for Bootstrap" is a great UI design framework import { - MDBContainer, - MDBRow, - MDBCol, - MDBCard, - MDBCardBody, - MDBTable, - MDBTableBody, - MDBBtn, - MDBIcon, + MDBContainer, + MDBRow, + MDBCol, + MDBCard, + MDBCardBody, + MDBTable, + MDBTableBody, + MDBBtn, + MDBIcon, } from "mdbreact"; //> CSS @@ -30,305 +30,305 @@ import { ReactComponent as Logo } from "../../../assets/content/logo_full.svg"; import weddingsLogo from "../../../assets/content/weddings.png"; class BrandingPage extends React.Component { - render() { - const { globalProps } = this.props; + render() { + const { globalProps } = this.props; - return ( -
    - - Evolving Our Identity - - - -

    Logos und Verwendung

    - - - - -

    Logo (on light)

    - -
    - this.downloadImage("dark", "svg")} - > - - .svg - - this.downloadImage("dark", "png")} - > - - .png - -
    -
    -
    -
    - - - -

    Logo (on dark)

    - -
    - this.downloadImage("light", "svg")} - > - - .svg - - this.downloadImage("light", "png")} - > - - .png - -
    -
    -
    -
    - - - -

    Wedding Logo (universal)

    - Weddings logo -
    - this.downloadImage("wedding", "png")} - > - - .png - -
    -
    -
    -
    -
    - - -

    Mach diese tollen Dinge

    -
      -
    • -

      - - Verwende unser Logo um auf uns zu verlinken -

      -
    • -
    • -

      - - Verwende unser Logo in Deinem Blog oder Nachrichtenartikel - über uns -

      -
    • -
    • -

      - - Verwende unser Logo um auf Zusammenarbeit hinzuweisen -

      -
    • -
    -
    - -

    - Bitte tu diese Dinge nicht -

    -
      -
    • -

      - - Verwendung des Logos für eigene Zwecke -

      -
    • -
    • -

      - - Erstellung einer abgeänderten / modifizierten Version des - Logos -

      -
    • -
    • -

      - - Einbettung des Logos in Dein eigenes Logo -

      -
    • -
    • -

      - - Verwendung jeglicher Schaffungen der Agentur ohne Erlaubnis -

      -
    • -
    • -

      - - Verkauf jeglicher Schaffungen der Agentur ohne Erlaubnis -

      -
    • -
    • -

      - - Jegliche Veränderung des Logos (z.B. Farben, Maße, Text, - ...) -

      -
    • -
    • -

      - - Einbettung des Logos auf unpassendem Hintergrund (z.B. - Dunkles Logo auf dunklem Hintergrund) -

      -
    • -
    -
    -
    -
    - - - - -

    AGENCY RED

    - - - - HEX COLOR - #f61a42 - - - RGB - 246, 26, 66 - - - HSL - 349°, 92%, 53% - - - CMYK - 0%, 89%, 73%, 4% - - - -
    -
    -
    - - - -

    AGENCY DARK

    - - - - HEX COLOR - #212529 - - - RGB - 33, 37, 41 - - - HSL - 210°, 11%, 15% - - - CMYK - 20%, 10%, 0%, 84% - - - -
    -
    -
    - - - -

    AGENCY LIGHT

    - - - - HEX COLOR - #e5e5e5 - - - RGB - 229, 229, 229 - - - HSL - 0°, 0%, 90% - - - CMYK - 0%, 0%, 0%, 10% - - - -
    -
    -
    -
    -
    - - -

    Bitte kontaktiere uns

    -

    - wenn Du unsere Schaffungen verwenden willst oder Du diese in - einem Video oder Mainstream-Medien verwenden willst. -

    - - Kontakt - -
    - -

    - Du willst über uns berichten? -

    -

    - Nutze gerne unsere Ressourcen unter Berücksichtung der oben - angeführten Regeln. -

    -

    Du benötigst Auskunft?

    -

    - Über firmeninterne Details können wir Dir für deinen Bericht / - Blog / Artikel gerne Auskunft geben. -

    - - Kontakt - -
    -
    -
    -
    - ); - } + return ( +
    + + Evolving Our Identity + + + +

    Logos und Verwendung

    + + + + +

    Logo (on light)

    + +
    + this.downloadImage("dark", "svg")} + > + + .svg + + this.downloadImage("dark", "png")} + > + + .png + +
    +
    +
    +
    + + + +

    Logo (on dark)

    + +
    + this.downloadImage("light", "svg")} + > + + .svg + + this.downloadImage("light", "png")} + > + + .png + +
    +
    +
    +
    + + + +

    Wedding Logo (universal)

    + Weddings logo +
    + this.downloadImage("wedding", "png")} + > + + .png + +
    +
    +
    +
    +
    + + +

    Mach diese tollen Dinge

    +
      +
    • +

      + + Verwende unser Logo um auf uns zu verlinken +

      +
    • +
    • +

      + + Verwende unser Logo in Deinem Blog oder Nachrichtenartikel + über uns +

      +
    • +
    • +

      + + Verwende unser Logo um auf Zusammenarbeit hinzuweisen +

      +
    • +
    +
    + +

    + Bitte tu diese Dinge nicht +

    +
      +
    • +

      + + Verwendung des Logos für eigene Zwecke +

      +
    • +
    • +

      + + Erstellung einer abgeänderten / modifizierten Version des + Logos +

      +
    • +
    • +

      + + Einbettung des Logos in Dein eigenes Logo +

      +
    • +
    • +

      + + Verwendung jeglicher Schaffungen der Agentur ohne Erlaubnis +

      +
    • +
    • +

      + + Verkauf jeglicher Schaffungen der Agentur ohne Erlaubnis +

      +
    • +
    • +

      + + Jegliche Veränderung des Logos (z.B. Farben, Maße, Text, + ...) +

      +
    • +
    • +

      + + Einbettung des Logos auf unpassendem Hintergrund (z.B. + Dunkles Logo auf dunklem Hintergrund) +

      +
    • +
    +
    +
    +
    + + + + +

    AGENCY RED

    + + + + HEX COLOR + #f61a42 + + + RGB + 246, 26, 66 + + + HSL + 349°, 92%, 53% + + + CMYK + 0%, 89%, 73%, 4% + + + +
    +
    +
    + + + +

    AGENCY DARK

    + + + + HEX COLOR + #212529 + + + RGB + 33, 37, 41 + + + HSL + 210°, 11%, 15% + + + CMYK + 20%, 10%, 0%, 84% + + + +
    +
    +
    + + + +

    AGENCY LIGHT

    + + + + HEX COLOR + #e5e5e5 + + + RGB + 229, 229, 229 + + + HSL + 0°, 0%, 90% + + + CMYK + 0%, 0%, 0%, 10% + + + +
    +
    +
    +
    +
    + + +

    Bitte kontaktiere uns

    +

    + wenn Du unsere Schaffungen verwenden willst oder Du diese in + einem Video oder Mainstream-Medien verwenden willst. +

    + + Kontakt + +
    + +

    + Du willst über uns berichten? +

    +

    + Nutze gerne unsere Ressourcen unter Berücksichtung der oben + angeführten Regeln. +

    +

    Du benötigst Auskunft?

    +

    + Über firmeninterne Details können wir Dir für deinen Bericht / + Blog / Artikel gerne Auskunft geben. +

    + + Kontakt + +
    +
    +
    +
    + ); + } } export default BrandingPage; diff --git a/src/components/pages/HomePage/index.jsx b/src/components/pages/HomePage/index.jsx index 8b2b58b..31d493c 100644 --- a/src/components/pages/HomePage/index.jsx +++ b/src/components/pages/HomePage/index.jsx @@ -9,42 +9,42 @@ import { Helmet } from "react-helmet"; //> Components // Sections import { - Hero, - ContactForm, - Services, - CallToAction, - Trusted, + Hero, + ContactForm, + Services, + CallToAction, + Trusted, } from "../../organisms/sections"; //> CSS // All organisms use their own scss implementation class HomePage extends React.Component { - render() { - const { globalProps } = this.props; + render() { + const { globalProps } = this.props; - if (globalProps) { - return ( - <> - - Werbeagentur Christian Aichner - Ihr Partner - - - - - - - - - ); - } else { - return null; - } - } + /> + + + + + + + + ); + } else { + return null; + } + } } export default HomePage; diff --git a/src/components/pages/LocationPage/index.jsx b/src/components/pages/LocationPage/index.jsx index c0a83e5..50eda0e 100644 --- a/src/components/pages/LocationPage/index.jsx +++ b/src/components/pages/LocationPage/index.jsx @@ -19,102 +19,102 @@ import { Egg } from "../../atoms"; //> Data // Google Maps URL const url = - "https://www.google.com/maps/embed/v1/place?q=place_id:ChIJF-itd11_ekcR-bHkoK2Mfx4"; + "https://www.google.com/maps/embed/v1/place?q=place_id:ChIJF-itd11_ekcR-bHkoK2Mfx4"; class LocationPage extends React.Component { - state = {}; + state = {}; - render() { - return ( - - - Wo Du uns findest - + + Wo Du uns findest + - - - -

    Wie Du uns findest

    -
    -

    Hauptstandort

    -

    Emailwerkstraße 29

    -

    9523 Villach-Landskron

    -

    Kärtnen, Österreich

    -

    - - Gäste WLAN -

    -

    - - Dedicated Meeting Room -

    -

    - - Chromecast enabled Smart TV für Präsentationen -

    -

    - - Ausreichend Parkmöglichkeiten -

    -

    - - Für Erfrischungen ist gesorgt -

    -

    - - Papier und Stifte stehen zur Verfügung -

    - {(new Date().getHours() === 4 || new Date().getHours() === 16) && - new Date().getMinutes() === 20 && ( -

    - - Nice. Du siehst Dir diese Seite um 4:20 an. - -

    - )} -
    -

    Öffnungszeiten

    -

    - Wir haben keine fixen Öffnungszeiten. Bitte wenden Sie sich vor - einem Besuch an uns oder machen Sie einen Termin mit uns aus. -

    - - - - Termin ausmachen - - - - - - Kontakt - - -
    - -
    - -
    -
    -
    -
    - ); - } + /> + + + +

    Wie Du uns findest

    +
    +

    Hauptstandort

    +

    Emailwerkstraße 29

    +

    9523 Villach-Landskron

    +

    Kärtnen, Österreich

    +

    + + Gäste WLAN +

    +

    + + Dedicated Meeting Room +

    +

    + + Chromecast enabled Smart TV für Präsentationen +

    +

    + + Ausreichend Parkmöglichkeiten +

    +

    + + Für Erfrischungen ist gesorgt +

    +

    + + Papier und Stifte stehen zur Verfügung +

    + {(new Date().getHours() === 4 || new Date().getHours() === 16) && + new Date().getMinutes() === 20 && ( +

    + + Nice. Du siehst Dir diese Seite um 4:20 an. + +

    + )} +
    +

    Öffnungszeiten

    +

    + Wir haben keine fixen Öffnungszeiten. Bitte wenden Sie sich vor + einem Besuch an uns oder machen Sie einen Termin mit uns aus. +

    + + + + Termin ausmachen + + + + + + Kontakt + + +
    + +
    + +
    +
    +
    + + ); + } } export default LocationPage; diff --git a/src/components/pages/MessagePage/index.jsx b/src/components/pages/MessagePage/index.jsx index 479163c..408722f 100644 --- a/src/components/pages/MessagePage/index.jsx +++ b/src/components/pages/MessagePage/index.jsx @@ -16,1074 +16,1074 @@ import { MDBContainer, MDBBtn, MDBIcon, MDBTooltip } from "mdbreact"; import "./message.scss"; class MessagePage extends React.Component { - state = {}; + state = {}; - render() { - return ( - - {this.props.location.pathname === "/about" && ( -
    -

    Impressum

    -

    - Werbeagentur Christian Aichner -

    -

    - Christian Aichner -
    - Tel: +43 681 205 027 54 -
    - Emailwerkstraße 29 -
    - 9523 Villach-Landskron -
    - - - Kontakt - -

    Firmeninformationen

    -

    - UID-Nummer: ATU72504738 - - - - - Echtheit garantiert - -

    - {!this.state.copy_uid ? ( - - this.setState({ copy_uid: true }, () => copy("ATU72504738")) - } - > - - UID Nummer kopieren - - ) : ( - this.setState({ copy_uid: false })} - > - - UID Nummer kopiert - - )} -

    -

    - GISA-Zahl: 31375511 -

    -

    - Behörde gem. ECG (E-Commerce Gesetz): Magistrat - der Stadt Villach -

    -

    Haftungsausschluss

    -

    - Dieser Haftungsausschluss ist als Teil des Internetangebotes zu - betrachten, von dem aus auf diese Webseite verwiesen wurde. Sofern - Teile oder einzelne Formulierungen dieses Textes der geltenden - Rechtslage nicht, nicht mehr oder nicht vollständig entsprechen - sollten, bleiben die übrigen Teile des Dokumentes in ihrem Inhalt - und ihrer Gültigkeit davon unberührt. -

    -

    Haftung für Inhalte dieser Webseite

    -

    - 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 für eigene Inhalte auf diesen Seiten nach den allgemeinen - Gesetzen verantwortlich. Wir sind jedoch nicht verpflichtet, - übermittelte oder gespeicherte fremde Informationen zu überwachen - oder nach Umständen zu forschen, die auf eine rechtswidrige - Tätigkeit hinweisen. Verpflichtungen zur Entfernung oder Sperrung - der Nutzung von Informationen nach den allgemeinen Gesetzen - bleiben hiervon unberührt. Eine diesbezügliche Haftung ist jedoch - erst ab dem Zeitpunkt der Kenntnis einer konkreten - Rechtsverletzung möglich. Bei Bekanntwerden von entsprechenden - Rechtsverletzungen werden wir diese Inhalte umgehend entfernen. -

    -

    Haftung für Links auf Webseiten Dritter

    -

    - Unser Angebot enthält Links zu externen Websites. Auf den Inhalt - dieser externen Webseiten haben wir keinerlei Einfluss. Deshalb - können wir für diese fremden Inhalte auch keine Gewähr übernehmen. - Für die Inhalte der verlinkten Seiten ist stets der 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 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. -

    -

    Urheberrecht

    -

    - Die Betreiber dieser Webseite sind bemüht, stets die Urheberrechte - anderer zu beachten bzw. auf selbst erstellte sowie lizenzfreie - Werke zurückzugreifen. Die durch die Seitenbetreiber erstellten - Inhalte und Werke auf dieser Webseite unterliegen dem - Urheberrecht. Beiträge Dritter sind als solche gekennzeichnet. 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. -

    -
    - )} - {this.props.location.pathname === "/thankyou" && ( -
    -

    - -
    - Danke für Deine Nachricht! -

    -

    Wir melden uns schnellstmöglich möglich bei Dir.

    + render() { + return ( + + {this.props.location.pathname === "/about" && ( +
    +

    Impressum

    +

    + Werbeagentur Christian Aichner +

    +

    + Christian Aichner +
    + Tel: +43 681 205 027 54 +
    + Emailwerkstraße 29 +
    + 9523 Villach-Landskron +
    + + + Kontakt + +

    Firmeninformationen

    +

    + UID-Nummer: ATU72504738 + + + + + Echtheit garantiert + +

    + {!this.state.copy_uid ? ( + + this.setState({ copy_uid: true }, () => copy("ATU72504738")) + } + > + + UID Nummer kopieren + + ) : ( + this.setState({ copy_uid: false })} + > + + UID Nummer kopiert + + )} +

    +

    + GISA-Zahl: 31375511 +

    +

    + Behörde gem. ECG (E-Commerce Gesetz): Magistrat + der Stadt Villach +

    +

    Haftungsausschluss

    +

    + Dieser Haftungsausschluss ist als Teil des Internetangebotes zu + betrachten, von dem aus auf diese Webseite verwiesen wurde. Sofern + Teile oder einzelne Formulierungen dieses Textes der geltenden + Rechtslage nicht, nicht mehr oder nicht vollständig entsprechen + sollten, bleiben die übrigen Teile des Dokumentes in ihrem Inhalt + und ihrer Gültigkeit davon unberührt. +

    +

    Haftung für Inhalte dieser Webseite

    +

    + 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 für eigene Inhalte auf diesen Seiten nach den allgemeinen + Gesetzen verantwortlich. Wir sind jedoch nicht verpflichtet, + übermittelte oder gespeicherte fremde Informationen zu überwachen + oder nach Umständen zu forschen, die auf eine rechtswidrige + Tätigkeit hinweisen. Verpflichtungen zur Entfernung oder Sperrung + der Nutzung von Informationen nach den allgemeinen Gesetzen + bleiben hiervon unberührt. Eine diesbezügliche Haftung ist jedoch + erst ab dem Zeitpunkt der Kenntnis einer konkreten + Rechtsverletzung möglich. Bei Bekanntwerden von entsprechenden + Rechtsverletzungen werden wir diese Inhalte umgehend entfernen. +

    +

    Haftung für Links auf Webseiten Dritter

    +

    + Unser Angebot enthält Links zu externen Websites. Auf den Inhalt + dieser externen Webseiten haben wir keinerlei Einfluss. Deshalb + können wir für diese fremden Inhalte auch keine Gewähr übernehmen. + Für die Inhalte der verlinkten Seiten ist stets der 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 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. +

    +

    Urheberrecht

    +

    + Die Betreiber dieser Webseite sind bemüht, stets die Urheberrechte + anderer zu beachten bzw. auf selbst erstellte sowie lizenzfreie + Werke zurückzugreifen. Die durch die Seitenbetreiber erstellten + Inhalte und Werke auf dieser Webseite unterliegen dem + Urheberrecht. Beiträge Dritter sind als solche gekennzeichnet. 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. +

    +
    + )} + {this.props.location.pathname === "/thankyou" && ( +
    +

    + +
    + Danke für Deine Nachricht! +

    +

    Wir melden uns schnellstmöglich möglich bei Dir.

    Zurück zur Hompage -
    - )} - {this.props.location.pathname === "/privacy" && ( -
    -

    Datenschutzerklärung

    -

    - Werbeagentur Christian Aichner -

    -

    - Christian Aichner -
    - Tel: +43 681 205 027 54 -
    - Emailwerkstraße 29 -
    - 9523 Villach-Landskron -
    - - - Kontakt - -

    -

    - Diese Datenschutzerklärung klärt Sie über die Art, den Umfang und - Zweck der Verarbeitung von personenbezogenen Daten (nachfolgend - kurz „Daten“) innerhalb unseres Onlineangebotes und der mit ihm - verbundenen Webseiten, Funktionen und Inhalte sowie externen - Onlinepräsenzen, wie z.B. unser Social Media Profile auf - (nachfolgend gemeinsam bezeichnet als „Onlineangebot“). Im - Hinblick auf die verwendeten Begrifflichkeiten, wie z.B. - „Verarbeitung“ oder „Verantwortlicher“ verweisen wir auf die - Definitionen im Art. 4 der Datenschutzgrundverordnung (DSGVO). -

    +
    + )} + {this.props.location.pathname === "/privacy" && ( +
    +

    Datenschutzerklärung

    +

    + Werbeagentur Christian Aichner +

    +

    + Christian Aichner +
    + Tel: +43 681 205 027 54 +
    + Emailwerkstraße 29 +
    + 9523 Villach-Landskron +
    + + + Kontakt + +

    +

    + Diese Datenschutzerklärung klärt Sie über die Art, den Umfang und + Zweck der Verarbeitung von personenbezogenen Daten (nachfolgend + kurz „Daten“) innerhalb unseres Onlineangebotes und der mit ihm + verbundenen Webseiten, Funktionen und Inhalte sowie externen + Onlinepräsenzen, wie z.B. unser Social Media Profile auf + (nachfolgend gemeinsam bezeichnet als „Onlineangebot“). Im + Hinblick auf die verwendeten Begrifflichkeiten, wie z.B. + „Verarbeitung“ oder „Verantwortlicher“ verweisen wir auf die + Definitionen im Art. 4 der Datenschutzgrundverordnung (DSGVO). +

    -

    Datenschutzbeauftragter

    -

    - Christian Aichner -
    - 9500 Villach -
    -

    -

    - Kontakt:{" "} - - legal@aichner-christian.com - -

    +

    Datenschutzbeauftragter

    +

    + Christian Aichner +
    + 9500 Villach +
    +

    +

    + Kontakt:{" "} + + legal@aichner-christian.com + +

    -

    Arten der verarbeiteten Daten

    -
      -
    • Bestandsdaten (z.B., Namen, Adressen)
    • -
    • Kontaktdaten (z.B., E-Mail, Telefonnummern)
    • -
    • Inhaltsdaten (z.B., Texteingaben, Fotografien, Videos)
    • -
    • - Nutzungsdaten (z.B., besuchte Webseiten, Interesse an Inhalten, - Zugriffszeiten) -
    • -
    • - Meta-/Kommunikationsdaten (z.B., Geräte-Informationen, - IP-Adressen) -
    • -
    +

    Arten der verarbeiteten Daten

    +
      +
    • Bestandsdaten (z.B., Namen, Adressen)
    • +
    • Kontaktdaten (z.B., E-Mail, Telefonnummern)
    • +
    • Inhaltsdaten (z.B., Texteingaben, Fotografien, Videos)
    • +
    • + Nutzungsdaten (z.B., besuchte Webseiten, Interesse an Inhalten, + Zugriffszeiten) +
    • +
    • + Meta-/Kommunikationsdaten (z.B., Geräte-Informationen, + IP-Adressen) +
    • +
    -

    Kategorien betroffener Personen

    -

    - Besucher und Nutzer des Onlineangebotes (Nachfolgend bezeichnen - wir die betroffenen Personen zusammenfassend auch als „Nutzer“). -

    +

    Kategorien betroffener Personen

    +

    + Besucher und Nutzer des Onlineangebotes (Nachfolgend bezeichnen + wir die betroffenen Personen zusammenfassend auch als „Nutzer“). +

    -

    Zweck der Verarbeitung

    -
      -
    • - Zurverfügungstellung des Onlineangebotes, seiner Funktionen und - Inhalte -
    • -
    • - Beantwortung von Kontaktanfragen und Kommunikation mit Nutzern -
    • -
    • Sicherheitsmaßnahmen
    • -
    • Reichweitenmessung/Marketing
    • -
    +

    Zweck der Verarbeitung

    +
      +
    • + Zurverfügungstellung des Onlineangebotes, seiner Funktionen und + Inhalte +
    • +
    • + Beantwortung von Kontaktanfragen und Kommunikation mit Nutzern +
    • +
    • Sicherheitsmaßnahmen
    • +
    • Reichweitenmessung/Marketing
    • +
    -

    Verwendete Begrifflichkeiten

    -

    - „Personenbezogene Daten“ sind alle Informationen, die sich auf - eine identifizierte oder identifizierbare natürliche Person (im - Folgenden „betroffene Person“) beziehen; als identifizierbar wird - eine natürliche Person angesehen, die direkt oder indirekt, - insbesondere mittels Zuordnung zu einer Kennung wie einem Namen, - zu einer Kennnummer, zu Standortdaten, zu einer Online-Kennung - (z.B. Cookie) oder zu einem oder mehreren besonderen Merkmalen - identifiziert werden kann, die Ausdruck der physischen, - physiologischen, genetischen, psychischen, wirtschaftlichen, - kulturellen oder sozialen Identität dieser natürlichen Person - sind. -

    -

    - „Verarbeitung“ ist jeder mit oder ohne Hilfe automatisierter - Verfahren ausgeführte Vorgang oder jede solche Vorgangsreihe im - Zusammenhang mit personenbezogenen Daten. Der Begriff reicht weit - und umfasst praktisch jeden Umgang mit Daten. -

    -

    - „Pseudonymisierung“ die Verarbeitung personenbezogener Daten in - einer Weise, dass die personenbezogenen Daten ohne Hinzuziehung - zusätzlicher Informationen nicht mehr einer spezifischen - betroffenen Person zugeordnet werden können, sofern diese - zusätzlichen Informationen gesondert aufbewahrt werden und - technischen und organisatorischen Maßnahmen unterliegen, die - gewährleisten, dass die personenbezogenen Daten nicht einer - identifizierten oder identifizierbaren natürlichen Person - zugewiesen werden. -

    -

    - „Profiling“ jede Art der automatisierten Verarbeitung - personenbezogener Daten, die darin besteht, dass diese - personenbezogenen Daten verwendet werden, um bestimmte persönliche - Aspekte, die sich auf eine natürliche Person beziehen, zu - bewerten, insbesondere um Aspekte bezüglich Arbeitsleistung, - wirtschaftliche Lage, Gesundheit, persönliche Vorlieben, - Interessen, Zuverlässigkeit, Verhalten, Aufenthaltsort oder - Ortswechsel dieser natürlichen Person zu analysieren oder - vorherzusagen. -

    -

    - Als „Verantwortlicher“ wird die natürliche oder juristische - Person, Behörde, Einrichtung oder andere Stelle, die allein oder - gemeinsam mit anderen über die Zwecke und Mittel der Verarbeitung - von personenbezogenen Daten entscheidet, bezeichnet. -

    -

    - „Auftragsverarbeiter“ eine natürliche oder juristische Person, - Behörde, Einrichtung oder andere Stelle, die personenbezogene - Daten im Auftrag des Verantwortlichen verarbeitet. -

    +

    Verwendete Begrifflichkeiten

    +

    + „Personenbezogene Daten“ sind alle Informationen, die sich auf + eine identifizierte oder identifizierbare natürliche Person (im + Folgenden „betroffene Person“) beziehen; als identifizierbar wird + eine natürliche Person angesehen, die direkt oder indirekt, + insbesondere mittels Zuordnung zu einer Kennung wie einem Namen, + zu einer Kennnummer, zu Standortdaten, zu einer Online-Kennung + (z.B. Cookie) oder zu einem oder mehreren besonderen Merkmalen + identifiziert werden kann, die Ausdruck der physischen, + physiologischen, genetischen, psychischen, wirtschaftlichen, + kulturellen oder sozialen Identität dieser natürlichen Person + sind. +

    +

    + „Verarbeitung“ ist jeder mit oder ohne Hilfe automatisierter + Verfahren ausgeführte Vorgang oder jede solche Vorgangsreihe im + Zusammenhang mit personenbezogenen Daten. Der Begriff reicht weit + und umfasst praktisch jeden Umgang mit Daten. +

    +

    + „Pseudonymisierung“ die Verarbeitung personenbezogener Daten in + einer Weise, dass die personenbezogenen Daten ohne Hinzuziehung + zusätzlicher Informationen nicht mehr einer spezifischen + betroffenen Person zugeordnet werden können, sofern diese + zusätzlichen Informationen gesondert aufbewahrt werden und + technischen und organisatorischen Maßnahmen unterliegen, die + gewährleisten, dass die personenbezogenen Daten nicht einer + identifizierten oder identifizierbaren natürlichen Person + zugewiesen werden. +

    +

    + „Profiling“ jede Art der automatisierten Verarbeitung + personenbezogener Daten, die darin besteht, dass diese + personenbezogenen Daten verwendet werden, um bestimmte persönliche + Aspekte, die sich auf eine natürliche Person beziehen, zu + bewerten, insbesondere um Aspekte bezüglich Arbeitsleistung, + wirtschaftliche Lage, Gesundheit, persönliche Vorlieben, + Interessen, Zuverlässigkeit, Verhalten, Aufenthaltsort oder + Ortswechsel dieser natürlichen Person zu analysieren oder + vorherzusagen. +

    +

    + Als „Verantwortlicher“ wird die natürliche oder juristische + Person, Behörde, Einrichtung oder andere Stelle, die allein oder + gemeinsam mit anderen über die Zwecke und Mittel der Verarbeitung + von personenbezogenen Daten entscheidet, bezeichnet. +

    +

    + „Auftragsverarbeiter“ eine natürliche oder juristische Person, + Behörde, Einrichtung oder andere Stelle, die personenbezogene + Daten im Auftrag des Verantwortlichen verarbeitet. +

    -

    Sicherheitsmaßnahmen

    -

    - Wir treffen nach Maßgabe des Art. 32 DSGVO unter Berücksichtigung - des Stands der Technik, der Implementierungskosten und der Art, - des Umfangs, der Umstände und der Zwecke der Verarbeitung sowie - der unterschiedlichen Eintrittswahrscheinlichkeit und Schwere des - Risikos für die Rechte und Freiheiten natürlicher Personen, - geeignete technische und organisatorische Maßnahmen, um ein dem - Risiko angemessenes Schutzniveau zu gewährleisten. -

    -

    - Zu den Maßnahmen gehören insbesondere die Sicherung der - Vertraulichkeit, Integrität und Verfügbarkeit von Daten durch - Kontrolle des physischen Zugangs zu den Daten, als auch des sie - betreffenden Zugriffs, der Eingabe, Weitergabe, der Sicherung der - Verfügbarkeit und ihrer Trennung. Des Weiteren haben wir Verfahren - eingerichtet, die eine Wahrnehmung von Betroffenenrechten, - Löschung von Daten und Reaktion auf Gefährdung der Daten - gewährleisten. Ferner berücksichtigen wir den Schutz - personenbezogener Daten bereits bei der Entwicklung, bzw. Auswahl - von Hardware, Software sowie Verfahren, entsprechend dem Prinzip - des Datenschutzes durch Technikgestaltung und durch - datenschutzfreundliche Voreinstellungen (Art. 25 DSGVO). -

    +

    Sicherheitsmaßnahmen

    +

    + Wir treffen nach Maßgabe des Art. 32 DSGVO unter Berücksichtigung + des Stands der Technik, der Implementierungskosten und der Art, + des Umfangs, der Umstände und der Zwecke der Verarbeitung sowie + der unterschiedlichen Eintrittswahrscheinlichkeit und Schwere des + Risikos für die Rechte und Freiheiten natürlicher Personen, + geeignete technische und organisatorische Maßnahmen, um ein dem + Risiko angemessenes Schutzniveau zu gewährleisten. +

    +

    + Zu den Maßnahmen gehören insbesondere die Sicherung der + Vertraulichkeit, Integrität und Verfügbarkeit von Daten durch + Kontrolle des physischen Zugangs zu den Daten, als auch des sie + betreffenden Zugriffs, der Eingabe, Weitergabe, der Sicherung der + Verfügbarkeit und ihrer Trennung. Des Weiteren haben wir Verfahren + eingerichtet, die eine Wahrnehmung von Betroffenenrechten, + Löschung von Daten und Reaktion auf Gefährdung der Daten + gewährleisten. Ferner berücksichtigen wir den Schutz + personenbezogener Daten bereits bei der Entwicklung, bzw. Auswahl + von Hardware, Software sowie Verfahren, entsprechend dem Prinzip + des Datenschutzes durch Technikgestaltung und durch + datenschutzfreundliche Voreinstellungen (Art. 25 DSGVO). +

    -

    Zusammenarbeit mit Auftragsverarbeitern und Dritten

    -

    - Sofern wir im Rahmen unserer Verarbeitung Daten gegenüber anderen - Personen und Unternehmen (Auftragsverarbeitern oder Dritten) - offenbaren, sie an diese übermitteln oder ihnen sonst Zugriff auf - die Daten gewähren, erfolgt dies nur auf Grundlage einer - gesetzlichen Erlaubnis (z.B. wenn eine Übermittlung der Daten an - Dritte, wie an Zahlungsdienstleister, gem. Art. 6 Abs. 1 lit. b - DSGVO zur Vertragserfüllung erforderlich ist), Sie eingewilligt - haben, eine rechtliche Verpflichtung dies vorsieht oder auf - Grundlage unserer berechtigten Interessen (z.B. beim Einsatz von - Beauftragten, Webhostern, etc.). -

    -

    - Sofern wir Dritte mit der Verarbeitung von Daten auf Grundlage - eines sog. „Auftragsverarbeitungsvertrages“ beauftragen, geschieht - dies auf Grundlage des Art. 28 DSGVO. -

    +

    Zusammenarbeit mit Auftragsverarbeitern und Dritten

    +

    + Sofern wir im Rahmen unserer Verarbeitung Daten gegenüber anderen + Personen und Unternehmen (Auftragsverarbeitern oder Dritten) + offenbaren, sie an diese übermitteln oder ihnen sonst Zugriff auf + die Daten gewähren, erfolgt dies nur auf Grundlage einer + gesetzlichen Erlaubnis (z.B. wenn eine Übermittlung der Daten an + Dritte, wie an Zahlungsdienstleister, gem. Art. 6 Abs. 1 lit. b + DSGVO zur Vertragserfüllung erforderlich ist), Sie eingewilligt + haben, eine rechtliche Verpflichtung dies vorsieht oder auf + Grundlage unserer berechtigten Interessen (z.B. beim Einsatz von + Beauftragten, Webhostern, etc.). +

    +

    + Sofern wir Dritte mit der Verarbeitung von Daten auf Grundlage + eines sog. „Auftragsverarbeitungsvertrages“ beauftragen, geschieht + dies auf Grundlage des Art. 28 DSGVO. +

    -

    Übermittlungen in Drittländer

    -

    - Sofern wir Daten in einem Drittland (d.h. außerhalb der - Europäischen Union (EU) oder des Europäischen Wirtschaftsraums - (EWR)) verarbeiten oder dies im Rahmen der Inanspruchnahme von - Diensten Dritter oder Offenlegung, bzw. Übermittlung von Daten an - Dritte geschieht, erfolgt dies nur, wenn es zur Erfüllung unserer - (vor)vertraglichen Pflichten, auf Grundlage Ihrer Einwilligung, - aufgrund einer rechtlichen Verpflichtung oder auf Grundlage - unserer berechtigten Interessen geschieht. Vorbehaltlich - gesetzlicher oder vertraglicher Erlaubnisse, verarbeiten oder - lassen wir die Daten in einem Drittland nur beim Vorliegen der - besonderen Voraussetzungen der Art. 44 ff. DSGVO verarbeiten. D.h. - die Verarbeitung erfolgt z.B. auf Grundlage besonderer Garantien, - wie der offiziell anerkannten Feststellung eines der EU - entsprechenden Datenschutzniveaus (z.B. für die USA durch das - „Privacy Shield“) oder Beachtung offiziell anerkannter spezieller - vertraglicher Verpflichtungen (so genannte - „Standardvertragsklauseln“). -

    +

    Übermittlungen in Drittländer

    +

    + Sofern wir Daten in einem Drittland (d.h. außerhalb der + Europäischen Union (EU) oder des Europäischen Wirtschaftsraums + (EWR)) verarbeiten oder dies im Rahmen der Inanspruchnahme von + Diensten Dritter oder Offenlegung, bzw. Übermittlung von Daten an + Dritte geschieht, erfolgt dies nur, wenn es zur Erfüllung unserer + (vor)vertraglichen Pflichten, auf Grundlage Ihrer Einwilligung, + aufgrund einer rechtlichen Verpflichtung oder auf Grundlage + unserer berechtigten Interessen geschieht. Vorbehaltlich + gesetzlicher oder vertraglicher Erlaubnisse, verarbeiten oder + lassen wir die Daten in einem Drittland nur beim Vorliegen der + besonderen Voraussetzungen der Art. 44 ff. DSGVO verarbeiten. D.h. + die Verarbeitung erfolgt z.B. auf Grundlage besonderer Garantien, + wie der offiziell anerkannten Feststellung eines der EU + entsprechenden Datenschutzniveaus (z.B. für die USA durch das + „Privacy Shield“) oder Beachtung offiziell anerkannter spezieller + vertraglicher Verpflichtungen (so genannte + „Standardvertragsklauseln“). +

    -

    Rechte der betroffenen Personen

    -

    - Sie haben das Recht, eine Bestätigung darüber zu verlangen, ob - betreffende Daten verarbeitet werden und auf Auskunft über diese - Daten sowie auf weitere Informationen und Kopie der Daten - entsprechend Art. 15 DSGVO. -

    -

    - Sie haben entsprechend. Art. 16 DSGVO das Recht, die - Vervollständigung der Sie betreffenden Daten oder die Berichtigung - der Sie betreffenden unrichtigen Daten zu verlangen. -

    -

    - Sie haben nach Maßgabe des Art. 17 DSGVO das Recht zu verlangen, - dass betreffende Daten unverzüglich gelöscht werden, bzw. - alternativ nach Maßgabe des Art. 18 DSGVO eine Einschränkung der - Verarbeitung der Daten zu verlangen. -

    -

    - Sie haben das Recht zu verlangen, dass die Sie betreffenden Daten, - die Sie uns bereitgestellt haben nach Maßgabe des Art. 20 DSGVO zu - erhalten und deren Übermittlung an andere Verantwortliche zu - fordern. -

    -

    - Sie haben ferner gem. Art. 77 DSGVO das Recht, eine Beschwerde bei - der zuständigen Aufsichtsbehörde einzureichen. -

    +

    Rechte der betroffenen Personen

    +

    + Sie haben das Recht, eine Bestätigung darüber zu verlangen, ob + betreffende Daten verarbeitet werden und auf Auskunft über diese + Daten sowie auf weitere Informationen und Kopie der Daten + entsprechend Art. 15 DSGVO. +

    +

    + Sie haben entsprechend. Art. 16 DSGVO das Recht, die + Vervollständigung der Sie betreffenden Daten oder die Berichtigung + der Sie betreffenden unrichtigen Daten zu verlangen. +

    +

    + Sie haben nach Maßgabe des Art. 17 DSGVO das Recht zu verlangen, + dass betreffende Daten unverzüglich gelöscht werden, bzw. + alternativ nach Maßgabe des Art. 18 DSGVO eine Einschränkung der + Verarbeitung der Daten zu verlangen. +

    +

    + Sie haben das Recht zu verlangen, dass die Sie betreffenden Daten, + die Sie uns bereitgestellt haben nach Maßgabe des Art. 20 DSGVO zu + erhalten und deren Übermittlung an andere Verantwortliche zu + fordern. +

    +

    + Sie haben ferner gem. Art. 77 DSGVO das Recht, eine Beschwerde bei + der zuständigen Aufsichtsbehörde einzureichen. +

    -

    Widerrufsrecht

    -

    - Sie haben das Recht, erteilte Einwilligungen gem. Art. 7 Abs. 3 - DSGVO mit Wirkung für die Zukunft zu widerrufen. -

    +

    Widerrufsrecht

    +

    + Sie haben das Recht, erteilte Einwilligungen gem. Art. 7 Abs. 3 + DSGVO mit Wirkung für die Zukunft zu widerrufen. +

    -

    Widerspruchsrecht

    -

    - Sie können der künftigen Verarbeitung der Sie betreffenden Daten - nach Maßgabe des Art. 21 DSGVO jederzeit widersprechen. Der - Widerspruch kann insbesondere gegen die Verarbeitung für Zwecke - der Direktwerbung erfolgen. -

    +

    Widerspruchsrecht

    +

    + Sie können der künftigen Verarbeitung der Sie betreffenden Daten + nach Maßgabe des Art. 21 DSGVO jederzeit widersprechen. Der + Widerspruch kann insbesondere gegen die Verarbeitung für Zwecke + der Direktwerbung erfolgen. +

    -

    Cookies und Widerspruchsrecht bei Direktwerbung

    -

    - Als „Cookies“ werden kleine Dateien bezeichnet, die auf Rechnern - der Nutzer gespeichert werden. Innerhalb der Cookies können - unterschiedliche Angaben gespeichert werden. Ein Cookie dient - primär dazu, die Angaben zu einem Nutzer (bzw. dem Gerät auf dem - das Cookie gespeichert ist) während oder auch nach seinem Besuch - innerhalb eines Onlineangebotes zu speichern. Als temporäre - Cookies, bzw. „Session-Cookies“ oder „transiente Cookies“, werden - Cookies bezeichnet, die gelöscht werden, nachdem ein Nutzer ein - Onlineangebot verlässt und seinen Browser schließt. In einem - solchen Cookie kann z.B. der Inhalt eines Warenkorbs in einem - Onlineshop oder ein Login-Status gespeichert werden. Als - „permanent“ oder „persistent“ werden Cookies bezeichnet, die auch - nach dem Schließen des Browsers gespeichert bleiben. So kann z.B. - der Login-Status gespeichert werden, wenn die Nutzer diese nach - mehreren Tagen aufsuchen. Ebenso können in einem solchen Cookie - die Interessen der Nutzer gespeichert werden, die für - Reichweitenmessung oder Marketingzwecke verwendet werden. Als - „Third-Party-Cookie“ werden Cookies bezeichnet, die von anderen - Anbietern als dem Verantwortlichen, der das Onlineangebot - betreibt, angeboten werden (andernfalls, wenn es nur dessen - Cookies sind spricht man von „First-Party Cookies“). -

    -

    - Wir können temporäre und permanente Cookies einsetzen und klären - hierüber im Rahmen unserer Datenschutzerklärung auf. -

    -

    - Falls die Nutzer nicht möchten, dass Cookies auf ihrem Rechner - gespeichert werden, werden sie gebeten die entsprechende Option in - den Systemeinstellungen ihres Browsers zu deaktivieren. - Gespeicherte Cookies können in den Systemeinstellungen des - Browsers gelöscht werden. Der Ausschluss von Cookies kann zu - Funktionseinschränkungen dieses Onlineangebotes führen. -

    -

    - Ein genereller Widerspruch gegen den Einsatz der zu Zwecken des - Onlinemarketing eingesetzten Cookies kann bei einer Vielzahl der - Dienste, vor allem im Fall des Trackings, über die S-amerikanische - Seite http://www.aboutads.info/choices/ oder die EU-Seite - http://www.youronlinechoices.com/ erklärt werden. Des Weiteren - kann die Speicherung von Cookies mittels deren Abschaltung in den - Einstellungen des Browsers erreicht werden. Bitte beachten Sie, - dass dann gegebenenfalls nicht alle Funktionen dieses - Onlineangebotes genutzt werden können. -

    +

    Cookies und Widerspruchsrecht bei Direktwerbung

    +

    + Als „Cookies“ werden kleine Dateien bezeichnet, die auf Rechnern + der Nutzer gespeichert werden. Innerhalb der Cookies können + unterschiedliche Angaben gespeichert werden. Ein Cookie dient + primär dazu, die Angaben zu einem Nutzer (bzw. dem Gerät auf dem + das Cookie gespeichert ist) während oder auch nach seinem Besuch + innerhalb eines Onlineangebotes zu speichern. Als temporäre + Cookies, bzw. „Session-Cookies“ oder „transiente Cookies“, werden + Cookies bezeichnet, die gelöscht werden, nachdem ein Nutzer ein + Onlineangebot verlässt und seinen Browser schließt. In einem + solchen Cookie kann z.B. der Inhalt eines Warenkorbs in einem + Onlineshop oder ein Login-Status gespeichert werden. Als + „permanent“ oder „persistent“ werden Cookies bezeichnet, die auch + nach dem Schließen des Browsers gespeichert bleiben. So kann z.B. + der Login-Status gespeichert werden, wenn die Nutzer diese nach + mehreren Tagen aufsuchen. Ebenso können in einem solchen Cookie + die Interessen der Nutzer gespeichert werden, die für + Reichweitenmessung oder Marketingzwecke verwendet werden. Als + „Third-Party-Cookie“ werden Cookies bezeichnet, die von anderen + Anbietern als dem Verantwortlichen, der das Onlineangebot + betreibt, angeboten werden (andernfalls, wenn es nur dessen + Cookies sind spricht man von „First-Party Cookies“). +

    +

    + Wir können temporäre und permanente Cookies einsetzen und klären + hierüber im Rahmen unserer Datenschutzerklärung auf. +

    +

    + Falls die Nutzer nicht möchten, dass Cookies auf ihrem Rechner + gespeichert werden, werden sie gebeten die entsprechende Option in + den Systemeinstellungen ihres Browsers zu deaktivieren. + Gespeicherte Cookies können in den Systemeinstellungen des + Browsers gelöscht werden. Der Ausschluss von Cookies kann zu + Funktionseinschränkungen dieses Onlineangebotes führen. +

    +

    + Ein genereller Widerspruch gegen den Einsatz der zu Zwecken des + Onlinemarketing eingesetzten Cookies kann bei einer Vielzahl der + Dienste, vor allem im Fall des Trackings, über die S-amerikanische + Seite http://www.aboutads.info/choices/ oder die EU-Seite + http://www.youronlinechoices.com/ erklärt werden. Des Weiteren + kann die Speicherung von Cookies mittels deren Abschaltung in den + Einstellungen des Browsers erreicht werden. Bitte beachten Sie, + dass dann gegebenenfalls nicht alle Funktionen dieses + Onlineangebotes genutzt werden können. +

    -

    Löschung von Daten

    -

    - Die von uns verarbeiteten Daten werden nach Maßgabe der Art. 17 - und 18 DSGVO gelöscht oder in ihrer Verarbeitung eingeschränkt. - Sofern nicht im Rahmen dieser Datenschutzerklärung ausdrücklich - angegeben, werden die bei uns gespeicherten Daten gelöscht, sobald - sie für ihre Zweckbestimmung nicht mehr erforderlich sind und der - Löschung keine gesetzlichen Aufbewahrungspflichten entgegenstehen. - Sofern die Daten nicht gelöscht werden, weil sie für andere und - gesetzlich zulässige Zwecke erforderlich sind, wird deren - Verarbeitung eingeschränkt. D.h. die Daten werden gesperrt und - nicht für andere Zwecke verarbeitet. Das gilt z.B. für Daten, die - aus handels- oder steuerrechtlichen Gründen aufbewahrt werden - müssen. -

    -

    - Nach gesetzlichen Vorgaben in Österreich erfolgt die Aufbewahrung - insbesondere für 7 J gemäß § 132 Abs. 1 BAO - (Buchhaltungsunterlagen, Belege/Rechnungen, Konten, Belege, - Geschäftspapiere, Aufstellung der Einnahmen und Ausgaben, etc.), - für 22 Jahre im Zusammenhang mit Grundstücken und für 10 Jahre bei - Unterlagen im Zusammenhang mit elektronisch erbrachten Leistungen, - Telekommunikations-, Rundfunk- und Fernsehleistungen, die an - Nichtunternehmer in EU-Mitgliedstaaten erbracht werden und für die - der Mini-One-Stop-Shop (MOSS) in Anspruch genommen wird. -

    +

    Löschung von Daten

    +

    + Die von uns verarbeiteten Daten werden nach Maßgabe der Art. 17 + und 18 DSGVO gelöscht oder in ihrer Verarbeitung eingeschränkt. + Sofern nicht im Rahmen dieser Datenschutzerklärung ausdrücklich + angegeben, werden die bei uns gespeicherten Daten gelöscht, sobald + sie für ihre Zweckbestimmung nicht mehr erforderlich sind und der + Löschung keine gesetzlichen Aufbewahrungspflichten entgegenstehen. + Sofern die Daten nicht gelöscht werden, weil sie für andere und + gesetzlich zulässige Zwecke erforderlich sind, wird deren + Verarbeitung eingeschränkt. D.h. die Daten werden gesperrt und + nicht für andere Zwecke verarbeitet. Das gilt z.B. für Daten, die + aus handels- oder steuerrechtlichen Gründen aufbewahrt werden + müssen. +

    +

    + Nach gesetzlichen Vorgaben in Österreich erfolgt die Aufbewahrung + insbesondere für 7 J gemäß § 132 Abs. 1 BAO + (Buchhaltungsunterlagen, Belege/Rechnungen, Konten, Belege, + Geschäftspapiere, Aufstellung der Einnahmen und Ausgaben, etc.), + für 22 Jahre im Zusammenhang mit Grundstücken und für 10 Jahre bei + Unterlagen im Zusammenhang mit elektronisch erbrachten Leistungen, + Telekommunikations-, Rundfunk- und Fernsehleistungen, die an + Nichtunternehmer in EU-Mitgliedstaaten erbracht werden und für die + der Mini-One-Stop-Shop (MOSS) in Anspruch genommen wird. +

    -

    Registrierfunktion

    -

    - Nutzer können ein Nutzerkonto anlegen. Im Rahmen der Registrierung - werden die erforderlichen Pflichtangaben den Nutzern mitgeteilt - und auf Grundlage des Art. 6 Abs. 1 lit. b DSGVO zu Zwecken der - Bereitstellung des Nutzerkontos verarbeitet. Zu den verarbeiteten - Daten gehören insbesondere die Login-Informationen (Name, Passwort - sowie eine E-Mailadresse). Die im Rahmen der Registrierung - eingegebenen Daten werden für die Zwecke der Nutzung des - Nutzerkontos und dessen Zwecks verwendet. -

    -

    - Die Nutzer können über Informationen, die für deren Nutzerkonto - relevant sind, wie z.B. technische Änderungen, per E-Mail - informiert werden. Wenn Nutzer ihr Nutzerkonto gekündigt haben, - werden deren Daten im Hinblick auf das Nutzerkonto, vorbehaltlich - einer gesetzlichen Aufbewahrungspflicht, gelöscht. Es obliegt den - Nutzern, ihre Daten bei erfolgter Kündigung vor dem Vertragsende - zu sichern. Wir sind berechtigt, sämtliche während der - Vertragsdauer gespeicherten Daten des Nutzers unwiederbringlich zu - löschen. -

    -

    - Im Rahmen der Inanspruchnahme unserer Registrierungs- und - Anmeldefunktionen sowie der Nutzung des Nutzerkontos, speichern - wir die IP-Adresse und den Zeitpunkt der jeweiligen - Nutzerhandlung. Die Speicherung erfolgt auf Grundlage unserer - berechtigten Interessen, als auch der Nutzer an Schutz vor - Missbrauch und sonstiger unbefugter Nutzung. Eine Weitergabe - dieser Daten an Dritte erfolgt grundsätzlich nicht, außer sie ist - zur Verfolgung unserer Ansprüche erforderlich oder es besteht - hierzu besteht eine gesetzliche Verpflichtung gem. Art. 6 Abs. 1 - lit. c. DSGVO. Die IP-Adressen werden spätestens nach 7 Tagen - anonymisiert oder gelöscht. -

    +

    Registrierfunktion

    +

    + Nutzer können ein Nutzerkonto anlegen. Im Rahmen der Registrierung + werden die erforderlichen Pflichtangaben den Nutzern mitgeteilt + und auf Grundlage des Art. 6 Abs. 1 lit. b DSGVO zu Zwecken der + Bereitstellung des Nutzerkontos verarbeitet. Zu den verarbeiteten + Daten gehören insbesondere die Login-Informationen (Name, Passwort + sowie eine E-Mailadresse). Die im Rahmen der Registrierung + eingegebenen Daten werden für die Zwecke der Nutzung des + Nutzerkontos und dessen Zwecks verwendet. +

    +

    + Die Nutzer können über Informationen, die für deren Nutzerkonto + relevant sind, wie z.B. technische Änderungen, per E-Mail + informiert werden. Wenn Nutzer ihr Nutzerkonto gekündigt haben, + werden deren Daten im Hinblick auf das Nutzerkonto, vorbehaltlich + einer gesetzlichen Aufbewahrungspflicht, gelöscht. Es obliegt den + Nutzern, ihre Daten bei erfolgter Kündigung vor dem Vertragsende + zu sichern. Wir sind berechtigt, sämtliche während der + Vertragsdauer gespeicherten Daten des Nutzers unwiederbringlich zu + löschen. +

    +

    + Im Rahmen der Inanspruchnahme unserer Registrierungs- und + Anmeldefunktionen sowie der Nutzung des Nutzerkontos, speichern + wir die IP-Adresse und den Zeitpunkt der jeweiligen + Nutzerhandlung. Die Speicherung erfolgt auf Grundlage unserer + berechtigten Interessen, als auch der Nutzer an Schutz vor + Missbrauch und sonstiger unbefugter Nutzung. Eine Weitergabe + dieser Daten an Dritte erfolgt grundsätzlich nicht, außer sie ist + zur Verfolgung unserer Ansprüche erforderlich oder es besteht + hierzu besteht eine gesetzliche Verpflichtung gem. Art. 6 Abs. 1 + lit. c. DSGVO. Die IP-Adressen werden spätestens nach 7 Tagen + anonymisiert oder gelöscht. +

    -

    Kommentare und Beiträge

    -

    - Wenn Nutzer Kommentare oder sonstige Beiträge hinterlassen, können - ihre IP-Adressen auf Grundlage unserer berechtigten Interessen im - Sinne des Art. 6 Abs. 1 lit. f. DSGVO für 7 Tage gespeichert - werden. Das erfolgt zu unserer Sicherheit, falls jemand in - Kommentaren und Beiträgen widerrechtliche Inhalte hinterlässt - (Beleidigungen, verbotene politische Propaganda, etc.). In diesem - Fall können wir selbst für den Kommentar oder Beitrag belangt - werden und sind daher an der Identität des Verfassers - interessiert. -

    -

    - Des Weiteren behalten wir uns vor, auf Grundlage unserer - berechtigten Interessen gem. Art. 6 Abs. 1 lit. f. DSGVO, die - Angaben der Nutzer zwecks Spamerkennung zu verarbeiten. Auf - derselben Rechtsgrundlage behalten wir uns vor, im Fall von - Umfragen die IP-Adressen der Nutzer für deren Dauer zu speichern - und Cookies zu verwenden, um Mehrfachabstimmungen zu vermeiden. - Die im Rahmen der Kommentare und Beiträge angegebenen Daten, - werden von uns bis zum Widerspruch der Nutzer dauerhaft - gespeichert. -

    +

    Kommentare und Beiträge

    +

    + Wenn Nutzer Kommentare oder sonstige Beiträge hinterlassen, können + ihre IP-Adressen auf Grundlage unserer berechtigten Interessen im + Sinne des Art. 6 Abs. 1 lit. f. DSGVO für 7 Tage gespeichert + werden. Das erfolgt zu unserer Sicherheit, falls jemand in + Kommentaren und Beiträgen widerrechtliche Inhalte hinterlässt + (Beleidigungen, verbotene politische Propaganda, etc.). In diesem + Fall können wir selbst für den Kommentar oder Beitrag belangt + werden und sind daher an der Identität des Verfassers + interessiert. +

    +

    + Des Weiteren behalten wir uns vor, auf Grundlage unserer + berechtigten Interessen gem. Art. 6 Abs. 1 lit. f. DSGVO, die + Angaben der Nutzer zwecks Spamerkennung zu verarbeiten. Auf + derselben Rechtsgrundlage behalten wir uns vor, im Fall von + Umfragen die IP-Adressen der Nutzer für deren Dauer zu speichern + und Cookies zu verwenden, um Mehrfachabstimmungen zu vermeiden. + Die im Rahmen der Kommentare und Beiträge angegebenen Daten, + werden von uns bis zum Widerspruch der Nutzer dauerhaft + gespeichert. +

    -

    Kontaktaufnahme

    -

    - Bei der Kontaktaufnahme mit uns (z.B. per Kontaktformular, E-Mail, - Telefon oder via sozialer Medien) werden die Angaben des Nutzers - zur Bearbeitung der Kontaktanfrage und deren Abwicklung gem. Art. - 6 Abs. 1 lit. b. (im Rahmen vertraglicher-/vorvertraglicher - Beziehungen), Art. 6 Abs. 1 lit. f. (andere Anfragen) DSGVO - verarbeitet.. Die Angaben der Nutzer können in einem - Customer-Relationship-Management System ("CRM System") oder - vergleichbarer Anfragenorganisation gespeichert werden. Wir - löschen die Anfragen, sofern diese nicht mehr erforderlich sind. - Wir überprüfen die Erforderlichkeit alle zwei Jahre; Ferner gelten - die gesetzlichen Archivierungspflichten. -

    +

    Kontaktaufnahme

    +

    + Bei der Kontaktaufnahme mit uns (z.B. per Kontaktformular, E-Mail, + Telefon oder via sozialer Medien) werden die Angaben des Nutzers + zur Bearbeitung der Kontaktanfrage und deren Abwicklung gem. Art. + 6 Abs. 1 lit. b. (im Rahmen vertraglicher-/vorvertraglicher + Beziehungen), Art. 6 Abs. 1 lit. f. (andere Anfragen) DSGVO + verarbeitet.. Die Angaben der Nutzer können in einem + Customer-Relationship-Management System ("CRM System") oder + vergleichbarer Anfragenorganisation gespeichert werden. Wir + löschen die Anfragen, sofern diese nicht mehr erforderlich sind. + Wir überprüfen die Erforderlichkeit alle zwei Jahre; Ferner gelten + die gesetzlichen Archivierungspflichten. +

    -

    Newsletter

    -

    - Mit den nachfolgenden Hinweisen informieren wir Sie über die - Inhalte unseres Newsletters sowie das Anmelde-, Versand- und das - statistische Auswertungsverfahren sowie Ihre Widerspruchsrechte - auf. Indem Sie unseren Newsletter abonnieren, erklären Sie sich - mit dem Empfang und den beschriebenen Verfahren einverstanden. -

    -

    - Inhalt des Newsletters: Wir versenden Newsletter, E-Mails und - weitere elektronische Benachrichtigungen mit werblichen - Informationen (nachfolgend „Newsletter“) nur mit der Einwilligung - der Empfänger oder einer gesetzlichen Erlaubnis. Sofern im Rahmen - einer Anmeldung zum Newsletter dessen Inhalte konkret umschrieben - werden, sind sie für die Einwilligung der Nutzer maßgeblich. Im - Übrigen enthalten unsere Newsletter Informationen zu unseren - Produkten und sie begleitenden Informationen (z.B. - Sicherheitshinweise), Angeboten, Aktionen und unser Unternehmen. -

    -

    - Double-Opt-In und Protokollierung: Die Anmeldung zu unserem - Newsletter erfolgt in einem sog. Double-Opt-In-Verfahren. D.h. Sie - erhalten nach der Anmeldung eine E-Mail, in der Sie um die - Bestätigung Ihrer Anmeldung gebeten werden. Diese Bestätigung ist - notwendig, damit sich niemand mit fremden E-Mailadressen anmelden - kann. Die Anmeldungen zum Newsletter werden protokolliert, um den - Anmeldeprozess entsprechend den rechtlichen Anforderungen - nachweisen zu können. Hierzu gehört die Speicherung des Anmelde- - und des Bestätigungszeitpunkts, als auch der IP-Adresse. Ebenso - werden die Änderungen Ihrer bei dem Versanddienstleister - gespeicherten Daten protokolliert. -

    -

    - Anmeldedaten: Um sich für den Newsletter anzumelden, reicht es - aus, wenn Sie Ihre E-Mailadresse angeben. Optional bitten wir Sie - einen Namen, zwecks persönlicher Ansprache im Newsletters - anzugeben. -

    -

    - Der Versand des Newsletters und die mit ihm verbundene - Erfolgsmessung erfolgen auf Grundlage einer Einwilligung der - Empfänger gem. Art. 6 Abs. 1 lit. a, Art. 7 DSGVO i.V.m § 107 Abs. - 2 TKG oder falls eine Einwilligung nicht erforderlich ist, auf - Grundlage unserer berechtigten Interessen am Direktmarketing gem. - Art. 6 Abs. 1 lt. f. DSGVO i.V.m. § 107 Abs. 2 u. 3 TKG. -

    -

    - Die Protokollierung des Anmeldeverfahrens erfolgt auf Grundlage - unserer berechtigten Interessen gem. Art. 6 Abs. 1 lit. f DSGVO. - Unser Interesse richtet sich auf den Einsatz eines - nutzerfreundlichen sowie sicheren Newslettersystems, das sowohl - unseren geschäftlichen Interessen dient, als auch den Erwartungen - der Nutzer entspricht und uns ferner den Nachweis von - Einwilligungen erlaubt. -

    -

    - Kündigung/Widerruf - Sie können den Empfang unseres Newsletters - jederzeit kündigen, d.h. Ihre Einwilligungen widerrufen. Einen - Link zur Kündigung des Newsletters finden Sie am Ende eines jeden - Newsletters. Wir können die ausgetragenen E-Mailadressen bis zu - drei Jahren auf Grundlage unserer berechtigten Interessen - speichern bevor wir sie löschen, um eine ehemals gegebene - Einwilligung nachweisen zu können. Die Verarbeitung dieser Daten - wird auf den Zweck einer möglichen Abwehr von Ansprüchen - beschränkt. Ein individueller Löschungsantrag ist jederzeit - möglich, sofern zugleich das ehemalige Bestehen einer Einwilligung - bestätigt wird. -

    +

    Newsletter

    +

    + Mit den nachfolgenden Hinweisen informieren wir Sie über die + Inhalte unseres Newsletters sowie das Anmelde-, Versand- und das + statistische Auswertungsverfahren sowie Ihre Widerspruchsrechte + auf. Indem Sie unseren Newsletter abonnieren, erklären Sie sich + mit dem Empfang und den beschriebenen Verfahren einverstanden. +

    +

    + Inhalt des Newsletters: Wir versenden Newsletter, E-Mails und + weitere elektronische Benachrichtigungen mit werblichen + Informationen (nachfolgend „Newsletter“) nur mit der Einwilligung + der Empfänger oder einer gesetzlichen Erlaubnis. Sofern im Rahmen + einer Anmeldung zum Newsletter dessen Inhalte konkret umschrieben + werden, sind sie für die Einwilligung der Nutzer maßgeblich. Im + Übrigen enthalten unsere Newsletter Informationen zu unseren + Produkten und sie begleitenden Informationen (z.B. + Sicherheitshinweise), Angeboten, Aktionen und unser Unternehmen. +

    +

    + Double-Opt-In und Protokollierung: Die Anmeldung zu unserem + Newsletter erfolgt in einem sog. Double-Opt-In-Verfahren. D.h. Sie + erhalten nach der Anmeldung eine E-Mail, in der Sie um die + Bestätigung Ihrer Anmeldung gebeten werden. Diese Bestätigung ist + notwendig, damit sich niemand mit fremden E-Mailadressen anmelden + kann. Die Anmeldungen zum Newsletter werden protokolliert, um den + Anmeldeprozess entsprechend den rechtlichen Anforderungen + nachweisen zu können. Hierzu gehört die Speicherung des Anmelde- + und des Bestätigungszeitpunkts, als auch der IP-Adresse. Ebenso + werden die Änderungen Ihrer bei dem Versanddienstleister + gespeicherten Daten protokolliert. +

    +

    + Anmeldedaten: Um sich für den Newsletter anzumelden, reicht es + aus, wenn Sie Ihre E-Mailadresse angeben. Optional bitten wir Sie + einen Namen, zwecks persönlicher Ansprache im Newsletters + anzugeben. +

    +

    + Der Versand des Newsletters und die mit ihm verbundene + Erfolgsmessung erfolgen auf Grundlage einer Einwilligung der + Empfänger gem. Art. 6 Abs. 1 lit. a, Art. 7 DSGVO i.V.m § 107 Abs. + 2 TKG oder falls eine Einwilligung nicht erforderlich ist, auf + Grundlage unserer berechtigten Interessen am Direktmarketing gem. + Art. 6 Abs. 1 lt. f. DSGVO i.V.m. § 107 Abs. 2 u. 3 TKG. +

    +

    + Die Protokollierung des Anmeldeverfahrens erfolgt auf Grundlage + unserer berechtigten Interessen gem. Art. 6 Abs. 1 lit. f DSGVO. + Unser Interesse richtet sich auf den Einsatz eines + nutzerfreundlichen sowie sicheren Newslettersystems, das sowohl + unseren geschäftlichen Interessen dient, als auch den Erwartungen + der Nutzer entspricht und uns ferner den Nachweis von + Einwilligungen erlaubt. +

    +

    + Kündigung/Widerruf - Sie können den Empfang unseres Newsletters + jederzeit kündigen, d.h. Ihre Einwilligungen widerrufen. Einen + Link zur Kündigung des Newsletters finden Sie am Ende eines jeden + Newsletters. Wir können die ausgetragenen E-Mailadressen bis zu + drei Jahren auf Grundlage unserer berechtigten Interessen + speichern bevor wir sie löschen, um eine ehemals gegebene + Einwilligung nachweisen zu können. Die Verarbeitung dieser Daten + wird auf den Zweck einer möglichen Abwehr von Ansprüchen + beschränkt. Ein individueller Löschungsantrag ist jederzeit + möglich, sofern zugleich das ehemalige Bestehen einer Einwilligung + bestätigt wird. +

    -

    Erhebung von Zugriffsdaten und Logfiles

    -

    - Wir, bzw. unser Hostinganbieter, erhebt auf Grundlage unserer - berechtigten Interessen im Sinne des Art. 6 Abs. 1 lit. f. DSGVO - Daten über jeden Zugriff auf den Server, auf dem sich dieser - Dienst befindet (sogenannte Serverlogfiles). Zu den Zugriffsdaten - gehören Name der abgerufenen Webseite, Datei, Datum und Uhrzeit - des Abrufs, übertragene Datenmenge, Meldung über erfolgreichen - Abruf, Browsertyp nebst Version, das Betriebssystem des Nutzers, - Referrer URL (die zuvor besuchte Seite), IP-Adresse und der - anfragende Provider. -

    -

    - Logfile-Informationen werden aus Sicherheitsgründen (z.B. zur - Aufklärung von Missbrauchs- oder Betrugshandlungen) für die Dauer - von maximal 7 Tagen gespeichert und danach gelöscht. Daten, deren - weitere Aufbewahrung zu Beweiszwecken erforderlich ist, sind bis - zur endgültigen Klärung des jeweiligen Vorfalls von der Löschung - ausgenommen. -

    +

    Erhebung von Zugriffsdaten und Logfiles

    +

    + Wir, bzw. unser Hostinganbieter, erhebt auf Grundlage unserer + berechtigten Interessen im Sinne des Art. 6 Abs. 1 lit. f. DSGVO + Daten über jeden Zugriff auf den Server, auf dem sich dieser + Dienst befindet (sogenannte Serverlogfiles). Zu den Zugriffsdaten + gehören Name der abgerufenen Webseite, Datei, Datum und Uhrzeit + des Abrufs, übertragene Datenmenge, Meldung über erfolgreichen + Abruf, Browsertyp nebst Version, das Betriebssystem des Nutzers, + Referrer URL (die zuvor besuchte Seite), IP-Adresse und der + anfragende Provider. +

    +

    + Logfile-Informationen werden aus Sicherheitsgründen (z.B. zur + Aufklärung von Missbrauchs- oder Betrugshandlungen) für die Dauer + von maximal 7 Tagen gespeichert und danach gelöscht. Daten, deren + weitere Aufbewahrung zu Beweiszwecken erforderlich ist, sind bis + zur endgültigen Klärung des jeweiligen Vorfalls von der Löschung + ausgenommen. +

    -

    Onlinepräsenzen in sozialen Medien

    -

    - Wir unterhalten Onlinepräsenzen innerhalb sozialer Netzwerke und - Plattformen, um mit den dort aktiven Kunden, Interessenten und - Nutzern kommunizieren und sie dort über unsere Leistungen - informieren zu können. -

    -

    - Wir weisen darauf hin, dass dabei Daten der Nutzer außerhalb des - Raumes der Europäischen Union verarbeitet werden können. Hierdurch - können sich für die Nutzer Risiken ergeben, weil so z.B. die - Durchsetzung der Rechte der Nutzer erschwert werden könnte. Im - Hinblick auf US-Anbieter die unter dem Privacy-Shield zertifiziert - sind, weisen wir darauf hin, dass sie sich damit verpflichten, die - Datenschutzstandards der EU einzuhalten. -

    -

    - Ferner werden die Daten der Nutzer im Regelfall für - Marktforschungs- und Werbezwecke verarbeitet. So können z.B. aus - dem Nutzungsverhalten und sich daraus ergebenden Interessen der - Nutzer Nutzungsprofile erstellt werden. Die Nutzungsprofile können - wiederum verwendet werden, um z.B. Werbeanzeigen innerhalb und - außerhalb der Plattformen zu schalten, die mutmaßlich den - Interessen der Nutzer entsprechen. Zu diesen Zwecken werden im - Regelfall Cookies auf den Rechnern der Nutzer gespeichert, in - denen das Nutzungsverhalten und die Interessen der Nutzer - gespeichert werden. Ferner können in den Nutzungsprofilen auch - Daten unabhängig der von den Nutzern verwendeten Geräte - gespeichert werden (insbesondere wenn die Nutzer Mitglieder der - jeweiligen Plattformen sind und bei diesen eingeloggt sind). Die - Verarbeitung der personenbezogenen Daten der Nutzer erfolgt auf - Grundlage unserer berechtigten Interessen an einer effektiven - Information der Nutzer und Kommunikation mit den Nutzern gem. Art. - 6 Abs. 1 lit. f. DSGVO. Falls die Nutzer von den jeweiligen - Anbietern um eine Einwilligung in die Datenverarbeitung gebeten - werden (d.h. ihr Einverständnis z.B. über das Anhaken eines - Kontrollkästchens oder Bestätigung einer Schaltfläche erklären) - ist die Rechtsgrundlage der Verarbeitung Art. 6 Abs. 1 lit. a., - Art. 7 DSGVO. Für eine detaillierte Darstellung der jeweiligen - Verarbeitungen und der Widerspruchsmöglichkeiten (Opt-Out), - verweisen wir auf die nachfolgend verlinkten Angaben der Anbieter. - Auch im Fall von Auskunftsanfragen und der Geltendmachung von - Nutzerrechten, weisen wir darauf hin, dass diese am effektivsten - bei den Anbietern geltend gemacht werden können. Nur die Anbieter - haben jeweils Zugriff auf die Daten der Nutzer und können direkt - entsprechende Maßnahmen ergreifen und Auskünfte geben. Sollten Sie - dennoch Hilfe benötigen, dann können Sie sich an uns wenden. -

    -

    Facebook

    - -

    Google / YouTube

    - -

    Instagram

    - -

    Twitter

    - +

    Onlinepräsenzen in sozialen Medien

    +

    + Wir unterhalten Onlinepräsenzen innerhalb sozialer Netzwerke und + Plattformen, um mit den dort aktiven Kunden, Interessenten und + Nutzern kommunizieren und sie dort über unsere Leistungen + informieren zu können. +

    +

    + Wir weisen darauf hin, dass dabei Daten der Nutzer außerhalb des + Raumes der Europäischen Union verarbeitet werden können. Hierdurch + können sich für die Nutzer Risiken ergeben, weil so z.B. die + Durchsetzung der Rechte der Nutzer erschwert werden könnte. Im + Hinblick auf US-Anbieter die unter dem Privacy-Shield zertifiziert + sind, weisen wir darauf hin, dass sie sich damit verpflichten, die + Datenschutzstandards der EU einzuhalten. +

    +

    + Ferner werden die Daten der Nutzer im Regelfall für + Marktforschungs- und Werbezwecke verarbeitet. So können z.B. aus + dem Nutzungsverhalten und sich daraus ergebenden Interessen der + Nutzer Nutzungsprofile erstellt werden. Die Nutzungsprofile können + wiederum verwendet werden, um z.B. Werbeanzeigen innerhalb und + außerhalb der Plattformen zu schalten, die mutmaßlich den + Interessen der Nutzer entsprechen. Zu diesen Zwecken werden im + Regelfall Cookies auf den Rechnern der Nutzer gespeichert, in + denen das Nutzungsverhalten und die Interessen der Nutzer + gespeichert werden. Ferner können in den Nutzungsprofilen auch + Daten unabhängig der von den Nutzern verwendeten Geräte + gespeichert werden (insbesondere wenn die Nutzer Mitglieder der + jeweiligen Plattformen sind und bei diesen eingeloggt sind). Die + Verarbeitung der personenbezogenen Daten der Nutzer erfolgt auf + Grundlage unserer berechtigten Interessen an einer effektiven + Information der Nutzer und Kommunikation mit den Nutzern gem. Art. + 6 Abs. 1 lit. f. DSGVO. Falls die Nutzer von den jeweiligen + Anbietern um eine Einwilligung in die Datenverarbeitung gebeten + werden (d.h. ihr Einverständnis z.B. über das Anhaken eines + Kontrollkästchens oder Bestätigung einer Schaltfläche erklären) + ist die Rechtsgrundlage der Verarbeitung Art. 6 Abs. 1 lit. a., + Art. 7 DSGVO. Für eine detaillierte Darstellung der jeweiligen + Verarbeitungen und der Widerspruchsmöglichkeiten (Opt-Out), + verweisen wir auf die nachfolgend verlinkten Angaben der Anbieter. + Auch im Fall von Auskunftsanfragen und der Geltendmachung von + Nutzerrechten, weisen wir darauf hin, dass diese am effektivsten + bei den Anbietern geltend gemacht werden können. Nur die Anbieter + haben jeweils Zugriff auf die Daten der Nutzer und können direkt + entsprechende Maßnahmen ergreifen und Auskünfte geben. Sollten Sie + dennoch Hilfe benötigen, dann können Sie sich an uns wenden. +

    +

    Facebook

    + +

    Google / YouTube

    + +

    Instagram

    + +

    Twitter

    + -

    Einbindung von Diensten und Inhalten Dritter

    -

    - Wir setzen innerhalb unseres Onlineangebotes auf Grundlage unserer - berechtigten Interessen (d.h. Interesse an der Analyse, - Optimierung und wirtschaftlichem Betrieb unseres Onlineangebotes - im Sinne des Art. 6 Abs. 1 lit. f. DSGVO) Inhalts- oder - Serviceangebote von Drittanbietern ein, um deren Inhalte und - Services, wie z.B. Videos oder Schriftarten einzubinden - (nachfolgend einheitlich bezeichnet als “Inhalte”). -

    -

    - Dies setzt immer voraus, dass die Drittanbieter dieser Inhalte, - die IP-Adresse der Nutzer wahrnehmen, da sie ohne die IP-Adresse - die Inhalte nicht an deren Browser senden könnten. Die IP-Adresse - ist damit für die Darstellung dieser Inhalte erforderlich. Wir - bemühen uns nur solche Inhalte zu verwenden, deren jeweilige - Anbieter die IP-Adresse lediglich zur Auslieferung der Inhalte - verwenden. Drittanbieter können ferner so genannte Pixel-Tags - (unsichtbare Grafiken, auch als "Web Beacons" bezeichnet) für - statistische oder Marketingzwecke verwenden. Durch die - "Pixel-Tags" können Informationen, wie der Besucherverkehr auf den - Seiten dieser Website ausgewertet werden. Die pseudonymen - Informationen können ferner in Cookies auf dem Gerät der Nutzer - gespeichert werden und unter anderem technische Informationen zum - Browser und Betriebssystem, verweisende Webseiten, Besuchszeit - sowie weitere Angaben zur Nutzung unseres Onlineangebotes - enthalten, als auch mit solchen Informationen aus anderen Quellen - verbunden werden. -

    +

    Einbindung von Diensten und Inhalten Dritter

    +

    + Wir setzen innerhalb unseres Onlineangebotes auf Grundlage unserer + berechtigten Interessen (d.h. Interesse an der Analyse, + Optimierung und wirtschaftlichem Betrieb unseres Onlineangebotes + im Sinne des Art. 6 Abs. 1 lit. f. DSGVO) Inhalts- oder + Serviceangebote von Drittanbietern ein, um deren Inhalte und + Services, wie z.B. Videos oder Schriftarten einzubinden + (nachfolgend einheitlich bezeichnet als “Inhalte”). +

    +

    + Dies setzt immer voraus, dass die Drittanbieter dieser Inhalte, + die IP-Adresse der Nutzer wahrnehmen, da sie ohne die IP-Adresse + die Inhalte nicht an deren Browser senden könnten. Die IP-Adresse + ist damit für die Darstellung dieser Inhalte erforderlich. Wir + bemühen uns nur solche Inhalte zu verwenden, deren jeweilige + Anbieter die IP-Adresse lediglich zur Auslieferung der Inhalte + verwenden. Drittanbieter können ferner so genannte Pixel-Tags + (unsichtbare Grafiken, auch als "Web Beacons" bezeichnet) für + statistische oder Marketingzwecke verwenden. Durch die + "Pixel-Tags" können Informationen, wie der Besucherverkehr auf den + Seiten dieser Website ausgewertet werden. Die pseudonymen + Informationen können ferner in Cookies auf dem Gerät der Nutzer + gespeichert werden und unter anderem technische Informationen zum + Browser und Betriebssystem, verweisende Webseiten, Besuchszeit + sowie weitere Angaben zur Nutzung unseres Onlineangebotes + enthalten, als auch mit solchen Informationen aus anderen Quellen + verbunden werden. +

    -

    YouTube

    -

    - Wir binden die Videos der Plattform “YouTube” des Anbieters Google - LLC, 1600 Amphitheatre Parkway, Mountain View, CA 94043, USA, ein. -

    +

    YouTube

    +

    + Wir binden die Videos der Plattform “YouTube” des Anbieters Google + LLC, 1600 Amphitheatre Parkway, Mountain View, CA 94043, USA, ein. +

    -

    Verwendung von Facebook Social Plugins

    -

    - Wir nutzen auf Grundlage unserer berechtigten Interessen (d.h. - Interesse an der Analyse, Optimierung und wirtschaftlichem Betrieb - unseres Onlineangebotes im Sinne des Art. 6 Abs. 1 lit. f. DSGVO) - Social Plugins ("Plugins") des sozialen Netzwerkes facebook.com, - welches von der Facebook Ireland Ltd., 4 Grand Canal Square, Grand - Canal Harbour, Dublin 2, Irland betrieben wird ("Facebook"). - Hierzu können z.B. Inhalte wie Bilder, Videos oder Texte und - Schaltflächen gehören, mit denen Nutzer Inhalte dieses - Onlineangebotes innerhalb von Facebook teilen können. Die Liste - und das Aussehen der Facebook Social Plugins kann - - {" "} - hier{" "} - - eingesehen werden. -

    -

    - Facebook ist unter dem Privacy-Shield-Abkommen zertifiziert und - bietet hierdurch eine Garantie, das europäische Datenschutzrecht - einzuhalten. -

    -

    - Wenn ein Nutzer eine Funktion dieses Onlineangebotes aufruft, die - ein solches Plugin enthält, baut sein Gerät eine direkte - Verbindung mit den Servern von Facebook auf. Der Inhalt des - Plugins wird von Facebook direkt an das Gerät des Nutzers - übermittelt und von diesem in das Onlineangebot eingebunden. Dabei - können aus den verarbeiteten Daten Nutzungsprofile der Nutzer - erstellt werden. Wir haben daher keinen Einfluss auf den Umfang - der Daten, die Facebook mit Hilfe dieses Plugins erhebt und - informiert die Nutzer daher entsprechend unserem Kenntnisstand. - Durch die Einbindung der Plugins erhält Facebook die Information, - dass ein Nutzer die entsprechende Seite des Onlineangebotes - aufgerufen hat. Ist der Nutzer bei Facebook eingeloggt, kann - Facebook den Besuch seinem Facebook-Konto zuordnen. Wenn Nutzer - mit den Plugins interagieren, zum Beispiel den Like Button - betätigen oder einen Kommentar abgeben, wird die entsprechende - Information von Ihrem Gerät direkt an Facebook übermittelt und - dort gespeichert. Falls ein Nutzer kein Mitglied von Facebook ist, - besteht trotzdem die Möglichkeit, dass Facebook seine IP-Adresse - in Erfahrung bringt und speichert. Laut Facebook wird in - Deutschland nur eine anonymisierte IP-Adresse gespeichert. -

    -

    - Zweck und Umfang der Datenerhebung und die weitere Verarbeitung - und Nutzung der Daten durch Facebook sowie die diesbezüglichen - Rechte und Einstellungsmöglichkeiten zum Schutz der Privatsphäre - der Nutzer, können diese den Datenschutzhinweisen von Facebook - entnehmen -

    -

    - Wenn ein Nutzer Facebookmitglied ist und nicht möchte, dass - Facebook über dieses Onlineangebot Daten über ihn sammelt und mit - seinen bei Facebook gespeicherten Mitgliedsdaten verknüpft, muss - er sich vor der Nutzung unseres Onlineangebotes bei Facebook - ausloggen und seine Cookies löschen. Weitere Einstellungen und - Widersprüche zur Nutzung von Daten für Werbezwecke, sind innerhalb - der Facebook-Profileinstellungen möglich: - https://www.facebook.com/settings?tab=ads oder über die - US-amerikanische Seite http://www.aboutads.info/choices/ oder die - EU-Seite http://www.youronlinechoices.com/. Die Einstellungen - erfolgen plattformunabhängig, d.h. sie werden für alle Geräte, wie - Desktopcomputer oder mobile Geräte übernommen. -

    +

    Verwendung von Facebook Social Plugins

    +

    + Wir nutzen auf Grundlage unserer berechtigten Interessen (d.h. + Interesse an der Analyse, Optimierung und wirtschaftlichem Betrieb + unseres Onlineangebotes im Sinne des Art. 6 Abs. 1 lit. f. DSGVO) + Social Plugins ("Plugins") des sozialen Netzwerkes facebook.com, + welches von der Facebook Ireland Ltd., 4 Grand Canal Square, Grand + Canal Harbour, Dublin 2, Irland betrieben wird ("Facebook"). + Hierzu können z.B. Inhalte wie Bilder, Videos oder Texte und + Schaltflächen gehören, mit denen Nutzer Inhalte dieses + Onlineangebotes innerhalb von Facebook teilen können. Die Liste + und das Aussehen der Facebook Social Plugins kann + + {" "} + hier{" "} + + eingesehen werden. +

    +

    + Facebook ist unter dem Privacy-Shield-Abkommen zertifiziert und + bietet hierdurch eine Garantie, das europäische Datenschutzrecht + einzuhalten. +

    +

    + Wenn ein Nutzer eine Funktion dieses Onlineangebotes aufruft, die + ein solches Plugin enthält, baut sein Gerät eine direkte + Verbindung mit den Servern von Facebook auf. Der Inhalt des + Plugins wird von Facebook direkt an das Gerät des Nutzers + übermittelt und von diesem in das Onlineangebot eingebunden. Dabei + können aus den verarbeiteten Daten Nutzungsprofile der Nutzer + erstellt werden. Wir haben daher keinen Einfluss auf den Umfang + der Daten, die Facebook mit Hilfe dieses Plugins erhebt und + informiert die Nutzer daher entsprechend unserem Kenntnisstand. + Durch die Einbindung der Plugins erhält Facebook die Information, + dass ein Nutzer die entsprechende Seite des Onlineangebotes + aufgerufen hat. Ist der Nutzer bei Facebook eingeloggt, kann + Facebook den Besuch seinem Facebook-Konto zuordnen. Wenn Nutzer + mit den Plugins interagieren, zum Beispiel den Like Button + betätigen oder einen Kommentar abgeben, wird die entsprechende + Information von Ihrem Gerät direkt an Facebook übermittelt und + dort gespeichert. Falls ein Nutzer kein Mitglied von Facebook ist, + besteht trotzdem die Möglichkeit, dass Facebook seine IP-Adresse + in Erfahrung bringt und speichert. Laut Facebook wird in + Deutschland nur eine anonymisierte IP-Adresse gespeichert. +

    +

    + Zweck und Umfang der Datenerhebung und die weitere Verarbeitung + und Nutzung der Daten durch Facebook sowie die diesbezüglichen + Rechte und Einstellungsmöglichkeiten zum Schutz der Privatsphäre + der Nutzer, können diese den Datenschutzhinweisen von Facebook + entnehmen +

    +

    + Wenn ein Nutzer Facebookmitglied ist und nicht möchte, dass + Facebook über dieses Onlineangebot Daten über ihn sammelt und mit + seinen bei Facebook gespeicherten Mitgliedsdaten verknüpft, muss + er sich vor der Nutzung unseres Onlineangebotes bei Facebook + ausloggen und seine Cookies löschen. Weitere Einstellungen und + Widersprüche zur Nutzung von Daten für Werbezwecke, sind innerhalb + der Facebook-Profileinstellungen möglich: + https://www.facebook.com/settings?tab=ads oder über die + US-amerikanische Seite http://www.aboutads.info/choices/ oder die + EU-Seite http://www.youronlinechoices.com/. Die Einstellungen + erfolgen plattformunabhängig, d.h. sie werden für alle Geräte, wie + Desktopcomputer oder mobile Geräte übernommen. +

    -

    Instagram

    -

    - Innerhalb unseres Onlineangebotes können Funktionen und Inhalte - des Dienstes LinkedIn, angeboten durch die LinkedIn Ireland - Unlimited Company Wilton Place, Dublin 2, Irland, eingebunden - werden. Hierzu können z.B. Inhalte wie Bilder, Videos oder Texte - und Schaltflächen gehören, mit denen Nutzer Inhalte dieses - Onlineangebotes innerhalb von LinkedIn teilen können. Sofern die - Nutzer Mitglieder der Plattform LinkedIn sind, kann LinkedIn den - Aufruf der o.g. Inhalte und Funktionen den dortigen Profilen der - Nutzer zuordnen. Datenschutzerklärung von LinkedIn: - https://www.linkedin.com/legal/privacy-policy.. LinkedIn ist unter - dem Privacy-Shield-Abkommen zertifiziert und bietet hierdurch eine - Garantie, das europäische Datenschutzrecht einzuhalten. -

    +

    Instagram

    +

    + Innerhalb unseres Onlineangebotes können Funktionen und Inhalte + des Dienstes LinkedIn, angeboten durch die LinkedIn Ireland + Unlimited Company Wilton Place, Dublin 2, Irland, eingebunden + werden. Hierzu können z.B. Inhalte wie Bilder, Videos oder Texte + und Schaltflächen gehören, mit denen Nutzer Inhalte dieses + Onlineangebotes innerhalb von LinkedIn teilen können. Sofern die + Nutzer Mitglieder der Plattform LinkedIn sind, kann LinkedIn den + Aufruf der o.g. Inhalte und Funktionen den dortigen Profilen der + Nutzer zuordnen. Datenschutzerklärung von LinkedIn: + https://www.linkedin.com/legal/privacy-policy.. LinkedIn ist unter + dem Privacy-Shield-Abkommen zertifiziert und bietet hierdurch eine + Garantie, das europäische Datenschutzrecht einzuhalten. +

    -

    Google Analytics

    -

    - Wir verwenden auf dieser Website Google Analytics der Firma Google - LLC (1600 Amphitheatre Parkway Mountain View, CA 94043, USA) um - Besucherdaten statistisch auszuwerten. Dabei verwendet Google - Analytics zielorientierte Cookies. -

    -

    Pseudonymisierung

    -

    - Unser Anliegen im Sinne der DSGVO ist die Verbesserung unseres - Angebotes und unseres Webauftritts. Da uns die Privatsphäre - unserer Nutzer wichtig ist, werden die Nutzerdaten - pseudonymisiert. Die Datenverarbeitung erfolgt auf Basis der - gesetzlichen Bestimmungen des § 96 Abs 3 TKG sowie des Art 6 - EU-DSGVO Abs 1 lit a (Einwilligung) und/oder f (berechtigtes - Interesse) der DSGVO. -

    -

    - Mithilfe des Browser-Add-ons zur Deaktivierung von Google - Analytics-JavaScript (ga.js, analytics.js, dc.js) können - Website-Besucher verhindern, dass Google Analytics ihre Daten - verwendet. Sie können die Erfassung der durch das Cookie erzeugten - und auf Ihre Nutzung der Website bezogenen Daten an Google sowie - die Verarbeitung dieser Daten durch Google verhindern, indem Sie - das unter dem folgenden Link verfügbare Browser-Plugin - herunterladen und installieren: - https://tools.google.com/dlpage/gaoptout?hl=de -

    -

    Google Analytics IP-Anonymisierung

    -

    - Wir haben auf dieser Webseite die IP-Adressen-Anonymisierung von - Google Analytics implementiert. Diese Funktion wurde von Google - entwickelt, damit diese Webseite die geltenden - Datenschutzbestimmungen und Empfehlungen der lokalen - Datenschutzbehörden einhalten kann, wenn diese eine Speicherung - der vollständigen IP-Adresse untersagen. Die Anonymisierung bzw. - Maskierung der IP findet statt, sobald die IP-Adressen im Google - Analytics-Datenerfassungsnetzwerk eintreffen und bevor eine - Speicherung oder Verarbeitung der Daten stattfindet. -

    +

    Google Analytics

    +

    + Wir verwenden auf dieser Website Google Analytics der Firma Google + LLC (1600 Amphitheatre Parkway Mountain View, CA 94043, USA) um + Besucherdaten statistisch auszuwerten. Dabei verwendet Google + Analytics zielorientierte Cookies. +

    +

    Pseudonymisierung

    +

    + Unser Anliegen im Sinne der DSGVO ist die Verbesserung unseres + Angebotes und unseres Webauftritts. Da uns die Privatsphäre + unserer Nutzer wichtig ist, werden die Nutzerdaten + pseudonymisiert. Die Datenverarbeitung erfolgt auf Basis der + gesetzlichen Bestimmungen des § 96 Abs 3 TKG sowie des Art 6 + EU-DSGVO Abs 1 lit a (Einwilligung) und/oder f (berechtigtes + Interesse) der DSGVO. +

    +

    + Mithilfe des Browser-Add-ons zur Deaktivierung von Google + Analytics-JavaScript (ga.js, analytics.js, dc.js) können + Website-Besucher verhindern, dass Google Analytics ihre Daten + verwendet. Sie können die Erfassung der durch das Cookie erzeugten + und auf Ihre Nutzung der Website bezogenen Daten an Google sowie + die Verarbeitung dieser Daten durch Google verhindern, indem Sie + das unter dem folgenden Link verfügbare Browser-Plugin + herunterladen und installieren: + https://tools.google.com/dlpage/gaoptout?hl=de +

    +

    Google Analytics IP-Anonymisierung

    +

    + Wir haben auf dieser Webseite die IP-Adressen-Anonymisierung von + Google Analytics implementiert. Diese Funktion wurde von Google + entwickelt, damit diese Webseite die geltenden + Datenschutzbestimmungen und Empfehlungen der lokalen + Datenschutzbehörden einhalten kann, wenn diese eine Speicherung + der vollständigen IP-Adresse untersagen. Die Anonymisierung bzw. + Maskierung der IP findet statt, sobald die IP-Adressen im Google + Analytics-Datenerfassungsnetzwerk eintreffen und bevor eine + Speicherung oder Verarbeitung der Daten stattfindet. +

    -

    Cloudflare

    -

    - Wir verwenden auf dieser Webseite Cloudflare der Firma Cloudflare, - Inc. (101 Townsend St., San Francisco, CA 94107, USA), um unsere - Webseite schneller und sicherer zu machen. Dabei verwendet - Cloudflare Cookies und verarbeitet User-Daten. Cloudflare, Inc. - ist eine amerikanische Firma, die ein Content Delivery Network und - diverse Sicherheitsdienste anbietet. Diese Dienste befinden sich - zwischen dem User und unserem Hosting-Anbieter. Was das alles - genau bedeutet, versuchen wir im Folgenden genauer zu erläutern. -

    -

    Was ist Cloudflare?

    -

    - Ein Content Delivery Network (CDN), wie es die Firma Cloudflare - bereitstellt, ist nichts anderes als ein Netzwerk aus verbundenen - Servern. Cloudflare hat auf der ganzen Welt solche Server - verteilt, um Webseiten schneller auf Ihren Bildschirm zu bringen. - Ganz einfach gesagt, legt Cloudflare Kopien unserer Webseite an - und platziert sie auf ihren eigenen Servern. Wenn Sie jetzt unsere - Webseite besuchen, stellt ein System der Lastenverteilung sicher, - dass die größten Teile unsere Webseite von jenem Server - ausgeliefert werden, der Ihnen unsere Webseite am schnellsten - anzeigen kann. Die Strecke der Datenübertragung zu Ihrem Browser - wird durch ein CDN deutlich verkürzt. Somit wird Ihnen der Content - unserer Webseite durch Cloudflare nicht nur von unserem - Hosting-Server geliefert, sondern von Servern aus der ganzen Welt. - Besonders hilfreich wird der Einsatz von Cloudflare für User aus - dem Ausland, da hier die Seite von einem Server in der Nähe - ausgeliefert werden kann. Neben dem schnellen Ausliefern von - Webseiten bietet Cloudflare auch diverse Sicherheitsdienste, wie - den DDoS-Schutz oder die Web Application Firewall an. -

    -

    Warum wir Cloudflare auf unserer Webseite verwenden?

    -

    - Natürlich wollen wir Ihnen mit unserer Webseite das bestmögliche - Service bieten. Cloudflare hilft uns dabei, unsere Webseite - schneller und sicherer zu machen. Cloudflare bietet uns sowohl - Web-Optimierungen als auch Sicherheitsdienste, wie DDoS-Schutz und - Web-Firewall, an. Dazu gehören auch ein Reverse-Proxy und das - Content-Verteilungsnetzwerk (CDN). Cloudflare blockiert - Bedrohungen und begrenzt missbräuchliche Bots und Crawler, die - unsere Bandbreite und Serverressourcen verschwenden. Durch das - Speichern unserer Webseite auf lokalen Datenzentren und das - Blockieren von Spam-Software ermöglicht Cloudflare, unsere - Bandbreitnutzung etwa um 60% zu reduzieren. Das Bereitstellen von - Inhalten über ein Datenzentrum in Ihrer Nähe und einiger dort - durchgeführten Web-Optimierungen reduziert die durchschnittliche - Ladezeit einer Webseite etwa um die Hälfte. Durch die Einstellung - „I´m Under Attack Mode“ („Ich werde angegriffen“-Modus) können - laut Cloudflare weitere Angriffe abgeschwächt werden, indem eine - JavaScript-Rechenaufgabe angezeigt wird, die man lösen muss, bevor - ein User auf eine Webseite zugreifen kann. Insgesamt wird dadurch - unsere Webseite deutlich leistungsstärker und weniger anfällig auf - Spam oder andere Angriffe. -

    -

    Welche Daten werden von Cloudflare gespeichert?

    -

    - Cloudflare leitet im Allgemeinen nur jene Daten weiter, die von - Webseitenbetreibern gesteuert werden. Die Inhalte werden also - nicht von Cloudflare bestimmt, sondern immer vom - Webseitenbetreiber selbst. Zudem erfasst Cloudflare unter - Umständen bestimmte Informationen zur Nutzung unserer Webseite und - verarbeitet Daten, die von uns versendet werden oder für die - Cloudflare entsprechende Anweisungen erhalten hat. In den meisten - Fällen erhält Cloudflare Daten wie IP-Adresse, Kontakt- und - Protokollinfos, Sicherheitsfingerabdrücke und Leistungsdaten für - Webseiten. Protokolldaten helfen Cloudflare beispielsweise dabei, - neue Bedrohungen zu erkennen. So kann Cloudflare einen hohen - Sicherheitsschutz für unsere Webseite gewährleisten. Cloudflare - verarbeitet diese Daten im Rahmen der Services unter Einhaltung - der geltenden Gesetze. Dazu zählt natürlich auch die - Datenschutzgrundverordnung (DSGVO). Aus Sicherheitsgründen - verwendet Cloudflare auch ein Cookie. Das Cookie (__cfduid) wird - eingesetzt, um einzelne User hinter einer gemeinsam genutzten - IP-Adresse zu identifizieren und Sicherheitseinstellungen für - jeden einzelnen User anzuwenden. Sehr nützlich wird dieses Cookie - beispielsweise, wenn Sie unsere Webseite aus einem Lokal benutzen, - in dem sich eine Reihe infizierter Computer befinden. Wenn aber - Ihr Computer vertrauenswürdig ist, können wir dies anhand des - Cookies erkennen. So können Sie, trotz infizierter PCs in Ihrem - Umfeld, ungehindert und sorgenfrei durch unsere Webseite surfen. - Wichtig zu wissen ist auch noch, dass dieses Cookie keine - personenbezogenen Daten speichert. Dieses Cookie ist für die - Cloudflare-Sicherheitsfunktionen unbedingt erforderlich und kann - nicht deaktiviert werden. -

    -

    - Wie kann ich meine Daten löschen bzw. die Datenspeicherung - verhindern? -

    -

    - Cloudflare bewahrt Daten-Protokolle nur solange wie nötig auf und - diese Daten werden auch in den meisten Fällen innerhalb von 24 - Stunden wieder gelöscht. Cloudflare speichert auch keine - personenbezogenen Daten, wie beispielsweise Ihre IP-Adresse. Es - gibt allerdings Informationen, die Cloudflare als Teil seiner - permanenten Protokolle auf unbestimmte Zeit speichert, um so die - Gesamtleistung von Cloudflare Resolver zu verbessern und etwaige - Sicherheitsrisiken zu erkennen. Alle Daten, die Cloudflare sammelt - (temporär oder permanent), werden von allen personenbezogenen - Daten bereinigt. Alle permanenten Protokolle werden zudem von - Cloudflare anonymisiert. Cloudflare geht in Ihrer - Datenschutzerklärung darauf ein, dass sie für die Inhalte, die sie - erhalten nicht verantwortlich sind. Wenn Sie beispielsweise bei - Cloudflare anfragen, ob sie Ihre Inhalte aktualisieren oder - löschen können, verweist Cloudflare grundsätzlich auf uns als - Webseitenbetreiber. Sie können auch die gesamte Erfassung und - Verarbeitung Ihrer Daten durch Cloudflare komplett unterbinden, - indem Sie die Ausführung von Script-Code in Ihrem Browser - deaktivieren oder einen Script-Blocker in Ihren Browser einbinden. - Cloudflare ist aktiver Teilnehmer beim EU-U.S. Privacy Shield - Framework, wodurch der korrekte und sichere Datentransfer - persönlicher Daten geregelt wird. -

    -
    - )} -
    - ); - } +

    Cloudflare

    +

    + Wir verwenden auf dieser Webseite Cloudflare der Firma Cloudflare, + Inc. (101 Townsend St., San Francisco, CA 94107, USA), um unsere + Webseite schneller und sicherer zu machen. Dabei verwendet + Cloudflare Cookies und verarbeitet User-Daten. Cloudflare, Inc. + ist eine amerikanische Firma, die ein Content Delivery Network und + diverse Sicherheitsdienste anbietet. Diese Dienste befinden sich + zwischen dem User und unserem Hosting-Anbieter. Was das alles + genau bedeutet, versuchen wir im Folgenden genauer zu erläutern. +

    +

    Was ist Cloudflare?

    +

    + Ein Content Delivery Network (CDN), wie es die Firma Cloudflare + bereitstellt, ist nichts anderes als ein Netzwerk aus verbundenen + Servern. Cloudflare hat auf der ganzen Welt solche Server + verteilt, um Webseiten schneller auf Ihren Bildschirm zu bringen. + Ganz einfach gesagt, legt Cloudflare Kopien unserer Webseite an + und platziert sie auf ihren eigenen Servern. Wenn Sie jetzt unsere + Webseite besuchen, stellt ein System der Lastenverteilung sicher, + dass die größten Teile unsere Webseite von jenem Server + ausgeliefert werden, der Ihnen unsere Webseite am schnellsten + anzeigen kann. Die Strecke der Datenübertragung zu Ihrem Browser + wird durch ein CDN deutlich verkürzt. Somit wird Ihnen der Content + unserer Webseite durch Cloudflare nicht nur von unserem + Hosting-Server geliefert, sondern von Servern aus der ganzen Welt. + Besonders hilfreich wird der Einsatz von Cloudflare für User aus + dem Ausland, da hier die Seite von einem Server in der Nähe + ausgeliefert werden kann. Neben dem schnellen Ausliefern von + Webseiten bietet Cloudflare auch diverse Sicherheitsdienste, wie + den DDoS-Schutz oder die Web Application Firewall an. +

    +

    Warum wir Cloudflare auf unserer Webseite verwenden?

    +

    + Natürlich wollen wir Ihnen mit unserer Webseite das bestmögliche + Service bieten. Cloudflare hilft uns dabei, unsere Webseite + schneller und sicherer zu machen. Cloudflare bietet uns sowohl + Web-Optimierungen als auch Sicherheitsdienste, wie DDoS-Schutz und + Web-Firewall, an. Dazu gehören auch ein Reverse-Proxy und das + Content-Verteilungsnetzwerk (CDN). Cloudflare blockiert + Bedrohungen und begrenzt missbräuchliche Bots und Crawler, die + unsere Bandbreite und Serverressourcen verschwenden. Durch das + Speichern unserer Webseite auf lokalen Datenzentren und das + Blockieren von Spam-Software ermöglicht Cloudflare, unsere + Bandbreitnutzung etwa um 60% zu reduzieren. Das Bereitstellen von + Inhalten über ein Datenzentrum in Ihrer Nähe und einiger dort + durchgeführten Web-Optimierungen reduziert die durchschnittliche + Ladezeit einer Webseite etwa um die Hälfte. Durch die Einstellung + „I´m Under Attack Mode“ („Ich werde angegriffen“-Modus) können + laut Cloudflare weitere Angriffe abgeschwächt werden, indem eine + JavaScript-Rechenaufgabe angezeigt wird, die man lösen muss, bevor + ein User auf eine Webseite zugreifen kann. Insgesamt wird dadurch + unsere Webseite deutlich leistungsstärker und weniger anfällig auf + Spam oder andere Angriffe. +

    +

    Welche Daten werden von Cloudflare gespeichert?

    +

    + Cloudflare leitet im Allgemeinen nur jene Daten weiter, die von + Webseitenbetreibern gesteuert werden. Die Inhalte werden also + nicht von Cloudflare bestimmt, sondern immer vom + Webseitenbetreiber selbst. Zudem erfasst Cloudflare unter + Umständen bestimmte Informationen zur Nutzung unserer Webseite und + verarbeitet Daten, die von uns versendet werden oder für die + Cloudflare entsprechende Anweisungen erhalten hat. In den meisten + Fällen erhält Cloudflare Daten wie IP-Adresse, Kontakt- und + Protokollinfos, Sicherheitsfingerabdrücke und Leistungsdaten für + Webseiten. Protokolldaten helfen Cloudflare beispielsweise dabei, + neue Bedrohungen zu erkennen. So kann Cloudflare einen hohen + Sicherheitsschutz für unsere Webseite gewährleisten. Cloudflare + verarbeitet diese Daten im Rahmen der Services unter Einhaltung + der geltenden Gesetze. Dazu zählt natürlich auch die + Datenschutzgrundverordnung (DSGVO). Aus Sicherheitsgründen + verwendet Cloudflare auch ein Cookie. Das Cookie (__cfduid) wird + eingesetzt, um einzelne User hinter einer gemeinsam genutzten + IP-Adresse zu identifizieren und Sicherheitseinstellungen für + jeden einzelnen User anzuwenden. Sehr nützlich wird dieses Cookie + beispielsweise, wenn Sie unsere Webseite aus einem Lokal benutzen, + in dem sich eine Reihe infizierter Computer befinden. Wenn aber + Ihr Computer vertrauenswürdig ist, können wir dies anhand des + Cookies erkennen. So können Sie, trotz infizierter PCs in Ihrem + Umfeld, ungehindert und sorgenfrei durch unsere Webseite surfen. + Wichtig zu wissen ist auch noch, dass dieses Cookie keine + personenbezogenen Daten speichert. Dieses Cookie ist für die + Cloudflare-Sicherheitsfunktionen unbedingt erforderlich und kann + nicht deaktiviert werden. +

    +

    + Wie kann ich meine Daten löschen bzw. die Datenspeicherung + verhindern? +

    +

    + Cloudflare bewahrt Daten-Protokolle nur solange wie nötig auf und + diese Daten werden auch in den meisten Fällen innerhalb von 24 + Stunden wieder gelöscht. Cloudflare speichert auch keine + personenbezogenen Daten, wie beispielsweise Ihre IP-Adresse. Es + gibt allerdings Informationen, die Cloudflare als Teil seiner + permanenten Protokolle auf unbestimmte Zeit speichert, um so die + Gesamtleistung von Cloudflare Resolver zu verbessern und etwaige + Sicherheitsrisiken zu erkennen. Alle Daten, die Cloudflare sammelt + (temporär oder permanent), werden von allen personenbezogenen + Daten bereinigt. Alle permanenten Protokolle werden zudem von + Cloudflare anonymisiert. Cloudflare geht in Ihrer + Datenschutzerklärung darauf ein, dass sie für die Inhalte, die sie + erhalten nicht verantwortlich sind. Wenn Sie beispielsweise bei + Cloudflare anfragen, ob sie Ihre Inhalte aktualisieren oder + löschen können, verweist Cloudflare grundsätzlich auf uns als + Webseitenbetreiber. Sie können auch die gesamte Erfassung und + Verarbeitung Ihrer Daten durch Cloudflare komplett unterbinden, + indem Sie die Ausführung von Script-Code in Ihrem Browser + deaktivieren oder einen Script-Blocker in Ihren Browser einbinden. + Cloudflare ist aktiver Teilnehmer beim EU-U.S. Privacy Shield + Framework, wodurch der korrekte und sichere Datentransfer + persönlicher Daten geregelt wird. +

    +
    + )} +
    + ); + } } export default MessagePage; diff --git a/src/components/pages/MessagePage/message.scss b/src/components/pages/MessagePage/message.scss index 5aea9e5..c17ee38 100644 --- a/src/components/pages/MessagePage/message.scss +++ b/src/components/pages/MessagePage/message.scss @@ -1,5 +1,5 @@ #message { - margin-top: 4rem !important; + margin-top: 4rem !important; } /** diff --git a/src/store/actions/contactActions.js b/src/store/actions/contactActions.js index 75a8c7f..7962c66 100644 --- a/src/store/actions/contactActions.js +++ b/src/store/actions/contactActions.js @@ -1,25 +1,25 @@ export const createContact = (newContact) => { - return (dispatch, getState, { getFirebase, getFirestore }) => { - const firestore = getFirestore(); + return (dispatch, getState, { getFirebase, getFirestore }) => { + const firestore = getFirestore(); - // Create contact post - firestore - .collection("contact") - .doc() - .set({ - ...newContact, - timestamp: new Date().getTime(), - assigned: null, + // Create contact post + firestore + .collection("contact") + .doc() + .set({ + ...newContact, + timestamp: new Date().getTime(), + assigned: null, processed: false, - }) - .then(() => { - dispatch({ type: "CONTACT_SUCCESS" }); - return; - }) - .catch((err) => { - dispatch({ type: "CONTACT_ERROR", err }); - }); - }; + }) + .then(() => { + dispatch({ type: "CONTACT_SUCCESS" }); + return; + }) + .catch((err) => { + dispatch({ type: "CONTACT_ERROR", err }); + }); + }; }; /** From e66d2055ae5f2915d961bc527916c7d2939eeed2 Mon Sep 17 00:00:00 2001 From: Aichnerc Date: Sat, 25 Apr 2020 23:01:38 +0200 Subject: [PATCH 20/22] Fix indentation The indentation has been changed on the index.js file. --- src/index.js | 50 +++++++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/src/index.js b/src/index.js index d76da6a..651e548 100644 --- a/src/index.js +++ b/src/index.js @@ -64,35 +64,35 @@ const userCollection = "partners"; const onlyLoadWhenReady = true; // Create Redux data-store and store it in store and apply thunk middleware const store = createStore( - rootReducer, - compose( - applyMiddleware( - thunk.withExtraArgument({ - getFirebase, // Firebase - getFirestore, // Cloud Firestore Database - }) - ), - reduxFirestore(fbInit), - reactReduxFirebase(fbInit, { - useFirestoreForProfile: syncUserToAuth, - userProfile: userCollection, - attachAuthIsReady: onlyLoadWhenReady, - }) - ) + rootReducer, + compose( + applyMiddleware( + thunk.withExtraArgument({ + getFirebase, // Firebase + getFirestore, // Cloud Firestore Database + }) + ), + reduxFirestore(fbInit), + reactReduxFirebase(fbInit, { + useFirestoreForProfile: syncUserToAuth, + userProfile: userCollection, + attachAuthIsReady: onlyLoadWhenReady, + }) + ) ); // Wait until firebase is initialized, then render the DOM store.firebaseAuthIsReady.then(() => { - // Render the DOM - ReactDOM.render( - - - - - , - document.getElementById("root") - ); - registerServiceWorker(); + // Render the DOM + ReactDOM.render( + + + + + , + document.getElementById("root") + ); + registerServiceWorker(); }); /** From d1632527ffb380a90289b2694cd2def187f1e6c2 Mon Sep 17 00:00:00 2001 From: Aichnerc Date: Sat, 25 Apr 2020 23:17:36 +0200 Subject: [PATCH 21/22] Improve code quality The code quality has been improved due to comments by @pinterid and @LucaAllmaier. --- .../organisms/sections/ContactForm/index.jsx | 413 +++++++++--------- src/store/actions/contactActions.js | 5 +- 2 files changed, 208 insertions(+), 210 deletions(-) diff --git a/src/components/organisms/sections/ContactForm/index.jsx b/src/components/organisms/sections/ContactForm/index.jsx index 167232c..9c6331c 100644 --- a/src/components/organisms/sections/ContactForm/index.jsx +++ b/src/components/organisms/sections/ContactForm/index.jsx @@ -7,14 +7,14 @@ import { Redirect } from "react-router-dom"; //> MDB // "Material Design for Bootstrap" is a great UI design framework import { - MDBRow, - MDBCol, - MDBBtn, - MDBContainer, - MDBCard, - MDBCardBody, - MDBAlert, - MDBIcon, + MDBRow, + MDBCol, + MDBBtn, + MDBContainer, + MDBCard, + MDBCardBody, + MDBAlert, + MDBIcon, } from "mdbreact"; //> Images @@ -33,211 +33,210 @@ import "./contactForm.scss"; // To be added class ContactForm extends React.Component { - state = { - fullname: "", - email: "", - phone: "", - note: "", - }; - - onTextChange = (e) => { - this.setState({ - [e.target.name]: e.target.value, - }); - }; - - onCheckChange = (e) => { - this.setState({ - [e.target.name]: e.target.checked, - }); - }; - - handleSubmit = (e) => { - e.preventDefault(); - - this.props.createContact({ - fullname: this.state.fullname, - email: this.state.email, - phone: this.state.phone, - note: this.state.note, - }); - }; - - render() { - console.log(this.props); - const { darkMode, contact } = this.props; - - // Check if sent and redirect - if (contact.contactSuccess) return ; - - return ( -
    - - - - - -

    Kontakt aufnehmen

    -

    - Du hast eine Projektidee und bist Dir nicht sicher um deren - Umsetzung? Du benötigst einen Web-Shop, Imagefilm, eine - Website oder eine individuelle Applikation? Zögere nicht und - kontaktiere uns. -

    -
    this.handleSubmit(e)}> -
    -
    - - - -
    - this.onTextChange(e)} - aria-describedby="basic-addon" - required - /> -
    -
    -
    - - - -
    - this.onTextChange(e)} - aria-describedby="basic-addon" - required - /> -
    -
    -
    - - - -
    - this.onTextChange(e)} - aria-describedby="basic-addon" - /> -
    -
    -
    - - - -
    - -
    - - - Absenden - -
    -
    -
    -
    - - - -

    Direkt Termin ausmachen

    -

    - Die Erstberatung ist immer kostenlos. -

    -

    - Jetzt einfach und online Termin festlegen. -

    - - - - Termin ausmachen - - -
    -
    - - oder - -
    -
    - - - - E-Mail senden - - - this.setState({ call: true })} - disabled={this.state.call} - > - - Anrufen - - {this.state.call && ( - - - Du kannst uns täglich von 9:00 bis 18:00 telefonisch - unter -
    - - +43 681 205 027 54 - {" "} - erreichen. -
    -
    - )} -
    -
    -
    -
    -
    -
    - ); - } + state = { + fullname: "", + email: "", + phone: "", + note: "", + }; + + onTextChange = (e) => { + this.setState({ + [e.target.name]: e.target.value, + }); + }; + + onCheckChange = (e) => { + this.setState({ + [e.target.name]: e.target.checked, + }); + }; + + handleSubmit = (e) => { + e.preventDefault(); + + this.props.createContact({ + fullname: this.state.fullname, + email: this.state.email, + phone: this.state.phone, + note: this.state.note, + }); + }; + + render() { + const { darkMode, contact } = this.props; + + // Check if sent and redirect + if (contact.contactSuccess) return ; + + return ( +
    + + + + + +

    Kontakt aufnehmen

    +

    + Du hast eine Projektidee und bist Dir nicht sicher bezüglich + deren Umsetzung? Du benötigst einen Web-Shop, Imagefilm, + eine Website oder eine individuelle Applikation? Zögere + nicht und kontaktiere uns. +

    +
    this.handleSubmit(e)}> +
    +
    + + + +
    + this.onTextChange(e)} + aria-describedby="basic-addon" + required + /> +
    +
    +
    + + + +
    + this.onTextChange(e)} + aria-describedby="basic-addon" + required + /> +
    +
    +
    + + + +
    + this.onTextChange(e)} + aria-describedby="basic-addon" + /> +
    +
    +
    + + + +
    + +
    + + + Absenden + +
    +
    +
    +
    + + + +

    Direkt Termin ausmachen

    +

    + Die Erstberatung ist immer kostenlos. +

    +

    + Jetzt einfach und online Termin festlegen. +

    + + + + Termin ausmachen + + +
    +
    + + oder + +
    +
    + + + + E-Mail senden + + + this.setState({ call: true })} + disabled={this.state.call} + > + + Anrufen + + {this.state.call && ( + + + Du kannst uns täglich von 9:00 bis 18:00 telefonisch + unter +
    + + +43 681 205 027 54 + {" "} + erreichen. +
    +
    + )} +
    +
    +
    +
    +
    +
    + ); + } } const mapStateToProps = (state) => { - return { - auth: state.firebase.auth, - contact: state.contact, - }; + return { + auth: state.firebase.auth, + contact: state.contact, + }; }; const mapDispatchToProps = (dispatch) => { - return { - createContact: (newContact) => dispatch(createContact(newContact)), - }; + return { + createContact: (newContact) => dispatch(createContact(newContact)), + }; }; export default connect(mapStateToProps, mapDispatchToProps)(ContactForm); diff --git a/src/store/actions/contactActions.js b/src/store/actions/contactActions.js index 7962c66..fd250d8 100644 --- a/src/store/actions/contactActions.js +++ b/src/store/actions/contactActions.js @@ -1,8 +1,8 @@ export const createContact = (newContact) => { - return (dispatch, getState, { getFirebase, getFirestore }) => { + return (dispatch, getState, { getFirestore }) => { const firestore = getFirestore(); - // Create contact post + // Create contact contact firestore .collection("contact") .doc() @@ -14,7 +14,6 @@ export const createContact = (newContact) => { }) .then(() => { dispatch({ type: "CONTACT_SUCCESS" }); - return; }) .catch((err) => { dispatch({ type: "CONTACT_ERROR", err }); From 9d104a83ed27632bdb712dba30232c45aa1cbe39 Mon Sep 17 00:00:00 2001 From: Aichnerc Date: Sun, 26 Apr 2020 01:08:50 +0200 Subject: [PATCH 22/22] Fix indentation The indentation of a file has been fixed. --- .../organisms/sections/ContactForm/index.jsx | 412 +++++++++--------- 1 file changed, 206 insertions(+), 206 deletions(-) diff --git a/src/components/organisms/sections/ContactForm/index.jsx b/src/components/organisms/sections/ContactForm/index.jsx index 9c6331c..fbdd166 100644 --- a/src/components/organisms/sections/ContactForm/index.jsx +++ b/src/components/organisms/sections/ContactForm/index.jsx @@ -7,14 +7,14 @@ import { Redirect } from "react-router-dom"; //> MDB // "Material Design for Bootstrap" is a great UI design framework import { - MDBRow, - MDBCol, - MDBBtn, - MDBContainer, - MDBCard, - MDBCardBody, - MDBAlert, - MDBIcon, + MDBRow, + MDBCol, + MDBBtn, + MDBContainer, + MDBCard, + MDBCardBody, + MDBAlert, + MDBIcon, } from "mdbreact"; //> Images @@ -33,210 +33,210 @@ import "./contactForm.scss"; // To be added class ContactForm extends React.Component { - state = { - fullname: "", - email: "", - phone: "", - note: "", - }; - - onTextChange = (e) => { - this.setState({ - [e.target.name]: e.target.value, - }); - }; - - onCheckChange = (e) => { - this.setState({ - [e.target.name]: e.target.checked, - }); - }; - - handleSubmit = (e) => { - e.preventDefault(); - - this.props.createContact({ - fullname: this.state.fullname, - email: this.state.email, - phone: this.state.phone, - note: this.state.note, - }); - }; - - render() { - const { darkMode, contact } = this.props; - - // Check if sent and redirect - if (contact.contactSuccess) return ; - - return ( -
    - - - - - -

    Kontakt aufnehmen

    -

    - Du hast eine Projektidee und bist Dir nicht sicher bezüglich - deren Umsetzung? Du benötigst einen Web-Shop, Imagefilm, - eine Website oder eine individuelle Applikation? Zögere - nicht und kontaktiere uns. -

    -
    this.handleSubmit(e)}> -
    -
    - - - -
    - this.onTextChange(e)} - aria-describedby="basic-addon" - required - /> -
    -
    -
    - - - -
    - this.onTextChange(e)} - aria-describedby="basic-addon" - required - /> -
    -
    -
    - - - -
    - this.onTextChange(e)} - aria-describedby="basic-addon" - /> -
    -
    -
    - - - -
    - -
    - - - Absenden - -
    -
    -
    -
    - - - -

    Direkt Termin ausmachen

    -

    - Die Erstberatung ist immer kostenlos. -

    -

    - Jetzt einfach und online Termin festlegen. -

    - - - - Termin ausmachen - - -
    -
    - - oder - -
    -
    - - - - E-Mail senden - - - this.setState({ call: true })} - disabled={this.state.call} - > - - Anrufen - - {this.state.call && ( - - - Du kannst uns täglich von 9:00 bis 18:00 telefonisch - unter -
    - - +43 681 205 027 54 - {" "} - erreichen. -
    -
    - )} -
    -
    -
    -
    -
    -
    - ); - } + state = { + fullname: "", + email: "", + phone: "", + note: "", + }; + + onTextChange = (e) => { + this.setState({ + [e.target.name]: e.target.value, + }); + }; + + onCheckChange = (e) => { + this.setState({ + [e.target.name]: e.target.checked, + }); + }; + + handleSubmit = (e) => { + e.preventDefault(); + + this.props.createContact({ + fullname: this.state.fullname, + email: this.state.email, + phone: this.state.phone, + note: this.state.note, + }); + }; + + render() { + const { darkMode, contact } = this.props; + + // Check if sent and redirect + if (contact.contactSuccess) return ; + + return ( +
    + + + + + +

    Kontakt aufnehmen

    +

    + Du hast eine Projektidee und bist Dir nicht sicher bezüglich + deren Umsetzung? Du benötigst einen Web-Shop, Imagefilm, + eine Website oder eine individuelle Applikation? Zögere + nicht und kontaktiere uns. +

    +
    this.handleSubmit(e)}> +
    +
    + + + +
    + this.onTextChange(e)} + aria-describedby="basic-addon" + required + /> +
    +
    +
    + + + +
    + this.onTextChange(e)} + aria-describedby="basic-addon" + required + /> +
    +
    +
    + + + +
    + this.onTextChange(e)} + aria-describedby="basic-addon" + /> +
    +
    +
    + + + +
    + +
    + + + Absenden + +
    +
    +
    +
    + + + +

    Direkt Termin ausmachen

    +

    + Die Erstberatung ist immer kostenlos. +

    +

    + Jetzt einfach und online Termin festlegen. +

    + + + + Termin ausmachen + + +
    +
    + + oder + +
    +
    + + + + E-Mail senden + + + this.setState({ call: true })} + disabled={this.state.call} + > + + Anrufen + + {this.state.call && ( + + + Du kannst uns täglich von 9:00 bis 18:00 telefonisch + unter +
    + + +43 681 205 027 54 + {" "} + erreichen. +
    +
    + )} +
    +
    +
    +
    +
    +
    + ); + } } const mapStateToProps = (state) => { - return { - auth: state.firebase.auth, - contact: state.contact, - }; + return { + auth: state.firebase.auth, + contact: state.contact, + }; }; const mapDispatchToProps = (dispatch) => { - return { - createContact: (newContact) => dispatch(createContact(newContact)), - }; + return { + createContact: (newContact) => dispatch(createContact(newContact)), + }; }; export default connect(mapStateToProps, mapDispatchToProps)(ContactForm);