diff --git a/ui/winstudentgoaltracker/src/app/desktop/components/benchmark-card-full/benchmark-card-full.ts b/ui/winstudentgoaltracker/src/app/desktop/components/benchmark-card-full/benchmark-card-full.ts
index 5b1a8e6..8635c82 100644
--- a/ui/winstudentgoaltracker/src/app/desktop/components/benchmark-card-full/benchmark-card-full.ts
+++ b/ui/winstudentgoaltracker/src/app/desktop/components/benchmark-card-full/benchmark-card-full.ts
@@ -82,6 +82,7 @@ export class BenchmarkCardFull implements OnDestroy {
if (result.success) {
this.successMessage.set('Benchmark created.');
this.savedBenchmarkText = this.benchmarkText;
+ this.studentService.notifyDataChanged();
if (result.payload?.benchmarkId) {
this.router.navigate(['/students', this.studentId, 'goals', this.goalId, 'benchmarks', result.payload.benchmarkId]);
}
diff --git a/ui/winstudentgoaltracker/src/app/desktop/components/goal-card-full/goal-card-full.html b/ui/winstudentgoaltracker/src/app/desktop/components/goal-card-full/goal-card-full.html
index 559646e..91b6622 100644
--- a/ui/winstudentgoaltracker/src/app/desktop/components/goal-card-full/goal-card-full.html
+++ b/ui/winstudentgoaltracker/src/app/desktop/components/goal-card-full/goal-card-full.html
@@ -15,8 +15,8 @@
@if (loaded()) {
-
-
+
+
@@ -24,8 +24,9 @@
placeholder="Enter description...">
-
-
+
+
diff --git a/ui/winstudentgoaltracker/src/app/desktop/components/goal-card-full/goal-card-full.ts b/ui/winstudentgoaltracker/src/app/desktop/components/goal-card-full/goal-card-full.ts
index 51c09ac..1b04e65 100644
--- a/ui/winstudentgoaltracker/src/app/desktop/components/goal-card-full/goal-card-full.ts
+++ b/ui/winstudentgoaltracker/src/app/desktop/components/goal-card-full/goal-card-full.ts
@@ -113,7 +113,7 @@ export class GoalCardFull implements OnDestroy {
}
onBenchmarks() {
- this.router.navigate(['/students', this.studentId, 'benchmarks']);
+ this.router.navigate(['/students', this.studentId, 'goals', this.goalId, 'benchmarks']);
}
ngOnDestroy() {
diff --git a/ui/winstudentgoaltracker/src/app/desktop/components/goal-list/goal-list.ts b/ui/winstudentgoaltracker/src/app/desktop/components/goal-list/goal-list.ts
index 027d533..4023964 100644
--- a/ui/winstudentgoaltracker/src/app/desktop/components/goal-list/goal-list.ts
+++ b/ui/winstudentgoaltracker/src/app/desktop/components/goal-list/goal-list.ts
@@ -50,6 +50,7 @@ export class GoalList implements OnDestroy {
this.goals.update(list => [...list, goal]);
this.showAddModal.set(false);
this.studentService.notifyDataChanged();
+ this.router.navigate(['/students', this.studentId, 'goals', goal.goalId]);
}
onModalCancelled() {
diff --git a/ui/winstudentgoaltracker/src/app/desktop/components/student-card-list/student-card-list.ts b/ui/winstudentgoaltracker/src/app/desktop/components/student-card-list/student-card-list.ts
index 3461932..ec01e41 100644
--- a/ui/winstudentgoaltracker/src/app/desktop/components/student-card-list/student-card-list.ts
+++ b/ui/winstudentgoaltracker/src/app/desktop/components/student-card-list/student-card-list.ts
@@ -1,4 +1,5 @@
import { Component, inject, signal } from '@angular/core';
+import { Router } from '@angular/router';
import { StudentCard } from '../student-card/student-card';
import { AddStudentModal } from '../add-student-modal/add-student-modal';
import { DummyStudentService } from '../../../shared/services/dummy-student.service';
@@ -24,6 +25,7 @@ export class StudentCardList {
// ************************** Declarations *************************
private readonly studentService = inject(StudentService);
+ private readonly router = inject(Router);
protected readonly students = signal
([]);
protected readonly displayMode = signal('card');
protected readonly showAddModal = signal(false);
@@ -45,6 +47,7 @@ export class StudentCardList {
this.students.update(list => this.sortByIdentifier([...list, student]));
this.showAddModal.set(false);
this.studentService.notifyDataChanged();
+ this.router.navigate(['/students', student.studentId]);
}
onModalCancelled() {
diff --git a/ui/winstudentgoaltracker/src/app/desktop/pages/home/home.ts b/ui/winstudentgoaltracker/src/app/desktop/pages/home/home.ts
index 1a87ce3..0d78b4f 100644
--- a/ui/winstudentgoaltracker/src/app/desktop/pages/home/home.ts
+++ b/ui/winstudentgoaltracker/src/app/desktop/pages/home/home.ts
@@ -153,6 +153,7 @@ export class Home implements OnDestroy {
.filter(b => b.goalId === goalId)
.map(b => ({
label: b.benchmark,
+ routerLink: ['/students', studentId, 'goals', goalId, 'benchmarks', b.benchmarkId],
}));
}
diff --git a/ui/winstudentgoaltracker/src/app/mobile/pages/students/students.html b/ui/winstudentgoaltracker/src/app/mobile/pages/students/students.html
index 1fd2cc6..73297ca 100644
--- a/ui/winstudentgoaltracker/src/app/mobile/pages/students/students.html
+++ b/ui/winstudentgoaltracker/src/app/mobile/pages/students/students.html
@@ -1,5 +1,12 @@
+@if (loaded() && students().length === 0) {
+
+
You don't currently have any students.
+
Please log into the desktop app to add your students.
+
+} @else {
@for (student of students(); track student.studentId) {
}
-
\ No newline at end of file
+
+}
\ No newline at end of file
diff --git a/ui/winstudentgoaltracker/src/app/mobile/pages/students/students.scss b/ui/winstudentgoaltracker/src/app/mobile/pages/students/students.scss
index 6e6e55e..a649541 100644
--- a/ui/winstudentgoaltracker/src/app/mobile/pages/students/students.scss
+++ b/ui/winstudentgoaltracker/src/app/mobile/pages/students/students.scss
@@ -6,4 +6,14 @@
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 0.75rem;
+}
+
+.empty-state {
+ padding: 1.5rem 1rem;
+ text-align: center;
+ color: #888;
+ font-size: 0.875rem;
+ background: #fff;
+ border-radius: 10px;
+ border: 1px solid #e5e5e5;
}
\ No newline at end of file
diff --git a/ui/winstudentgoaltracker/src/app/mobile/pages/students/students.ts b/ui/winstudentgoaltracker/src/app/mobile/pages/students/students.ts
index f9bb9dd..07a2b0c 100644
--- a/ui/winstudentgoaltracker/src/app/mobile/pages/students/students.ts
+++ b/ui/winstudentgoaltracker/src/app/mobile/pages/students/students.ts
@@ -22,6 +22,7 @@ export class Students {
private readonly studentService = inject(StudentService);
protected readonly students = signal
([]);
+ protected readonly loaded = signal(false);
public errorMessage = signal(null);
@@ -46,6 +47,7 @@ export class Students {
else
{
this.students.set(data.payload || []);
+ this.loaded.set(true);
}
});
}