source: src/main/resources/static/WishlistPage.html@ 57e58a3

Last change on this file since 57e58a3 was 57e58a3, checked in by ste08 <sjovanoska@…>, 4 months ago

Initial commit

  • Property mode set to 100644
File size: 3.0 KB
Line 
1<!DOCTYPE html>
2<html lang="en">
3<head>
4 <meta charset="UTF-8">
5 <meta name="viewport" content="width=device-width, initial-scale=1.0">
6 <title>Wishlist</title>
7 <link rel="stylesheet" href="/css/main.css">
8 <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
9</head>
10<body>
11
12<div id="app" class="wishlist-page">
13 <header class="app-header">
14 <button class="logout-btn" @click="logout">Log Out</button>
15 </header>
16
17 <div class="main-content">
18 <div class="wishlist-container">
19 <h1>Your Wishlist</h1>
20
21 <div class="wishlist-list">
22 <div class="wishlist-item"
23 v-for="flight in wishlistedFlights"
24 :key="flight.id">
25 <input type="checkbox"
26 v-model="flight.selected"
27 :id="'flight-' + flight.id" />
28 <span>{{ flight.destination }} - {{ flight.date }} - ${{ flight.price }}</span>
29
30 <button @click="showReviews(flight)" class="show-reviews-btn">
31 Show Reviews
32 </button>
33 </div>
34 </div>
35
36 <button v-if="selectedFlights.length" @click="showBookingModal" class="book-btn">
37 Book Selected Flights
38 </button>
39 </div>
40 </div>
41
42 <div v-if="showModal" class="modal-overlay">
43 <div class="modal">
44 <h3>Are you sure you want to book the selected flights?</h3>
45 <div class="modal-actions">
46 <button @click="confirmBooking" class="confirm-btn">Confirm</button>
47 <button @click="cancelBooking" class="cancel-btn">Cancel</button>
48 </div>
49 </div>
50 </div>
51</div>
52
53<script>
54 new Vue({
55 el: '#app',
56 data: {
57 flights: [
58 { id: 1, destination: 'New York', date: '2025-03-01', price: 200, selected: false, wishlisted: true },
59 { id: 2, destination: 'London', date: '2025-03-10', price: 250, selected: false, wishlisted: true },
60 { id: 3, destination: 'Paris', date: '2025-03-15', price: 300, selected: false, wishlisted: true },
61 ],
62 showModal: false
63 },
64 computed: {
65 wishlistedFlights() {
66 return this.flights.filter(flight => flight.wishlisted);
67 },
68 selectedFlights() {
69 return this.wishlistedFlights.filter(flight => flight.selected);
70 }
71 },
72 methods: {
73 showBookingModal() {
74 this.showModal = true;
75 },
76 confirmBooking() {
77 window.location.href = '/transaction';
78 },
79 cancelBooking() {
80 this.showModal = false;
81 },
82 showReviews(flight) {
83 window.location.href = `/review?flightId=${flight.id}`;
84 },
85 logout() {
86 window.location.href = '/';
87 }
88 }
89 });
90</script>
91
92</body>
93</html>
Note: See TracBrowser for help on using the repository browser.