diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 6f9077f02..bf59f7595 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -35,6 +35,7 @@ }, "[html]": { "editor.formatOnSave": false, + "editor.defaultFormatter": "esbenp.prettier-vscode" }, "python.analysis.extraPaths": [ "/backend/" diff --git a/frontend/.postcssrc.json b/frontend/.postcssrc.json new file mode 100644 index 000000000..9674304b0 --- /dev/null +++ b/frontend/.postcssrc.json @@ -0,0 +1,5 @@ +{ + "plugins": { + "@tailwindcss/postcss": {} + } +} \ No newline at end of file diff --git a/frontend/.prettierrc.json b/frontend/.prettierrc.json index 8af34fb1e..f3f30c850 100644 --- a/frontend/.prettierrc.json +++ b/frontend/.prettierrc.json @@ -7,6 +7,8 @@ "arrowParens": "always", "trailingComma": "none", "bracketSameLine": true, + "plugins": ["prettier-plugin-tailwindcss"], + "tailwindStylesheet": "./src/styles/tailwind.css", "printWidth": 80, "endOfLine": "auto", "overrides": [ diff --git a/frontend/angular.json b/frontend/angular.json index 8d6b9945d..065c23cae 100644 --- a/frontend/angular.json +++ b/frontend/angular.json @@ -27,7 +27,8 @@ ], "styles": [ "node_modules/@angular/material/prebuilt-themes/magenta-violet.css", - "src/styles/styles.scss" + "src/styles/styles.scss", + "src/styles/tailwind.css" ], "scripts": [], diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 2745f7dff..ae58c3126 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -14,7 +14,7 @@ "@angular/compiler": "~20.3.1", "@angular/core": "~20.3.1", "@angular/forms": "~20.3.1", - "@angular/material": "~20.2.4", + "@angular/material": "~20.2.13", "@angular/platform-browser": "~20.3.1", "@angular/platform-browser-dynamic": "~20.3.1", "@angular/router": "~20.3.1", @@ -53,6 +53,7 @@ "karma-jasmine-html-reporter": "~2.1.0", "prettier": "~3.3.3", "prettier-eslint": "~16.3.0", + "prettier-plugin-tailwindcss": "^0.7.1", "typescript": "~5.9.2" } }, @@ -685,9 +686,9 @@ } }, "node_modules/@angular/cdk": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-20.2.4.tgz", - "integrity": "sha512-5UzrN854pnQH+Qw6XZRxx2zWkcOxKrzWPLXe+gHFxFhxWUZfJKGcTJeAj8bnmyb+C3lqBbGpoNQPQ8pFXQGEaQ==", + "version": "20.2.14", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-20.2.14.tgz", + "integrity": "sha512-7bZxc01URbiPiIBWThQ69XwOxVduqEKN4PhpbF2AAyfMc/W8Hcr4VoIJOwL0O1Nkq5beS8pCAqoOeIgFyXd/kg==", "license": "MIT", "dependencies": { "parse5": "^8.0.0", @@ -1081,15 +1082,15 @@ } }, "node_modules/@angular/material": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/@angular/material/-/material-20.2.4.tgz", - "integrity": "sha512-B1XUOL9TbBDQZpH3j2C6hEpwdokvvmoeaOI7aMTpXrNzomyXHTWZWrMybq30trB7sE7cNze1DQRiOuDXsLgnTw==", + "version": "20.2.14", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-20.2.14.tgz", + "integrity": "sha512-IbAgV6XLsvmHiJzxycVhcNC1PA4M30qi+ERCOir6cT333Bxm8vDV32gsOjfL52uzG5YRARroPC+8s1XqR2oxeA==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, "peerDependencies": { - "@angular/cdk": "20.2.4", + "@angular/cdk": "20.2.14", "@angular/common": "^20.0.0 || ^21.0.0", "@angular/core": "^20.0.0 || ^21.0.0", "@angular/forms": "^20.0.0 || ^21.0.0", @@ -11317,6 +11318,85 @@ "node": ">=6.0.0" } }, + "node_modules/prettier-plugin-tailwindcss": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.7.1.tgz", + "integrity": "sha512-Bzv1LZcuiR1Sk02iJTS1QzlFNp/o5l2p3xkopwOrbPmtMeh3fK9rVW5M3neBQzHq+kGKj/4LGQMTNcTH4NGPtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.19" + }, + "peerDependencies": { + "@ianvs/prettier-plugin-sort-imports": "*", + "@prettier/plugin-hermes": "*", + "@prettier/plugin-oxc": "*", + "@prettier/plugin-pug": "*", + "@shopify/prettier-plugin-liquid": "*", + "@trivago/prettier-plugin-sort-imports": "*", + "@zackad/prettier-plugin-twig": "*", + "prettier": "^3.0", + "prettier-plugin-astro": "*", + "prettier-plugin-css-order": "*", + "prettier-plugin-jsdoc": "*", + "prettier-plugin-marko": "*", + "prettier-plugin-multiline-arrays": "*", + "prettier-plugin-organize-attributes": "*", + "prettier-plugin-organize-imports": "*", + "prettier-plugin-sort-imports": "*", + "prettier-plugin-svelte": "*" + }, + "peerDependenciesMeta": { + "@ianvs/prettier-plugin-sort-imports": { + "optional": true + }, + "@prettier/plugin-hermes": { + "optional": true + }, + "@prettier/plugin-oxc": { + "optional": true + }, + "@prettier/plugin-pug": { + "optional": true + }, + "@shopify/prettier-plugin-liquid": { + "optional": true + }, + "@trivago/prettier-plugin-sort-imports": { + "optional": true + }, + "@zackad/prettier-plugin-twig": { + "optional": true + }, + "prettier-plugin-astro": { + "optional": true + }, + "prettier-plugin-css-order": { + "optional": true + }, + "prettier-plugin-jsdoc": { + "optional": true + }, + "prettier-plugin-marko": { + "optional": true + }, + "prettier-plugin-multiline-arrays": { + "optional": true + }, + "prettier-plugin-organize-attributes": { + "optional": true + }, + "prettier-plugin-organize-imports": { + "optional": true + }, + "prettier-plugin-sort-imports": { + "optional": true + }, + "prettier-plugin-svelte": { + "optional": true + } + } + }, "node_modules/pretty-format": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", diff --git a/frontend/package.json b/frontend/package.json index 1360bacb0..97c80a7ad 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -57,6 +57,7 @@ "karma-jasmine-html-reporter": "~2.1.0", "prettier": "~3.3.3", "prettier-eslint": "~16.3.0", + "prettier-plugin-tailwindcss": "^0.7.1", "typescript": "~5.9.2" } -} \ No newline at end of file +} diff --git a/frontend/src/app/about/about.component.html b/frontend/src/app/about/about.component.html index 306278986..e35a3c10d 100644 --- a/frontend/src/app/about/about.component.html +++ b/frontend/src/app/about/about.component.html @@ -11,8 +11,11 @@ Join the CSXL Slack to get updates on the XL, learn about new opportunities for CS students, or meet your fellow CS majors!

+ + + - + diff --git a/frontend/src/app/academics/academics-admin/academics-admin.component.css b/frontend/src/app/academics/academics-admin/academics-admin.component.css deleted file mode 100644 index e69de29bb..000000000 diff --git a/frontend/src/app/academics/academics-admin/academics-admin.component.ts b/frontend/src/app/academics/academics-admin/academics-admin.component.ts index aef6bc2b6..baf6c70f4 100644 --- a/frontend/src/app/academics/academics-admin/academics-admin.component.ts +++ b/frontend/src/app/academics/academics-admin/academics-admin.component.ts @@ -13,10 +13,9 @@ import { Profile } from 'src/app/models.module'; import { ProfileService } from 'src/app/profile/profile.service'; @Component({ - selector: 'app-academics-admin', - templateUrl: './academics-admin.component.html', - styleUrls: ['./academics-admin.component.css'], - standalone: false + selector: 'app-academics-admin', + templateUrl: './academics-admin.component.html', + standalone: false }) export class AcademicsAdminComponent { public profile$: Observable; diff --git a/frontend/src/app/academics/academics-admin/course/admin-course.component.css b/frontend/src/app/academics/academics-admin/course/admin-course.component.css deleted file mode 100644 index dedf839e8..000000000 --- a/frontend/src/app/academics/academics-admin/course/admin-course.component.css +++ /dev/null @@ -1,38 +0,0 @@ -.mat-mdc-row .mat-mdc-cell { - border-bottom: 1px solid transparent; - border-top: 1px solid transparent; - cursor: pointer; -} - -.mat-mdc-row:hover .mat-mdc-cell { - border-color: white; -} - -.header { - display: flex; - align-items: center; - justify-content: space-between; -} - -.row { - display: flex; - flex-direction: row; - width: 100%; - justify-content: space-between; - align-items: center; -} - -.modify-buttons { - margin-left: auto; -} - -#edit-button { - margin-right: 8px; -} - - -::ng-deep .mat-mdc-card-outlined { - max-width: 100% !important; - margin-right: 32px !important; - } - \ No newline at end of file diff --git a/frontend/src/app/academics/academics-admin/course/admin-course.component.html b/frontend/src/app/academics/academics-admin/course/admin-course.component.html index d5a7ba31f..ac9daad63 100644 --- a/frontend/src/app/academics/academics-admin/course/admin-course.component.html +++ b/frontend/src/app/academics/academics-admin/course/admin-course.component.html @@ -1,5 +1,5 @@ - + @if (courses()) {
@@ -7,20 +7,20 @@ -
-
+
Courses
-
+
+

{{ element.subject_code }}{{ element.number }}: {{ element.title }}

-
+
} - + diff --git a/frontend/src/app/academics/academics-admin/course/admin-course.component.ts b/frontend/src/app/academics/academics-admin/course/admin-course.component.ts index c052f76c6..181741428 100644 --- a/frontend/src/app/academics/academics-admin/course/admin-course.component.ts +++ b/frontend/src/app/academics/academics-admin/course/admin-course.component.ts @@ -8,19 +8,16 @@ */ import { Component, WritableSignal, inject, signal } from '@angular/core'; -import { Observable } from 'rxjs'; import { permissionGuard } from 'src/app/permission.guard'; import { Course } from '../../academics.models'; -import { Route, Router } from '@angular/router'; +import { Router } from '@angular/router'; import { MatSnackBar } from '@angular/material/snack-bar'; import { AcademicsService } from '../../academics.service'; -import { RxCourseList } from '../rx-academics-admin'; @Component({ - selector: 'app-admin-course', - templateUrl: './admin-course.component.html', - styleUrls: ['./admin-course.component.css'], - standalone: false + selector: 'app-admin-course', + templateUrl: './admin-course.component.html', + standalone: false }) export class AdminCourseComponent { public static Route = { diff --git a/frontend/src/app/academics/academics-admin/course/course-editor/course-editor.component.css b/frontend/src/app/academics/academics-admin/course/course-editor/course-editor.component.css deleted file mode 100644 index 2cbbf7b9d..000000000 --- a/frontend/src/app/academics/academics-admin/course/course-editor/course-editor.component.css +++ /dev/null @@ -1,26 +0,0 @@ -.mat-mdc-card { - margin: 1em; - max-width: 640px; - } - -mat-card-content { - display: flex; - flex-direction: column; - gap: 16px; - padding-top: 16px; -} - -mat-form-field { - width: 100%; -} - - -.mat-mdc-card-actions .mdc-button { - margin-left: 8px; - margin-bottom: 8px; -} - -/* TODO(mdc-migration): The following rule targets internal classes of card that may no longer apply for the MDC version. */ -mat-card-content { - margin-top: 8px; -} \ No newline at end of file diff --git a/frontend/src/app/academics/academics-admin/course/course-editor/course-editor.component.html b/frontend/src/app/academics/academics-admin/course/course-editor/course-editor.component.html index 0f56286cf..a1128a12b 100644 --- a/frontend/src/app/academics/academics-admin/course/course-editor/course-editor.component.html +++ b/frontend/src/app/academics/academics-admin/course/course-editor/course-editor.component.html @@ -10,9 +10,9 @@ Update Course - + - + Subject Code - + Number - + Title - + Course Description - + Credit Hours - - - + +
+ + +
diff --git a/frontend/src/app/academics/academics-admin/course/course-editor/course-editor.component.ts b/frontend/src/app/academics/academics-admin/course/course-editor/course-editor.component.ts index 2ce45a819..3bdfb287e 100644 --- a/frontend/src/app/academics/academics-admin/course/course-editor/course-editor.component.ts +++ b/frontend/src/app/academics/academics-admin/course/course-editor/course-editor.component.ts @@ -44,10 +44,9 @@ const canActivateEditor: CanActivateFn = ( }; @Component({ - selector: 'app-course-editor', - templateUrl: './course-editor.component.html', - styleUrls: ['./course-editor.component.css'], - standalone: false + selector: 'app-course-editor', + templateUrl: './course-editor.component.html', + standalone: false }) export class CourseEditorComponent { /** Route information to be used in the Routing Module */ diff --git a/frontend/src/app/academics/academics-admin/room/admin-room.component.css b/frontend/src/app/academics/academics-admin/room/admin-room.component.css deleted file mode 100644 index ddc089745..000000000 --- a/frontend/src/app/academics/academics-admin/room/admin-room.component.css +++ /dev/null @@ -1,37 +0,0 @@ -.mat-mdc-row .mat-mdc-cell { - border-bottom: 1px solid transparent; - border-top: 1px solid transparent; - cursor: pointer; -} - -.mat-mdc-row:hover .mat-mdc-cell { - border-color: white; -} - -.header { - display: flex; - align-items: center; - justify-content: space-between; -} - -.row { - display: flex; - flex-direction: row; - width: 100%; - justify-content: space-between; - align-items: center; -} - -.modify-buttons { - margin-left: auto; -} - -#edit-button { - margin-right: 8px; -} - -::ng-deep .mat-mdc-card-outlined { - max-width: 100% !important; - margin-right: 32px !important; - } - \ No newline at end of file diff --git a/frontend/src/app/academics/academics-admin/room/admin-room.component.html b/frontend/src/app/academics/academics-admin/room/admin-room.component.html index 3852e6c22..346cc7f09 100644 --- a/frontend/src/app/academics/academics-admin/room/admin-room.component.html +++ b/frontend/src/app/academics/academics-admin/room/admin-room.component.html @@ -1,5 +1,5 @@ - + @if(rooms()) {
@@ -7,19 +7,19 @@ -
-
+
Rooms
-
+
+

{{ element.nickname }}

-
+
} - + diff --git a/frontend/src/app/academics/academics-admin/room/admin-room.component.ts b/frontend/src/app/academics/academics-admin/room/admin-room.component.ts index 441548bed..36573e322 100644 --- a/frontend/src/app/academics/academics-admin/room/admin-room.component.ts +++ b/frontend/src/app/academics/academics-admin/room/admin-room.component.ts @@ -17,10 +17,9 @@ import { Observable } from 'rxjs'; import { Room } from '../../academics.models'; @Component({ - selector: 'app-admin-room', - templateUrl: './admin-room.component.html', - styleUrls: ['./admin-room.component.css'], - standalone: false + selector: 'app-admin-room', + templateUrl: './admin-room.component.html', + standalone: false }) export class AdminRoomComponent { public static Route = { diff --git a/frontend/src/app/academics/academics-admin/room/room-editor/room-editor.component.css b/frontend/src/app/academics/academics-admin/room/room-editor/room-editor.component.css deleted file mode 100644 index a39da2c42..000000000 --- a/frontend/src/app/academics/academics-admin/room/room-editor/room-editor.component.css +++ /dev/null @@ -1,33 +0,0 @@ -.mat-mdc-card { - margin: 1em; - max-width: 640px; - } - -mat-card-content { - display: flex; - flex-direction: column; - gap: 16px; - padding-top: 16px; -} - -mat-form-field { - width: 100%; -} - -mat-slide-toggle { - padding-bottom: 16px; -} - -.mat-mdc-card-actions .mdc-button { - margin-left: 8px; - margin-bottom: 8px; -} - -/* TODO(mdc-migration): The following rule targets internal classes of card that may no longer apply for the MDC version. */ -mat-card-content { - margin-top: 8px; -} - -.checkbox { - margin-top: 0px; -} \ No newline at end of file diff --git a/frontend/src/app/academics/academics-admin/room/room-editor/room-editor.component.html b/frontend/src/app/academics/academics-admin/room/room-editor/room-editor.component.html index 97fc1d663..99ad84274 100644 --- a/frontend/src/app/academics/academics-admin/room/room-editor/room-editor.component.html +++ b/frontend/src/app/academics/academics-admin/room/room-editor/room-editor.component.html @@ -10,9 +10,10 @@ Update Room - + @@ -25,7 +26,7 @@ required /> - + Room Nickname - + Room Building - + Room Number - + Room Capacity - + Reservable? - - - + +
+ + +
diff --git a/frontend/src/app/academics/academics-admin/room/room-editor/room-editor.component.ts b/frontend/src/app/academics/academics-admin/room/room-editor/room-editor.component.ts index b5cfc92d5..37e945dae 100644 --- a/frontend/src/app/academics/academics-admin/room/room-editor/room-editor.component.ts +++ b/frontend/src/app/academics/academics-admin/room/room-editor/room-editor.component.ts @@ -19,11 +19,8 @@ import { import { FormBuilder, FormControl, Validators } from '@angular/forms'; import { PermissionService } from 'src/app/permission.service'; import { profileResolver } from 'src/app/profile/profile.resolver'; -import { - roomResolver, - termResolver -} from 'src/app/academics/academics.resolver'; -import { Room, Term } from 'src/app/academics/academics.models'; +import { roomResolver } from 'src/app/academics/academics.resolver'; +import { Room } from 'src/app/academics/academics.models'; import { MatSnackBar } from '@angular/material/snack-bar'; import { AcademicsService } from 'src/app/academics/academics.service'; import { Profile } from 'src/app/models.module'; @@ -44,10 +41,9 @@ const canActivateEditor: CanActivateFn = ( } }; @Component({ - selector: 'app-room-editor', - templateUrl: './room-editor.component.html', - styleUrls: ['./room-editor.component.css'], - standalone: false + selector: 'app-room-editor', + templateUrl: './room-editor.component.html', + standalone: false }) export class RoomEditorComponent { /** Route information to be used in the Routing Module */ diff --git a/frontend/src/app/academics/academics-admin/section/admin-section.component.css b/frontend/src/app/academics/academics-admin/section/admin-section.component.css deleted file mode 100644 index 54c673012..000000000 --- a/frontend/src/app/academics/academics-admin/section/admin-section.component.css +++ /dev/null @@ -1,52 +0,0 @@ -.mat-mdc-row .mat-mdc-cell { - border-bottom: 1px solid transparent; - border-top: 1px solid transparent; - cursor: pointer; -} - -.mat-mdc-row:hover .mat-mdc-cell { - border-color: white; -} - -.header { - display: flex; - align-items: center; - padding-top: 16px; - padding-bottom: 16px; -} - -.row { - display: flex; - flex-direction: row; - width: 100%; - justify-content: space-between; - align-items: center; -} - -.modify-buttons { - margin-left: auto; -} - -#edit-button { - margin-right: 8px; -} - -.right-header-container { - display: flex; - flex-direction: row; - margin-left: auto; - gap: 12px; - align-items: center; -} - -.term-selector { - width: 260px; - margin-bottom: -1.25em; - } - - -::ng-deep .mat-mdc-card-outlined { - max-width: 100% !important; - margin-right: 32px !important; -} - \ No newline at end of file diff --git a/frontend/src/app/academics/academics-admin/section/admin-section.component.html b/frontend/src/app/academics/academics-admin/section/admin-section.component.html index 5935d465f..8a522b88a 100644 --- a/frontend/src/app/academics/academics-admin/section/admin-section.component.html +++ b/frontend/src/app/academics/academics-admin/section/admin-section.component.html @@ -1,15 +1,15 @@ - +
-
-
+
Sections -
- +
+ Select Term
-
+
+

{{ element.subject_code }} {{ element.course_number }} - {{ element.section_number }}: {{ element.title }}

-
+
- +
diff --git a/frontend/src/app/academics/academics-admin/section/section-editor/section-editor.component.ts b/frontend/src/app/academics/academics-admin/section/section-editor/section-editor.component.ts index 213786613..5ecb2d74b 100644 --- a/frontend/src/app/academics/academics-admin/section/section-editor/section-editor.component.ts +++ b/frontend/src/app/academics/academics-admin/section/section-editor/section-editor.component.ts @@ -62,10 +62,9 @@ const canActivateEditor: CanActivateFn = ( } }; @Component({ - selector: 'app-section-editor', - templateUrl: './section-editor.component.html', - styleUrls: ['./section-editor.component.css'], - standalone: false + selector: 'app-section-editor', + templateUrl: './section-editor.component.html', + standalone: false }) export class SectionEditorComponent { /** Route information to be used in the Routing Module */ diff --git a/frontend/src/app/academics/academics-admin/term/admin-term.component.css b/frontend/src/app/academics/academics-admin/term/admin-term.component.css deleted file mode 100644 index 1fee6603a..000000000 --- a/frontend/src/app/academics/academics-admin/term/admin-term.component.css +++ /dev/null @@ -1,36 +0,0 @@ -.mat-mdc-row .mat-mdc-cell { - border-bottom: 1px solid transparent; - border-top: 1px solid transparent; - cursor: pointer; -} - -.mat-mdc-row:hover .mat-mdc-cell { - border-color: white; -} - -.header { - display: flex; - align-items: center; - justify-content: space-between; -} - -.row { - display: flex; - flex-direction: row; - width: 100%; - justify-content: space-between; - align-items: center; -} - -.modify-buttons { - margin-left: auto; -} - -#edit-button { - margin-right: 8px; -} -::ng-deep .mat-mdc-card-outlined { - max-width: 100% !important; - margin-right: 32px !important; - } - \ No newline at end of file diff --git a/frontend/src/app/academics/academics-admin/term/admin-term.component.html b/frontend/src/app/academics/academics-admin/term/admin-term.component.html index afba19808..0b30acfb0 100644 --- a/frontend/src/app/academics/academics-admin/term/admin-term.component.html +++ b/frontend/src/app/academics/academics-admin/term/admin-term.component.html @@ -1,5 +1,5 @@ - + @if(terms()) {
@@ -7,17 +7,17 @@ - @@ -111,7 +112,7 @@ Remove -
-
+
Terms
-
+
+

{{ element.name }}

-
+
} - + diff --git a/frontend/src/app/academics/academics-admin/term/admin-term.component.ts b/frontend/src/app/academics/academics-admin/term/admin-term.component.ts index 82a717d3c..0b7dd8b8a 100644 --- a/frontend/src/app/academics/academics-admin/term/admin-term.component.ts +++ b/frontend/src/app/academics/academics-admin/term/admin-term.component.ts @@ -17,10 +17,9 @@ import { AcademicsService } from '../../academics.service'; import { RxTermList } from '../rx-academics-admin'; @Component({ - selector: 'app-admin-term', - templateUrl: './admin-term.component.html', - styleUrls: ['./admin-term.component.css'], - standalone: false + selector: 'app-admin-term', + templateUrl: './admin-term.component.html', + standalone: false }) export class AdminTermComponent { public static Route = { diff --git a/frontend/src/app/academics/academics-admin/term/term-editor/term-editor.component.css b/frontend/src/app/academics/academics-admin/term/term-editor/term-editor.component.css deleted file mode 100644 index ba4b8a99d..000000000 --- a/frontend/src/app/academics/academics-admin/term/term-editor/term-editor.component.css +++ /dev/null @@ -1,25 +0,0 @@ -.mat-mdc-card { - margin: 1em; - max-width: 640px; - } - -mat-card-content { - display: flex; - flex-direction: column; - gap: 16px; - padding-top: 16px; -} - -mat-form-field { - width: 100%; -} - -.mat-mdc-card-actions .mdc-button { - margin-left: 8px; - margin-bottom: 8px; -} - -/* TODO(mdc-migration): The following rule targets internal classes of card that may no longer apply for the MDC version. */ -mat-card-content { - margin-top: 8px; -} \ No newline at end of file diff --git a/frontend/src/app/academics/academics-admin/term/term-editor/term-editor.component.html b/frontend/src/app/academics/academics-admin/term/term-editor/term-editor.component.html index 02fc48f0d..85a538c34 100644 --- a/frontend/src/app/academics/academics-admin/term/term-editor/term-editor.component.html +++ b/frontend/src/app/academics/academics-admin/term/term-editor/term-editor.component.html @@ -10,9 +10,10 @@ Update Term - + @@ -25,7 +26,7 @@ required /> - + Term Name - + Term Start Date - + Term End Date - + Term Applications Open Date - + Term Applications Close Date - - - + +
+ + +
diff --git a/frontend/src/app/academics/academics-admin/term/term-editor/term-editor.component.ts b/frontend/src/app/academics/academics-admin/term/term-editor/term-editor.component.ts index f06cde541..dcaccf3c4 100644 --- a/frontend/src/app/academics/academics-admin/term/term-editor/term-editor.component.ts +++ b/frontend/src/app/academics/academics-admin/term/term-editor/term-editor.component.ts @@ -44,10 +44,9 @@ const canActivateEditor: CanActivateFn = ( } }; @Component({ - selector: 'app-term-editor', - templateUrl: './term-editor.component.html', - styleUrls: ['./term-editor.component.css'], - standalone: false + selector: 'app-term-editor', + templateUrl: './term-editor.component.html', + standalone: false }) export class TermEditorComponent { /** Route information to be used in the Routing Module */ diff --git a/frontend/src/app/academics/academics-home/academics-home.component.css b/frontend/src/app/academics/academics-home/academics-home.component.css deleted file mode 100644 index 6c4800192..000000000 --- a/frontend/src/app/academics/academics-home/academics-home.component.css +++ /dev/null @@ -1,6 +0,0 @@ - -.link-button { - margin-left: 8px; - margin-top: 14px; - margin-bottom: 14px; -} diff --git a/frontend/src/app/academics/academics-home/academics-home.component.html b/frontend/src/app/academics/academics-home/academics-home.component.html deleted file mode 100644 index 0b92ef91f..000000000 --- a/frontend/src/app/academics/academics-home/academics-home.component.html +++ /dev/null @@ -1,30 +0,0 @@ - - - Computer Science Courses at UNC - - -

- The UNC Department of Computer Science offers numerous courses for - students to explore various aspects of computer science. -

-

- View all COMP couses in the Course Catalog, or view course - offerings by terms in Section Offerings page! -

-
- - - - -
diff --git a/frontend/src/app/academics/academics-home/academics-home.component.ts b/frontend/src/app/academics/academics-home/academics-home.component.ts deleted file mode 100644 index 79f4f4cfb..000000000 --- a/frontend/src/app/academics/academics-home/academics-home.component.ts +++ /dev/null @@ -1,44 +0,0 @@ -/** - * The Academics homepage serves as the hub for all academic features - * for students in the CSXL community. - * - * @author Ajay Gandecha - * @copyright 2023 - * @license MIT - */ - -import { Component, OnInit } from '@angular/core'; -import { MatDialog } from '@angular/material/dialog'; -import { NagivationAdminGearService } from 'src/app/navigation/navigation-admin-gear.service'; -import { Router } from '@angular/router'; - -@Component({ - selector: 'app-academics-home', - templateUrl: './academics-home.component.html', - styleUrls: ['./academics-home.component.css'], - standalone: false -}) -export class AcademicsHomeComponent implements OnInit { - /** Route information to be used in Course Routing Module */ - public static Route = { - path: '', - title: 'Academics', - component: AcademicsHomeComponent, - canActivate: [] - }; - - constructor( - private gearService: NagivationAdminGearService, - protected dialog: MatDialog, - private router: Router - ) {} - - ngOnInit() { - this.gearService.showAdminGearByPermissionCheck( - 'academics.*', - '*', - '', - 'academics/admin/section' - ); - } -} diff --git a/frontend/src/app/academics/academics-routing.module.ts b/frontend/src/app/academics/academics-routing.module.ts index 26202b9b9..d939d6286 100644 --- a/frontend/src/app/academics/academics-routing.module.ts +++ b/frontend/src/app/academics/academics-routing.module.ts @@ -1,6 +1,5 @@ import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; -import { AcademicsHomeComponent } from './academics-home/academics-home.component'; import { AcademicsAdminComponent } from './academics-admin/academics-admin.component'; import { AdminTermComponent } from './academics-admin/term/admin-term.component'; import { AdminCourseComponent } from './academics-admin/course/admin-course.component'; @@ -22,7 +21,6 @@ const routes: Routes = [ AdminRoomComponent.Route ] }, - AcademicsHomeComponent.Route, CourseEditorComponent.Route, TermEditorComponent.Route, SectionEditorComponent.Route, diff --git a/frontend/src/app/academics/academics.module.ts b/frontend/src/app/academics/academics.module.ts index 8c95cbda4..305d83754 100644 --- a/frontend/src/app/academics/academics.module.ts +++ b/frontend/src/app/academics/academics.module.ts @@ -12,7 +12,6 @@ import { MatIconModule } from '@angular/material/icon'; import { MatFormFieldModule } from '@angular/material/form-field'; import { MatSelectModule } from '@angular/material/select'; import { FormsModule, ReactiveFormsModule } from '@angular/forms'; -import { AcademicsHomeComponent } from './academics-home/academics-home.component'; import { AcademicsAdminComponent } from './academics-admin/academics-admin.component'; import { MatTabsModule } from '@angular/material/tabs'; import { AdminSectionComponent } from './academics-admin/section/admin-section.component'; @@ -30,7 +29,6 @@ import { MatSlideToggleModule } from '@angular/material/slide-toggle'; @NgModule({ declarations: [ - AcademicsHomeComponent, AcademicsAdminComponent, AdminSectionComponent, AdminCourseComponent, diff --git a/frontend/src/app/admin/accounts/admin-accounts.component.css b/frontend/src/app/admin/accounts/admin-accounts.component.css deleted file mode 100644 index 99b098a8f..000000000 --- a/frontend/src/app/admin/accounts/admin-accounts.component.css +++ /dev/null @@ -1,4 +0,0 @@ -.mat-mdc-tab-nav-panel { - padding: 16px; - display: block; -} \ No newline at end of file diff --git a/frontend/src/app/admin/accounts/admin-accounts.component.ts b/frontend/src/app/admin/accounts/admin-accounts.component.ts index ff030394f..97c6ab47b 100644 --- a/frontend/src/app/admin/accounts/admin-accounts.component.ts +++ b/frontend/src/app/admin/accounts/admin-accounts.component.ts @@ -3,10 +3,9 @@ import { Observable } from 'rxjs'; import { Profile, ProfileService } from '../../profile/profile.service'; @Component({ - selector: 'app-admin-users-roles', - templateUrl: './admin-accounts.component.html', - styleUrls: ['./admin-accounts.component.css'], - standalone: false + selector: 'app-admin-users-roles', + templateUrl: './admin-accounts.component.html', + standalone: false }) export class AdminUsersRolesComponent { public profile$: Observable; diff --git a/frontend/src/app/admin/accounts/roles/details/admin-role-details.component.css b/frontend/src/app/admin/accounts/roles/details/admin-role-details.component.css deleted file mode 100644 index 9ecbffee9..000000000 --- a/frontend/src/app/admin/accounts/roles/details/admin-role-details.component.css +++ /dev/null @@ -1,17 +0,0 @@ -::ng-deep .mat-mdc-card-outlined { - max-width: 100% !important; - margin-right: 32px !important; -} - -h3 { - margin-top: 24px; -} - -.selected-user { - padding: 16px; -} - -.mat-mdc-footer-row td { - align-items: center; - padding-top: 16px; -} \ No newline at end of file diff --git a/frontend/src/app/admin/accounts/roles/details/admin-role-details.component.html b/frontend/src/app/admin/accounts/roles/details/admin-role-details.component.html index 716279e7b..1bedcb1a9 100644 --- a/frontend/src/app/admin/accounts/roles/details/admin-role-details.component.html +++ b/frontend/src/app/admin/accounts/roles/details/admin-role-details.component.html @@ -1,4 +1,4 @@ - + Role: {{ role.name }} @@ -70,15 +70,16 @@ {{ user.first_name }} {{ user.last_name }}
-
- -
- + @if(selectedUser) { +
+ +
+ } @else { User -
+ }
+
-
+ } @else { - - + + Active Reservations

It's lonely in here.

-
+ } } diff --git a/frontend/src/app/coworking/ambassador-home/ambassador-room/ambassador-room.component.ts b/frontend/src/app/coworking/ambassador-home/ambassador-room/ambassador-room.component.ts index 001517b6b..a16837951 100644 --- a/frontend/src/app/coworking/ambassador-home/ambassador-room/ambassador-room.component.ts +++ b/frontend/src/app/coworking/ambassador-home/ambassador-room/ambassador-room.component.ts @@ -11,10 +11,9 @@ import { permissionGuard } from 'src/app/permission.guard'; import { AmbassadorRoomService } from './ambassador-room.service'; @Component({ - selector: 'app-ambassador-room', - templateUrl: './ambassador-room.component.html', - styleUrls: ['./ambassador-room.component.css'], - standalone: false + selector: 'app-ambassador-room', + templateUrl: './ambassador-room.component.html', + standalone: false }) export class AmbassadorRoomComponent implements OnInit, OnDestroy { public static Route: Route = { diff --git a/frontend/src/app/coworking/ambassador-home/ambassador-xl/ambassador-xl.component.css b/frontend/src/app/coworking/ambassador-home/ambassador-xl/ambassador-xl.component.css deleted file mode 100644 index 5777b67e0..000000000 --- a/frontend/src/app/coworking/ambassador-home/ambassador-xl/ambassador-xl.component.css +++ /dev/null @@ -1,18 +0,0 @@ - -::ng-deep .mat-mdc-card-outlined { - max-width: 100% !important; - margin-right: 32px !important; -} - - - .mat-mdc-card-header { - margin-bottom: 16px; - } - - .walkinReservation.mat-mdc-card-content:last-child { - padding-bottom: 0; - } - - button { - margin-right: 1vw; - } \ No newline at end of file diff --git a/frontend/src/app/coworking/ambassador-home/ambassador-xl/ambassador-xl.component.html b/frontend/src/app/coworking/ambassador-home/ambassador-xl/ambassador-xl.component.html index 6587a0d24..30faae835 100644 --- a/frontend/src/app/coworking/ambassador-home/ambassador-xl/ambassador-xl.component.html +++ b/frontend/src/app/coworking/ambassador-home/ambassador-xl/ambassador-xl.component.html @@ -1,9 +1,9 @@
- - + + Reserve a Drop-in at the Welcome Desk - +

Create a walk-in reservation for an XL community member at the welcome desk. @@ -15,6 +15,7 @@

} }
-
+
@if (upcomingReservations()) { @if(upcomingReservations().length > 0) { - - + + Upcoming Reservations @@ -75,7 +76,7 @@ @@ -88,16 +89,16 @@
- + } @else { - - + + Upcoming Reservations

No upcoming reservations.

-
+ } } @if (activeReservations()) { @if(activeReservations().length > 0) { - + Active Reservations @@ -151,12 +152,12 @@
-
+ } @else { - - + + Active Reservations

It's lonely in here.

-
+ } } diff --git a/frontend/src/app/coworking/ambassador-home/ambassador-xl/ambassador-xl.component.ts b/frontend/src/app/coworking/ambassador-home/ambassador-xl/ambassador-xl.component.ts index d7c3cf9c2..9c6842d5c 100644 --- a/frontend/src/app/coworking/ambassador-home/ambassador-xl/ambassador-xl.component.ts +++ b/frontend/src/app/coworking/ambassador-home/ambassador-xl/ambassador-xl.component.ts @@ -16,10 +16,9 @@ import { CoworkingService } from '../../coworking.service'; const FIVE_SECONDS = 5 * 1000; @Component({ - selector: 'app-ambassador-xl', - templateUrl: './ambassador-xl.component.html', - styleUrls: ['./ambassador-xl.component.css'], - standalone: false + selector: 'app-ambassador-xl', + templateUrl: './ambassador-xl.component.html', + standalone: false }) export class AmbassadorXLComponent implements OnDestroy, OnInit { /** Route information to be used in App Routing Module */ diff --git a/frontend/src/app/coworking/coworking-home/coworking-home.component.css b/frontend/src/app/coworking/coworking-home/coworking-home.component.css deleted file mode 100644 index 536dbeb06..000000000 --- a/frontend/src/app/coworking/coworking-home/coworking-home.component.css +++ /dev/null @@ -1,31 +0,0 @@ -/** -* coworking.component.css -* -* The coworking page is the hub for students to reserve materials from -* the CSXL coworking space. -* -*/ - -.reserve-room-content { - display: flex; - flex-direction: row; - align-items: center; - margin-top: 16px; - margin-bottom: 16px; -} - -.reserve-room-text { - display: flex; - flex-direction: column; - justify-content: center; - margin-left: 16px; - - p { - margin-bottom: 0px; - } -} - -#new-room-reservation-button { - margin-left: auto; - margin-right: 16px; -} \ No newline at end of file diff --git a/frontend/src/app/coworking/coworking-home/coworking-home.component.html b/frontend/src/app/coworking/coworking-home/coworking-home.component.html index 2b468a78e..9c608d0d9 100644 --- a/frontend/src/app/coworking/coworking-home/coworking-home.component.html +++ b/frontend/src/app/coworking/coworking-home/coworking-home.component.html @@ -24,13 +24,13 @@ } -
-
+
+
Reserve a Room

Reserve a room in the XL hallway!