From 949428b75b3a115ac680cfaa27ef6a96c93afb5a Mon Sep 17 00:00:00 2001 From: "hunter.congress" Date: Mon, 8 Mar 2021 13:42:38 -0700 Subject: [PATCH 001/256] added error messages --- src/api/services/training.js | 28 +-- src/components/APIErrorCard.vue | 64 +++++++ .../{APIError.vue => APIErrorDialog.vue} | 0 src/components/CurriculumSchedule.vue | 10 +- src/components/LaunchboardSettings.vue | 2 +- src/components/ProjectsSummary.vue | 12 +- src/components/SystemStatusSummary.vue | 170 +++++++++--------- src/components/WelcomeSummary.vue | 5 +- src/views/Launchboard.vue | 3 - src/views/Team.vue | 15 +- src/views/TrainingDetails.vue | 43 +++-- src/views/super-admin/Personnel.vue | 7 +- src/views/super-admin/Teams.vue | 11 +- src/views/super-admin/Training.vue | 12 +- 14 files changed, 232 insertions(+), 150 deletions(-) create mode 100644 src/components/APIErrorCard.vue rename src/components/{APIError.vue => APIErrorDialog.vue} (100%) diff --git a/src/api/services/training.js b/src/api/services/training.js index 28ad70b..ac360d1 100644 --- a/src/api/services/training.js +++ b/src/api/services/training.js @@ -39,36 +39,10 @@ export default { }, async addStudents(courseId, students) { for (const student of students) { - await this.addStudent(courseId, { userId: student.id }); + await this.addStudent(courseId, student); } }, async exportCourses() { window.open("/api/courses/export"); }, - - async getCourseRegistrationsById(courseId, params) { - return await HTTP.get(`/courses/${courseId}/registrations`, { - params, - }); - }, - async setUserAttendance(courseId, body) { - return await HTTP.put( - `/courses/${courseId}/registrations/attendance`, - body - ); - }, - async setCourseRegistrationsByUserId(courseId, userId, body) { - return await HTTP.put(`/courses/${courseId}/registrations/${userId}`, body); - }, - async removeCourseRegistrationsByUserId(courseId, userId) { - return await HTTP.delete(`/courses/${courseId}/registrations/${userId}`); - }, - async removeCourseRegistrationsByUsers(courseId, registrations) { - for (const registration of registrations) { - await this.removeCourseRegistrationsByUserId( - courseId, - registration.user.id - ); - } - }, }; diff --git a/src/components/APIErrorCard.vue b/src/components/APIErrorCard.vue new file mode 100644 index 0000000..9fdd332 --- /dev/null +++ b/src/components/APIErrorCard.vue @@ -0,0 +1,64 @@ + + + diff --git a/src/components/APIError.vue b/src/components/APIErrorDialog.vue similarity index 100% rename from src/components/APIError.vue rename to src/components/APIErrorDialog.vue diff --git a/src/components/CurriculumSchedule.vue b/src/components/CurriculumSchedule.vue index 3328834..ed4d0fa 100644 --- a/src/components/CurriculumSchedule.vue +++ b/src/components/CurriculumSchedule.vue @@ -5,6 +5,7 @@ You currently don't have any classes! Your scheduled classes will appear here. +
import ScheduleService from "@/api/services/schedule"; +import { SET_ERROR_MESSAGE } from "@/store/mutation-types"; +import ErrorMessage from "@/components/APIErrorCard"; export default { + components: { + ErrorMessage, + }, data: () => ({ loading: false, schedule: [], emptyString: false, + error: false, }), async mounted() { try { @@ -51,7 +58,8 @@ export default { this.emptyString = true; } } catch (error) { - // TODO: WHY AREN'T ERRORS DISPLAYED TO THE USER??? + this.error = true; + this.$store.commit(SET_ERROR_MESSAGE, error); console.error(error); } finally { this.loading = false; diff --git a/src/components/LaunchboardSettings.vue b/src/components/LaunchboardSettings.vue index 071474e..e078fbe 100644 --- a/src/components/LaunchboardSettings.vue +++ b/src/components/LaunchboardSettings.vue @@ -70,7 +70,7 @@ -- GitLab From cfd68181294ea7933a5055e7a8a7562411d15f48 Mon Sep 17 00:00:00 2001 From: "hunter.congress" Date: Tue, 16 Mar 2021 13:04:52 -0600 Subject: [PATCH 012/256] finish redesign of error message --- src/api/services/project.js | 2 +- src/components/APIErrorCard.vue | 44 +++++++++++++++++---------------- 2 files changed, 24 insertions(+), 22 deletions(-) diff --git a/src/api/services/project.js b/src/api/services/project.js index b141a86..4402b73 100644 --- a/src/api/services/project.js +++ b/src/api/services/project.js @@ -3,7 +3,7 @@ import { HTTP } from "@/api/http-common"; export default { async getProjectsSummary() { return await HTTP.get( - "/gitlab/projects-with-jobs-and-pipelines-for-logged-in-user" + "/gitlab/projects-with-jobs-and-pipelines-for-logged-in-user///" ); }, }; diff --git a/src/components/APIErrorCard.vue b/src/components/APIErrorCard.vue index 9fdd332..cbf8d14 100644 --- a/src/components/APIErrorCard.vue +++ b/src/components/APIErrorCard.vue @@ -1,34 +1,32 @@ - diff --git a/src/views/super-admin/LaunchboardSuperAdmin.vue b/src/views/super-admin/LaunchboardSuperAdmin.vue index 558db43..10c05a4 100644 --- a/src/views/super-admin/LaunchboardSuperAdmin.vue +++ b/src/views/super-admin/LaunchboardSuperAdmin.vue @@ -18,9 +18,7 @@
-

- My Courses -

+

My Courses

@@ -30,9 +28,7 @@
-

- Remaining Seats -

+

Remaining Seats

@@ -87,7 +83,7 @@ import UserBanner from "@/components/UserBanner"; import Section from "@/components/Section"; import CurriculumSchedule from "@/components/CurriculumSchedule"; import WelcomeSummary from "@/components/WelcomeSummary"; -import ErrorMessage from "@/components/APIError"; +import ErrorMessage from "@/components/APIErrorDialog"; export default { components: { UserBanner, -- GitLab From dc8f62cf857dcf6b273413debc812518a68ffe42 Mon Sep 17 00:00:00 2001 From: "hunter.congress" Date: Wed, 17 Mar 2021 15:21:44 -0600 Subject: [PATCH 015/256] added pie chart --- package-lock.json | 123 +++++++++++++++++- package.json | 3 + .../SuperAdminDashboard/PastMonthlySeats.vue | 41 ++++++ .../super-admin/LaunchboardSuperAdmin.vue | 7 +- 4 files changed, 167 insertions(+), 7 deletions(-) create mode 100644 src/components/SuperAdminDashboard/PastMonthlySeats.vue diff --git a/package-lock.json b/package-lock.json index 811be9d..cb26621 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3253,6 +3253,14 @@ "@types/node": "*" } }, + "@types/chart.js": { + "version": "2.9.31", + "resolved": "https://registry.npmjs.org/@types/chart.js/-/chart.js-2.9.31.tgz", + "integrity": "sha512-hzS6phN/kx3jClk3iYqEHNnYIRSi4RZrIGJ8CDLjgatpHoftCezvC44uqB3o3OUm9ftU1m7sHG8+RLyPTlACrA==", + "requires": { + "moment": "^2.10.2" + } + }, "@types/connect": { "version": "3.4.34", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.34.tgz", @@ -4754,6 +4762,19 @@ "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": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", @@ -6054,6 +6075,32 @@ "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", "dev": true }, + "chart.js": { + "version": "2.9.4", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-2.9.4.tgz", + "integrity": "sha512-B07aAzxcrikjAPyV+01j7BmOpxtQETxTSlQ26BEYJ+3iUkbNKaOJ/nDbT6JjyqYxseM0ON12COHYdU2cTIjC7A==", + "requires": { + "chartjs-color": "^2.1.0", + "moment": "^2.10.2" + } + }, + "chartjs-color": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chartjs-color/-/chartjs-color-2.4.1.tgz", + "integrity": "sha512-haqOg1+Yebys/Ts/9bLo/BqUcONQOdr/hoEr2LLTRl6C5LXctUdHxsCYfvQVg5JIxITrfCNUDr4ntqmQk9+/0w==", + "requires": { + "chartjs-color-string": "^0.6.0", + "color-convert": "^1.9.3" + } + }, + "chartjs-color-string": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/chartjs-color-string/-/chartjs-color-string-0.6.0.tgz", + "integrity": "sha512-TIB5OKn1hPJvO7JcteW4WY/63v6KwEdt6udfnDE9iCAZgy+V4SrbSxoIbTw/xkUIapjEI4ExGtD0+6D3KyFd7A==", + "requires": { + "color-name": "^1.0.0" + } + }, "check-more-types": { "version": "2.24.0", "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", @@ -6549,7 +6596,6 @@ "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, "requires": { "color-name": "1.1.3" } @@ -6557,8 +6603,7 @@ "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, "color-string": { "version": "1.5.4", @@ -18197,6 +18242,70 @@ "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": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", @@ -19194,6 +19303,14 @@ "resolved": "https://registry.npmjs.org/vue-body-class/-/vue-body-class-3.0.2.tgz", "integrity": "sha512-IeoB46l+lNG2u3sS61TBGh6OBsG//ucmkj5YOqKnOQUMpD1yBHqlNZ8Rkhzr0jck2xSuRAdm5imSt9ZIe8i0Mg==" }, + "vue-chartjs": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/vue-chartjs/-/vue-chartjs-3.5.1.tgz", + "integrity": "sha512-foocQbJ7FtveICxb4EV5QuVpo6d8CmZFmAopBppDIGKY+esJV8IJgwmEW0RexQhxqXaL/E1xNURsgFFYyKzS/g==", + "requires": { + "@types/chart.js": "^2.7.55" + } + }, "vue-cli-plugin-style-resources-loader": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/vue-cli-plugin-style-resources-loader/-/vue-cli-plugin-style-resources-loader-0.1.4.tgz", diff --git a/package.json b/package.json index e62a335..487410d 100644 --- a/package.json +++ b/package.json @@ -17,13 +17,16 @@ "prettify:pretty-quick" ], "dependencies": { + "apexcharts": "^3.26.0", "axios": "^0.21.1", + "chart.js": "^2.9.4", "core-js": "^3.6.4", "downloadjs": "^1.4.7", "lodash": "^4.17.20", "moment": "^2.29.1", "vue": "^2.6.11", "vue-body-class": "^3.0.2", + "vue-chartjs": "^3.5.1", "vue-router": "^3.1.6", "vuetify": "^2.4.2", "vuex": "^3.5.1" diff --git a/src/components/SuperAdminDashboard/PastMonthlySeats.vue b/src/components/SuperAdminDashboard/PastMonthlySeats.vue new file mode 100644 index 0000000..36d0efe --- /dev/null +++ b/src/components/SuperAdminDashboard/PastMonthlySeats.vue @@ -0,0 +1,41 @@ + + + diff --git a/src/views/super-admin/LaunchboardSuperAdmin.vue b/src/views/super-admin/LaunchboardSuperAdmin.vue index 10c05a4..590c9a0 100644 --- a/src/views/super-admin/LaunchboardSuperAdmin.vue +++ b/src/views/super-admin/LaunchboardSuperAdmin.vue @@ -54,10 +54,7 @@ Refresh - />
@@ -84,6 +81,7 @@ import Section from "@/components/Section"; import CurriculumSchedule from "@/components/CurriculumSchedule"; import WelcomeSummary from "@/components/WelcomeSummary"; import ErrorMessage from "@/components/APIErrorDialog"; +import PastMonthlySeats from "@/components/SuperAdminDashboard/PastMonthlySeats.vue" export default { components: { UserBanner, @@ -91,6 +89,7 @@ export default { CurriculumSchedule, WelcomeSummary, ErrorMessage, + PastMonthlySeats, }, name: "launchboard-super-admin-dashboard", data: () => ({ -- GitLab From f5c5b2e612b11d53761dfb24a0489d48352d68d3 Mon Sep 17 00:00:00 2001 From: "hunter.congress" Date: Thu, 18 Mar 2021 15:31:40 -0600 Subject: [PATCH 016/256] new changes --- src/views/super-admin/LaunchboardSuperAdmin.vue | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/views/super-admin/LaunchboardSuperAdmin.vue b/src/views/super-admin/LaunchboardSuperAdmin.vue index 590c9a0..9a72fcc 100644 --- a/src/views/super-admin/LaunchboardSuperAdmin.vue +++ b/src/views/super-admin/LaunchboardSuperAdmin.vue @@ -25,11 +25,9 @@

Curriculum Schedules

-

Remaining Seats

-
@@ -61,13 +59,11 @@

Present Monthly Seat Metrics

-

Future Monthly Seat Metrics

-
-- GitLab From c8364199926de6c5da021098c25e2906083cc613 Mon Sep 17 00:00:00 2001 From: ckwolff Date: Fri, 19 Mar 2021 09:15:04 -0600 Subject: [PATCH 017/256] Adding test capacity metrics FE call --- src/api/services/metrics.js | 7 ++ .../super-admin/LaunchboardSuperAdmin.vue | 98 +++++++++++++++++-- 2 files changed, 99 insertions(+), 6 deletions(-) create mode 100644 src/api/services/metrics.js diff --git a/src/api/services/metrics.js b/src/api/services/metrics.js new file mode 100644 index 0000000..ea56ac8 --- /dev/null +++ b/src/api/services/metrics.js @@ -0,0 +1,7 @@ +import { HTTP } from "@/api/http-common"; + +export default { + async getScheduleForUser() { + return await HTTP.get("/admin/capacity-metrics?dateFrom=2020-01-05&dateTo=2020-01-10 "); + }, +}; diff --git a/src/views/super-admin/LaunchboardSuperAdmin.vue b/src/views/super-admin/LaunchboardSuperAdmin.vue index 5bfca6b..558db43 100644 --- a/src/views/super-admin/LaunchboardSuperAdmin.vue +++ b/src/views/super-admin/LaunchboardSuperAdmin.vue @@ -1,17 +1,81 @@ + + diff --git a/src/views/super-admin/LaunchboardSuperAdmin.vue b/src/views/super-admin/LaunchboardSuperAdmin.vue index 8fe6dd4..72fdbcf 100644 --- a/src/views/super-admin/LaunchboardSuperAdmin.vue +++ b/src/views/super-admin/LaunchboardSuperAdmin.vue @@ -33,7 +33,7 @@

Remaining Seats

- Wait + @@ -87,6 +87,7 @@ import UserBanner from "@/components/UserBanner"; import Section from "@/components/Section"; import CurriculumSchedule from "@/components/CurriculumSchedule"; import AllCurriculumSchedule from "@/components/AllCurriculumSchedule"; +import RemainingSeats from "@/components/RemainingSeats"; import WelcomeSummary from "@/components/WelcomeSummary"; import ErrorMessage from "@/components/APIError"; export default { @@ -95,6 +96,7 @@ export default { Section, CurriculumSchedule, AllCurriculumSchedule, + RemainingSeats, WelcomeSummary, ErrorMessage, }, -- GitLab From 7e533b51f42bf93e6f5297d48d845b4621c363d4 Mon Sep 17 00:00:00 2001 From: ckwolff Date: Fri, 19 Mar 2021 10:12:25 -0600 Subject: [PATCH 024/256] fixing the previously-created Curriculum Schedule component --- src/components/AllCurriculumSchedule.vue | 6 ++++-- src/components/CurriculumSchedule.vue | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/components/AllCurriculumSchedule.vue b/src/components/AllCurriculumSchedule.vue index 3328834..aaa17f9 100644 --- a/src/components/AllCurriculumSchedule.vue +++ b/src/components/AllCurriculumSchedule.vue @@ -1,3 +1,5 @@ +// TO-DO to run on endpoint that provides all courses, not just those that the Super admin +// is registered for -- GitLab From a84f2a5c8d92058cf61da321ddcf6a65a4dc1742 Mon Sep 17 00:00:00 2001 From: ckwolff Date: Thu, 25 Mar 2021 07:10:02 -0600 Subject: [PATCH 033/256] remaining seats component --- src/components/AllCurriculumSchedule.vue | 7 ++- src/components/RemainingSeats.vue | 57 +++++++++++++++--------- 2 files changed, 42 insertions(+), 22 deletions(-) diff --git a/src/components/AllCurriculumSchedule.vue b/src/components/AllCurriculumSchedule.vue index 2438a45..f4163a3 100644 --- a/src/components/AllCurriculumSchedule.vue +++ b/src/components/AllCurriculumSchedule.vue @@ -53,7 +53,6 @@ export default { dateFrom: `${moment().format("YYYY-MM-DD")}`, dateTo: `${moment().add(2, 'months').format("YYYY-MM-DD")}`, }; - console.log(this.params) try { this.loading = true; const response = await ScheduleService.getCoursesWithSeats(this.params); @@ -84,4 +83,10 @@ export default { .curriculum-schedule { position: relative; } + + + .availability-bar { + min-width: 120px; + width: 120px; + } diff --git a/src/components/RemainingSeats.vue b/src/components/RemainingSeats.vue index 2b6f1b2..5f83294 100644 --- a/src/components/RemainingSeats.vue +++ b/src/components/RemainingSeats.vue @@ -6,49 +6,60 @@ Your scheduled classes will appear here. - test
-
- {{ item.title }} +
+ {{ item.name }}
-
- {{ item.description }} +
+
+ +
+ {{ item.registeredCount }} / {{ item.capacity }} +
+
+
+
- - - Go to Learn - -
+ - -- GitLab From 8e9a0fbd2b0a65293399bc40c93679e3c5cf33f9 Mon Sep 17 00:00:00 2001 From: Keith Becker Date: Thu, 25 Mar 2021 13:21:43 -0600 Subject: [PATCH 034/256] style updates --- src/views/super-admin/Teams.vue | 99 ++++++++++++++++++++++++--------- 1 file changed, 73 insertions(+), 26 deletions(-) diff --git a/src/views/super-admin/Teams.vue b/src/views/super-admin/Teams.vue index bda9e7e..e2adf3b 100644 --- a/src/views/super-admin/Teams.vue +++ b/src/views/super-admin/Teams.vue @@ -26,42 +26,48 @@ - Export All Team Records + Email Selected
@@ -398,6 +404,9 @@ export default { } finally { this.loading = false; } + }, + async emailSelected() { + }, itemClass(team) { const classes = []; @@ -440,4 +449,42 @@ export default { display: none; } } + +.v-application .secondary { + background-color: var(--v-secondary-base) !important; + border-color: var(--v-secondary-base) !important; + color: black !important; +} + +.v-application .lightgreen { + background-color: #bdc931 !important; + border-color: var(--v-secondary-base) !important; + color: black !important; +} + +.v-application .secondary h4 { + color: black !important; +} + +.filter-search .v-input__control { + background: white; + border-radius: 5px !important; + color: black !important; +} + +.filter-search .append.icon input { + color: black !important; +} + +.filter-search .v-input__slot::before { + display: none; +} + +.filter-search .v-input__append-inner button { + color: black !important; +} + +.filter-search .v-text-field__slot input { + color: black !important; +} -- GitLab From fd3b2955343158ae37d5c3fed616fc5957e43ada Mon Sep 17 00:00:00 2001 From: Keith Becker Date: Thu, 25 Mar 2021 13:50:12 -0600 Subject: [PATCH 035/256] style updates --- src/views/super-admin/Teams.vue | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/views/super-admin/Teams.vue b/src/views/super-admin/Teams.vue index e2adf3b..8256548 100644 --- a/src/views/super-admin/Teams.vue +++ b/src/views/super-admin/Teams.vue @@ -63,10 +63,10 @@
- - + +
-

Teams

+

Teams

@@ -487,4 +487,9 @@ export default { .filter-search .v-text-field__slot input { color: black !important; } + +tr td:nth-child(2) a { + color: var(--v-anchor-base)!important; +} + -- GitLab From f85956dfe30b10768aab7db4dc7deb8962a6b237 Mon Sep 17 00:00:00 2001 From: Keith Becker Date: Thu, 25 Mar 2021 13:59:39 -0600 Subject: [PATCH 036/256] style updates --- src/views/super-admin/Teams.vue | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/views/super-admin/Teams.vue b/src/views/super-admin/Teams.vue index 8256548..7d626c9 100644 --- a/src/views/super-admin/Teams.vue +++ b/src/views/super-admin/Teams.vue @@ -488,6 +488,10 @@ export default { color: black !important; } +tr td a { + color: white!important; +} + tr td:nth-child(2) a { color: var(--v-anchor-base)!important; } -- GitLab From d1239429868cdd94ccddfe63c29ae2e935c70539 Mon Sep 17 00:00:00 2001 From: Keith Becker Date: Thu, 25 Mar 2021 15:02:44 -0600 Subject: [PATCH 037/256] update styles --- src/views/super-admin/Teams.vue | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/views/super-admin/Teams.vue b/src/views/super-admin/Teams.vue index 7d626c9..338537e 100644 --- a/src/views/super-admin/Teams.vue +++ b/src/views/super-admin/Teams.vue @@ -158,7 +158,6 @@ class="mr-3" :disabled="teams.length === 0" :block="$vuetify.breakpoint.xs" - @click="emailSelected()" v-bind="attrs" v-on="on" > @@ -404,9 +403,6 @@ export default { } finally { this.loading = false; } - }, - async emailSelected() { - }, itemClass(team) { const classes = []; -- GitLab From b4ba868c6c28b409a6fa7ceef4670005c6dec60c Mon Sep 17 00:00:00 2001 From: Keith Becker Date: Thu, 25 Mar 2021 15:32:46 -0600 Subject: [PATCH 038/256] update styles --- src/views/Team.vue | 76 +++++++++++++++++++++++++++------------------- 1 file changed, 45 insertions(+), 31 deletions(-) diff --git a/src/views/Team.vue b/src/views/Team.vue index 4478231..4034a2b 100644 --- a/src/views/Team.vue +++ b/src/views/Team.vue @@ -2,28 +2,29 @@
-
- - mdi-chevron-left -

Back to Teams

-
+
+
+

{{ team.name }}

+

{{ team.description }}

+
- mdi-pencil -

Edit Team Details

+ Edit Team Details +
+ + Export List
-
-

- {{ team.name }} -

+

- {{ team.description }} + + You have {{ availableSlots }} seat{{ availableSlots === 1 ? "" : "s" }} + available.
+ Add to your team and select a course! +

- - +
- mdi-plus-circle -

Add Team Member

+ Add Team Member
- - {{ availableSlots }} seat{{ availableSlots === 1 ? "" : "s" }} - available -
@@ -505,4 +500,23 @@ export default { display: none; } } + +.border-white { + border: thin solid white!important; +} + +button.no-border.no-shadow.border-white.mr-3.v-btn.v-btn--text.theme--dark.v-size--default.secondary--text { + border: thin solid white!important; +} + +.v-application .lightgreen { + background-color: #bdc931 !important; + border-color: var(--v-secondary-base) !important; + color: black !important; +} + +body .theme--dark .v-btn.secondary { + color: #031322!important; +} + -- GitLab From 36e30d82521c89f724446256a5bbd33def79bb7a Mon Sep 17 00:00:00 2001 From: "hunter.congress" Date: Fri, 26 Mar 2021 08:31:00 -0600 Subject: [PATCH 039/256] adding graph --- src/api/services/metrics.js | 49 +++++++- src/components/MonthlySeatMetric.vue | 118 ++++++++++++------ .../super-admin/LaunchboardSuperAdmin.vue | 23 ++-- 3 files changed, 138 insertions(+), 52 deletions(-) diff --git a/src/api/services/metrics.js b/src/api/services/metrics.js index 024632b..cf16a65 100644 --- a/src/api/services/metrics.js +++ b/src/api/services/metrics.js @@ -7,9 +7,56 @@ export default { ); }, - async capacityMetrics() { + async capacityMetrics(startDate, endDate, temp) { + console.log("start", startDate); + console.log("end", endDate); + console.log( + `/admin/capacity-metrics?dateFrom=${startDate}&dateTo=${endDate}` + ); + if (temp == 1) { + return { + meta: { + dateFrom: "2021-02-01", + dateTo: "2021-02-28", + }, + metrics: { + totalCapacity: 120, + totalCompleted: 78, + totalCourses: 5, + totalRegistrations: 90, + }, + }; + } else if (temp == 2) { + return { + meta: { + dateFrom: "2021-03-01", + dateTo: "2021-03-28", + }, + metrics: { + totalCapacity: 200, + totalCompleted: 102, + totalCourses: 5, + totalRegistrations: 150, + }, + }; + } else if (temp == 3) { + return { + meta: { + dateFrom: "2021-04-01", + dateTo: "2021-04-28", + }, + metrics: { + totalCapacity: 400, + totalCompleted: 0, + totalCourses: 5, + totalRegistrations: 78, + }, + }; + } + /* return await HTTP.get( "/admin/capacity-metrics?dateFrom=2020-03-01&dateTo=2020-03-31" ); + */ }, }; diff --git a/src/components/MonthlySeatMetric.vue b/src/components/MonthlySeatMetric.vue index 3c4e568..7de2fb5 100644 --- a/src/components/MonthlySeatMetric.vue +++ b/src/components/MonthlySeatMetric.vue @@ -5,7 +5,7 @@ List of Classes Courses and Remaining Seats will show here - +
({ months: [ - "January", - "February", - "March", - "April", - "May", - "June", - "July", - "August", - "September", - "October", - "November", - "December", + "January ", + "February ", + "March ", + "April ", + "May ", + "June ", + "July ", + "August ", + "September ", + "October ", + "November ", + "December ", ], + month: null, + year: null, + date: null, loading: false, meta: [], emptyString: false, - series: [63, 32, 5], + series: [], textColor: "white", chartOptions: { chart: { type: "donut", - size: 20, + background: "transparent", }, plotOptions: { + offsetX: 75, pie: { - customScale: 0.9, donut: { size: "90%", + width: 40, }, }, }, @@ -68,42 +72,70 @@ export default { shape: "square", }, legend: { - position: "bottom", + position: "right", fontSize: "14px", + width: 250, + offsetY: 75, + offsetX: -100, labels: { colors: "white", }, }, labels: [], colors: ["#BDC931", "#F26522", "#E03132"], - responsive: [ - { - breakpoint: 480, - options: { - chart: { - width: 100, - }, - }, - }, - ], }, }), async mounted() { try { - console.log("month", this.$props.month); - console.log("year", this.$props.year); + console.log("month", this.$props.incomingMonth); + console.log("year", this.$props.incomingYear); + if (this.$props.incomingMonth === -1) { + this.date = this.months[11] + (this.$props.incomingYear - 1); + this.month = 12; + this.year = this.$props.incomingYear - 1; + } else if (this.$props.incomingMonth === 12) { + this.date = this.months[0] + (this.$props.incomingYear + 1); + this.month = 1; + this.year = this.$props.incomingYear + 1; + } else { + this.date = + this.months[this.$props.incomingMonth] + this.$props.incomingYear; + this.month = this.$props.incomingMonth + 1; + this.year = this.$props.incomingYear; + } + console.log("date", this.date); this.loading = true; - const response = await MetricsService.capacityMetrics(); - var myMonth = "Feburary 2017"; - myMonth = "1 " + myMonth; - - var d = new Date(myMonth); - console.log(d.getDate()); // will give the start date of the month - - var checkDate = new Date(myMonth); - var d1 = new Date(checkDate.getFullYear(), checkDate.getMonth() + 1, 0); - console.log(d1.getDate()); // this will return the last date of the month + const start = "1 " + this.date; + const checkDate = new Date(start); + const startDate = + this.year + "-" + this.month + "-" + checkDate.getDate(); + const d1 = new Date(checkDate.getFullYear(), checkDate.getMonth() + 1, 0); + const endDate = this.year + "-" + this.month + "-" + d1.getDate(); // this will return the last date of the month + const response = await MetricsService.capacityMetrics( + startDate, + endDate, + this.$props.temp + ); console.log("seats", response); + this.series.push( + (response.metrics.totalCompleted / response.metrics.totalCapacity) * 100 + ); + this.series.push( + (response.metrics.totalRegistrations / response.metrics.totalCapacity) * + 100 + ); + this.series.push( + ((response.metrics.totalCapacity - + response.metrics.totalRegistrations) / + response.metrics.totalCapacity) * + 100 + ); + console.log( + "series", + this.series, + response.metrics.totalRegistrations, + response.metrics.totalCapacity + ); this.chartOptions.labels.push(" " + this.series[0] + "%-completed"); this.chartOptions.labels.push(" " + this.series[1] + "%-incomplete"); this.chartOptions.labels.push(" " + this.series[2] + "%-open"); @@ -126,7 +158,11 @@ export default { .curriculum-schedule { position: relative; } +.chart-container{ + justify-content: center; +} #chart { - margin: -2px; + width: 500px; + scale: 0.8; } diff --git a/src/views/super-admin/LaunchboardSuperAdmin.vue b/src/views/super-admin/LaunchboardSuperAdmin.vue index 04f2a0c..2aa0428 100644 --- a/src/views/super-admin/LaunchboardSuperAdmin.vue +++ b/src/views/super-admin/LaunchboardSuperAdmin.vue @@ -55,8 +55,9 @@
@@ -65,8 +66,9 @@
@@ -75,8 +77,9 @@
@@ -110,13 +113,13 @@ export default { currentMonth: null, currentYear: null, }), - mounted() { - this.user = this.$store.state.user.user; + beforeMount() { const date = new Date(); this.currentMonth = date.getMonth(); - console.log("AAAAAAAA", this.currentMonth); this.currentYear = date.getFullYear(); - console.log("BBBBBBB", this.currentYear); + }, + mounted() { + this.user = this.$store.state.user.user; }, methods: { refreshProjectData() { -- GitLab From bec8b546c6b2f1e7e9bbf1a0fb304b9aa1c545d7 Mon Sep 17 00:00:00 2001 From: "hunter.congress" Date: Mon, 29 Mar 2021 14:44:23 -0600 Subject: [PATCH 040/256] finishing up donut graph --- src/api/services/metrics.js | 51 +----- src/components/MonthlySeatMetric.vue | 145 +++++++++++------- .../super-admin/LaunchboardSuperAdmin.vue | 6 +- 3 files changed, 98 insertions(+), 104 deletions(-) diff --git a/src/api/services/metrics.js b/src/api/services/metrics.js index cf16a65..61da2da 100644 --- a/src/api/services/metrics.js +++ b/src/api/services/metrics.js @@ -7,56 +7,9 @@ export default { ); }, - async capacityMetrics(startDate, endDate, temp) { - console.log("start", startDate); - console.log("end", endDate); - console.log( - `/admin/capacity-metrics?dateFrom=${startDate}&dateTo=${endDate}` - ); - if (temp == 1) { - return { - meta: { - dateFrom: "2021-02-01", - dateTo: "2021-02-28", - }, - metrics: { - totalCapacity: 120, - totalCompleted: 78, - totalCourses: 5, - totalRegistrations: 90, - }, - }; - } else if (temp == 2) { - return { - meta: { - dateFrom: "2021-03-01", - dateTo: "2021-03-28", - }, - metrics: { - totalCapacity: 200, - totalCompleted: 102, - totalCourses: 5, - totalRegistrations: 150, - }, - }; - } else if (temp == 3) { - return { - meta: { - dateFrom: "2021-04-01", - dateTo: "2021-04-28", - }, - metrics: { - totalCapacity: 400, - totalCompleted: 0, - totalCourses: 5, - totalRegistrations: 78, - }, - }; - } - /* + async capacityMetrics(startDate, endDate) { return await HTTP.get( - "/admin/capacity-metrics?dateFrom=2020-03-01&dateTo=2020-03-31" + `/admin/capacity-metrics?dateFrom=${startDate}&dateTo=${endDate}` ); - */ }, }; diff --git a/src/components/MonthlySeatMetric.vue b/src/components/MonthlySeatMetric.vue index 7de2fb5..2f809b7 100644 --- a/src/components/MonthlySeatMetric.vue +++ b/src/components/MonthlySeatMetric.vue @@ -1,11 +1,12 @@