mirror of
https://github.com/cse110-fa22-group29/cse110-fa22-group29.git
synced 2025-09-09 16:17:22 +00:00
Compare commits
40 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
4ba7029aba | ||
|
ff4ceed4c8 | ||
|
1670da2527 | ||
|
aa7e13b205 | ||
|
9d514f2228 | ||
|
4731544a26 | ||
|
6af3bb2927 | ||
|
ec46770a02 | ||
|
d4a96f0cc2 | ||
|
751cd964ac | ||
|
416f32a552 | ||
|
1012cc56d5 | ||
|
30ffe3087c | ||
|
c1118b65bb | ||
|
e3c87987be | ||
|
7b53862773 | ||
|
a0c2760b1e | ||
|
65224d88c7 | ||
|
3e83720e6a | ||
|
5d90e7636f | ||
|
2ab051c672 | ||
|
e7bcf3f254 | ||
|
f48cc18b38 | ||
|
2640b10a2d | ||
|
0d27862c89 | ||
|
cb5882a04f | ||
|
08bd1dc3ba | ||
|
35c8619f87 | ||
|
6d8dc93543 | ||
|
aad4f70304 | ||
|
a1499013dc | ||
|
b15c31722f | ||
|
8635ca87a1 | ||
|
c6b7134704 | ||
|
4d9c4f854b | ||
|
3688e71a33 | ||
|
4ce4f2b2e2 | ||
|
6be461cb08 | ||
|
a2948f7aa8 | ||
|
e9d33edf00 |
4
.github/workflows/deploy-githubpages.yml
vendored
4
.github/workflows/deploy-githubpages.yml
vendored
@@ -38,8 +38,8 @@ jobs:
|
|||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: sudo npm install
|
run: sudo npm install -g jsdoc
|
||||||
- name: Run tests
|
- name: Run js-doc
|
||||||
run: sudo npm run js-doc
|
run: sudo npm run js-doc
|
||||||
- name: Setup Pages
|
- name: Setup Pages
|
||||||
uses: actions/configure-pages@v2
|
uses: actions/configure-pages@v2
|
||||||
|
8
.github/workflows/js-unittest.yml
vendored
8
.github/workflows/js-unittest.yml
vendored
@@ -22,8 +22,8 @@ jobs:
|
|||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: sudo npm install
|
run: npm install
|
||||||
- name: Start local http server
|
- name: Start local http server
|
||||||
run: sudo npm run http-server &
|
run: npm run http-server &
|
||||||
- name: Run tests
|
- name: Run tests with coverage
|
||||||
run: sudo npm test
|
run: npm run coverage
|
||||||
|
4
.gitignore
vendored
4
.gitignore
vendored
@@ -1,4 +1,6 @@
|
|||||||
**/.devcontainer/*
|
**/.devcontainer/*
|
||||||
**/node_modules/*
|
**/node_modules/*
|
||||||
**/package-lock.json
|
**/package-lock.json
|
||||||
**/*.vscode/*
|
**/.vscode/*
|
||||||
|
**/.nyc_output/*
|
||||||
|
**/coverage/*
|
13
README.md
13
README.md
@@ -1,5 +1,14 @@
|
|||||||
# cse110-fa22-group29
|
# My Meal Journal
|
||||||
|
|
||||||
|
My Meal Journal is a local-first journaling application on the web designed for recording your standout meal experiences. The app utilizes local storage in the browser to store invidual journal entries with support for tagging, filtering, image posting, and more!<br>
|
||||||
|
|
||||||
|
The site is completely static with no front-end or back-end libraries employed. As such cross browser support is relatively strong and site performance is very reliable.
|
||||||
|
|
||||||
|
Access the Site Here:<br>
|
||||||
|
[My Meal Journal](https://cse110-fa22-group29.github.io/cse110-fa22-group29/)
|
||||||
|
|
||||||
|
Meet the Team:<br>
|
||||||
[Team Page Link](https://github.com/cse110-fa22-group29/cse110-fa22-group29/blob/main/admin/team.md)
|
[Team Page Link](https://github.com/cse110-fa22-group29/cse110-fa22-group29/blob/main/admin/team.md)
|
||||||
|
|
||||||
[Food Journal](https://cse110-fa22-group29.github.io/cse110-fa22-group29/)
|
If you enjoyed the site or have suggestion for how we can improve it don't hesitate to reach out to the developers!<br>
|
||||||
|
Crafted with ❤️ and care by students of the University of California San Diego.
|
||||||
|
@@ -26,7 +26,7 @@
|
|||||||
|
|
||||||
- #### About Me:
|
- #### About Me:
|
||||||
- Hello World! I'm a fifth year (3rd year transfer) computer science major from the North Bay Area. Web development has been a big focus of mine since taking Prof Powell's 134B last winter and I'm stoked to be back in the "full stack" developer seat for 110. I am the second the team lead and in addition to my love for leading and working on team projects I am also fascinated by web development technologies including containerization, infrastructure as code (IaC), software as a service (SAAS), and web-based encryption (security). I am also an avid DJ and the traininer manmager for the DJ club on campus. This quarter is shaping up to be a memorable one!
|
- Hello World! I'm a fifth year (3rd year transfer) computer science major from the North Bay Area. Web development has been a big focus of mine since taking Prof Powell's 134B last winter and I'm stoked to be back in the "full stack" developer seat for 110. I am the second the team lead and in addition to my love for leading and working on team projects I am also fascinated by web development technologies including containerization, infrastructure as code (IaC), software as a service (SAAS), and web-based encryption (security). I am also an avid DJ and the traininer manmager for the DJ club on campus. This quarter is shaping up to be a memorable one!
|
||||||
- #### Link to Github: https://github.com/look-its-ashton
|
- #### Link to Github: https://github.com/CODE-REFINARY
|
||||||
|
|
||||||
### **Gavyn Ezell**
|
### **Gavyn Ezell**
|
||||||
|
|
||||||
|
6
admin/videos/final-videos.md
Normal file
6
admin/videos/final-videos.md
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
# Final Video Links
|
||||||
|
## Link to Public Video:
|
||||||
|
https://www.youtube.com/watch?v=6o8SH_964Fo
|
||||||
|
|
||||||
|
## Link to Private Video:
|
||||||
|
https://www.youtube.com/watch?v=-iu8kXFZnCw
|
@@ -4,6 +4,7 @@
|
|||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "mocha --recursive --require mock-local-storage './{,!(node_modules)/**}/*.test.js'",
|
"test": "mocha --recursive --require mock-local-storage './{,!(node_modules)/**}/*.test.js'",
|
||||||
|
"coverage": "c8 --check-coverage --lines 90 --functions 90 --branches 90 npm run test",
|
||||||
"lint-js": "eslint **/*.js",
|
"lint-js": "eslint **/*.js",
|
||||||
"fix-js": "eslint --fix **/*.js",
|
"fix-js": "eslint --fix **/*.js",
|
||||||
"lint-html": "htmlhint **/*.html",
|
"lint-html": "htmlhint **/*.html",
|
||||||
@@ -11,9 +12,11 @@
|
|||||||
"fix-css": "stylelint --fix **/*.css",
|
"fix-css": "stylelint --fix **/*.css",
|
||||||
"http-server": "http-server source",
|
"http-server": "http-server source",
|
||||||
"lint-prettier": "prettier --check .",
|
"lint-prettier": "prettier --check .",
|
||||||
"fix-prettier": "prettier --write ."
|
"fix-prettier": "prettier --write .",
|
||||||
|
"js-doc": "jsdoc -d source/docs/ -r source/"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"c8": "^7.12.0",
|
||||||
"eslint": "^8.27.0",
|
"eslint": "^8.27.0",
|
||||||
"htmlhint": "1.1.4",
|
"htmlhint": "1.1.4",
|
||||||
"http-server": "",
|
"http-server": "",
|
||||||
|
@@ -22,7 +22,7 @@
|
|||||||
<!-- Setting up logo and site name at the top of the website -->
|
<!-- Setting up logo and site name at the top of the website -->
|
||||||
<div class="top-bar">
|
<div class="top-bar">
|
||||||
<img src="./assets/images/Logo.png" alt="logo" />
|
<img src="./assets/images/Logo.png" alt="logo" />
|
||||||
<h1>Food Journal</h1>
|
<h1>My Meal Journal</h1>
|
||||||
<img src="./assets/images/Logo.png" alt="logo" />
|
<img src="./assets/images/Logo.png" alt="logo" />
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
|
@@ -13,8 +13,6 @@
|
|||||||
<script src="assets/scripts/ReviewCard.js" type="module"></script>
|
<script src="assets/scripts/ReviewCard.js" type="module"></script>
|
||||||
|
|
||||||
<!-- Main Stylesheets & Scripts -->
|
<!-- Main Stylesheets & Scripts -->
|
||||||
<!-- Temporarily commented out reset.css due to furthur discussion needed on the values of the default config-->
|
|
||||||
<!-- <link rel="stylesheet" href="/static/reset.css" /> -->
|
|
||||||
<link rel="stylesheet" href="./static/ReviewDetails.css" />
|
<link rel="stylesheet" href="./static/ReviewDetails.css" />
|
||||||
<link rel="stylesheet" href="./static/Form.css" />
|
<link rel="stylesheet" href="./static/Form.css" />
|
||||||
<script src="assets/scripts/ReviewDetails.js" type="module"></script>
|
<script src="assets/scripts/ReviewDetails.js" type="module"></script>
|
||||||
@@ -23,7 +21,7 @@
|
|||||||
<header>
|
<header>
|
||||||
<div class="top-bar">
|
<div class="top-bar">
|
||||||
<img src="./assets/images/Logo.png" alt="logo" />
|
<img src="./assets/images/Logo.png" alt="logo" />
|
||||||
<h1>Food Journal</h1>
|
<h1>My Meal Journal</h1>
|
||||||
<img src="./assets/images/Logo.png" alt="logo" />
|
<img src="./assets/images/Logo.png" alt="logo" />
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
@@ -139,7 +137,7 @@
|
|||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
<button type="submit" id="save-btn" value="Submit">Save</button>
|
<button type="submit" id="save-btn" value="Submit">Save</button>
|
||||||
<input type="button" value="Cancel" id="home-btn" onclick="window.location.assign('./index.html')" />
|
<input type="button" value="Cancel" id="cancel-btn" />
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 350 KiB |
@@ -110,8 +110,6 @@ function initFormHandler() {
|
|||||||
|
|
||||||
// Adds data to the reviewObject from form data
|
// Adds data to the reviewObject from form data
|
||||||
for (let [key, value] of formData) {
|
for (let [key, value] of formData) {
|
||||||
console.log(`${key}`);
|
|
||||||
console.log(`${value}`);
|
|
||||||
if (`${key}` !== "tag-form") {
|
if (`${key}` !== "tag-form") {
|
||||||
reviewObject[`${key}`] = `${value}`;
|
reviewObject[`${key}`] = `${value}`;
|
||||||
}
|
}
|
||||||
@@ -141,7 +139,7 @@ function initFormHandler() {
|
|||||||
}
|
}
|
||||||
// Does not let user proceed if rating is not complete
|
// Does not let user proceed if rating is not complete
|
||||||
else {
|
else {
|
||||||
window.alert("NO! FILL IN STARS");
|
window.alert("Please fill in rating by selecting the stars :)");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@@ -109,8 +109,6 @@ class ReviewCard extends HTMLElement {
|
|||||||
|
|
||||||
// Attach event listener to each review-card
|
// Attach event listener to each review-card
|
||||||
this.addEventListener("click", (event) => {
|
this.addEventListener("click", (event) => {
|
||||||
console.log(event.target);
|
|
||||||
console.log(event.target.reviewId);
|
|
||||||
// Saves the ID for corresponding review on new page (for data retrieval)
|
// Saves the ID for corresponding review on new page (for data retrieval)
|
||||||
sessionStorage.setItem("currID", JSON.stringify(event.target.data.reviewID));
|
sessionStorage.setItem("currID", JSON.stringify(event.target.data.reviewID));
|
||||||
// Goes to the new page for the review
|
// Goes to the new page for the review
|
||||||
@@ -251,7 +249,6 @@ class ReviewCard extends HTMLElement {
|
|||||||
|
|
||||||
// Get comment section
|
// Get comment section
|
||||||
let comments = this.shadowEl.getElementById("a-comments");
|
let comments = this.shadowEl.getElementById("a-comments");
|
||||||
console.log(comments);
|
|
||||||
dataContainer["comments"] = comments.innerText;
|
dataContainer["comments"] = comments.innerText;
|
||||||
|
|
||||||
// Get rating
|
// Get rating
|
||||||
|
@@ -161,7 +161,6 @@ function setupUpdate() {
|
|||||||
let select = document.getElementById("select");
|
let select = document.getElementById("select");
|
||||||
const input = document.getElementById("mealImg");
|
const input = document.getElementById("mealImg");
|
||||||
select.addEventListener("change", function () {
|
select.addEventListener("change", function () {
|
||||||
console.log("1");
|
|
||||||
// Select a photo with HTML file selector
|
// Select a photo with HTML file selector
|
||||||
if (select.value == "file") {
|
if (select.value == "file") {
|
||||||
// enabling file upload components and hiding photo taking components
|
// enabling file upload components and hiding photo taking components
|
||||||
@@ -192,7 +191,6 @@ function setupUpdate() {
|
|||||||
|
|
||||||
//addressing sourcing image from local file
|
//addressing sourcing image from local file
|
||||||
document.getElementById("mealImg").addEventListener("change", function () {
|
document.getElementById("mealImg").addEventListener("change", function () {
|
||||||
console.log("reading used");
|
|
||||||
const reader = new FileReader();
|
const reader = new FileReader();
|
||||||
|
|
||||||
//store image data URL after successful image load
|
//store image data URL after successful image load
|
||||||
@@ -208,7 +206,13 @@ function setupUpdate() {
|
|||||||
reader.readAsDataURL(document.getElementById("mealImg").files[0]);
|
reader.readAsDataURL(document.getElementById("mealImg").files[0]);
|
||||||
});
|
});
|
||||||
|
|
||||||
//Take formdata values as newData when submit
|
//cancel button on update form hids form not making any changes
|
||||||
|
let cancelBtn = document.getElementById("cancel-btn");
|
||||||
|
cancelBtn.addEventListener("click", function () {
|
||||||
|
updateDiv.classList.add("hidden");
|
||||||
|
});
|
||||||
|
|
||||||
|
//Take form data values as newData when submit
|
||||||
form.addEventListener("submit", function () {
|
form.addEventListener("submit", function () {
|
||||||
/*
|
/*
|
||||||
* User submits the form for their review.
|
* User submits the form for their review.
|
||||||
@@ -218,8 +222,6 @@ function setupUpdate() {
|
|||||||
let newData = {};
|
let newData = {};
|
||||||
//iterate through formData and add to newData
|
//iterate through formData and add to newData
|
||||||
for (let [key, value] of formData) {
|
for (let [key, value] of formData) {
|
||||||
console.log(`${key}`);
|
|
||||||
console.log(`${value}`);
|
|
||||||
if (`${key}` !== "tag-form") {
|
if (`${key}` !== "tag-form") {
|
||||||
newData[`${key}`] = `${value}`;
|
newData[`${key}`] = `${value}`;
|
||||||
}
|
}
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// main.js
|
// homepage.js
|
||||||
import { getIDsByTag, getIDsFromStorage, getReviewFromStorage, getTopIDsFromStorage } from "./localStorage.js";
|
import { getIDsByTag, getIDsFromStorage, getReviewFromStorage, getTopIDsFromStorage } from "./localStorage.js";
|
||||||
|
|
||||||
// Run the init() function when the page has loaded
|
// Run the init() function when the page has loaded
|
||||||
@@ -32,8 +32,6 @@ function initFormHandler() {
|
|||||||
let searchBtn = document.getElementById("search-btn");
|
let searchBtn = document.getElementById("search-btn");
|
||||||
let searchTag = null;
|
let searchTag = null;
|
||||||
//adding search functionality
|
//adding search functionality
|
||||||
//TODO: Add ability to enter without refresh of search bar
|
|
||||||
//filter by selected tag when button clicked
|
|
||||||
searchBtn.addEventListener("click", function () {
|
searchBtn.addEventListener("click", function () {
|
||||||
searchTag = searchField.value;
|
searchTag = searchField.value;
|
||||||
sortAndFilter(searchTag);
|
sortAndFilter(searchTag);
|
||||||
@@ -101,6 +99,7 @@ function sortAndFilter(searchTag) {
|
|||||||
*/
|
*/
|
||||||
function loadReviews(index, reviewIDs) {
|
function loadReviews(index, reviewIDs) {
|
||||||
let reviewBox = document.getElementById("review-container");
|
let reviewBox = document.getElementById("review-container");
|
||||||
|
let footer = document.querySelector("footer");
|
||||||
// label if there are no reviews to display
|
// label if there are no reviews to display
|
||||||
if (reviewIDs.length == 0) {
|
if (reviewIDs.length == 0) {
|
||||||
let emptyLabel = document.createElement("label");
|
let emptyLabel = document.createElement("label");
|
||||||
@@ -116,7 +115,7 @@ function loadReviews(index, reviewIDs) {
|
|||||||
let moreBtn = document.getElementById("more-btn");
|
let moreBtn = document.getElementById("more-btn");
|
||||||
//delete load more button if exists
|
//delete load more button if exists
|
||||||
if (moreBtn) {
|
if (moreBtn) {
|
||||||
reviewBox.removeChild(moreBtn);
|
footer.removeChild(moreBtn);
|
||||||
}
|
}
|
||||||
let reviewArr = [];
|
let reviewArr = [];
|
||||||
//check if there are more than 9 reviews left
|
//check if there are more than 9 reviews left
|
||||||
@@ -140,10 +139,11 @@ function loadReviews(index, reviewIDs) {
|
|||||||
moreBtn.addEventListener("click", function () {
|
moreBtn.addEventListener("click", function () {
|
||||||
loadReviews(index + 9, reviewIDs);
|
loadReviews(index + 9, reviewIDs);
|
||||||
});
|
});
|
||||||
reviewBox.append(moreBtn);
|
footer.append(moreBtn);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//setting up service worker
|
||||||
const registerServiceWorker = async () => {
|
const registerServiceWorker = async () => {
|
||||||
if ("serviceWorker" in navigator) {
|
if ("serviceWorker" in navigator) {
|
||||||
try {
|
try {
|
@@ -15,7 +15,6 @@ describe("test App end to end", async () => {
|
|||||||
root = false;
|
root = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
//browser = await puppeteer.launch({headless: false, slowMo: 250, args: root ? ['--no-sandbox'] : undefined});
|
|
||||||
browser = await puppeteer.launch({ args: root ? ["--no-sandbox"] : undefined });
|
browser = await puppeteer.launch({ args: root ? ["--no-sandbox"] : undefined });
|
||||||
page = await browser.newPage();
|
page = await browser.newPage();
|
||||||
try {
|
try {
|
||||||
|
@@ -13,17 +13,15 @@
|
|||||||
<script src="assets/scripts/ReviewCard.js" type="module"></script>
|
<script src="assets/scripts/ReviewCard.js" type="module"></script>
|
||||||
|
|
||||||
<!-- Main Stylesheets & Scripts -->
|
<!-- Main Stylesheets & Scripts -->
|
||||||
<!-- Temporarily commented out reset.css due to furthur discussion needed on the values of the default config-->
|
|
||||||
<!-- <link rel="stylesheet" href="/static/reset.css" /> -->
|
|
||||||
<link rel="stylesheet" href="./static/homepage.css" />
|
<link rel="stylesheet" href="./static/homepage.css" />
|
||||||
<script src="assets/scripts/main.js" type="module"></script>
|
<script src="assets/scripts/homepage.js" type="module"></script>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<header>
|
<header>
|
||||||
<div class="top-bar">
|
<div class="top-bar">
|
||||||
<img src="./assets/images/Logo.png" alt="logo" />
|
<img src="./assets/images/Logo.png" alt="logo" />
|
||||||
<h1>Food Journal</h1>
|
<h1>My Meal Journal</h1>
|
||||||
<img src="./assets/images/Logo.png" alt="logo" />
|
<img src="./assets/images/Logo.png" alt="logo" />
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
@@ -38,7 +36,7 @@
|
|||||||
<option value="recent">Most Recent</option>
|
<option value="recent">Most Recent</option>
|
||||||
<option value="top">Top Rated</option>
|
<option value="top">Top Rated</option>
|
||||||
</select>
|
</select>
|
||||||
<input type="search" id="search-bar" name="searchBar" placeholder="Search tags..." />
|
<input type="search" id="search-bar" name="searchBar" placeholder="Search by tags..." />
|
||||||
<button id="clear-search">Clear Search</button>
|
<button id="clear-search">Clear Search</button>
|
||||||
</form>
|
</form>
|
||||||
<img src="./assets/images/search_button.png" alt="SEARCH BTN" id="search-btn" />
|
<img src="./assets/images/search_button.png" alt="SEARCH BTN" id="search-btn" />
|
||||||
@@ -61,5 +59,6 @@
|
|||||||
<div style="width: 20%"></div>
|
<div style="width: 20%"></div>
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
|
<footer></footer>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@@ -19,6 +19,8 @@ body {
|
|||||||
align-self: center;
|
align-self: center;
|
||||||
padding-left: 2.5%;
|
padding-left: 2.5%;
|
||||||
padding-right: 2.5%;
|
padding-right: 2.5%;
|
||||||
|
width: 7.5%;
|
||||||
|
height: 7.5%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.top-bar > h1 {
|
.top-bar > h1 {
|
||||||
|
@@ -23,6 +23,8 @@ h1 {
|
|||||||
align-self: center;
|
align-self: center;
|
||||||
padding-left: 2.5%;
|
padding-left: 2.5%;
|
||||||
padding-right: 2.5%;
|
padding-right: 2.5%;
|
||||||
|
width: 7.5%;
|
||||||
|
height: 7.5%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.top-bar > h1 {
|
.top-bar > h1 {
|
||||||
|
@@ -23,6 +23,8 @@ body {
|
|||||||
align-self: center;
|
align-self: center;
|
||||||
padding-left: 2.5%;
|
padding-left: 2.5%;
|
||||||
padding-right: 2.5%;
|
padding-right: 2.5%;
|
||||||
|
width: 7.5%;
|
||||||
|
height: 7.5%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.top-bar > h1 {
|
.top-bar > h1 {
|
||||||
@@ -118,3 +120,8 @@ img#create-btn-invis {
|
|||||||
background-color: #f1f1f1;
|
background-color: #f1f1f1;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
footer {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
@@ -24,7 +24,7 @@ const ASSETS = [
|
|||||||
"assets/images/search_button.png",
|
"assets/images/search_button.png",
|
||||||
"assets/scripts/CreatePage.js",
|
"assets/scripts/CreatePage.js",
|
||||||
"assets/scripts/localStorage.js",
|
"assets/scripts/localStorage.js",
|
||||||
"assets/scripts/main.js",
|
"assets/scripts/homepage.js",
|
||||||
"assets/scripts/ReviewCard.js",
|
"assets/scripts/ReviewCard.js",
|
||||||
"assets/scripts/ReviewDetails.js",
|
"assets/scripts/ReviewDetails.js",
|
||||||
];
|
];
|
||||||
|
Reference in New Issue
Block a user