Skip to content

Commit

Permalink
New main branch to deal w/ reversion issues
Browse files Browse the repository at this point in the history
  • Loading branch information
ibhattacharj committed Dec 12, 2024
1 parent 716fb5b commit 302f5b8
Show file tree
Hide file tree
Showing 2,613 changed files with 507,522 additions and 45 deletions.
69 changes: 54 additions & 15 deletions frontend/source/components/eventPage/eventPage.js
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,9 @@ export function showEventDetails(event) {
document.getElementById('back-to-main').addEventListener('click', backToMain);
document.getElementById('share-button').addEventListener('click', () => shareEvent(event));
document.getElementById('rsvp-button').addEventListener('click', rsvpEvent);
document.getElementById("submit-review").addEventListener("click", submitReview);
document
.getElementById("submit-review")
.addEventListener("click", (event) => submitReview(event));
}

function updateInterested(event) {
Expand Down Expand Up @@ -71,22 +73,59 @@ function shareEvent(event) {
.catch((error) => console.error('Error', error));
}

function submitReview() {
const reviewText = document.getElementById("review-text").value.trim();
const reviewBox = document.getElementById("review-box");

// function submitReview() {
// const reviewText = document.getElementById("review-text").value.trim();
// const reviewBox = document.getElementById("review-box");

// if (reviewText) {
// const reviewElement = document.createElement("div");
// reviewElement.className = "review";
// reviewElement.textContent = reviewText;

// reviewBox.appendChild(reviewElement);

// document.getElementById("review-text").value = "";
// }
// // else {
// // alert("Please write a review before submitting.");
// // }
// }

async function submitReview(event) {
// get the typed text
event.preventDefault();
const reviewText = document.getElementById("review-text").value;
const eventTitle = document.querySelector(".event-detail-title");
const eventName = eventTitle
? eventTitle.innerText
: "No event name available";
// if there is text, then we need to post to db
if (reviewText) {
const reviewElement = document.createElement("div");
reviewElement.className = "review";
reviewElement.textContent = reviewText;

reviewBox.appendChild(reviewElement);

document.getElementById("review-text").value = "";
const response = await fetch("http://127.0.0.1:4000/api/reviews", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
// in db, records contain the text and the event its for
body: JSON.stringify({
review_text: reviewText,
event_name: eventName,
}),
});

// the post request should return res with just the text
const newReview = await response.json();
if (response.ok) {
const reviewBox = document.getElementById("review-box");
reviewBox.innerHTML += `<p>${newReview.review_text}</p>`; // Append review
document.getElementById("review-text").value = ""; // Clear text area
alert("Review Submitted!");
} else {
alert("Failed to submit review");
}
} else {
alert("Please write a review");
}
// else {
// alert("Please write a review before submitting.");
// }
}

function rsvpEvent(event) {
Expand Down
16 changes: 9 additions & 7 deletions frontend/source/components/login/login.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>LocalVibes Login</title>
<link rel="stylesheet" href="login.css"> <!-- Link to your CSS file -->
<!--<link rel="stylesheet" href="login.css"> Link to your CSS file -->
<link rel="stylesheet" type="text/css" href="/logincss" />

<script type='module' src="login.js" defer></script>
<!--<script type='module' src="main.js" defer></script>-->
</head>
<body>

Expand All @@ -16,14 +17,15 @@
<div class="login">
<h1>Login</h1>
<div class="input-box">
<input type="text" placeholder="Username" required>
<input type="text" id="username" placeholder="Username" required>
</div>
<div class="input-box">
<input type="password" placeholder="Password" required>
<input type="password" id="password" placeholder="Password" required>
</div>
<a href="index.html">
<button class="button">Login</button> <!--change to submit instead of href-->
</a>
<!--<a href="index.html">-->
<button class="button" onclick="login()">Login</button> <!--change to submit instead of href-->
<!--</a>-->
<a href="/auth/google">Login with Google</a>
<div class="signup">
<p>Create your account
<a href="signup.html">here</a></p>
Expand Down
33 changes: 33 additions & 0 deletions frontend/source/components/login/login.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
async function register() {
const email = document.getElementById("email").value;
const username = document.getElementById("username").value;
const password = document.getElementById("password").value;
const response = await fetch("/register", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ email, username, password }),
});
const data = await response.json();
console.log(JSON.stringify(data, null, 2));
alert(data.message);
}

async function login() {
const username = document.getElementById("username").value;
const password = document.getElementById("password").value;
const response = await fetch("/login", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ username, password }),
});
const data = await response.json();
console.log(JSON.stringify(data, null, 2));
alert(data.message);
}

async function logout() {
const response = await fetch("/logout");
const data = await response.json();
console.log(JSON.stringify(data, null, 2));
alert(data.message);
}
9 changes: 5 additions & 4 deletions frontend/source/components/login/signup.html
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,16 @@
<div class="signup">
<h1>Signup</h1>
<div class="input-box">
<input type="email" placeholder="Email" required>
<input type="email" id="email" placeholder="Email" required>
</div>
<div class="input-box">
<input type="text" placeholder="Username" required>
<input type="text" id="username" placeholder="Username" required>
</div>
<div class="input-box">
<input type="password" placeholder="Password" required>
<input type="password" id="password" placeholder="Password" required>
</div>
<button type="submit" class="button">Signup</button>
<button class="button" onclick="register()">Signup</button>
<a href="/auth/google">Signup with Google</a>
<div class="signup">
<p>Login
<a href="login.html">here</a></p>
Expand Down
36 changes: 19 additions & 17 deletions frontend/source/components/tags/tags/tags.js
Original file line number Diff line number Diff line change
@@ -1,32 +1,34 @@
const tags = document.querySelectorAll('.tag');
const tags = document.querySelectorAll(".tag");

tags.forEach(tag => {
tag.addEventListener('click', () => {
const genre = tag.getAttribute('data-genre');
tags.forEach((tag) => {
tag.addEventListener("click", () => {
const genre = tag.getAttribute("data-genre");

tags.forEach(t => t.classList.remove('active'));
tag.classList.add('active');
tags.forEach((t) => t.classList.remove("active"));
tag.classList.add("active");

fetch(`http://127.0.0.1:4000/events/search?genre=${encodeURIComponent(genre)}`) //fetch events filtered by selected tag
.then(response => {
fetch(
`http://127.0.0.1:4000/events/search?genre=${encodeURIComponent(genre)}`
) //fetch events filtered by selected tag
.then((response) => {
if (!response.ok) {
throw new Error('Failed to fetch events');
throw new Error("Failed to fetch events");
}
return response.json();
})
.then(events => {
const eventsContainer = document.querySelector('.events');
eventsContainer.innerHTML = ''; //clear existing events
.then((events) => {
const eventsContainer = document.querySelector(".events");
eventsContainer.innerHTML = ""; //clear existing events

events.forEach(event => {
const eventElement = document.createElement('div');
eventElement.classList.add('event');
events.forEach((event) => {
const eventElement = document.createElement("div");
eventElement.classList.add("event");
eventElement.textContent = event.name;
eventsContainer.appendChild(eventElement);
});
})
.catch(error => {
console.error('Error fetching events:', error);
.catch((error) => {
console.error("Error fetching events:", error);
});
});
});
Loading

0 comments on commit 302f5b8

Please sign in to comment.