File tree Expand file tree Collapse file tree 2 files changed +34
-3
lines changed Expand file tree Collapse file tree 2 files changed +34
-3
lines changed Original file line number Diff line number Diff line change 27
27
@input =" $emit('college:change', $event)"
28
28
></v-select >
29
29
</v-col >
30
+
31
+ <v-col class =" d-flex" cols =" 12" sm =" 4" >
32
+ <v-select
33
+ v-model =" selectedDepartments"
34
+ :items =" allDepartments"
35
+ item-text =" name"
36
+ item-value =" abbrv"
37
+ label =" Departments"
38
+ return-object
39
+ :disabled =" !selectedCollege"
40
+ @input =" $emit('department:change', $event)"
41
+ chips
42
+ multiple
43
+ ></v-select >
44
+ </v-col >
45
+
30
46
</v-row >
31
47
</v-container >
32
48
</v-card-actions >
@@ -40,12 +56,14 @@ export default {
40
56
colleges : { type: Array , default : () => [] },
41
57
loading: { type: Boolean , default: false },
42
58
genders: {type: Array , default : () => []},
59
+ allDepartments: {type: Array , default : () => []},
43
60
},
44
- emits: [' major :change' , ' semsters :change' , ' department:change' ],
61
+ emits: [' gender :change' , ' college :change' , ' department:change' ],
45
62
data () {
46
63
return {
47
64
selectedGender: null , /* "male" or "female" */
48
- selectedCollege: null ,
65
+ selectedCollege: null ,
66
+ selectedDepartments: [],
49
67
}
50
68
},
51
69
computed: {},
Original file line number Diff line number Diff line change 9
9
<ClassesFilters
10
10
@college:change =" collegeChange($event)"
11
11
@gender:change =" genderChange($event)"
12
+ @department:change =" selectedDepartments = $event"
12
13
:colleges =" colleges"
13
14
:genders =" genders"
15
+ :allDepartments =" allDepartments"
14
16
/>
15
17
<ClassesList
16
18
:loading =" loadingClasses"
@@ -58,12 +60,23 @@ export default {
58
60
loadingClasses: false ,
59
61
snackbarText: ' ' ,
60
62
snackbarActive: false ,
63
+ selectedDepartments: [],
61
64
}
62
65
},
63
66
computed: {
67
+ allDepartments (){
68
+ // with duplicates
69
+ let departments = this .rawClasses .map ((a )=> a .department );
70
+ // without dups
71
+ let unique = [... new Set (departments)];
72
+ return unique;
73
+ },
64
74
filteredClasses () {
65
75
// it no longer filters, this naming is due to historic reasons
66
- let filtered = this .rawClasses .map ((clas ) =>
76
+ let filtered = this .rawClasses .filter (clas =>
77
+ this .selectedDepartments .includes (clas .department )
78
+ )
79
+ filtered = filtered .map ((clas ) =>
67
80
findConflicts (clas, this .selectedClasses )
68
81
)
69
82
filtered = filtered .map (buttonOptions)
You can’t perform that action at this time.
0 commit comments