From e4bdf7e4c372860578e7ce45a54e585d63e81f9a Mon Sep 17 00:00:00 2001 From: Emily Date: Thu, 23 Jan 2025 17:34:43 +0100 Subject: [PATCH] refactoring dashboard --- dashboard/assets/main.css | 13 + dashboard/assets/scss/main.scss | 14 - dashboard/components/BarCard/Base.vue | 2 +- dashboard/components/BarCard/Browsers.vue | 2 +- dashboard/components/BarCard/Geolocations.vue | 2 +- dashboard/components/BarCard/Pages.vue | 37 + dashboard/components/BarCard/Referrers.vue | 2 +- .../components/dashboard/ActionableChart.vue | 1 - dashboard/components/dashboard/TopCards.vue | 4 +- .../events/EventsStackedBarChart.vue | 50 +- .../components/selector/DomainSelector.vue | 13 +- dashboard/components/settings/billing.vue | 3 +- dashboard/nuxt.config.ts | 15 +- dashboard/package.json | 14 +- dashboard/pages/index.vue | 16 +- dashboard/pnpm-lock.yaml | 2325 ++-- dashboard/server/LIVE_DEMO_DATA.ts | 3 +- dashboard/server/api/auth/confirm_email.ts | 4 +- .../server/api/auth/google_login.post.ts | 10 +- dashboard/server/api/auth/register.post.ts | 8 +- dashboard/server/api/data/browsers.ts | 10 +- dashboard/server/api/data/oss.ts | 10 +- .../server/api/data/{websites.ts => pages.ts} | 14 +- dashboard/server/api/data/websites_pages.ts | 37 - .../api/pay/redeem_appsumo_code.post.ts | 3 +- dashboard/server/api/pay/webhook.post.ts | 16 +- dashboard/server/api/timeline/events.ts | 10 +- dashboard/server/api/timeline/sessions.ts | 10 +- dashboard/server/api/timeline/visits.ts | 10 +- dashboard/server/api/user/password/reset.ts | 4 +- dashboard/server/init.ts | 10 +- dashboard/server/services/TimelineService.ts | 16 +- dashboard/server/utils/getRequestData.ts | 3 +- {shared => dashboard/shared}/data/ADMINS.ts | 0 {shared => dashboard/shared}/data/PREMIUM.ts | 21 - .../shared}/data/broker/Limits.ts | 0 .../shared}/schema/ApiSettingsSchema.ts | 0 .../shared}/schema/FeedbackSchema.ts | 0 .../shared}/schema/OnboardingSchema.ts | 0 .../shared}/schema/PasswordSchema.ts | 0 .../shared}/schema/RegisterSchema.ts | 0 .../shared}/schema/TeamMemberSchema.ts | 0 .../shared}/schema/UserSchema.ts | 0 .../shared}/schema/UserSettings.ts | 0 .../shared}/schema/ai/AiChatSchema.ts | 0 .../schema/anomalies/AnomalyDomainSchema.ts | 0 .../schema/anomalies/AnomalyEventsSchema.ts | 0 .../schema/anomalies/AnomalyVisitSchema.ts | 0 .../schema/appsumo/AppsumoCodeSchema.ts | 0 .../schema/appsumo/AppsumoCodeTrySchema.ts | 0 .../schema/broker/LimitNotifySchema.ts | 0 .../shared}/schema/metrics/EventSchema.ts | 0 .../shared}/schema/metrics/SessionSchema.ts | 0 .../shared}/schema/metrics/VisitSchema.ts | 0 .../shared}/schema/project/ProjectSchema.ts | 0 .../shared}/schema/project/ProjectSnapshot.ts | 0 .../shared}/schema/project/ProjectsCounts.ts | 0 .../shared}/schema/project/ProjectsLimits.ts | 0 .../shared}/services/DateService.ts | 0 dashboard/tsconfig.json | 2 +- dashboard/utils/DateUtils.ts | 73 +- package.json | 15 +- pnpm-lock.yaml | 11066 ---------------- pnpm-workspace.yaml | 6 - scripts/dashboard/clear-logs.js | 17 + scripts/dashboard/shared.js | 63 + shared/schema/CustomPremiumPriceSchema.ts | 21 - shared_global/data/ADMINS.ts | 5 + {shared => shared_global}/data/LITLYX.ts | 0 shared_global/data/PREMIUM.ts | 175 + .../data/broker/EventType.ts | 0 shared_global/data/broker/Limits.ts | 5 + {shared => shared_global}/package.json | 0 shared_global/schema/ApiSettingsSchema.ts | 20 + shared_global/schema/FeedbackSchema.ts | 16 + shared_global/schema/OnboardingSchema.ts | 16 + shared_global/schema/PasswordSchema.ts | 14 + shared_global/schema/RegisterSchema.ts | 16 + shared_global/schema/TeamMemberSchema.ts | 22 + shared_global/schema/UserSchema.ts | 38 + shared_global/schema/UserSettings.ts | 16 + shared_global/schema/ai/AiChatSchema.ts | 26 + .../schema/anomalies/AnomalyDomainSchema.ts | 16 + .../schema/anomalies/AnomalyEventsSchema.ts | 16 + .../schema/anomalies/AnomalyVisitSchema.ts | 16 + .../schema/appsumo/AppsumoCodeSchema.ts | 16 + .../schema/appsumo/AppsumoCodeTrySchema.ts | 15 + .../schema/broker/LimitNotifySchema.ts | 18 + shared_global/schema/metrics/EventSchema.ts | 22 + shared_global/schema/metrics/SessionSchema.ts | 23 + shared_global/schema/metrics/VisitSchema.ts | 45 + shared_global/schema/project/ProjectSchema.ts | 26 + .../schema/project/ProjectSnapshot.ts | 20 + .../schema/project/ProjectsCounts.ts | 22 + .../schema/project/ProjectsLimits.ts | 26 + .../services/DatabaseService.ts | 0 shared_global/services/DateService.ts | 224 + .../services/EmailService.ts | 0 .../services/RedisStreamService.ts | 0 .../email_templates/AnomalyDomainEmail.ts | 0 .../email_templates/AnomalyUsageEmail.ts | 0 .../services/email_templates/ConfirmEmail.ts | 0 .../services/email_templates/Limit50Email.ts | 0 .../services/email_templates/Limit90Email.ts | 0 .../services/email_templates/LimitMaxEmail.ts | 0 .../services/email_templates/PurchaseEmail.ts | 0 .../email_templates/ResetPasswordEmail.ts | 0 .../services/email_templates/WelcomeEmail.ts | 0 {shared => shared_global}/tsconfig.json | 0 {shared => shared_global}/utils/TIME.ts | 0 {shared => shared_global}/utils/requireEnv.ts | 0 tsconfig.json | 28 - 112 files changed, 2345 insertions(+), 12532 deletions(-) create mode 100644 dashboard/assets/main.css create mode 100644 dashboard/components/BarCard/Pages.vue rename dashboard/server/api/data/{websites.ts => pages.ts} (64%) delete mode 100644 dashboard/server/api/data/websites_pages.ts rename {shared => dashboard/shared}/data/ADMINS.ts (100%) rename {shared => dashboard/shared}/data/PREMIUM.ts (88%) rename {shared => dashboard/shared}/data/broker/Limits.ts (100%) rename {shared => dashboard/shared}/schema/ApiSettingsSchema.ts (100%) rename {shared => dashboard/shared}/schema/FeedbackSchema.ts (100%) rename {shared => dashboard/shared}/schema/OnboardingSchema.ts (100%) rename {shared => dashboard/shared}/schema/PasswordSchema.ts (100%) rename {shared => dashboard/shared}/schema/RegisterSchema.ts (100%) rename {shared => dashboard/shared}/schema/TeamMemberSchema.ts (100%) rename {shared => dashboard/shared}/schema/UserSchema.ts (100%) rename {shared => dashboard/shared}/schema/UserSettings.ts (100%) rename {shared => dashboard/shared}/schema/ai/AiChatSchema.ts (100%) rename {shared => dashboard/shared}/schema/anomalies/AnomalyDomainSchema.ts (100%) rename {shared => dashboard/shared}/schema/anomalies/AnomalyEventsSchema.ts (100%) rename {shared => dashboard/shared}/schema/anomalies/AnomalyVisitSchema.ts (100%) rename {shared => dashboard/shared}/schema/appsumo/AppsumoCodeSchema.ts (100%) rename {shared => dashboard/shared}/schema/appsumo/AppsumoCodeTrySchema.ts (100%) rename {shared => dashboard/shared}/schema/broker/LimitNotifySchema.ts (100%) rename {shared => dashboard/shared}/schema/metrics/EventSchema.ts (100%) rename {shared => dashboard/shared}/schema/metrics/SessionSchema.ts (100%) rename {shared => dashboard/shared}/schema/metrics/VisitSchema.ts (100%) rename {shared => dashboard/shared}/schema/project/ProjectSchema.ts (100%) rename {shared => dashboard/shared}/schema/project/ProjectSnapshot.ts (100%) rename {shared => dashboard/shared}/schema/project/ProjectsCounts.ts (100%) rename {shared => dashboard/shared}/schema/project/ProjectsLimits.ts (100%) rename {shared => dashboard/shared}/services/DateService.ts (100%) delete mode 100644 pnpm-lock.yaml delete mode 100644 pnpm-workspace.yaml create mode 100644 scripts/dashboard/clear-logs.js create mode 100644 scripts/dashboard/shared.js delete mode 100644 shared/schema/CustomPremiumPriceSchema.ts create mode 100644 shared_global/data/ADMINS.ts rename {shared => shared_global}/data/LITLYX.ts (100%) create mode 100644 shared_global/data/PREMIUM.ts rename {shared => shared_global}/data/broker/EventType.ts (100%) create mode 100644 shared_global/data/broker/Limits.ts rename {shared => shared_global}/package.json (100%) create mode 100644 shared_global/schema/ApiSettingsSchema.ts create mode 100644 shared_global/schema/FeedbackSchema.ts create mode 100644 shared_global/schema/OnboardingSchema.ts create mode 100644 shared_global/schema/PasswordSchema.ts create mode 100644 shared_global/schema/RegisterSchema.ts create mode 100644 shared_global/schema/TeamMemberSchema.ts create mode 100644 shared_global/schema/UserSchema.ts create mode 100644 shared_global/schema/UserSettings.ts create mode 100644 shared_global/schema/ai/AiChatSchema.ts create mode 100644 shared_global/schema/anomalies/AnomalyDomainSchema.ts create mode 100644 shared_global/schema/anomalies/AnomalyEventsSchema.ts create mode 100644 shared_global/schema/anomalies/AnomalyVisitSchema.ts create mode 100644 shared_global/schema/appsumo/AppsumoCodeSchema.ts create mode 100644 shared_global/schema/appsumo/AppsumoCodeTrySchema.ts create mode 100644 shared_global/schema/broker/LimitNotifySchema.ts create mode 100644 shared_global/schema/metrics/EventSchema.ts create mode 100644 shared_global/schema/metrics/SessionSchema.ts create mode 100644 shared_global/schema/metrics/VisitSchema.ts create mode 100644 shared_global/schema/project/ProjectSchema.ts create mode 100644 shared_global/schema/project/ProjectSnapshot.ts create mode 100644 shared_global/schema/project/ProjectsCounts.ts create mode 100644 shared_global/schema/project/ProjectsLimits.ts rename {shared => shared_global}/services/DatabaseService.ts (100%) create mode 100644 shared_global/services/DateService.ts rename {shared => shared_global}/services/EmailService.ts (100%) rename {shared => shared_global}/services/RedisStreamService.ts (100%) rename {shared => shared_global}/services/email_templates/AnomalyDomainEmail.ts (100%) rename {shared => shared_global}/services/email_templates/AnomalyUsageEmail.ts (100%) rename {shared => shared_global}/services/email_templates/ConfirmEmail.ts (100%) rename {shared => shared_global}/services/email_templates/Limit50Email.ts (100%) rename {shared => shared_global}/services/email_templates/Limit90Email.ts (100%) rename {shared => shared_global}/services/email_templates/LimitMaxEmail.ts (100%) rename {shared => shared_global}/services/email_templates/PurchaseEmail.ts (100%) rename {shared => shared_global}/services/email_templates/ResetPasswordEmail.ts (100%) rename {shared => shared_global}/services/email_templates/WelcomeEmail.ts (100%) rename {shared => shared_global}/tsconfig.json (100%) rename {shared => shared_global}/utils/TIME.ts (100%) rename {shared => shared_global}/utils/requireEnv.ts (100%) delete mode 100644 tsconfig.json diff --git a/dashboard/assets/main.css b/dashboard/assets/main.css new file mode 100644 index 0000000..e4f6859 --- /dev/null +++ b/dashboard/assets/main.css @@ -0,0 +1,13 @@ +@import './font-awesome/css/all.css'; + +@import url('https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;0,1000;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900;1,1000&display=swap'); +@import url('https://fonts.cdnfonts.com/css/brockmann'); +@import url('https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap'); + + +@import url('https://fonts.cdnfonts.com/css/geometric-sans-serif-v1'); +@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@200..800&display=swap'); +@import url('https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,100;0,300;0,400;0,700;0,900;1,100;1,300;1,400;1,700;1,900&display=swap'); +@import url('https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap'); + +@import url('https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0'); \ No newline at end of file diff --git a/dashboard/assets/scss/main.scss b/dashboard/assets/scss/main.scss index bbdfd57..03e70a4 100644 --- a/dashboard/assets/scss/main.scss +++ b/dashboard/assets/scss/main.scss @@ -1,20 +1,6 @@ @use './utilities.scss'; @use './colors.scss'; -@import url('https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;0,1000;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900;1,1000&display=swap'); -@import url('https://fonts.cdnfonts.com/css/brockmann'); -@import url('https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap'); - -@import '../font-awesome/css/all.css'; - -@import url('https://fonts.cdnfonts.com/css/geometric-sans-serif-v1'); -@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@200..800&display=swap'); -@import url('https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,100;0,300;0,400;0,700;0,900;1,100;1,300;1,400;1,700;1,900&display=swap'); -@import url('https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap'); - -@import url('https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0'); - - @font-face { font-family: "Geist"; src: url("../fonts/GeistVF.ttf"); diff --git a/dashboard/components/BarCard/Base.vue b/dashboard/components/BarCard/Base.vue index b248bf8..ff12afd 100644 --- a/dashboard/components/BarCard/Base.vue +++ b/dashboard/components/BarCard/Base.vue @@ -121,7 +121,7 @@ function openExternalLink(link: string) { + class="text-ellipsis line-clamp-1 ui-font z-[19] text-[.95rem] text-lyx-lightmode-text-dark dark:text-text/70"> {{ elementTextTransformer?.(element._id) || element._id }} diff --git a/dashboard/components/BarCard/Browsers.vue b/dashboard/components/BarCard/Browsers.vue index 86de72f..edf55da 100644 --- a/dashboard/components/BarCard/Browsers.vue +++ b/dashboard/components/BarCard/Browsers.vue @@ -57,7 +57,7 @@ async function showMore() {