Skip to content

Commit 3677bee

Browse files
committed
feat: classfilters
1 parent 796bd87 commit 3677bee

2 files changed

Lines changed: 132 additions & 13 deletions

File tree

components/ClassesFilters.vue

Lines changed: 63 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,70 @@
11
<template>
22
<v-row justify="center" align="center">
33
<v-col cols="12" sm="12" md="10" lg="8">
4-
<v-card class="py-4 d-flex flex-center">
5-
<v-select />
6-
<v-select />
7-
<v-select />
8-
<v-select />
9-
<v-select />
4+
<v-card>
5+
<v-card-title> Filters </v-card-title>
6+
<v-card-actions>
7+
<v-container fluid>
8+
<v-row align="center">
9+
<v-col class="d-flex" cols="12" sm="4">
10+
<v-select
11+
v-model="selectedDepartment"
12+
:items="Object.keys(departments)"
13+
label="Department"
14+
></v-select>
15+
</v-col>
16+
17+
<v-col class="d-flex" cols="12" sm="4">
18+
<v-select
19+
v-model="selectedMajor"
20+
:items="departments[selectedDepartment]"
21+
item-text="name"
22+
item-value="abbrv"
23+
label="Major"
24+
return-object
25+
:disabled="!selectedDepartment"
26+
@input="$emit('major:change', $event)"
27+
></v-select>
28+
</v-col>
29+
<v-col class="d-flex" cols="12" sm="4">
30+
<v-select
31+
:items="semsters"
32+
label="Semsters"
33+
:disabled="!selectedMajor"
34+
@input="$emit('semsters:change', $event)"
35+
chips
36+
multiple
37+
></v-select>
38+
</v-col>
39+
</v-row>
40+
</v-container>
41+
</v-card-actions>
1042
</v-card>
1143
</v-col>
1244
</v-row>
1345
</template>
14-
15-
<script lang="ts"></script>
46+
<script lang="ts">
47+
export default {
48+
props: {
49+
departments: { type: Object },
50+
},
51+
emits: ['major:change', 'semsters:change'],
52+
data() {
53+
return {
54+
selectedDepartment: null,
55+
selectedMajor: null,
56+
}
57+
},
58+
computed: {
59+
semsters() {
60+
if (this.selectedMajor) {
61+
let sems = this.selectedMajor.sems
62+
return sems
63+
} else {
64+
return []
65+
}
66+
},
67+
},
68+
methods: {},
69+
}
70+
</script>

pages/index.vue

Lines changed: 69 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,76 @@
11
<template>
22
<div>
3-
<ClassesCalendar />
4-
<ClassesSelectedStats />
5-
<ClassesFilters />
6-
<ClassesList />
3+
<!-- <ClassesCalendar /> -->
4+
<!-- <ClassesSelectedStats /> -->
5+
<ClassesFilters :departments="departments" />
6+
<ClassesList :classes="classes" />
77
</div>
88
</template>
99

1010
<script>
11-
export default {}
11+
export default {
12+
data() {
13+
return {
14+
departments: {
15+
Engineering: [
16+
{
17+
name: 'Electrical Engineering',
18+
abbrv: 'EE',
19+
sems: [...Array(9).keys()],
20+
},
21+
{
22+
name: 'Mechanical Engineering',
23+
abbrv: 'ME',
24+
sems: [...Array(9).keys()],
25+
},
26+
{
27+
name: 'Chemical Engineering',
28+
abbrv: 'ChE',
29+
sems: [...Array(9).keys()],
30+
},
31+
{
32+
name: 'Civil Engineering',
33+
abbrv: 'CE',
34+
sems: [...Array(9).keys()],
35+
},
36+
],
37+
'Computer Science': [
38+
{ name: 'Networking', abbrv: 'Net', sems: [...Array(9).keys()] },
39+
],
40+
},
41+
classes: [
42+
{
43+
code: '00000',
44+
name: 'Course Name',
45+
crn: '01123',
46+
section: '03',
47+
days: 'MWT',
48+
time: '09:30-12:00',
49+
instructor: 'Ins Name',
50+
semster_index: 1,
51+
},
52+
{
53+
code: '00010',
54+
name: 'Course Name',
55+
crn: '01121',
56+
section: '03',
57+
days: 'MWT',
58+
time: '09:30-12:00',
59+
instructor: 'Ins Name',
60+
semster_index: 1,
61+
},
62+
{
63+
code: '00001',
64+
name: 'Course 2',
65+
crn: '01122',
66+
section: '01',
67+
days: 'MWT',
68+
time: '09:30-12:00',
69+
instructor: 'Ins Name2',
70+
semster_index: 2,
71+
},
72+
],
73+
}
74+
},
75+
}
1276
</script>

0 commit comments

Comments
 (0)