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>
<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
den</br>Rechnungsbetrag bei
Lieferung verfügbar.</label>
</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>
<a href="datenschutz.html" class="checkboxen">Datenschutzerklärung.</a>
</p>

View File

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

View File

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

View File

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

View File

@ -15,22 +15,28 @@ function checkform(event) {
fehlerbox.innerHTML = 'Fehler: <br>';
if (/^[a-zA-Z]{2,}$/.test(anrede) === false) fehlerbox.innerHTML += 'Anrede: mindestens zwei Buchstaben <br>';
if (/^[a-zA-Z]{2,}$/.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 (/[a-zA-Z0-9]{2,}/.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 (/[0-9]{5}/.test(plz) === false) fehlerbox.innerHTML += 'Postleitzahl: gültige Postleitzahl eingeben, z.B 66265 (fünf Zahlen) <br>';
if (/^[a-zA-ZÄäÜüÖö]{2,}$/.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(!anrede || /^[A-Z][a-z]{1,}$/.test(anrede) === false) fehlerbox.innerHTML += 'Bitte teilen Sie uns Ihre Anrede mit <br>';
if(!vorname || /^[A-ZÄÜÖ][a-zäüöß]{1,}(?:-[A-ZÄÜÖ][a-zäüöß]+)?$/.test(vorname) === false) fehlerbox.innerHTML += 'Vorname: 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(!straße || /^[A-ZÄÖÜ][a-zäöüß]+(?:-[A-ZÄÖÜ][a-zäöüß]+)*$/.test(straße) === false) fehlerbox.innerHTML += 'Straße: mindestens zwei Zeichen <br>';
if(!hausnummer || /[0-9]{1,}/.test(hausnummer) === false) fehlerbox.innerHTML += 'Hausnummer: mindestens eine Zahl <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(!wohnort || /^[A-Z][a-z]*(?:[- ][A-Z][a-z]*)*$/.test(wohnort) === false) fehlerbox.innerHTML += 'Wohnort: mindestens zwei Buchstaben <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) {
event.preventDefault();
let fehlerboxstyle = document.getElementById('fehlerbox');
fehlerbox.style = 'display: block;'
}
}
const fehlerbox = document.getElementById('fehlerbox');
const bestellbutton = document.getElementById('bestellbutton');
const barzahlbox = document.getElementById('barzahlung_box');
const datenschutzbox = document.getElementById('datenschutz_box');
bestellbutton.addEventListener('click', checkform, false);

View File

@ -62,6 +62,7 @@ window.addEventListener('DOMContentLoaded', function () {
berechnePreise();
}
function berechnePreise() {
for (let i = 0; i < standardWerte.length; i++) {
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)
|| (/^[0-9]{1,}$/.test(feld4) === false) || (/^[0-9]{1,}$/.test(feld5) === false) || (/^[0-9]{1,}$/.test(feld6) === false)) {
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 {
window.location.href = event.target.href;
// 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">
<h1>Warenkorb</h1>
<div id="notification"></div>
<div class="desktop_ansicht">
<div class="produkte_warenkorb">
@ -79,7 +80,7 @@
<div class="button_mit_menue">
<p><a class="button_entfernen" href="#" id="button1">Entfernen</a></p>
<input type="text" id="menue1" value="10">
</div>
<p class="gesamtbetrag1" id="gesamtbetrag1"></p>
</div>
@ -94,7 +95,7 @@
<div class="button_mit_menue">
<p><a class="button_entfernen" href="#" id="button2">Entfernen</a></p>
<input type="text" id="menue2" value="10">
</div>
<p class="gesamtbetrag2" id="gesamtbetrag2"></p>
</div>
@ -109,7 +110,7 @@
<div class="button_mit_menue">
<p><a class="button_entfernen" href="#" id="button3">Entfernen</a></p>
<input type="text" id="menue3" value="10">
</div>
<p class="gesamtbetrag3" id="gesamtbetrag3"></p>
</div>
@ -127,7 +128,7 @@
</div>
</div>
</div>
<div class="mobile_ansicht">
<div class="produkte_warenkorb">
<div class="bild_mobil">
@ -135,47 +136,52 @@
</div>
<div class="produkte_details">
<p><strong>Karotten 1kg</br>Kosten: 0,95€</strong></p>
<span class="eingabefeld_entfernen">
<input type="text" id="menue4" value="10">
</span>
</br>
<p>Auf Lager: 250</p>
</div>
<div class="button_mit_menue">
<p><a class="button_entfernen" href="#" id="button4">Entfernen</a></p>
<input type="text" id="menue4" value="10">
</div>
<p class="gesamtbetrag4" id="gesamtbetrag4"></p>
</div>
<div class="produkte_warenkorb">
<div class="bild_mobil">
<img src="pictures/aepfel_ohne_preis.png.avif" width="100" height="100" alt="aepfel">
</div>
<div class="produkte_details">
<p><strong>Äpfel 1kg</br>Kosten: 2€</strong></p>
<span class="eingabefeld_entfernen"><input type="text"
id="menue5" value="10"></span>
</br>
<p>Auf Lager: 500</p>
</div>
<div class="button_mit_menue">
<p><a class="button_entfernen" href="#" id="button5">Entfernen</a></p>
<input type="text" id="menue5" value="10">
</div>
<p class="gesamtbetrag5" id="gesamtbetrag5"></p>
</div>
<div class="produkte_warenkorb">
<div class="bild_mobil">
<img src="pictures/sellerie_ohne_preis.webp" width="100" height="100" alt="sellerie">
</div>
<div class="produkte_details">
<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>
<p>Auf Lager: 1000</p>
</div>
<div class="button_mit_menue">
<p><a class="button_entfernen" href="#" id="button6">Entfernen</a></p>
<input type="text" id="menue6" value="10">
</div>
<p class="gesamtbetrag6" id="gesamtbetrag6"></p>
</div>
@ -187,7 +193,8 @@
<p class="gesamtpreis" id="gesamtpreis"></p>
</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>
</div>
</div>