UNCLASSIFIED

Commit df2be3bf authored by hunter.congress's avatar hunter.congress
Browse files

fixing package.json

parent 571ca02e
...@@ -4778,19 +4778,6 @@ ...@@ -4778,19 +4778,6 @@
"picomatch": "^2.0.4" "picomatch": "^2.0.4"
} }
}, },
"apexcharts": {
"version": "3.26.0",
"resolved": "https://registry.npmjs.org/apexcharts/-/apexcharts-3.26.0.tgz",
"integrity": "sha512-zdYHs3k3tgmCn1BpYLj7rhGEndBYF33Pq1+g0ora37xAr+3act5CJrpdXM2jx2boVUyXgavoSp6sa8WpK7RkSA==",
"requires": {
"svg.draggable.js": "^2.2.2",
"svg.easing.js": "^2.0.0",
"svg.filter.js": "^2.0.2",
"svg.pathmorphing.js": "^0.1.3",
"svg.resize.js": "^1.4.3",
"svg.select.js": "^3.0.1"
}
},
"aproba": { "aproba": {
"version": "1.2.0", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
...@@ -19205,70 +19192,6 @@ ...@@ -19205,70 +19192,6 @@
"svgo": "^1.3.2" "svgo": "^1.3.2"
} }
}, },
"svg.draggable.js": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/svg.draggable.js/-/svg.draggable.js-2.2.2.tgz",
"integrity": "sha512-JzNHBc2fLQMzYCZ90KZHN2ohXL0BQJGQimK1kGk6AvSeibuKcIdDX9Kr0dT9+UJ5O8nYA0RB839Lhvk4CY4MZw==",
"requires": {
"svg.js": "^2.0.1"
}
},
"svg.easing.js": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/svg.easing.js/-/svg.easing.js-2.0.0.tgz",
"integrity": "sha1-iqmUawqOJ4V6XEChDrpAkeVpHxI=",
"requires": {
"svg.js": ">=2.3.x"
}
},
"svg.filter.js": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/svg.filter.js/-/svg.filter.js-2.0.2.tgz",
"integrity": "sha1-kQCOFROJ3ZIwd5/L5uLJo2LRwgM=",
"requires": {
"svg.js": "^2.2.5"
}
},
"svg.js": {
"version": "2.7.1",
"resolved": "https://registry.npmjs.org/svg.js/-/svg.js-2.7.1.tgz",
"integrity": "sha512-ycbxpizEQktk3FYvn/8BH+6/EuWXg7ZpQREJvgacqn46gIddG24tNNe4Son6omdXCnSOaApnpZw6MPCBA1dODA=="
},
"svg.pathmorphing.js": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/svg.pathmorphing.js/-/svg.pathmorphing.js-0.1.3.tgz",
"integrity": "sha512-49HWI9X4XQR/JG1qXkSDV8xViuTLIWm/B/7YuQELV5KMOPtXjiwH4XPJvr/ghEDibmLQ9Oc22dpWpG0vUDDNww==",
"requires": {
"svg.js": "^2.4.0"
}
},
"svg.resize.js": {
"version": "1.4.3",
"resolved": "https://registry.npmjs.org/svg.resize.js/-/svg.resize.js-1.4.3.tgz",
"integrity": "sha512-9k5sXJuPKp+mVzXNvxz7U0uC9oVMQrrf7cFsETznzUDDm0x8+77dtZkWdMfRlmbkEEYvUn9btKuZ3n41oNA+uw==",
"requires": {
"svg.js": "^2.6.5",
"svg.select.js": "^2.1.2"
},
"dependencies": {
"svg.select.js": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/svg.select.js/-/svg.select.js-2.1.2.tgz",
"integrity": "sha512-tH6ABEyJsAOVAhwcCjF8mw4crjXSI1aa7j2VQR8ZuJ37H2MBUbyeqYr5nEO7sSN3cy9AR9DUwNg0t/962HlDbQ==",
"requires": {
"svg.js": "^2.2.5"
}
}
}
},
"svg.select.js": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/svg.select.js/-/svg.select.js-3.0.1.tgz",
"integrity": "sha512-h5IS/hKkuVCbKSieR9uQCj9w+zLHoPh+ce19bBYyqF53g6mnPB8sAtIbe1s9dh2S2fCmYX2xel1Ln3PJBbK4kw==",
"requires": {
"svg.js": "^2.6.5"
}
},
"svgo": { "svgo": {
"version": "1.3.2", "version": "1.3.2",
"resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz",
...@@ -20255,11 +20178,6 @@ ...@@ -20255,11 +20178,6 @@
"resolved": "https://registry.npmjs.org/vue/-/vue-2.6.12.tgz", "resolved": "https://registry.npmjs.org/vue/-/vue-2.6.12.tgz",
"integrity": "sha512-uhmLFETqPPNyuLLbsKz6ioJ4q7AZHzD8ZVFNATNyICSZouqP2Sz0rotWQC8UNBF6VGSCs5abnKJoStA6JbCbfg==" "integrity": "sha512-uhmLFETqPPNyuLLbsKz6ioJ4q7AZHzD8ZVFNATNyICSZouqP2Sz0rotWQC8UNBF6VGSCs5abnKJoStA6JbCbfg=="
}, },
"vue-apexcharts": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/vue-apexcharts/-/vue-apexcharts-1.6.0.tgz",
"integrity": "sha512-sT6tuVTLBwfH3TA7azecDNS/W70bmz14ZJI7aE7QIqcG9I6OywyH7x3hcOeY1v1DxttI8Svc5RuYj4Dd+A5F4g=="
},
"vue-body-class": { "vue-body-class": {
"version": "3.0.2", "version": "3.0.2",
"resolved": "https://registry.npmjs.org/vue-body-class/-/vue-body-class-3.0.2.tgz", "resolved": "https://registry.npmjs.org/vue-body-class/-/vue-body-class-3.0.2.tgz",
......
...@@ -17,14 +17,12 @@ ...@@ -17,14 +17,12 @@
"prettify:pretty-quick" "prettify:pretty-quick"
], ],
"dependencies": { "dependencies": {
"apexcharts": "^3.26.0",
"axios": "^0.21.1", "axios": "^0.21.1",
"core-js": "^3.6.4", "core-js": "^3.6.4",
"downloadjs": "^1.4.7", "downloadjs": "^1.4.7",
"lodash": "^4.17.20", "lodash": "^4.17.20",
"moment": "^2.29.1", "moment": "^2.29.1",
"vue": "^2.6.11", "vue": "^2.6.11",
"vue-apexcharts": "^1.6.0",
"vue-body-class": "^3.0.2", "vue-body-class": "^3.0.2",
"vue-router": "^3.1.6", "vue-router": "^3.1.6",
"vuetify": "^2.4.2", "vuetify": "^2.4.2",
......
import { HTTP } from "@/api/http-common";
export default {
async getRemainingSeats() {
return await HTTP.get(
"/admin/capacity-metrics?dateFrom=2020-01-05&dateTo=2020-01-10"
);
},
async capacityMetrics(startDate, endDate) {
return await HTTP.get(
`/admin/capacity-metrics?dateFrom=${startDate}&dateTo=${endDate}`
);
},
};
// TO-DO to run on endpoint that provides all courses, not just those that the
Super admin // is registered for
<template>
<v-container class="curriculum-schedule text-left px-2">
<v-skeleton-loader :loading="loading" type="paragraph@5" class="w-100">
<v-card v-if="emptyString">
<v-card-title
>There currently are no current or upcoming courses.</v-card-title
>
<v-card-text
>Courses in progress or upcoming will appear here.</v-card-text
>
</v-card>
<v-container class="px-6" v-else>
<div
v-for="(item, index) in schedule"
:key="index"
class="d-flex flex-wrap flex-sm-nowrap text-left pb-3"
>
<div class="d-flex">
<div class="col-6 d-inline-block d-flex align-start">
{{ item.name }}
</div>
<div class="col-10 d-inline-block">
{{ item.startDate }} - {{ item.endDate }}
</div>
<div class="col-10 d-inline-block">
<div v-if="inDateRange(item.startDate, item.endDate)">
In Progress
</div>
<div v-else>
{{ seatsRemaining(item.capacity, item.registeredCount) }}
remaining seats
</div>
</div>
</div>
</div>
</v-container>
</v-skeleton-loader>
</v-container>
</template>
<script>
import ScheduleService from "@/api/services/schedule";
import moment from "moment";
export default {
data: () => ({
loading: false,
schedule: [],
emptyString: false,
}),
async mounted() {
this.params = {
...this.params,
registeredCount: true,
dateFrom: `${moment().format("YYYY-MM-DD")}`,
dateTo: `${moment().add(2, "months").format("YYYY-MM-DD")}`,
};
try {
this.loading = true;
const response = await ScheduleService.getCoursesWithSeats(this.params);
console.log(response);
this.schedule = response.courses;
if (this.schedule.length === 0) {
this.emptyString = true;
}
} catch (error) {
// TODO: WHY AREN'T ERRORS DISPLAYED TO THE USER???
console.error(error);
} finally {
this.loading = false;
}
},
methods: {
inDateRange(startDate, endDate) {
return moment().isBetween(startDate, endDate);
},
seatsRemaining(capacity, registered) {
return capacity - registered;
},
},
};
</script>
<style lang="scss" scoped>
.curriculum-schedule {
position: relative;
}
.availability-bar {
min-width: 120px;
width: 120px;
}
</style>
...@@ -105,7 +105,7 @@ ...@@ -105,7 +105,7 @@
:disabled="state.isUndoingDelete" :disabled="state.isUndoingDelete"
@click=" @click="
state.isAdding = true; state.isAdding = true;
fetchDebounced; fetchData();
" "
> >
Add New Course Add New Course
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment