Skip to content

Commit 9318004

Browse files
author
andxu282
committed
fixed dropdowns
1 parent 047d9f9 commit 9318004

File tree

1 file changed

+24
-1
lines changed

1 file changed

+24
-1
lines changed

src/components/ScheduleGenerate/ScheduleGenerateSideBar.vue

+24-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<template>
22
<div class="sidebar">
3+
<confirmation :text="confirmationText" v-if="isConfirmationOpen" />
34
<div class="sidebar-header">
45
<h1 class="top header-title">Semester Schedule Builder</h1>
56
<div class="semester">
@@ -71,12 +72,15 @@
7172
<script lang="ts">
7273
import { defineComponent } from 'vue';
7374
import RequirementCourses from '@/components/ScheduleGenerate/RequirementCourses.vue';
75+
import Confirmation from '@/components/Modals/Confirmation.vue';
7476
7577
export default defineComponent({
7678
data(): {
7779
requirements: string[];
7880
availableRequirements: Record<string, string>;
7981
numberOfRequirements: number;
82+
isConfirmationOpen: boolean;
83+
confirmationText: string;
8084
} {
8185
return {
8286
requirements: [],
@@ -86,10 +90,13 @@ export default defineComponent({
8690
'Liberal Studies': 'Liberal Studies',
8791
},
8892
numberOfRequirements: 3,
93+
isConfirmationOpen: false,
94+
confirmationText: '',
8995
};
9096
},
9197
components: {
9298
RequirementCourses,
99+
Confirmation,
93100
},
94101
props: {
95102
// current semester being generated for
@@ -99,6 +106,18 @@ export default defineComponent({
99106
},
100107
emits: ['openScheduleGenerateModal'],
101108
methods: {
109+
openConfirmationModal(msg: string) {
110+
// Set text and display confirmation modal, then have it disappear after 3 seconds
111+
this.confirmationText = msg;
112+
this.isConfirmationOpen = true;
113+
114+
setTimeout(() => {
115+
this.closeConfirmationModal();
116+
}, 2000);
117+
},
118+
closeConfirmationModal() {
119+
this.isConfirmationOpen = false;
120+
},
102121
addRequirement() {
103122
this.requirements = [...this.requirements, ''];
104123
},
@@ -112,11 +131,15 @@ export default defineComponent({
112131
if (requirement !== '') this.availableRequirements[requirement] = requirement;
113132
},
114133
deleteRequirement(index: number) {
134+
const requirement = this.requirements[index];
115135
// add back to the availableRequirements record
116-
this.addAvailableRequirement(this.requirements[index]);
136+
this.addAvailableRequirement(requirement);
117137
118138
// delete this requirement from list
119139
this.requirements.splice(index, 1);
140+
this.openConfirmationModal(
141+
`Removed ${requirement === '' ? 'requirement' : requirement} from schedule builder`
142+
);
120143
},
121144
openScheduleGenerateModal() {
122145
this.$emit('openScheduleGenerateModal');

0 commit comments

Comments
 (0)