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 2727 @input =" $emit('college:change', $event)"
2828 ></v-select >
2929 </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+
3046 </v-row >
3147 </v-container >
3248 </v-card-actions >
@@ -40,12 +56,14 @@ export default {
4056 colleges : { type: Array , default : () => [] },
4157 loading: { type: Boolean , default: false },
4258 genders: {type: Array , default : () => []},
59+ allDepartments: {type: Array , default : () => []},
4360 },
44- emits: [' major :change' , ' semsters :change' , ' department:change' ],
61+ emits: [' gender :change' , ' college :change' , ' department:change' ],
4562 data () {
4663 return {
4764 selectedGender: null , /* "male" or "female" */
48- selectedCollege: null ,
65+ selectedCollege: null ,
66+ selectedDepartments: [],
4967 }
5068 },
5169 computed: {},
Original file line number Diff line number Diff line change 99 <ClassesFilters
1010 @college:change =" collegeChange($event)"
1111 @gender:change =" genderChange($event)"
12+ @department:change =" selectedDepartments = $event"
1213 :colleges =" colleges"
1314 :genders =" genders"
15+ :allDepartments =" allDepartments"
1416 />
1517 <ClassesList
1618 :loading =" loadingClasses"
@@ -58,12 +60,23 @@ export default {
5860 loadingClasses: false ,
5961 snackbarText: ' ' ,
6062 snackbarActive: false ,
63+ selectedDepartments: [],
6164 }
6265 },
6366 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+ },
6474 filteredClasses () {
6575 // 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 ) =>
6780 findConflicts (clas, this .selectedClasses )
6881 )
6982 filtered = filtered .map (buttonOptions)
You can’t perform that action at this time.
0 commit comments