From b67cb65026aff5dac54e003c8ca2c6fae14283af Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 11 Jun 2024 21:32:18 -0700 Subject: [PATCH 001/407] Update scripts.js From 305ffb1c91dc599e3ba46a6c0523d4b749cbce4b Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 11 Jun 2024 21:32:39 -0700 Subject: [PATCH 002/407] Update styles.css From f240f55fdabe362e3a3b411a3f56f0a1ff080410 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 11 Jun 2024 21:38:17 -0700 Subject: [PATCH 003/407] Update styles.css --- styles.css | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/styles.css b/styles.css index 1c2745c..cb7c15d 100644 --- a/styles.css +++ b/styles.css @@ -335,7 +335,8 @@ h1, h2, h3, h4, h5, h6 { .spotlight-item { flex: 0 0 auto; - width: 300px; + width: 100%; /* Adjust width for mobile view */ + max-width: 300px; background: #333; border-radius: 10px; box-shadow: 0 0 10px rgba(255, 69, 0, 0.7); From 42cc29d64cf76b0565dbd76082ade7f746ac4b7c Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 11 Jun 2024 21:38:39 -0700 Subject: [PATCH 004/407] Update scripts.js From f582b7da0a10b5397a209cfdb574487c62baa8cb Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 11 Jun 2024 21:45:01 -0700 Subject: [PATCH 005/407] Update styles.css --- styles.css | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/styles.css b/styles.css index cb7c15d..f52e933 100644 --- a/styles.css +++ b/styles.css @@ -335,13 +335,14 @@ h1, h2, h3, h4, h5, h6 { .spotlight-item { flex: 0 0 auto; - width: 100%; /* Adjust width for mobile view */ + width: calc(100% - 20px); /* Adjust width for mobile view */ max-width: 300px; background: #333; border-radius: 10px; box-shadow: 0 0 10px rgba(255, 69, 0, 0.7); padding: 1em; transition: transform 0.3s; + margin: 0 10px; /* Ensure proper spacing */ } .spotlight-item:hover { From 59bdf06e97cc42e56f2138a720b21d2627e9cac2 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 11 Jun 2024 21:45:23 -0700 Subject: [PATCH 006/407] Update scripts.js --- scripts.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scripts.js b/scripts.js index a0744cc..09f7ea3 100644 --- a/scripts.js +++ b/scripts.js @@ -119,7 +119,9 @@ document.addEventListener('DOMContentLoaded', () => { { breakpoint: 768, settings: { - slidesToShow: 1 + slidesToShow: 1, + centerMode: true, + centerPadding: '20px' } } ] From 7319be2ea94d66ebaa844a60e07b58d4ea46f2fb Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 11 Jun 2024 21:52:44 -0700 Subject: [PATCH 007/407] Update index.html --- index.html | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/index.html b/index.html index 99d1efb..b24da4b 100644 --- a/index.html +++ b/index.html @@ -80,21 +80,22 @@

About Us

-
-

Spotlight

- +
+

Meet the Team

From e06f33428527e46511e6a944c478b50fac6f7000 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 11 Jun 2024 21:52:58 -0700 Subject: [PATCH 008/407] Update styles.css --- styles.css | 25 ++++++------------------- 1 file changed, 6 insertions(+), 19 deletions(-) diff --git a/styles.css b/styles.css index f52e933..c8e6ecf 100644 --- a/styles.css +++ b/styles.css @@ -325,7 +325,7 @@ h1, h2, h3, h4, h5, h6 { transform: scale(1.05); } -.spotlight-carousel { +.spotlight-carousel, .testimonials-carousel { display: flex; overflow: hidden; padding: 1em 0; @@ -333,7 +333,7 @@ h1, h2, h3, h4, h5, h6 { justify-content: center; } -.spotlight-item { +.spotlight-item, .testimonial-item { flex: 0 0 auto; width: calc(100% - 20px); /* Adjust width for mobile view */ max-width: 300px; @@ -345,20 +345,20 @@ h1, h2, h3, h4, h5, h6 { margin: 0 10px; /* Ensure proper spacing */ } -.spotlight-item:hover { +.spotlight-item:hover, .testimonial-item:hover { transform: scale(1.05); } -.spotlight-item img { +.spotlight-item img, .testimonial-item img { width: 100%; border-radius: 10px; } -.spotlight-item h3 { +.spotlight-item h3, .testimonial-item h3 { margin: 0.5em 0; } -.spotlight-item p { +.spotlight-item p, .testimonial-item p { font-size: 0.9em; color: #ccc; } @@ -448,19 +448,6 @@ h1, h2, h3, h4, h5, h6 { text-align: center; } -.testimonials-carousel { - display: flex; - justify-content: center; - gap: 2em; -} - -.testimonial-item { - background: #222; - padding: 2em; - border-radius: 10px; - box-shadow: 0 0 10px rgba(255, 69, 0, 0.7); -} - .faq-section { padding: 2em; background: #111; From c515f5e47983cf94c82129cee283679455f06cb0 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 11 Jun 2024 21:53:20 -0700 Subject: [PATCH 009/407] Update scripts.js From 81a91bb88c0f20db8ec45e10bd2014e8c0f8e53a Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 11 Jun 2024 22:04:15 -0700 Subject: [PATCH 010/407] Create fetch_images.yml --- .github/workflows/fetch_images.yml | 39 ++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 .github/workflows/fetch_images.yml diff --git a/.github/workflows/fetch_images.yml b/.github/workflows/fetch_images.yml new file mode 100644 index 0000000..69553d0 --- /dev/null +++ b/.github/workflows/fetch_images.yml @@ -0,0 +1,39 @@ +name: Fetch Social Media Images + +on: + schedule: + - cron: '0 0 * * *' # Runs every day at midnight UTC + push: + branches: + - main + +jobs: + fetch-images: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Set up Node.js + uses: actions/setup-node@v2 + with: + node-version: '14' + + - name: Install dependencies + run: npm install + + - name: Fetch images + run: node scripts/fetch_images.js + env: + INSTAGRAM_ACCESS_TOKEN: ${{ secrets.INSTAGRAM_ACCESS_TOKEN }} + USER_ID: ${{ secrets.INSTAGRAM_USER_ID }} + + - name: Commit and push changes + run: | + git config --local user.email "action@github.com" + git config --local user.name "GitHub Action" + git add images/ + git commit -m "Update images from Instagram" + git push + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 8277be3a24e7f971e4e027ff2e51d739a536d2d1 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 11 Jun 2024 23:28:54 -0700 Subject: [PATCH 011/407] Update config.js --- config.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/config.js b/config.js index aa6b54c..1235296 100644 --- a/config.js +++ b/config.js @@ -8,4 +8,11 @@ const CONFIG = { DISQUS_PAGE_URL: 'https://imobracingonline.com', DISQUS_PAGE_IDENTIFIER: 'imobracing-forums', GOOGLE_CALENDAR_ID: 'imobracing%40gmail.com', + FIREBASE_CONFIG: { + apiKey: "AIzaSyB4sfEfSXhRq9pFcXhHJQUWeJppv0n9Uzw", + authDomain: "imob-racing-website.firebaseapp.com", + projectId: "imob-racing-website", + storageBucket: "imob-racing-website.appspot.com", + messagingSenderId: "580908835958", + appId: "1:580908835958:web:a7bb3f6a4b52d8f8c28c1a", }; From 7f5442c8b6909c2da4f994ca578467210581c4db Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 11 Jun 2024 23:38:49 -0700 Subject: [PATCH 012/407] Update index.html --- index.html | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/index.html b/index.html index b24da4b..a78dc75 100644 --- a/index.html +++ b/index.html @@ -53,6 +53,8 @@

Welcome to iMOB Racing

  • Drivers
  • Cars
  • Our Mission
  • +
  • Profile
  • +
  • Login
  • Contact
  • @@ -80,22 +82,21 @@

    About Us

    -
    -

    Spotlight

    -
    - +

    Meet the Team

    From 77f76f72e069a21b1a16879ae5a2c3d8936417d0 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 11 Jun 2024 23:39:06 -0700 Subject: [PATCH 013/407] Update scripts.js --- scripts.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/scripts.js b/scripts.js index 09f7ea3..6839eba 100644 --- a/scripts.js +++ b/scripts.js @@ -49,6 +49,9 @@ document.addEventListener('DOMContentLoaded', () => { observer.observe(section); }); + // Initialize Firebase + firebase.initializeApp(CONFIG.FIREBASE_CONFIG); + // YouTube Data API Key const API_KEY = CONFIG.YOUTUBE_API_KEY; const CHANNEL_ID = CONFIG.YOUTUBE_CHANNEL_ID; From c8a11d24216e12a348c79f31fa82498cf5c1326d Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 11 Jun 2024 23:39:40 -0700 Subject: [PATCH 014/407] Create login.html --- login.html | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 login.html diff --git a/login.html b/login.html new file mode 100644 index 0000000..ce561bb --- /dev/null +++ b/login.html @@ -0,0 +1,49 @@ + + + + + + Login + + + + + + + + +

    Login

    + + + + + + + + From 60125fdeb8d6fecc7a730a830858e650e22e8ae0 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 11 Jun 2024 23:39:58 -0700 Subject: [PATCH 015/407] Create profile.html --- profile.html | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 profile.html diff --git a/profile.html b/profile.html new file mode 100644 index 0000000..10073ff --- /dev/null +++ b/profile.html @@ -0,0 +1,63 @@ + + + + + + Profile + + + + + + + + + +

    Profile Page

    +

    +

    + + + + + From 068e681712971265b83675b486f0956281e9a4f9 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 11 Jun 2024 23:40:12 -0700 Subject: [PATCH 016/407] Update styles.css From e0a634dd557fdb070b782c04c07b99dfd85ca646 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 12 Jun 2024 01:01:11 -0700 Subject: [PATCH 017/407] Update login.html --- login.html | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/login.html b/login.html index ce561bb..4dc534d 100644 --- a/login.html +++ b/login.html @@ -7,7 +7,6 @@ - From c831bd4527277f975189b8d832619376fcdaf3dc Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 12 Jun 2024 01:24:56 -0700 Subject: [PATCH 018/407] Update config.js --- config.js | 1 + 1 file changed, 1 insertion(+) diff --git a/config.js b/config.js index 1235296..5c58147 100644 --- a/config.js +++ b/config.js @@ -15,4 +15,5 @@ const CONFIG = { storageBucket: "imob-racing-website.appspot.com", messagingSenderId: "580908835958", appId: "1:580908835958:web:a7bb3f6a4b52d8f8c28c1a", + GOOGLE_CLIENT_ID: '580908835958-labitokmi7ivmvm0ha1muth5a45smnni.apps.googleusercontent.com', }; From e5f809154c283e940eff1e1283d1cd1f7e6ae492 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 12 Jun 2024 01:33:59 -0700 Subject: [PATCH 019/407] Update index.html --- index.html | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/index.html b/index.html index a78dc75..51a945c 100644 --- a/index.html +++ b/index.html @@ -33,7 +33,7 @@

    Welcome to iMOB Racing

    Feel the Thrill of Racing

    Learn More - + From 8850bef6096c25576af415cd0fdece3231b2b30b Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 12 Jun 2024 01:34:47 -0700 Subject: [PATCH 020/407] Update styles.css From c7342c8429042fb505178a361cb55f4d78200a46 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 12 Jun 2024 01:35:17 -0700 Subject: [PATCH 021/407] Update scripts.js --- scripts.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/scripts.js b/scripts.js index 6839eba..09f7ea3 100644 --- a/scripts.js +++ b/scripts.js @@ -49,9 +49,6 @@ document.addEventListener('DOMContentLoaded', () => { observer.observe(section); }); - // Initialize Firebase - firebase.initializeApp(CONFIG.FIREBASE_CONFIG); - // YouTube Data API Key const API_KEY = CONFIG.YOUTUBE_API_KEY; const CHANNEL_ID = CONFIG.YOUTUBE_CHANNEL_ID; From d11abcb2015fd9dc6c06cf6f674962f620ff3bf6 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Sun, 16 Jun 2024 17:51:02 -0700 Subject: [PATCH 022/407] Update index.html --- index.html | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/index.html b/index.html index 51a945c..256ea53 100644 --- a/index.html +++ b/index.html @@ -3,14 +3,6 @@ - - - - - - - - iMOB Racing Online @@ -58,6 +50,16 @@

    Welcome to iMOB Racing

    + + +

    About Us

    From 041eb6f5f181b4872fd0fa7200c68bdaaadfc105 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Sun, 16 Jun 2024 17:51:51 -0700 Subject: [PATCH 023/407] Create store.html --- store.html | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 store.html diff --git a/store.html b/store.html new file mode 100644 index 0000000..5a03b88 --- /dev/null +++ b/store.html @@ -0,0 +1,34 @@ + + + + + + Store - iMOB Racing + + + +

    Our Store

    +
    + + + + From 8d67296650a03b3eed4956f39095787bf231c0aa Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Sun, 16 Jun 2024 17:52:09 -0700 Subject: [PATCH 024/407] Update scripts.js --- scripts.js | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/scripts.js b/scripts.js index 09f7ea3..cd7d35d 100644 --- a/scripts.js +++ b/scripts.js @@ -213,3 +213,42 @@ function initializeTestimonialsCarousel() { ] }); } + +// Facebook feed +fetch('https://graph.facebook.com/v10.0/imobracing/feed?access_token=YOUR_FACEBOOK_ACCESS_TOKEN') + .then(response => response.json()) + .then(data => { + let facebookFeed = document.getElementById('facebook-feed'); + data.data.forEach(post => { + let postElement = document.createElement('div'); + postElement.className = 'social-post'; + postElement.innerHTML = `

    ${post.message}

    `; + facebookFeed.appendChild(postElement); + }); + }); + +// Twitter feed +fetch('https://api.twitter.com/2/tweets?ids=YOUR_TWEET_IDS&tweet.fields=created_at&expansions=author_id&user.fields=username&bearer_token=YOUR_TWITTER_BEARER_TOKEN') + .then(response => response.json()) + .then(data => { + let twitterFeed = document.getElementById('twitter-feed'); + data.data.forEach(tweet => { + let tweetElement = document.createElement('div'); + tweetElement.className = 'social-post'; + tweetElement.innerHTML = `

    ${tweet.text}

    `; + twitterFeed.appendChild(tweetElement); + }); + }); + +// Instagram feed +fetch('https://graph.instagram.com/me/media?fields=id,caption,media_url,permalink&access_token=YOUR_INSTAGRAM_ACCESS_TOKEN') + .then(response => response.json()) + .then(data => { + let instagramFeed = document.getElementById('instagram-feed'); + data.data.forEach(post => { + let postElement = document.createElement('div'); + postElement.className = 'social-post'; + postElement.innerHTML = `${post.caption}

    ${post.caption}

    `; + instagramFeed.appendChild(postElement); + }); + }); From 26a360a31bd5284ed25529e90ee1ef0ad667fba1 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Sun, 16 Jun 2024 17:52:33 -0700 Subject: [PATCH 025/407] Update styles.css From 60026e4d4182f7711fe84af896f6cabb9b4162de Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Sun, 16 Jun 2024 18:07:53 -0700 Subject: [PATCH 026/407] Update store.html --- store.html | 59 ++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 37 insertions(+), 22 deletions(-) diff --git a/store.html b/store.html index 5a03b88..f0a469d 100644 --- a/store.html +++ b/store.html @@ -5,30 +5,45 @@ Store - iMOB Racing + -

    Our Store

    -
    + +
    +

    Our Store

    +
    +
    - +
    + +

    © 2024 iMOB Racing. All rights reserved.

    +

    Contact: info@imobracingonline.com | Phone: (530) 420-5850

    +
    + + + + + + From 06a55cc42aed133e00754a589b22d51cc4a9b2b2 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Sun, 16 Jun 2024 18:08:19 -0700 Subject: [PATCH 027/407] Update scripts.js --- scripts.js | 135 +++++++++++++++++++++++++++-------------------------- 1 file changed, 70 insertions(+), 65 deletions(-) diff --git a/scripts.js b/scripts.js index cd7d35d..af263dc 100644 --- a/scripts.js +++ b/scripts.js @@ -1,22 +1,26 @@ document.addEventListener('DOMContentLoaded', () => { const loadingSpinner = document.getElementById('loading-spinner'); - window.addEventListener('load', () => { - loadingSpinner.style.display = 'none'; - }); + if (loadingSpinner) { + window.addEventListener('load', () => { + loadingSpinner.style.display = 'none'; + }); + } const navToggle = document.getElementById('js-navbar-toggle'); const menu = document.getElementById('js-menu'); - navToggle.addEventListener('click', () => { - menu.classList.toggle('active'); - }); + if (navToggle) { + navToggle.addEventListener('click', () => { + menu.classList.toggle('active'); + }); + } const navLinks = document.querySelectorAll('.navbar a'); const sections = document.querySelectorAll('section'); // Smooth scrolling for navigation links navLinks.forEach(link => { - link.addEventListener('click', function(e) { + link.addEventListener('click', function (e) { if (this.getAttribute('href').startsWith('#')) { e.preventDefault(); const targetId = this.getAttribute('href').substring(1); @@ -56,7 +60,7 @@ document.addEventListener('DOMContentLoaded', () => { // Fetch YouTube videos function fetchYouTubeVideos() { - $.get(`https://www.googleapis.com/youtube/v3/search?key=${API_KEY}&channelId=${CHANNEL_ID}&part=snippet,id&order=date&maxResults=${MAX_RESULTS}`, function(data) { + $.get(`https://www.googleapis.com/youtube/v3/search?key=${API_KEY}&channelId=${CHANNEL_ID}&part=snippet,id&order=date&maxResults=${MAX_RESULTS}`, function (data) { let videoItems = ''; data.items.forEach(item => { if (item.id.kind === "youtube#video") { @@ -134,7 +138,7 @@ document.addEventListener('DOMContentLoaded', () => { this.page.identifier = CONFIG.DISQUS_PAGE_IDENTIFIER; }; - (function() { + (function () { const d = document, s = d.createElement('script'); s.src = `https://${CONFIG.DISQUS_SHORTNAME}.disqus.com/embed.js`; s.setAttribute('data-timestamp', +new Date()); @@ -143,7 +147,10 @@ document.addEventListener('DOMContentLoaded', () => { // Load Google Calendar const googleCalendarSrc = `https://calendar.google.com/calendar/embed?src=${CONFIG.GOOGLE_CALENDAR_ID}&ctz=America%2FLos_Angeles`; - document.getElementById('google-calendar').src = googleCalendarSrc; + const calendarElement = document.getElementById('google-calendar'); + if (calendarElement) { + calendarElement.src = googleCalendarSrc; + } // Initialize AOS AOS.init(); @@ -192,63 +199,61 @@ document.addEventListener('DOMContentLoaded', () => { behavior: 'smooth' }); }); -}); -function initializeTestimonialsCarousel() { - $('.testimonials-carousel').slick({ - infinite: true, - slidesToShow: 2, - slidesToScroll: 1, - autoplay: true, - autoplaySpeed: 3000, - arrows: false, - dots: true, - responsive: [ - { - breakpoint: 768, - settings: { - slidesToShow: 1 + function initializeTestimonialsCarousel() { + $('.testimonials-carousel').slick({ + infinite: true, + slidesToShow: 2, + slidesToScroll: 1, + autoplay: true, + autoplaySpeed: 3000, + arrows: false, + dots: true, + responsive: [ + { + breakpoint: 768, + settings: { + slidesToShow: 1 + } } - } - ] - }); -} - -// Facebook feed -fetch('https://graph.facebook.com/v10.0/imobracing/feed?access_token=YOUR_FACEBOOK_ACCESS_TOKEN') - .then(response => response.json()) - .then(data => { - let facebookFeed = document.getElementById('facebook-feed'); - data.data.forEach(post => { - let postElement = document.createElement('div'); - postElement.className = 'social-post'; - postElement.innerHTML = `

    ${post.message}

    `; - facebookFeed.appendChild(postElement); + ] }); - }); + } -// Twitter feed -fetch('https://api.twitter.com/2/tweets?ids=YOUR_TWEET_IDS&tweet.fields=created_at&expansions=author_id&user.fields=username&bearer_token=YOUR_TWITTER_BEARER_TOKEN') - .then(response => response.json()) - .then(data => { - let twitterFeed = document.getElementById('twitter-feed'); - data.data.forEach(tweet => { - let tweetElement = document.createElement('div'); - tweetElement.className = 'social-post'; - tweetElement.innerHTML = `

    ${tweet.text}

    `; - twitterFeed.appendChild(tweetElement); - }); - }); + // Fetch products and display them in the store section + fetchProducts(); -// Instagram feed -fetch('https://graph.instagram.com/me/media?fields=id,caption,media_url,permalink&access_token=YOUR_INSTAGRAM_ACCESS_TOKEN') - .then(response => response.json()) - .then(data => { - let instagramFeed = document.getElementById('instagram-feed'); - data.data.forEach(post => { - let postElement = document.createElement('div'); - postElement.className = 'social-post'; - postElement.innerHTML = `${post.caption}

    ${post.caption}

    `; - instagramFeed.appendChild(postElement); - }); - }); + function fetchProducts() { + fetch('https://api.yourstore.com/products') + .then(response => response.json()) + .then(products => { + let productList = document.getElementById('product-list'); + products.forEach(product => { + let productElement = document.createElement('div'); + productElement.className = 'product'; + productElement.innerHTML = ` + ${product.name} +

    ${product.name}

    +

    ${product.description}

    +

    $${product.price}

    + + `; + productList.appendChild(productElement); + }); + }); + } + + // Initialize Snipcart API key + const snipcart = document.getElementById('snipcart'); + if (snipcart) { + snipcart.setAttribute('data-api-key', CONFIG.SNIPCART_API_KEY); + } +}); From f456daa4b461b614ae4e799dbf9f9e5ee8a2adce Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Sun, 16 Jun 2024 18:09:18 -0700 Subject: [PATCH 028/407] Update config.js --- config.js | 1 + 1 file changed, 1 insertion(+) diff --git a/config.js b/config.js index 5c58147..75f98ed 100644 --- a/config.js +++ b/config.js @@ -16,4 +16,5 @@ const CONFIG = { messagingSenderId: "580908835958", appId: "1:580908835958:web:a7bb3f6a4b52d8f8c28c1a", GOOGLE_CLIENT_ID: '580908835958-labitokmi7ivmvm0ha1muth5a45smnni.apps.googleusercontent.com', + SNIPCART_API_KEY: 'NDFkZGNlNDktMjE2YS00MmUyLTk4ZmYtMjY5YWE2OWYwOTI2NjM4NTQxODI3NjYwMTI3MDQ5' }; From 6895da7e03173487be31e22f82ec266e707a4b0a Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Sun, 16 Jun 2024 18:09:32 -0700 Subject: [PATCH 029/407] Update styles.css --- styles.css | 501 ++--------------------------------------------------- 1 file changed, 12 insertions(+), 489 deletions(-) diff --git a/styles.css b/styles.css index c8e6ecf..2e71488 100644 --- a/styles.css +++ b/styles.css @@ -1,212 +1,17 @@ -/* General Styles */ -body, html { - margin: 0; - padding: 0; - font-family: 'Roboto', sans-serif; - background-color: #000; - color: #fff; -} - -h1, h2, h3, h4, h5, h6 { - font-family: 'Oswald', sans-serif; -} - -/* Header Styles */ -.header { - height: 100vh; - position: relative; - display: flex; - justify-content: center; - align-items: center; - text-align: center; - overflow: hidden; -} - -#youtube-iframe { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - z-index: 1; - opacity: 0.7; - pointer-events: none; -} - -.header-content { - position: relative; - z-index: 2; - color: white; - text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.7); -} - -.header-overlay { - background: rgba(0, 0, 0, 0.5); - padding: 2em; - border-radius: 10px; -} - -.header-title { - font-size: 4em; - animation: kinetic 2s infinite alternate; -} - -@keyframes kinetic { - 0% { transform: scale(1); } - 100% { transform: scale(1.05); } -} - -.header-subtitle { - font-size: 1.5em; - margin: 0.5em 0; -} - -.cta-button { - padding: 0.5em 1em; - background-color: #1e90ff; - color: white; - text-decoration: none; - border-radius: 5px; - transition: background-color 0.3s, transform 0.3s; -} - -.cta-button:hover { - background-color: #1c86ee; - transform: scale(1.05); -} - -.subscribe-button { - background-color: #32cd32; -} - -.subscribe-button:hover { - background-color: #2eb82e; -} - -.social-proof { - margin-top: 1em; - font-size: 1em; - color: #ff4500; - display: flex; - justify-content: center; - gap: 2em; -} - -.social-proof p { - display: flex; - align-items: center; - gap: 0.5em; -} - -.navbar { - background-color: #111; - color: white; - padding: 1em; - position: sticky; - top: 0; - z-index: 3; -} - -.navbar-container { - display: flex; - justify-content: space-between; - align-items: center; -} - -.navbar-toggle { - display: none; - font-size: 1.5em; - cursor: pointer; -} - -.navbar .logo { - font-size: 1.5em; - color: white; - text-decoration: none; -} - -.main-nav { - list-style: none; - margin: 0; - padding: 0; - display: flex; - justify-content: space-around; - width: 100%; -} - -.main-nav .nav-links { - color: white; - text-decoration: none; - padding: 0.5em 1em; -} - -@media (max-width: 768px) { - .navbar-toggle { - display: block; - } - - .main-nav { - display: none; - flex-direction: column; - width: 100%; - background-color: #111; - position: absolute; - top: 3.5em; /* Adjust based on your navbar height */ - left: 0; - } - - .main-nav .nav-links { - text-align: center; - padding: 1em; - width: 100%; - } - - .main-nav.active { - display: flex; - } -} - -.about-section, .team-section, .events-section, .media-section, .contact-section, .ai-section, .integration-section, .testimonials-section, .faq-section, .spotlight-section, .mission-section, .social-media-section { +/* Store Section */ +.store-section { padding: 2em; background: #111; - transition: opacity 1s ease-in-out; -} - -.parallax { - background-attachment: fixed; - background-size: cover; - background-position: center; -} - -.about-section { - background-image: url('path/to/about-background.jpg'); -} - -.ai-section { - background-image: url('path/to/ai-background.jpg'); -} - -.events-section { - background-image: url('path/to/events-background.jpg'); -} - -.spotlight-section { - background: #222; -} - -.section-title { text-align: center; - font-size: 2.5em; - margin-bottom: 1em; } -.team-grid, .media-grid, .cars-grid { +.product-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 1em; } -.team-card, .media-card, .car-card { +.product { background: #222; padding: 1em; border-radius: 5px; @@ -215,315 +20,33 @@ h1, h2, h3, h4, h5, h6 { transition: transform 0.3s; } -.team-card:hover, .media-card:hover, .car-card:hover { +.product:hover { transform: translateY(-10px); } -.about-content { - display: flex; - align-items: center; - gap: 1em; - margin-bottom: 1em; -} - -.about-icon { - font-size: 2em; - color: #ff4500; -} - -.events-container { - display: flex; - flex-wrap: nowrap; - justify-content: space-between; - gap: 2em; -} - -.events-list { - flex: 2; - list-style: none; - padding: 0; - margin: 0; -} - -.events-list li { - background: #222; - padding: 1em; - border-radius: 5px; - box-shadow: 0 0 10px rgba(255, 69, 0, 0.7); - margin-bottom: 1em; -} - -.calendar-container { - flex: 1; - display: flex; - justify-content: center; - align-items: center; - max-width: 400px; /* Adjust the max-width to control the size of the calendar */ -} - -.calendar-container iframe { - width: 100%; - height: 300px; /* Adjust the height as needed */ -} - -.integration-container { - display: flex; - flex-wrap: wrap; - justify-content: center; - gap: 2em; -} - -.facebook-integration, .poll-integration { - flex: 1; - max-width: 400px; /* Adjust the max-width to match the desired size */ -} - -.facebook-integration iframe, .poll-integration iframe { +.product img { width: 100%; - height: 500px; /* Set the same height for both elements */ -} - -@media (max-width: 768px) { - .events-container { - flex-direction: column; - } - - .calendar-container { - width: 100%; - } - - .integration-container { - flex-direction: column; - align-items: center; - } - - .facebook-integration, .poll-integration { - max-width: 100%; - } - - .facebook-integration iframe, .poll-integration iframe { - height: 500px; - } -} - -.media-carousel { - display: flex; - overflow: hidden; - padding: 1em 0; -} - -.carousel-item { - flex: 0 0 auto; - width: 250px; - background: #222; + height: auto; border-radius: 5px; - box-shadow: 0 0 10px rgba(255, 69, 0, 0.7); - transition: transform 0.3s; -} - -.carousel-item:hover { - transform: scale(1.05); -} - -.spotlight-carousel, .testimonials-carousel { - display: flex; - overflow: hidden; - padding: 1em 0; - gap: 1em; - justify-content: center; } -.spotlight-item, .testimonial-item { - flex: 0 0 auto; - width: calc(100% - 20px); /* Adjust width for mobile view */ - max-width: 300px; - background: #333; - border-radius: 10px; - box-shadow: 0 0 10px rgba(255, 69, 0, 0.7); - padding: 1em; - transition: transform 0.3s; - margin: 0 10px; /* Ensure proper spacing */ -} - -.spotlight-item:hover, .testimonial-item:hover { - transform: scale(1.05); -} - -.spotlight-item img, .testimonial-item img { - width: 100%; - border-radius: 10px; -} - -.spotlight-item h3, .testimonial-item h3 { +.product h3 { margin: 0.5em 0; } -.spotlight-item p, .testimonial-item p { - font-size: 0.9em; +.product p { color: #ccc; } -.contact-section form { - display: flex; - flex-direction: column; -} - -.contact-section label { - margin-top: 1em; -} - -.contact-section input, .contact-section textarea { - padding: 0.5em; - margin-top: 0.5em; - border: none; - border-radius: 5px; - background: #333; - color: #fff; -} - -.contact-section button { - margin-top: 1em; +.product button { padding: 0.5em 1em; background-color: #ff4500; color: white; - text-decoration: none; + border: none; border-radius: 5px; transition: background-color 0.3s; } -.contact-section button:hover { +.product button:hover { background-color: #e43e00; } - -.mission-section { - background: #111; - padding: 2em; - color: #fff; - text-align: left; -} - -.social-media-section { - background: #111; - padding: 2em; - text-align: center; -} - -.social-media-links a { - color: white; - margin: 0 1em; - font-size: 2em; - transition: color 0.3s; -} - -.social-media-links a:hover { - color: #ff4500; -} - -.footer { - background: #111; - padding: 1em; - text-align: center; - color: #fff; -} - -.social-media { - margin: 1em 0; -} - -.social-media a { - color: white; - margin: 0 0.5em; - font-size: 1.5em; - transition: color 0.3s; -} - -.social-media a:hover { - color: #ff4500; -} - -.testimonials-section { - padding: 2em; - background: #111; - color: #fff; - text-align: center; -} - -.faq-section { - padding: 2em; - background: #111; - color: #fff; - text-align: left; -} - -.faq-item { - margin-bottom: 1em; -} - -.faq-item h3 { - font-size: 1.5em; - color: #ff4500; -} - -.faq-item p { - margin-top: 0.5em; -} - -.back-to-top { - position: fixed; - bottom: 2em; - right: 2em; - background: #ff4500; - color: #fff; - padding: 1em; - border-radius: 50%; - box-shadow: 0 0 10px rgba(0, 0, 0, 0.7); - display: none; - cursor: pointer; - transition: background-color 0.3s, transform 0.3s; -} - -.back-to-top:hover { - background-color: #e43e00; - transform: scale(1.1); -} - -@media (max-width: 768px) { - .back-to-top { - bottom: 1em; - right: 1em; - } -} - -/* Responsive Image Styles */ -.responsive-image { - max-width: 100%; - height: auto; -} - -/* Loading Spinner */ -.loading-spinner { - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; - background: rgba(0, 0, 0, 0.8); - display: flex; - justify-content: center; - align-items: center; - z-index: 1000; -} - -.spinner { - border: 8px solid #f3f3f3; - border-top: 8px solid #ff4500; - border-radius: 50%; - width: 60px; - height: 60px; - animation: spin 1s linear infinite; -} - -@keyframes spin { - 0% { transform: rotate(0deg); } - 100% { transform: rotate(360deg); } -} From 3cc5426cf45351b4c8361d38cb7ba0ad8e8b2a3a Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Sun, 16 Jun 2024 18:13:51 -0700 Subject: [PATCH 030/407] Update styles.css --- styles.css | 532 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 532 insertions(+) diff --git a/styles.css b/styles.css index 2e71488..b8537ed 100644 --- a/styles.css +++ b/styles.css @@ -1,3 +1,535 @@ +/* General Styles */ +body, html { + margin: 0; + padding: 0; + font-family: 'Roboto', sans-serif; + background-color: #000; + color: #fff; +} + +h1, h2, h3, h4, h5, h6 { + font-family: 'Oswald', sans-serif; +} + +/* Header Styles */ +.header { + height: 100vh; + position: relative; + display: flex; + justify-content: center; + align-items: center; + text-align: center; + overflow: hidden; +} + +#youtube-iframe { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 1; + opacity: 0.7; + pointer-events: none; +} + +.header-content { + position: relative; + z-index: 2; + color: white; + text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.7); +} + +.header-overlay { + background: rgba(0, 0, 0, 0.5); + padding: 2em; + border-radius: 10px; +} + +.header-title { + font-size: 4em; + animation: kinetic 2s infinite alternate; +} + +@keyframes kinetic { + 0% { transform: scale(1); } + 100% { transform: scale(1.05); } +} + +.header-subtitle { + font-size: 1.5em; + margin: 0.5em 0; +} + +.cta-button { + padding: 0.5em 1em; + background-color: #1e90ff; + color: white; + text-decoration: none; + border-radius: 5px; + transition: background-color 0.3s, transform 0.3s; +} + +.cta-button:hover { + background-color: #1c86ee; + transform: scale(1.05); +} + +.subscribe-button { + background-color: #32cd32; +} + +.subscribe-button:hover { + background-color: #2eb82e; +} + +.social-proof { + margin-top: 1em; + font-size: 1em; + color: #ff4500; + display: flex; + justify-content: center; + gap: 2em; +} + +.social-proof p { + display: flex; + align-items: center; + gap: 0.5em; +} + +/* Navbar Styles */ +.navbar { + background-color: #111; + color: white; + padding: 1em; + position: sticky; + top: 0; + z-index: 3; +} + +.navbar-container { + display: flex; + justify-content: space-between; + align-items: center; +} + +.navbar-toggle { + display: none; + font-size: 1.5em; + cursor: pointer; +} + +.navbar .logo { + font-size: 1.5em; + color: white; + text-decoration: none; +} + +.main-nav { + list-style: none; + margin: 0; + padding: 0; + display: flex; + justify-content: space-around; + width: 100%; +} + +.main-nav .nav-links { + color: white; + text-decoration: none; + padding: 0.5em 1em; +} + +@media (max-width: 768px) { + .navbar-toggle { + display: block; + } + + .main-nav { + display: none; + flex-direction: column; + width: 100%; + background-color: #111; + position: absolute; + top: 3.5em; /* Adjust based on your navbar height */ + left: 0; + } + + .main-nav .nav-links { + text-align: center; + padding: 1em; + width: 100%; + } + + .main-nav.active { + display: flex; + } +} + +/* Section Styles */ +.about-section, .team-section, .events-section, .media-section, .contact-section, .ai-section, .integration-section, .testimonials-section, .faq-section, .spotlight-section, .mission-section, .social-media-section, .store-section { + padding: 2em; + background: #111; + transition: opacity 1s ease-in-out; +} + +.parallax { + background-attachment: fixed; + background-size: cover; + background-position: center; +} + +.about-section { + background-image: url('path/to/about-background.jpg'); +} + +.ai-section { + background-image: url('path/to/ai-background.jpg'); +} + +.events-section { + background-image: url('path/to/events-background.jpg'); +} + +.spotlight-section { + background: #222; +} + +.section-title { + text-align: center; + font-size: 2.5em; + margin-bottom: 1em; +} + +.team-grid, .media-grid, .cars-grid, .product-list { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); + gap: 1em; +} + +.team-card, .media-card, .car-card, .product { + background: #222; + padding: 1em; + border-radius: 5px; + box-shadow: 0 0 10px rgba(255, 69, 0, 0.7); + text-align: center; + transition: transform 0.3s; +} + +.team-card:hover, .media-card:hover, .car-card:hover, .product:hover { + transform: translateY(-10px); +} + +.about-content { + display: flex; + align-items: center; + gap: 1em; + margin-bottom: 1em; +} + +.about-icon { + font-size: 2em; + color: #ff4500; +} + +.events-container { + display: flex; + flex-wrap: nowrap; + justify-content: space-between; + gap: 2em; +} + +.events-list { + flex: 2; + list-style: none; + padding: 0; + margin: 0; +} + +.events-list li { + background: #222; + padding: 1em; + border-radius: 5px; + box-shadow: 0 0 10px rgba(255, 69, 0, 0.7); + margin-bottom: 1em; +} + +.calendar-container { + flex: 1; + display: flex; + justify-content: center; + align-items: center; + max-width: 400px; /* Adjust the max-width to control the size of the calendar */ +} + +.calendar-container iframe { + width: 100%; + height: 300px; /* Adjust the height as needed */ +} + +.integration-container { + display: flex; + flex-wrap: wrap; + justify-content: center; + gap: 2em; +} + +.facebook-integration, .poll-integration { + flex: 1; + max-width: 400px; /* Adjust the max-width to match the desired size */ +} + +.facebook-integration iframe, .poll-integration iframe { + width: 100%; + height: 500px; /* Set the same height for both elements */ +} + +@media (max-width: 768px) { + .events-container { + flex-direction: column; + } + + .calendar-container { + width: 100%; + } + + .integration-container { + flex-direction: column; + align-items: center; + } + + .facebook-integration, .poll-integration { + max-width: 100%; + } + + .facebook-integration iframe, .poll-integration iframe { + height: 500px; + } +} + +.media-carousel { + display: flex; + overflow: hidden; + padding: 1em 0; +} + +.carousel-item { + flex: 0 0 auto; + width: 250px; + background: #222; + border-radius: 5px; + box-shadow: 0 0 10px rgba(255, 69, 0, 0.7); + transition: transform 0.3s; +} + +.carousel-item:hover { + transform: scale(1.05); +} + +.spotlight-carousel, .testimonials-carousel { + display: flex; + overflow: hidden; + padding: 1em 0; + gap: 1em; + justify-content: center; +} + +.spotlight-item, .testimonial-item { + flex: 0 0 auto; + width: calc(100% - 20px); /* Adjust width for mobile view */ + max-width: 300px; + background: #333; + border-radius: 10px; + box-shadow: 0 0 10px rgba(255, 69, 0, 0.7); + padding: 1em; + transition: transform 0.3s; + margin: 0 10px; /* Ensure proper spacing */ +} + +.spotlight-item:hover, .testimonial-item:hover { + transform: scale(1.05); +} + +.spotlight-item img, .testimonial-item img { + width: 100%; + border-radius: 10px; +} + +.spotlight-item h3, .testimonial-item h3 { + margin: 0.5em 0; +} + +.spotlight-item p, .testimonial-item p { + font-size: 0.9em; + color: #ccc; +} + +.contact-section form { + display: flex; + flex-direction: column; +} + +.contact-section label { + margin-top: 1em; +} + +.contact-section input, .contact-section textarea { + padding: 0.5em; + margin-top: 0.5em; + border: none; + border-radius: 5px; + background: #333; + color: #fff; +} + +.contact-section button { + margin-top: 1em; + padding: 0.5em 1em; + background-color: #ff4500; + color: white; + text-decoration: none; + border-radius: 5px; + transition: background-color 0.3s; +} + +.contact-section button:hover { + background-color: #e43e00; +} + +.mission-section { + background: #111; + padding: 2em; + color: #fff; + text-align: left; +} + +.social-media-section { + background: #111; + padding: 2em; + text-align: center; +} + +.social-media-links a { + color: white; + margin: 0 1em; + font-size: 2em; + transition: color 0.3s; +} + +.social-media-links a:hover { + color: #ff4500; +} + +.footer { + background: #111; + padding: 1em; + text-align: center; + color: #fff; +} + +.social-media { + margin: 1em 0; +} + +.social-media a { + color: white; + margin: 0 0.5em; + font-size: 1.5em; + transition: color 0.3s; +} + +.social-media a:hover { + color: #ff4500; +} + +.testimonials-section { + padding: 2em; + background: #111; + color: #fff; + text-align: center; +} + +.faq-section { + padding: 2em; + background: #111; + color: #fff; + text-align: left; +} + +.faq-item { + margin-bottom: 1em; +} + +.faq-item h3 { + font-size: 1.5em; + color: #ff4500; +} + +.faq-item p { + margin-top: 0.5em; +} + +.back-to-top { + position: fixed; + bottom: 2em; + right: 2em; + background: #ff4500; + color: #fff; + padding: 1em; + border-radius: 50%; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.7); + display: none; + cursor: pointer; + transition: background-color 0.3s, transform 0.3s; +} + +.back-to-top:hover { + background-color: #e43e00; + transform: scale(1.1); +} + +@media (max-width: 768px) { + .back-to-top { + bottom: 1em; + right: 1em; + } +} + +/* Responsive Image Styles */ +.responsive-image { + max-width: 100%; + height: auto; +} + +/* Loading Spinner */ +.loading-spinner { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.8); + display: flex; + justify-content: center; + align-items: center; + z-index: 1000; +} + +.spinner { + border: 8px solid #f3f3f3; + border-top: 8px solid #ff4500; + border-radius: 50%; + width: 60px; + height: 60px; + animation: spin 1s linear infinite; +} + +@keyframes spin { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } +} + /* Store Section */ .store-section { padding: 2em; From 4ab1ee41af5d45d26d41151ad4ea39a445f49bcf Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Sun, 16 Jun 2024 18:17:22 -0700 Subject: [PATCH 031/407] Update index.html --- index.html | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/index.html b/index.html index 256ea53..3563bd9 100644 --- a/index.html +++ b/index.html @@ -3,6 +3,14 @@ + + + + + + + + iMOB Racing Online @@ -45,21 +53,12 @@

    Welcome to iMOB Racing

  • Drivers
  • Cars
  • Our Mission
  • +
  • Store
  • Contact
  • - - -

    About Us

    From 124370ef78a56a73d2959350df5c62e24458feb7 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Sun, 16 Jun 2024 18:22:25 -0700 Subject: [PATCH 032/407] Update store.html --- store.html | 47 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) diff --git a/store.html b/store.html index f0a469d..bcc0452 100644 --- a/store.html +++ b/store.html @@ -26,7 +26,52 @@

    Our Store

    -
    +
    + +
    + iMOB Racing T-Shirt 1 +

    iMOB Racing T-Shirt 1

    +

    High quality racing t-shirt.

    +

    $20.00

    + +
    +
    + iMOB Racing T-Shirt 2 +

    iMOB Racing T-Shirt 2

    +

    Another stylish racing t-shirt.

    +

    $20.00

    + +
    + +
    + Racing Helmet +

    Racing Helmet

    +

    Top-quality racing helmet.

    +

    Buy on Amazon

    +
    +
    + Racing Gloves +

    Racing Gloves

    +

    Durable and comfortable racing gloves.

    +

    Buy on Amazon

    +
    +
    From 5e60a6f65d547aa2c41b982979a434f0aac48fd0 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Sun, 16 Jun 2024 18:22:43 -0700 Subject: [PATCH 033/407] Update scripts.js --- scripts.js | 31 ------------------------------- 1 file changed, 31 deletions(-) diff --git a/scripts.js b/scripts.js index af263dc..6a6c703 100644 --- a/scripts.js +++ b/scripts.js @@ -220,37 +220,6 @@ document.addEventListener('DOMContentLoaded', () => { }); } - // Fetch products and display them in the store section - fetchProducts(); - - function fetchProducts() { - fetch('https://api.yourstore.com/products') - .then(response => response.json()) - .then(products => { - let productList = document.getElementById('product-list'); - products.forEach(product => { - let productElement = document.createElement('div'); - productElement.className = 'product'; - productElement.innerHTML = ` - ${product.name} -

    ${product.name}

    -

    ${product.description}

    -

    $${product.price}

    - - `; - productList.appendChild(productElement); - }); - }); - } - // Initialize Snipcart API key const snipcart = document.getElementById('snipcart'); if (snipcart) { From 13464f322f10f547da78ac4d82da42e1a915d6fc Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Sun, 16 Jun 2024 18:28:31 -0700 Subject: [PATCH 034/407] Update index.html --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index 3563bd9..a4a9ca7 100644 --- a/index.html +++ b/index.html @@ -167,7 +167,7 @@

    TT Event 4

    - +
    From f395d9fdc32666ce8351b37e510d330e98c19396 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Sun, 16 Jun 2024 18:28:49 -0700 Subject: [PATCH 035/407] Update scripts.js From 71c013e04f285881ab9e918a7f0b8c86027f8786 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Sun, 16 Jun 2024 18:31:28 -0700 Subject: [PATCH 036/407] Update store.html --- store.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/store.html b/store.html index bcc0452..acd327e 100644 --- a/store.html +++ b/store.html @@ -85,7 +85,7 @@

    Racing Gloves

    Contact: info@imobracingonline.com | Phone: (530) 420-5850

    - + From 1093a2004014c0ccb75be673656323daef0bcd3b Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Sun, 16 Jun 2024 18:32:06 -0700 Subject: [PATCH 037/407] Update scripts.js From bfcbbce50f1f42120a002fe2b2955e5b99db80de Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Sun, 16 Jun 2024 18:37:18 -0700 Subject: [PATCH 038/407] Update index.html --- index.html | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/index.html b/index.html index a4a9ca7..15f81fd 100644 --- a/index.html +++ b/index.html @@ -250,11 +250,26 @@

    How can I participate in events?

    - + + + + + From b496969b0710c64edc83f56038daeeb8aa723f91 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Sun, 16 Jun 2024 18:42:48 -0700 Subject: [PATCH 039/407] Update login.html --- login.html | 3 +++ 1 file changed, 3 insertions(+) diff --git a/login.html b/login.html index 4dc534d..a689e6d 100644 --- a/login.html +++ b/login.html @@ -34,6 +34,7 @@

    Login

    }) .catch((error) => { console.error('Error logging in: ', error); + alert('Login failed: ' + error.message); }); } @@ -46,6 +47,7 @@

    Login

    }) .catch((error) => { console.error('Error registering: ', error); + alert('Registration failed: ' + error.message); }); } @@ -57,6 +59,7 @@

    Login

    }) .catch((error) => { console.error('Error logging in with Google: ', error); + alert('Google login failed: ' + error.message); }); } From ef94f8a5c595b8d7d2ef912a1307885d554df45c Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Sun, 16 Jun 2024 18:52:59 -0700 Subject: [PATCH 040/407] Update config.js --- config.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/config.js b/config.js index 75f98ed..b127f31 100644 --- a/config.js +++ b/config.js @@ -1,4 +1,3 @@ -// config.js const CONFIG = { YOUTUBE_API_KEY: 'AIzaSyDaCJQhs3fz-k7hg-j0NQWj0S1r7ZEvThs', YOUTUBE_CHANNEL_ID: 'UCbvXNK-13KBK_yZuZ5YeLZw', @@ -14,7 +13,8 @@ const CONFIG = { projectId: "imob-racing-website", storageBucket: "imob-racing-website.appspot.com", messagingSenderId: "580908835958", - appId: "1:580908835958:web:a7bb3f6a4b52d8f8c28c1a", + appId: "1:580908835958:web:a7bb3f6a4b52d8f8c28c1a" + }, GOOGLE_CLIENT_ID: '580908835958-labitokmi7ivmvm0ha1muth5a45smnni.apps.googleusercontent.com', - SNIPCART_API_KEY: 'NDFkZGNlNDktMjE2YS00MmUyLTk4ZmYtMjY5YWE2OWYwOTI2NjM4NTQxODI3NjYwMTI3MDQ5' + SNIPCART_API_KEY: 'NDFkZGNlNDktMjE2YS00MmUyLTk4ZmYtMjY5YWE2OWYwOTI2NjM4NTQxODI3NjYwMTI3MDQ5' }; From d7dd80cc37b5d685fa62cab4bf30d3a44d0ddfce Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Sun, 16 Jun 2024 19:00:25 -0700 Subject: [PATCH 041/407] Update login.html --- login.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/login.html b/login.html index a689e6d..67cb6a0 100644 --- a/login.html +++ b/login.html @@ -34,7 +34,7 @@

    Login

    }) .catch((error) => { console.error('Error logging in: ', error); - alert('Login failed: ' + error.message); + alert('Login failed: ' + error.message + ' (' + error.code + ')'); }); } @@ -47,7 +47,7 @@

    Login

    }) .catch((error) => { console.error('Error registering: ', error); - alert('Registration failed: ' + error.message); + alert('Registration failed: ' + error.message + ' (' + error.code + ')'); }); } @@ -59,7 +59,7 @@

    Login

    }) .catch((error) => { console.error('Error logging in with Google: ', error); - alert('Google login failed: ' + error.message); + alert('Google login failed: ' + error.message + ' (' + error.code + ')'); }); } From 1efefd12b77f93ce2a284db993434e9d447b048f Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Sun, 16 Jun 2024 19:56:43 -0700 Subject: [PATCH 042/407] Update index.html --- index.html | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/index.html b/index.html index 15f81fd..9af4a68 100644 --- a/index.html +++ b/index.html @@ -246,7 +246,14 @@

    How can I participate in events?

    © 2024 iMOB Racing. All rights reserved.

    Contact: info@imobracingonline.com | Phone: (530) 420-5850

    - + +
    From 5e8a907a0c09e302255e770ad5e7cc25794e9eb4 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Sun, 16 Jun 2024 20:06:44 -0700 Subject: [PATCH 043/407] Update config.js --- config.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config.js b/config.js index b127f31..52a7266 100644 --- a/config.js +++ b/config.js @@ -1,5 +1,5 @@ const CONFIG = { - YOUTUBE_API_KEY: 'AIzaSyDaCJQhs3fz-k7hg-j0NQWj0S1r7ZEvThs', + YOUTUBE_API_KEY: 'AIzaSyABU-pv8sgjMtMx9Dv9ySsi2XGtUEGZhg', YOUTUBE_CHANNEL_ID: 'UCbvXNK-13KBK_yZuZ5YeLZw', FACEBOOK_PAGE_URL: 'https://www.facebook.com/imobracing', GOOGLE_FORM_URL: 'https://docs.google.com/forms/d/e/1FAIpQLSfZqtnqgL2im8K7Ih6hCjqLrEZ-frZzTMMlJLbMCMg4u8MxaA/viewform?usp=sf_link', @@ -8,7 +8,7 @@ const CONFIG = { DISQUS_PAGE_IDENTIFIER: 'imobracing-forums', GOOGLE_CALENDAR_ID: 'imobracing%40gmail.com', FIREBASE_CONFIG: { - apiKey: "AIzaSyB4sfEfSXhRq9pFcXhHJQUWeJppv0n9Uzw", + apiKey: "AIzaSyABU-pv8sgjMtMx9Dv9ySsi2XGtUEGZhg", authDomain: "imob-racing-website.firebaseapp.com", projectId: "imob-racing-website", storageBucket: "imob-racing-website.appspot.com", From 68d8269b8ee2c0234b53c205b736ceb526b63994 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Sun, 16 Jun 2024 20:07:09 -0700 Subject: [PATCH 044/407] Update login.html --- login.html | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/login.html b/login.html index 67cb6a0..0dde0ae 100644 --- a/login.html +++ b/login.html @@ -9,7 +9,10 @@ From 77747d7a2f141b7ea0e92c10c5cb2acec6c2b3f2 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Sun, 16 Jun 2024 20:11:25 -0700 Subject: [PATCH 045/407] Update login.html --- login.html | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/login.html b/login.html index 0dde0ae..c8051ca 100644 --- a/login.html +++ b/login.html @@ -7,11 +7,20 @@ - From bfcc3c1d063bd2f71c4b0c9ae055c06d2f813bc7 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Sun, 16 Jun 2024 20:14:08 -0700 Subject: [PATCH 046/407] Update login.html --- login.html | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/login.html b/login.html index c8051ca..3db73aa 100644 --- a/login.html +++ b/login.html @@ -3,12 +3,11 @@ - Login - + Login Test -

    Login

    +

    Login Test

    @@ -42,10 +43,11 @@

    Login

    var password = document.getElementById('password').value; firebase.auth().signInWithEmailAndPassword(email, password) .then((userCredential) => { - window.location.href = 'profile.html'; + console.log('Login successful:', userCredential); + alert('Login successful'); }) .catch((error) => { - console.error('Error logging in: ', error); + console.error('Error logging in:', error); alert('Login failed: ' + error.message + ' (' + error.code + ')'); }); } @@ -55,10 +57,11 @@

    Login

    var password = document.getElementById('password').value; firebase.auth().createUserWithEmailAndPassword(email, password) .then((userCredential) => { - window.location.href = 'profile.html'; + console.log('Registration successful:', userCredential); + alert('Registration successful'); }) .catch((error) => { - console.error('Error registering: ', error); + console.error('Error registering:', error); alert('Registration failed: ' + error.message + ' (' + error.code + ')'); }); } @@ -67,10 +70,11 @@

    Login

    var provider = new firebase.auth.GoogleAuthProvider(); firebase.auth().signInWithPopup(provider) .then((result) => { - window.location.href = 'profile.html'; + console.log('Google login successful:', result); + alert('Google login successful'); }) .catch((error) => { - console.error('Error logging in with Google: ', error); + console.error('Error logging in with Google:', error); alert('Google login failed: ' + error.message + ' (' + error.code + ')'); }); } From 7d60eb479599963be98efd2717331a8297b3828a Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Mon, 17 Jun 2024 01:37:11 -0700 Subject: [PATCH 047/407] Update login.html --- login.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/login.html b/login.html index 3db73aa..b71997e 100644 --- a/login.html +++ b/login.html @@ -16,7 +16,7 @@ messagingSenderId: "580908835958", appId: "1:580908835958:web:a7bb3f6a4b52d8f8c28c1a" }; - +localStorage.setItem('firebase:debug', 'true'); // Initialize Firebase if (!firebase.apps.length) { firebase.initializeApp(firebaseConfig); From a7185e3486cbf646b45e1b48131b66d05615a447 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Mon, 17 Jun 2024 05:05:21 -0700 Subject: [PATCH 048/407] Update login.html --- login.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/login.html b/login.html index b71997e..9dfcb74 100644 --- a/login.html +++ b/login.html @@ -9,7 +9,7 @@ - From 51267bb3dafd15a6853aad198f911e4b7766f6cb Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Mon, 17 Jun 2024 05:17:38 -0700 Subject: [PATCH 051/407] Update profile.html --- profile.html | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/profile.html b/profile.html index 8f5d251..ee35037 100644 --- a/profile.html +++ b/profile.html @@ -11,7 +11,7 @@ + + + + +

    Public Profile

    +

    +

    +
    + + From a2b4baf0e09f63dd8e16dc97e4d612de6ca4f6f1 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Mon, 17 Jun 2024 05:25:56 -0700 Subject: [PATCH 053/407] Update index.html --- index.html | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/index.html b/index.html index 9af4a68..70e6ada 100644 --- a/index.html +++ b/index.html @@ -18,6 +18,36 @@ + + +
    @@ -55,6 +85,7 @@

    Welcome to iMOB Racing

  • Our Mission
  • Store
  • Contact
  • +
  • All Profiles
  • @@ -246,7 +277,8 @@

    How can I participate in events?

    © 2024 iMOB Racing. All rights reserved.

    Contact: info@imobracingonline.com | Phone: (530) 420-5850

    - + + + + + + +

    All User Profiles

    +
    + + From dafa5f133e8c388530050ce40dc66211c340b89c Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Mon, 17 Jun 2024 05:29:41 -0700 Subject: [PATCH 055/407] Update profile.html --- profile.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/profile.html b/profile.html index ee35037..5706d1e 100644 --- a/profile.html +++ b/profile.html @@ -8,6 +8,7 @@ + From 3c4e1ec9161eceb0942c2d4c8ff89f74aa62c153 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Mon, 17 Jun 2024 17:35:01 -0700 Subject: [PATCH 056/407] Update config.js From 3631551ec0d6807049dcbce25758000c9d5f1c3e Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Mon, 17 Jun 2024 17:38:28 -0700 Subject: [PATCH 057/407] Update store.html --- store.html | 65 +++++++++++++++++++++++++----------------------------- 1 file changed, 30 insertions(+), 35 deletions(-) diff --git a/store.html b/store.html index acd327e..e1fd90d 100644 --- a/store.html +++ b/store.html @@ -5,71 +5,72 @@ Store - iMOB Racing - + + + + -
    + +

    Our Store

    -
    - -
    +
    +
    iMOB Racing T-Shirt 1

    iMOB Racing T-Shirt 1

    High quality racing t-shirt.

    $20.00

    -
    +
    iMOB Racing T-Shirt 2

    iMOB Racing T-Shirt 2

    Another stylish racing t-shirt.

    $20.00

    - -
    - Racing Helmet +
    + Racing Helmet

    Racing Helmet

    Top-quality racing helmet.

    -

    Buy on Amazon

    + Buy on Amazon
    -
    - Racing Gloves +
    + Racing Gloves

    Racing Gloves

    Durable and comfortable racing gloves.

    -

    Buy on Amazon

    + Buy on Amazon
    @@ -84,11 +85,5 @@

    Racing Gloves

    © 2024 iMOB Racing. All rights reserved.

    Contact: info@imobracingonline.com | Phone: (530) 420-5850

    - - - - - - From 3e88c316df669c125b6cfc8b7b3fdeeb39784f11 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Mon, 17 Jun 2024 17:41:47 -0700 Subject: [PATCH 058/407] Update store.html --- store.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/store.html b/store.html index e1fd90d..33b98a0 100644 --- a/store.html +++ b/store.html @@ -85,5 +85,7 @@

    Racing Gloves

    © 2024 iMOB Racing. All rights reserved.

    Contact: info@imobracingonline.com | Phone: (530) 420-5850

    + + From 929e8b70f08c4c6147a60514d07c6aca824d2e36 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Mon, 17 Jun 2024 17:44:42 -0700 Subject: [PATCH 059/407] Update styles.css From d00b091f50929bae628b73e5858be4655b6fb045 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Mon, 17 Jun 2024 17:45:01 -0700 Subject: [PATCH 060/407] Update styles.css --- styles.css | 407 +++++++++++++++++------------------------------------ 1 file changed, 127 insertions(+), 280 deletions(-) diff --git a/styles.css b/styles.css index b8537ed..93b62ce 100644 --- a/styles.css +++ b/styles.css @@ -11,6 +11,59 @@ h1, h2, h3, h4, h5, h6 { font-family: 'Oswald', sans-serif; } +/* Navbar Styles */ +.navbar { + background-color: #111; + color: white; + padding: 1em; + position: sticky; + top: 0; + z-index: 3; +} + +.navbar-container { + display: flex; + justify-content: space-between; + align-items: center; +} + +.navbar .logo { + font-size: 1.5em; + color: white; + text-decoration: none; +} + +.main-nav { + list-style: none; + margin: 0; + padding: 0; + display: flex; + justify-content: space-around; + width: 100%; +} + +.main-nav .nav-links { + color: white; + text-decoration: none; + padding: 0.5em 1em; +} + +@media (max-width: 768px) { + .navbar-container { + flex-direction: column; + } + + .main-nav { + flex-direction: column; + align-items: center; + } + + .main-nav .nav-links { + width: 100%; + text-align: center; + } +} + /* Header Styles */ .header { height: 100vh; @@ -98,77 +151,8 @@ h1, h2, h3, h4, h5, h6 { gap: 0.5em; } -/* Navbar Styles */ -.navbar { - background-color: #111; - color: white; - padding: 1em; - position: sticky; - top: 0; - z-index: 3; -} - -.navbar-container { - display: flex; - justify-content: space-between; - align-items: center; -} - -.navbar-toggle { - display: none; - font-size: 1.5em; - cursor: pointer; -} - -.navbar .logo { - font-size: 1.5em; - color: white; - text-decoration: none; -} - -.main-nav { - list-style: none; - margin: 0; - padding: 0; - display: flex; - justify-content: space-around; - width: 100%; -} - -.main-nav .nav-links { - color: white; - text-decoration: none; - padding: 0.5em 1em; -} - -@media (max-width: 768px) { - .navbar-toggle { - display: block; - } - - .main-nav { - display: none; - flex-direction: column; - width: 100%; - background-color: #111; - position: absolute; - top: 3.5em; /* Adjust based on your navbar height */ - left: 0; - } - - .main-nav .nav-links { - text-align: center; - padding: 1em; - width: 100%; - } - - .main-nav.active { - display: flex; - } -} - /* Section Styles */ -.about-section, .team-section, .events-section, .media-section, .contact-section, .ai-section, .integration-section, .testimonials-section, .faq-section, .spotlight-section, .mission-section, .social-media-section, .store-section { +section { padding: 2em; background: #111; transition: opacity 1s ease-in-out; @@ -180,20 +164,8 @@ h1, h2, h3, h4, h5, h6 { background-position: center; } -.about-section { - background-image: url('path/to/about-background.jpg'); -} - -.ai-section { - background-image: url('path/to/ai-background.jpg'); -} - -.events-section { - background-image: url('path/to/events-background.jpg'); -} - -.spotlight-section { - background: #222; +.about-section, .ai-section, .events-section { + background-image: url('path/to/background.jpg'); } .section-title { @@ -202,13 +174,13 @@ h1, h2, h3, h4, h5, h6 { margin-bottom: 1em; } -.team-grid, .media-grid, .cars-grid, .product-list { +.team-grid, .media-grid, .cars-grid, .store-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 1em; } -.team-card, .media-card, .car-card, .product { +.team-card, .media-card, .car-card, .store-item { background: #222; padding: 1em; border-radius: 5px; @@ -217,154 +189,78 @@ h1, h2, h3, h4, h5, h6 { transition: transform 0.3s; } -.team-card:hover, .media-card:hover, .car-card:hover, .product:hover { +.team-card:hover, .media-card:hover, .car-card:hover, .store-item:hover { transform: translateY(-10px); } -.about-content { +.about-content, .team-card, .media-card, .car-card, .store-item { display: flex; align-items: center; gap: 1em; margin-bottom: 1em; } -.about-icon { +.about-icon, .store-item img { font-size: 2em; color: #ff4500; } -.events-container { - display: flex; - flex-wrap: nowrap; - justify-content: space-between; - gap: 2em; -} - -.events-list { - flex: 2; - list-style: none; - padding: 0; - margin: 0; -} - -.events-list li { - background: #222; - padding: 1em; +.store-item img { + max-width: 100%; + height: auto; border-radius: 5px; - box-shadow: 0 0 10px rgba(255, 69, 0, 0.7); - margin-bottom: 1em; -} - -.calendar-container { - flex: 1; - display: flex; - justify-content: center; - align-items: center; - max-width: 400px; /* Adjust the max-width to control the size of the calendar */ -} - -.calendar-container iframe { - width: 100%; - height: 300px; /* Adjust the height as needed */ } -.integration-container { - display: flex; - flex-wrap: wrap; - justify-content: center; - gap: 2em; -} - -.facebook-integration, .poll-integration { - flex: 1; - max-width: 400px; /* Adjust the max-width to match the desired size */ -} - -.facebook-integration iframe, .poll-integration iframe { - width: 100%; - height: 500px; /* Set the same height for both elements */ -} - -@media (max-width: 768px) { - .events-container { - flex-direction: column; - } - - .calendar-container { - width: 100%; - } - - .integration-container { - flex-direction: column; - align-items: center; - } - - .facebook-integration, .poll-integration { - max-width: 100%; - } - - .facebook-integration iframe, .poll-integration iframe { - height: 500px; - } +.store-item h3 { + margin: 0.5em 0; } -.media-carousel { - display: flex; - overflow: hidden; - padding: 1em 0; +.store-item p { + margin: 0.5em 0; } -.carousel-item { - flex: 0 0 auto; - width: 250px; - background: #222; +.store-item button, +.store-item a { + display: inline-block; + padding: 0.5em 1em; + margin-top: 0.5em; + background-color: #ff4500; + color: white; + text-decoration: none; border-radius: 5px; - box-shadow: 0 0 10px rgba(255, 69, 0, 0.7); - transition: transform 0.3s; + transition: background-color 0.3s, transform 0.3s; } -.carousel-item:hover { +.store-item button:hover, +.store-item a:hover { + background-color: #e43e00; transform: scale(1.05); } -.spotlight-carousel, .testimonials-carousel { - display: flex; - overflow: hidden; - padding: 1em 0; - gap: 1em; - justify-content: center; -} - -.spotlight-item, .testimonial-item { - flex: 0 0 auto; - width: calc(100% - 20px); /* Adjust width for mobile view */ - max-width: 300px; - background: #333; - border-radius: 10px; - box-shadow: 0 0 10px rgba(255, 69, 0, 0.7); +/* Footer Styles */ +.footer { + background: #111; padding: 1em; - transition: transform 0.3s; - margin: 0 10px; /* Ensure proper spacing */ -} - -.spotlight-item:hover, .testimonial-item:hover { - transform: scale(1.05); + text-align: center; + color: #fff; } -.spotlight-item img, .testimonial-item img { - width: 100%; - border-radius: 10px; +.social-media { + margin: 1em 0; } -.spotlight-item h3, .testimonial-item h3 { - margin: 0.5em 0; +.social-media a { + color: white; + margin: 0 0.5em; + font-size: 1.5em; + transition: color 0.3s; } -.spotlight-item p, .testimonial-item p { - font-size: 0.9em; - color: #ccc; +.social-media a:hover { + color: #ff4500; } +/* Contact Form Styles */ .contact-section form { display: flex; flex-direction: column; @@ -397,16 +293,15 @@ h1, h2, h3, h4, h5, h6 { background-color: #e43e00; } -.mission-section { - background: #111; +/* Additional Section Styles */ +.mission-section, .social-media-section, .testimonials-section, .faq-section { padding: 2em; + background: #111; color: #fff; text-align: left; } .social-media-section { - background: #111; - padding: 2em; text-align: center; } @@ -421,42 +316,46 @@ h1, h2, h3, h4, h5, h6 { color: #ff4500; } -.footer { - background: #111; - padding: 1em; - text-align: center; - color: #fff; +/* Testimonials Styles */ +.testimonials-carousel { + display: flex; + overflow: hidden; + padding: 1em 0; + gap: 1em; + justify-content: center; } -.social-media { - margin: 1em 0; +.testimonial-item { + flex: 0 0 auto; + width: calc(100% - 20px); /* Adjust width for mobile view */ + max-width: 300px; + background: #333; + border-radius: 10px; + box-shadow: 0 0 10px rgba(255, 69, 0, 0.7); + padding: 1em; + transition: transform 0.3s; + margin: 0 10px; /* Ensure proper spacing */ } -.social-media a { - color: white; - margin: 0 0.5em; - font-size: 1.5em; - transition: color 0.3s; +.testimonial-item:hover { + transform: scale(1.05); } -.social-media a:hover { - color: #ff4500; +.testimonial-item img { + width: 100%; + border-radius: 10px; } -.testimonials-section { - padding: 2em; - background: #111; - color: #fff; - text-align: center; +.testimonial-item h3 { + margin: 0.5em 0; } -.faq-section { - padding: 2em; - background: #111; - color: #fff; - text-align: left; +.testimonial-item p { + font-size: 0.9em; + color: #ccc; } +/* FAQ Styles */ .faq-item { margin-bottom: 1em; } @@ -470,6 +369,7 @@ h1, h2, h3, h4, h5, h6 { margin-top: 0.5em; } +/* Back to Top Button */ .back-to-top { position: fixed; bottom: 2em; @@ -529,56 +429,3 @@ h1, h2, h3, h4, h5, h6 { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } - -/* Store Section */ -.store-section { - padding: 2em; - background: #111; - text-align: center; -} - -.product-list { - display: grid; - grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); - gap: 1em; -} - -.product { - background: #222; - padding: 1em; - border-radius: 5px; - box-shadow: 0 0 10px rgba(255, 69, 0, 0.7); - text-align: center; - transition: transform 0.3s; -} - -.product:hover { - transform: translateY(-10px); -} - -.product img { - width: 100%; - height: auto; - border-radius: 5px; -} - -.product h3 { - margin: 0.5em 0; -} - -.product p { - color: #ccc; -} - -.product button { - padding: 0.5em 1em; - background-color: #ff4500; - color: white; - border: none; - border-radius: 5px; - transition: background-color 0.3s; -} - -.product button:hover { - background-color: #e43e00; -} From 38ad5cc6f8816110a9ec4d7b12f08b8d68daf6d1 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Mon, 17 Jun 2024 17:46:55 -0700 Subject: [PATCH 061/407] Update store.html --- store.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/store.html b/store.html index 33b98a0..986486d 100644 --- a/store.html +++ b/store.html @@ -86,6 +86,6 @@

    Racing Gloves

    Contact: info@imobracingonline.com | Phone: (530) 420-5850

    - + From e5502f5449f44a2dad10704579af59a040d85896 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Mon, 17 Jun 2024 17:52:29 -0700 Subject: [PATCH 062/407] Update store.html --- store.html | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/store.html b/store.html index 986486d..cbf5e69 100644 --- a/store.html +++ b/store.html @@ -6,10 +6,10 @@ Store - iMOB Racing - + @@ -31,6 +31,8 @@

    Our Store

    + +

    Internal Store Items

    iMOB Racing T-Shirt 1 @@ -60,6 +62,10 @@

    iMOB Racing T-Shirt 2

    Add to Cart
    +
    + +

    External Store Items

    +
    Racing Helmet

    Racing Helmet

    From 0346c722707198c9085262a563afaae16d3a54d0 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Mon, 17 Jun 2024 17:52:58 -0700 Subject: [PATCH 063/407] Update styles.css --- styles.css | 210 ++++++++++++----------------------------------------- 1 file changed, 46 insertions(+), 164 deletions(-) diff --git a/styles.css b/styles.css index 93b62ce..8880324 100644 --- a/styles.css +++ b/styles.css @@ -165,22 +165,28 @@ section { } .about-section, .ai-section, .events-section { - background-image: url('path/to/background.jpg'); + background-image: url('images/background.jpg'); } -.section-title { +/* Store Section */ +.store-section { + padding: 2em; + background-color: #111; +} + +.store-section h3 { text-align: center; - font-size: 2.5em; - margin-bottom: 1em; + font-size: 2em; + margin: 1em 0; } -.team-grid, .media-grid, .cars-grid, .store-grid { +.store-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 1em; } -.team-card, .media-card, .car-card, .store-item { +.store-item { background: #222; padding: 1em; border-radius: 5px; @@ -189,25 +195,12 @@ section { transition: transform 0.3s; } -.team-card:hover, .media-card:hover, .car-card:hover, .store-item:hover { +.store-item:hover { transform: translateY(-10px); } -.about-content, .team-card, .media-card, .car-card, .store-item { - display: flex; - align-items: center; - gap: 1em; - margin-bottom: 1em; -} - -.about-icon, .store-item img { - font-size: 2em; - color: #ff4500; -} - .store-item img { - max-width: 100%; - height: auto; + width: 100%; border-radius: 5px; } @@ -216,25 +209,23 @@ section { } .store-item p { - margin: 0.5em 0; + font-size: 1em; + color: #ccc; } -.store-item button, -.store-item a { - display: inline-block; +.store-item button, .store-item a { + display: block; + margin: 1em auto 0; padding: 0.5em 1em; - margin-top: 0.5em; background-color: #ff4500; color: white; text-decoration: none; border-radius: 5px; - transition: background-color 0.3s, transform 0.3s; + transition: background-color 0.3s; } -.store-item button:hover, -.store-item a:hover { +.store-item button:hover, .store-item a:hover { background-color: #e43e00; - transform: scale(1.05); } /* Footer Styles */ @@ -260,116 +251,41 @@ section { color: #ff4500; } -/* Contact Form Styles */ -.contact-section form { - display: flex; - flex-direction: column; -} - -.contact-section label { - margin-top: 1em; -} - -.contact-section input, .contact-section textarea { - padding: 0.5em; - margin-top: 0.5em; - border: none; - border-radius: 5px; - background: #333; - color: #fff; -} - -.contact-section button { - margin-top: 1em; - padding: 0.5em 1em; - background-color: #ff4500; - color: white; - text-decoration: none; - border-radius: 5px; - transition: background-color 0.3s; -} - -.contact-section button:hover { - background-color: #e43e00; -} - -/* Additional Section Styles */ -.mission-section, .social-media-section, .testimonials-section, .faq-section { - padding: 2em; - background: #111; - color: #fff; - text-align: left; -} - -.social-media-section { - text-align: center; -} - -.social-media-links a { - color: white; - margin: 0 1em; - font-size: 2em; - transition: color 0.3s; -} - -.social-media-links a:hover { - color: #ff4500; +/* Responsive Image Styles */ +.responsive-image { + max-width: 100%; + height: auto; } -/* Testimonials Styles */ -.testimonials-carousel { +/* Loading Spinner */ +.loading-spinner { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.8); display: flex; - overflow: hidden; - padding: 1em 0; - gap: 1em; justify-content: center; + align-items: center; + z-index: 1000; } -.testimonial-item { - flex: 0 0 auto; - width: calc(100% - 20px); /* Adjust width for mobile view */ - max-width: 300px; - background: #333; - border-radius: 10px; - box-shadow: 0 0 10px rgba(255, 69, 0, 0.7); - padding: 1em; - transition: transform 0.3s; - margin: 0 10px; /* Ensure proper spacing */ -} - -.testimonial-item:hover { - transform: scale(1.05); -} - -.testimonial-item img { - width: 100%; - border-radius: 10px; -} - -.testimonial-item h3 { - margin: 0.5em 0; -} - -.testimonial-item p { - font-size: 0.9em; - color: #ccc; -} - -/* FAQ Styles */ -.faq-item { - margin-bottom: 1em; -} - -.faq-item h3 { - font-size: 1.5em; - color: #ff4500; +.spinner { + border: 8px solid #f3f3f3; + border-top: 8px solid #ff4500; + border-radius: 50%; + width: 60px; + height: 60px; + animation: spin 1s linear infinite; } -.faq-item p { - margin-top: 0.5em; +@keyframes spin { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } } -/* Back to Top Button */ +/* Miscellaneous */ .back-to-top { position: fixed; bottom: 2em; @@ -395,37 +311,3 @@ section { right: 1em; } } - -/* Responsive Image Styles */ -.responsive-image { - max-width: 100%; - height: auto; -} - -/* Loading Spinner */ -.loading-spinner { - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; - background: rgba(0, 0, 0, 0.8); - display: flex; - justify-content: center; - align-items: center; - z-index: 1000; -} - -.spinner { - border: 8px solid #f3f3f3; - border-top: 8px solid #ff4500; - border-radius: 50%; - width: 60px; - height: 60px; - animation: spin 1s linear infinite; -} - -@keyframes spin { - 0% { transform: rotate(0deg); } - 100% { transform: rotate(360deg); } -} From 5e2266ea074a54071f658b968d9e2491c9d75eae Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Mon, 17 Jun 2024 17:58:54 -0700 Subject: [PATCH 064/407] Create index.css --- index.css | 99 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 index.css diff --git a/index.css b/index.css new file mode 100644 index 0000000..03ee24d --- /dev/null +++ b/index.css @@ -0,0 +1,99 @@ +/* index.css */ + +/* Header Styles */ +.header { + height: 100vh; + position: relative; + display: flex; + justify-content: center; + align-items: center; + text-align: center; + overflow: hidden; +} + +#youtube-iframe { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 1; + opacity: 0.7; + pointer-events: none; +} + +.header-content { + position: relative; + z-index: 2; + color: white; + text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.7); +} + +.header-overlay { + background: rgba(0, 0, 0, 0.5); + padding: 2em; + border-radius: 10px; +} + +.header-title { + font-size: 4em; + animation: kinetic 2s infinite alternate; +} + +@keyframes kinetic { + 0% { transform: scale(1); } + 100% { transform: scale(1.05); } +} + +.header-subtitle { + font-size: 1.5em; + margin: 0.5em 0; +} + +.cta-button { + padding: 0.5em 1em; + background-color: #1e90ff; + color: white; + text-decoration: none; + border-radius: 5px; + transition: background-color 0.3s, transform 0.3s; +} + +.cta-button:hover { + background-color: #1c86ee; + transform: scale(1.05); +} + +.subscribe-button { + background-color: #32cd32; +} + +.subscribe-button:hover { + background-color: #2eb82e; +} + +.social-proof { + margin-top: 1em; + font-size: 1em; + color: #ff4500; + display: flex; + justify-content: center; + gap: 2em; +} + +.social-proof p { + display: flex; + align-items: center; + gap: 0.5em; +} + +/* Parallax Sections */ +.parallax { + background-attachment: fixed; + background-size: cover; + background-position: center; +} + +.about-section, .ai-section, .events-section { + background-image: url('images/background.jpg'); +} From 9790490ad062d27ad0b84db60fc110be0c05364b Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Mon, 17 Jun 2024 17:59:09 -0700 Subject: [PATCH 065/407] Create store.css --- store.css | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 store.css diff --git a/store.css b/store.css new file mode 100644 index 0000000..7264264 --- /dev/null +++ b/store.css @@ -0,0 +1,61 @@ +/* store.css */ + +/* Store Section */ +.store-section { + padding: 2em; + background-color: #111; +} + +.store-section h3 { + text-align: center; + font-size: 2em; + margin: 1em 0; +} + +.store-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); + gap: 1em; +} + +.store-item { + background: #222; + padding: 1em; + border-radius: 5px; + box-shadow: 0 0 10px rgba(255, 69, 0, 0.7); + text-align: center; + transition: transform 0.3s; +} + +.store-item:hover { + transform: translateY(-10px); +} + +.store-item img { + width: 100%; + border-radius: 5px; +} + +.store-item h3 { + margin: 0.5em 0; +} + +.store-item p { + font-size: 1em; + color: #ccc; +} + +.store-item button, .store-item a { + display: block; + margin: 1em auto 0; + padding: 0.5em 1em; + background-color: #ff4500; + color: white; + text-decoration: none; + border-radius: 5px; + transition: background-color 0.3s; +} + +.store-item button:hover, .store-item a:hover { + background-color: #e43e00; +} From de5263e14618f55d33de4bfcf04a230e0f55921f Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Mon, 17 Jun 2024 17:59:25 -0700 Subject: [PATCH 066/407] Update styles.css --- styles.css | 159 +---------------------------------------------------- 1 file changed, 2 insertions(+), 157 deletions(-) diff --git a/styles.css b/styles.css index 8880324..c851cb2 100644 --- a/styles.css +++ b/styles.css @@ -1,3 +1,5 @@ +/* styles.css */ + /* General Styles */ body, html { margin: 0; @@ -64,93 +66,6 @@ h1, h2, h3, h4, h5, h6 { } } -/* Header Styles */ -.header { - height: 100vh; - position: relative; - display: flex; - justify-content: center; - align-items: center; - text-align: center; - overflow: hidden; -} - -#youtube-iframe { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - z-index: 1; - opacity: 0.7; - pointer-events: none; -} - -.header-content { - position: relative; - z-index: 2; - color: white; - text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.7); -} - -.header-overlay { - background: rgba(0, 0, 0, 0.5); - padding: 2em; - border-radius: 10px; -} - -.header-title { - font-size: 4em; - animation: kinetic 2s infinite alternate; -} - -@keyframes kinetic { - 0% { transform: scale(1); } - 100% { transform: scale(1.05); } -} - -.header-subtitle { - font-size: 1.5em; - margin: 0.5em 0; -} - -.cta-button { - padding: 0.5em 1em; - background-color: #1e90ff; - color: white; - text-decoration: none; - border-radius: 5px; - transition: background-color 0.3s, transform 0.3s; -} - -.cta-button:hover { - background-color: #1c86ee; - transform: scale(1.05); -} - -.subscribe-button { - background-color: #32cd32; -} - -.subscribe-button:hover { - background-color: #2eb82e; -} - -.social-proof { - margin-top: 1em; - font-size: 1em; - color: #ff4500; - display: flex; - justify-content: center; - gap: 2em; -} - -.social-proof p { - display: flex; - align-items: center; - gap: 0.5em; -} - /* Section Styles */ section { padding: 2em; @@ -158,76 +73,6 @@ section { transition: opacity 1s ease-in-out; } -.parallax { - background-attachment: fixed; - background-size: cover; - background-position: center; -} - -.about-section, .ai-section, .events-section { - background-image: url('images/background.jpg'); -} - -/* Store Section */ -.store-section { - padding: 2em; - background-color: #111; -} - -.store-section h3 { - text-align: center; - font-size: 2em; - margin: 1em 0; -} - -.store-grid { - display: grid; - grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); - gap: 1em; -} - -.store-item { - background: #222; - padding: 1em; - border-radius: 5px; - box-shadow: 0 0 10px rgba(255, 69, 0, 0.7); - text-align: center; - transition: transform 0.3s; -} - -.store-item:hover { - transform: translateY(-10px); -} - -.store-item img { - width: 100%; - border-radius: 5px; -} - -.store-item h3 { - margin: 0.5em 0; -} - -.store-item p { - font-size: 1em; - color: #ccc; -} - -.store-item button, .store-item a { - display: block; - margin: 1em auto 0; - padding: 0.5em 1em; - background-color: #ff4500; - color: white; - text-decoration: none; - border-radius: 5px; - transition: background-color 0.3s; -} - -.store-item button:hover, .store-item a:hover { - background-color: #e43e00; -} - /* Footer Styles */ .footer { background: #111; From 975f33f01a7eada6b33cef036cabf7ae440fd3ec Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Mon, 17 Jun 2024 17:59:37 -0700 Subject: [PATCH 067/407] Delete submit_form.php --- submit_form.php | 19 ------------------- 1 file changed, 19 deletions(-) delete mode 100644 submit_form.php diff --git a/submit_form.php b/submit_form.php deleted file mode 100644 index 3026bd1..0000000 --- a/submit_form.php +++ /dev/null @@ -1,19 +0,0 @@ - From 4a4e32de2781957b47462bad2017aa0729fd48f0 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Mon, 17 Jun 2024 18:00:44 -0700 Subject: [PATCH 068/407] Update index.html --- index.html | 1 + 1 file changed, 1 insertion(+) diff --git a/index.html b/index.html index 70e6ada..3109333 100644 --- a/index.html +++ b/index.html @@ -13,6 +13,7 @@ iMOB Racing Online + From 5a2c3b6750cecebcbce549a79e097ad912c2f881 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Mon, 17 Jun 2024 18:01:56 -0700 Subject: [PATCH 069/407] Update store.html --- store.html | 1 + 1 file changed, 1 insertion(+) diff --git a/store.html b/store.html index cbf5e69..fc21916 100644 --- a/store.html +++ b/store.html @@ -5,6 +5,7 @@ Store - iMOB Racing + + + + + + From 57af1f40ec309b15de67a8a22a72820d8b434fbc Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Mon, 17 Jun 2024 18:19:42 -0700 Subject: [PATCH 073/407] Create header.html --- _includes/header.html | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 _includes/header.html diff --git a/_includes/header.html b/_includes/header.html new file mode 100644 index 0000000..fb623f8 --- /dev/null +++ b/_includes/header.html @@ -0,0 +1,16 @@ + From a3cddf5b1b2e47b966fd5ce8463a075183a5b499 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Mon, 17 Jun 2024 18:19:59 -0700 Subject: [PATCH 074/407] Create footer.html --- _includes/footer.html | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 _includes/footer.html diff --git a/_includes/footer.html b/_includes/footer.html new file mode 100644 index 0000000..ba0a6be --- /dev/null +++ b/_includes/footer.html @@ -0,0 +1,10 @@ +
    + +

    © 2024 iMOB Racing. All rights reserved.

    +

    Contact: info@imobracingonline.com | Phone: (530) 420-5850

    +
    From 90195097f3c4700abcc6f15d0c65c59a3c287714 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Mon, 17 Jun 2024 18:20:22 -0700 Subject: [PATCH 075/407] Create index.md --- index.md | 85 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 index.md diff --git a/index.md b/index.md new file mode 100644 index 0000000..3e016af --- /dev/null +++ b/index.md @@ -0,0 +1,85 @@ +--- +layout: default +title: Home +--- + +
    +
    + +
    +
    +
    +

    Welcome to iMOB Racing

    +

    Feel the Thrill of Racing

    + Learn More + + +
    +
    +
    + +
    +

    About Us

    +
    +
    + +
    +

    At iMOB Racing, our ambition is to become the premier team in the racing industry. Comprising dedicated racecar modders and enthusiasts, we specialize in time attack racing while also participating in 4x4, rally, drifting, off-road, street bikes, dirt bikes, and crosskarts. We pride ourselves on being 100% built, not bought, with a commitment to modifying and customizing any vehicle.

    +
    +
    +
    + +
    +

    Our co-founders, Anthony Yorba and Tony Langston, drive the team with their technical expertise and artistic vision. Leading the charge on the track, our top driver, Chris Statler, epitomizes our racing spirit, while our youngest member, Daniel Bertholf, stands out in the drifting scene.

    +
    +
    +
    + +
    +

    We are dedicated to expanding our brand through dynamic race footage, informative repair videos, and exclusive behind-the-scenes content. Additionally, we offer engaging giveaways and forums for discussions, event updates, and buy/sell opportunities.

    +
    +
    + +
    +

    Upcoming Events

    +
    +
      +
    • +

      TT Event 3

      +

      Date: June 22, 2024

      +

      Location: Thunderhill, Willows, Ca

      +
    • +
    • +

      TT Event 4

      +

      Date: September 20, 2024

      +

      Location: Thunderhill, Willows, Ca

      +
    • +
    +
    + +
    +
    +
    + +
    +

    Contact Us

    +
    +

    + +

    +

    + +

    +

    + +

    +

    + +

    +
    +

    Phone: (530) 420-5850

    +

    Email: info@imobracingonline.com

    +
    From da33c4f291d0fb8a23e1752bd31fa32a4f4c2b88 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Mon, 17 Jun 2024 18:20:40 -0700 Subject: [PATCH 076/407] Create store.md --- store.md | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 store.md diff --git a/store.md b/store.md new file mode 100644 index 0000000..bdf80ed --- /dev/null +++ b/store.md @@ -0,0 +1,56 @@ +--- +layout: default +title: Store +--- + +
    +

    Our Store

    + +

    Internal Store Items

    +
    +
    + iMOB Racing T-Shirt 1 +

    iMOB Racing T-Shirt 1

    +

    High quality racing t-shirt.

    +

    $20.00

    + +
    +
    + iMOB Racing T-Shirt 2 +

    iMOB Racing T-Shirt 2

    +

    Another stylish racing t-shirt.

    +

    $20.00

    + +
    +
    + +

    External Store Items

    +
    +
    + Racing Helmet +

    Racing Helmet

    +

    Top-quality racing helmet.

    + Buy on Amazon +
    +
    + Racing Gloves +

    Racing Gloves

    +

    Durable and comfortable racing gloves.

    + Buy on Amazon +
    +
    +
    From 19089f0cd3cfc207e1300aa004b8801ae272e2bb Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Mon, 17 Jun 2024 18:20:56 -0700 Subject: [PATCH 077/407] Create login.md --- login.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 login.md diff --git a/login.md b/login.md new file mode 100644 index 0000000..6d77004 --- /dev/null +++ b/login.md @@ -0,0 +1,52 @@ +--- +layout: default +title: Login +--- + +

    Login Test

    + + + + + + + From 2c4b58e70be8a3c8ecf7b5ccaf1375468ac0b7b9 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Mon, 17 Jun 2024 18:21:12 -0700 Subject: [PATCH 078/407] Create profile.md --- profile.md | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 profile.md diff --git a/profile.md b/profile.md new file mode 100644 index 0000000..d84d918 --- /dev/null +++ b/profile.md @@ -0,0 +1,51 @@ +--- +layout: default +title: Profile +--- + +

    Profile Page

    +

    +

    + + + + + From 7109e4a239c05a3e3263468919e55d3c66102849 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Mon, 17 Jun 2024 18:21:36 -0700 Subject: [PATCH 079/407] Update scripts.js --- scripts.js | 71 ++++++++++++++++++++++-------------------------------- 1 file changed, 29 insertions(+), 42 deletions(-) diff --git a/scripts.js b/scripts.js index 6a6c703..09f7ea3 100644 --- a/scripts.js +++ b/scripts.js @@ -1,26 +1,22 @@ document.addEventListener('DOMContentLoaded', () => { const loadingSpinner = document.getElementById('loading-spinner'); - if (loadingSpinner) { - window.addEventListener('load', () => { - loadingSpinner.style.display = 'none'; - }); - } + window.addEventListener('load', () => { + loadingSpinner.style.display = 'none'; + }); const navToggle = document.getElementById('js-navbar-toggle'); const menu = document.getElementById('js-menu'); - if (navToggle) { - navToggle.addEventListener('click', () => { - menu.classList.toggle('active'); - }); - } + navToggle.addEventListener('click', () => { + menu.classList.toggle('active'); + }); const navLinks = document.querySelectorAll('.navbar a'); const sections = document.querySelectorAll('section'); // Smooth scrolling for navigation links navLinks.forEach(link => { - link.addEventListener('click', function (e) { + link.addEventListener('click', function(e) { if (this.getAttribute('href').startsWith('#')) { e.preventDefault(); const targetId = this.getAttribute('href').substring(1); @@ -60,7 +56,7 @@ document.addEventListener('DOMContentLoaded', () => { // Fetch YouTube videos function fetchYouTubeVideos() { - $.get(`https://www.googleapis.com/youtube/v3/search?key=${API_KEY}&channelId=${CHANNEL_ID}&part=snippet,id&order=date&maxResults=${MAX_RESULTS}`, function (data) { + $.get(`https://www.googleapis.com/youtube/v3/search?key=${API_KEY}&channelId=${CHANNEL_ID}&part=snippet,id&order=date&maxResults=${MAX_RESULTS}`, function(data) { let videoItems = ''; data.items.forEach(item => { if (item.id.kind === "youtube#video") { @@ -138,7 +134,7 @@ document.addEventListener('DOMContentLoaded', () => { this.page.identifier = CONFIG.DISQUS_PAGE_IDENTIFIER; }; - (function () { + (function() { const d = document, s = d.createElement('script'); s.src = `https://${CONFIG.DISQUS_SHORTNAME}.disqus.com/embed.js`; s.setAttribute('data-timestamp', +new Date()); @@ -147,10 +143,7 @@ document.addEventListener('DOMContentLoaded', () => { // Load Google Calendar const googleCalendarSrc = `https://calendar.google.com/calendar/embed?src=${CONFIG.GOOGLE_CALENDAR_ID}&ctz=America%2FLos_Angeles`; - const calendarElement = document.getElementById('google-calendar'); - if (calendarElement) { - calendarElement.src = googleCalendarSrc; - } + document.getElementById('google-calendar').src = googleCalendarSrc; // Initialize AOS AOS.init(); @@ -199,30 +192,24 @@ document.addEventListener('DOMContentLoaded', () => { behavior: 'smooth' }); }); +}); - function initializeTestimonialsCarousel() { - $('.testimonials-carousel').slick({ - infinite: true, - slidesToShow: 2, - slidesToScroll: 1, - autoplay: true, - autoplaySpeed: 3000, - arrows: false, - dots: true, - responsive: [ - { - breakpoint: 768, - settings: { - slidesToShow: 1 - } +function initializeTestimonialsCarousel() { + $('.testimonials-carousel').slick({ + infinite: true, + slidesToShow: 2, + slidesToScroll: 1, + autoplay: true, + autoplaySpeed: 3000, + arrows: false, + dots: true, + responsive: [ + { + breakpoint: 768, + settings: { + slidesToShow: 1 } - ] - }); - } - - // Initialize Snipcart API key - const snipcart = document.getElementById('snipcart'); - if (snipcart) { - snipcart.setAttribute('data-api-key', CONFIG.SNIPCART_API_KEY); - } -}); + } + ] + }); +} From 69059fc2443c0619939c3c1a967b2859bf367582 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Mon, 17 Jun 2024 18:22:11 -0700 Subject: [PATCH 080/407] Create styles.css --- assets/css/styles.css | 529 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 529 insertions(+) create mode 100644 assets/css/styles.css diff --git a/assets/css/styles.css b/assets/css/styles.css new file mode 100644 index 0000000..d2c6c54 --- /dev/null +++ b/assets/css/styles.css @@ -0,0 +1,529 @@ +/* General Styles */ +body, html { + margin: 0; + padding: 0; + font-family: 'Roboto', sans-serif; + background-color: #000; + color: #fff; +} + +h1, h2, h3, h4, h5, h6 { + font-family: 'Oswald', sans-serif; +} + +/* Header Styles */ +.header { + height: 100vh; + position: relative; + display: flex; + justify-content: center; + align-items: center; + text-align: center; + overflow: hidden; +} + +#youtube-iframe { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 1; + opacity: 0.7; + pointer-events: none; +} + +.header-content { + position: relative; + z-index: 2; + color: white; + text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.7); +} + +.header-overlay { + background: rgba(0, 0, 0, 0.5); + padding: 2em; + border-radius: 10px; +} + +.header-title { + font-size: 4em; + animation: kinetic 2s infinite alternate; +} + +@keyframes kinetic { + 0% { transform: scale(1); } + 100% { transform: scale(1.05); } +} + +.header-subtitle { + font-size: 1.5em; + margin: 0.5em 0; +} + +.cta-button { + padding: 0.5em 1em; + background-color: #1e90ff; + color: white; + text-decoration: none; + border-radius: 5px; + transition: background-color 0.3s, transform 0.3s; +} + +.cta-button:hover { + background-color: #1c86ee; + transform: scale(1.05); +} + +.subscribe-button { + background-color: #32cd32; +} + +.subscribe-button:hover { + background-color: #2eb82e; +} + +.social-proof { + margin-top: 1em; + font-size: 1em; + color: #ff4500; + display: flex; + justify-content: center; + gap: 2em; +} + +.social-proof p { + display: flex; + align-items: center; + gap: 0.5em; +} + +.navbar { + background-color: #111; + color: white; + padding: 1em; + position: sticky; + top: 0; + z-index: 3; +} + +.navbar-container { + display: flex; + justify-content: space-between; + align-items: center; +} + +.navbar-toggle { + display: none; + font-size: 1.5em; + cursor: pointer; +} + +.navbar .logo { + font-size: 1.5em; + color: white; + text-decoration: none; +} + +.main-nav { + list-style: none; + margin: 0; + padding: 0; + display: flex; + justify-content: space-around; + width: 100%; +} + +.main-nav .nav-links { + color: white; + text-decoration: none; + padding: 0.5em 1em; +} + +@media (max-width: 768px) { + .navbar-toggle { + display: block; + } + + .main-nav { + display: none; + flex-direction: column; + width: 100%; + background-color: #111; + position: absolute; + top: 3.5em; /* Adjust based on your navbar height */ + left: 0; + } + + .main-nav .nav-links { + text-align: center; + padding: 1em; + width: 100%; + } + + .main-nav.active { + display: flex; + } +} + +.about-section, .team-section, .events-section, .media-section, .contact-section, .ai-section, .integration-section, .testimonials-section, .faq-section, .spotlight-section, .mission-section, .social-media-section { + padding: 2em; + background: #111; + transition: opacity 1s ease-in-out; +} + +.parallax { + background-attachment: fixed; + background-size: cover; + background-position: center; +} + +.about-section { + background-image: url('/assets/images/about-background.jpg'); +} + +.ai-section { + background-image: url('/assets/images/ai-background.jpg'); +} + +.events-section { + background-image: url('/assets/images/events-background.jpg'); +} + +.spotlight-section { + background: #222; +} + +.section-title { + text-align: center; + font-size: 2.5em; + margin-bottom: 1em; +} + +.team-grid, .media-grid, .cars-grid, .store-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); + gap: 1em; +} + +.team-card, .media-card, .car-card, .store-item { + background: #222; + padding: 1em; + border-radius: 5px; + box-shadow: 0 0 10px rgba(255, 69, 0, 0.7); + text-align: center; + transition: transform 0.3s; +} + +.team-card:hover, .media-card:hover, .car-card:hover, .store-item:hover { + transform: translateY(-10px); +} + +.about-content { + display: flex; + align-items: center; + gap: 1em; + margin-bottom: 1em; +} + +.about-icon { + font-size: 2em; + color: #ff4500; +} + +.events-container { + display: flex; + flex-wrap: nowrap; + justify-content: space-between; + gap: 2em; +} + +.events-list { + flex: 2; + list-style: none; + padding: 0; + margin: 0; +} + +.events-list li { + background: #222; + padding: 1em; + border-radius: 5px; + box-shadow: 0 0 10px rgba(255, 69, 0, 0.7); + margin-bottom: 1em; +} + +.calendar-container { + flex: 1; + display: flex; + justify-content: center; + align-items: center; + max-width: 400px; /* Adjust the max-width to control the size of the calendar */ +} + +.calendar-container iframe { + width: 100%; + height: 300px; /* Adjust the height as needed */ +} + +.integration-container { + display: flex; + flex-wrap: wrap; + justify-content: center; + gap: 2em; +} + +.facebook-integration, .poll-integration { + flex: 1; + max-width: 400px; /* Adjust the max-width to match the desired size */ +} + +.facebook-integration iframe, .poll-integration iframe { + width: 100%; + height: 500px; /* Set the same height for both elements */ +} + +@media (max-width: 768px) { + .events-container { + flex-direction: column; + } + + .calendar-container { + width: 100%; + } + + .integration-container { + flex-direction: column; + align-items: center; + } + + .facebook-integration, .poll-integration { + max-width: 100%; + } + + .facebook-integration iframe, .poll-integration iframe { + height: 500px; + } +} + +.media-carousel { + display: flex; + overflow: hidden; + padding: 1em 0; +} + +.carousel-item { + flex: 0 0 auto; + width: 250px; + background: #222; + border-radius: 5px; + box-shadow: 0 0 10px rgba(255, 69, 0, 0.7); + transition: transform 0.3s; +} + +.carousel-item:hover { + transform: scale(1.05); +} + +.spotlight-carousel, .testimonials-carousel { + display: flex; + overflow: hidden; + padding: 1em 0; + gap: 1em; + justify-content: center; +} + +.spotlight-item, .testimonial-item { + flex: 0 0 auto; + width: calc(100% - 20px); /* Adjust width for mobile view */ + max-width: 300px; + background: #333; + border-radius: 10px; + box-shadow: 0 0 10px rgba(255, 69, 0, 0.7); + padding: 1em; + transition: transform 0.3s; + margin: 0 10px; /* Ensure proper spacing */ +} + +.spotlight-item:hover, .testimonial-item:hover { + transform: scale(1.05); +} + +.spotlight-item img, .testimonial-item img { + width: 100%; + border-radius: 10px; +} + +.spotlight-item h3, .testimonial-item h3 { + margin: 0.5em 0; +} + +.spotlight-item p, .testimonial-item p { + font-size: 0.9em; + color: #ccc; +} + +.contact-section form { + display: flex; + flex-direction: column; +} + +.contact-section label { + margin-top: 1em; +} + +.contact-section input, .contact-section textarea { + padding: 0.5em; + margin-top: 0.5em; + border: none; + border-radius: 5px; + background: #333; + color: #fff; +} + +.contact-section button { + margin-top: 1em; + padding: 0.5em 1em; + background-color: #ff4500; + color: white; + text-decoration: none; + border-radius: 5px; + transition: background-color 0.3s; +} + +.contact-section button:hover { + background-color: #e43e00; +} + +.mission-section { + background: #111; + padding: 2em; + color: #fff; + text-align: left; +} + +.social-media-section { + background: #111; + padding: 2em; + text-align: center; +} + +.social-media-links a { + color: white; + margin: 0 1em; + font-size: 2em; + transition: color 0.3s; +} + +.social-media-links a:hover { + color: #ff4500; +} + +.footer { + background: #111; + padding: 1em; + text-align: center; + color: #fff; +} + +.social-media { + margin: 1em 0; +} + +.social-media a { + color: white; + margin: 0 0.5em; + font-size: 1.5em; + transition: color 0.3s; +} + +.social-media a:hover { + color: #ff4500; +} + +.testimonials-section { + padding: 2em; + background: #111; + color: #fff; + text-align: center; +} + +.faq-section { + padding: 2em; + background: #111; + color: #fff; + text-align: left; +} + +.faq-item { + margin-bottom: 1em; +} + +.faq-item h3 { + font-size: 1.5em; + color: #ff4500; +} + +.faq-item p { + margin-top: 0.5em; +} + +.back-to-top { + position: fixed; + bottom: 2em; + right: 2em; + background: #ff4500; + color: #fff; + padding: 1em; + border-radius: 50%; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.7); + display: none; + cursor: pointer; + transition: background-color 0.3s, transform 0.3s; +} + +.back-to-top:hover { + background-color: #e43e00; + transform: scale(1.1); +} + +@media (max-width: 768px) { + .back-to-top { + bottom: 1em; + right: 1em; + } +} + +/* Responsive Image Styles */ +.responsive-image { + max-width: 100%; + height: auto; +} + +/* Loading Spinner */ +.loading-spinner { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.8); + display: flex; + justify-content: center; + align-items: center; + z-index: 1000; +} + +.spinner { + border: 8px solid #f3f3f3; + border-top: 8px solid #ff4500; + border-radius: 50%; + width: 60px; + height: 60px; + animation: spin 1s linear infinite; +} + +@keyframes spin { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } +} From 6359b19ffef081ec4faeadfe56367d2ac014c68f Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Mon, 17 Jun 2024 18:24:56 -0700 Subject: [PATCH 081/407] Create store.css --- assets/css/store.css | 81 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 assets/css/store.css diff --git a/assets/css/store.css b/assets/css/store.css new file mode 100644 index 0000000..278e765 --- /dev/null +++ b/assets/css/store.css @@ -0,0 +1,81 @@ +/* Store Styles */ +.store-container { + max-width: 1200px; + margin: 0 auto; + padding: 2em 1em; +} + +.store-header { + text-align: center; + margin-bottom: 2em; +} + +.store-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); + gap: 2em; +} + +.store-item { + background: #222; + padding: 1em; + border-radius: 5px; + box-shadow: 0 0 10px rgba(255, 69, 0, 0.7); + text-align: center; + transition: transform 0.3s; +} + +.store-item img { + max-width: 100%; + border-radius: 5px; + margin-bottom: 1em; +} + +.store-item h3 { + font-size: 1.2em; + margin-bottom: 0.5em; +} + +.store-item p { + font-size: 0.9em; + color: #ccc; + margin-bottom: 1em; +} + +.store-item button, .store-item a { + padding: 0.5em 1em; + background-color: #ff4500; + color: white; + text-decoration: none; + border-radius: 5px; + transition: background-color 0.3s, transform 0.3s; +} + +.store-item button:hover, .store-item a:hover { + background-color: #e43e00; + transform: scale(1.05); +} + +.external-store-header { + text-align: center; + margin-top: 2em; + margin-bottom: 1em; +} + +.external-store-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); + gap: 2em; +} + +@media (max-width: 768px) { + .store-grid, .external-store-grid { + grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); + } +} + +@media (max-width: 480px) { + .store-grid, .external-store-grid { + grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); + } +} From 1756a483f6b855db5b42ebd972ac28e3f9ca7ca6 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Mon, 17 Jun 2024 18:25:48 -0700 Subject: [PATCH 082/407] Update store.html --- store.html | 1 + 1 file changed, 1 insertion(+) diff --git a/store.html b/store.html index fc21916..10f5080 100644 --- a/store.html +++ b/store.html @@ -1,6 +1,7 @@ + Store - iMOB Racing From 57b704f98a3fb0008f199b4ac369a8e90d28b9da Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Mon, 17 Jun 2024 19:35:43 -0700 Subject: [PATCH 083/407] Update index.html --- index.html | 89 ++++++++---------------------------------------------- 1 file changed, 12 insertions(+), 77 deletions(-) diff --git a/index.html b/index.html index 3109333..b04b706 100644 --- a/index.html +++ b/index.html @@ -12,43 +12,12 @@ iMOB Racing Online - - + - - -
    @@ -84,9 +53,7 @@

    Welcome to iMOB Racing

  • Drivers
  • Cars
  • Our Mission
  • -
  • Store
  • Contact
  • -
  • All Profiles
  • @@ -131,7 +98,7 @@

    Car of the Month: The Beast

    Meet the Team

    -
    +
    Anthony Yorba

    Anthony Yorba

    @@ -161,7 +128,7 @@

    Daniel Bertholf

    Social Media & Polls

    -
    +
    - -
    -

    Social Media & Polls

    -
    - -
    - -
    -
    -
    - -
    -

    AI Integration

    -
    -

    Discover how we embrace AI to enhance our racing strategies, improve vehicle performance, and provide better insights. Our AI-driven analytics help us make data-informed decisions and stay ahead of the competition.

    -
    - AI Visualization -
    -
    -
    - -
    -

    Upcoming Events

    -
    -
    -
  • -

    TT Event 3

    -

    Date: June 22, 2024

    -

    Location: Thunderhill, Willows, Ca

    -
  • -
  • -

    TT Event 4

    -

    Date: September 20, 2024

    -

    Location: Thunderhill, Willows, Ca

    -
  • -
    -
    - -
    -
    -
    - -
    -

    Media Gallery

    - -
    - -
    -

    Contact Us

    -
    -

    - -

    -

    - -

    -

    - -

    -

    - -

    -
    -

    Phone: (530) 420-5850

    -

    Email: info@imobracingonline.com

    -
    - -
    -

    Forums

    -
    -
    - -
    -

    What Our Fans Say

    - -
    - -
    -

    Frequently Asked Questions

    -
    -

    What is iMOB Racing?

    -

    iMOB Racing is a team of dedicated racecar modders and enthusiasts who specialize in various forms of racing, including time attack, 4x4, rally, drifting, and more.

    -
    -
    -

    How can I join the team?

    -

    You can join our team by contacting us through our Contact Us section. We are always looking for passionate individuals to join our ranks.

    -
    -
    -

    How can I participate in events?

    -

    You can participate in our events by checking our Events section for upcoming events and registration details.

    -
    -
    - - - - {% include footer.html %} - - + +
    +
    +
    + +
    +

    Social Media & Polls

    +
    + +
    + +
    +
    +
    + +
    +

    AI Integration

    +
    +

    Discover how we embrace AI to enhance our racing strategies, improve vehicle performance, and provide better insights. Our AI-driven analytics help us make data-informed decisions and stay ahead of the competition.

    +
    + AI Visualization +
    +
    +
    + +
    +

    Upcoming Events

    +
    +
    +
  • +

    TT Event 3

    +

    Date: June 22, 2024

    +

    Location: Thunderhill, Willows, Ca

    +
  • +
  • +

    TT Event 4

    +

    Date: September 20, 2024

    +

    Location: Thunderhill, Willows, Ca

    +
  • +
    +
    + +
    +
    +
    + +
    +

    Media Gallery

    + +
    + +
    +

    Contact Us

    +
    +

    + +

    +

    + +

    +

    + +

    +

    + +

    +
    +

    Phone: (530) 420-5850

    +

    Email: info@imobracingonline.com

    +
    + +
    +

    Forums

    +
    +
    + +
    +

    What Our Fans Say

    + +
    + +
    +

    Frequently Asked Questions

    +
    +

    What is iMOB Racing?

    +

    iMOB Racing is a team of dedicated racecar modders and enthusiasts who specialize in various forms of racing, including time attack, 4x4, rally, drifting, and more.

    +
    +
    +

    How can I join the team?

    +

    You can join our team by contacting us through our Contact Us section. We are always looking for passionate individuals to join our ranks.

    +
    +
    +

    How can I participate in events?

    +

    You can participate in our events by checking our Events section for upcoming events and registration details.

    +
    +
    + + + + {% include footer.html %} + + + + + + From 2164832fa0d2b27b333da34fcf6225d9aac023d3 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Mon, 17 Jun 2024 20:29:06 -0700 Subject: [PATCH 134/407] Update login.html --- login.html | 54 +++++++++++++++--------------------------------------- 1 file changed, 15 insertions(+), 39 deletions(-) diff --git a/login.html b/login.html index aafe9ca..3ebdaa5 100644 --- a/login.html +++ b/login.html @@ -1,39 +1,23 @@ - - - Login Test - - - + {% include head.html %} -

    Login Test

    + {% include navbar.html %} +

    Login

    + + + + {% include footer.html %} From 863759aa41fea3d4b2ed652b6873a06cc0fe8e8a Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Mon, 17 Jun 2024 20:29:20 -0700 Subject: [PATCH 135/407] Update profile.html --- profile.html | 62 ++++++++++++++-------------------------------------- 1 file changed, 17 insertions(+), 45 deletions(-) diff --git a/profile.html b/profile.html index 5706d1e..e888eab 100644 --- a/profile.html +++ b/profile.html @@ -1,33 +1,27 @@ - - - Profile - + {% include head.html %} + + + {% include navbar.html %} +

    Profile Page

    +

    +

    + + + + + - + - - -

    Profile Page

    -

    -

    - - - + {% include footer.html %} From 282cfcd09724befb4a0bbc98fd2697530d8fcc7d Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Mon, 17 Jun 2024 20:29:39 -0700 Subject: [PATCH 136/407] Update store.html --- store.html | 116 +++++++++++++++-------------------------------------- 1 file changed, 32 insertions(+), 84 deletions(-) diff --git a/store.html b/store.html index 10f5080..8cb200c 100644 --- a/store.html +++ b/store.html @@ -1,99 +1,47 @@ - - - - Store - iMOB Racing - - - - - - + {% include head.html %} - - -
    -

    Our Store

    - -

    Internal Store Items

    + {% include navbar.html %} +
    +

    Store

    -
    - iMOB Racing T-Shirt 1 -

    iMOB Racing T-Shirt 1

    -

    High quality racing t-shirt.

    -

    $20.00

    - +
    + Racing T-Shirt +

    Racing T-Shirt

    +

    $20

    +
    -
    - iMOB Racing T-Shirt 2 -

    iMOB Racing T-Shirt 2

    -

    Another stylish racing t-shirt.

    -

    $20.00

    - +
    + Cool Racing T-Shirt +

    Cool Racing T-Shirt

    +

    $20

    +
    -

    External Store Items

    -
    -
    - Racing Helmet -

    Racing Helmet

    -

    Top-quality racing helmet.

    - Buy on Amazon -
    -
    - Racing Gloves -

    Racing Gloves

    -

    Durable and comfortable racing gloves.

    - Buy on Amazon +
    +

    External Products

    +
    +
    + External Product 1 +

    External Product 1

    +

    $50

    + Buy Now +
    +
    + External Product 2 +

    External Product 2

    +

    $75

    + Buy Now +
    - -
    - -

    © 2024 iMOB Racing. All rights reserved.

    -

    Contact: info@imobracingonline.com | Phone: (530) 420-5850

    -
    - - + + + {% include footer.html %} From 46be4673ae218ea6f14bfa48193fb0d81459d875 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Mon, 17 Jun 2024 20:29:53 -0700 Subject: [PATCH 137/407] Update about.md --- about.md | 33 ++++++++++++++++++++++++--------- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/about.md b/about.md index 125d34f..cfc36d4 100644 --- a/about.md +++ b/about.md @@ -1,12 +1,27 @@ --- -layout: page -title: About Us +layout: default +title: "About Us" +description: "Learn more about iMOB Racing" --- -## About Us - -At iMOB Racing, our ambition is to become the premier team in the racing industry. Comprising dedicated racecar modders and enthusiasts, we specialize in time attack racing while also participating in 4x4, rally, drifting, off-road, street bikes, dirt bikes, and crosskarts. We pride ourselves on being 100% built, not bought, with a commitment to modifying and customizing any vehicle. - -Our co-founders, Anthony Yorba and Tony Langston, drive the team with their technical expertise and artistic vision. Leading the charge on the track, our top driver, Chris Statler, epitomizes our racing spirit, while our youngest member, Daniel Bertholf, stands out in the drifting scene. - -We are dedicated to expanding our brand through dynamic race footage, informative repair videos, and exclusive behind-the-scenes content. Additionally, we offer engaging giveaways and forums for discussions, event updates, and buy/sell opportunities. +
    +

    About Us

    +
    +
    + +
    +

    At iMOB Racing, our ambition is to become the premier team in the racing industry. Comprising dedicated racecar modders and enthusiasts, we specialize in time attack racing while also participating in 4x4, rally, drifting, off-road, street bikes, dirt bikes, and crosskarts. We pride ourselves on being 100% built, not bought, with a commitment to modifying and customizing any vehicle.

    +
    +
    +
    + +
    +

    Our co-founders, Anthony Yorba and Tony Langston, drive the team with their technical expertise and artistic vision. Leading the charge on the track, our top driver, Chris Statler, epitomizes our racing spirit, while our youngest member, Daniel Bertholf, stands out in the drifting scene.

    +
    +
    +
    + +
    +

    We are dedicated to expanding our brand through dynamic race footage, informative repair videos, and exclusive behind-the-scenes content. Additionally, we offer engaging giveaways and forums for discussions, event updates, and buy/sell opportunities.

    +
    +
    From 93da595e05ecb6e4b81b98d9da0c104f8b203542 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Mon, 17 Jun 2024 20:30:11 -0700 Subject: [PATCH 138/407] Update contact.md --- contact.md | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/contact.md b/contact.md index cbb378c..8ac71b5 100644 --- a/contact.md +++ b/contact.md @@ -1,10 +1,25 @@ --- -layout: page -title: Contact Us +layout: default +title: "Contact Us" +description: "Get in touch with iMOB Racing" --- -## Contact Us - -Phone: (530) 420-5850 - -Email: [info@imobracingonline.com](mailto:info@imobracingonline.com) +
    +

    Contact Us

    +
    +

    + +

    +

    + +

    +

    + +

    +

    + +

    +
    +

    Phone: (530) 420-5850

    +

    Email: info@imobracingonline.com

    +
    From 6da62bd4fde778fcba2c6b9161a713f2df32f436 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Mon, 17 Jun 2024 20:30:44 -0700 Subject: [PATCH 139/407] Create login.md --- login.md | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 login.md diff --git a/login.md b/login.md new file mode 100644 index 0000000..21a558d --- /dev/null +++ b/login.md @@ -0,0 +1,60 @@ +--- +layout: default +title: "Login" +description: "Login to your iMOB Racing account" +--- + + From c313524bd12acf45072440c16bc2eecda4ffbcc0 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Mon, 17 Jun 2024 20:31:34 -0700 Subject: [PATCH 140/407] Create profile.md --- profile.md | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 profile.md diff --git a/profile.md b/profile.md new file mode 100644 index 0000000..bdbf368 --- /dev/null +++ b/profile.md @@ -0,0 +1,61 @@ +--- +layout: default +title: "Profile" +description: "Manage your iMOB Racing profile" +--- + +
    +

    Profile Page

    +

    +

    + + + + + + + + + + +
    From a945836049ac925f9b5795353d103a47685dbed6 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Mon, 17 Jun 2024 20:31:56 -0700 Subject: [PATCH 141/407] Create store.md --- store.md | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 store.md diff --git a/store.md b/store.md new file mode 100644 index 0000000..0cd97b8 --- /dev/null +++ b/store.md @@ -0,0 +1,41 @@ +--- +layout: default +title: "Store" +description: "Shop for iMOB Racing merchandise" +--- + +
    +

    Store

    +
    +
    + Racing T-Shirt +

    Racing T-Shirt

    +

    $20

    + +
    +
    + Cool Racing T-Shirt +

    Cool Racing T-Shirt

    +

    $20

    + +
    +
    + +
    +

    External Products

    +
    +
    + External Product 1 +

    External Product 1

    +

    $50

    + Buy Now +
    +
    + External Product 2 +

    External Product 2

    +

    $75

    + Buy Now +
    +
    +
    +
    From 8370bea7322e95b98274db4d0dfd551262310a74 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Mon, 17 Jun 2024 20:36:44 -0700 Subject: [PATCH 142/407] Update _config.yml --- _config.yml | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/_config.yml b/_config.yml index 751e1bb..4ff2712 100644 --- a/_config.yml +++ b/_config.yml @@ -1,16 +1,8 @@ -# _config.yml title: iMOB Racing -description: Feel the thrill of racing with our premier team. Join us for time attack, 4x4, rally, drifting, and more. -baseurl: "" # the subpath of your site, e.g. /blog -url: "https://yourusername.github.io" # the base hostname & protocol for your site -exclude: - - "index.md" - - "login.md" - - "profile.md" - - "store.md" - -# Other Jekyll settings -theme: minima +description: "Feel the thrill of racing with our premier team." +baseurl: "" +url: "https://imobracingonline.com" markdown: kramdown -paginate: 5 -paginate_path: "/page:num/" +theme: minima +plugins: + - jekyll-feed From 4dd79db30f2cdabbdd8f9e8ceca43c433ecffd08 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Mon, 17 Jun 2024 20:36:57 -0700 Subject: [PATCH 143/407] Update head.html --- _includes/head.html | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/_includes/head.html b/_includes/head.html index 43e51b6..39d4774 100644 --- a/_includes/head.html +++ b/_includes/head.html @@ -1,8 +1,12 @@ - - - -{{ page.title | escape }} - - - - + + + + {{ page.title }} - {{ site.title }} + + + + + + + + From 5db8f2c61f9bf08c816603fc9257374db4f8612a Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Mon, 17 Jun 2024 20:37:10 -0700 Subject: [PATCH 144/407] Update navbar.html --- _includes/navbar.html | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/_includes/navbar.html b/_includes/navbar.html index 89ee62b..d7a8b00 100644 --- a/_includes/navbar.html +++ b/_includes/navbar.html @@ -3,13 +3,14 @@ - +
    From 84106a8ff0a616280584dd19ce3882e950b38fe1 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Mon, 17 Jun 2024 20:37:22 -0700 Subject: [PATCH 145/407] Update footer.html --- _includes/footer.html | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/_includes/footer.html b/_includes/footer.html index ba0a6be..7a3fa56 100644 --- a/_includes/footer.html +++ b/_includes/footer.html @@ -1,9 +1,9 @@
    -

    Profile Page

    +

    Edit Your Profile

    +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    + +
    -
    - -
    -
    From a8685df8ed6610df8bde4ea5672572b481189d35 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 18 Jun 2024 01:42:17 -0700 Subject: [PATCH 209/407] Update styles.css --- styles.css | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/styles.css b/styles.css index a5cb131..cfe9d44 100644 --- a/styles.css +++ b/styles.css @@ -323,13 +323,38 @@ section { text-align: center; } -#editor-container { +.form-group { margin-bottom: 1em; } +.form-group label { + display: block; + margin-bottom: 0.5em; +} + +.form-group input, .form-group textarea { + width: 100%; + padding: 0.5em; + border: none; + border-radius: 5px; + background-color: #333; + color: white; +} + +.form-group input:focus, .form-group textarea:focus { + outline: none; + background-color: #444; +} + #profile-preview { display: none; background-color: #111; padding: 1em; border-radius: 10px; } + +.profile-picture { + max-width: 200px; + border-radius: 50%; + margin: 1em 0; +} From a7a723ee042137a39cd3c63059b46df5fceec338 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 18 Jun 2024 01:47:09 -0700 Subject: [PATCH 210/407] Update profile.html --- profile.html | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/profile.html b/profile.html index 744ea60..53790f5 100644 --- a/profile.html +++ b/profile.html @@ -47,7 +47,7 @@

    Edit Your Profile

    - + @@ -97,13 +97,13 @@

    Edit Your Profile

    } function togglePreview() { - var editorContainer = document.getElementById('editor-container'); + var profileForm = document.getElementById('profileForm'); var profilePreview = document.getElementById('profile-preview'); - if (editorContainer.style.display === 'none') { - editorContainer.style.display = 'block'; + if (profileForm.style.display === 'none') { + profileForm.style.display = 'block'; profilePreview.style.display = 'none'; } else { - editorContainer.style.display = 'none'; + profileForm.style.display = 'none'; profilePreview.style.display = 'block'; updatePreview(); } From 287beddf3b1712b6722db9d1cafce491b28f641c Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 18 Jun 2024 01:48:39 -0700 Subject: [PATCH 211/407] Update styles.css From 64587b32da615abafebcfefea507bef631963984 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 18 Jun 2024 01:51:23 -0700 Subject: [PATCH 212/407] Update profile.html --- profile.html | 41 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/profile.html b/profile.html index 53790f5..4946785 100644 --- a/profile.html +++ b/profile.html @@ -45,6 +45,10 @@

    Edit Your Profile

    +
    + + +
    @@ -71,7 +75,8 @@

    Edit Your Profile

    name: document.getElementById('name').value, bio: CKEDITOR.instances.bio.getData(), profilePicture: document.getElementById('profilePicture').value, - socialMedia: CKEDITOR.instances.socialMedia.getData() + socialMedia: CKEDITOR.instances.socialMedia.getData(), + socialMediaUrls: document.getElementById('socialMediaUrls').value.split('\n') }).then(function() { alert('Profile saved successfully!'); updatePreview(); @@ -89,6 +94,7 @@

    Edit Your Profile

    CKEDITOR.instances.bio.setData(doc.data().bio); document.getElementById('profilePicture').value = doc.data().profilePicture; CKEDITOR.instances.socialMedia.setData(doc.data().socialMedia); + document.getElementById('socialMediaUrls').value = doc.data().socialMediaUrls.join('\n'); updatePreview(); } }).catch(function(error) { @@ -111,12 +117,45 @@

    Edit Your Profile

    function updatePreview() { var profilePreview = document.getElementById('profile-preview'); + var socialMediaUrls = document.getElementById('socialMediaUrls').value.split('\n'); + var socialMediaEmbeds = socialMediaUrls.map(url => { + if (url.includes('instagram.com')) { + return `
    `; + } else if (url.includes('twitter.com')) { + return ``; + } else { + return `

    ${url}

    `; + } + }).join(''); + profilePreview.innerHTML = `

    ${document.getElementById('name').value}

    Profile Picture
    ${CKEDITOR.instances.bio.getData()}
    ${CKEDITOR.instances.socialMedia.getData()}
    +
    ${socialMediaEmbeds}
    `; + + // Load the embed scripts for Instagram and Twitter + loadSocialMediaEmbeds(); + } + + function loadSocialMediaEmbeds() { + // Load Instagram embed script + if (document.querySelector('.instagram-media')) { + var script = document.createElement('script'); + script.async = true; + script.src = "//www.instagram.com/embed.js"; + document.body.appendChild(script); + } + + // Load Twitter embed script + if (document.querySelector('.twitter-tweet')) { + var script = document.createElement('script'); + script.async = true; + script.src = "//platform.twitter.com/widgets.js"; + document.body.appendChild(script); + } } document.addEventListener('DOMContentLoaded', () => { From a35420e3e21b46962b2014a81678e3c81a8074f0 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 18 Jun 2024 01:56:45 -0700 Subject: [PATCH 213/407] Update profile.html --- profile.html | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/profile.html b/profile.html index 4946785..dd10071 100644 --- a/profile.html +++ b/profile.html @@ -76,7 +76,7 @@

    Edit Your Profile

    bio: CKEDITOR.instances.bio.getData(), profilePicture: document.getElementById('profilePicture').value, socialMedia: CKEDITOR.instances.socialMedia.getData(), - socialMediaUrls: document.getElementById('socialMediaUrls').value.split('\n') + socialMediaUrls: document.getElementById('socialMediaUrls').value.split('\n').filter(url => url.trim()) }).then(function() { alert('Profile saved successfully!'); updatePreview(); @@ -90,11 +90,12 @@

    Edit Your Profile

    var db = firebase.firestore(); db.collection('profiles').doc(uid).get().then(function(doc) { if (doc.exists) { - document.getElementById('name').value = doc.data().name; - CKEDITOR.instances.bio.setData(doc.data().bio); - document.getElementById('profilePicture').value = doc.data().profilePicture; - CKEDITOR.instances.socialMedia.setData(doc.data().socialMedia); - document.getElementById('socialMediaUrls').value = doc.data().socialMediaUrls.join('\n'); + var data = doc.data(); + document.getElementById('name').value = data.name; + CKEDITOR.instances.bio.setData(data.bio); + document.getElementById('profilePicture').value = data.profilePicture; + CKEDITOR.instances.socialMedia.setData(data.socialMedia); + document.getElementById('socialMediaUrls').value = (data.socialMediaUrls || []).join('\n'); updatePreview(); } }).catch(function(error) { @@ -117,7 +118,7 @@

    Edit Your Profile

    function updatePreview() { var profilePreview = document.getElementById('profile-preview'); - var socialMediaUrls = document.getElementById('socialMediaUrls').value.split('\n'); + var socialMediaUrls = document.getElementById('socialMediaUrls').value.split('\n').filter(url => url.trim()); var socialMediaEmbeds = socialMediaUrls.map(url => { if (url.includes('instagram.com')) { return `
    `; From 0546fd3f9f8486aeab93e6e58447570c06a19755 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 18 Jun 2024 02:03:46 -0700 Subject: [PATCH 214/407] Update profile.html --- profile.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/profile.html b/profile.html index dd10071..76a4b20 100644 --- a/profile.html +++ b/profile.html @@ -121,9 +121,11 @@

    Edit Your Profile

    var socialMediaUrls = document.getElementById('socialMediaUrls').value.split('\n').filter(url => url.trim()); var socialMediaEmbeds = socialMediaUrls.map(url => { if (url.includes('instagram.com')) { - return `
    `; + return `
    `; } else if (url.includes('twitter.com')) { return ``; + } else if (url.includes('facebook.com')) { + return ``; } else { return `

    ${url}

    `; } From 6043985918eac4056c6058cbac7d475a67449289 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 18 Jun 2024 02:04:37 -0700 Subject: [PATCH 215/407] Update and rename all_users.html to all_profiles.html --- all_profiles.html | 120 ++++++++++++++++++++++++++++++++++++++++++++++ all_users.html | 59 ----------------------- 2 files changed, 120 insertions(+), 59 deletions(-) create mode 100644 all_profiles.html delete mode 100644 all_users.html diff --git a/all_profiles.html b/all_profiles.html new file mode 100644 index 0000000..b8ca43e --- /dev/null +++ b/all_profiles.html @@ -0,0 +1,120 @@ + + + + + + All Profiles + + + + + + + + + +

    All Registered Profiles

    +
    + + + + + + + + + + All Profiles + + + + + + +

    All User Profiles

    +
    + + diff --git a/all_users.html b/all_users.html deleted file mode 100644 index 2ad27e8..0000000 --- a/all_users.html +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - All Profiles - - - - - - -

    All User Profiles

    -
    - - From fe4893fa725ccd550cf55c65cc31543ae7c6929a Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 18 Jun 2024 02:05:15 -0700 Subject: [PATCH 216/407] Update index.html --- index.html | 1 + 1 file changed, 1 insertion(+) diff --git a/index.html b/index.html index 37864cb..a8d04d9 100644 --- a/index.html +++ b/index.html @@ -78,6 +78,7 @@

    Welcome to iMOB Racing

  • Store
  • Contact
  • Profile
  • +
  • All Profiles
  • From 6645ff694d9f280b53332b0b3f2d2f51a6ea8534 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 18 Jun 2024 02:08:48 -0700 Subject: [PATCH 217/407] Update profile.html --- profile.html | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/profile.html b/profile.html index 76a4b20..0c9fcef 100644 --- a/profile.html +++ b/profile.html @@ -10,6 +10,7 @@ + @@ -125,7 +127,7 @@

    Edit Your Profile

    } else if (url.includes('twitter.com')) { return ``; } else if (url.includes('facebook.com')) { - return ``; + return `
    `; } else { return `

    ${url}

    `; } @@ -159,6 +161,11 @@

    ${document.getElementById('name').value}

    script.src = "//platform.twitter.com/widgets.js"; document.body.appendChild(script); } + + // Parse Facebook embeds + if (typeof FB !== 'undefined' && FB.XFBML) { + FB.XFBML.parse(); + } } document.addEventListener('DOMContentLoaded', () => { From 72a72f7b3061b010b362f6a035fde3c85bbe510b Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 18 Jun 2024 02:16:31 -0700 Subject: [PATCH 218/407] Update profile.html --- profile.html | 172 ++++++++++++++------------------------------------- 1 file changed, 48 insertions(+), 124 deletions(-) diff --git a/profile.html b/profile.html index 0c9fcef..7aa7216 100644 --- a/profile.html +++ b/profile.html @@ -3,66 +3,21 @@ - Profile Editor + Edit Profile - IMOB Racing - - - - - -
    -

    Edit Your Profile

    -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    - -
    - - -
    - + + + + - function updatePreview() { - var profilePreview = document.getElementById('profile-preview'); - var socialMediaUrls = document.getElementById('socialMediaUrls').value.split('\n').filter(url => url.trim()); - var socialMediaEmbeds = socialMediaUrls.map(url => { - if (url.includes('instagram.com')) { - return `
    `; - } else if (url.includes('twitter.com')) { - return ``; - } else if (url.includes('facebook.com')) { - return `
    `; - } else { - return `

    ${url}

    `; - } - }).join(''); - - profilePreview.innerHTML = ` -

    ${document.getElementById('name').value}

    - Profile Picture -
    ${CKEDITOR.instances.bio.getData()}
    -
    ${CKEDITOR.instances.socialMedia.getData()}
    -
    ${socialMediaEmbeds}
    - `; - - // Load the embed scripts for Instagram and Twitter - loadSocialMediaEmbeds(); - } - - function loadSocialMediaEmbeds() { - // Load Instagram embed script - if (document.querySelector('.instagram-media')) { - var script = document.createElement('script'); - script.async = true; - script.src = "//www.instagram.com/embed.js"; - document.body.appendChild(script); - } - - // Load Twitter embed script - if (document.querySelector('.twitter-tweet')) { - var script = document.createElement('script'); - script.async = true; - script.src = "//platform.twitter.com/widgets.js"; - document.body.appendChild(script); - } - - // Parse Facebook embeds - if (typeof FB !== 'undefined' && FB.XFBML) { - FB.XFBML.parse(); - } - } +
    +

    Edit Your Profile

    + + +
    +
    - document.addEventListener('DOMContentLoaded', () => { - CKEDITOR.replace('bio'); - CKEDITOR.replace('socialMedia'); - }); + From f279d46cc901e6ff1d759088e3fecb1dd3c6633c Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 18 Jun 2024 02:16:51 -0700 Subject: [PATCH 219/407] Update all_profiles.html --- all_profiles.html | 64 +++-------------------------------------------- 1 file changed, 3 insertions(+), 61 deletions(-) diff --git a/all_profiles.html b/all_profiles.html index b8ca43e..3b0e317 100644 --- a/all_profiles.html +++ b/all_profiles.html @@ -3,12 +3,12 @@ - All Profiles + All Profiles - IMOB Racing - + -
    +

    Edit Your Profile

    - -
    +
    From 4d40dfb8cacc0111734a018a5297ddb4bc25323f Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 18 Jun 2024 02:56:49 -0700 Subject: [PATCH 221/407] Update styles.css --- styles.css | 97 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 50 insertions(+), 47 deletions(-) diff --git a/styles.css b/styles.css index cfe9d44..e029a47 100644 --- a/styles.css +++ b/styles.css @@ -64,6 +64,56 @@ h1, h2, h3, h4, h5, h6 { } } +/* Profile Editor Styles */ +.profile-editor-container { + margin: 20px; + padding: 20px; + background-color: #222; + border-radius: 10px; +} + +#editor { + width: 100%; + height: 400px; +} + +.form-group { + margin-top: 20px; +} + +#social-media-urls, #special-items, #vehicles { + width: 100%; + height: 100px; + background-color: #333; + color: white; + border: 1px solid #444; + border-radius: 5px; + padding: 10px; +} + +#profile-preview { + margin-top: 20px; + border: 1px solid #ccc; + padding: 10px; +} + +#profile-preview-social-media, #profile-preview-special-items, #profile-preview-vehicles { + margin-top: 10px; + background-color: #333; + padding: 10px; + border-radius: 5px; + color: #fff; +} + +/* Drag Handle Styles */ +.drag-handle { + cursor: move; + padding: 10px; + background-color: #444; + border-radius: 5px; + margin-bottom: 10px; +} + /* Header Styles */ .header { height: 100vh; @@ -311,50 +361,3 @@ section { right: 1em; } } - -/* Profile Editor Styles */ -.profile-editor-container { - max-width: 800px; - margin: 0 auto; - padding: 2em; - background-color: #222; - border-radius: 10px; - box-shadow: 0 0 10px rgba(255, 69, 0, 0.7); - text-align: center; -} - -.form-group { - margin-bottom: 1em; -} - -.form-group label { - display: block; - margin-bottom: 0.5em; -} - -.form-group input, .form-group textarea { - width: 100%; - padding: 0.5em; - border: none; - border-radius: 5px; - background-color: #333; - color: white; -} - -.form-group input:focus, .form-group textarea:focus { - outline: none; - background-color: #444; -} - -#profile-preview { - display: none; - background-color: #111; - padding: 1em; - border-radius: 10px; -} - -.profile-picture { - max-width: 200px; - border-radius: 50%; - margin: 1em 0; -} From dacab889845a5dc3c47f4d05d195b695a6887a6e Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 18 Jun 2024 03:02:27 -0700 Subject: [PATCH 222/407] Update all_profiles.html --- all_profiles.html | 45 +++++++++++---------------------------------- 1 file changed, 11 insertions(+), 34 deletions(-) diff --git a/all_profiles.html b/all_profiles.html index 3b0e317..9c66ddc 100644 --- a/all_profiles.html +++ b/all_profiles.html @@ -6,9 +6,13 @@ All Profiles - IMOB Racing + - + +
    - -

    All Registered Profiles

    -
    - - +
    +

    All Profiles

    +
    + +
    +
    From b2eb76a76fe9f38eb89dc0241b224c78add80abf Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 18 Jun 2024 03:02:46 -0700 Subject: [PATCH 223/407] Create all_profiles.js --- all_profiles.js | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 all_profiles.js diff --git a/all_profiles.js b/all_profiles.js new file mode 100644 index 0000000..2134da3 --- /dev/null +++ b/all_profiles.js @@ -0,0 +1,27 @@ +document.addEventListener('DOMContentLoaded', function() { + var db = firebase.firestore(); + var profilesList = document.getElementById('profiles-list'); + + function createProfileCard(profile) { + var card = document.createElement('div'); + card.classList.add('profile-card'); + card.innerHTML = ` +

    ${profile.username}

    +

    Email: ${profile.email}

    +
    ${profile.htmlContent}
    +
    Social Media URLs: ${profile.socialMediaUrls}
    +
    Special Items: ${profile.specialItems}
    +
    Vehicles: ${profile.vehicles}
    + `; + return card; + } + + db.collection('profiles').get().then((querySnapshot) => { + querySnapshot.forEach((doc) => { + var profileData = doc.data(); + profilesList.appendChild(createProfileCard(profileData)); + }); + }).catch((error) => { + console.error("Error loading profiles: ", error); + }); +}); From 916c27773030f7db9bb4895275f326308f2757b6 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 18 Jun 2024 03:03:11 -0700 Subject: [PATCH 224/407] Update styles.css --- styles.css | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/styles.css b/styles.css index e029a47..a49d0cf 100644 --- a/styles.css +++ b/styles.css @@ -361,3 +361,18 @@ section { right: 1em; } } +.profile-card { + background-color: #222; + border-radius: 5px; + padding: 20px; + margin-bottom: 20px; + box-shadow: 0 0 10px rgba(255, 69, 0, 0.7); +} + +.profile-card h3 { + margin-top: 0; +} + +.profile-card p, .profile-card div { + margin-bottom: 10px; +} From a942d639e244c3ff5a1efc177e886ef1c31eaf5c Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 18 Jun 2024 03:08:37 -0700 Subject: [PATCH 225/407] Update profile.html --- profile.html | 109 +++++++++++++++------------------------------------ 1 file changed, 31 insertions(+), 78 deletions(-) diff --git a/profile.html b/profile.html index f591c66..18d893f 100644 --- a/profile.html +++ b/profile.html @@ -3,17 +3,13 @@ - Edit Profile - IMOB Racing + Profile Editor - - - - + - @@ -107,48 +86,22 @@ - -
    +

    Edit Your Profile

    - +

    +

    - -
    - - -
    -
    - - -
    -
    - - -
    - + + + +
    - + + +
    - From d8590aba48bd4741c7d2dceb4d6be261f41726bb Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 18 Jun 2024 04:19:25 -0700 Subject: [PATCH 226/407] Update profile.html --- profile.html | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/profile.html b/profile.html index 18d893f..2631f6a 100644 --- a/profile.html +++ b/profile.html @@ -52,7 +52,7 @@ document.getElementById('social-media-urls').value = profileData.socialMediaUrls || ''; document.getElementById('special-items').value = profileData.specialItems || ''; document.getElementById('vehicles').value = profileData.vehicles || ''; - document.getElementById('profile-preview').innerHTML = profileData.htmlContent; + updatePreview(profileData); } }).catch(function(error) { console.error('Error loading profile: ', error); @@ -61,7 +61,13 @@ function togglePreview() { var editorContent = CKEDITOR.instances.editor.getData(); - document.getElementById('profile-preview').innerHTML = editorContent; + var profileData = { + htmlContent: editorContent, + socialMediaUrls: document.getElementById('social-media-urls').value, + specialItems: document.getElementById('special-items').value, + vehicles: document.getElementById('vehicles').value + }; + updatePreview(profileData); var preview = document.getElementById('profile-preview'); if (preview.style.display === 'none') { preview.style.display = 'block'; @@ -69,6 +75,23 @@ preview.style.display = 'none'; } } + + function updatePreview(profileData) { + var previewContent = ` +
    +

    ${profileData.username}

    +

    ${profileData.email}

    +
    ${profileData.htmlContent}
    +

    Social Media URLs

    +

    ${profileData.socialMediaUrls}

    +

    Special Items

    +

    ${profileData.specialItems}

    +

    Vehicles

    +

    ${profileData.vehicles}

    +
    + `; + document.getElementById('profile-preview').innerHTML = previewContent; + } From 4bb2e33a3f861703dc7fa9e25fc36fc5d69704f6 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 18 Jun 2024 04:23:14 -0700 Subject: [PATCH 227/407] Update profile.html --- profile.html | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/profile.html b/profile.html index 2631f6a..e8e7912 100644 --- a/profile.html +++ b/profile.html @@ -15,8 +15,7 @@ firebase.auth().onAuthStateChanged(function(user) { if (user) { - document.getElementById('username').innerText = user.displayName || user.email; - document.getElementById('user-email').innerText = user.email; + document.getElementById('email').value = user.email; loadProfile(user.uid); } else { window.location.href = 'login.html'; @@ -28,7 +27,7 @@ if (user) { var db = firebase.firestore(); db.collection('profiles').doc(user.uid).set({ - username: user.displayName || user.email, + username: document.getElementById('username').value, email: user.email, htmlContent: CKEDITOR.instances.editor.getData(), socialMediaUrls: document.getElementById('social-media-urls').value, @@ -48,6 +47,7 @@ db.collection('profiles').doc(uid).get().then(function(doc) { if (doc.exists) { var profileData = doc.data(); + document.getElementById('username').value = profileData.username || ''; CKEDITOR.instances.editor.setData(profileData.htmlContent); document.getElementById('social-media-urls').value = profileData.socialMediaUrls || ''; document.getElementById('special-items').value = profileData.specialItems || ''; @@ -62,6 +62,8 @@ function togglePreview() { var editorContent = CKEDITOR.instances.editor.getData(); var profileData = { + username: document.getElementById('username').value, + email: document.getElementById('email').value, htmlContent: editorContent, socialMediaUrls: document.getElementById('social-media-urls').value, specialItems: document.getElementById('special-items').value, @@ -111,12 +113,18 @@

    Vehicles

    Edit Your Profile

    -

    -

    + +
    + +
    + + + +
    From 1c7ee634f758d3cc82b347f3fda4c7fcf4574374 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 18 Jun 2024 04:27:11 -0700 Subject: [PATCH 228/407] Update profile.html --- profile.html | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/profile.html b/profile.html index e8e7912..a1a65a4 100644 --- a/profile.html +++ b/profile.html @@ -17,11 +17,21 @@ if (user) { document.getElementById('email').value = user.email; loadProfile(user.uid); + document.getElementById('profile-link').style.display = 'block'; + document.getElementById('logout-link').style.display = 'block'; } else { window.location.href = 'login.html'; } }); + function logout() { + firebase.auth().signOut().then(() => { + window.location.href = 'login.html'; + }).catch((error) => { + console.error('Error logging out: ', error); + }); + } + function saveProfile() { var user = firebase.auth().currentUser; if (user) { @@ -106,8 +116,9 @@

    Vehicles

  • Cars
  • Our Mission
  • Contact
  • -
  • Profile
  • +
  • All Profiles
  • +
  • From 9eee60313826f78809745dc97efc4a59c4bd6e45 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 18 Jun 2024 04:31:34 -0700 Subject: [PATCH 229/407] Update profile.html --- profile.html | 69 +++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 55 insertions(+), 14 deletions(-) diff --git a/profile.html b/profile.html index a1a65a4..a0f6b0e 100644 --- a/profile.html +++ b/profile.html @@ -9,6 +9,7 @@ + From 4408a5e60e36079b633e70cb793dda55b8e66d84 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 18 Jun 2024 04:43:11 -0700 Subject: [PATCH 231/407] Update profile.html --- profile.html | 132 +++++++++++++++++++++++++++++---------------------- 1 file changed, 74 insertions(+), 58 deletions(-) diff --git a/profile.html b/profile.html index dd879a1..8ec3d15 100644 --- a/profile.html +++ b/profile.html @@ -34,10 +34,15 @@ } async function uploadImage(file, userId, imageType) { - const storageRef = firebase.storage().ref(); - const imageRef = storageRef.child(`${imageType}_images/${userId}/${file.name}`); - await imageRef.put(file); - return await imageRef.getDownloadURL(); + try { + const storageRef = firebase.storage().ref(); + const imageRef = storageRef.child(`${imageType}_images/${userId}/${file.name}`); + await imageRef.put(file); + return await imageRef.getDownloadURL(); + } catch (error) { + console.error('Error uploading image: ', error); + throw error; + } } async function saveProfile() { @@ -48,31 +53,34 @@ var vehicleImages = document.getElementById('vehicle-images').files; var vehicleImageUrls = []; - for (let i = 0; i < vehicleImages.length; i++) { - let url = await uploadImage(vehicleImages[i], user.uid, 'vehicle'); - vehicleImageUrls.push(url); - } + try { + for (let i = 0; i < vehicleImages.length; i++) { + let url = await uploadImage(vehicleImages[i], user.uid, 'vehicle'); + vehicleImageUrls.push(url); + } - let profileImageUrl = ''; - if (profileImage) { - profileImageUrl = await uploadImage(profileImage, user.uid, 'profile'); - } + let profileImageUrl = ''; + if (profileImage) { + profileImageUrl = await uploadImage(profileImage, user.uid, 'profile'); + } - db.collection('profiles').doc(user.uid).set({ - username: document.getElementById('username').value, - email: user.email, - htmlContent: CKEDITOR.instances.editor.getData(), - socialMediaUrls: document.getElementById('social-media-urls').value, - specialItems: document.getElementById('special-items').value, - vehicles: document.getElementById('vehicles').value, - profileImageUrl: profileImageUrl, - vehicleImageUrls: vehicleImageUrls - }).then(function() { + await db.collection('profiles').doc(user.uid).set({ + username: document.getElementById('username').value, + email: user.email, + htmlContent: CKEDITOR.instances.editor.getData(), + socialMediaUrls: document.getElementById('social-media-urls').value, + specialItems: document.getElementById('special-items').value, + vehicles: document.getElementById('vehicles').value, + profileImageUrl: profileImageUrl, + vehicleImageUrls: vehicleImageUrls + }); + console.log('Profile saved successfully'); alert('Profile saved!'); loadProfile(user.uid); - }).catch(function(error) { + } catch (error) { console.error('Error saving profile: ', error); - }); + alert('Error saving profile: ' + error.message); + } } } @@ -115,44 +123,52 @@ } function togglePreview() { - var editorContent = CKEDITOR.instances.editor.getData(); - var profileData = { - username: document.getElementById('username').value, - email: document.getElementById('email').value, - htmlContent: editorContent, - socialMediaUrls: document.getElementById('social-media-urls').value, - specialItems: document.getElementById('special-items').value, - vehicles: document.getElementById('vehicles').value, - profileImageUrl: document.getElementById('profile-image-preview').src, - vehicleImageUrls: Array.from(document.getElementById('vehicle-images-previews').getElementsByTagName('img')).map(img => img.src) - }; - updatePreview(profileData); - var preview = document.getElementById('profile-preview'); - if (preview.style.display === 'none') { - preview.style.display = 'block'; - } else { - preview.style.display = 'none'; + try { + var editorContent = CKEDITOR.instances.editor.getData(); + var profileData = { + username: document.getElementById('username').value, + email: document.getElementById('email').value, + htmlContent: editorContent, + socialMediaUrls: document.getElementById('social-media-urls').value, + specialItems: document.getElementById('special-items').value, + vehicles: document.getElementById('vehicles').value, + profileImageUrl: document.getElementById('profile-image-preview').src, + vehicleImageUrls: Array.from(document.getElementById('vehicle-images-previews').getElementsByTagName('img')).map(img => img.src) + }; + updatePreview(profileData); + var preview = document.getElementById('profile-preview'); + if (preview.style.display === 'none') { + preview.style.display = 'block'; + } else { + preview.style.display = 'none'; + } + } catch (error) { + console.error('Error toggling preview: ', error); } } function updatePreview(profileData) { - var previewContent = ` -
    -

    ${profileData.username}

    -

    ${profileData.email}

    - ${profileData.profileImageUrl ? `Profile Image` : ''} -
    ${profileData.htmlContent}
    -

    Social Media URLs

    -

    ${profileData.socialMediaUrls}

    -

    Special Items

    -

    ${profileData.specialItems}

    -

    Vehicles

    -

    ${profileData.vehicles}

    - ${profileData.vehicleImageUrls.length > 0 ? '

    Vehicle Images

    ' : ''} - ${profileData.vehicleImageUrls.map(url => `Vehicle Image`).join('')} -
    - `; - document.getElementById('profile-preview').innerHTML = previewContent; + try { + var previewContent = ` +
    +

    ${profileData.username}

    +

    ${profileData.email}

    + ${profileData.profileImageUrl ? `Profile Image` : ''} +
    ${profileData.htmlContent}
    +

    Social Media URLs

    +

    ${profileData.socialMediaUrls}

    +

    Special Items

    +

    ${profileData.specialItems}

    +

    Vehicles

    +

    ${profileData.vehicles}

    + ${profileData.vehicleImageUrls.length > 0 ? '

    Vehicle Images

    ' : ''} + ${profileData.vehicleImageUrls.map(url => `Vehicle Image`).join('')} +
    + `; + document.getElementById('profile-preview').innerHTML = previewContent; + } catch (error) { + console.error('Error updating preview: ', error); + } } From eda80d7a6750d23677c233f710f6813f1f6ebbf5 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 18 Jun 2024 04:48:16 -0700 Subject: [PATCH 232/407] Update profile.html --- profile.html | 39 ++++++++++++++++++++++++++------------- 1 file changed, 26 insertions(+), 13 deletions(-) diff --git a/profile.html b/profile.html index 8ec3d15..39d552f 100644 --- a/profile.html +++ b/profile.html @@ -16,6 +16,7 @@ firebase.auth().onAuthStateChanged(function(user) { if (user) { + console.log("User authenticated:", user); document.getElementById('email').value = user.email; loadProfile(user.uid); document.getElementById('profile-link').style.display = 'block'; @@ -40,12 +41,13 @@ await imageRef.put(file); return await imageRef.getDownloadURL(); } catch (error) { - console.error('Error uploading image: ', error); + console.error('Error uploading image:', error); throw error; } } async function saveProfile() { + console.log("Saving profile..."); var user = firebase.auth().currentUser; if (user) { var db = firebase.firestore(); @@ -78,17 +80,21 @@ alert('Profile saved!'); loadProfile(user.uid); } catch (error) { - console.error('Error saving profile: ', error); + console.error('Error saving profile:', error); alert('Error saving profile: ' + error.message); } + } else { + console.error("No authenticated user found."); } } function loadProfile(uid) { + console.log("Loading profile for user:", uid); var db = firebase.firestore(); db.collection('profiles').doc(uid).get().then(function(doc) { if (doc.exists) { var profileData = doc.data(); + console.log("Profile data loaded:", profileData); document.getElementById('username').value = profileData.username || ''; CKEDITOR.instances.editor.setData(profileData.htmlContent); document.getElementById('social-media-urls').value = profileData.socialMediaUrls || ''; @@ -102,13 +108,16 @@ } updateVehiclePreviews(profileData.vehicleImageUrls); updatePreview(profileData); + } else { + console.log("No profile data found for user."); } }).catch(function(error) { - console.error('Error loading profile: ', error); + console.error('Error loading profile:', error); }); } function updateVehiclePreviews(vehicleImageUrls) { + console.log("Updating vehicle previews:", vehicleImageUrls); const container = document.getElementById('vehicle-images-previews'); container.innerHTML = ''; if (vehicleImageUrls && vehicleImageUrls.length > 0) { @@ -143,7 +152,7 @@ preview.style.display = 'none'; } } catch (error) { - console.error('Error toggling preview: ', error); + console.error('Error toggling preview:', error); } } @@ -167,9 +176,13 @@

    Vehicles

    `; document.getElementById('profile-preview').innerHTML = previewContent; } catch (error) { - console.error('Error updating preview: ', error); + console.error('Error updating preview:', error); } } + + document.addEventListener('DOMContentLoaded', () => { + CKEDITOR.replace('editor'); + }); @@ -188,16 +201,16 @@

    Vehicles

    -
    -

    Edit Your Profile

    -
    - +
    +

    Profile Editor

    + +
    -
    +
    -
    -
    +
    +
    @@ -207,7 +220,7 @@

    Edit Your Profile

    -
    +
    From 999861dfe2f7dced5270e5aff5e4bfe749617219 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 18 Jun 2024 04:54:41 -0700 Subject: [PATCH 233/407] Update profile.html --- profile.html | 222 +++++++++++++++++++++++---------------------------- 1 file changed, 98 insertions(+), 124 deletions(-) diff --git a/profile.html b/profile.html index 39d552f..9388c2c 100644 --- a/profile.html +++ b/profile.html @@ -3,7 +3,7 @@ - Profile Editor + Profile @@ -16,11 +16,9 @@ firebase.auth().onAuthStateChanged(function(user) { if (user) { - console.log("User authenticated:", user); + document.getElementById('username').value = user.displayName || user.email; document.getElementById('email').value = user.email; loadProfile(user.uid); - document.getElementById('profile-link').style.display = 'block'; - document.getElementById('logout-link').style.display = 'block'; } else { window.location.href = 'login.html'; } @@ -34,154 +32,131 @@ }); } - async function uploadImage(file, userId, imageType) { - try { - const storageRef = firebase.storage().ref(); - const imageRef = storageRef.child(`${imageType}_images/${userId}/${file.name}`); - await imageRef.put(file); - return await imageRef.getDownloadURL(); - } catch (error) { - console.error('Error uploading image:', error); - throw error; - } - } - - async function saveProfile() { - console.log("Saving profile..."); - var user = firebase.auth().currentUser; + function saveProfile() { + const user = firebase.auth().currentUser; if (user) { - var db = firebase.firestore(); - var profileImage = document.getElementById('profile-image').files[0]; - var vehicleImages = document.getElementById('vehicle-images').files; - var vehicleImageUrls = []; + const db = firebase.firestore(); + const storage = firebase.storage(); + const profileContent = CKEDITOR.instances.editor.getData(); + const socialMediaUrls = document.getElementById('social-media-urls').value; + const specialItems = document.getElementById('special-items').value; + const vehicles = document.getElementById('vehicles').value; + const profileImage = document.getElementById('profile-image').files[0]; + const vehicleImages = document.getElementById('vehicle-images').files; + const promises = []; - try { - for (let i = 0; i < vehicleImages.length; i++) { - let url = await uploadImage(vehicleImages[i], user.uid, 'vehicle'); - vehicleImageUrls.push(url); - } + if (profileImage) { + const profileImageRef = storage.ref().child(`profile-images/${user.uid}/${profileImage.name}`); + promises.push(profileImageRef.put(profileImage).then(snapshot => snapshot.ref.getDownloadURL())); + } - let profileImageUrl = ''; - if (profileImage) { - profileImageUrl = await uploadImage(profileImage, user.uid, 'profile'); - } + const vehicleImageUrls = []; + for (let i = 0; i < vehicleImages.length; i++) { + const vehicleImageRef = storage.ref().child(`vehicle-images/${user.uid}/${vehicleImages[i].name}`); + promises.push(vehicleImageRef.put(vehicleImages[i]).then(snapshot => snapshot.ref.getDownloadURL().then(url => vehicleImageUrls.push(url)))); + } - await db.collection('profiles').doc(user.uid).set({ + Promise.all(promises).then(urls => { + const profileImageUrl = urls.length > 0 ? urls[0] : null; + db.collection('profiles').doc(user.uid).set({ username: document.getElementById('username').value, email: user.email, - htmlContent: CKEDITOR.instances.editor.getData(), - socialMediaUrls: document.getElementById('social-media-urls').value, - specialItems: document.getElementById('special-items').value, - vehicles: document.getElementById('vehicles').value, + profileContent: profileContent, + socialMediaUrls: socialMediaUrls, + specialItems: specialItems, + vehicles: vehicles, profileImageUrl: profileImageUrl, - vehicleImageUrls: vehicleImageUrls + vehicleImages: vehicleImageUrls + }).then(() => { + alert('Profile saved!'); + updatePreview(); + }).catch(error => { + console.error('Error saving profile: ', error); + alert('Error saving profile.'); }); - console.log('Profile saved successfully'); - alert('Profile saved!'); - loadProfile(user.uid); - } catch (error) { - console.error('Error saving profile:', error); - alert('Error saving profile: ' + error.message); - } - } else { - console.error("No authenticated user found."); + }); } } function loadProfile(uid) { - console.log("Loading profile for user:", uid); - var db = firebase.firestore(); - db.collection('profiles').doc(uid).get().then(function(doc) { + const db = firebase.firestore(); + db.collection('profiles').doc(uid).get().then(doc => { if (doc.exists) { - var profileData = doc.data(); - console.log("Profile data loaded:", profileData); - document.getElementById('username').value = profileData.username || ''; - CKEDITOR.instances.editor.setData(profileData.htmlContent); - document.getElementById('social-media-urls').value = profileData.socialMediaUrls || ''; - document.getElementById('special-items').value = profileData.specialItems || ''; - document.getElementById('vehicles').value = profileData.vehicles || ''; - if (profileData.profileImageUrl) { - document.getElementById('profile-image-preview').src = profileData.profileImageUrl; + const data = doc.data(); + document.getElementById('username').value = data.username || ''; + document.getElementById('email').value = data.email || ''; + CKEDITOR.instances.editor.setData(data.profileContent || ''); + document.getElementById('social-media-urls').value = data.socialMediaUrls || ''; + document.getElementById('special-items').value = data.specialItems || ''; + document.getElementById('vehicles').value = data.vehicles || ''; + if (data.profileImageUrl) { + document.getElementById('profile-image-preview').src = data.profileImageUrl; document.getElementById('profile-image-preview').style.display = 'block'; - } else { - document.getElementById('profile-image-preview').style.display = 'none'; } - updateVehiclePreviews(profileData.vehicleImageUrls); - updatePreview(profileData); - } else { - console.log("No profile data found for user."); + updateVehiclePreviews(data.vehicleImages || []); + updatePreview(); } - }).catch(function(error) { - console.error('Error loading profile:', error); + }).catch(error => { + console.error('Error loading profile: ', error); + alert('Error loading profile.'); }); } function updateVehiclePreviews(vehicleImageUrls) { - console.log("Updating vehicle previews:", vehicleImageUrls); - const container = document.getElementById('vehicle-images-previews'); - container.innerHTML = ''; - if (vehicleImageUrls && vehicleImageUrls.length > 0) { + const previewsContainer = document.getElementById('vehicle-images-previews'); + previewsContainer.innerHTML = ''; + if (vehicleImageUrls && vehicleImageUrls.length) { vehicleImageUrls.forEach(url => { const img = document.createElement('img'); img.src = url; img.style.maxWidth = '100px'; img.style.maxHeight = '100px'; - container.appendChild(img); + previewsContainer.appendChild(img); }); + } else { + console.log('No vehicle images to preview.'); } } - function togglePreview() { - try { - var editorContent = CKEDITOR.instances.editor.getData(); - var profileData = { - username: document.getElementById('username').value, - email: document.getElementById('email').value, - htmlContent: editorContent, - socialMediaUrls: document.getElementById('social-media-urls').value, - specialItems: document.getElementById('special-items').value, - vehicles: document.getElementById('vehicles').value, - profileImageUrl: document.getElementById('profile-image-preview').src, - vehicleImageUrls: Array.from(document.getElementById('vehicle-images-previews').getElementsByTagName('img')).map(img => img.src) - }; - updatePreview(profileData); - var preview = document.getElementById('profile-preview'); - if (preview.style.display === 'none') { - preview.style.display = 'block'; - } else { - preview.style.display = 'none'; - } - } catch (error) { - console.error('Error toggling preview:', error); - } + function updatePreview() { + const previewContainer = document.getElementById('profile-preview'); + previewContainer.innerHTML = ` +

    ${document.getElementById('username').value}

    +

    ${document.getElementById('email').value}

    + Profile Image + ${CKEDITOR.instances.editor.getData()} +

    Social Media URLs

    +

    ${document.getElementById('social-media-urls').value}

    +

    Special Items

    +

    ${document.getElementById('special-items').value}

    +

    Vehicles

    +

    ${document.getElementById('vehicles').value}

    +

    Vehicle Images

    + `; + updateVehiclePreviews(Array.from(document.getElementById('vehicle-images').files).map(file => URL.createObjectURL(file))); } - function updatePreview(profileData) { - try { - var previewContent = ` -
    -

    ${profileData.username}

    -

    ${profileData.email}

    - ${profileData.profileImageUrl ? `Profile Image` : ''} -
    ${profileData.htmlContent}
    -

    Social Media URLs

    -

    ${profileData.socialMediaUrls}

    -

    Special Items

    -

    ${profileData.specialItems}

    -

    Vehicles

    -

    ${profileData.vehicles}

    - ${profileData.vehicleImageUrls.length > 0 ? '

    Vehicle Images

    ' : ''} - ${profileData.vehicleImageUrls.map(url => `Vehicle Image`).join('')} -
    - `; - document.getElementById('profile-preview').innerHTML = previewContent; - } catch (error) { - console.error('Error updating preview:', error); + function togglePreview() { + const previewContainer = document.getElementById('profile-preview'); + if (previewContainer.style.display === 'none' || !previewContainer.style.display) { + updatePreview(); + previewContainer.style.display = 'block'; + } else { + previewContainer.style.display = 'none'; } } - document.addEventListener('DOMContentLoaded', () => { - CKEDITOR.replace('editor'); + document.getElementById('profile-image').addEventListener('change', function(event) { + const reader = new FileReader(); + reader.onload = function(e) { + document.getElementById('profile-image-preview').src = e.target.result; + document.getElementById('profile-image-preview').style.display = 'block'; + }; + reader.readAsDataURL(event.target.files[0]); + }); + + document.getElementById('vehicle-images').addEventListener('change', function(event) { + updateVehiclePreviews(Array.from(event.target.files).map(file => URL.createObjectURL(file))); }); @@ -195,9 +170,8 @@

    Vehicles

  • Cars
  • Our Mission
  • Contact
  • -
  • -
  • All Profiles
  • -
  • +
  • Profile
  • +
  • @@ -220,11 +194,11 @@

    Profile Editor

    -
    +
    - + + -
    From 74f21b700b0755ebb57372d542d16bc17bde9a09 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 18 Jun 2024 05:01:13 -0700 Subject: [PATCH 234/407] Update profile.html --- profile.html | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/profile.html b/profile.html index 9388c2c..26ce958 100644 --- a/profile.html +++ b/profile.html @@ -146,17 +146,20 @@

    Vehicle Images

    } } - document.getElementById('profile-image').addEventListener('change', function(event) { - const reader = new FileReader(); - reader.onload = function(e) { - document.getElementById('profile-image-preview').src = e.target.result; - document.getElementById('profile-image-preview').style.display = 'block'; - }; - reader.readAsDataURL(event.target.files[0]); - }); + document.addEventListener('DOMContentLoaded', function() { + CKEDITOR.replace('editor'); + document.getElementById('profile-image').addEventListener('change', function(event) { + const reader = new FileReader(); + reader.onload = function(e) { + document.getElementById('profile-image-preview').src = e.target.result; + document.getElementById('profile-image-preview').style.display = 'block'; + }; + reader.readAsDataURL(event.target.files[0]); + }); - document.getElementById('vehicle-images').addEventListener('change', function(event) { - updateVehiclePreviews(Array.from(event.target.files).map(file => URL.createObjectURL(file))); + document.getElementById('vehicle-images').addEventListener('change', function(event) { + updateVehiclePreviews(Array.from(event.target.files).map(file => URL.createObjectURL(file))); + }); }); From fa109781f89fa60cbb4559ccaf55a4843e12a224 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 18 Jun 2024 05:26:58 -0700 Subject: [PATCH 235/407] Update profile.html --- profile.html | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/profile.html b/profile.html index 26ce958..4b851e0 100644 --- a/profile.html +++ b/profile.html @@ -74,6 +74,9 @@ console.error('Error saving profile: ', error); alert('Error saving profile.'); }); + }).catch(error => { + console.error('Error uploading files: ', error); + alert('Error uploading files.'); }); } } @@ -174,22 +177,22 @@

    Vehicle Images

  • Our Mission
  • Contact
  • Profile
  • -
  • +
  • -
    -

    Profile Editor

    +
    +

    Profile Page

    -
    + -
    + + +
    -
    - - + From 2f2ad2798fbc3ba7eadd479daa304eda6f89d675 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 18 Jun 2024 19:59:51 -0700 Subject: [PATCH 236/407] Update profile.html --- profile.html | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/profile.html b/profile.html index 4b851e0..a7acb82 100644 --- a/profile.html +++ b/profile.html @@ -32,7 +32,7 @@ }); } - function saveProfile() { + async function saveProfile() { const user = firebase.auth().currentUser; if (user) { const db = firebase.firestore(); @@ -56,9 +56,10 @@ promises.push(vehicleImageRef.put(vehicleImages[i]).then(snapshot => snapshot.ref.getDownloadURL().then(url => vehicleImageUrls.push(url)))); } - Promise.all(promises).then(urls => { + try { + const urls = await Promise.all(promises); const profileImageUrl = urls.length > 0 ? urls[0] : null; - db.collection('profiles').doc(user.uid).set({ + await db.collection('profiles').doc(user.uid).set({ username: document.getElementById('username').value, email: user.email, profileContent: profileContent, @@ -67,23 +68,20 @@ vehicles: vehicles, profileImageUrl: profileImageUrl, vehicleImages: vehicleImageUrls - }).then(() => { - alert('Profile saved!'); - updatePreview(); - }).catch(error => { - console.error('Error saving profile: ', error); - alert('Error saving profile.'); }); - }).catch(error => { + alert('Profile saved!'); + updatePreview(); + } catch (error) { console.error('Error uploading files: ', error); alert('Error uploading files.'); - }); + } } } - function loadProfile(uid) { + async function loadProfile(uid) { const db = firebase.firestore(); - db.collection('profiles').doc(uid).get().then(doc => { + try { + const doc = await db.collection('profiles').doc(uid).get(); if (doc.exists) { const data = doc.data(); document.getElementById('username').value = data.username || ''; @@ -99,10 +97,10 @@ updateVehiclePreviews(data.vehicleImages || []); updatePreview(); } - }).catch(error => { + } catch (error) { console.error('Error loading profile: ', error); alert('Error loading profile.'); - }); + } } function updateVehiclePreviews(vehicleImageUrls) { From 53f08e38f476362ceb9db774f2d85e4c2b9e0d5b Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 18 Jun 2024 20:20:05 -0700 Subject: [PATCH 237/407] Update all_profiles.js --- all_profiles.js | 45 ++++++++++++++++++++++----------------------- 1 file changed, 22 insertions(+), 23 deletions(-) diff --git a/all_profiles.js b/all_profiles.js index 2134da3..c21d20d 100644 --- a/all_profiles.js +++ b/all_profiles.js @@ -1,27 +1,26 @@ -document.addEventListener('DOMContentLoaded', function() { - var db = firebase.firestore(); - var profilesList = document.getElementById('profiles-list'); +document.addEventListener('DOMContentLoaded', async function() { + const db = firebase.firestore(); - function createProfileCard(profile) { - var card = document.createElement('div'); - card.classList.add('profile-card'); - card.innerHTML = ` -

    ${profile.username}

    -

    Email: ${profile.email}

    -
    ${profile.htmlContent}
    -
    Social Media URLs: ${profile.socialMediaUrls}
    -
    Special Items: ${profile.specialItems}
    -
    Vehicles: ${profile.vehicles}
    - `; - return card; - } + try { + const profilesSnapshot = await db.collection('profiles').get(); + const profilesList = document.getElementById('profiles-list'); + profilesList.innerHTML = ''; - db.collection('profiles').get().then((querySnapshot) => { - querySnapshot.forEach((doc) => { - var profileData = doc.data(); - profilesList.appendChild(createProfileCard(profileData)); + profilesSnapshot.forEach(doc => { + const profile = doc.data(); + const profileItem = document.createElement('div'); + profileItem.classList.add('profile-item'); + profileItem.innerHTML = ` + + Profile Image + +

    ${profile.username}

    +

    ${profile.email}

    + `; + profilesList.appendChild(profileItem); }); - }).catch((error) => { - console.error("Error loading profiles: ", error); - }); + } catch (error) { + console.error('Error loading profiles: ', error); + alert('Error loading profiles.'); + } }); From 4b269162140373641d77e8f58945ba22e8ce0d4e Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 18 Jun 2024 20:22:46 -0700 Subject: [PATCH 238/407] Create prof_editor.html --- prof_editor.html | 160 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 160 insertions(+) create mode 100644 prof_editor.html diff --git a/prof_editor.html b/prof_editor.html new file mode 100644 index 0000000..a15fea7 --- /dev/null +++ b/prof_editor.html @@ -0,0 +1,160 @@ + + + + + + Profile Editor + + + + + + + + + + + +

    Profile Editor

    + +

    + +

    + +

    + Profile Image Preview

    + +

    +


    + + + + +
    + + From 75e2d50cbdd867caa6cf6eb8469ec42667994269 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 18 Jun 2024 20:23:25 -0700 Subject: [PATCH 239/407] Update profile.html --- profile.html | 209 ++++++++++----------------------------------------- 1 file changed, 41 insertions(+), 168 deletions(-) diff --git a/profile.html b/profile.html index a7acb82..7da1767 100644 --- a/profile.html +++ b/profile.html @@ -3,170 +3,64 @@ - Profile + User Profile - - - + -
    -

    Profile Page

    - - - - - - - - -
    - - - - - - - - -
    -
    - - - - -
    +

    User Profile

    + Profile Image +

    +

    +
    +
    From a7e46b4ccb9c6cba826fd5bb1221250588a83574 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 18 Jun 2024 20:23:48 -0700 Subject: [PATCH 240/407] Update all_profiles.html --- all_profiles.html | 44 ++++++++++++++++++++++++++++++++++---------- 1 file changed, 34 insertions(+), 10 deletions(-) diff --git a/all_profiles.html b/all_profiles.html index 9c66ddc..d89104f 100644 --- a/all_profiles.html +++ b/all_profiles.html @@ -3,20 +3,49 @@ - All Profiles - IMOB Racing + All Profiles - - + -
    -

    All Profiles

    -
    - -
    -
    +

    All Profiles

    +
    From 512e88e986e569729e3cd37c47288a53023daa0f Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 18 Jun 2024 20:25:10 -0700 Subject: [PATCH 241/407] Update profile.js --- profile.js | 160 ++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 109 insertions(+), 51 deletions(-) diff --git a/profile.js b/profile.js index 1245e1c..6b333b5 100644 --- a/profile.js +++ b/profile.js @@ -1,66 +1,124 @@ -document.addEventListener('DOMContentLoaded', () => { - firebase.initializeApp(CONFIG.FIREBASE_CONFIG); +document.addEventListener('DOMContentLoaded', async function() { + const db = firebase.firestore(); + const storage = firebase.storage(); - ClassicEditor - .create(document.querySelector('#editor')) - .then(editor => { - window.editor = editor; - loadProfile(); - }) - .catch(error => { - console.error(error); + const params = new URLSearchParams(window.location.search); + const userId = params.get('userId'); + + if (userId) { + try { + const doc = await db.collection('profiles').doc(userId).get(); + if (doc.exists) { + const profile = doc.data(); + document.getElementById('username').innerText = profile.username || ''; + document.getElementById('email').innerText = profile.email || ''; + document.getElementById('profile-content').innerHTML = profile.profileContent || ''; + document.getElementById('profile-image').src = profile.profileImageUrl || ''; + updateVehiclePreviews(profile.vehicleImages || []); + } else { + alert('Profile not found.'); + } + } catch (error) { + console.error('Error loading profile: ', error); + alert('Error loading profile.'); + } + } else { + alert('No user ID specified.'); + } + + function updateVehiclePreviews(vehicleImages) { + const vehicleContainer = document.getElementById('vehicle-previews'); + vehicleContainer.innerHTML = ''; + vehicleImages.forEach(url => { + const img = document.createElement('img'); + img.src = url; + img.alt = 'Vehicle Image'; + img.style.maxWidth = '100px'; + img.style.maxHeight = '100px'; + vehicleContainer.appendChild(img); }); + } +}); - document.getElementById('profileForm').addEventListener('submit', async (event) => { - event.preventDefault(); - const editorData = window.editor.getData(); - const user = firebase.auth().currentUser; +async function saveProfile() { + const user = firebase.auth().currentUser; + if (user) { + const db = firebase.firestore(); + const storage = firebase.storage(); - if (user) { - await firebase.firestore().collection('profiles').doc(user.uid).set({ - profileContent: editorData - }); + const profileImageFile = document.getElementById('profileImage').files[0]; + const vehicleImagesFiles = document.getElementById('vehicleImages').files; + const profileContent = CKEDITOR.instances.editor.getData(); + const username = document.getElementById('username').value; + const email = document.getElementById('email').value; - alert('Profile saved successfully!'); - document.getElementById('profile-preview').innerHTML = editorData; - } else { - alert('No user is logged in.'); + const profileRef = db.collection('profiles').doc(user.uid); + let profileImageUrl, vehicleImageUrls = []; + + if (profileImageFile) { + const profileImageRef = storage.ref(`profile-images/${user.uid}/${profileImageFile.name}`); + await profileImageRef.put(profileImageFile); + profileImageUrl = await profileImageRef.getDownloadURL(); } - }); - document.getElementById('fetchSocialMediaButton').addEventListener('click', populateSocialMedia); -}); + if (vehicleImagesFiles.length > 0) { + for (let i = 0; i < vehicleImagesFiles.length; i++) { + const file = vehicleImagesFiles[i]; + const vehicleImageRef = storage.ref(`vehicle-images/${user.uid}/${file.name}`); + await vehicleImageRef.put(file); + const url = await vehicleImageRef.getDownloadURL(); + vehicleImageUrls.push(url); + } + } + + await profileRef.set({ + username, + email, + profileImageUrl, + vehicleImages: vehicleImageUrls, + profileContent + }); -function loadProfile() { - firebase.auth().onAuthStateChanged(user => { - if (user) { - firebase.firestore().collection('profiles').doc(user.uid).get().then(doc => { - if (doc.exists) { - window.editor.setData(doc.data().profileContent); - document.getElementById('profile-preview').innerHTML = doc.data().profileContent; - } - }).catch(error => { - console.error('Error loading profile: ', error); - }); - } else { - alert('No user is logged in.'); + alert('Profile saved successfully!'); + updatePreview(); + } +} + +function loadProfile(uid) { + const db = firebase.firestore(); + const profileRef = db.collection('profiles').doc(uid); + + profileRef.get().then(doc => { + if (doc.exists) { + const profile = doc.data(); + document.getElementById('username').value = profile.username || ''; + document.getElementById('email').value = profile.email || ''; + CKEDITOR.instances.editor.setData(profile.profileContent || ''); + document.getElementById('profileImagePreview').src = profile.profileImageUrl || ''; + updateVehiclePreviews(profile.vehicleImages || []); } - }); + }).catch(error => console.error('Error loading profile: ', error)); } -async function fetchSocialMediaContent() { - const response = await fetch('/api/getSocialMediaContent'); - const data = await response.json(); - return data; +function updatePreview() { + const profileContent = CKEDITOR.instances.editor.getData(); + document.getElementById('profile-preview').innerHTML = ` +

    ${document.getElementById('username').value}

    + Profile Image + ${profileContent} + `; + updateVehiclePreviews(Array.from(document.getElementById('vehiclePreviews').children).map(img => img.src)); } -async function populateSocialMedia() { - const content = await fetchSocialMediaContent(); - const container = document.getElementById('socialMediaContent'); - container.innerHTML = ''; - content.forEach(item => { - const mediaElement = document.createElement(item.media_type === 'IMAGE' ? 'img' : 'video'); - mediaElement.src = item.media_url; - container.appendChild(mediaElement); +function updateVehiclePreviews(vehicleImages) { + const vehicleContainer = document.getElementById('vehiclePreviews'); + vehicleContainer.innerHTML = ''; + vehicleImages.forEach(url => { + const img = document.createElement('img'); + img.src = url; + img.alt = 'Vehicle Image'; + img.style.maxWidth = '100px'; + img.style.maxHeight = '100px'; + vehicleContainer.appendChild(img); }); } From 0be558bdea9d3fe17583a3c3f5acc09006b29418 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 18 Jun 2024 20:28:33 -0700 Subject: [PATCH 242/407] Update and rename profile.js to prof_editor.js --- prof_editor.js | 129 +++++++++++++++++++++++++++++++++++++++++++++++++ profile.js | 124 ----------------------------------------------- 2 files changed, 129 insertions(+), 124 deletions(-) create mode 100644 prof_editor.js delete mode 100644 profile.js diff --git a/prof_editor.js b/prof_editor.js new file mode 100644 index 0000000..27a07ff --- /dev/null +++ b/prof_editor.js @@ -0,0 +1,129 @@ +document.addEventListener('DOMContentLoaded', function() { + firebase.auth().onAuthStateChanged(function(user) { + if (user) { + document.getElementById('username').value = user.displayName || ''; + document.getElementById('email').value = user.email; + loadProfile(user.uid); + } else { + window.location.href = 'login.html'; + } + }); + + document.getElementById('profileImage').addEventListener('change', function(event) { + const file = event.target.files[0]; + if (file) { + const reader = new FileReader(); + reader.onload = function(e) { + document.getElementById('profileImagePreview').src = e.target.result; + }; + reader.readAsDataURL(file); + } + }); + + document.getElementById('vehicleImages').addEventListener('change', function(event) { + const files = event.target.files; + const previewsContainer = document.getElementById('vehiclePreviews'); + previewsContainer.innerHTML = ''; + Array.from(files).forEach(file => { + const reader = new FileReader(); + reader.onload = function(e) { + const img = document.createElement('img'); + img.src = e.target.result; + img.alt = 'Vehicle Image'; + img.style.maxWidth = '100px'; + img.style.maxHeight = '100px'; + previewsContainer.appendChild(img); + }; + reader.readAsDataURL(file); + }); + }); +}); + +async function saveProfile() { + const user = firebase.auth().currentUser; + if (user) { + const db = firebase.firestore(); + const storage = firebase.storage(); + + const profileImageFile = document.getElementById('profileImage').files[0]; + const vehicleImagesFiles = document.getElementById('vehicleImages').files; + const profileContent = CKEDITOR.instances.editor.getData(); + const username = document.getElementById('username').value; + const email = document.getElementById('email').value; + + const profileRef = db.collection('profiles').doc(user.uid); + let profileImageUrl, vehicleImageUrls = []; + + try { + if (profileImageFile) { + const profileImageRef = storage.ref(`profile-images/${user.uid}/${profileImageFile.name}`); + await profileImageRef.put(profileImageFile); + profileImageUrl = await profileImageRef.getDownloadURL(); + } + + if (vehicleImagesFiles.length > 0) { + for (let i = 0; i < vehicleImagesFiles.length; i++) { + const file = vehicleImagesFiles[i]; + const vehicleImageRef = storage.ref(`vehicle-images/${user.uid}/${file.name}`); + await vehicleImageRef.put(file); + const url = await vehicleImageRef.getDownloadURL(); + vehicleImageUrls.push(url); + } + } + + await profileRef.set({ + username, + email, + profileImageUrl, + vehicleImages: vehicleImageUrls, + profileContent + }); + + alert('Profile saved successfully!'); + updatePreview(); + } catch (error) { + console.error('Error saving profile: ', error); + alert('Error saving profile: ' + error.message); + } + } +} + +function loadProfile(uid) { + const db = firebase.firestore(); + const profileRef = db.collection('profiles').doc(uid); + + profileRef.get().then(doc => { + if (doc.exists) { + const profile = doc.data(); + document.getElementById('username').value = profile.username || ''; + document.getElementById('email').value = profile.email || ''; + CKEDITOR.instances.editor.setData(profile.profileContent || ''); + document.getElementById('profileImagePreview').src = profile.profileImageUrl || ''; + updateVehiclePreviews(profile.vehicleImages || []); + } + }).catch(error => console.error('Error loading profile: ', error)); +} + +function updatePreview() { + const profileContent = CKEDITOR.instances.editor.getData(); + document.getElementById('profile-preview').innerHTML = ` +

    ${document.getElementById('username').value}

    + Profile Image + ${profileContent} + `; + const vehicleImages = Array.from(document.getElementById('vehiclePreviews').children).map(img => img.src); + updateVehiclePreviews(vehicleImages); +} + +function updateVehiclePreviews(vehicleImages) { + const vehicleContainer = document.getElementById('vehicle-previews'); + vehicleContainer.innerHTML = ''; + vehicleImages.forEach(url => { + const img = document.createElement('img'); + img.src = url; + img.alt = 'Vehicle Image'; + img.style.maxWidth = '100px'; + img.style.maxHeight = '100px'; + vehicleContainer.appendChild(img); + }); +} diff --git a/profile.js b/profile.js deleted file mode 100644 index 6b333b5..0000000 --- a/profile.js +++ /dev/null @@ -1,124 +0,0 @@ -document.addEventListener('DOMContentLoaded', async function() { - const db = firebase.firestore(); - const storage = firebase.storage(); - - const params = new URLSearchParams(window.location.search); - const userId = params.get('userId'); - - if (userId) { - try { - const doc = await db.collection('profiles').doc(userId).get(); - if (doc.exists) { - const profile = doc.data(); - document.getElementById('username').innerText = profile.username || ''; - document.getElementById('email').innerText = profile.email || ''; - document.getElementById('profile-content').innerHTML = profile.profileContent || ''; - document.getElementById('profile-image').src = profile.profileImageUrl || ''; - updateVehiclePreviews(profile.vehicleImages || []); - } else { - alert('Profile not found.'); - } - } catch (error) { - console.error('Error loading profile: ', error); - alert('Error loading profile.'); - } - } else { - alert('No user ID specified.'); - } - - function updateVehiclePreviews(vehicleImages) { - const vehicleContainer = document.getElementById('vehicle-previews'); - vehicleContainer.innerHTML = ''; - vehicleImages.forEach(url => { - const img = document.createElement('img'); - img.src = url; - img.alt = 'Vehicle Image'; - img.style.maxWidth = '100px'; - img.style.maxHeight = '100px'; - vehicleContainer.appendChild(img); - }); - } -}); - -async function saveProfile() { - const user = firebase.auth().currentUser; - if (user) { - const db = firebase.firestore(); - const storage = firebase.storage(); - - const profileImageFile = document.getElementById('profileImage').files[0]; - const vehicleImagesFiles = document.getElementById('vehicleImages').files; - const profileContent = CKEDITOR.instances.editor.getData(); - const username = document.getElementById('username').value; - const email = document.getElementById('email').value; - - const profileRef = db.collection('profiles').doc(user.uid); - let profileImageUrl, vehicleImageUrls = []; - - if (profileImageFile) { - const profileImageRef = storage.ref(`profile-images/${user.uid}/${profileImageFile.name}`); - await profileImageRef.put(profileImageFile); - profileImageUrl = await profileImageRef.getDownloadURL(); - } - - if (vehicleImagesFiles.length > 0) { - for (let i = 0; i < vehicleImagesFiles.length; i++) { - const file = vehicleImagesFiles[i]; - const vehicleImageRef = storage.ref(`vehicle-images/${user.uid}/${file.name}`); - await vehicleImageRef.put(file); - const url = await vehicleImageRef.getDownloadURL(); - vehicleImageUrls.push(url); - } - } - - await profileRef.set({ - username, - email, - profileImageUrl, - vehicleImages: vehicleImageUrls, - profileContent - }); - - alert('Profile saved successfully!'); - updatePreview(); - } -} - -function loadProfile(uid) { - const db = firebase.firestore(); - const profileRef = db.collection('profiles').doc(uid); - - profileRef.get().then(doc => { - if (doc.exists) { - const profile = doc.data(); - document.getElementById('username').value = profile.username || ''; - document.getElementById('email').value = profile.email || ''; - CKEDITOR.instances.editor.setData(profile.profileContent || ''); - document.getElementById('profileImagePreview').src = profile.profileImageUrl || ''; - updateVehiclePreviews(profile.vehicleImages || []); - } - }).catch(error => console.error('Error loading profile: ', error)); -} - -function updatePreview() { - const profileContent = CKEDITOR.instances.editor.getData(); - document.getElementById('profile-preview').innerHTML = ` -

    ${document.getElementById('username').value}

    - Profile Image - ${profileContent} - `; - updateVehiclePreviews(Array.from(document.getElementById('vehiclePreviews').children).map(img => img.src)); -} - -function updateVehiclePreviews(vehicleImages) { - const vehicleContainer = document.getElementById('vehiclePreviews'); - vehicleContainer.innerHTML = ''; - vehicleImages.forEach(url => { - const img = document.createElement('img'); - img.src = url; - img.alt = 'Vehicle Image'; - img.style.maxWidth = '100px'; - img.style.maxHeight = '100px'; - vehicleContainer.appendChild(img); - }); -} From b6d068d474a384e3c7d0dc0e5c02e71e6d67200a Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 18 Jun 2024 20:30:35 -0700 Subject: [PATCH 243/407] Update prof_editor.html --- prof_editor.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/prof_editor.html b/prof_editor.html index a15fea7..adec7ef 100644 --- a/prof_editor.html +++ b/prof_editor.html @@ -11,6 +11,7 @@ + - - +
    @@ -78,5 +33,45 @@

    + From 7e4f5c40b46f5139efc94079293c9b23fe459cec Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 18 Jun 2024 20:33:08 -0700 Subject: [PATCH 245/407] Update all_profiles.js --- all_profiles.js | 57 ++++++++++++++++++++++++++++++------------------- 1 file changed, 35 insertions(+), 22 deletions(-) diff --git a/all_profiles.js b/all_profiles.js index c21d20d..5c0d9b6 100644 --- a/all_profiles.js +++ b/all_profiles.js @@ -1,26 +1,39 @@ -document.addEventListener('DOMContentLoaded', async function() { - const db = firebase.firestore(); +document.addEventListener('DOMContentLoaded', function() { + loadAllProfiles(); +}); - try { - const profilesSnapshot = await db.collection('profiles').get(); - const profilesList = document.getElementById('profiles-list'); - profilesList.innerHTML = ''; +function loadAllProfiles() { + const db = firebase.firestore(); + const profilesContainer = document.getElementById('profiles-container'); + profilesContainer.innerHTML = ''; // Clear any existing content - profilesSnapshot.forEach(doc => { + db.collection('profiles').get().then(querySnapshot => { + querySnapshot.forEach(doc => { const profile = doc.data(); - const profileItem = document.createElement('div'); - profileItem.classList.add('profile-item'); - profileItem.innerHTML = ` - - Profile Image - -

    ${profile.username}

    -

    ${profile.email}

    - `; - profilesList.appendChild(profileItem); + const profileDiv = document.createElement('div'); + profileDiv.className = 'profile-card'; + + const profileImage = document.createElement('img'); + profileImage.src = profile.profileImageUrl || 'default-profile.png'; + profileImage.alt = profile.username || 'No username'; + profileImage.style.maxWidth = '100px'; + profileImage.style.maxHeight = '100px'; + + const profileUsername = document.createElement('h2'); + profileUsername.textContent = profile.username || 'No username'; + + const profileEmail = document.createElement('p'); + profileEmail.textContent = profile.email || 'No email'; + + profileDiv.appendChild(profileImage); + profileDiv.appendChild(profileUsername); + profileDiv.appendChild(profileEmail); + + profileDiv.addEventListener('click', function() { + window.location.href = `profile.html?uid=${doc.id}`; + }); + + profilesContainer.appendChild(profileDiv); }); - } catch (error) { - console.error('Error loading profiles: ', error); - alert('Error loading profiles.'); - } -}); + }).catch(error => console.error('Error loading profiles: ', error)); +} From ebd64e3d6fab125adba130c13be2ee990c766df7 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 18 Jun 2024 20:39:43 -0700 Subject: [PATCH 246/407] Update profile.html --- profile.html | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/profile.html b/profile.html index 422bde5..cd6d672 100644 --- a/profile.html +++ b/profile.html @@ -8,7 +8,7 @@ - +
    @@ -34,7 +35,6 @@

    + -

    All Profiles

    -
    +
    From 25d2c4d5bedb8e5a02936075cb7a6ad12de54f93 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 18 Jun 2024 21:49:23 -0700 Subject: [PATCH 261/407] Update prof_editor.html --- prof_editor.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/prof_editor.html b/prof_editor.html index f2b54ba..4a23537 100644 --- a/prof_editor.html +++ b/prof_editor.html @@ -47,7 +47,7 @@

    Profile Editor

    From ab9573c95139bfda19ab16cd4e4ca5a896be5663 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 18 Jun 2024 21:58:52 -0700 Subject: [PATCH 265/407] Delete .github/workflows/fetch_images.yml --- .github/workflows/fetch_images.yml | 39 ------------------------------ 1 file changed, 39 deletions(-) delete mode 100644 .github/workflows/fetch_images.yml diff --git a/.github/workflows/fetch_images.yml b/.github/workflows/fetch_images.yml deleted file mode 100644 index 69553d0..0000000 --- a/.github/workflows/fetch_images.yml +++ /dev/null @@ -1,39 +0,0 @@ -name: Fetch Social Media Images - -on: - schedule: - - cron: '0 0 * * *' # Runs every day at midnight UTC - push: - branches: - - main - -jobs: - fetch-images: - runs-on: ubuntu-latest - steps: - - name: Checkout repository - uses: actions/checkout@v2 - - - name: Set up Node.js - uses: actions/setup-node@v2 - with: - node-version: '14' - - - name: Install dependencies - run: npm install - - - name: Fetch images - run: node scripts/fetch_images.js - env: - INSTAGRAM_ACCESS_TOKEN: ${{ secrets.INSTAGRAM_ACCESS_TOKEN }} - USER_ID: ${{ secrets.INSTAGRAM_USER_ID }} - - - name: Commit and push changes - run: | - git config --local user.email "action@github.com" - git config --local user.name "GitHub Action" - git add images/ - git commit -m "Update images from Instagram" - git push - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From d29adb65b51e6b8309e464c5164f02b228bd82c2 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 18 Jun 2024 22:00:37 -0700 Subject: [PATCH 266/407] Update all_profiles.html --- all_profiles.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/all_profiles.html b/all_profiles.html index 8c4f6d0..ae0547a 100644 --- a/all_profiles.html +++ b/all_profiles.html @@ -33,7 +33,7 @@ profileDiv.classList.add('profile'); const profileImg = document.createElement('img'); - profileImg.src = profile.profileImageUrl || 'default-profile.png'; + profileImg.src = profile.profileImageUrl || 'default-profile.webp'; profileImg.alt = profile.username || 'No username'; profileImg.style.maxWidth = '100px'; profileImg.style.maxHeight = '100px'; From a34eca7c51bd277345861949f986dabcc4fa66b0 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 18 Jun 2024 22:01:11 -0700 Subject: [PATCH 267/407] Add files via upload --- default-profile.webp | Bin 0 -> 58588 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 default-profile.webp diff --git a/default-profile.webp b/default-profile.webp new file mode 100644 index 0000000000000000000000000000000000000000..ef1432c3cc6e3a1a31fef151a88f91f72bb7e476 GIT binary patch literal 58588 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

    !>zCB`+D&3&06h`5vBOHbHovtRB^dJ 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 Date: Tue, 18 Jun 2024 22:20:12 -0700 Subject: [PATCH 268/407] Add files via upload --- default-profile.jpg | Bin 0 -> 46722 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 default-profile.jpg diff --git a/default-profile.jpg b/default-profile.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b9588348012e5d2d50d98c9f1141b23d0a175602 GIT binary patch literal 46722 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 O7j?hWSRW0oz5N5UIz9ye literal 0 HcmV?d00001 From 70a2f46ff6684d99af6a2054f85b3ceeefbc821e Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 18 Jun 2024 22:21:36 -0700 Subject: [PATCH 269/407] Add files via upload --- default-profile.png | Bin 0 -> 251892 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 default-profile.png diff --git a/default-profile.png b/default-profile.png new file mode 100644 index 0000000000000000000000000000000000000000..38656c26d1d1e7231ebed4acada3c18027d43290 GIT binary patch literal 251892 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

    i+4@$(Dss0;!=#9%BICGhM<8RKTcO3 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 Date: Tue, 18 Jun 2024 22:22:41 -0700 Subject: [PATCH 270/407] Update all_profiles.js --- all_profiles.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/all_profiles.js b/all_profiles.js index 5c0d9b6..f4aa7f9 100644 --- a/all_profiles.js +++ b/all_profiles.js @@ -14,7 +14,7 @@ function loadAllProfiles() { profileDiv.className = 'profile-card'; const profileImage = document.createElement('img'); - profileImage.src = profile.profileImageUrl || 'default-profile.png'; + profileImage.src = profile.profileImageUrl || 'default-profile.webp'; profileImage.alt = profile.username || 'No username'; profileImage.style.maxWidth = '100px'; profileImage.style.maxHeight = '100px'; From 3246195f0836453ac8b7880d516715baf8ae0da7 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 18 Jun 2024 22:38:26 -0700 Subject: [PATCH 271/407] Update prof_editor.html --- prof_editor.html | 236 ++++++++++++++++++++++++----------------------- 1 file changed, 122 insertions(+), 114 deletions(-) diff --git a/prof_editor.html b/prof_editor.html index 395e606..ccd3f4a 100644 --- a/prof_editor.html +++ b/prof_editor.html @@ -2,8 +2,7 @@ - - Profile Editor + Profile Editor - IMOB Racing @@ -11,145 +10,154 @@ - - -

    -

    Profile Editor

    - -
    - -
    - -
    - -
    - -
    - - -
    + + + +

    Profile Editor

    + + +

    + + + + + Profile Image Preview + + +
    + + + From b6455812365f4010afdc649a85e53bc38f3350f0 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 18 Jun 2024 22:47:52 -0700 Subject: [PATCH 272/407] Create Readme --- Readme | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 Readme diff --git a/Readme b/Readme new file mode 100644 index 0000000..82501f7 --- /dev/null +++ b/Readme @@ -0,0 +1,8 @@ +Firebase +Netlify +Github Pages +google cloud services +squarespace domains +Disqus API +snipcart API +youtube API From 05c624ba55b579b85db9b2c83d39130cf11d664b Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 18 Jun 2024 22:50:19 -0700 Subject: [PATCH 273/407] Update prof_editor.html --- prof_editor.html | 52 ++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 42 insertions(+), 10 deletions(-) diff --git a/prof_editor.html b/prof_editor.html index ccd3f4a..9121355 100644 --- a/prof_editor.html +++ b/prof_editor.html @@ -32,7 +32,9 @@ username: document.getElementById('username').value, bio: CKEDITOR.instances.bioEditor.getData(), profileImageUrl: await uploadFile(user.uid, 'profile-image', 'profile-images'), - vehicleImageUrls: await uploadFiles(user.uid, 'vehicle-images', 'vehicle-images') + vehicleImageUrls: await uploadFiles(user.uid, 'vehicle-images', 'vehicle-images'), + socialMediaUrls: getSocialMediaUrls(), + customHtmlContent: CKEDITOR.instances.customHtmlEditor.getData() }; await db.collection('profiles').doc(user.uid).set(profileData); alert('Profile saved successfully!'); @@ -78,6 +80,8 @@ CKEDITOR.instances.bioEditor.setData(data.bio || ''); document.getElementById('profile-image-preview').src = data.profileImageUrl || ''; updateVehiclePreviews(data.vehicleImageUrls || []); + setSocialMediaUrls(data.socialMediaUrls || []); + CKEDITOR.instances.customHtmlEditor.setData(data.customHtmlContent || ''); } } catch (error) { console.error('Error loading profile: ', error); @@ -94,6 +98,31 @@ }); } + function getSocialMediaUrls() { + const urls = []; + document.querySelectorAll('.social-media-url').forEach(input => { + urls.push(input.value); + }); + return urls; + } + + function setSocialMediaUrls(urls) { + const container = document.getElementById('social-media-urls'); + container.innerHTML = ''; + urls.forEach(url => { + addSocialMediaUrl(url); + }); + } + + function addSocialMediaUrl(url = '') { + const container = document.getElementById('social-media-urls'); + const input = document.createElement('input'); + input.type = 'text'; + input.value = url; + input.classList.add('social-media-url'); + container.appendChild(input); + } + function togglePreview() { const previewContainer = document.getElementById('profile-preview'); previewContainer.style.display = previewContainer.style.display === 'none' ? 'block' : 'none'; @@ -109,22 +138,19 @@

    ${document.getElementById('username').value}

    ${Array.from(document.getElementById('vehicle-images').files).map(file => `Vehicle Image`).join('')}
    +
    + ${getSocialMediaUrls().map(url => `${url}`).join('
    ')} +
    +
    ${CKEDITOR.instances.customHtmlEditor.getData()}
    `; } - function logout() { - firebase.auth().signOut().then(() => { - window.location.href = 'login.html'; - }).catch((error) => { - console.error('Error signing out: ', error); - }); - } - document.addEventListener('DOMContentLoaded', () => { CKEDITOR.replace('bioEditor'); + CKEDITOR.replace('customHtmlEditor'); document.getElementById('toggle-preview').addEventListener('click', togglePreview); document.getElementById('save-profile').addEventListener('click', saveProfile); - document.getElementById('logout').addEventListener('click', logout); + document.getElementById('add-social-media-url').addEventListener('click', () => addSocialMediaUrl()); }); @@ -156,6 +182,12 @@

    Profile Editor

    +
    + + +
    + + From 66f17a556279327a28eb70d2108e8197615d57bc Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 18 Jun 2024 22:50:35 -0700 Subject: [PATCH 274/407] Update profile.html --- profile.html | 133 ++++++++++++++++++++++++++------------------------- 1 file changed, 68 insertions(+), 65 deletions(-) diff --git a/profile.html b/profile.html index aad35ff..ad65e62 100644 --- a/profile.html +++ b/profile.html @@ -2,90 +2,93 @@ - - User Profile + Profile - IMOB Racing - - - - -

    User Profile

    - Profile Image -

    -

    -
    -
    + + + +
    +

    + Profile Image +
    +

    Vehicles

    +
    +

    Social Media

    +
    +

    Custom Content

    +
    +
    From ff321fdba8118c0619370ecbef1fa5760a63e2a5 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 18 Jun 2024 22:54:18 -0700 Subject: [PATCH 275/407] Update all_profiles.html --- all_profiles.html | 69 ++++++++++++++++++----------------------------- 1 file changed, 26 insertions(+), 43 deletions(-) diff --git a/all_profiles.html b/all_profiles.html index ae0547a..1a0e44e 100644 --- a/all_profiles.html +++ b/all_profiles.html @@ -2,55 +2,39 @@ - - All Profiles + All Profiles - IMOB Racing @@ -58,9 +42,6 @@

    All Profiles

    -
    +
    From 7245bc2f15a3de6dae49f09a8274f191bd4b7a8b Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 18 Jun 2024 22:58:56 -0700 Subject: [PATCH 276/407] Update styles.css --- styles.css | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/styles.css b/styles.css index a49d0cf..7ca64ac 100644 --- a/styles.css +++ b/styles.css @@ -376,3 +376,56 @@ section { .profile-card p, .profile-card div { margin-bottom: 10px; } +/* Other styles remain unchanged */ + +/* Profile Grid */ +#profiles-container { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); + gap: 20px; + margin: 20px; +} + +.profile-card { + background: #222; + padding: 20px; + border-radius: 10px; + box-shadow: 0 0 10px rgba(255, 69, 0, 0.7); + text-align: center; + transition: transform 0.3s; +} + +.profile-card:hover { + transform: translateY(-10px); +} + +.profile-card img { + width: 100%; + height: 150px; + object-fit: cover; + border-radius: 5px; +} + +.profile-card h3 { + margin: 10px 0; +} + +.profile-card p { + font-size: 1em; + color: #ccc; +} + +.profile-card .view-profile-button { + display: block; + margin: 10px auto 0; + padding: 0.5em 1em; + background-color: #ff4500; + color: white; + text-decoration: none; + border-radius: 5px; + transition: background-color 0.3s; +} + +.profile-card .view-profile-button:hover { + background-color: #e43e00; +} From 46cf67f25ea30856e0d4276fa7127fccc8efbd5b Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 18 Jun 2024 22:59:27 -0700 Subject: [PATCH 277/407] Update all_profiles.html --- all_profiles.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/all_profiles.html b/all_profiles.html index 1a0e44e..d894502 100644 --- a/all_profiles.html +++ b/all_profiles.html @@ -49,8 +49,8 @@

    ${data.username || 'No Username'}

  • Cars
  • Our Mission
  • Contact
  • -
  • Edit Profile
  • Profiles
  • +
  • Edit Profile
  • Logout
  • From 2500821dca71b9cd6d51b27a454ed2ad504dface Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 18 Jun 2024 23:36:41 -0700 Subject: [PATCH 278/407] Update prof_editor.html --- prof_editor.html | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/prof_editor.html b/prof_editor.html index 9121355..296f8ce 100644 --- a/prof_editor.html +++ b/prof_editor.html @@ -145,12 +145,21 @@

    ${document.getElementById('username').value}

    `; } + function logout() { + firebase.auth().signOut().then(() => { + window.location.href = 'index.html'; + }).catch((error) => { + console.error('Error signing out: ', error); + }); + } + document.addEventListener('DOMContentLoaded', () => { CKEDITOR.replace('bioEditor'); CKEDITOR.replace('customHtmlEditor'); document.getElementById('toggle-preview').addEventListener('click', togglePreview); document.getElementById('save-profile').addEventListener('click', saveProfile); document.getElementById('add-social-media-url').addEventListener('click', () => addSocialMediaUrl()); + document.getElementById('logout').addEventListener('click', logout); }); From 7ee7640435eaddb367e8ec4c2c85dec9049053e6 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 18 Jun 2024 23:47:07 -0700 Subject: [PATCH 279/407] Update profile.html --- profile.html | 62 ++++++++++++++++++++++++++++++++++------------------ 1 file changed, 41 insertions(+), 21 deletions(-) diff --git a/profile.html b/profile.html index ad65e62..40fb06c 100644 --- a/profile.html +++ b/profile.html @@ -17,14 +17,15 @@ const doc = await db.collection('profiles').doc(userId).get(); if (doc.exists) { const data = doc.data(); - document.getElementById('username').innerText = data.username || ''; - document.getElementById('bio').innerHTML = data.bio || ''; + document.getElementById('profile-username').innerText = data.username || ''; + document.getElementById('profile-email').innerText = data.email || ''; + document.getElementById('profile-bio').innerHTML = data.bio || ''; document.getElementById('profile-image').src = data.profileImageUrl || ''; updateVehiclePreviews(data.vehicleImageUrls || []); - updateSocialMediaPreviews(data.socialMediaUrls || []); + setSocialMediaUrls(data.socialMediaUrls || []); document.getElementById('custom-html-content').innerHTML = data.customHtmlContent || ''; } else { - document.getElementById('profile-container').innerHTML = '

    No profile found.

    '; + console.error('No profile data found'); } } catch (error) { console.error('Error loading profile: ', error); @@ -37,20 +38,20 @@ urls.forEach(url => { const img = document.createElement('img'); img.src = url; + img.classList.add('normalized-image'); container.appendChild(img); }); } - function updateSocialMediaPreviews(urls) { - const container = document.getElementById('social-media-previews'); + function setSocialMediaUrls(urls) { + const container = document.getElementById('social-media-links'); container.innerHTML = ''; urls.forEach(url => { - const a = document.createElement('a'); - a.href = url; - a.target = '_blank'; - a.innerText = url; - container.appendChild(a); - container.appendChild(document.createElement('br')); + const link = document.createElement('a'); + link.href = url; + link.target = '_blank'; + link.innerText = url; + container.appendChild(link); }); } @@ -60,10 +61,29 @@ if (userId) { loadProfile(userId); } else { - document.getElementById('profile-container').innerHTML = '

    No user ID provided in URL.

    '; + console.error('No user ID provided in URL'); } }); + -
    -

    - Profile Image -
    -

    Vehicles

    +
    +

    +

    + Profile Image +
    -

    Social Media

    -
    -

    Custom Content

    +
    From e5b1847ae0ba614b893ff10dfe8cc0db14a92a91 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 18 Jun 2024 23:52:50 -0700 Subject: [PATCH 280/407] Update store.html --- store.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/store.html b/store.html index ce3f108..1556121 100644 --- a/store.html +++ b/store.html @@ -75,6 +75,6 @@

    Racing Gloves

    - + From 61947b445f963991a962192f5e4b9b1cfe5b5fa4 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Tue, 18 Jun 2024 23:54:30 -0700 Subject: [PATCH 281/407] Update store.html --- store.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/store.html b/store.html index 1556121..697544e 100644 --- a/store.html +++ b/store.html @@ -75,6 +75,6 @@

    Racing Gloves

    - + From 577f746090b399e8bc223cfc322cb0bc3d4fe2ee Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 00:40:40 -0700 Subject: [PATCH 282/407] Update styles.css --- styles.css | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/styles.css b/styles.css index 7ca64ac..adb00cd 100644 --- a/styles.css +++ b/styles.css @@ -429,3 +429,8 @@ section { .profile-card .view-profile-button:hover { background-color: #e43e00; } + +/* Snipcart Customization */ +.snipcart-checkout { + display: none; +} From 54f37b1806f1dad602923a0be905155fa11d981a Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 00:42:42 -0700 Subject: [PATCH 283/407] Update store.html --- store.html | 56 ++++++++++++++++++++++-------------------------------- 1 file changed, 23 insertions(+), 33 deletions(-) diff --git a/store.html b/store.html index 697544e..e66fe66 100644 --- a/store.html +++ b/store.html @@ -2,9 +2,9 @@ - - IMOB Racing - Store + Store - IMOB Racing + -
    -

    Our Store

    +
    +

    Our Store

    iMOB Racing T-Shirt 1

    iMOB Racing T-Shirt 1

    High quality racing t-shirt.

    -

    $20.00

    + data-item-url="/" + data-item-description="High quality racing t-shirt.">Add to Cart
    iMOB Racing T-Shirt 2

    iMOB Racing T-Shirt 2

    Another stylish racing t-shirt.

    -

    $20.00

    -
    -
    - Racing Helmet -

    Racing Helmet

    -

    Top-quality racing helmet.

    - Buy on Amazon -
    -
    - Racing Gloves -

    Racing Gloves

    -

    Durable and comfortable racing gloves.

    - Buy on Amazon + data-item-url="/" + data-item-description="Another stylish racing t-shirt.">Add to Cart
    +
    +
    -

    © 2024 IMOB Racing. All rights reserved.

    +

    © 2024 iMOB Racing. All rights reserved.

    +

    Contact: info@imobracingonline.com | Phone: (530) 420-5850

    - + + + From d94df5bb8f8758e8c5528dfdbf2f046f33096513 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 00:45:23 -0700 Subject: [PATCH 284/407] Update styles.css --- styles.css | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/styles.css b/styles.css index adb00cd..77bfae0 100644 --- a/styles.css +++ b/styles.css @@ -432,5 +432,22 @@ section { /* Snipcart Customization */ .snipcart-checkout { - display: none; + right: 0; + width: 25% !important; + max-width: 400px !important; /* Adjust the max-width as needed */ + transition: width 0.3s ease-in-out; +} + +/* Adjust the Snipcart overlay to account for the new cart width */ +.snipcart-overlay { + width: 75% !important; + left: 0; + background: rgba(0, 0, 0, 0.5); /* Optional: adjust the overlay background */ + transition: width 0.3s ease-in-out; +} + +/* Adjust the Snipcart cart header and content */ +.snipcart-cart-header, +.snipcart-cart-content { + width: 100% !important; } From 081a7447a36685c63fbe9112c315e5c93f318832 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 00:47:22 -0700 Subject: [PATCH 285/407] Update store.html From 6a66120f83628d0bb92be55a0b261dc5d8430f3d Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 00:49:54 -0700 Subject: [PATCH 286/407] Update styles.css --- styles.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/styles.css b/styles.css index 77bfae0..61c7e90 100644 --- a/styles.css +++ b/styles.css @@ -434,13 +434,13 @@ section { .snipcart-checkout { right: 0; width: 25% !important; - max-width: 400px !important; /* Adjust the max-width as needed */ + max-width: 200px !important; /* Adjust the max-width as needed */ transition: width 0.3s ease-in-out; } /* Adjust the Snipcart overlay to account for the new cart width */ .snipcart-overlay { - width: 75% !important; + width: 25% !important; left: 0; background: rgba(0, 0, 0, 0.5); /* Optional: adjust the overlay background */ transition: width 0.3s ease-in-out; From 69b11674993d54a424c7b7587519aeb8b123db68 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 00:52:26 -0700 Subject: [PATCH 287/407] Update styles.css --- styles.css | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/styles.css b/styles.css index 61c7e90..7ca8488 100644 --- a/styles.css +++ b/styles.css @@ -431,23 +431,28 @@ section { } /* Snipcart Customization */ -.snipcart-checkout { - right: 0; - width: 25% !important; - max-width: 200px !important; /* Adjust the max-width as needed */ - transition: width 0.3s ease-in-out; +.snipcart__modal--cart { + width: 25% !important; /* Set the cart width to 25% */ + right: 0 !important; + top: 0 !important; + height: 100% !important; + transform: none !important; + box-shadow: none !important; + max-width: 400px !important; /* Adjust the max-width as needed */ } -/* Adjust the Snipcart overlay to account for the new cart width */ -.snipcart-overlay { - width: 25% !important; - left: 0; - background: rgba(0, 0, 0, 0.5); /* Optional: adjust the overlay background */ - transition: width 0.3s ease-in-out; +.snipcart__modal__close { + display: none !important; /* Hide the close button if needed */ } -/* Adjust the Snipcart cart header and content */ .snipcart-cart-header, .snipcart-cart-content { width: 100% !important; } + +.snipcart-overlay { + width: 75% !important; + left: 0 !important; + background: rgba(0, 0, 0, 0.5) !important; + transition: width 0.3s ease-in-out !important; +} From b3e37cf049ee9e56f704bcf203a574aef3b5c445 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 00:54:01 -0700 Subject: [PATCH 288/407] Update styles.css --- styles.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/styles.css b/styles.css index 7ca8488..53f7c81 100644 --- a/styles.css +++ b/styles.css @@ -438,7 +438,7 @@ section { height: 100% !important; transform: none !important; box-shadow: none !important; - max-width: 400px !important; /* Adjust the max-width as needed */ + max-width: 200px !important; /* Adjust the max-width as needed */ } .snipcart__modal__close { @@ -447,7 +447,7 @@ section { .snipcart-cart-header, .snipcart-cart-content { - width: 100% !important; + width: 25% !important; } .snipcart-overlay { From 2152d3e17ad4f93feda68033586fafe4f1c93237 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 00:56:40 -0700 Subject: [PATCH 289/407] Update styles.css --- styles.css | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/styles.css b/styles.css index 53f7c81..4f89208 100644 --- a/styles.css +++ b/styles.css @@ -431,6 +431,11 @@ section { } /* Snipcart Customization */ +.snipcart-checkout, +.snipcart-cart-header__close { + display: none !important; +} + .snipcart__modal--cart { width: 25% !important; /* Set the cart width to 25% */ right: 0 !important; @@ -438,16 +443,16 @@ section { height: 100% !important; transform: none !important; box-shadow: none !important; - max-width: 200px !important; /* Adjust the max-width as needed */ + max-width: 400px !important; /* Adjust the max-width as needed */ } -.snipcart__modal__close { - display: none !important; /* Hide the close button if needed */ +.snipcart__modal { + max-width: 100% !important; } .snipcart-cart-header, .snipcart-cart-content { - width: 25% !important; + width: 100% !important; } .snipcart-overlay { From e89548409b8a24e11b161237216ac6a7fd9ec2ba Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 00:58:10 -0700 Subject: [PATCH 290/407] Update styles.css --- styles.css | 31 ------------------------------- 1 file changed, 31 deletions(-) diff --git a/styles.css b/styles.css index 4f89208..2da8217 100644 --- a/styles.css +++ b/styles.css @@ -430,34 +430,3 @@ section { background-color: #e43e00; } -/* Snipcart Customization */ -.snipcart-checkout, -.snipcart-cart-header__close { - display: none !important; -} - -.snipcart__modal--cart { - width: 25% !important; /* Set the cart width to 25% */ - right: 0 !important; - top: 0 !important; - height: 100% !important; - transform: none !important; - box-shadow: none !important; - max-width: 400px !important; /* Adjust the max-width as needed */ -} - -.snipcart__modal { - max-width: 100% !important; -} - -.snipcart-cart-header, -.snipcart-cart-content { - width: 100% !important; -} - -.snipcart-overlay { - width: 75% !important; - left: 0 !important; - background: rgba(0, 0, 0, 0.5) !important; - transition: width 0.3s ease-in-out !important; -} From 44d33451277c4a6aa35089a96a77f3154e3d5169 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 00:58:42 -0700 Subject: [PATCH 291/407] Update store.html --- store.html | 1 - 1 file changed, 1 deletion(-) diff --git a/store.html b/store.html index e66fe66..92ed85f 100644 --- a/store.html +++ b/store.html @@ -3,7 +3,6 @@ Store - IMOB Racing - From a4762274bb4f6fc71e658b9be0057d599e0a8e25 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 00:59:45 -0700 Subject: [PATCH 292/407] Update store.html --- store.html | 1 + 1 file changed, 1 insertion(+) diff --git a/store.html b/store.html index 92ed85f..e66fe66 100644 --- a/store.html +++ b/store.html @@ -3,6 +3,7 @@ Store - IMOB Racing + From 225a7aaa13425e1b886d0dc6b82696eb8b199f51 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 01:01:44 -0700 Subject: [PATCH 293/407] Update styles.css --- styles.css | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/styles.css b/styles.css index 2da8217..475e7b3 100644 --- a/styles.css +++ b/styles.css @@ -429,4 +429,35 @@ section { .profile-card .view-profile-button:hover { background-color: #e43e00; } +/* Snipcart Customization */ +.snipcart-checkout, +.snipcart-cart-header__close { + display: none !important; +} + +.snipcart__modal--cart { + width: 25% !important; /* Set the cart width to 25% */ + right: 0 !important; + top: 0 !important; + height: 100% !important; + transform: none !important; + box-shadow: none !important; + max-width: 400px !important; /* Adjust the max-width as needed */ +} + +.snipcart__modal { + max-width: 100% !important; +} + +.snipcart-cart-header, +.snipcart-cart-content { + width: 100% !important; +} + +.snipcart-overlay { + width: 75% !important; + left: 0 !important; + background: rgba(0, 0, 0, 0.5) !important; + transition: width 0.3s ease-in-out !important; +} From 6b398851d2b599dfa68671642504b3ee0cced171 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 01:14:40 -0700 Subject: [PATCH 294/407] Update profile.html --- profile.html | 185 ++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 138 insertions(+), 47 deletions(-) diff --git a/profile.html b/profile.html index 40fb06c..35508d1 100644 --- a/profile.html +++ b/profile.html @@ -2,30 +2,86 @@ - Profile - IMOB Racing + Profile Editor - IMOB Racing + + - + + document.addEventListener('DOMContentLoaded', () => { + CKEDITOR.replace('bioEditor'); + CKEDITOR.replace('customHtmlEditor'); + document.getElementById('toggle-preview').addEventListener('click', togglePreview); + document.getElementById('save-profile').addEventListener('click', saveProfile); + document.getElementById('add-social-media-url').addEventListener('click', () => addSocialMediaUrl()); + document.getElementById('logout').addEventListener('click', logout); + }); + -
    -

    -

    - Profile Image -
    -
    - -
    +

    Profile Editor

    + + +

    + + + + + Profile Image Preview + + +
    +
    + +
    + + + + + From b21a4bae4f21f4bb063394d61f31bf669b0db634 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 01:15:17 -0700 Subject: [PATCH 295/407] Update styles.css --- styles.css | 46 +++++++--------------------------------------- 1 file changed, 7 insertions(+), 39 deletions(-) diff --git a/styles.css b/styles.css index 475e7b3..99d0228 100644 --- a/styles.css +++ b/styles.css @@ -105,13 +105,12 @@ h1, h2, h3, h4, h5, h6 { color: #fff; } -/* Drag Handle Styles */ -.drag-handle { - cursor: move; - padding: 10px; - background-color: #444; - border-radius: 5px; - margin-bottom: 10px; +/* Normalized Image Styles */ +.normalized-image { + max-width: 100%; + height: auto; + display: block; + margin: 10px auto; } /* Header Styles */ @@ -361,6 +360,7 @@ section { right: 1em; } } + .profile-card { background-color: #222; border-radius: 5px; @@ -429,35 +429,3 @@ section { .profile-card .view-profile-button:hover { background-color: #e43e00; } -/* Snipcart Customization */ -.snipcart-checkout, -.snipcart-cart-header__close { - display: none !important; -} - -.snipcart__modal--cart { - width: 25% !important; /* Set the cart width to 25% */ - right: 0 !important; - top: 0 !important; - height: 100% !important; - transform: none !important; - box-shadow: none !important; - max-width: 400px !important; /* Adjust the max-width as needed */ -} - -.snipcart__modal { - max-width: 100% !important; -} - -.snipcart-cart-header, -.snipcart-cart-content { - width: 100% !important; -} - -.snipcart-overlay { - width: 75% !important; - left: 0 !important; - background: rgba(0, 0, 0, 0.5) !important; - transition: width 0.3s ease-in-out !important; -} - From 8b7a9f417b0b0133382d15c79efd53f351cd7901 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 01:20:20 -0700 Subject: [PATCH 296/407] Update prof_editor.html --- prof_editor.html | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/prof_editor.html b/prof_editor.html index 296f8ce..a60afd7 100644 --- a/prof_editor.html +++ b/prof_editor.html @@ -94,6 +94,7 @@ urls.forEach(url => { const img = document.createElement('img'); img.src = url; + img.classList.add('normalized-image'); container.appendChild(img); }); } @@ -133,10 +134,10 @@ const previewContainer = document.getElementById('profile-preview'); previewContainer.innerHTML = `

    ${document.getElementById('username').value}

    - Profile Image + Profile Image
    ${CKEDITOR.instances.bioEditor.getData()}
    - ${Array.from(document.getElementById('vehicle-images').files).map(file => `Vehicle Image`).join('')} + ${Array.from(document.getElementById('vehicle-images').files).map(file => `Vehicle Image`).join('')}
    ${getSocialMediaUrls().map(url => `${url}`).join('
    ')} @@ -187,7 +188,7 @@

    Profile Editor

    - Profile Image Preview + Profile Image Preview
    From 7d35c9f93dcb689495a4c5b164e1b92b72523013 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 01:24:03 -0700 Subject: [PATCH 297/407] Update styles.css --- styles.css | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/styles.css b/styles.css index 99d0228..b2c5a4b 100644 --- a/styles.css +++ b/styles.css @@ -429,3 +429,9 @@ section { .profile-card .view-profile-button:hover { background-color: #e43e00; } +.normalized-image { + max-width: 100%; + height: auto; + object-fit: cover; +} + From ad772a90494965c8534b21189c0f49a91d7bb466 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 01:26:39 -0700 Subject: [PATCH 298/407] Update styles.css --- styles.css | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/styles.css b/styles.css index b2c5a4b..b88a060 100644 --- a/styles.css +++ b/styles.css @@ -434,4 +434,11 @@ section { height: auto; object-fit: cover; } +.thumbnail { + width: 150px; /* Set the width of the thumbnails */ + height: 150px; /* Set the height of the thumbnails */ + object-fit: cover; /* Ensure the images cover the box while maintaining aspect ratio */ + border-radius: 5px; /* Optional: Add rounded corners */ + margin: 5px; /* Add some margin around the thumbnails */ +} From b590ad75a6cbb7666785b2fde72cb19cb517433f Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 01:28:17 -0700 Subject: [PATCH 299/407] Update prof_editor.html --- prof_editor.html | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/prof_editor.html b/prof_editor.html index a60afd7..d30e3cb 100644 --- a/prof_editor.html +++ b/prof_editor.html @@ -94,7 +94,7 @@ urls.forEach(url => { const img = document.createElement('img'); img.src = url; - img.classList.add('normalized-image'); + img.classList.add('thumbnail'); container.appendChild(img); }); } @@ -134,10 +134,10 @@ const previewContainer = document.getElementById('profile-preview'); previewContainer.innerHTML = `

    ${document.getElementById('username').value}

    - Profile Image + Profile Image
    ${CKEDITOR.instances.bioEditor.getData()}
    - ${Array.from(document.getElementById('vehicle-images').files).map(file => `Vehicle Image`).join('')} + ${Array.from(document.getElementById('vehicle-images').files).map(file => `Vehicle Image`).join('')}
    ${getSocialMediaUrls().map(url => `${url}`).join('
    ')} @@ -188,7 +188,7 @@

    Profile Editor

    - Profile Image Preview + Profile Image Preview
    From 2b4bd9880f0f98882ab8d69b4cc4823d38223cb2 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 01:31:25 -0700 Subject: [PATCH 300/407] Update prof_editor.html --- prof_editor.html | 297 +++++++++++++++++++++-------------------------- 1 file changed, 134 insertions(+), 163 deletions(-) diff --git a/prof_editor.html b/prof_editor.html index d30e3cb..db14405 100644 --- a/prof_editor.html +++ b/prof_editor.html @@ -2,7 +2,8 @@ - Profile Editor - IMOB Racing + + Profile Editor @@ -10,196 +11,166 @@ + + + +

    Profile Editor

    + +
    + +
    + +
    + +
    + +
    + + +
    - - - -

    Profile Editor

    - - -

    - - - - - Profile Image Preview - - -
    -
    - - -
    - - - - - From fc6aecfdf4a69ecf3b15312b4094a6b1f73c56f6 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 01:35:31 -0700 Subject: [PATCH 301/407] Update all_profiles.html --- all_profiles.html | 65 ++++++++++++++++++++++++----------------------- 1 file changed, 33 insertions(+), 32 deletions(-) diff --git a/all_profiles.html b/all_profiles.html index d894502..9337d68 100644 --- a/all_profiles.html +++ b/all_profiles.html @@ -2,60 +2,61 @@ - All Profiles - IMOB Racing + All Profiles + + + +

    All Profiles

    +
    - - - -

    All Profiles

    -
    From 229cafb9eed70880a19046289d8af805b6c132f2 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 01:36:08 -0700 Subject: [PATCH 302/407] Update prof_editor.html --- prof_editor.html | 1 + 1 file changed, 1 insertion(+) diff --git a/prof_editor.html b/prof_editor.html index db14405..9aa8212 100644 --- a/prof_editor.html +++ b/prof_editor.html @@ -26,6 +26,7 @@
  • Our Mission
  • Contact
  • All Profiles
  • +
  • Profile
  • Profile
  • From fb2001635b75b7e1cb70adb9a2331d7c85bd87e4 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 01:36:46 -0700 Subject: [PATCH 303/407] Update profile.html --- profile.html | 223 +++++++++++---------------------------------------- 1 file changed, 47 insertions(+), 176 deletions(-) diff --git a/profile.html b/profile.html index 35508d1..5db0ee1 100644 --- a/profile.html +++ b/profile.html @@ -2,204 +2,75 @@ - Profile Editor - IMOB Racing + + Public Profile - - + + + +

    Public Profile

    +
    - - - -

    Profile Editor

    - - -

    - - - - - Profile Image Preview - - -
    -
    - - -
    - - - - - From a4f1ad35f574096ad2d03e78fe711b238997f110 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 01:43:50 -0700 Subject: [PATCH 304/407] Update profile.html --- profile.html | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/profile.html b/profile.html index 5db0ee1..bd35ae2 100644 --- a/profile.html +++ b/profile.html @@ -24,7 +24,7 @@
  • Our Mission
  • Contact
  • All Profiles
  • -
  • Edit Profile
  • +
  • Profile
  • @@ -54,15 +54,15 @@

    Public Profile

    const container = document.getElementById('profile-container'); container.innerHTML = `

    ${data.username}

    - Profile Image -
    ${data.bio}
    + Profile Image +
    ${data.bio || ''}
    - ${data.vehicleImageUrls.map(url => `Vehicle Image`).join('')} + ${(data.vehicleImageUrls || []).map(url => `Vehicle Image`).join('')}
    - ${data.socialMediaUrls.map(url => `${url}`).join('
    ')} + ${(data.socialMediaUrls || []).map(url => `${url}`).join('
    ')}
    -
    ${data.customHtmlContent}
    +
    ${data.customHtmlContent || ''}
    `; } else { document.getElementById('profile-container').innerText = 'Profile not found.'; From 858941a2c0192ff90d7d480f7a2b5d2210e01810 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 01:44:15 -0700 Subject: [PATCH 305/407] Update prof_editor.html --- prof_editor.html | 33 ++++++++------------------------- 1 file changed, 8 insertions(+), 25 deletions(-) diff --git a/prof_editor.html b/prof_editor.html index 9aa8212..f773f34 100644 --- a/prof_editor.html +++ b/prof_editor.html @@ -26,8 +26,8 @@
  • Our Mission
  • Contact
  • All Profiles
  • -
  • Profile
  • Profile
  • +
  • Edit Profile
  • @@ -73,19 +73,7 @@

    Profile Editor

    document.getElementById('username-input').value = profile.username || ''; CKEDITOR.instances.editor.setData(profile.profileContent || ''); document.getElementById('profile-preview').innerHTML = profile.profileContent || 'No profile content'; - // Load profile image - if (profile.profileImageUrl) { - document.getElementById('profile-preview').innerHTML += `Profile Image`; - } - // Load vehicle images - const vehicleContainer = document.getElementById('profile-preview'); - (profile.vehicleImages || []).forEach(url => { - const img = document.createElement('img'); - img.src = url; - img.alt = 'Vehicle Image'; - img.classList.add('thumbnail'); - vehicleContainer.appendChild(img); - }); + updateVehiclePreviews(profile.vehicleImages || []); } else { console.error('No profile data found'); } @@ -139,18 +127,14 @@

    Profile Editor

    } function updatePreview(profile) { - const previewContainer = document.getElementById('profile-preview'); - previewContainer.innerHTML = profile.profileContent || 'No profile content'; - if (profile.profileImageUrl) { - const profileImage = document.createElement('img'); - profileImage.src = profile.profileImageUrl; - profileImage.alt = 'Profile Image'; - profileImage.classList.add('thumbnail'); - previewContainer.appendChild(profileImage); - } + document.getElementById('profile-preview').innerHTML = profile.profileContent || 'No profile content'; + updateVehiclePreviews(profile.vehicleImages || []); + } + + function updateVehiclePreviews(urls) { const vehicleContainer = document.getElementById('vehicle-previews'); vehicleContainer.innerHTML = ''; - (profile.vehicleImages || []).forEach(url => { + urls.forEach(url => { const img = document.createElement('img'); img.src = url; img.alt = 'Vehicle Image'; @@ -165,7 +149,6 @@

    Profile Editor

    preview.style.display = 'block'; updatePreview({ profileContent: CKEDITOR.instances.editor.getData(), - profileImageUrl: URL.createObjectURL(document.getElementById('profile-image-input').files[0]), vehicleImages: Array.from(document.getElementById('vehicle-images-input').files).map(file => URL.createObjectURL(file)) }); } else { From 251c381423dc26c98f4ca0045f086f723f2de88d Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 01:44:41 -0700 Subject: [PATCH 306/407] Update styles.css --- styles.css | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/styles.css b/styles.css index b88a060..456372a 100644 --- a/styles.css +++ b/styles.css @@ -435,10 +435,8 @@ section { object-fit: cover; } .thumbnail { - width: 150px; /* Set the width of the thumbnails */ - height: 150px; /* Set the height of the thumbnails */ - object-fit: cover; /* Ensure the images cover the box while maintaining aspect ratio */ - border-radius: 5px; /* Optional: Add rounded corners */ - margin: 5px; /* Add some margin around the thumbnails */ + width: 100px; + height: 100px; + object-fit: cover; + border-radius: 5px; } - From c11a1c920908287627c3729b84b71734862efe62 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 02:10:12 -0700 Subject: [PATCH 307/407] Update prof_editor.html --- prof_editor.html | 1 + 1 file changed, 1 insertion(+) diff --git a/prof_editor.html b/prof_editor.html index f773f34..1b41b9d 100644 --- a/prof_editor.html +++ b/prof_editor.html @@ -45,6 +45,7 @@

    Profile Editor

    +
    From cc11f47e3e5d64931152e9a643b5555f737eca7b Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 02:23:37 -0700 Subject: [PATCH 309/407] Update profile.html --- profile.html | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/profile.html b/profile.html index bd35ae2..9bd5d08 100644 --- a/profile.html +++ b/profile.html @@ -53,22 +53,23 @@

    Public Profile

    const data = doc.data(); const container = document.getElementById('profile-container'); container.innerHTML = ` -

    ${data.username}

    - Profile Image -
    ${data.bio || ''}
    +

    ${data.username || 'No username provided'}

    + Profile Image +
    ${data.bio || 'No bio provided'}
    ${(data.vehicleImageUrls || []).map(url => `Vehicle Image`).join('')}
    ${(data.socialMediaUrls || []).map(url => `${url}`).join('
    ')}
    -
    ${data.customHtmlContent || ''}
    +
    ${data.customHtmlContent || 'No additional content provided'}
    `; } else { document.getElementById('profile-container').innerText = 'Profile not found.'; } } catch (error) { console.error('Error loading profile: ', error); + document.getElementById('profile-container').innerText = 'Error loading profile.'; } } From 5aeedee04727df6a7f65e695fde63c8874cedb9c Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 02:50:08 -0700 Subject: [PATCH 310/407] Update profile.html --- profile.html | 1 + 1 file changed, 1 insertion(+) diff --git a/profile.html b/profile.html index 9bd5d08..548af35 100644 --- a/profile.html +++ b/profile.html @@ -51,6 +51,7 @@

    Public Profile

    const doc = await db.collection('profiles').doc(userId).get(); if (doc.exists) { const data = doc.data(); + console.log('Profile data:', data); // Debugging line to check profile data const container = document.getElementById('profile-container'); container.innerHTML = `

    ${data.username || 'No username provided'}

    From fd5ed14101a874862f87e6f559bb7ad673b195c5 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 03:30:08 -0700 Subject: [PATCH 311/407] Update profile.html --- profile.html | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/profile.html b/profile.html index 548af35..0ffaa19 100644 --- a/profile.html +++ b/profile.html @@ -58,7 +58,7 @@

    ${data.username || 'No username provided'}

    Profile Image
    ${data.bio || 'No bio provided'}
    - ${(data.vehicleImageUrls || []).map(url => `Vehicle Image`).join('')} + ${renderVehicleImages(data.vehicleImageUrls || [])}
    ${(data.socialMediaUrls || []).map(url => `${url}`).join('
    ')} @@ -73,6 +73,15 @@

    ${data.username || 'No username provided'}

    document.getElementById('profile-container').innerText = 'Error loading profile.'; } } + + function renderVehicleImages(urls) { + if (!Array.isArray(urls)) { + console.error('Vehicle URLs is not an array:', urls); + return 'No vehicle images available.'; + } + + return urls.map(url => `Vehicle Image`).join(''); + } From 4985dd6a8d1accf24657b83e2278be9aa5b7c9bf Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 03:52:36 -0700 Subject: [PATCH 312/407] Update profile.html --- profile.html | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/profile.html b/profile.html index 0ffaa19..548af35 100644 --- a/profile.html +++ b/profile.html @@ -58,7 +58,7 @@

    ${data.username || 'No username provided'}

    Profile Image
    ${data.bio || 'No bio provided'}
    - ${renderVehicleImages(data.vehicleImageUrls || [])} + ${(data.vehicleImageUrls || []).map(url => `Vehicle Image`).join('')}
    ${(data.socialMediaUrls || []).map(url => `${url}`).join('
    ')} @@ -73,15 +73,6 @@

    ${data.username || 'No username provided'}

    document.getElementById('profile-container').innerText = 'Error loading profile.'; } } - - function renderVehicleImages(urls) { - if (!Array.isArray(urls)) { - console.error('Vehicle URLs is not an array:', urls); - return 'No vehicle images available.'; - } - - return urls.map(url => `Vehicle Image`).join(''); - } From 9111d8599adc7fd572b169db6d624e75b2566bd9 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 04:08:54 -0700 Subject: [PATCH 313/407] Update styles.css --- styles.css | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/styles.css b/styles.css index 456372a..bfa64a0 100644 --- a/styles.css +++ b/styles.css @@ -429,14 +429,11 @@ section { .profile-card .view-profile-button:hover { background-color: #e43e00; } -.normalized-image { - max-width: 100%; - height: auto; - object-fit: cover; -} + .thumbnail { width: 100px; height: 100px; object-fit: cover; border-radius: 5px; + margin: 5px; } From 767c5d80ef50f8d8272a0feb480aa1f5280936a0 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 04:15:18 -0700 Subject: [PATCH 314/407] Update profile.html --- profile.html | 41 ++++++++++++++++++++++++++++++++++++----- 1 file changed, 36 insertions(+), 5 deletions(-) diff --git a/profile.html b/profile.html index 548af35..f39d716 100644 --- a/profile.html +++ b/profile.html @@ -8,6 +8,8 @@ + + @@ -29,7 +31,7 @@

    Public Profile

    -
    +
    From d4e842f9c47e77fa99de7519418828b0744d5ae1 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 04:22:23 -0700 Subject: [PATCH 317/407] Update styles.css --- styles.css | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/styles.css b/styles.css index 8d959d9..7aed692 100644 --- a/styles.css +++ b/styles.css @@ -436,6 +436,7 @@ section { object-fit: cover; border-radius: 5px; margin: 5px; + cursor: pointer; } .vehicle-image-container { @@ -443,7 +444,12 @@ section { position: relative; } -.delete-vehicle-image, .delete-social-media-url { +.social-media-url-container { + display: flex; + align-items: center; +} + +.delete-vehicle-image, .delete-social-media-url, .delete-image { position: absolute; top: 5px; right: 5px; @@ -453,3 +459,9 @@ section { border-radius: 50%; cursor: pointer; } + +.editable { + border: 1px dashed #ccc; + padding: 5px; + cursor: text; +} From d2326a072abafe31a4f437b4c8857614308d2555 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 04:26:43 -0700 Subject: [PATCH 318/407] Update profile.html --- profile.html | 1 + 1 file changed, 1 insertion(+) diff --git a/profile.html b/profile.html index 5d37a4b..0a42b31 100644 --- a/profile.html +++ b/profile.html @@ -54,6 +54,7 @@

    Public Profile

    const doc = await db.collection('profiles').doc(userId).get(); if (doc.exists) { const data = doc.data(); + data.vehicleImageUrls = data.vehicleImageUrls || []; // Ensure vehicleImageUrls is initialized const container = document.getElementById('profile-container'); container.innerHTML = `

    ${data.username || 'No username provided'}

    From 622dfcb557eea097f07f750f42b95cb44911e330 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 05:03:30 -0700 Subject: [PATCH 319/407] Update profile.html --- profile.html | 34 ++++++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/profile.html b/profile.html index 0a42b31..8d123f7 100644 --- a/profile.html +++ b/profile.html @@ -54,13 +54,15 @@

    Public Profile

    const doc = await db.collection('profiles').doc(userId).get(); if (doc.exists) { const data = doc.data(); - data.vehicleImageUrls = data.vehicleImageUrls || []; // Ensure vehicleImageUrls is initialized + data.vehicleImageUrls = data.vehicleImageUrls || []; const container = document.getElementById('profile-container'); container.innerHTML = ` -

    ${data.username || 'No username provided'}

    - Profile Image - -
    ${data.bio || 'No bio provided'}
    +

    ${data.username || 'No username provided'}

    +
    + Profile Image + +
    +
    ${data.bio || 'No bio provided'}
    ${(data.vehicleImageUrls || []).map(url => `
    @@ -72,15 +74,14 @@

    ${data.username || 'No username provided'}

    ${(data.socialMediaUrls || []).map(url => ` `).join('
    ')}
    -
    ${data.customHtmlContent || 'No additional content provided'}
    +
    ${data.customHtmlContent || 'No additional content provided'}
    `; - // Initialize SortableJS new Sortable(document.getElementById('vehicle-previews'), { animation: 150, onEnd: async (evt) => { @@ -114,6 +115,23 @@

    ${data.username || 'No username provided'}

    } } + async function saveField(field, value) { + const userId = new URLSearchParams(window.location.search).get('userId'); + const db = firebase.firestore(); + await db.collection('profiles').doc(userId).update({ [field]: value }); + } + + async function saveSocialMediaUrl(oldUrl, newUrl) { + const userId = new URLSearchParams(window.location.search).get('userId'); + const db = firebase.firestore(); + const doc = await db.collection('profiles').doc(userId).get(); + if (doc.exists) { + const data = doc.data(); + const updatedUrls = data.socialMediaUrls.map(url => (url === oldUrl ? newUrl : url)); + await db.collection('profiles').doc(userId).update({ socialMediaUrls: updatedUrls }); + } + } + async function deleteImage(imageField) { const userId = new URLSearchParams(window.location.search).get('userId'); const db = firebase.firestore(); From 7d13a5780955ef9a17de5e9881d486c6cf81e2a6 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 05:17:25 -0700 Subject: [PATCH 320/407] Update prof_editor.html --- prof_editor.html | 61 ++++++++++++++++++++++++------------------------ 1 file changed, 30 insertions(+), 31 deletions(-) diff --git a/prof_editor.html b/prof_editor.html index 57e448c..d5a7108 100644 --- a/prof_editor.html +++ b/prof_editor.html @@ -27,7 +27,6 @@
  • Contact
  • All Profiles
  • Profile
  • -
  • Edit Profile
  • Logout
  • @@ -43,7 +42,6 @@

    Profile Editor



    -
    @@ -75,7 +73,6 @@

    Profile Editor

    document.getElementById('username-input').value = profile.username || ''; CKEDITOR.instances.editor.setData(profile.profileContent || ''); document.getElementById('profile-preview').innerHTML = profile.profileContent || 'No profile content'; - updateVehiclePreviews(profile.vehicleImages || []); } else { console.error('No profile data found'); } @@ -129,41 +126,43 @@

    Profile Editor

    } function updatePreview(profile) { - const profilePreview = document.getElementById('profile-preview'); - if (profilePreview) { - profilePreview.innerHTML = profile.profileContent || 'No profile content'; - } - updateVehiclePreviews(profile.vehicleImages || []); - } - - function updateVehiclePreviews(urls) { + document.getElementById('profile-preview').innerHTML = profile.profileContent || 'No profile content'; const vehicleContainer = document.getElementById('vehicle-previews'); - if (vehicleContainer) { - vehicleContainer.innerHTML = ''; - urls.forEach(url => { - const img = document.createElement('img'); - img.src = url; - img.alt = 'Vehicle Image'; - img.classList.add('thumbnail'); - vehicleContainer.appendChild(img); - }); - } + vehicleContainer.innerHTML = ''; + (profile.vehicleImages || []).forEach(url => { + const img = document.createElement('img'); + img.src = url; + img.alt = 'Vehicle Image'; + img.style.maxWidth = '100px'; + img.style.maxHeight = '100px'; + vehicleContainer.appendChild(img); + }); } function togglePreview() { const preview = document.getElementById('profile-preview'); - if (preview) { - if (preview.style.display === 'none') { - preview.style.display = 'block'; - updatePreview({ - profileContent: CKEDITOR.instances.editor.getData(), - vehicleImages: Array.from(document.getElementById('vehicle-images-input').files).map(file => URL.createObjectURL(file)) - }); - } else { - preview.style.display = 'none'; - } + if (preview.style.display === 'none') { + preview.style.display = 'block'; + updatePreview({ + profileContent: CKEDITOR.instances.editor.getData(), + vehicleImages: Array.from(document.getElementById('vehicle-images-input').files).map(file => URL.createObjectURL(file)) + }); + } else { + preview.style.display = 'none'; } } + + function logout() { + firebase.auth().signOut().then(() => { + window.location.href = 'index.html'; + }).catch((error) => { + console.error('Error signing out: ', error); + }); + } + + document.addEventListener('DOMContentLoaded', () => { + document.getElementById('logout').addEventListener('click', logout); + }); From 3c136523bb658a3d28785583e3ca9be678e8fbc5 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 05:20:16 -0700 Subject: [PATCH 321/407] Update profile.html --- profile.html | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/profile.html b/profile.html index 8d123f7..ed36e86 100644 --- a/profile.html +++ b/profile.html @@ -27,6 +27,7 @@
  • Contact
  • All Profiles
  • Profile
  • +
  • Logout
  • @@ -162,6 +163,18 @@

    ${data loadProfile(userId); } } + + function logout() { + firebase.auth().signOut().then(() => { + window.location.href = 'index.html'; + }).catch((error) => { + console.error('Error signing out: ', error); + }); + } + + document.addEventListener('DOMContentLoaded', () => { + document.getElementById('logout').addEventListener('click', logout); + }); From 72b41284455c8c9ebea8432edbcda787f4f90013 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 17:57:33 -0700 Subject: [PATCH 322/407] Update store.html --- store.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/store.html b/store.html index e66fe66..4dee15c 100644 --- a/store.html +++ b/store.html @@ -34,7 +34,7 @@

    iMOB Racing T-Shirt 1

    data-item-id="1" data-item-name="iMOB Racing T-Shirt 1" data-item-price="20.00" - data-item-url="/" + data-item-url="https://imobracingonline.com/store.html" data-item-description="High quality racing t-shirt.">Add to Cart

    @@ -45,7 +45,7 @@

    iMOB Racing T-Shirt 2

    data-item-id="2" data-item-name="iMOB Racing T-Shirt 2" data-item-price="20.00" - data-item-url="/" + data-item-url="https://imobracingonline.com/store.html" data-item-description="Another stylish racing t-shirt.">Add to Cart
    From 30855a12096af3d8485a06fffa0a86a208990f69 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 18:03:10 -0700 Subject: [PATCH 323/407] Update store.html --- store.html | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/store.html b/store.html index 4dee15c..c6453fc 100644 --- a/store.html +++ b/store.html @@ -34,7 +34,7 @@

    iMOB Racing T-Shirt 1

    data-item-id="1" data-item-name="iMOB Racing T-Shirt 1" data-item-price="20.00" - data-item-url="https://imobracingonline.com/store.html" + data-item-url="https://imobracingonline.com/tshirt1.html" data-item-description="High quality racing t-shirt.">Add to Cart
    @@ -45,7 +45,7 @@

    iMOB Racing T-Shirt 2

    data-item-id="2" data-item-name="iMOB Racing T-Shirt 2" data-item-price="20.00" - data-item-url="https://imobracingonline.com/store.html" + data-item-url="https://imobracingonline.com/tshirt2.html" data-item-description="Another stylish racing t-shirt.">Add to Cart
    @@ -66,5 +66,32 @@

    iMOB Racing T-Shirt 2

    + + From 04038a0487a6bffae1f632f1a70c09c4e21b39c3 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 18:04:31 -0700 Subject: [PATCH 324/407] Create admin.html --- admin.html | 94 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 admin.html diff --git a/admin.html b/admin.html new file mode 100644 index 0000000..0955768 --- /dev/null +++ b/admin.html @@ -0,0 +1,94 @@ + + + + + + Admin - Add Product + + + + + + + + +

    Add New Product

    +
    + +
    + +
    + +
    + +
    + +
    + +
    + + + + From fb08275c2a582ef7e55e7213d05f67be211b6174 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 18:05:55 -0700 Subject: [PATCH 325/407] Update store.html --- store.html | 85 ++++++++++++++++++++++++++---------------------------- 1 file changed, 41 insertions(+), 44 deletions(-) diff --git a/store.html b/store.html index c6453fc..b1a85fa 100644 --- a/store.html +++ b/store.html @@ -5,6 +5,9 @@ Store - IMOB Racing + + +

    Our Store

    -
    -
    - iMOB Racing T-Shirt 1 -

    iMOB Racing T-Shirt 1

    -

    High quality racing t-shirt.

    - -
    -
    - iMOB Racing T-Shirt 2 -

    iMOB Racing T-Shirt 2

    -

    Another stylish racing t-shirt.

    - -
    - -
    +
    @@ -68,30 +47,48 @@

    iMOB Racing T-Shirt 2

    From 36036468a93d9cb6434368e2f6fabf3bbebb4f7a Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 18:13:00 -0700 Subject: [PATCH 326/407] Update index.html --- index.html | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/index.html b/index.html index a8d04d9..817d48d 100644 --- a/index.html +++ b/index.html @@ -31,14 +31,33 @@ } // Check authentication state - firebase.auth().onAuthStateChanged(function(user) { + firebase.auth().onAuthStateChanged(async function(user) { if (user) { + const userId = user.uid; document.getElementById('profile-link').style.display = 'block'; - document.getElementById('profile-link').href = `profile.html`; + document.getElementById('profile-link').href = `profile.html?userId=${userId}`; + + // Check if user is an admin + const userDoc = await firebase.firestore().collection('users').doc(userId).get(); + if (userDoc.exists && userDoc.data().isAdmin) { + document.getElementById('admin-link').style.display = 'block'; + } } else { document.getElementById('profile-link').style.display = 'none'; + document.getElementById('admin-link').style.display = 'none'; } }); + + // Logout function + function logout() { + firebase.auth().signOut().then(() => { + window.location.href = 'index.html'; + }).catch((error) => { + console.error('Error signing out: ', error); + }); + } + + document.getElementById('logout').addEventListener('click', logout); @@ -66,9 +85,6 @@

    Welcome to iMOB Racing

    From 3f5840cb289cb98eac4ee9bdf85a9c938e953275 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 18:15:56 -0700 Subject: [PATCH 327/407] Update profile.html From 1674f7827b6d8cc9f6da2acc1131b0d22e385601 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 18:16:11 -0700 Subject: [PATCH 328/407] Update prof_editor.html --- prof_editor.html | 77 +++++++++++++++++++++++++----------------------- 1 file changed, 40 insertions(+), 37 deletions(-) diff --git a/prof_editor.html b/prof_editor.html index d5a7108..76a6a24 100644 --- a/prof_editor.html +++ b/prof_editor.html @@ -11,42 +11,7 @@ - - - -

    Profile Editor

    - -
    - -
    - -
    - -
    - -
    - - -
    + + + +

    Profile Editor

    + +
    + +
    + +
    + Profile Image Preview
    + +
    + +
    + + +
    From e03deb0f800d072b8044a113053f44bc21ba36f1 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 18:24:58 -0700 Subject: [PATCH 329/407] Update styles.css --- styles.css | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git a/styles.css b/styles.css index 7aed692..22b7f90 100644 --- a/styles.css +++ b/styles.css @@ -465,3 +465,77 @@ section { padding: 5px; cursor: text; } +/* Admin Dashboard Styles */ +.admin-dashboard { + margin: 20px; + padding: 20px; + background-color: #f5f5f5; + border-radius: 10px; +} + +.admin-dashboard label { + display: block; + margin-bottom: 5px; +} + +.admin-dashboard input, +.admin-dashboard textarea { + width: 100%; + padding: 10px; + margin-bottom: 10px; + border: 1px solid #ccc; + border-radius: 5px; +} + +.admin-dashboard button { + padding: 10px 20px; + background-color: #28a745; + color: white; + border: none; + border-radius: 5px; + cursor: pointer; +} + +.admin-dashboard button:hover { + background-color: #218838; +} + +.store-item { + margin: 10px 0; + padding: 10px; + border: 1px solid #ccc; + border-radius: 5px; + background-color: white; + display: flex; + align-items: center; + justify-content: space-between; +} + +.store-item img { + width: 50px; + height: 50px; + object-fit: cover; + border-radius: 5px; +} + +.store-item h3 { + margin: 0; + font-size: 1.2em; +} + +.store-item p { + margin: 5px 0; +} + +.store-item button { + padding: 5px 10px; + background-color: #dc3545; + color: white; + border: none; + border-radius: 5px; + cursor: pointer; +} + +.store-item button:hover { + background-color: #c82333; +} From 3de45d87fabbf46ad70592d31b5c8cea211c0d37 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 18:26:42 -0700 Subject: [PATCH 330/407] Update admin.html --- admin.html | 140 +++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 98 insertions(+), 42 deletions(-) diff --git a/admin.html b/admin.html index 0955768..c2eb2b0 100644 --- a/admin.html +++ b/admin.html @@ -3,16 +3,20 @@ - Admin - Add Product + Admin Dashboard + -

    Add New Product

    -
    - -
    - -
    - -
    - -
    - -
    - -
    + +

    Admin Dashboard

    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    + + +

    Items

    +
    From 66856c7fbd2d2092f323245859e460a0a22124bf Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 18:40:39 -0700 Subject: [PATCH 331/407] Update store.html --- store.html | 53 ++++++++++++++++++++++++++--------------------------- 1 file changed, 26 insertions(+), 27 deletions(-) diff --git a/store.html b/store.html index b1a85fa..b9c9581 100644 --- a/store.html +++ b/store.html @@ -28,7 +28,7 @@

    Our Store

    -
    +
    @@ -42,53 +42,52 @@

    Our Store

    Contact: info@imobracingonline.com | Phone: (530) 420-5850

    - - - - + + + + From 827a01bb8086533ab4ea90c529ddbf59cc1caf86 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 18:41:30 -0700 Subject: [PATCH 332/407] Update admin.html --- admin.html | 1 + 1 file changed, 1 insertion(+) diff --git a/admin.html b/admin.html index c2eb2b0..b33ebfa 100644 --- a/admin.html +++ b/admin.html @@ -55,6 +55,7 @@

    Items

    - + From 95593d9a524eae8421a02dcf11f2e4618ff2901a Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 18:46:53 -0700 Subject: [PATCH 334/407] Update store.html --- store.html | 59 +++++++++++++++++++++++++----------------------------- 1 file changed, 27 insertions(+), 32 deletions(-) diff --git a/store.html b/store.html index 87b7346..3d640b8 100644 --- a/store.html +++ b/store.html @@ -28,7 +28,9 @@

    Our Store

    -
    +
    + +
    @@ -42,52 +44,45 @@

    Our Store

    Contact: info@imobracingonline.com | Phone: (530) 420-5850

    + + + + - - - - From 5ec7f4e14537e80d895e6b1deddc899169e6fac2 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 18:49:07 -0700 Subject: [PATCH 335/407] Update store.html --- store.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/store.html b/store.html index 3d640b8..b574cfd 100644 --- a/store.html +++ b/store.html @@ -46,7 +46,7 @@

    Our Store

    - + + + From 792aa66f7f595cdcc14d2586073994b58337900b Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 18:56:33 -0700 Subject: [PATCH 337/407] Update store.html --- store.html | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/store.html b/store.html index 1a2a2f6..d358cd7 100644 --- a/store.html +++ b/store.html @@ -57,12 +57,15 @@

    Our Store

    async function loadProducts() { try { + console.log('Loading products from Firestore...'); const productsSnapshot = await db.collection('products').get(); + console.log('Products snapshot:', productsSnapshot); const storeGrid = document.getElementById('store-grid'); storeGrid.innerHTML = ''; if (!productsSnapshot.empty) { productsSnapshot.forEach((doc) => { const product = doc.data(); + console.log('Product data:', product); storeGrid.innerHTML += `
    ${product.name} @@ -91,4 +94,4 @@

    ${product.name}

    - + From dd8967e91a362d0cd01ea2f08703fe9edeff53c6 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 18:58:34 -0700 Subject: [PATCH 338/407] Update store.html --- store.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/store.html b/store.html index d358cd7..b4081f4 100644 --- a/store.html +++ b/store.html @@ -60,12 +60,15 @@

    Our Store

    console.log('Loading products from Firestore...'); const productsSnapshot = await db.collection('products').get(); console.log('Products snapshot:', productsSnapshot); + const storeGrid = document.getElementById('store-grid'); storeGrid.innerHTML = ''; + if (!productsSnapshot.empty) { productsSnapshot.forEach((doc) => { const product = doc.data(); console.log('Product data:', product); + storeGrid.innerHTML += `
    ${product.name} @@ -94,4 +97,3 @@

    ${product.name}

    - From 89f351b79ac8d4c39aeeed2447561fa88e197d7d Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 19:02:07 -0700 Subject: [PATCH 339/407] Update store.html --- store.html | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/store.html b/store.html index b4081f4..afceddb 100644 --- a/store.html +++ b/store.html @@ -46,7 +46,7 @@

    Our Store

    - + - From 9540bae0114d13b07b3aa08963bac4f1e25dd110 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 19:06:34 -0700 Subject: [PATCH 340/407] Update config.js --- config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config.js b/config.js index 5465b0f..3bbc832 100644 --- a/config.js +++ b/config.js @@ -17,4 +17,4 @@ const CONFIG = { }, GOOGLE_CLIENT_ID: '580908835958-labitokmi7ivmvm0ha1muth5a45smnni.apps.googleusercontent.com', SNIPCART_API_KEY: 'NDFkZGNlNDktMjE2YS00MmUyLTk4ZmYtMjY5YWE2OWYwOTI2NjM4NTQxODI3NjYwMTI3MDQ5' -}; + SNIPCART_SECRET_KEY: "ST_ZWIwYzA1ZDgtNzEwNS00YTc5LTk4YjUtMzQ2YmQyOGUxODhiNjM4NTQ0NDU5MzE2NzIyODc3" From 0db118ebbf0adf721475d4c68b54ce5ac8eb7e58 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 19:09:01 -0700 Subject: [PATCH 341/407] Update admin.html --- admin.html | 207 ++++++++++++++++++++++++++++------------------------- 1 file changed, 108 insertions(+), 99 deletions(-) diff --git a/admin.html b/admin.html index b33ebfa..13a6999 100644 --- a/admin.html +++ b/admin.html @@ -2,8 +2,7 @@ - - Admin Dashboard + Admin - iMOB Racing Store @@ -14,9 +13,6 @@ - -

    Admin Dashboard

    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    - - -

    Items

    -
    +
    +

    Admin Panel

    +
    +
    +
    +
    +
    + +
    +
    +
    From 132aa8e0dd02eae809ad2e77fc94020c2a7357b5 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 19:13:07 -0700 Subject: [PATCH 342/407] Update config.js --- config.js | 1 + 1 file changed, 1 insertion(+) diff --git a/config.js b/config.js index 3bbc832..18326c5 100644 --- a/config.js +++ b/config.js @@ -18,3 +18,4 @@ const CONFIG = { GOOGLE_CLIENT_ID: '580908835958-labitokmi7ivmvm0ha1muth5a45smnni.apps.googleusercontent.com', SNIPCART_API_KEY: 'NDFkZGNlNDktMjE2YS00MmUyLTk4ZmYtMjY5YWE2OWYwOTI2NjM4NTQxODI3NjYwMTI3MDQ5' SNIPCART_SECRET_KEY: "ST_ZWIwYzA1ZDgtNzEwNS00YTc5LTk4YjUtMzQ2YmQyOGUxODhiNjM4NTQ0NDU5MzE2NzIyODc3" +}; From 0477ea45ef78e72412859e87fa0646b3343ca055 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 19:15:32 -0700 Subject: [PATCH 343/407] Update admin.html --- admin.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/admin.html b/admin.html index 13a6999..66021b1 100644 --- a/admin.html +++ b/admin.html @@ -4,11 +4,11 @@ Admin - iMOB Racing Store + -
    - document.getElementById('logout').addEventListener('click', logout); - From e21ab35ce562ea02443d2d5a3c40599ac8a5e120 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 19:58:53 -0700 Subject: [PATCH 348/407] Update store.html --- store.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/store.html b/store.html index cda665c..4a1308a 100644 --- a/store.html +++ b/store.html @@ -46,7 +46,7 @@

    Our Store

    - + - + - + - + loadProducts(); + }); + From fb7062a5cc26a8aa77040cc16d0a1ed4dbfba88e Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 20:25:11 -0700 Subject: [PATCH 352/407] Update store.html --- store.html | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/store.html b/store.html index f1070c2..d1c6940 100644 --- a/store.html +++ b/store.html @@ -61,23 +61,44 @@

    Our Store

    async function loadProducts() { try { const productsSnapshot = await db.collection('store-items').get(); - const productList = document.getElementById('store-grid'); - productList.innerHTML = ''; + const storeGrid = document.getElementById('store-grid'); + storeGrid.innerHTML = ''; productsSnapshot.forEach((doc) => { const product = doc.data(); - productList.innerHTML += ` + const productId = doc.id; + storeGrid.innerHTML += `
    ${product.name}

    ${product.name}

    ${product.description}

    + `; }); } catch (error) { From db1730c6bcfbb4b297cc1b6f0fc76fcd1e2f7020 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 20:28:50 -0700 Subject: [PATCH 353/407] Update admin.html --- admin.html | 220 ++++++++++++++++++++++++++++------------------------- 1 file changed, 115 insertions(+), 105 deletions(-) diff --git a/admin.html b/admin.html index f6f7823..82a35fa 100644 --- a/admin.html +++ b/admin.html @@ -40,122 +40,132 @@

    Admin Panel

    + document.getElementById('logout').addEventListener('click', logout); + From e48c055041000f03c5566cf3a0c812747c568ae9 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 20:58:59 -0700 Subject: [PATCH 354/407] Update admin.html --- admin.html | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/admin.html b/admin.html index 82a35fa..37e7719 100644 --- a/admin.html +++ b/admin.html @@ -52,7 +52,7 @@

    Admin Panel

    const name = document.getElementById('product-name').value; const description = document.getElementById('product-description').value; - const price = document.getElementById('product-price').value; + const price = parseFloat(document.getElementById('product-price').value); // Ensure price is a float const imageFile = document.getElementById('product-image').files[0]; try { @@ -96,7 +96,8 @@

    Admin Panel

    }); if (!response.ok) { - throw new Error(`Snipcart API responded with ${response.status}: ${response.statusText}`); + const errorText = await response.text(); + throw new Error(`Snipcart API responded with ${response.status}: ${response.statusText} - ${errorText}`); } const data = await response.json(); @@ -143,7 +144,8 @@

    ${product.name}

    }); if (!response.ok) { - throw new Error(`Snipcart API responded with ${response.status}: ${response.statusText}`); + const errorText = await response.text(); + throw new Error(`Snipcart API responded with ${response.status}: ${response.statusText} - ${errorText}`); } alert('Product deleted successfully'); From 2eef0ddb32939a703015402e484b36df95d32e81 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 21:26:19 -0700 Subject: [PATCH 355/407] Update admin.html --- admin.html | 1 - 1 file changed, 1 deletion(-) diff --git a/admin.html b/admin.html index 37e7719..129fe16 100644 --- a/admin.html +++ b/admin.html @@ -168,6 +168,5 @@

    ${product.name}

    document.getElementById('logout').addEventListener('click', logout); - From 29a605d47fca3d0cc8a26f7969a7a1ddf7cfe982 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 21:30:18 -0700 Subject: [PATCH 356/407] Update admin.html --- admin.html | 228 ++++++++++++++++++++++++++--------------------------- 1 file changed, 114 insertions(+), 114 deletions(-) diff --git a/admin.html b/admin.html index 129fe16..8ff254a 100644 --- a/admin.html +++ b/admin.html @@ -40,133 +40,133 @@

    Admin Panel

    - document.getElementById('logout').addEventListener('click', logout); - From 8caac5f8fb12bb4e22e70ebd7636a18e46e79a49 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 21:33:37 -0700 Subject: [PATCH 357/407] Update admin.html --- admin.html | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/admin.html b/admin.html index 8ff254a..95aa14d 100644 --- a/admin.html +++ b/admin.html @@ -95,12 +95,20 @@

    Admin Panel

    }) }); + const text = await response.text(); // get raw response text + console.log('Snipcart sync raw response:', text); + if (!response.ok) { - const errorData = await response.json(); + let errorData = {}; + try { + errorData = JSON.parse(text); // try to parse JSON + } catch (e) { + errorData = { error: 'Invalid JSON response from Snipcart API' }; + } throw new Error(`Snipcart API responded with ${response.status}: ${errorData.error}`); } - const data = await response.json(); + const data = JSON.parse(text); // parse the response text to JSON if no error console.log('Snipcart sync response:', data); } catch (error) { console.error('Error syncing with Snipcart: ', error); @@ -142,8 +150,16 @@

    ${product.name}

    } }); + const text = await response.text(); // get raw response text + console.log('Snipcart delete raw response:', text); + if (!response.ok) { - const errorData = await response.json(); + let errorData = {}; + try { + errorData = JSON.parse(text); // try to parse JSON + } catch (e) { + errorData = { error: 'Invalid JSON response from Snipcart API' }; + } throw new Error(`Snipcart API responded with ${response.status}: ${errorData.error}`); } From 3f40f853e420feb1c23786764ee87457b4d1dddf Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 21:37:02 -0700 Subject: [PATCH 358/407] Update admin.html --- admin.html | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/admin.html b/admin.html index 95aa14d..34b5d03 100644 --- a/admin.html +++ b/admin.html @@ -108,8 +108,12 @@

    Admin Panel

    throw new Error(`Snipcart API responded with ${response.status}: ${errorData.error}`); } - const data = JSON.parse(text); // parse the response text to JSON if no error - console.log('Snipcart sync response:', data); + if (text) { + const data = JSON.parse(text); // parse the response text to JSON if no error + console.log('Snipcart sync response:', data); + } else { + console.warn('Snipcart sync response is empty.'); + } } catch (error) { console.error('Error syncing with Snipcart: ', error); } @@ -163,6 +167,13 @@

    ${product.name}

    throw new Error(`Snipcart API responded with ${response.status}: ${errorData.error}`); } + if (text) { + const data = JSON.parse(text); // parse the response text to JSON if no error + console.log('Snipcart delete response:', data); + } else { + console.warn('Snipcart delete response is empty.'); + } + alert('Product deleted successfully'); loadProducts(); } catch (error) { From 2b1e0d1f3dfc40a46be103484115441632663c3f Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 21:41:07 -0700 Subject: [PATCH 359/407] Update admin.html --- admin.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/admin.html b/admin.html index 34b5d03..9107b3a 100644 --- a/admin.html +++ b/admin.html @@ -52,7 +52,7 @@

    Admin Panel

    const name = document.getElementById('product-name').value; const description = document.getElementById('product-description').value; - const price = document.getElementById('product-price').value; + const price = parseFloat(document.getElementById('product-price').value); const imageFile = document.getElementById('product-image').files[0]; try { @@ -132,7 +132,7 @@

    Admin Panel

    ${product.name}

    ${product.name}

    ${product.description}

    -

    $${product.price}

    +

    $${product.price.toFixed(2)}

    `; From 23d2332fef1092afabcafcd2d3b4e9565d0c9eeb Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 21:45:30 -0700 Subject: [PATCH 360/407] Update admin.html --- admin.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/admin.html b/admin.html index 9107b3a..e083ee1 100644 --- a/admin.html +++ b/admin.html @@ -132,7 +132,7 @@

    Admin Panel

    ${product.name}

    ${product.name}

    ${product.description}

    -

    $${product.price.toFixed(2)}

    +

    $${parseFloat(product.price).toFixed(2)}

    `; From ba3fcc931bc16f6be378397d7bb560080a98e1c7 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 21:50:32 -0700 Subject: [PATCH 361/407] Update store.html --- store.html | 93 ++++++++++++++++++++---------------------------------- 1 file changed, 35 insertions(+), 58 deletions(-) diff --git a/store.html b/store.html index d1c6940..94926b3 100644 --- a/store.html +++ b/store.html @@ -46,68 +46,45 @@

    Our Store

    - + - - `; - }); - } catch (error) { - console.error('Error loading products: ', error); - } + productsSnapshot.forEach((doc) => { + const product = doc.data(); + storeGrid.innerHTML += ` +
    + ${product.name} +

    ${product.name}

    +

    ${product.description}

    + +
    + `; + }); + } catch (error) { + console.error('Error loading products: ', error); } + } - loadProducts(); - }); - + loadProducts(); + }); + From 6650b2c80897ab1c93950f295991c632c4a03ab0 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 22:03:27 -0700 Subject: [PATCH 362/407] Update admin.html --- admin.html | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/admin.html b/admin.html index e083ee1..165274d 100644 --- a/admin.html +++ b/admin.html @@ -79,20 +79,23 @@

    Admin Panel

    async function syncWithSnipcart(id, name, description, price, imageUrl) { try { + const payload = { + id, + name, + url: 'https://imobracingonline.com/', // URL to the store or product + price, + description, + image: imageUrl + }; + console.log('Payload to Snipcart:', payload); + const response = await fetch('https://app.snipcart.com/api/products', { method: 'POST', headers: { 'Authorization': `Basic ${btoa(CONFIG.SNIPCART_SECRET_KEY + ':')}`, 'Content-Type': 'application/json' }, - body: JSON.stringify({ - id, - name, - url: 'https://imobracingonline.com/', // URL to the store or product - price, - description, - image: imageUrl - }) + body: JSON.stringify(payload) }); const text = await response.text(); // get raw response text @@ -116,6 +119,7 @@

    Admin Panel

    } } catch (error) { console.error('Error syncing with Snipcart: ', error); + alert('Error syncing with Snipcart: ' + error.message); } } From c98e6ba09f81187ad76b064522601026908152ec Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 23:31:44 -0700 Subject: [PATCH 363/407] Update admin.html --- admin.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/admin.html b/admin.html index 165274d..ad72347 100644 --- a/admin.html +++ b/admin.html @@ -87,7 +87,7 @@

    Admin Panel

    description, image: imageUrl }; - console.log('Payload to Snipcart:', payload); + console.log('Payload to Snipcart:', JSON.stringify(payload)); const response = await fetch('https://app.snipcart.com/api/products', { method: 'POST', From 8b396e820d8ca64d437bde6506b7206163d57f30 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 23:33:17 -0700 Subject: [PATCH 364/407] Update store.html --- store.html | 80 ++++++++++++++++++++++++++++++------------------------ 1 file changed, 45 insertions(+), 35 deletions(-) diff --git a/store.html b/store.html index 94926b3..263948d 100644 --- a/store.html +++ b/store.html @@ -46,45 +46,55 @@

    Our Store

    - + - + loadProducts(); + }); + From d750aa705460163698d1d4e3dc9f457232a48b37 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 23:36:03 -0700 Subject: [PATCH 365/407] Update admin.html --- admin.html | 40 +++++----------------------------------- 1 file changed, 5 insertions(+), 35 deletions(-) diff --git a/admin.html b/admin.html index ad72347..12091ef 100644 --- a/admin.html +++ b/admin.html @@ -98,28 +98,14 @@

    Admin Panel

    body: JSON.stringify(payload) }); - const text = await response.text(); // get raw response text - console.log('Snipcart sync raw response:', text); - + const data = await response.json(); + console.log('Snipcart sync raw response:', response); if (!response.ok) { - let errorData = {}; - try { - errorData = JSON.parse(text); // try to parse JSON - } catch (e) { - errorData = { error: 'Invalid JSON response from Snipcart API' }; - } - throw new Error(`Snipcart API responded with ${response.status}: ${errorData.error}`); - } - - if (text) { - const data = JSON.parse(text); // parse the response text to JSON if no error - console.log('Snipcart sync response:', data); - } else { - console.warn('Snipcart sync response is empty.'); + throw new Error(`Snipcart API responded with ${response.status}: ${response.statusText}`); } + console.log('Snipcart sync response:', data); } catch (error) { console.error('Error syncing with Snipcart: ', error); - alert('Error syncing with Snipcart: ' + error.message); } } @@ -158,24 +144,8 @@

    ${product.name}

    } }); - const text = await response.text(); // get raw response text - console.log('Snipcart delete raw response:', text); - if (!response.ok) { - let errorData = {}; - try { - errorData = JSON.parse(text); // try to parse JSON - } catch (e) { - errorData = { error: 'Invalid JSON response from Snipcart API' }; - } - throw new Error(`Snipcart API responded with ${response.status}: ${errorData.error}`); - } - - if (text) { - const data = JSON.parse(text); // parse the response text to JSON if no error - console.log('Snipcart delete response:', data); - } else { - console.warn('Snipcart delete response is empty.'); + throw new Error(`Snipcart API responded with ${response.status}: ${response.statusText}`); } alert('Product deleted successfully'); From 93cb92b5ba3c76e4c0e5970787806d1206ac69fb Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 23:37:54 -0700 Subject: [PATCH 366/407] Update store.html --- store.html | 81 +++++++++++++++++++++++++----------------------------- 1 file changed, 37 insertions(+), 44 deletions(-) diff --git a/store.html b/store.html index 263948d..e5868b8 100644 --- a/store.html +++ b/store.html @@ -48,53 +48,46 @@

    Our Store

    - + loadProducts(); + }); + From 58afdbc9aff7f95d5f49db2350524b7d5719e13b Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 23:40:22 -0700 Subject: [PATCH 367/407] Update admin.html --- admin.html | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/admin.html b/admin.html index 12091ef..77aca43 100644 --- a/admin.html +++ b/admin.html @@ -78,17 +78,18 @@

    Admin Panel

    }); async function syncWithSnipcart(id, name, description, price, imageUrl) { - try { - const payload = { - id, - name, - url: 'https://imobracingonline.com/', // URL to the store or product - price, - description, - image: imageUrl - }; - console.log('Payload to Snipcart:', JSON.stringify(payload)); + const payload = { + id, + name, + url: 'https://imobracingonline.com/', + price, + description, + image: imageUrl + }; + + console.log('Payload to Snipcart:', JSON.stringify(payload)); + try { const response = await fetch('https://app.snipcart.com/api/products', { method: 'POST', headers: { @@ -99,13 +100,16 @@

    Admin Panel

    }); const data = await response.json(); - console.log('Snipcart sync raw response:', response); + console.log('Snipcart sync raw response:', data); + if (!response.ok) { - throw new Error(`Snipcart API responded with ${response.status}: ${response.statusText}`); + throw new Error(`Snipcart API responded with ${response.status}: ${data}`); } - console.log('Snipcart sync response:', data); + + return data; } catch (error) { console.error('Error syncing with Snipcart: ', error); + throw error; } } @@ -137,17 +141,13 @@

    ${product.name}

    await db.collection('store-items').doc(productId).delete(); // Synchronize deletion with Snipcart - const response = await fetch(`https://app.snipcart.com/api/products/${productId}`, { + await fetch(`https://app.snipcart.com/api/products/${productId}`, { method: 'DELETE', headers: { 'Authorization': `Basic ${btoa(CONFIG.SNIPCART_SECRET_KEY + ':')}` } }); - if (!response.ok) { - throw new Error(`Snipcart API responded with ${response.status}: ${response.statusText}`); - } - alert('Product deleted successfully'); loadProducts(); } catch (error) { From d1ec95d43a5b8e617483743f514b4ce417428a4f Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 23:46:01 -0700 Subject: [PATCH 368/407] Update admin.html --- admin.html | 222 ++++++++++++++++++++++++++--------------------------- 1 file changed, 108 insertions(+), 114 deletions(-) diff --git a/admin.html b/admin.html index 77aca43..51f6b76 100644 --- a/admin.html +++ b/admin.html @@ -4,7 +4,7 @@ Admin - iMOB Racing Store - + @@ -40,134 +40,128 @@

    Admin Panel

    + function logout() { + firebase.auth().signOut().then(() => { + window.location.href = 'index.html'; + }).catch((error) => { + console.error('Error signing out: ', error); + }); + } + document.getElementById('logout').addEventListener('click', logout); + From adddc591f4c6d8923eb6e515c2aa56f6b3264924 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 23:54:51 -0700 Subject: [PATCH 369/407] Update admin.html --- admin.html | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/admin.html b/admin.html index 51f6b76..fab8a30 100644 --- a/admin.html +++ b/admin.html @@ -77,14 +77,14 @@

    Admin Panel

    }); async function syncWithSnipcart(id, name, description, price, imageUrl) { - const payload = JSON.stringify({ + const payload = { id, name, url: 'https://imobracingonline.com/', // URL to the store or product price, description, image: imageUrl - }); + }; console.log('Payload to Snipcart:', payload); @@ -95,15 +95,19 @@

    Admin Panel

    'Authorization': `Basic ${btoa(CONFIG.SNIPCART_SECRET_KEY + ':')}`, 'Content-Type': 'application/json' }, - body: payload + body: JSON.stringify(payload) }); - const data = await response.json(); - console.log('Snipcart sync response:', data); + const text = await response.text(); + console.log('Snipcart sync raw response:', text); if (!response.ok) { - throw new Error(`Snipcart API responded with ${response.status}: ${data.errors || 'Invalid JSON response from Snipcart API'}`); + throw new Error(`Snipcart API responded with ${response.status}: ${text}`); } + + const data = JSON.parse(text); + console.log('Snipcart sync response:', data); + } catch (error) { console.error('Error syncing with Snipcart: ', error); throw error; From 64ea1dfb94b7d35812eb629d27a62023f10aa369 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 23:55:11 -0700 Subject: [PATCH 370/407] Update config.js --- config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config.js b/config.js index f9b4218..e700e48 100644 --- a/config.js +++ b/config.js @@ -17,5 +17,5 @@ const CONFIG = { }, GOOGLE_CLIENT_ID: '580908835958-labitokmi7ivmvm0ha1muth5a45smnni.apps.googleusercontent.com', SNIPCART_API_KEY: 'NDFkZGNlNDktMjE2YS00MmUyLTk4ZmYtMjY5YWE2OWYwOTI2NjM4NTQxODI3NjYwMTI3MDQ5', - SNIPCART_SECRET_KEY: 'ST_ZWIwYzA1ZDgtNzEwNS00YTc5LTk4YjUtMzQ2YmQyOGUxODhiNjM4NTQ0NDU5MzE2NzIyODc3', + SNIPCART_SECRET_KEY: "ST_ZWIwYzA1ZDgtNzEwNS00YTc5LTk4YjUtMzQ2YmQyOGUxODhiNjM4NTQ0NDU5MzE2NzIyODc3", }; From 7798942375746359035c6fd1867b04d41df01180 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Wed, 19 Jun 2024 23:56:55 -0700 Subject: [PATCH 371/407] Update config.js --- config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config.js b/config.js index e700e48..f9b4218 100644 --- a/config.js +++ b/config.js @@ -17,5 +17,5 @@ const CONFIG = { }, GOOGLE_CLIENT_ID: '580908835958-labitokmi7ivmvm0ha1muth5a45smnni.apps.googleusercontent.com', SNIPCART_API_KEY: 'NDFkZGNlNDktMjE2YS00MmUyLTk4ZmYtMjY5YWE2OWYwOTI2NjM4NTQxODI3NjYwMTI3MDQ5', - SNIPCART_SECRET_KEY: "ST_ZWIwYzA1ZDgtNzEwNS00YTc5LTk4YjUtMzQ2YmQyOGUxODhiNjM4NTQ0NDU5MzE2NzIyODc3", + SNIPCART_SECRET_KEY: 'ST_ZWIwYzA1ZDgtNzEwNS00YTc5LTk4YjUtMzQ2YmQyOGUxODhiNjM4NTQ0NDU5MzE2NzIyODc3', }; From 5161e5c09bde8ec361d96af15bcc12eb42000557 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Thu, 20 Jun 2024 00:56:51 -0700 Subject: [PATCH 372/407] Update admin.html --- admin.html | 220 ++++++++++++++++++++++++++--------------------------- 1 file changed, 110 insertions(+), 110 deletions(-) diff --git a/admin.html b/admin.html index fab8a30..8189342 100644 --- a/admin.html +++ b/admin.html @@ -4,7 +4,7 @@ Admin - iMOB Racing Store - + @@ -40,132 +40,132 @@

    Admin Panel

    - document.getElementById('logout').addEventListener('click', logout); - From 7b655297001fe15da1f736bb18385fe15c0997cd Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Thu, 20 Jun 2024 01:01:09 -0700 Subject: [PATCH 373/407] Update admin.html --- admin.html | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/admin.html b/admin.html index 8189342..d0da8fa 100644 --- a/admin.html +++ b/admin.html @@ -78,6 +78,17 @@

    Admin Panel

    }); async function syncWithSnipcart(id, name, description, price, imageUrl) { + const payload = { + id, + name, + url: 'https://imobracingonline.com/', // URL to the store or product + price, + description, + image: imageUrl + }; + + console.log('Payload to Snipcart:', JSON.stringify(payload)); + try { const response = await fetch('https://app.snipcart.com/api/products', { method: 'POST', @@ -85,23 +96,16 @@

    Admin Panel

    'Authorization': `Basic ${btoa(CONFIG.SNIPCART_SECRET_KEY + ':')}`, 'Content-Type': 'application/json' }, - body: JSON.stringify({ - id, - name, - url: 'https://imobracingonline.com/', // URL to the store or product - price, - description, - image: imageUrl - }) + body: JSON.stringify(payload) }); const data = await response.json(); - console.log('Snipcart sync response:', data); + console.log('Snipcart sync raw response:', data); if (!response.ok) { throw new Error(`Snipcart API responded with ${response.status}: ${data}`); } } catch (error) { - console.error('Error syncing with Snipcart: ', error); + console.error('Error syncing with Snipcart:', error); throw error; } } From 13aa4894e1a62aa1d5bc168b55066be349244ae1 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Thu, 20 Jun 2024 01:16:04 -0700 Subject: [PATCH 374/407] Update admin.html --- admin.html | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/admin.html b/admin.html index d0da8fa..78bb660 100644 --- a/admin.html +++ b/admin.html @@ -46,6 +46,7 @@

    Admin Panel

    const db = firebase.firestore(); const storage = firebase.storage(); + const SNIPCART_SECRET_KEY = 'ST_ZWIwYzA1ZDgtNzEwNS00YTc5LTk4YjUtMzQ2YmQyOGUxODhiNjM4NTQ0NDU5MzE2NzIyODc3'; document.getElementById('add-product-form').addEventListener('submit', async (e) => { e.preventDefault(); @@ -93,13 +94,13 @@

    Admin Panel

    const response = await fetch('https://app.snipcart.com/api/products', { method: 'POST', headers: { - 'Authorization': `Basic ${btoa(CONFIG.SNIPCART_SECRET_KEY + ':')}`, + 'Authorization': `Basic ${btoa(SNIPCART_SECRET_KEY + ':')}`, 'Content-Type': 'application/json' }, body: JSON.stringify(payload) }); - const data = await response.json(); + const data = await response.text(); // Use response.text() to capture raw response console.log('Snipcart sync raw response:', data); if (!response.ok) { throw new Error(`Snipcart API responded with ${response.status}: ${data}`); @@ -141,11 +142,12 @@

    ${product.name}

    const response = await fetch(`https://app.snipcart.com/api/products/${productId}`, { method: 'DELETE', headers: { - 'Authorization': `Basic ${btoa(CONFIG.SNIPCART_SECRET_KEY + ':')}` + 'Authorization': `Basic ${btoa(SNIPCART_SECRET_KEY + ':')}` } }); - const data = await response.json(); + const data = await response.text(); // Use response.text() to capture raw response + console.log('Snipcart delete raw response:', data); if (!response.ok) { throw new Error(`Snipcart API responded with ${response.status}: ${data}`); } From 21d8613e68d0f44945f048f72c73f85434af7b3f Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Thu, 20 Jun 2024 01:23:45 -0700 Subject: [PATCH 375/407] Update admin.html --- admin.html | 3 +++ 1 file changed, 3 insertions(+) diff --git a/admin.html b/admin.html index 78bb660..22dfb9c 100644 --- a/admin.html +++ b/admin.html @@ -105,6 +105,9 @@

    Admin Panel

    if (!response.ok) { throw new Error(`Snipcart API responded with ${response.status}: ${data}`); } + // Ensure JSON is parsed correctly + const jsonData = JSON.parse(data); + console.log('Snipcart sync parsed response:', jsonData); } catch (error) { console.error('Error syncing with Snipcart:', error); throw error; From a4b584d3a8d3a6a786172c49e0f5c8c9221aefaf Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Thu, 20 Jun 2024 01:29:52 -0700 Subject: [PATCH 376/407] Update admin.html --- admin.html | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/admin.html b/admin.html index 22dfb9c..e28488a 100644 --- a/admin.html +++ b/admin.html @@ -100,13 +100,15 @@

    Admin Panel

    body: JSON.stringify(payload) }); - const data = await response.text(); // Use response.text() to capture raw response - console.log('Snipcart sync raw response:', data); + const textData = await response.text(); // Capture raw response text + console.log('Snipcart sync raw response:', textData); + if (!response.ok) { - throw new Error(`Snipcart API responded with ${response.status}: ${data}`); + throw new Error(`Snipcart API responded with ${response.status}: ${textData}`); } + // Ensure JSON is parsed correctly - const jsonData = JSON.parse(data); + const jsonData = JSON.parse(textData); console.log('Snipcart sync parsed response:', jsonData); } catch (error) { console.error('Error syncing with Snipcart:', error); @@ -149,10 +151,11 @@

    ${product.name}

    } }); - const data = await response.text(); // Use response.text() to capture raw response - console.log('Snipcart delete raw response:', data); + const textData = await response.text(); // Capture raw response text + console.log('Snipcart delete raw response:', textData); + if (!response.ok) { - throw new Error(`Snipcart API responded with ${response.status}: ${data}`); + throw new Error(`Snipcart API responded with ${response.status}: ${textData}`); } alert('Product deleted successfully'); From 116232066b4ec4174b529bf91a71ccc84c177001 Mon Sep 17 00:00:00 2001 From: sslinkyy Date: Thu, 20 Jun 2024 01:31:26 -0700 Subject: [PATCH 377/407] Update store.html --- store.html | 83 +++++++++++++++++++++++++++--------------------------- 1 file changed, 41 insertions(+), 42 deletions(-) diff --git a/store.html b/store.html index e5868b8..48457ce 100644 --- a/store.html +++ b/store.html @@ -8,6 +8,47 @@ +