From 6a0c4623093eef0cac884036d7a8453455a319cb Mon Sep 17 00:00:00 2001 From: Jon Andre Briones Date: Tue, 19 Aug 2025 09:56:55 -0700 Subject: [PATCH 1/6] wip: add route and navbar entry --- src/app/app.routes.ts | 6 +++++ src/app/components/nav-bar/nav-entries.ts | 7 ++++++ .../event-archives.component.html | 0 .../event-archives.component.scss | 0 .../event-archives.component.spec.ts | 23 +++++++++++++++++++ .../event-archives.component.ts | 12 ++++++++++ src/app/services/application/applications.ts | 10 ++++++++ 7 files changed, 58 insertions(+) create mode 100644 src/app/pages/event-archives/event-archives.component.html create mode 100644 src/app/pages/event-archives/event-archives.component.scss create mode 100644 src/app/pages/event-archives/event-archives.component.spec.ts create mode 100644 src/app/pages/event-archives/event-archives.component.ts diff --git a/src/app/app.routes.ts b/src/app/app.routes.ts index 85cc662d..e7850c64 100644 --- a/src/app/app.routes.ts +++ b/src/app/app.routes.ts @@ -47,6 +47,12 @@ export const routes: Routes = [ loadComponent: () => import('./pages/events/events.component').then(m => m.EventsComponent), title: makeTitle('Events') }, + { + path: 'event-archives', + loadComponent: () => + import('pages/event-archives/event-archives.component').then(m => m.EventArchivesComponent), + title: makeTitle('Event Archives') + }, // Elections { path: 'elections', diff --git a/src/app/components/nav-bar/nav-entries.ts b/src/app/components/nav-bar/nav-entries.ts index 14887d8b..a6549162 100644 --- a/src/app/components/nav-bar/nav-entries.ts +++ b/src/app/components/nav-bar/nav-entries.ts @@ -1,6 +1,7 @@ import { CodeListItem } from '@csss-code/list/list-item/list-item.component'; import { IconDefinition } from '@fortawesome/angular-fontawesome'; import { + faBook, faChevronRight, faFile, faRoadBarrier, @@ -89,6 +90,12 @@ export const NAVBAR_ENTRIES: NavItem[] = [ label: 'Mountain Madness', icon: faUpRightFromSquare, href: 'https://new.sfucsss.org/mountain_madness/2024/index.html' + }, + { + key: 'events.archives', + label: 'Archives', + icon: faBook, + route: '/event-archives' } ] }, diff --git a/src/app/pages/event-archives/event-archives.component.html b/src/app/pages/event-archives/event-archives.component.html new file mode 100644 index 00000000..e69de29b diff --git a/src/app/pages/event-archives/event-archives.component.scss b/src/app/pages/event-archives/event-archives.component.scss new file mode 100644 index 00000000..e69de29b diff --git a/src/app/pages/event-archives/event-archives.component.spec.ts b/src/app/pages/event-archives/event-archives.component.spec.ts new file mode 100644 index 00000000..aa5b9eee --- /dev/null +++ b/src/app/pages/event-archives/event-archives.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { EventArchivesComponent } from './event-archives.component'; + +describe('EventsArchiveComponent', () => { + let component: EventArchivesComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [EventArchivesComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(EventArchivesComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/pages/event-archives/event-archives.component.ts b/src/app/pages/event-archives/event-archives.component.ts new file mode 100644 index 00000000..ead479fb --- /dev/null +++ b/src/app/pages/event-archives/event-archives.component.ts @@ -0,0 +1,12 @@ +import { ChangeDetectionStrategy, Component } from '@angular/core'; + +@Component({ + selector: 'cs-event-archives', + imports: [], + templateUrl: './event-archives.component.html', + styleUrl: './event-archives.component.scss', + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class EventArchivesComponent { + +} diff --git a/src/app/services/application/applications.ts b/src/app/services/application/applications.ts index d3d18643..ece7f86f 100644 --- a/src/app/services/application/applications.ts +++ b/src/app/services/application/applications.ts @@ -101,6 +101,16 @@ export const routeApplicationMap: Map = new Map([ 6, { id: 6, + label: 'Event Archives', + activityKey: '', + key: 'event-archives', + route: '/event-archives' + } + ], + [ + 7, + { + id: 7, label: 'Elections', activityKey: '', key: 'elections', From 16a2f310cda74d7b5e175fc01db79599400d437e Mon Sep 17 00:00:00 2001 From: Jon Andre Briones Date: Tue, 19 Aug 2025 12:03:11 -0700 Subject: [PATCH 2/6] feat: completed event archives --- .../event-archives.component.html | 56 +++++++++++++++++++ .../event-archives.component.scss | 37 ++++++++++++ .../event-archives.component.ts | 16 +++++- .../event-archives/events-archive.data.ts | 9 +++ src/styles.scss | 2 + 5 files changed, 119 insertions(+), 1 deletion(-) create mode 100644 src/app/pages/event-archives/events-archive.data.ts diff --git a/src/app/pages/event-archives/event-archives.component.html b/src/app/pages/event-archives/event-archives.component.html index e69de29b..5062f98c 100644 --- a/src/app/pages/event-archives/event-archives.component.html +++ b/src/app/pages/event-archives/event-archives.component.html @@ -0,0 +1,56 @@ + +
+

Event Archives

+

Here's a list of all the past pages the CSSS used to promote their events.

+

+ + Note: The links and the functionality of some of these pages were slightly altered, but + please be cautious clicking links within these sites. + +

+
+
+
+
+

Frosh

+
    + @for (year of froshYears; track year) { + + } +
+
+
+

Tech Fair

+
    + @for (year of techFairYears; track year) { + + } +
+
+
+

Fall Hacks

+
    + @for (year of fallHacksYears; track year) { + + } +
+
+
+

Mountain Madness

+
    + @for (year of mountainMadnessYears; track year) { + + } +
+
+
+
+
diff --git a/src/app/pages/event-archives/event-archives.component.scss b/src/app/pages/event-archives/event-archives.component.scss index e69de29b..8991c04e 100644 --- a/src/app/pages/event-archives/event-archives.component.scss +++ b/src/app/pages/event-archives/event-archives.component.scss @@ -0,0 +1,37 @@ +@use 'globals'; + +.events { + display: grid; + gap: 1rem; +} + +.event__list { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(6rem, 1fr)); + gap: 1rem; +} + +.event__link { + text-align: center; + border: 1px black solid; + border-radius: 5px; + background-color: globals.$accent; + + &:hover { + background-color: globals.$accent1; + } + + > a { + display: block; + padding: 1rem; + } +} +@media (prefers-reduced-motion: no-preference) { + .event__link { + transition: background-color 0.5s ease; + + &:active { + transform: scale(0.95); + } + } +} diff --git a/src/app/pages/event-archives/event-archives.component.ts b/src/app/pages/event-archives/event-archives.component.ts index ead479fb..29a4de3c 100644 --- a/src/app/pages/event-archives/event-archives.component.ts +++ b/src/app/pages/event-archives/event-archives.component.ts @@ -1,12 +1,26 @@ import { ChangeDetectionStrategy, Component } from '@angular/core'; +import { ArticleComponent } from '@csss-code/article/article.component'; +import { + FALL_HACKS_YEARS, + FROSH_YEARS, + MOUNTAIN_MADNESS_YEARS, + TECH_FAIR_YEARS +} from './events-archive.data'; @Component({ selector: 'cs-event-archives', - imports: [], + imports: [ArticleComponent], templateUrl: './event-archives.component.html', styleUrl: './event-archives.component.scss', changeDetection: ChangeDetectionStrategy.OnPush }) export class EventArchivesComponent { + froshYears = FROSH_YEARS; + fallHacksYears = FALL_HACKS_YEARS; + techFairYears = TECH_FAIR_YEARS; + mountainMadnessYears = MOUNTAIN_MADNESS_YEARS; + makeHref(event: string, year: number): string { + return `https://${event}.sfucsss.org/${year}`; + } } diff --git a/src/app/pages/event-archives/events-archive.data.ts b/src/app/pages/event-archives/events-archive.data.ts new file mode 100644 index 00000000..8baf5b0e --- /dev/null +++ b/src/app/pages/event-archives/events-archive.data.ts @@ -0,0 +1,9 @@ +export const FROSH_YEARS = [ + 2024, 2023, 2022, 2021, 2020, 2019, 2018, 2017, 2016, 2015, 2014, 2013, 2012 +] as const; + +export const FALL_HACKS_YEARS = [2024, 2020] as const; + +export const TECH_FAIR_YEARS = [2024, 2023, 2022] as const; + +export const MOUNTAIN_MADNESS_YEARS = [2024, 2023, 2022, 2021, 2020, 2019] as const; diff --git a/src/styles.scss b/src/styles.scss index 30be1f67..296208ad 100644 --- a/src/styles.scss +++ b/src/styles.scss @@ -42,6 +42,8 @@ a.csss-link { article.content { line-height: 1.5; + + hgroup, header { margin-top: 5svh; } From 03ec5063027178dab0f7c6c60f84b58394d94d38 Mon Sep 17 00:00:00 2001 From: Jon Andre Briones Date: Tue, 19 Aug 2025 14:39:41 -0700 Subject: [PATCH 3/6] wip: add fall hacks icon --- .../icons/logos/fall-hacks-code_black.svg | 1 + .../icons/logos/fall-hacks-leaf_black.svg | 1 + .../event-archives.component.html | 2 +- .../event-archives.component.scss | 5 ++++ .../event-archives.component.ts | 11 +++++---- src/assets/icons/README.md | 16 +++++++++++++ .../fall-hacks-icon.component.html | 4 ++++ .../fall-hacks-icon.component.scss | 12 ++++++++++ .../fall-hacks-icon.component.spec.ts | 23 +++++++++++++++++++ .../fall-hacks-icon.component.ts | 15 ++++++++++++ .../icons/fall-hacks-icon/fall-hacks.svg.ts | 18 +++++++++++++++ src/ui/csss-code/button/button.component.scss | 3 --- 12 files changed, 102 insertions(+), 9 deletions(-) create mode 100644 public/static/icons/logos/fall-hacks-code_black.svg create mode 100644 public/static/icons/logos/fall-hacks-leaf_black.svg create mode 100644 src/assets/icons/README.md create mode 100644 src/assets/icons/fall-hacks-icon/fall-hacks-icon.component.html create mode 100644 src/assets/icons/fall-hacks-icon/fall-hacks-icon.component.scss create mode 100644 src/assets/icons/fall-hacks-icon/fall-hacks-icon.component.spec.ts create mode 100644 src/assets/icons/fall-hacks-icon/fall-hacks-icon.component.ts create mode 100644 src/assets/icons/fall-hacks-icon/fall-hacks.svg.ts diff --git a/public/static/icons/logos/fall-hacks-code_black.svg b/public/static/icons/logos/fall-hacks-code_black.svg new file mode 100644 index 00000000..bae28498 --- /dev/null +++ b/public/static/icons/logos/fall-hacks-code_black.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/static/icons/logos/fall-hacks-leaf_black.svg b/public/static/icons/logos/fall-hacks-leaf_black.svg new file mode 100644 index 00000000..b7e92e30 --- /dev/null +++ b/public/static/icons/logos/fall-hacks-leaf_black.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/app/pages/event-archives/event-archives.component.html b/src/app/pages/event-archives/event-archives.component.html index 5062f98c..8023c134 100644 --- a/src/app/pages/event-archives/event-archives.component.html +++ b/src/app/pages/event-archives/event-archives.component.html @@ -32,7 +32,7 @@

Tech Fair

-

Fall Hacks

+

Fall Hacks

    @for (year of fallHacksYears; track year) {