Changeset 5528b99 for frontend/src/Components
- Timestamp:
- 01/16/24 16:34:03 (10 months ago)
- Branches:
- master
- Children:
- 07f4e8b
- Parents:
- e6c2521
- Location:
- frontend/src/Components
- Files:
-
- 25 edited
Legend:
- Unmodified
- Added
- Removed
-
frontend/src/Components/Forms/AddHotelForm.js
re6c2521 r5528b99 119 119 return prevState + 1; 120 120 }) 121 if(!edit)122 props.closeModal()123 121 }} 124 122 > -
frontend/src/Components/Forms/AddRestaurantForm.js
re6c2521 r5528b99 85 85 return prevState + 1; 86 86 }) 87 props.closeModal()88 87 }} 89 88 > -
frontend/src/Components/Forms/AddRoomForm.js
re6c2521 r5528b99 13 13 hotelRoomDescription: "", 14 14 hotelRoomName: "", 15 num OfBeds: "",15 numBeds: "", 16 16 price: "", 17 17 kitchenAvailable: false, … … 58 58 type="number" 59 59 placeholder="Внесете го бројот на кревети" 60 value={formData.num OfBeds}61 name="num OfBeds"60 value={formData.numBeds} 61 name="numBeds" 62 62 onChange={onFormChange} 63 63 /> … … 117 117 style={{ backgroundColor: "#159895" }} 118 118 size="md" 119 onClick={(e) => { 120 e.preventDefault(); 121 props.refresh((prev) => { 122 return ++prev; 123 }) 119 onClick={() => { 120 console.log(formData); 124 121 createHotelRoom(formData); 125 props.closeModal();126 122 }} 127 123 > -
frontend/src/Components/Forms/AddTransportForm.js
re6c2521 r5528b99 11 11 transportName: "", 12 12 carBrand: "", 13 carType: "",13 carType: false, 14 14 carManufacturedYear: 1900, 15 15 noPassengers: 0, … … 107 107 createTransport(formData, edit); 108 108 props.refresh((prev) => { 109 return ++prev;109 return prev + 1; 110 110 }) 111 if(!edit)112 props.closeModal()113 111 }} 114 112 > -
frontend/src/Components/Forms/EditRoomForm.js
re6c2521 r5528b99 28 28 } = useGet(`/hotel/rooms/${props.room.hotelRoomId}/available`) 29 29 30 console.log(`/hotel/rooms/${props.room.hotelRoomId}/available`)31 32 30 !isLoading && console.log(data) 33 31 … … 44 42 <tr> 45 43 <th>#</th> 44 <<<<<<< HEAD 46 45 <th>Oд</th> 47 46 <th>До</th> 48 47 <th>Цена</th> 48 ======= 49 <th>Достапно од</th> 50 <th>Достапно до</th> 51 <th>Број на соби</th> 52 >>>>>>> parent of ac19a0c (authContext impl, admin panel impl, search bar fixes, reservations listings impl) 49 53 </tr> 50 54 </thead> -
frontend/src/Components/Hooks/Hotel/useCreateHotel.js
re6c2521 r5528b99 6 6 const useCreateHotel = () => { 7 7 8 //const history = useNavigate(); 8 9 const createHotel = async (hotel, edit) => { 9 10 console.log({hotel}) 10 11 console.log(hotel) 11 console.log("vo createhotel")12 12 13 13 if(!edit) … … 16 16 .post(`/hotel/add`, hotel, { 17 17 params: { 18 userId: JSON.parse(localStorage.getItem("user")).userId18 userId: localStorage.getItem("userId") 19 19 } 20 20 }) -
frontend/src/Components/Hooks/Restaurant/useCreateRestaurant.js
re6c2521 r5528b99 15 15 .post(`/restaurant/add`, restaurant, { 16 16 params: { 17 userId: JSON.parse(localStorage.getItem('user')).userId,17 userId: localStorage.getItem('userId') 18 18 } 19 19 }) -
frontend/src/Components/Hooks/Transport/useCreateTransport.js
re6c2521 r5528b99 4 4 5 5 const useCreateTransport = () => { 6 const userId = JSON.parse(localStorage.getItem('user')).userId 6 7 7 const createTransport = async (transport, edit) => { 8 8 if(!edit) 9 9 { 10 10 await axios 11 .post(`/transport/add /` + userId, transport)11 .post(`/transport/add`, transport) 12 12 .then((res) => { 13 13 //history.push('/transport'); -
frontend/src/Components/Hooks/User/useLogin.js
re6c2521 r5528b99 4 4 import { Navigate, useAsyncValue, useNavigate } from "react-router-dom"; 5 5 import LoginForm from "../../Login/LoginForm.js"; 6 import {useAuth} from "../../Context/AuthContext";7 6 8 7 const useLogin = () => { 9 8 10 9 const navigator = useNavigate() 11 const Auth = useAuth();12 10 //const history = useNavigate(); 13 11 const login = async (loginData) => { … … 24 22 }) 25 23 .then((res) => { 26 console.log("RES LOGIN")27 console.log(res)28 if(res.status === 200)29 {30 const user = {31 sessionId: res.data.auth.details.sessionId,32 userId: res.data.auth.principal.userID,33 username: res.data.auth.principal.username,34 role: res.data.auth.principal.role,35 name: res.data.auth.principal.name,36 surname: res.data.auth.principal.surname,37 }38 Auth.userLogin(user);39 console.log(user)40 }41 24 const sessionId = res.data.auth.details.sessionId; 42 25 const userId = res.data.auth.principal.userID; 43 26 44 27 localStorage.setItem("sessionId", sessionId); 45 28 localStorage.setItem("userId", userId); -
frontend/src/Components/Hooks/useGet.js
re6c2521 r5528b99 11 11 console.log(localStorage.getItem("sessionId")) 12 12 console.log("url od get " + uurl) 13 <<<<<<< HEAD 13 14 await axios.get(uurl, {maxRedirects: 0}).then((res) => { 14 15 console.log(res); … … 22 23 // window.location.href = '/error' 23 24 }) 25 ======= 26 await axios. 27 get(uurl).then((res) => { 28 setData(res.data); 29 }).catch((err) => { 30 console.log(err) 31 }) 32 >>>>>>> parent of ac19a0c (authContext impl, admin panel impl, search bar fixes, reservations listings impl) 24 33 .finally(() => { 25 34 setIsLoading(false); … … 31 40 getData(url); 32 41 }, [dep, url, changed]); 33 42 34 43 return { 35 44 data, -
frontend/src/Components/HotelEdit/HotelEditTab.js
re6c2521 r5528b99 1 1 import React from "react"; 2 import { Container, Col, Row, Image, Nav, Tab} from "react-bootstrap";3 import { useState} from "react";4 import { FaTaxi, FaHotel} from "react-icons/fa";5 import { MdOutlineStickyNote2} from "react-icons/md";2 import { Container, Col, Row, Image, Nav, Tab } from "react-bootstrap"; 3 import { useState } from "react"; 4 import { FaTaxi, FaHotel } from "react-icons/fa"; 5 import { MdOutlineStickyNote2 } from "react-icons/md"; 6 6 import AddNew from "../Resources/AddNew"; 7 import { BiData} from "react-icons/bi"7 import { BiData } from "react-icons/bi" 8 8 import RoomListing from "./RoomListing"; 9 9 import HotelEditForm from "./HotelEditForm"; 10 10 import AddHotelForm from "../Forms/AddHotelForm"; 11 11 import EditModal from "../Resources/EditModal"; 12 import AddAvailability from "../Resources/AddAvailability";13 import useGet from "../Hooks/useGet";14 import ReservationListing from "./ReservationListing";15 12 16 13 function HotelEditTab(props) { 17 18 19 14 const [activeTab, setActiveTab] = useState("/hotel"); 15 const [modalData, setModalData] = useState(""); 16 const [show, setShow] = useState(false); 20 17 21 console.log(props) 18 const handleClose = () => setShow(false); 19 const handleShow = () => { 20 //e.preventDefault(); 21 setShow(true); 22 22 23 const { 24 data, 25 isLoading, 26 setData, 27 getData, 28 setChanged 29 } = useGet(`/hotel/${props.displayRoom.hotelId}/reservations/active`) 23 }; 30 24 31 !isLoading && console.log(data) 25 const showModal = (modalData) => { 26 setModalData(modalData); 27 handleShow(); 28 } 29 console.log(props.displayRoom) 32 30 33 const handleClose = () => setShow(false); 34 const handleShow = () => { 35 //e.preventDefault(); 36 setShow(true); 31 const handleSelect = (eventKey) => { 32 setActiveTab(eventKey); 33 }; 37 34 38 }; 39 40 const showModal = (modalData) => { 41 setModalData(modalData); 42 handleShow(); 43 } 44 console.log(props.displayRoom) 45 46 const handleSelect = (eventKey) => { 47 setActiveTab(eventKey); 48 }; 49 50 return ( 51 <Container className="rounded-5"> 52 <Tab.Container 53 activeKey={activeTab} 54 onSelect={handleSelect} 55 className="bg-dark rounded-5" 56 > 57 <Nav 58 fill 59 variant="tabs" 60 className="bg-body rounded-top-5" 61 activeKey="/hotel" 62 id="tab_item" 63 > 64 <Nav.Item className="tab_item rounded-5"> 65 <Nav.Link eventKey="/hotel" className="text-left rounded-5"> 35 return ( 36 <Container className="rounded-5"> 37 <Tab.Container 38 activeKey={activeTab} 39 onSelect={handleSelect} 40 className="bg-dark rounded-5" 41 > 42 <Nav 43 fill 44 variant="tabs" 45 className="bg-body rounded-top-5" 46 activeKey="/hotel" 47 id="tab_item" 48 > 49 <Nav.Item className="tab_item rounded-5"> 50 <Nav.Link eventKey="/hotel" className="text-left rounded-5"> 66 51 <span className="ikona"> 67 52 <FaHotel 68 69 style={{lineHeight: "100em"}}70 71 53 color="#159895" 54 style={{ lineHeight: "100em" }} 55 size={"1.5em"} 56 className="mx-3" 72 57 /> 73 58 </span> 74 75 76 77 78 59 <span className="ikona">Соби</span> 60 </Nav.Link> 61 </Nav.Item> 62 <Nav.Item className="tab_item"> 63 <Nav.Link eventKey="/restaurant"> 79 64 <span className="ikona"> 80 <MdOutlineStickyNote2 color="#159895" size={"1.5em"} className="mx-3" />65 <MdOutlineStickyNote2 color="#159895" size={"1.5em"} className="mx-3" /> 81 66 </span> 82 83 84 85 86 67 <span className="ikona">Резервации</span> 68 </Nav.Link> 69 </Nav.Item> 70 <Nav.Item className="tab_item rounded-5"> 71 <Nav.Link eventKey="/transport" className="text-left rounded-5"> 87 72 <span className="ikona"> 88 <BiData color="#159895" size={"1.5em"} className="mx-3" />73 <BiData color="#159895" size={"1.5em"} className="mx-3" /> 89 74 </span> 90 91 92 93 75 <span className="ikona">Општи податоци</span> 76 </Nav.Link> 77 </Nav.Item> 78 </Nav> 94 79 95 <Tab.Content className="py-5 px-3 border rounded-bottom-5 bg-light"> 96 <Tab.Pane eventKey="/hotel"> 97 {props.displayRoom.hotelRooms.map((room) => { 98 return <RoomListing key={room.hotelRoomId} data={room} showModal={showModal}/> 99 })} 100 <EditModal show={show} handleClose={handleClose} type="room" room={modalData}></EditModal> 101 <AddNew Id={props.displayRoom.hotelId} refresh={props.refresh} type="room"/> 102 </Tab.Pane> 103 <Tab.Pane eventKey="/restaurant"> 104 {!isLoading && data.map((res) => { 105 return ( 106 <ReservationListing data={res}/> 107 ) 108 })} 109 {/*<AddNew type="restaurant"/>*/} 110 </Tab.Pane> 111 <Tab.Pane eventKey="/transport"> 112 <AddHotelForm refresh={props.refresh} hotel={props.displayRoom}/> 113 </Tab.Pane> 114 </Tab.Content> 115 </Tab.Container> 116 </Container> 117 ); 80 <Tab.Content className="py-5 px-3 border rounded-bottom-5 bg-light"> 81 <Tab.Pane eventKey="/hotel"> 82 {props.displayRoom.hotelRooms.map((room) => { 83 return <RoomListing key={room.hotelRoomId} data={room} showModal={showModal}/> 84 })} 85 <EditModal show={show} handleClose={handleClose} type="room" room={modalData}></EditModal> 86 <AddNew Id={props.displayRoom.hotelId} refresh={props.refresh} type="room"/> 87 </Tab.Pane> 88 <Tab.Pane eventKey="/restaurant"> 89 <AddNew type="restaurant"/> 90 </Tab.Pane> 91 <Tab.Pane eventKey="/transport"> 92 <AddHotelForm refresh={props.refresh} hotel={props.displayRoom}/> 93 </Tab.Pane> 94 </Tab.Content> 95 </Tab.Container> 96 </Container> 97 ); 118 98 } 119 99 -
frontend/src/Components/Layout/Navbar/Navigation.js
re6c2521 r5528b99 7 7 import useGet from "../../Hooks/useGet"; 8 8 import axios from "../../../axios.js"; 9 <<<<<<< HEAD 9 10 import {useAuth} from "../../Context/AuthContext"; 10 11 import ImageUpload from "../../ImageUpload/ImageUpload"; 12 ======= 13 >>>>>>> parent of ac19a0c (authContext impl, admin panel impl, search bar fixes, reservations listings impl) 11 14 //import logo from 'assets/images/logo.png'; 12 15 //src="https://upload.wikimedia.org/wikipedia/commons/0/08/Vergina_Sun_-_Golden_Larnax.png" … … 14 17 function Navigation(props) { 15 18 const navigator = useNavigate(); 19 <<<<<<< HEAD 16 20 const Auth = useAuth(); 17 21 const isLoggedIn = Auth.userIsAuthenticated(); … … 22 26 const handleShow = () => setShow(true); 23 27 28 ======= 29 30 const { data, setData, isLoading, getData } = useGet("/username"); 31 32 >>>>>>> parent of ac19a0c (authContext impl, admin panel impl, search bar fixes, reservations listings impl) 24 33 return ( 25 34 <> … … 31 40 > 32 41 <Container> 33 <Navbar.Brand href=" /home">42 <Navbar.Brand href="#home"> 34 43 <span className="ikona"> 35 44 <Image … … 57 66 <Button onClick={handleShow}></Button> 58 67 </Nav.Link> 59 {!isLo ggedIn&& (68 {!isLoading && !data && ( 60 69 <Button 61 70 className="m-2" … … 69 78 </Button> 70 79 )} 71 { isLoggedIn&& (80 {!isLoading && data && ( 72 81 <> 73 82 <Nav.Link className="m-2" href="/profile"> 74 { Auth.getUser().username}83 {data} 75 84 </Nav.Link> 76 85 <Button … … 81 90 await axios.get("/logout") 82 91 .then((res) => { 83 console.log(res); 84 Auth.userLogout(); 92 console.log(res) 85 93 }) 86 94 .catch((err) => { -
frontend/src/Components/Resources/AddNew.js
re6c2521 r5528b99 56 56 </Modal.Header> 57 57 <Modal.Body> 58 {props.type === "hotel" && <AddHotelForm closeModal={handleClose}refresh={props.refresh}/>}59 {props.type === "room" && <AddRoomForm closeModal={handleClose}refresh={props.refresh} hotelId={props.Id}/>}60 {props.type === "restaurant" && <AddRestaurantForm edit="false" closeModal={handleClose}refresh={props.refresh}/>}61 {props.type === "transport" && <AddTransportForm closeModal={handleClose}refresh={props.refresh}/>}58 {props.type === "hotel" && <AddHotelForm refresh={props.refresh}/>} 59 {props.type === "room" && <AddRoomForm refresh={props.refresh} hotelId={props.Id}/>} 60 {props.type === "restaurant" && <AddRestaurantForm edit="false" refresh={props.refresh}/>} 61 {props.type === "transport" && <AddTransportForm refresh={props.refresh}/>} 62 62 {props.type === "menu" && <AddItemMenuForm Id={props.Id} refresh={props.refresh}/>} 63 63 {props.type === "route" && <AddTripForm transportId={props.transport.transportID} setSize={setSizeXl} refresh={props.refresh}/>} -
frontend/src/Components/Resources/EditModal.js
re6c2521 r5528b99 32 32 </Modal.Header> 33 33 <Modal.Body> 34 {props.type === "hotel" && <AddHotelForm refresh={props.refresh}/>}34 {props.type === "hotel" && <AddHotelForm/>} 35 35 {props.type === "room" && <EditRoomForm refresh={props.refresh} room={props.room}/>} 36 36 {props.type === "restaurant" && <AddRestaurantForm edit="false" refresh={props.refresh}/>} -
frontend/src/Components/Resources/ResourceListing.js
re6c2521 r5528b99 8 8 9 9 const ResourceListing = (props) => { 10 11 console.log("props " + props.id) 12 10 13 11 14 const type = props.type == "hotel" ? "сместувањето" : props.type == "restaurant" ? "ресторанот" : "превозот"; 12 15 const name = props.type == "hotel" ? props.data.hotelName : props.type == "restaurant" ? props.data.restaurantName : props.data.transportName 16 <<<<<<< HEAD 13 17 const id = props.type == "hotel" ? props.data.hotelId : props.type == "restaurant" ? props.data.restaurantID : props.data.transportID 14 18 console.log(props.data) … … 54 58 </Col> 55 59 <Col className="d-flex justify-content-center align-content-center"> 60 ======= 61 const id = props.type == "hotel" ? props.data.hotelId : props.type == "restaurant" ? props.data.resturantId : props.data.transportID 62 return(<> 63 <a href={`${props.type}/${id}`} style={{textDecoration: "none", color:"black"}}> 64 <Container className="py-3 px-1 my-4" 65 style={{ 66 border: "4px solid #159895", 67 borderRadius: "1em", 68 boxShadow: "0 3px 5px #159895", 69 maxWidth: "90%", 70 }}> 71 <Row> 72 <Col className="d-flex justify-content-center"> 73 <Image 74 src="https://www.imgacademy.com/sites/default/files/legacyhotel.jpg" 75 style={{ 76 height: "8em", 77 borderRadius: "1em", 78 boxShadow: "0 4px 20px lightblue", 79 maxWidth: "100%", 80 }} 81 ></Image> 82 </Col> 83 <Col > 84 <h2 style={{textAlign: "left"}}>{name}</h2> 85 {props.type === "hotel" && (<> 86 <h5 style={{textAlign: "left"}}>{props.data.hotelLocation}</h5> 87 <h5 style={{textAlign: "left"}}>{props.data.hotelEmail}</h5> 88 </>)} 89 {props.type === "restaurant" && (<> 90 <h5 style={{textAlign: "left"}}>{props.data.restaurantLocation}</h5> 91 <h5 style={{textAlign: "left"}}>{props.data.cousineType} кујна</h5> 92 </>)} 93 {props.type === "transport" && (<> 94 <h5 style={{textAlign: "left"}}>{props.data.carBrand}</h5> 95 <h5 style={{textAlign: "left"}}>{props.data.carPlate}</h5> 96 </>)} 97 </Col> 98 <Col className="d-flex justify-content-center align-content-center" > 99 >>>>>>> parent of ac19a0c (authContext impl, admin panel impl, search bar fixes, reservations listings impl) 56 100 <span 57 101 style={{ -
frontend/src/Components/Resources/ResourcesTab.js
re6c2521 r5528b99 10 10 11 11 function ResourcesTab(props) { 12 <<<<<<< HEAD 12 13 const [activeTab, setActiveTab] = useState(props.tab); 13 14 const userId = JSON.parse(localStorage.getItem("user")).userId; … … 35 36 <Nav.Item className="tab_item rounded-5"> 36 37 <Nav.Link href="/resources/hotel" className="text-left rounded-5"> 38 ======= 39 const [activeTab, setActiveTab] = useState(props.tab); 40 // const [changed, setChanged] = useState(0); 41 const userId = localStorage.getItem("userId"); 42 const { data, setData, isLoading, getData, setChanged } = useGet(`${props.tab}/user/${userId}`); 43 44 const handleSelect = (eventKey) => { 45 setActiveTab(eventKey); 46 console.log(props.refresh); 47 props.refresh(eventKey); 48 console.log("refresh" + eventKey); 49 }; 50 51 !isLoading && console.log(data); 52 console.log(props.tab); 53 54 return ( 55 <Container className="rounded-5"> 56 <Tab.Container 57 activeKey={activeTab} 58 onSelect={handleSelect} 59 className="bg-dark rounded-5" 60 > 61 <Nav 62 fill 63 variant="tabs" 64 className="bg-body rounded-top-5" 65 activeKey="/hotel" 66 id="tab_item" 67 > 68 <Nav.Item className="tab_item rounded-5"> 69 <Nav.Link href="/resources/hotel" className="text-left rounded-5"> 70 >>>>>>> parent of ac19a0c (authContext impl, admin panel impl, search bar fixes, reservations listings impl) 37 71 <span className="ikona"> 38 72 <FaHotel … … 67 101 </Nav> 68 102 103 <<<<<<< HEAD 69 104 <Tab.Content className="py-5 px-3 border rounded-bottom-5 bg-light"> 70 105 <Tab.Pane eventKey="/hotel" key="hotelPane"> … … 115 150 </Container> 116 151 ); 152 ======= 153 <Tab.Content className="py-5 px-3 border rounded-bottom-5 bg-light"> 154 <Tab.Pane eventKey="/hotel" key="hotelPane"> 155 {props.tab == "/hotel" && !isLoading && data != null && 156 data.map((hotel) => { 157 return ( 158 <Link key={hotel.hotelId} to={"/resources/hotel/" + hotel.hotelId}> 159 <ResourceListing 160 key={hotel.hotelId} 161 id={hotel.hotelId} 162 type="hotel" 163 data={hotel} 164 /> 165 </Link> 166 ); 167 })} 168 <AddNew type="hotel" refresh={setChanged} /> 169 </Tab.Pane> 170 <Tab.Pane eventKey="/restaurant" key="restaurantPane"> 171 {props.tab == "/restaurant" && !isLoading && data != null && 172 data.map((restaurant) => { 173 console.log("mapiranje " + restaurant) 174 return ( 175 <Link key={restaurant.restaurantId} to={"/resources/restaurant/" + restaurant.restaurantID}> 176 <ResourceListing 177 key={restaurant.restaurantId} 178 type="restaurant" 179 data={restaurant} 180 /> 181 </Link> 182 ); 183 })} 184 <AddNew type="restaurant" refresh={setChanged}/> 185 </Tab.Pane> 186 <Tab.Pane eventKey="/transport" key="transportPane"> 187 {props.tab == "/transport" && !isLoading && data.length > 0 && 188 data.map((transport) => { 189 return ( 190 <ResourceListing 191 key={transport.transportId} 192 id={transport.transportId} 193 type="transport" 194 data={transport} 195 /> 196 ); 197 })} 198 <AddNew type="transport" refresh={setChanged}/> 199 </Tab.Pane> 200 </Tab.Content> 201 </Tab.Container> 202 </Container> 203 ); 204 >>>>>>> parent of ac19a0c (authContext impl, admin panel impl, search bar fixes, reservations listings impl) 117 205 } 118 206 -
frontend/src/Components/RestaurantEdit/RestaurantEditTab.js
re6c2521 r5528b99 100 100 return <MenuListing key={menu.menuId} data={menu} showModal={showModal}/> 101 101 })} 102 {activeTab === '/hotel' && <EditModal show={show} refresh={props.refresh}handleClose={handleClose} type="menu" menu={modalData}></EditModal>}102 {activeTab === '/hotel' && <EditModal show={show} handleClose={handleClose} type="menu" menu={modalData}></EditModal>} 103 103 <AddNew Id={props.displayMenu.restaurantID} refresh={props.refresh} type="menu"/> 104 104 </Tab.Pane> -
frontend/src/Components/SearchCriterias/SearchCriteriasBar.js
re6c2521 r5528b99 2 2 import { Container, Form, Button, Row, Col } from "react-bootstrap"; 3 3 import useFormData from "../Hooks/useFormData"; 4 <<<<<<< HEAD 4 5 import SearchCriteriasHotel from "./SearchCriteriasHotel"; 5 6 import SearchCriteriasTransport from "./SearchCriteriasTransport"; 6 7 import SearchCriteriasRestaurant from "./SearchCriteriasRestaurant"; 8 ======= 9 >>>>>>> parent of ac19a0c (authContext impl, admin panel impl, search bar fixes, reservations listings impl) 7 10 8 const SearchCriterias Bar= (props) => {11 const SearchCriterias = (props) => { 9 12 10 const { criterias, type } = props 13 const { formData, onFormChange, onCheckBoxChange, setFormData} = useFormData(props.criterias) 14 console.log("KRITERIUMI") 15 console.log(formData) 11 16 17 <<<<<<< HEAD 12 18 return ( 13 19 <> … … 18 24 ) 19 25 } 26 ======= 27 return ( 28 <> 29 <Container 30 className="p-1 pb-0 mb-5 mt-3 rounded-2" 31 style={{ backgroundColor: "#002B5B", width: "65%"}} 32 > 33 <Form className="rounded-5"> 34 <Row className="gx-1"> 35 <Col> 36 <Form.Floating className="mb-3"> 37 <Form.Control 38 size="md" 39 type="text" 40 placeholder="Каде ќе патувате?:" 41 id="location" 42 name="hotelLocation" 43 onChange={onFormChange} 44 value={formData.hotelLocation} 45 ></Form.Control> 46 <label htmlFor="location">Локација:</label> 47 </Form.Floating> 48 </Col> 49 <Col> 50 <Form.Floating className="mb-3"> 51 <Form.Control 52 size="md" 53 type="date" 54 placeholder="Датум на пристигнување:" 55 id="dateFrom" 56 name="dateFrom" 57 onChange={onFormChange} 58 value={formData.dateFrom} 59 ></Form.Control> 60 <label htmlFor="dateFrom">Датум на пристигнување:</label> 61 </Form.Floating> 62 </Col> 63 <Col> 64 <Form.Floating className="mb-3"> 65 <Form.Control 66 size="md" 67 type="date" 68 placeholder="Датум на заминување:" 69 id="dateTo" 70 name="dateTo" 71 onChange={onFormChange} 72 value={formData.dateTo} 73 ></Form.Control> 74 <label htmlFor="dateTo">Датум на заминување:</label> 75 </Form.Floating> 76 </Col> 77 <Col> 78 <Form.Floating className="mb-3"> 79 <Form.Control 80 size="md" 81 type="number" 82 placeholder="Број на гости:" 83 id="floatingPassengers" 84 name="numBeds" 85 onChange={onFormChange} 86 value={formData.numBeds} 87 ></Form.Control> 88 <label htmlFor="floatingPassengers">Број на гости:</label> 89 </Form.Floating> 90 </Col> 91 <Col> 92 <Form.Group className="my-1"> 93 <Button 94 type="submit" 95 style={{ backgroundColor: "#159895" }} 96 size="lg" 97 className="w-100" 98 onClick={(e) => { 99 e.preventDefault(); 100 window.location.href = `/search/hotel/${formData.hotelLocation}/${formData.dateFrom}/${formData.dateTo}/${formData.numBeds}` 101 }} 102 > 103 <span className="ikona mx-3">Пребарај</span> 104 </Button> 105 </Form.Group> 106 </Col> 107 </Row> 108 </Form> 109 </Container> 110 </> 111 ); 112 }; 113 >>>>>>> parent of ac19a0c (authContext impl, admin panel impl, search bar fixes, reservations listings impl) 20 114 21 export default SearchCriterias Bar;115 export default SearchCriterias; -
frontend/src/Components/Tab/TabFormTransport.js
re6c2521 r5528b99 2 2 import { Button, Col, Container, Form, Row } from "react-bootstrap"; 3 3 import { HiMagnifyingGlass } from "react-icons/hi2" 4 import useFormData from "../Hooks/useFormData";5 4 6 5 function TabFormTransport() { 7 8 const { formData, onFormChange, setFormData } = useFormData({9 from: undefined,10 to: undefined,11 date: undefined,12 numPassengers: 013 })14 15 6 return ( 16 7 <Form> … … 23 14 placeholder="Од:" 24 15 id="floatingFrom" 25 value={formData.from}26 name={'from'}27 onChange={onFormChange}28 16 ></Form.Control> 29 17 <label htmlFor="floatingFrom">Од:</label> … … 37 25 placeholder="До:" 38 26 id="floatingTo" 39 name={'to'}40 value={formData.to}41 onChange={onFormChange}42 27 ></Form.Control> 43 28 <label htmlFor="floatingTo">До:</label> … … 51 36 placeholder="Датум:" 52 37 id="floatingDate" 53 name={'date'}54 value={formData.date}55 onChange={onFormChange}56 38 ></Form.Control> 57 39 <label htmlFor="floatingDate">Датум:</label> … … 64 46 type="number" 65 47 placeholder="Број на патници:" 66 name={'numPassengers'}67 48 id="floatingPassengers" 68 value={formData.numPassengers}69 onChange={onFormChange}70 49 ></Form.Control> 71 50 <label htmlFor="floatingPassengers">Број на патници:</label> 72 51 </Form.Floating> 73 52 <Form.Group className="my-1"> 74 <Button type="submit" style={{backgroundColor: "#159895"}} size="lg" onClick={(e) => { 75 e.preventDefault(); 76 window.location.href = `/search/transport/${formData.from}/${formData.to}/${formData.date}/${formData.numPassengers}` 77 }}> 53 <Button type="submit" style={{backgroundColor: "#159895"}} size="lg"> 78 54 <span className="ikona my-1"><HiMagnifyingGlass/></span> 79 55 <span className="ikona mx-3">Пребарај</span> -
frontend/src/Components/TransportDetails/FinalPoint.js
re6c2521 r5528b99 17 17 <> 18 18 <Row> 19 {props.left === "true" && <Col className="d-flex flex-column justify-content-center col- md-4" style={{paddingLeft: "2.6rem"}}>19 {props.left === "true" && <Col className="d-flex flex-column justify-content-center col-auto" style={{paddingLeft: "2.6rem"}}> 20 20 <h5 className="m-auto">{getTimeAsString(props.time)}</h5> 21 21 </Col> } -
frontend/src/Components/TransportDetails/Line.js
re6c2521 r5528b99 2 2 3 3 const Line = (props) => { 4 const left = props.left === "true" ? "1.8rem" : "1.85rem"; 4 console.log(props.left) 5 const left = props.left === "true" ? "9.08rem" : "2.6rem"; 6 console.log({borderLeft: "5px solid #159895", height: "3em", marginLeft: left, marginTop: "-1.4rem", marginBottom: "-1.4rem"}) 5 7 return (<> 6 8 <div style={{borderLeft: "5px solid #159895", height: "3em", marginLeft: left, marginTop: "-1.4rem", marginBottom: "-1.4rem"}}></div> -
frontend/src/Components/TransportDetails/Waypoint.js
re6c2521 r5528b99 16 16 } 17 17 18 <<<<<<< HEAD 18 19 return ( 19 20 <> … … 57 58 </> 58 59 ); 60 ======= 61 return ( 62 <> 63 <Row className="d-flex flex-row gap-0"> 64 {props.left === "true" && <Col className="d-flex flex-column justify-content-center col-auto" style={{paddingLeft: "2.6rem"}}> 65 <h5 style={{color: props.routes === "true" ? "white" : "" }} className="m-auto">{getTimeAsString(props.time)}</h5> 66 </Col>} 67 <Col md="auto"> 68 <RxDot size={"4rem"} color="#159895"></RxDot> 69 </Col> 70 <Col className="d-flex flex-column justify-content-center"> 71 <h3 className="my-auto" style={{...style, fontSize: props.routes === "true" ? "1.3rem" : "", color: props.routes === "true" ? "#708090 " : ""}}>{props.city}</h3> 72 </Col> 73 {props.left !== "true" && <Col className="d-flex flex-column justify-content-center"> 74 <h5>{getTimeAsString(props.time)}</h5> 75 </Col>} 76 </Row> 77 <Row> 78 <Line left={props.left}> </Line> 79 </Row> 80 </> 81 ); 82 >>>>>>> parent of ac19a0c (authContext impl, admin panel impl, search bar fixes, reservations listings impl) 59 83 }; 60 84 -
frontend/src/Components/TransportEdit/TransportEditTab.js
re6c2521 r5528b99 12 12 function TransportEditTab(props) { 13 13 const [activeTab, setActiveTab] = useState("/hotel"); 14 const link = "/transport/" + props.displayRoute.transportID + "/available"; 14 15 console.log(props.displayRoute) 16 const [changed, setChanged] = useState(0) 17 const { data, setData, isLoading, getData } = useGet(link, changed); 15 18 16 19 -
frontend/src/Components/TransportEdit/TransportListing.js
re6c2521 r5528b99 9 9 10 10 //const type = props.type == "hotel" ? "сместувањето" : props.type == "restaurant" ? "ресторанот" : "превозот"; 11 console.log(props.data) 12 console.log(props.data.from) 11 13 return (<> 12 14 <a href="#" style={{textDecoration: "none", color: "black"}}> … … 32 34 <Col className="d-flex flex-column justify-content-center" style={{textAlign: "left"}}> 33 35 <h2>{props.data.from} - {props.data.to}</h2> 36 {/* <h6>{props.data.routeCities}</h6> */} 34 37 <h6>{props.data.routes.map(x => x).join(", ")}</h6> 35 38 </Col> … … 37 40 <Col className="d-flex flex-column justify-content-center align-content-center"> 38 41 <h5>Цена:</h5> 39 <h4>{props.data.maxPrice}$</h4> 42 {/* <h4>{props.data.routePrice}</h4> */} 43 <h4>99$</h4> 40 44 </Col> 41 45 </Row> -
frontend/src/Components/useFormNested.js
re6c2521 r5528b99 7 7 console.log(e) 8 8 9 const dependantRoutes = e.target. name === 'freeSpace' ? e.target.parentElement.getAttribute('dependantRoutes').split(',') : undefined;9 const dependantRoutes = e.target.parentElement.getAttribute('dependantRoutes').split(',') 10 10 console.log(dependantRoutes) 11 11
Note:
See TracChangeset
for help on using the changeset viewer.