Compare commits

...

8 Commits

8 changed files with 152 additions and 48 deletions

BIN
.DS_Store vendored

Binary file not shown.

View File

@ -124,13 +124,13 @@
<p id="gesamtkosten"><strong>Die Gesamtkosten (inkl. MwSt.)</br>belaufen sich auf: 5,30€</strong> <p id="gesamtkosten"><strong>Die Gesamtkosten (inkl. MwSt.)</br>belaufen sich auf: 5,30€</strong>
<p> <p>
<input type="checkbox" class="checkbox_ausrichtung"> <input id="barzahlung_box" type="checkbox" class="checkbox_ausrichtung">
<label for="checkbox_barzahlung" class="checkboxen">Ich akzeptiere die Barzahlung und habe <label for="checkbox_barzahlung" class="checkboxen">Ich akzeptiere die Barzahlung und habe
den</br>Rechnungsbetrag bei den</br>Rechnungsbetrag bei
Lieferung verfügbar.</label> Lieferung verfügbar.</label>
</p> </p>
<p> <p>
<input type="checkbox" class="checkbox_ausrichtung"> <input id="datenschutz_box" type="checkbox" class="checkbox_ausrichtung">
<label for="checkbox_datenschutzerklärung" class="checkboxen">Ich akzeptiere die Bestimmungen der</label> <label for="checkbox_datenschutzerklärung" class="checkboxen">Ich akzeptiere die Bestimmungen der</label>
<a href="datenschutz.html" class="checkboxen">Datenschutzerklärung.</a> <a href="datenschutz.html" class="checkboxen">Datenschutzerklärung.</a>
</p> </p>

View File

@ -146,6 +146,11 @@
font-size: 1em; font-size: 1em;
text-align: center; text-align: center;
} }
.content h3{
color: black;
margin-bottom: 0.2em;
}
.content a { .content a {
margin-left: 0em; margin-left: 0em;

View File

@ -81,7 +81,7 @@
.navbar-mobile { .navbar-mobile {
display:grid; display:grid;
grid-template-columns: 60px auto auto; grid-template-columns: 60px auto auto;
grid-template-rows: 60px; grid-template-rows: 65px;
} }
.navbar-mobile .nav-container a { .navbar-mobile .nav-container a {
@ -160,6 +160,8 @@
padding-left: 50px; padding-left: 50px;
transition: transform 0.5s ease-in-out; transition: transform 0.5s ease-in-out;
text-align: left; text-align: left;
position: relative;
z-index: 9999;
} }
.nav-container input[type="checkbox"]:checked ~ .menu-items { .nav-container input[type="checkbox"]:checked ~ .menu-items {
@ -207,7 +209,7 @@
margin-left: 2%; margin-left: 2%;
font-size:1.0em; font-size:1.0em;
margin-top:0.5em; margin-top:0.5em;
} }
.header-mobile-text p { .header-mobile-text p {
@ -233,7 +235,7 @@
} }
.content :not(h1, strong, a) { .content :not(h1, strong, a) {
margin-left: 3.5em; margin-left: 0em;
color: #606060; color: #606060;
} }
@ -248,6 +250,11 @@
font-size: 1em; font-size: 1em;
text-align: center; text-align: center;
} }
.content h3{
color: black;
margin-bottom: 0.2em;
}
.content a { .content a {
margin-left: 0em; margin-left: 0em;
@ -300,7 +307,7 @@
#wohnort, #wohnort,
#email { #email {
border: none; border: none;
width: 600px; width: auto;
} }
.bestellung_tabelle { .bestellung_tabelle {
@ -312,6 +319,7 @@
margin-left: 50px; margin-left: 50px;
border: thin solid #606060; border: thin solid #606060;
border-collapse: collapse; border-collapse: collapse;
width: 80%;
} }
.bestellung_tabelle th { .bestellung_tabelle th {
@ -320,7 +328,7 @@
.bestellung_tabelle td { .bestellung_tabelle td {
border: thin solid #606060; border: thin solid #606060;
width: 600px; width: auto;
} }
.bestellung_tabelle tr { .bestellung_tabelle tr {
@ -414,32 +422,42 @@
position: relative; position: relative;
} }
.produkte_warenkorb { .content .produkte_warenkorb {
display: grid; display: grid;
grid-template-columns: 1fr 1fr; grid-template-columns: 1fr 1fr;
grid-template-rows: auto 1fr; grid-template-rows: auto 1fr;
border: thin solid black; border: thin solid black;
margin-left: -55px; margin-left: 4em;
margin-top: 20px; margin-top: 20px;
align-items: center; align-items: center;
justify-items: left; justify-items: left;
position: relative;
} }
.content .produkte_warenkorb .bild_mobil img { .content .produkte_warenkorb .bild_mobil img {
margin-left: -50px;
align-items: center; align-items: center;
} }
.content .produkte_details { .content .produkte_details {
display: block; display: flex;
margin-left: 0; flex-direction: column;
font-size: 0.8em; font-size: 0.8em;
justify-content: left; margin-top: -25px;
justify-content: space-between;
width: 95%;
}
.content .produkte_details p {
display: inline-block;
}
.content .produkte_warenkorb .produkte_details .eingabefeld_entfernen {
align-self: flex-end;
margin-top: -30px;
} }
.content .produkte_details p{
margin-left: 0;
}
.button_mit_menue { .button_mit_menue {
display: flex; display: flex;
@ -447,7 +465,7 @@
} }
.button_mit_menue p{ .button_mit_menue p{
margin-left: -45px; margin-left: 10px;
} }
#menue1, #menue1,
@ -458,8 +476,10 @@
#menue6 { #menue6 {
width: 35px; width: 35px;
height: 25px; height: 25px;
margin-left: 10px; margin-left: 10px;
} }
.button_entfernen { .button_entfernen {
background-color: #ebebeb; background-color: #ebebeb;
@ -533,8 +553,8 @@
position: relative; position: relative;
bottom: 0; bottom: 0;
width: 400px; width: 400px;
padding-left: 50px; padding-left: 30px;
margin-top: 22.5px; margin-top: 120px;
margin-left: auto; margin-left: auto;
margin-bottom: 22.5px; margin-bottom: 22.5px;
display: grid; display: grid;
@ -593,11 +613,20 @@
cursor: pointer; cursor: pointer;
font-weight: normal; font-weight: normal;
} }
.content .mobile_ansicht{ .content .mobile_ansicht{
position: relative;
z-index: 0;
margin-left: -55px; margin-left: -55px;
} }
#fehlerbox{
text-align: center;
color: red;
display: none;
}
.desktop_ansicht{ .desktop_ansicht{
display: none; display: none;
} }

View File

@ -80,13 +80,13 @@
</p> </p>
<p>Stand: 6. April 2023</p> <p>Stand: 6. April 2023</p>
<h3>Verantwortlicher</h3> <h3>Verantwortlicher</h3>
<ul> <p>
WEB A4 -Team</br> WEB A4 -Team</br>
Paul-Wittsack-Straße 10</br> Paul-Wittsack-Straße 10</br>
68163 Mannheim</br> 68163 Mannheim</br>
E-Mail-Adresse:</br> E-Mail-Adresse:</br>
info@secondharvest.com</br> info@secondharvest.com</br>
</ul> </p>
<h3>Übersicht der Verarbeitungen</h3> <h3>Übersicht der Verarbeitungen</h3>
<p>Die nachfolgende Übersicht fasst die Arten der verarbeiteten Daten und die <p>Die nachfolgende Übersicht fasst die Arten der verarbeiteten Daten und die
Zwecke ihrer Verarbeitung zusammen und verweist auf die betroffenen Personen. Zwecke ihrer Verarbeitung zusammen und verweist auf die betroffenen Personen.

View File

@ -15,22 +15,28 @@ function checkform(event) {
fehlerbox.innerHTML = 'Fehler: <br>'; fehlerbox.innerHTML = 'Fehler: <br>';
if (/^[a-zA-Z]{2,}$/.test(anrede) === false) fehlerbox.innerHTML += 'Anrede: mindestens zwei Buchstaben <br>'; if(!anrede || /^[A-Z][a-z]{1,}$/.test(anrede) === false) fehlerbox.innerHTML += 'Bitte teilen Sie uns Ihre Anrede mit <br>';
if (/^[a-zA-Z]{2,}$/.test(vorname) === false) fehlerbox.innerHTML += 'Vorname: mindestens zwei Buchstaben <br>'; if(!vorname || /^[A-ZÄÜÖ][a-zäüöß]{1,}(?:-[A-ZÄÜÖ][a-zäüöß]+)?$/.test(vorname) === false) fehlerbox.innerHTML += 'Vorname: mindestens zwei Buchstaben <br>';
if (/^[a-zA-Z]{2,}$/.test(name) === false) fehlerbox.innerHTML += 'Name: mindestens zwei Buchstaben <br>'; if(!name || /^[A-ZÄÜÖ][a-zäüöß]{1,}(?:-[A-ZÄÜÖ][a-zäüöß]+)?(?:\s[a-zA-ZÄÜÖäüöß]+)?$/.test(name) === false) fehlerbox.innerHTML += 'Name: mindestens zwei Buchstaben <br>';
if (/[a-zA-Z0-9]{2,}/.test(straße) === false) fehlerbox.innerHTML += 'Straße: mindestens zwei Zeichen <br>'; if(!straße || /^[A-ZÄÖÜ][a-zäöüß]+(?:-[A-ZÄÖÜ][a-zäöüß]+)*$/.test(straße) === false) fehlerbox.innerHTML += 'Straße: mindestens zwei Zeichen <br>';
if (/[0-9]{1,}/.test(hausnummer) === false) fehlerbox.innerHTML += 'Hausnummer: mindestens eine Zahl <br>'; if(!hausnummer || /[0-9]{1,}/.test(hausnummer) === false) fehlerbox.innerHTML += 'Hausnummer: mindestens eine Zahl <br>';
if (/[0-9]{5}/.test(plz) === false) fehlerbox.innerHTML += 'Postleitzahl: gültige Postleitzahl eingeben, z.B 66265 (fünf Zahlen) <br>'; if(!plz || Number(plz) < 01001 || /^[0-9]{5}$/.test(plz) === false) fehlerbox.innerHTML += 'Postleitzahl: gültige Postleitzahl fünf Zahlen bspw. 66265 <br>';
if (/^[a-zA-ZÄäÜüÖö]{2,}$/.test(wohnort) === false) fehlerbox.innerHTML += 'Wohnort: mindestens zwei Buchstaben <br>'; if(!wohnort || /^[A-Z][a-z]*(?:[- ][A-Z][a-z]*)*$/.test(wohnort) === false) fehlerbox.innerHTML += 'Wohnort: mindestens zwei Buchstaben <br>';
if (/^([a-zA-Z0-9]+([-_\.]?[a-zA-Z0-9])+@[a-zA-Z0-9]+([-_\.]?[a-zA-Z0-9])+\.[a-z]{2,4}){0,}$/.test(email) === false) fehlerbox.innerHTML += 'EMail: bitte nach dem Muster "email@beispiel.de" <br>'; if(!email || /^([a-zA-Z0-9]+([-_\.]?[a-zA-Z0-9])+@[a-zA-Z0-9]+([-_\.]?[a-zA-Z0-9])+\.[a-z]{2,4}){0,}$/.test(email) === false) fehlerbox.innerHTML += 'EMail: bitte nach dem Muster "email@beispiel.de" <br>';
if(barzahlbox.checked === false) fehlerbox.innerHTML += 'Bitte akzeptieren Sie die Barzahlung <br>';
if(datenschutzbox.checked === false) fehlerbox.innerHTML += 'Bitte akzeptieren Sie die Datenschutzerklärung <br>';
if(fehlerbox.innerHTML.length > 12) { if(fehlerbox.innerHTML.length > 12) {
event.preventDefault(); event.preventDefault();
let fehlerboxstyle = document.getElementById('fehlerbox');
fehlerbox.style = 'display: block;' fehlerbox.style = 'display: block;'
} }
} }
const fehlerbox = document.getElementById('fehlerbox'); const fehlerbox = document.getElementById('fehlerbox');
const bestellbutton = document.getElementById('bestellbutton'); const bestellbutton = document.getElementById('bestellbutton');
const barzahlbox = document.getElementById('barzahlung_box');
const datenschutzbox = document.getElementById('datenschutz_box');
bestellbutton.addEventListener('click', checkform, false); bestellbutton.addEventListener('click', checkform, false);

View File

@ -62,6 +62,7 @@ window.addEventListener('DOMContentLoaded', function () {
berechnePreise(); berechnePreise();
} }
function berechnePreise() { function berechnePreise() {
for (let i = 0; i < standardWerte.length; i++) { for (let i = 0; i < standardWerte.length; i++) {
let preisID = 'gesamtbetrag' + (i + 1); let preisID = 'gesamtbetrag' + (i + 1);
@ -107,12 +108,68 @@ window.addEventListener('DOMContentLoaded', function () {
else if ((/^[0-9]{1,}$/.test(feld1) === false) || (/^[0-9]{1,}$/.test(feld2) === false) || (/^[0-9]{1,}$/.test(feld3) === false) else if ((/^[0-9]{1,}$/.test(feld1) === false) || (/^[0-9]{1,}$/.test(feld2) === false) || (/^[0-9]{1,}$/.test(feld3) === false)
|| (/^[0-9]{1,}$/.test(feld4) === false) || (/^[0-9]{1,}$/.test(feld5) === false) || (/^[0-9]{1,}$/.test(feld6) === false)) { || (/^[0-9]{1,}$/.test(feld4) === false) || (/^[0-9]{1,}$/.test(feld5) === false) || (/^[0-9]{1,}$/.test(feld6) === false)) {
event.preventDefault(); event.preventDefault();
zeigeHinweisfenster("Es stehten keine (gültigen) Nummern in den Feldern. [gültig = positive Zahlen 0-9]") zeigeHinweisfenster("Es stehen keine (gültigen) Zahlen in den Feldern. [gültig = positive Zahlen 0-9]");
} }
else { else {
window.location.href = event.target.href; window.location.href = event.target.href;
// zeigeHinweisfenster("Feld ist nicht leer"); // zeigeHinweisfenster("Feld ist nicht leer");
} }
} }
});
var menue1 = document.getElementById('menue1');
var menue2 = document.getElementById('menue2');
var menue3 = document.getElementById('menue3');
var gesamtbetrag1 = document.getElementById('gesamtbetrag1');
var gesamtbetrag2 = document.getElementById('gesamtbetrag2');
var gesamtbetrag3 = document.getElementById('gesamtbetrag3');
var gesamtpreis = document.getElementById('gesamtpreis');
// Funktion zum Aktualisieren des Gesamtbetrags für Produkt 1
function updateGesamtbetrag1() {
var menueValue = menue1.value;
var kosten = 0.95;
var gesamtbetrag = kosten * menueValue;
gesamtbetrag1.innerHTML = "Betrag Gesamt (inkl. MwSt.): " + gesamtbetrag.toFixed(2) + "€";
updateGesamtpreis();
}
// Funktion zum Aktualisieren des Gesamtbetrags für Produkt 2
function updateGesamtbetrag2() {
var menueValue = menue2.value;
var kosten = 2;
var gesamtbetrag = kosten * menueValue;
gesamtbetrag2.innerHTML = "Betrag Gesamt (inkl. MwSt.): " + gesamtbetrag.toFixed(2) + "€";
updateGesamtpreis();
}
// Funktion zum Aktualisieren des Gesamtbetrags für Produkt 3
function updateGesamtbetrag3() {
var menueValue = menue3.value;
var kosten = 1.1;
var gesamtbetrag = kosten * menueValue;
gesamtbetrag3.innerHTML = "Betrag Gesamt (inkl. MwSt.): " + gesamtbetrag.toFixed(2) + "€";
updateGesamtpreis();
}
// Funktion zum Aktualisieren des Gesamtpreises
function updateGesamtpreis() {
var menueValue1 = menue1.value;
var menueValue2 = menue2.value;
var menueValue3 = menue3.value;
var kosten1 = 0.95;
var kosten2 = 2;
var kosten3 = 1.1;
var gesamtpreisValue = (kosten1 * menueValue1) + (kosten2 * menueValue2) + (kosten3 * menueValue3) + 2.9;
gesamtpreis.innerHTML = gesamtpreisValue.toFixed(2) + "€";
}
// Event-Listener für Änderungen der Anzahl
menue1.addEventListener('input', updateGesamtbetrag1);
menue2.addEventListener('input', updateGesamtbetrag2);
menue3.addEventListener('input', updateGesamtbetrag3);
// Initialisierung des Gesamtbetrags und Gesamtpreises
updateGesamtbetrag1();
updateGesamtbetrag2();
updateGesamtbetrag3();
});

View File

@ -67,6 +67,7 @@
<div class="content"> <div class="content">
<h1>Warenkorb</h1> <h1>Warenkorb</h1>
<div id="notification"></div> <div id="notification"></div>
<div class="desktop_ansicht"> <div class="desktop_ansicht">
<div class="produkte_warenkorb"> <div class="produkte_warenkorb">
@ -79,7 +80,7 @@
<div class="button_mit_menue"> <div class="button_mit_menue">
<p><a class="button_entfernen" href="#" id="button1">Entfernen</a></p> <p><a class="button_entfernen" href="#" id="button1">Entfernen</a></p>
<input type="text" id="menue1" value="10"> <input type="text" id="menue1" value="10">
</div> </div>
<p class="gesamtbetrag1" id="gesamtbetrag1"></p> <p class="gesamtbetrag1" id="gesamtbetrag1"></p>
</div> </div>
@ -94,7 +95,7 @@
<div class="button_mit_menue"> <div class="button_mit_menue">
<p><a class="button_entfernen" href="#" id="button2">Entfernen</a></p> <p><a class="button_entfernen" href="#" id="button2">Entfernen</a></p>
<input type="text" id="menue2" value="10"> <input type="text" id="menue2" value="10">
</div> </div>
<p class="gesamtbetrag2" id="gesamtbetrag2"></p> <p class="gesamtbetrag2" id="gesamtbetrag2"></p>
</div> </div>
@ -109,7 +110,7 @@
<div class="button_mit_menue"> <div class="button_mit_menue">
<p><a class="button_entfernen" href="#" id="button3">Entfernen</a></p> <p><a class="button_entfernen" href="#" id="button3">Entfernen</a></p>
<input type="text" id="menue3" value="10"> <input type="text" id="menue3" value="10">
</div> </div>
<p class="gesamtbetrag3" id="gesamtbetrag3"></p> <p class="gesamtbetrag3" id="gesamtbetrag3"></p>
</div> </div>
@ -127,7 +128,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="mobile_ansicht"> <div class="mobile_ansicht">
<div class="produkte_warenkorb"> <div class="produkte_warenkorb">
<div class="bild_mobil"> <div class="bild_mobil">
@ -135,47 +136,52 @@
</div> </div>
<div class="produkte_details"> <div class="produkte_details">
<p><strong>Karotten 1kg</br>Kosten: 0,95€</strong></p> <p><strong>Karotten 1kg</br>Kosten: 0,95€</strong></p>
<span class="eingabefeld_entfernen">
<input type="text" id="menue4" value="10">
</span>
</br> </br>
<p>Auf Lager: 250</p> <p>Auf Lager: 250</p>
</div> </div>
<div class="button_mit_menue"> <div class="button_mit_menue">
<p><a class="button_entfernen" href="#" id="button4">Entfernen</a></p> <p><a class="button_entfernen" href="#" id="button4">Entfernen</a></p>
<input type="text" id="menue4" value="10">
</div> </div>
<p class="gesamtbetrag4" id="gesamtbetrag4"></p> <p class="gesamtbetrag4" id="gesamtbetrag4"></p>
</div> </div>
<div class="produkte_warenkorb"> <div class="produkte_warenkorb">
<div class="bild_mobil"> <div class="bild_mobil">
<img src="pictures/aepfel_ohne_preis.png.avif" width="100" height="100" alt="aepfel"> <img src="pictures/aepfel_ohne_preis.png.avif" width="100" height="100" alt="aepfel">
</div> </div>
<div class="produkte_details"> <div class="produkte_details">
<p><strong>Äpfel 1kg</br>Kosten: 2€</strong></p> <p><strong>Äpfel 1kg</br>Kosten: 2€</strong></p>
<span class="eingabefeld_entfernen"><input type="text"
id="menue5" value="10"></span>
</br> </br>
<p>Auf Lager: 500</p> <p>Auf Lager: 500</p>
</div> </div>
<div class="button_mit_menue"> <div class="button_mit_menue">
<p><a class="button_entfernen" href="#" id="button5">Entfernen</a></p> <p><a class="button_entfernen" href="#" id="button5">Entfernen</a></p>
<input type="text" id="menue5" value="10">
</div> </div>
<p class="gesamtbetrag5" id="gesamtbetrag5"></p> <p class="gesamtbetrag5" id="gesamtbetrag5"></p>
</div> </div>
<div class="produkte_warenkorb"> <div class="produkte_warenkorb">
<div class="bild_mobil"> <div class="bild_mobil">
<img src="pictures/sellerie_ohne_preis.webp" width="100" height="100" alt="sellerie"> <img src="pictures/sellerie_ohne_preis.webp" width="100" height="100" alt="sellerie">
</div> </div>
<div class="produkte_details"> <div class="produkte_details">
<p><strong>Sellerie 1 Stück</br>Kosten: 1,10€</strong></p> <p><strong>Sellerie 1 Stück</br>Kosten: 1,10€</strong></p>
<span class="eingabefeld_entfernen"> <input type="text" id="menue6" value="10"></span>
</br> </br>
<p>Auf Lager: 1000</p> <p>Auf Lager: 1000</p>
</div> </div>
<div class="button_mit_menue"> <div class="button_mit_menue">
<p><a class="button_entfernen" href="#" id="button6">Entfernen</a></p> <p><a class="button_entfernen" href="#" id="button6">Entfernen</a></p>
<input type="text" id="menue6" value="10">
</div> </div>
<p class="gesamtbetrag6" id="gesamtbetrag6"></p> <p class="gesamtbetrag6" id="gesamtbetrag6"></p>
</div> </div>
@ -187,7 +193,8 @@
<p class="gesamtpreis" id="gesamtpreis"></p> <p class="gesamtpreis" id="gesamtpreis"></p>
</div> </div>
<div> <div>
<a class="button_bestellung_abschließen" id="bestellbutton_mobil" href="bestellformular.html">Kostenpflichtig <a class="button_bestellung_abschließen" id="bestellbutton_mobil"
href="bestellformular.html">Kostenpflichtig
bestellen</a> bestellen</a>
</div> </div>
</div> </div>