Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
49d1c59242 | ||
|
|
88df5f4d7d | ||
|
|
58c4ea0799 | ||
|
|
5fbfe528fe | ||
|
|
c36218287e | ||
|
|
f1c122265b | ||
|
|
04e19013c4 | ||
|
|
e8d11744f0 | ||
|
|
f78a713943 | ||
|
|
f805380a73 | ||
|
|
b168feafbb | ||
|
|
dfc4a1d811 | ||
|
|
b19ba74cb9 | ||
|
|
8bfb212f73 | ||
|
|
754fe893d1 | ||
|
|
c43063dc32 | ||
|
|
85750602f3 |
@@ -0,0 +1,15 @@
|
||||
Uporaba umetne inteligence pri izdelavi spletne strani
|
||||
|
||||
Pri izdelavi spletne strani Za prste obliznit sem umetno inteligenco uporabljala predvsem kot pomoč pri razumevanju kode, odpravljanju napak in iskanju ustreznih rešitev za posamezne funkcionalnosti spletne strani.
|
||||
|
||||
Najpogosteje sem jo uporabljala pri odpravljanju napak, ki jih je zaznal HTML validator. Sporočila o napakah sem posredovala umetni inteligenci, ki mi je pojasnila njihov vzrok in predlagala ustrezne popravke. Tako sem na primer odpravila napake pri strukturi HTML tabel, nepravilno zapisanih komentarjih in uporabi posameznih elementov.
|
||||
|
||||
Umetno inteligenco sem uporabljala tudi za razlago HTML in CSS elementov ter lastnosti, ki sem jih našla v dokumentaciji W3Schools. Zanimala me je predvsem njihova funkcija in vpliv na prikaz spletne strani. Med drugim sem pridobila dodatne razlage lastnosti display: flex, display: grid, justify-content, align-items, position: sticky, z-index, box-sizing in grid-template-columns. Pomagala mi je tudi pri razumevanju relativnih poti do datotek in prilagajanju elementov različnim velikostim zaslonov.
|
||||
|
||||
Pri programiranju v JavaScriptu sem umetno inteligenco uporabljala predvsem za razlago delovanja posameznih delov kode in boljše razumevanje njihove uporabe. Pri izdelavi obrazca za rezervacijo sem si z njeno pomočjo razjasnila, kako delujejo preverjanje vnesenih podatkov, prikazovanje sporočil o napakah, oblikovanje povzetka rezervacije in ponastavitev obrazca. Prav tako mi je pomagala razumeti delovanje kalkulatorja za samodejno preračunavanje količin sestavin glede na izbrano število porcij. Pri tem sem pridobila dodatna pojasnila o uporabi funkcij, dogodkov, atributov data-* in metod, kot so querySelector(), querySelectorAll(), addEventListener() in forEach().
|
||||
|
||||
Umetna inteligenca mi ni služila zgolj za pridobivanje končnih rešitev, temveč predvsem za postopno razumevanje njihovega delovanja. Pogosto sem zahtevala dodatne razlage posameznih vrstic kode, da sem razumela, zakaj je določena rešitev ustrezna in kako jo lahko uporabim v svojem projektu.
|
||||
|
||||
Umetno inteligenco sem tako uporabljala kot dopolnilno učno orodje poleg dokumentacije W3Schools, predvsem za razlago nejasnosti, preverjanje pravilnosti kode in pomoč pri reševanju konkretnih programerskih težav.
|
||||
|
||||
Za izpis tega poročila sem si pomagala z Chat GPT.
|
||||
@@ -1,75 +0,0 @@
|
||||
// Pridobivanje HTML elementov querySelector izbere prvi element s tem classom ali id-jem
|
||||
const obrazec = document.querySelector("#obrazec_rezervacija");
|
||||
const ime = document.querySelector("#ime-priimek");
|
||||
const napakaIme = document.querySelector("#napaka-ime");
|
||||
const email = document.querySelector("#email");
|
||||
const napakaEmail = document.querySelector("#napaka-email");
|
||||
const telefon = document.querySelector("#telefon-st");
|
||||
const napakaTelefon = document.querySelector("#napaka-telefon");
|
||||
|
||||
function preveriIme() { // Preveri, ali sta ime in priimek pravilno vnesena.
|
||||
const vrednost = ime.value.trim(); //odstrani presledke na zacetku in koncu
|
||||
const besede = vrednost.split(/\s+/); //razreze ime pri presledkih da dobimo tabelo (array)
|
||||
|
||||
if (besede.length !== 2 || besede[0].length < 2 || besede[1].length < 2) { //ce tabela nima dveh elementov, ali ima vsak element vsaj dve crki
|
||||
napakaIme.textContent = "Vnesite ime in priimek, vsak naj vsebuje vsaj dve črki."; //ce je if true izpise napako
|
||||
ime.classList.add("napacno"); //v tem primeru id-ju ime-priimek doda napacno
|
||||
return false; //in nam vrne kot rezultat funkcije false
|
||||
}
|
||||
else {
|
||||
napakaIme.textContent = ""; //ce ni napak se span ne izpise
|
||||
ime.classList.remove("napacno"); //odstrani se napacno pri id ime-priimek
|
||||
return true; //vrne funkcija true
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function preveriEmail() {
|
||||
const vrednost = email.value.trim(); //spet odstranim presledke na zacetku in koncu
|
||||
const vzorec = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; //definiramo kako mora izgledati mail; ^ pomeni zacetek besetila, [^\s@]- pomeni da je to besedilo 1 ali vec znakov ki niso @ ali presledek, @[^\s@]- zahteva obvezno @ in za tem znakom vsaj 1 znak ki ni presledek ali @, \. - obvezna pika, za piko spet besedilo ki ni oresledek ali @, $ pomeni konec besedila
|
||||
// ce nek eklement ustreza vzorcu, vzprec=true, drugace pa false, https://www.w3schools.com/js/js_regexp.asp
|
||||
if (!vzorec.test(vrednost)) { //ce je vrednost vzorca NE true= torej false
|
||||
napakaEmail.textContent = "Vnesite veljaven e-poštni naslov."; //izpise se span
|
||||
email.classList.add("napacno");
|
||||
return(false);
|
||||
}
|
||||
else {
|
||||
napakaEmail.textContent = "";
|
||||
email.classList.remove("napacno");
|
||||
return(true);
|
||||
}
|
||||
}
|
||||
|
||||
function preveriTelefon (){
|
||||
const vrednost = telefon.value.trim();
|
||||
const vzorec = /^0\d{2} ?\d{3} ?\d{3}$/; //https://www.w3schools.com/js/js_regexp.asp
|
||||
if (!vzorec.test(vrednost)) {
|
||||
napakaTelefon.textContent = "Vnesite veljavno telefonski številko.";
|
||||
telefon.classList.add("napacno");
|
||||
return false;
|
||||
}
|
||||
|
||||
else {
|
||||
napakaTelefon.textContent = "";
|
||||
telefon.classList.remove("napacno");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Preverjanje med tipkanjem
|
||||
ime.addEventListener("input", preveriIme); //funkcija se opravi ko zacnemo pisati v ime, se zacne izvajati funkcija
|
||||
email.addEventListener("input", preveriEmail);
|
||||
telefon.addEventListener("input", preveriTelefon);
|
||||
|
||||
obrazec.addEventListener("submit", function(event) { //ko oddamo funkcijo se izvede preverjanje
|
||||
event.preventDefault(); //preprecimo default preverjsnje ob submitu
|
||||
|
||||
const imePravilno = preveriIme(); //elementu imePravilno dodamo vrednost true/false
|
||||
const emailPravilno = preveriEmail();
|
||||
const telefonPravilno = preveriTelefon();
|
||||
|
||||
if (imePravilno && emailPravilno && telefonPravilno) {
|
||||
//se morem preveriti ostale vrednosti
|
||||
}
|
||||
});
|
||||
@@ -236,7 +236,7 @@ footer p {
|
||||
var(--barva-hero-prekrivna),
|
||||
var(--barva-hero-prekrivna) /*da je zmanjšana prosojnost slike ozadja, da tekst bolj "pade v oči" */
|
||||
),
|
||||
url("restavracija.png");
|
||||
url("../slike/restavracija.png");
|
||||
|
||||
background-size: cover;
|
||||
background-position: center;
|
||||
@@ -787,6 +787,18 @@ footer p {
|
||||
cursor: pointer
|
||||
}
|
||||
|
||||
.potrditev_rezervacije:not([hidden]) {
|
||||
background-color: var(--barva-kartice);
|
||||
border-left: 0.3rem solid var(--barva-poudarek);
|
||||
border-radius: var(--zaobljenost);
|
||||
padding: 1.5rem;
|
||||
margin-top: 1.5rem;
|
||||
}
|
||||
|
||||
.potrditev_rezervacije[hidden] {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* on nas, besedilo in slika restavracije*/
|
||||
.nasa_zgodba_grid {
|
||||
display: grid;
|
||||
@@ -844,6 +856,13 @@ footer p {
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.zemljevid {
|
||||
width: 400px;
|
||||
max-width: 100%;
|
||||
height: 350px;
|
||||
border: 1px solid black;
|
||||
}
|
||||
|
||||
/* tablica 600px do 1000px */
|
||||
@media (min-width: 600px) and (max-width: 1000px) {
|
||||
/* Navigacija ostane vidna in se po potrebi prelomi. */
|
||||
@@ -892,6 +911,11 @@ footer p {
|
||||
flex-direction: column;
|
||||
align-items: stretch;
|
||||
}
|
||||
|
||||
.zemljevid {
|
||||
width: calc(100% - 2rem);
|
||||
height: 350px;
|
||||
}
|
||||
}
|
||||
|
||||
/* telefon do 600px */
|
||||
@@ -1022,6 +1046,8 @@ footer p {
|
||||
flex-direction: column;
|
||||
align-items: stretch;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/* dark mode, samo spremenjene spremenljivke css */
|
||||
@@ -1,7 +1,7 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="sl">
|
||||
<head>
|
||||
<link rel="stylesheet" href="stylesheet.css">
|
||||
<link rel="stylesheet" href="css/stylesheet.css">
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Domov | Za prste obliznit</title>
|
||||
@@ -10,13 +10,13 @@
|
||||
<header class="site_header">
|
||||
<nav class="nav_bar">
|
||||
<a class="logo" href="index.html">
|
||||
<img src="logo.png" class="logo_light" alt="Logotip restavracije" width="150"><br>
|
||||
<img src="logo_dark.png" class="logo_dark" alt="Logotio restavracije" width="150">
|
||||
<img src="slike/logo.png" class="logo_light" alt="Logotip restavracije" width="150"><br>
|
||||
<img src="slike/logo.png" class="logo_dark" alt="Logotio restavracije" width="150">
|
||||
<span>Za prste obliznit</span>
|
||||
</a>
|
||||
<button class="hamburger_meni" type="button" aria-label="Odpri meni" aria-expanded="false">
|
||||
<i class="fa-solid fa-bars"></i>
|
||||
</button> <! aria-expanded nam bo povedal ali je meni odprt ali zaprt, zdej po defultu mam ob nalozitvi strani meni zaprt, zato =false, ostlao urejamo v js >
|
||||
</button> <!-- aria-expanded nam bo povedal ali je meni odprt ali zaprt, zdej po defultu mam ob nalozitvi strani meni zaprt, zato =false, ostlao urejamo v js -->
|
||||
<ul class="main_menu">
|
||||
<li><a class="active" href="index.html"><i class="fa-solid fa-house"></i>Domov</a></li>
|
||||
<li><a href="jedilnik.html"><i class="fa-solid fa-utensils"></i>Jedilnik</a></li>
|
||||
@@ -44,7 +44,7 @@
|
||||
<div class="jedi_grid">
|
||||
<article class="jedi_card">
|
||||
<figure class="card_slika">
|
||||
<img src="muckalica.png" alt="mučkalica">
|
||||
<img src="slike/muckalica.png" alt="mučkalica">
|
||||
<span class="znacka_novo">Novo</span>
|
||||
<figcaption>Mučkalica</figcaption>
|
||||
</figure>
|
||||
@@ -55,7 +55,7 @@
|
||||
</article>
|
||||
<article class="jedi_card">
|
||||
<figure class="card_slika">
|
||||
<img src="pizza_diavola.png" alt="pizza diavola">
|
||||
<img src="slike/pizza_diavola.png" alt="pizza diavola">
|
||||
<figcaption>Pizza diavola</figcaption>
|
||||
</figure>
|
||||
<div class="card_vsebina">
|
||||
@@ -65,7 +65,7 @@
|
||||
</article>
|
||||
<article class="jedi_card">
|
||||
<figure class="card_slika">
|
||||
<img src="paella.png" alt="Paella">
|
||||
<img src="slike/paella.png" alt="Paella">
|
||||
<figcaption>Paella</figcaption>
|
||||
</figure>
|
||||
<div class="card_vsebina">
|
||||
@@ -81,7 +81,7 @@
|
||||
Za prste obliznit<br>
|
||||
<i class="fa-solid fa-location-dot"></i>Tomaž nad Vojnikom 18a, 3212 Vojnik <br>
|
||||
<i class="fa-solid fa-phone"></i>Telefon:<a href="tel:+072727777"> 07 272 77 77</a> <br>
|
||||
<i class="fa-solid fa-envelope"></i></i>E-pošta: <a href="mailto:info@zaobliznitprste.si">info@zaobliznitprste.si </a>
|
||||
<i class="fa-solid fa-envelope"></i>E-pošta: <a href="mailto:info@zaobliznitprste.si">info@zaobliznitprste.si </a>
|
||||
</address>
|
||||
<p>© 2026 Iva Friedrich</p>
|
||||
</footer>
|
||||
@@ -1,7 +1,7 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="sl">
|
||||
<head>
|
||||
<link rel="stylesheet" href="stylesheet.css">
|
||||
<link rel="stylesheet" href="css/stylesheet.css">
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Jedilnik | Za prste obliznit</title>
|
||||
@@ -10,8 +10,8 @@
|
||||
<header class="site_header">
|
||||
<nav class="nav_bar">
|
||||
<a class="logo" href="index.html">
|
||||
<img src="logo.png" class="logo_light" alt="Logotip restavracije" width="150"><br>
|
||||
<img src="logo_dark.png" class="logo_dark" alt="Logotio restavracije" width="150">
|
||||
<img src="slike/logo.png" class="logo_light" alt="Logotip restavracije" width="150"><br>
|
||||
<img src="slike/logo_dark.png" class="logo_dark" alt="Logotio restavracije" width="150">
|
||||
<span>Za prste obliznit</span>
|
||||
</a>
|
||||
<ul class="main_menu">
|
||||
@@ -0,0 +1,31 @@
|
||||
|
||||
const recepti = document.querySelectorAll(".recepti_jedi"); //poiscem vse recepte
|
||||
|
||||
recepti.forEach(function(recept) { //funkcija gre cez vsak recept posebej
|
||||
|
||||
const osnovnePorcije = Number(recept.dataset.osnovnePorcije); //prebere osnovne porcije in iz stringa spremeni v stevilo ("4" = 4)
|
||||
const vnosPorcij = recept.querySelector(".stevilo_porcij"); //poisce polje za stevilo porciji samo v trenutnem receptu
|
||||
const sestavine = recept.querySelectorAll("[data-kolicina]"); //poisce kolicino vseh sestavin v receptu
|
||||
|
||||
vnosPorcij.addEventListener("input", function() { //ko spremenim vrednost polja se sprozi funkcija
|
||||
|
||||
const novePorcije = Number(vnosPorcij.value); //spet se prebere nova porcija in se spremeni v stevilo
|
||||
|
||||
if (!Number.isInteger(novePorcije) || novePorcije < 1 || novePorcije > 12) { //ce so nove porcije ne celo stevilo ali manjse od ena ali vecje od 12
|
||||
return; //se nic ne vrne
|
||||
}
|
||||
|
||||
sestavine.forEach(function(sestavina) { //funkcija za vsako sestavino
|
||||
|
||||
const osnovnaKolicina = Number(sestavina.dataset.kolicina); //prebere osnovno kolicino in jo pretvori v stevilo
|
||||
|
||||
const novaKolicina = osnovnaKolicina / osnovnePorcije * novePorcije; //preracuna kolicino sestavine za nove porcije
|
||||
|
||||
sestavina.textContent = Number(novaKolicina.toFixed(1)) //zaokrozimo na eno decimalno mesto, number pa odstrani nepotrebne 0 (200.0 = 200)
|
||||
.toLocaleString("sl-SI", { maximumFractionDigits: 1 }); //poskrbi da so decimalke napisane s slovensko vejico
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
@@ -0,0 +1,293 @@
|
||||
// Pridobivanje HTML elementov querySelector izbere prvi element s tem classom ali id-jem
|
||||
const obrazec = document.querySelector("#obrazec_rezervacija");
|
||||
const ime = document.querySelector("#ime-priimek");
|
||||
const napakaIme = document.querySelector("#napaka-ime");
|
||||
const email = document.querySelector("#email");
|
||||
const napakaEmail = document.querySelector("#napaka-email");
|
||||
const telefon = document.querySelector("#telefon-st");
|
||||
const napakaTelefon = document.querySelector("#napaka-telefon");
|
||||
const datum = document.querySelector("#datum-obiska");
|
||||
const napakaDatum = document.querySelector("#napaka-datum");
|
||||
const ura = document.querySelector("#ura-obiska");
|
||||
const napakaUra = document.querySelector("#napaka-ura");
|
||||
const osebe = document.querySelector("#stevilo-oseb");
|
||||
const napakaOsebe = document.querySelector("#napaka-osebe");
|
||||
const soglasje = document.querySelector("#pogoji");
|
||||
const napakaSoglasje = document.querySelector("#napaka-pogoji");
|
||||
const potrditev = document.querySelector("#potrditev-rezervacije");
|
||||
const prostor = document.querySelector("#prostor");
|
||||
const opombe = document.querySelector("#opombe");
|
||||
|
||||
|
||||
const odpiralniCas = [
|
||||
[10, 22], // Nedelja
|
||||
[9, 22], // Ponedeljek
|
||||
null, // Torek - zaprto
|
||||
[9, 22], // Sreda
|
||||
[9, 22], // Četrtek
|
||||
[9, 23], // Petek
|
||||
[10, 23] // Sobota
|
||||
];
|
||||
|
||||
function preveriIme() { // Preveri, ali sta ime in priimek pravilno vnesena.
|
||||
const vrednost = ime.value.trim(); //odstrani presledke na zacetku in koncu
|
||||
const besede = vrednost.split(/\s+/); //razreze ime pri presledkih da dobimo tabelo (array)
|
||||
|
||||
if (besede.length !== 2 || besede[0].length < 2 || besede[1].length < 2) { //ce tabela nima dveh elementov, ali ima vsak element vsaj dve crki
|
||||
napakaIme.textContent = "Vnesite ime in priimek, vsak naj vsebuje vsaj dve črki."; //ce je if true izpise napako
|
||||
ime.classList.add("napacno"); //v tem primeru id-ju ime-priimek doda napacno
|
||||
return false; //in nam vrne kot rezultat funkcije false
|
||||
}
|
||||
else {
|
||||
napakaIme.textContent = ""; //ce ni napak se span ne izpise
|
||||
ime.classList.remove("napacno"); //odstrani se napacno pri id ime-priimek
|
||||
return true; //vrne funkcija true
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function preveriEmail() {
|
||||
const vrednost = email.value.trim(); //spet odstranim presledke na zacetku in koncu
|
||||
const vzorec = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; //definiramo kako mora izgledati mail; ^ pomeni zacetek besetila, [^\s@]- pomeni da je to besedilo 1 ali vec znakov ki niso @ ali presledek, @[^\s@]- zahteva obvezno @ in za tem znakom vsaj 1 znak ki ni presledek ali @, \. - obvezna pika, za piko spet besedilo ki ni oresledek ali @, $ pomeni konec besedila
|
||||
// ce nek eklement ustreza vzorcu, vzprec=true, drugace pa false, https://www.w3schools.com/js/js_regexp.asp
|
||||
if (!vzorec.test(vrednost)) { //ce je vrednost vzorca NE true= torej false
|
||||
napakaEmail.textContent = "Vnesite veljaven e-poštni naslov."; //izpise se span
|
||||
email.classList.add("napacno");
|
||||
return(false);
|
||||
}
|
||||
else {
|
||||
napakaEmail.textContent = "";
|
||||
email.classList.remove("napacno");
|
||||
return(true);
|
||||
}
|
||||
}
|
||||
|
||||
function preveriTelefon (){
|
||||
const vrednost = telefon.value.trim();
|
||||
const vzorec = /^0\d{2} ?\d{3} ?\d{3}$/; //https://www.w3schools.com/js/js_regexp.asp, spet ^pomeni zacetek besedila, obvezno 0, \d{2} za ničko obvezno dve stevili (d- digit), ?- neobvezen presledek, \d{3} 3 stevila, $ zakljucek besedila
|
||||
if (!vzorec.test(vrednost)) {
|
||||
napakaTelefon.textContent = "Vnesite veljavno telefonsko številko.";
|
||||
telefon.classList.add("napacno");
|
||||
return false;
|
||||
}
|
||||
|
||||
else {
|
||||
napakaTelefon.textContent = "";
|
||||
telefon.classList.remove("napacno");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
// Preveri pravilnost datuma rezervacije.
|
||||
function preveriDatum() {
|
||||
const vrednost = datum.value; //elementu doda trenutno vrednost elementa value, torej tisto kar uporabnik izbere, npr. 4.november 2026 bi bilo 2026-11-04, vrne vrednost v obliki string
|
||||
const izbraniDatum = new Date(vrednost + "T00:00:00"); //tukaj pa iz stringa spremenim v pobjekt date, pac uporabno za datum
|
||||
const danVTednu = izbraniDatum.getDay(); // s tem pa ugotovimo kater dan v tednu je to, 0-nedelja, 1-ponedeljek, 2-torek... za cel teden, da bom lahko kasneje napisala da smo v torek zaprti
|
||||
|
||||
const danes = new Date(); // elementu danes dodam vrednost današnjega datuma
|
||||
danes.setHours(0, 0, 0, 0); //in nastavim čas na polnoč, vse datume primerjam ob polnoči da slučajnp to ne bi vpivalo na preverjanje ali je datum v preteklosti
|
||||
|
||||
if (vrednost === "") { //če je vrednost prazna potem
|
||||
napakaDatum.textContent = "Izberite datum rezervacije.";
|
||||
}
|
||||
else if (danes > izbraniDatum) { //če je današnji datum večji oz kasnejši od izbranega potem
|
||||
napakaDatum.textContent = "Datum ne sme biti v preteklosti.";
|
||||
}
|
||||
else if (danVTednu === 2) { //če je izbran dan v tednu torek
|
||||
napakaDatum.textContent = "Ob torkih je restavracija zaprta.";
|
||||
}
|
||||
else {
|
||||
napakaDatum.textContent = "";
|
||||
datum.classList.remove("napacno");
|
||||
return true; //če je datum prvilen se funkcija konča tukaj
|
||||
}
|
||||
|
||||
datum.classList.add("napacno");
|
||||
return false; //zapisano na koncu da se izognemo ponavljanju, ker do tega dela pridemo samo če je datum neustrezen
|
||||
}
|
||||
|
||||
// Preveri pravilnost ure rezervacije.
|
||||
function preveriUro() {
|
||||
const vrednost = ura.value;
|
||||
|
||||
// Najprej preverimo, ali sta datum in ura izbrana.
|
||||
if (vrednost === "" || datum.value === "") { //dan more biti izbran ker se delavni cas od dnva do dneva spreminja
|
||||
napakaUra.textContent = "Izberite datum in uro rezervacije.";
|
||||
ura.classList.add("napacno");
|
||||
return false;
|
||||
}
|
||||
|
||||
// Pridobimo odpiralni čas za izbrani dan.
|
||||
const izbraniDatum = new Date(datum.value + "T00:00:00");
|
||||
const danVTednu = izbraniDatum.getDay();
|
||||
const odpiralniCasDanes = odpiralniCas[danVTednu]; //sped zelimo dobiti dan v tednu (zgornji dve vrstici) da lahko na podlagi tega izberemo delovni cas
|
||||
|
||||
// Razdelimo izbrano uro na ure in minute.
|
||||
const deli = vrednost.split(":");
|
||||
const samoUra = Number(deli[0]);
|
||||
const samoMin = Number(deli[1]);
|
||||
|
||||
// Preverimo, ali je rezervacija vsaj eno uro v prihodnosti.
|
||||
const zdaj = new Date(); //to nam da cas da pripravimo mizo npr.
|
||||
const najmanjsiCas = zdaj.getTime() + 60 * 60 * 1000; //cas se zapisuje v milisekundah zato je za dodajo ene ure 60*60*1000
|
||||
const casRezervacije = new Date(datum.value + "T" + vrednost); //zelimo vedet datu in uro rezervacije, datum.value+"T"+vrednost je pa standardni zapis datuma, new Date pa uporabljamo zato da lahko z njim racunamo
|
||||
|
||||
if (odpiralniCasDanes === null) {
|
||||
napakaUra.textContent = "Ob torkih je restavracija zaprta.";
|
||||
}
|
||||
else {
|
||||
const odprtje = odpiralniCasDanes[0];
|
||||
const zaprtje = odpiralniCasDanes[1];
|
||||
const zadnjaUra = zaprtje - 1; //ne morejo se rezervirati ob zaprtju (samo zdrava pamet)
|
||||
|
||||
if (samoUra < odprtje) { //ce je ura manjsa od odprtja
|
||||
napakaUra.textContent = "Restavracija ob izbrani uri še ni odprta.";
|
||||
}
|
||||
else if (samoUra > zadnjaUra || (samoUra === zadnjaUra && samoMin > 0)) { //ce je ura vecja od zadnje ure, ali pa je enaka zadnji mozni uri in so minute vecje 0 (ker lahko se ob 21.00 rezerviras mizo)
|
||||
napakaUra.textContent = "Rezervacija je mogoča najpozneje eno uro pred zaprtjem.";
|
||||
}
|
||||
else if (casRezervacije.getTime() < najmanjsiCas) {
|
||||
napakaUra.textContent = "Rezervacijo morate oddati vsaj eno uro pred obiskom.";
|
||||
}
|
||||
else { //vse je pravilno
|
||||
napakaUra.textContent = "";
|
||||
ura.classList.remove("napacno");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
ura.classList.add("napacno"); //spet se izogibamo ponavljanju, to se zgodi vsakic ko je kaj narobe
|
||||
return false;
|
||||
}
|
||||
|
||||
//Preveri število oseb.
|
||||
function preveriOsebe() {
|
||||
const vrednost = Number(osebe.value); //iz stringa spremeni v number
|
||||
|
||||
if (vrednost<1 || vrednost>12 || !Number.isInteger(vrednost)) { //vrednost je manjsa od 1, je vecja od 12 ali ni celo stevilo
|
||||
napakaOsebe.textContent = "Število oseb mora biti med 1 in 12.";
|
||||
osebe.classList.add("napacno");
|
||||
return false;
|
||||
}
|
||||
else {
|
||||
napakaOsebe.textContent = "";
|
||||
osebe.classList.remove("napacno");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
function preveriSoglasje() {
|
||||
|
||||
if (!soglasje.checked) {
|
||||
napakaSoglasje.textContent = "Za oddajo rezervacije morate potrditi soglasje.";
|
||||
return false;
|
||||
}
|
||||
else {
|
||||
napakaSoglasje.textContent = "";
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// Preverjanje med tipkanjem
|
||||
ime.addEventListener("input", preveriIme); //funkcija se opravi ko zacnemo pisati v ime, se zacne izvajati funkcija
|
||||
email.addEventListener("input", preveriEmail);
|
||||
telefon.addEventListener("input", preveriTelefon);
|
||||
datum.addEventListener("select", preveriDatum); //tu imam select ker datum izbira ne vpisuje tako da je bolj logicno
|
||||
ura.addEventListener("change", preveriUro);
|
||||
osebe.addEventListener("input", preveriOsebe);
|
||||
soglasje.addEventListener("change", preveriSoglasje); //ker se bo samo spreminjala vrednost oznaceno ali ne (change ne input)
|
||||
|
||||
|
||||
obrazec.addEventListener("submit", function(event) { //ko oddamo funkcijo se izvede preverjanje
|
||||
event.preventDefault(); //preprecimo default preverjsnje ob submitu, torej ds preprecimo ponovno nalaganje strani
|
||||
|
||||
const imePravilno = preveriIme(); //elementu imePravilno dodamo vrednost true/false
|
||||
const emailPravilno = preveriEmail();
|
||||
const telefonPravilno = preveriTelefon();
|
||||
const datumPravilno = preveriDatum();
|
||||
const uraPravilno = preveriUro();
|
||||
const osebePravilno = preveriOsebe();
|
||||
const soglasjePravilno = preveriSoglasje();
|
||||
|
||||
|
||||
if (imePravilno && emailPravilno && telefonPravilno && datumPravilno && uraPravilno && osebePravilno && soglasjePravilno) {
|
||||
potrditev.replaceChildren();
|
||||
|
||||
const naslov = document.createElement("h3"); // ustvari element h3
|
||||
naslov.textContent = "Povzetek vaše rezervacije";
|
||||
|
||||
const sporocilo = document.createElement("p"); // ustvari element p
|
||||
sporocilo.textContent = "Podatki rezervacije so uspešno preverjeni!";
|
||||
|
||||
const podatki = document.createElement("p"); // ustvari element p za osnovne podatke
|
||||
podatki.textContent =
|
||||
"Ime in priimek: " + ime.value.trim() +
|
||||
" | Datum: " + datum.value +
|
||||
" | Ura: " + ura.value +
|
||||
" | Število oseb: " + osebe.value +
|
||||
" | Prostor: " + prostor.options[prostor.selectedIndex].text;
|
||||
|
||||
potrditev.append(naslov, sporocilo, podatki);
|
||||
|
||||
// Preverimo, ali je uporabnik izbral priložnost.
|
||||
const priloznost = document.querySelector('input[name="priloznost"]:checked');
|
||||
|
||||
if (priloznost !== null && priloznost.value !== "brez") { //ce priloznost ni prazna
|
||||
const podatek = document.createElement("p");
|
||||
podatek.textContent = "Priložnost: " + priloznost.nextElementSibling.textContent; //nextElementSibling isce naslednji element v tem starsevskem rezredu
|
||||
potrditev.append(podatek); //dodamo v podatek
|
||||
}
|
||||
|
||||
// Pridobimo vse označene posebne omejitve.
|
||||
const omejitve = document.querySelectorAll('input[name="posebne-omejitve"]:checked');
|
||||
|
||||
if (omejitve.length > 0) { //ce dolzina omejitv vecja od 0
|
||||
const seznam = []; //ustvarimo seznam (array-tabelo)
|
||||
|
||||
omejitve.forEach(function(omejitev) { //za vsak oznacen checkbox
|
||||
seznam.push(omejitev.nextElementSibling.textContent); //dodamo na seznam vsak oznacen checkbox, spet se premilkamo po elementh starsevskega razreda
|
||||
});
|
||||
|
||||
const podatek = document.createElement("p");
|
||||
podatek.textContent = "Posebne omejitve: " + seznam.join(", "); //seuznam.join, vse podsatke iz seznama zdruzi v string
|
||||
potrditev.append(podatek);
|
||||
}
|
||||
|
||||
// Preverimo, ali je uporabnik napisal opombe.
|
||||
if (opombe.value.trim() !== "") {
|
||||
const podatek = document.createElement("p");
|
||||
podatek.textContent = "Opombe: " + opombe.value.trim(); //potem izpisemo zapisane opombe, pac trimamo presledke odspredaj in zadaj
|
||||
potrditev.append(podatek);
|
||||
}
|
||||
|
||||
potrditev.hidden = false; // prikažemo povzetek rezervacije
|
||||
}
|
||||
else {
|
||||
potrditev.hidden = true; // skrijemo povzetek, če podatki niso pravilni
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
obrazec.addEventListener("reset", function() {
|
||||
|
||||
// Izbrišemo vsa sporočila o napakah.
|
||||
const napake = obrazec.querySelectorAll(".sporocilo_napake");
|
||||
|
||||
napake.forEach(function(napaka) {
|
||||
napaka.textContent = "";
|
||||
});
|
||||
|
||||
// Odstranimo rdeče obrobe napačnih polj.
|
||||
const napacnaPolja = obrazec.querySelectorAll(".napacno"); //vsa oilja ki imajo napacno
|
||||
|
||||
napacnaPolja.forEach(function(polje) {
|
||||
polje.classList.remove("napacno");
|
||||
});
|
||||
|
||||
// Skrijemo potrditev rezervacije.
|
||||
potrditev.hidden = true;
|
||||
potrditev.replaceChildren();
|
||||
});
|
||||
@@ -1,7 +1,7 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="sl">
|
||||
<head>
|
||||
<link rel="stylesheet" href="stylesheet.css">
|
||||
<link rel="stylesheet" href="css/stylesheet.css">
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>O nas | Za prste obliznit</title>
|
||||
@@ -11,8 +11,8 @@
|
||||
<header class="site_header">
|
||||
<nav class="nav_bar">
|
||||
<a class="logo" href="index.html">
|
||||
<img src="logo.png" class="logo_light" alt="Logotip restavracije" width="150"><br>
|
||||
<img src="logo_dark.png" class="logo_dark" alt="Logotio restavracije" width="150">
|
||||
<img src="slike/logo.png" class="logo_light" alt="Logotip restavracije" width="150"><br>
|
||||
<img src="slike/logo_dark.png" class="logo_dark" alt="Logotio restavracije" width="150">
|
||||
<span>Za prste obliznit</span>
|
||||
</a>
|
||||
<ul class="main_menu">
|
||||
@@ -45,15 +45,17 @@
|
||||
</p>
|
||||
</div>
|
||||
<figure>
|
||||
<img src="restavracija.png" alt="slika restavracije">
|
||||
<img src="slike/restavracija.png" alt="slika restavracije">
|
||||
<figcaption>Naša restavracija</figcaption>
|
||||
</figure>
|
||||
</div>
|
||||
<h2>Delovni čas</h2>
|
||||
<table class="delovi_cas">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Dan</th>
|
||||
<th>Delavnik</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
@@ -93,8 +95,18 @@
|
||||
3212 Vojnik<br>
|
||||
Slovenija
|
||||
</i></p>
|
||||
<iframe width="400px" height="350" src="https://www.openstreetmap.org/export/embed?bbox=15.325708128511907%2C46.29054746034702%2C15.329828001558782%2C46.2928901216514&layer=mapnik&marker=46.291718803524695%2C15.327768065035343" style="border: 1px solid black"></iframe><br>
|
||||
<small><a href="https://www.openstreetmap.org/?mlat=46.291719&mlon=15.327768#map=17/46.291719/15.327768">Prikaži večji zemljevid</a></small>
|
||||
<iframe class="zemljevid"
|
||||
src="https://www.openstreetmap.org/export/embed?bbox=15.325708128511907%2C46.29054746034702%2C15.329828001558782%2C46.2928901216514&layer=mapnik&marker=46.291718803524695%2C15.327768065035343"
|
||||
title="Lokacija restavracije">
|
||||
</iframe>
|
||||
|
||||
<br>
|
||||
|
||||
<small>
|
||||
<a href="https://www.openstreetmap.org/?mlat=46.291719&mlon=15.327768#map=17/46.291719/15.327768">
|
||||
Prikaži večji zemljevid
|
||||
</a>
|
||||
</small>
|
||||
<br><br>
|
||||
</main>
|
||||
<footer>
|
||||
@@ -1,7 +1,7 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="sl">
|
||||
<head>
|
||||
<link rel="stylesheet" href="stylesheet.css">
|
||||
<link rel="stylesheet" href="css/stylesheet.css">
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Recepti | Za prste obliznit</title>
|
||||
@@ -10,12 +10,12 @@
|
||||
<header class="site_header">
|
||||
<nav class="nav_bar">
|
||||
<a class="logo" href="index.html">
|
||||
<img src="logo.png" class="logo_light" alt="Logotip restavracije" width="150"><br>
|
||||
<img src="logo_dark.png" class="logo_dark" alt="Logotio restavracije" width="150">
|
||||
<img src="slike/logo.png" class="logo_light" alt="Logotip restavracije" width="150"><br>
|
||||
<img src="slike/logo_dark.png" class="logo_dark" alt="Logotio restavracije" width="150">
|
||||
<span>Za prste obliznit</span>
|
||||
</a>
|
||||
<ul class="main_menu">
|
||||
<li><a href="index.html"><i class="fa-solid fa-house"></i></i>Domov</a></li>
|
||||
<li><a href="index.html"><i class="fa-solid fa-house"></i>Domov</a></li>
|
||||
<li><a href="jedilnik.html"> <i class="fa-solid fa-utensils"></i>Jedilnik</a></li>
|
||||
<li><a class="active" href="recepti.html"><i class="fa-solid fa-book-open"></i>Recepti</a></li>
|
||||
<li><a href="rezervacija.html"><i class="fa-solid fa-calendar-check"></i>Rezervacija</a></li>
|
||||
@@ -37,11 +37,11 @@
|
||||
<h2>Svetovni okusi. Vaša kuhinja</h2>
|
||||
<p>Navdihnjeni s potovanj, ustvarjeni za vašo mizo. Odkrite recepte z različnih koncev sveta in prinesi košček kulinaričnega potovanja v svoj dom.</p> <br>
|
||||
</section>
|
||||
<article class="recepti_jedi" >
|
||||
<article class="recepti_jedi" data-osnovne-porcije="4" >
|
||||
<h2 id="muckalica">Mučkalica </h2>
|
||||
<div class="recepti_grid">
|
||||
<figure class="recepti_slika">
|
||||
<img src="muckalica.png" alt="mučkalica">
|
||||
<img src="slike/muckalica.png" alt="mučkalica">
|
||||
<figcaption>Mučkalica</figcaption>
|
||||
</figure>
|
||||
<div class="o_receptu">
|
||||
@@ -54,23 +54,23 @@
|
||||
cca. 70min
|
||||
</li>
|
||||
<li><b>Število porciji</b> <br>
|
||||
4 porcije
|
||||
<input type="number" class="stevilo_porcij" aria-label="Število porcij" min="1" max="12" step="1" value="4" style="width: 3.5em; font: inherit; text-align: center; color: inherit; background: transparent; border: 1px solid currentColor; border-radius: 0.3rem;"> porcije
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="recepti_sestavine">
|
||||
<h3>Sestavine</h3>
|
||||
<ul>
|
||||
<li>800g svinjskega vratu ali plečeta</li>
|
||||
<li>3 večje rdeče paprike</li>
|
||||
<li>2 srednje veliki čebuli</li>
|
||||
<li>3 stroki česnja</li>
|
||||
<li>400g sesekljanega paradižnika iz pločevinke</li>
|
||||
<li>2 žlici paradižnikove mezge</li>
|
||||
<li>3 žlice olja</li>
|
||||
<li>150 ml vode</li>
|
||||
<li>1 žlička sladke mlete paprike</li>
|
||||
<li>pol žličke dimljene paprike (po želji)</li>
|
||||
<li><span data-kolicina="800">800</span>g svinjskega vratu ali plečeta</li>
|
||||
<li><span data-kolicina="3">3</span> večje rdeče paprike</li>
|
||||
<li><span data-kolicina="2">2</span> srednje veliki čebuli</li>
|
||||
<li><span data-kolicina="3">3</span> stroki česnja</li>
|
||||
<li><span data-kolicina="400">400</span>g sesekljanega paradižnika iz pločevinke</li>
|
||||
<li><span data-kolicina="2">2</span> žlici paradižnikove mezge</li>
|
||||
<li><span data-kolicina="3">3</span> žlice olja</li>
|
||||
<li><span data-kolicina="150">150</span> ml vode</li>
|
||||
<li><span data-kolicina="1">1</span> žlička sladke mlete paprike</li>
|
||||
<li><span data-kolicina="0.5">0,5</span> žličke dimljene paprike (po želji)</li>
|
||||
<li>sol in sveže mlet poper</li>
|
||||
<li>Ščepec čilija (po želji) </li>
|
||||
<li>svež peteršilj za postrežbo</li>
|
||||
@@ -110,11 +110,11 @@
|
||||
<a class="gumb_3" href="#na_vrh">Na vrh strani</a>
|
||||
</article>
|
||||
<br>
|
||||
<article class="recepti_jedi">
|
||||
<article class="recepti_jedi" data-osnovne-porcije="4">
|
||||
<h2 id="pizza_diavola">Napolitanska pizza Diavola</h2>
|
||||
<div class="recepti_grid">
|
||||
<figure class="recepti_slika">
|
||||
<img src="pizza_diavola.png" alt="pizza diavola">
|
||||
<img src="slike/pizza_diavola.png" alt="pizza diavola">
|
||||
<figcaption>Pizza diavola</figcaption>
|
||||
</figure>
|
||||
<div class="o_receptu">
|
||||
@@ -127,21 +127,21 @@
|
||||
cca. 13-25ur
|
||||
</li>
|
||||
<li><b>Število pic</b> <br>
|
||||
4 pice
|
||||
<input type="number" class="stevilo_porcij" aria-label="Število pic" min="1" max="12" step="1" value="4" style="width: 3.5em; font: inherit; text-align: center; color: inherit; background: transparent; border: 1px solid currentColor; border-radius: 0.3rem;"> pice
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="recepti_sestavine">
|
||||
<h3>Sestavine</h3>
|
||||
<ul>
|
||||
<li>600g moke tipa 00</li>
|
||||
<li>390g hladne vode</li>
|
||||
<li>18g soli</li>
|
||||
<li>1g suhega instant kvasa (ali približno 3g svežega) </li>
|
||||
<li>400g olupljenih pelatov</li>
|
||||
<li>300g mozzarele za pizzo</li>
|
||||
<li>200g pikantne salame</li>
|
||||
<li>1 žlička origana</li>
|
||||
<li><span data-kolicina="600">600</span>g moke tipa 00</li>
|
||||
<li><span data-kolicina="390">390</span>g hladne vode</li>
|
||||
<li><span data-kolicina="18">18</span>g soli</li>
|
||||
<li><span data-kolicina="1">1</span>g suhega instant kvasa (ali približno <span data-kolicina="3">3</span>g svežega) </li>
|
||||
<li><span data-kolicina="400">400</span>g olupljenih pelatov</li>
|
||||
<li><span data-kolicina="300">300</span>g mozzarele za pizzo</li>
|
||||
<li><span data-kolicina="200">200</span>g pikantne salame</li>
|
||||
<li><span data-kolicina="1">1</span> žlička origana</li>
|
||||
<li>sveža bazilika</li>
|
||||
<li>malo olivnega olja</li>
|
||||
<li>čili kosmiči (po želji) </li>
|
||||
@@ -158,7 +158,7 @@
|
||||
</li>
|
||||
<li>
|
||||
<b>Pusti vzhajati</b>
|
||||
<p>Testo pokrij in pusti približno 1 uro pri sobni temperaturi. Nato ga razdeli na 4 enake kroglice, jih shrani v pokrito posodo in pusti vzhajati še približno 11–23 ur v hladilniku. Pred oblikovanjem jih vzemi iz hladilnika približno 2 uri prej.</p>
|
||||
<p>Testo pokrij in pusti približno 1 uro pri sobni temperaturi. Nato ga razdeli na <span data-kolicina="4">4</span> enake kroglice, jih shrani v pokrito posodo in pusti vzhajati še približno 11–23 ur v hladilniku. Pred oblikovanjem jih vzemi iz hladilnika približno 2 uri prej.</p>
|
||||
</li>
|
||||
<li>
|
||||
<b>Pripravi paradižnikovo omako</b>
|
||||
@@ -185,11 +185,11 @@
|
||||
<a class="gumb_3" href="#na_vrh">Na vrh strani</a>
|
||||
</article>
|
||||
<br>
|
||||
<article class="recepti_jedi">
|
||||
<article class="recepti_jedi" data-osnovne-porcije="4">
|
||||
<h2 id="paella">Španska paella z morskimi zadeži</h2>
|
||||
<div class="recepti_grid">
|
||||
<figure class="recepti_slika">
|
||||
<img src="paella.png" alt="paella">
|
||||
<img src="slike/paella.png" alt="paella">
|
||||
<figcaption>Paella</figcaption>
|
||||
</figure>
|
||||
<div class="o_receptu">
|
||||
@@ -202,25 +202,25 @@
|
||||
cca. 50min
|
||||
</li>
|
||||
<li><b>Število porciji</b> <br>
|
||||
4 porcije
|
||||
<input type="number" class="stevilo_porcij" aria-label="Število porcij" min="1" max="12" step="1" value="4" style="width: 3.5em; font: inherit; text-align: center; color: inherit; background: transparent; border: 1px solid currentColor; border-radius: 0.3rem;"> porcije
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="recepti_sestavine">
|
||||
<h3>Sestavine</h3>
|
||||
<ul>
|
||||
<li>320g riža za paello (npr. bomba ali podobna kratkozrnata sorta)</li>
|
||||
<li>300g očiščenih kozic</li>
|
||||
<li>300g školjk, dobro očiščenih</li>
|
||||
<li>200g lignjev, narezanih na kolobarje</li>
|
||||
<li>1 srednje velika čebula</li>
|
||||
<li>1 rdeča paprika</li>
|
||||
<li>3 stroki česna</li>
|
||||
<li>250g sesekljanega paradižnika</li>
|
||||
<li>900g ribje jušne osnove (približno; odvisno od riža)</li>
|
||||
<li><span data-kolicina="320">320</span>g riža za paello (npr. bomba ali podobna kratkozrnata sorta)</li>
|
||||
<li><span data-kolicina="300">300</span>g očiščenih kozic</li>
|
||||
<li><span data-kolicina="300">300</span>g školjk, dobro očiščenih</li>
|
||||
<li><span data-kolicina="200">200</span>g lignjev, narezanih na kolobarje</li>
|
||||
<li><span data-kolicina="1">1</span> srednje velika čebula</li>
|
||||
<li><span data-kolicina="1">1</span> rdeča paprika</li>
|
||||
<li><span data-kolicina="3">3</span> stroki česna</li>
|
||||
<li><span data-kolicina="250">250</span>g sesekljanega paradižnika</li>
|
||||
<li><span data-kolicina="900">900</span>g ribje jušne osnove (približno; odvisno od riža)</li>
|
||||
<li>ščepec žafrana</li>
|
||||
<li>1 žlička sladke mlete paprike</li>
|
||||
<li>3 žlice olivnega olja</li>
|
||||
<li><span data-kolicina="1">1</span> žlička sladke mlete paprike</li>
|
||||
<li><span data-kolicina="3">3</span> žlice olivnega olja</li>
|
||||
<li>sol in poper</li>
|
||||
<li>limona</li>
|
||||
<li>svež peteršilj</li>
|
||||
@@ -1,7 +1,8 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="sl">
|
||||
<head>
|
||||
<link rel="stylesheet" href="stylesheet.css">
|
||||
<link rel="stylesheet" href="css/stylesheet.css">
|
||||
<script src="java_script.js"></script>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
@@ -11,8 +12,8 @@
|
||||
<header class="site_header">
|
||||
<nav class="nav_bar">
|
||||
<a class="logo" href="index.html">
|
||||
<img src="logo.png" class="logo_light" alt="Logotip restavracije" width="150"><br>
|
||||
<img src="logo_dark.png" class="logo_dark" alt="Logotio restavracije" width="150">
|
||||
<img src="slike/logo.png" class="logo_light" alt="Logotip restavracije" width="150"><br>
|
||||
<img src="slike/logo_dark.png" class="logo_dark" alt="Logotio restavracije" width="150">
|
||||
<span>Za prste obliznit</span>
|
||||
</a>
|
||||
<ul class="main_menu">
|
||||
@@ -48,16 +49,26 @@
|
||||
</p>
|
||||
<h2>Rezervacija</h2>
|
||||
<p>Izpolnite podatke in pošljite zahtevo za restavracijo.</p>
|
||||
<form id="obrazec_rezervacija" method="get" novalidate> <!novalidate pomeni da bomo lahko dodali svoje napise za opozorila!>
|
||||
<form id="obrazec_rezervacija" method="get" novalidate> <!-- novalidate pomeni da bomo lahko dodali svoje napise za opozorila -->
|
||||
<fieldset class="field_rezervacija">
|
||||
<legend>Podrobnosti rezervacije:</legend>
|
||||
|
||||
Datum obiska
|
||||
<label for="datum-obiska">Datum obiska</label>
|
||||
<div class="vnos_rezervacija">
|
||||
<input type="date" id="datum-obiska" name="datum-obiska" required>
|
||||
Ura obiska
|
||||
<input type="time" id="ura-obiska" name="ura-obiska" min="10:00" max="21:00" required>
|
||||
Število oseb
|
||||
<input type="number" min="1" max="11" id="stevilo-oseb" name="stevilo-oseb" required>
|
||||
<span class="sporocilo_napake" id="napaka-datum"></span>
|
||||
</div>
|
||||
<label for="ura-obiska">Ura obiska</label>
|
||||
<div class="vnos_rezervacija">
|
||||
<input type="time" id="ura-obiska" name="ura-obiska" required>
|
||||
<span class="sporocilo_napake" id="napaka-ura"></span>
|
||||
</div>
|
||||
<label for="stevilo-oseb">Število oseb</label>
|
||||
<div class="vnos_rezervacija">
|
||||
<input type="number" id="stevilo-oseb"
|
||||
name="stevilo-oseb" min="1" max="12" required> <!-- in in max sem obdrzala ker potem se prikazejo samo vrednost med 1 in 12 na izbiro, vseeno sem naredila validacijo v js -->
|
||||
<span class="sporocilo_napake" id="napaka-osebe"></span>
|
||||
</div>
|
||||
Prostor:
|
||||
<select id="prostor" name="prostor">
|
||||
<option value="notranjost">Notranjost</option>
|
||||
@@ -71,7 +82,7 @@
|
||||
<div class="vnos_rezervacija">
|
||||
<input type="text" id="ime-priimek" name="ime-priimek"
|
||||
placeholder="Neža Novak" required>
|
||||
<span class="sporocilo_napake" id="napaka-ime"></span> <!span bo prostor kjer se bodo izpisale napake!>
|
||||
<span class="sporocilo_napake" id="napaka-ime"></span> <!-- span bo prostor kjer se bodo izpisale napake -->
|
||||
</div>
|
||||
<label for="email">E-poštni naslov</label>
|
||||
<div class="vnos_rezervacija">
|
||||
@@ -132,15 +143,17 @@
|
||||
<br>
|
||||
<textarea id="opombe" placeholder="Npr. potrebujete stolček za otroka, ..." name="opombe" rows="5" cols="50" ></textarea>
|
||||
<br>
|
||||
<div class="pogoji_uporabe">
|
||||
<div class="pogoji_uporabe"> <!-- v js se pogoji preimenujejeo v soglasje -->
|
||||
<input type="checkbox" id="pogoji" name="pogoji" value="da" required>
|
||||
<label for="pogoji">Strinjam se z obdelavo osebnih podatkov </label>
|
||||
<label for="pogoji">Strinjam se z obdelavo osebnih podatkov</label>
|
||||
<span class="sporocilo_napake" id="napaka-pogoji"></span>
|
||||
</div>
|
||||
</fieldset>
|
||||
<br><br>
|
||||
<input class="gumb_osnovni_obratno" type="submit" value="Oddaja rezervacije">
|
||||
<input class="gumb_manj" type="reset" value="Ponastavi">
|
||||
</form>
|
||||
<div id="potrditev-rezervacije" class="potrditev_rezervacije" hidden></div> <!-- hidden da ostane skrit ko se stran odpre oz dokler ga ne potrebujem -->
|
||||
<br><br>
|
||||
</main>
|
||||
<footer>
|
||||
|
Before Width: | Height: | Size: 1.4 MiB After Width: | Height: | Size: 1.4 MiB |
|
Before Width: | Height: | Size: 1.1 MiB After Width: | Height: | Size: 1.1 MiB |
|
Before Width: | Height: | Size: 234 KiB After Width: | Height: | Size: 234 KiB |
|
Before Width: | Height: | Size: 2.6 MiB After Width: | Height: | Size: 2.6 MiB |
|
Before Width: | Height: | Size: 2.8 MiB After Width: | Height: | Size: 2.8 MiB |
|
Before Width: | Height: | Size: 2.7 MiB After Width: | Height: | Size: 2.7 MiB |
|
Before Width: | Height: | Size: 2.9 MiB After Width: | Height: | Size: 2.9 MiB |