Added filter to hide removed students.
This commit is contained in:
parent
0a0bbe22c9
commit
1d4d98665d
|
@ -30,6 +30,7 @@ enum TableView {
|
||||||
const students: Ref<EntriesResponseStudent[]> = ref([])
|
const students: Ref<EntriesResponseStudent[]> = ref([])
|
||||||
const sortingChoice: Ref<string> = ref('name')
|
const sortingChoice: Ref<string> = ref('name')
|
||||||
const selectedView: Ref<TableView> = ref(TableView.FULL)
|
const selectedView: Ref<TableView> = ref(TableView.FULL)
|
||||||
|
const hideRemovedStudents: Ref<boolean> = ref(false)
|
||||||
|
|
||||||
const lastSaveState: Ref<string | null> = ref(null)
|
const lastSaveState: Ref<string | null> = ref(null)
|
||||||
const lastSaveStateTimestamp: Ref<number> = ref(0)
|
const lastSaveStateTimestamp: Ref<number> = ref(0)
|
||||||
|
@ -216,6 +217,13 @@ function getVisibleDates(): string[] {
|
||||||
return []
|
return []
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getVisibleStudents(): EntriesResponseStudent[] {
|
||||||
|
if (hideRemovedStudents.value === true) {
|
||||||
|
return students.value.filter(s => !s.removed && s.classId === props.classId)
|
||||||
|
}
|
||||||
|
return students.value
|
||||||
|
}
|
||||||
|
|
||||||
function getVisibleStudentEntries(student: EntriesResponseStudent): Record<string, Entry | null> {
|
function getVisibleStudentEntries(student: EntriesResponseStudent): Record<string, Entry | null> {
|
||||||
if (selectedView.value === TableView.FULL) return student.entries
|
if (selectedView.value === TableView.FULL) return student.entries
|
||||||
if (selectedView.value === TableView.TODAY) {
|
if (selectedView.value === TableView.TODAY) {
|
||||||
|
@ -267,6 +275,12 @@ defineExpose({
|
||||||
<option :value="TableView.WHITEBOARD">Whiteboard View</option>
|
<option :value="TableView.WHITEBOARD">Whiteboard View</option>
|
||||||
<option :value="TableView.TODAY">Today View</option>
|
<option :value="TableView.TODAY">Today View</option>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<span>
|
||||||
|
<input type="checkbox" id="show-removed-students-checkbox" v-model="hideRemovedStudents" />
|
||||||
|
<label for="show-removed-students-checkbox" style="display: inline; font-size: small;">Hide Removed
|
||||||
|
Students</label>
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p v-if="selectedView === TableView.GRADING">
|
<p v-if="selectedView === TableView.GRADING">
|
||||||
|
@ -285,16 +299,13 @@ defineExpose({
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr v-for="(student, idx) in students" :key="student.id" style="height: 2em;">
|
<tr v-for="(student, idx) in getVisibleStudents()" :key="student.id" style="height: 2em;">
|
||||||
<td v-if="selectedView !== TableView.WHITEBOARD" style="text-align: right; padding-right: 0.5em;">{{ idx + 1
|
<td v-if="selectedView !== TableView.WHITEBOARD" style="text-align: right; padding-right: 0.5em;">{{ idx + 1
|
||||||
}}.</td>
|
}}.</td>
|
||||||
<StudentNameCell :student="student" :class-id="classId" />
|
<StudentNameCell :student="student" :class-id="classId" />
|
||||||
<!-- Desk Number: -->
|
|
||||||
<td v-if="assignedDesks" v-text="student.deskNumber"></td>
|
<td v-if="assignedDesks" v-text="student.deskNumber"></td>
|
||||||
<!-- A cell for each entry in the table's date range: -->
|
|
||||||
<EntryTableCell v-for="(entry, date) in getVisibleStudentEntries(student)" :key="date"
|
<EntryTableCell v-for="(entry, date) in getVisibleStudentEntries(student)" :key="date"
|
||||||
v-model="student.entries[date]" :date-str="date" :last-save-state-timestamp="lastSaveStateTimestamp" />
|
v-model="student.entries[date]" :date-str="date" :last-save-state-timestamp="lastSaveStateTimestamp" />
|
||||||
<!-- Score cell: -->
|
|
||||||
<StudentScoreCell :score="student.score" v-if="selectedView !== TableView.WHITEBOARD" />
|
<StudentScoreCell :score="student.score" v-if="selectedView !== TableView.WHITEBOARD" />
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
Loading…
Reference in New Issue