From 28f4284406998d19cfc9d6b14f7bf3e7b7f8b6f6 Mon Sep 17 00:00:00 2001 From: Antoine Phan Date: Thu, 5 Jun 2025 17:51:43 +0100 Subject: [PATCH 1/3] Content retrival on all pages --- src/routes/+page.server.js | 5 ++++- src/routes/council/+page.server.js | 1 - src/routes/council/+page.svelte | 11 ++--------- src/routes/events/+page.server.js | 17 +++++++++++++++++ src/routes/events/+page.svelte | 10 ++++++++++ src/routes/resources/+page.server.js | 15 +++++++++++++++ src/routes/resources/+page.svelte | 14 +++++++++----- src/utils/schemas.ts | 8 ++++++++ 8 files changed, 65 insertions(+), 16 deletions(-) create mode 100644 src/routes/events/+page.server.js create mode 100644 src/routes/resources/+page.server.js create mode 100644 src/utils/schemas.ts diff --git a/src/routes/+page.server.js b/src/routes/+page.server.js index f005270..ce28e8b 100644 --- a/src/routes/+page.server.js +++ b/src/routes/+page.server.js @@ -5,6 +5,9 @@ const query = `*[_type == "homepage"].description[].children[].text`; export const load = async () => { return { - description: await getFromCMS(query) + description: await getFromCMS(query), + ohs: "", + pictures: "", + FAQs: "", }; }; diff --git a/src/routes/council/+page.server.js b/src/routes/council/+page.server.js index 1138bdf..b5662e2 100644 --- a/src/routes/council/+page.server.js +++ b/src/routes/council/+page.server.js @@ -1,6 +1,5 @@ import { getFromCMS } from 'utils/utils.js'; -// needs to concat and format this text const query = `*[_type == "members"]{ name, email, diff --git a/src/routes/council/+page.svelte b/src/routes/council/+page.svelte index 9b1d1fc..e18d4a7 100644 --- a/src/routes/council/+page.svelte +++ b/src/routes/council/+page.svelte @@ -1,6 +1,7 @@ @@ -9,6 +10,7 @@

Meet the council!

Group picture!

+
{#each data.members as councilMember} {/each}
- -

Here are the members of the ECSESS council!

-
-

President

-

Name:

-

Email:

-

Year:

-

Program:

-
diff --git a/src/routes/events/+page.server.js b/src/routes/events/+page.server.js new file mode 100644 index 0000000..d4ca43c --- /dev/null +++ b/src/routes/events/+page.server.js @@ -0,0 +1,17 @@ +import { getFromCMS } from 'utils/utils.js'; + +// needs to concat and format this text +const query = `*[_type == "events"]{ + name, + category, + date, + location, + description, + "lastUpdated": _updatedAt, +}`; + +export const load = async () => { + return { + events: await getFromCMS(query) + }; +}; diff --git a/src/routes/events/+page.svelte b/src/routes/events/+page.svelte index 99a748b..0f16f25 100644 --- a/src/routes/events/+page.svelte +++ b/src/routes/events/+page.svelte @@ -1,9 +1,19 @@ ECSESS Events

Events

+ {#each data.events as event} +
+

{event.name}

+

{event.date}

+

{event.location}

+

{event.description}

+
+ + {/each}
diff --git a/src/routes/resources/+page.server.js b/src/routes/resources/+page.server.js new file mode 100644 index 0000000..e983751 --- /dev/null +++ b/src/routes/resources/+page.server.js @@ -0,0 +1,15 @@ +import { getFromCMS } from 'utils/utils.js'; + +// needs to concat and format this text +const query = `*[_type == "resources"]{ + title, + url, + description, + "lastUpdated":_updatedAt +}`; + +export const load = async () => { + return { + resources: await getFromCMS(query) + }; +}; diff --git a/src/routes/resources/+page.svelte b/src/routes/resources/+page.svelte index ec7d09f..ac49ed6 100644 --- a/src/routes/resources/+page.svelte +++ b/src/routes/resources/+page.svelte @@ -1,15 +1,19 @@ Resources
-

Resources

- -

Resources for ECSE students at McGill University, presented by ECSESS!

+

Resources

-

Technical

+

Resources for ECSE students at McGill University, presented by ECSESS!

-

Academic

+ {#each data.resources as re} + {re.title}
+ {re.url}
+ {re.description}
+

==============

+ {/each}
diff --git a/src/utils/schemas.ts b/src/utils/schemas.ts new file mode 100644 index 0000000..b3a758c --- /dev/null +++ b/src/utils/schemas.ts @@ -0,0 +1,8 @@ +type CouncilMember = { + name: string, + email: string, + position: string, + positionDescription: string, + image: string, // URL + yearProgram: string +} \ No newline at end of file From ca77f40442437b914d4b3e6791b6b62f2a76797c Mon Sep 17 00:00:00 2001 From: Antoine Phan Date: Thu, 5 Jun 2025 18:07:39 +0100 Subject: [PATCH 2/3] Office Hours query --- src/routes/+page.server.js | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/routes/+page.server.js b/src/routes/+page.server.js index ce28e8b..4e33de6 100644 --- a/src/routes/+page.server.js +++ b/src/routes/+page.server.js @@ -1,12 +1,19 @@ import { getFromCMS } from 'utils/utils.js'; // needs to concat and format this text -const query = `*[_type == "homepage"].description[].children[].text`; +const descQuery = `*[_type == "homepage"].description[].children[].text`; + +const ohQuery = `*[_type=="oh"].schedule[]{ + day, + startTime, + endTime, + "host": member->name +}`; export const load = async () => { return { - description: await getFromCMS(query), - ohs: "", + description: await getFromCMS(descQuery), + ohs: await getFromCMS(ohQuery), pictures: "", FAQs: "", }; From 1677d6393aaf4cd4e1457e39a8becd05e2215be8 Mon Sep 17 00:00:00 2001 From: Antoine Phan Date: Mon, 9 Jun 2025 15:35:44 -0400 Subject: [PATCH 3/3] Optimize homepage query, Portable Text formatting, Events --- bun.lock | 7 +++++++ package.json | 1 + src/routes/+page.server.js | 16 ++++++++++------ src/routes/+page.svelte | 19 ++++++++++++------ src/routes/events/+page.server.js | 4 ++-- src/routes/events/+page.svelte | 32 +++++++++++++++++++------------ 6 files changed, 53 insertions(+), 26 deletions(-) diff --git a/bun.lock b/bun.lock index 2fa3efd..e36d83a 100644 --- a/bun.lock +++ b/bun.lock @@ -7,6 +7,7 @@ "@sanity/client": "^7.2.2", }, "devDependencies": { + "@portabletext/svelte": "^3.0.0", "@skeletonlabs/skeleton": "^3.1.3", "@skeletonlabs/skeleton-svelte": "^1.2.1", "@sveltejs/adapter-auto": "^6.0.0", @@ -97,6 +98,12 @@ "@polka/url": ["@polka/url@1.0.0-next.29", "", {}, "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww=="], + "@portabletext/svelte": ["@portabletext/svelte@3.0.0", "", { "dependencies": { "@portabletext/toolkit": "^2.0.17" }, "peerDependencies": { "svelte": "^5.0.0" } }, "sha512-1PTbasjgyYdA/vpt4BCs3Nc0Fr8pqJQRuI6llhpNe+JgZ1EoSstzzjkSSGn9TtPW7yPls5i/7QksqhYTjUDocw=="], + + "@portabletext/toolkit": ["@portabletext/toolkit@2.0.17", "", { "dependencies": { "@portabletext/types": "^2.0.13" } }, "sha512-5wj+oUaCmHm9Ay1cytPmT1Yc0SrR1twwUIc0qNQ3MtaXaNMPw99Gjt1NcA34yfyKmEf/TAB2NiiT72jFxdddIQ=="], + + "@portabletext/types": ["@portabletext/types@2.0.13", "", {}, "sha512-5xk5MSyQU9CrDho3Rsguj38jhijhD36Mk8S6mZo3huv6PM+t4M/5kJN2KFIxgvt4ONpvOEs1pVIZAV0cL0Vi+Q=="], + "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.40.0", "", { "os": "android", "cpu": "arm" }, "sha512-+Fbls/diZ0RDerhE8kyC6hjADCXA1K4yVNlH0EYfd2XjyH0UGgzaQ8MlT0pCXAThfxv3QUAczHaL+qSv1E4/Cg=="], "@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.40.0", "", { "os": "android", "cpu": "arm64" }, "sha512-PPA6aEEsTPRz+/4xxAmaoWDqh67N7wFbgFUJGMnanCFs0TV99M0M8QhhaSCks+n6EbQoFvLQgYOGXxlMGQe/6w=="], diff --git a/package.json b/package.json index ffda084..e8dd1f0 100644 --- a/package.json +++ b/package.json @@ -2,6 +2,7 @@ "name": "ecsess-website", "version": "0.0.1", "devDependencies": { + "@portabletext/svelte": "^3.0.0", "@skeletonlabs/skeleton": "^3.1.3", "@skeletonlabs/skeleton-svelte": "^1.2.1", "@sveltejs/adapter-auto": "^6.0.0", diff --git a/src/routes/+page.server.js b/src/routes/+page.server.js index 4e33de6..23207c0 100644 --- a/src/routes/+page.server.js +++ b/src/routes/+page.server.js @@ -1,7 +1,9 @@ import { getFromCMS } from 'utils/utils.js'; -// needs to concat and format this text -const descQuery = `*[_type == "homepage"].description[].children[].text`; +const homepageQuery = `*[_type == "homepage"]{ + "description": description[], + "councilPhoto": councilPhoto.asset->url +}[0]`; const ohQuery = `*[_type=="oh"].schedule[]{ day, @@ -11,10 +13,12 @@ const ohQuery = `*[_type=="oh"].schedule[]{ }`; export const load = async () => { + let CMSresponse = await getFromCMS(homepageQuery); + return { - description: await getFromCMS(descQuery), - ohs: await getFromCMS(ohQuery), - pictures: "", - FAQs: "", + description: CMSresponse.description, + councilPhoto: CMSresponse.councilPhoto + // ohs: await getFromCMS(ohQuery), + // FAQs: "", }; }; diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index cedb97e..18d3a49 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -1,7 +1,9 @@ McGill ECSESS @@ -10,18 +12,18 @@

What is ECSESS?

-

{data.description}

+
+ +
+

Our student council

-

PICTURES

-
-
-

FAQ

+ ECSESS Council
@@ -29,6 +31,11 @@
-

Office Hours

+

FAQ

+

Under development

+
+
+

Office Hours

+

Under development

diff --git a/src/routes/events/+page.server.js b/src/routes/events/+page.server.js index d4ca43c..3151818 100644 --- a/src/routes/events/+page.server.js +++ b/src/routes/events/+page.server.js @@ -1,7 +1,7 @@ import { getFromCMS } from 'utils/utils.js'; // needs to concat and format this text -const query = `*[_type == "events"]{ +const eventQuery = `*[_type == "events"]{ name, category, date, @@ -12,6 +12,6 @@ const query = `*[_type == "events"]{ export const load = async () => { return { - events: await getFromCMS(query) + events: await getFromCMS(eventQuery), }; }; diff --git a/src/routes/events/+page.svelte b/src/routes/events/+page.svelte index 0f16f25..c14e632 100644 --- a/src/routes/events/+page.svelte +++ b/src/routes/events/+page.svelte @@ -1,19 +1,27 @@ ECSESS Events
-

Events

- {#each data.events as event} -
-

{event.name}

-

{event.date}

-

{event.location}

-

{event.description}

-
- - {/each} +

Events

+ {#each data.events as event} +
+

{event.name}

+

{event.date}

+

{event.location}

+ + Category: +
+
    + {#each event.category as cat} +
  • {cat}
  • + {/each} +
+
+
+ {/each}