From 9b7d763d52a97cc37fb874c1846a7447d612936c Mon Sep 17 00:00:00 2001 From: Jannat Patel Date: Thu, 20 Nov 2025 18:01:36 +0530 Subject: [PATCH] refactor: new data import flow --- frappe-ui | 2 +- frontend/components.d.ts | 9 +- frontend/package.json | 2 +- frontend/src/components/DesktopLayout.vue | 2 +- frontend/src/components/Settings/Settings.vue | 8 +- .../components/{ => Sidebar}/AppSidebar.vue | 26 +- .../src/components/{ => Sidebar}/Apps.vue | 3 +- .../src/components/Sidebar/Configuration.vue | 40 + .../components/{ => Sidebar}/SidebarLink.vue | 0 .../components/{ => Sidebar}/UserDropdown.vue | 15 +- frontend/src/pages/Batches.vue | 51 +- frontend/src/pages/Courses.vue | 58 +- frontend/src/pages/DataImport.vue | 39 + frontend/src/pages/Home/AdminHome.vue | 6 +- frontend/src/router.js | 17 + frontend/yarn.lock | 5512 +++++++++++++++++ yarn.lock | 791 ++- 17 files changed, 6111 insertions(+), 470 deletions(-) rename frontend/src/components/{ => Sidebar}/AppSidebar.vue (98%) rename frontend/src/components/{ => Sidebar}/Apps.vue (94%) create mode 100644 frontend/src/components/Sidebar/Configuration.vue rename frontend/src/components/{ => Sidebar}/SidebarLink.vue (100%) rename frontend/src/components/{ => Sidebar}/UserDropdown.vue (95%) create mode 100644 frontend/src/pages/DataImport.vue create mode 100644 frontend/yarn.lock diff --git a/frappe-ui b/frappe-ui index 8d5956c0..4e41310c 160000 --- a/frappe-ui +++ b/frappe-ui @@ -1 +1 @@ -Subproject commit 8d5956c0c675a13d32d3ef8035389128fa4735d5 +Subproject commit 4e41310c650e0be9957731a8d26cced97d55e709 diff --git a/frontend/components.d.ts b/frontend/components.d.ts index 374bf990..6dc3781d 100644 --- a/frontend/components.d.ts +++ b/frontend/components.d.ts @@ -11,8 +11,8 @@ declare module 'vue' { AdminBatchDashboard: typeof import('./src/components/AdminBatchDashboard.vue')['default'] Annoucements: typeof import('./src/components/Annoucements.vue')['default'] AnnouncementModal: typeof import('./src/components/Modals/AnnouncementModal.vue')['default'] - Apps: typeof import('./src/components/Apps.vue')['default'] - AppSidebar: typeof import('./src/components/AppSidebar.vue')['default'] + Apps: typeof import('./src/components/Sidebar/Apps.vue')['default'] + AppSidebar: typeof import('./src/components/Sidebar/AppSidebar.vue')['default'] AssessmentModal: typeof import('./src/components/Modals/AssessmentModal.vue')['default'] AssessmentPlugin: typeof import('./src/components/AssessmentPlugin.vue')['default'] Assessments: typeof import('./src/components/Assessments.vue')['default'] @@ -42,6 +42,7 @@ declare module 'vue' { CodeEditor: typeof import('./src/components/Controls/CodeEditor.vue')['default'] CollapseSidebar: typeof import('./src/components/Icons/CollapseSidebar.vue')['default'] ColorSwatches: typeof import('./src/components/Controls/ColorSwatches.vue')['default'] + Configuration: typeof import('./src/components/Sidebar/Configuration.vue')['default'] ContactUsEmail: typeof import('./src/components/ContactUsEmail.vue')['default'] CouponDetails: typeof import('./src/components/Settings/Coupons/CouponDetails.vue')['default'] CouponItems: typeof import('./src/components/Settings/Coupons/CouponItems.vue')['default'] @@ -108,7 +109,7 @@ declare module 'vue' { SettingDetails: typeof import('./src/components/Settings/SettingDetails.vue')['default'] SettingFields: typeof import('./src/components/Settings/SettingFields.vue')['default'] Settings: typeof import('./src/components/Settings/Settings.vue')['default'] - SidebarLink: typeof import('./src/components/SidebarLink.vue')['default'] + SidebarLink: typeof import('./src/components/Sidebar/SidebarLink.vue')['default'] StudentHeatmap: typeof import('./src/components/StudentHeatmap.vue')['default'] StudentModal: typeof import('./src/components/Modals/StudentModal.vue')['default'] Tags: typeof import('./src/components/Tags.vue')['default'] @@ -120,7 +121,7 @@ declare module 'vue' { Uploader: typeof import('./src/components/Controls/Uploader.vue')['default'] UploadPlugin: typeof import('./src/components/UploadPlugin.vue')['default'] UserAvatar: typeof import('./src/components/UserAvatar.vue')['default'] - UserDropdown: typeof import('./src/components/UserDropdown.vue')['default'] + UserDropdown: typeof import('./src/components/Sidebar/UserDropdown.vue')['default'] VideoBlock: typeof import('./src/components/VideoBlock.vue')['default'] VideoStatistics: typeof import('./src/components/Modals/VideoStatistics.vue')['default'] ZoomAccountModal: typeof import('./src/components/Modals/ZoomAccountModal.vue')['default'] diff --git a/frontend/package.json b/frontend/package.json index dfc3b043..49ac08aa 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -33,7 +33,7 @@ "dayjs": "^1.11.6", "dompurify": "^3.2.6", "feather-icons": "^4.28.0", - "frappe-ui": "github:frappe/frappe-ui#8d5956c0c675a13d32d3ef8035389128fa4735d5", + "frappe-ui": "github:frappe/frappe-ui#4e41310c650e0be9957731a8d26cced97d55e709", "highlight.js": "^11.11.1", "lucide-vue-next": "^0.383.0", "markdown-it": "^14.0.0", diff --git a/frontend/src/components/DesktopLayout.vue b/frontend/src/components/DesktopLayout.vue index 00c33eb0..caef6920 100644 --- a/frontend/src/components/DesktopLayout.vue +++ b/frontend/src/components/DesktopLayout.vue @@ -9,5 +9,5 @@ diff --git a/frontend/src/components/Settings/Settings.vue b/frontend/src/components/Settings/Settings.vue index 293995f2..91a7fc2d 100644 --- a/frontend/src/components/Settings/Settings.vue +++ b/frontend/src/components/Settings/Settings.vue @@ -70,9 +70,8 @@ import { Dialog, createDocumentResource } from 'frappe-ui' import { computed, markRaw, ref, watch } from 'vue' import { useSettings } from '@/stores/settings' -import { DataImport } from 'frappe-ui/frappe' import SettingDetails from '@/components/Settings/SettingDetails.vue' -import SidebarLink from '@/components/SidebarLink.vue' +import SidebarLink from '@/components/Sidebar/SidebarLink.vue' import Members from '@/components/Settings/Members.vue' import Evaluators from '@/components/Settings/Evaluators.vue' import Categories from '@/components/Settings/Categories.vue' @@ -160,11 +159,6 @@ const tabsStructure = computed(() => { }, ], }, - { - label: 'Data Import', - icon: 'Database', - template: markRaw(DataImport), - }, { label: 'Contact Us', icon: 'Phone', diff --git a/frontend/src/components/AppSidebar.vue b/frontend/src/components/Sidebar/AppSidebar.vue similarity index 98% rename from frontend/src/components/AppSidebar.vue rename to frontend/src/components/Sidebar/AppSidebar.vue index 9334c63e..394debe2 100644 --- a/frontend/src/components/AppSidebar.vue +++ b/frontend/src/components/Sidebar/AppSidebar.vue @@ -181,19 +181,9 @@ diff --git a/frontend/src/components/SidebarLink.vue b/frontend/src/components/Sidebar/SidebarLink.vue similarity index 100% rename from frontend/src/components/SidebarLink.vue rename to frontend/src/components/Sidebar/SidebarLink.vue diff --git a/frontend/src/components/UserDropdown.vue b/frontend/src/components/Sidebar/UserDropdown.vue similarity index 95% rename from frontend/src/components/UserDropdown.vue rename to frontend/src/components/Sidebar/UserDropdown.vue index 838123e5..1daef339 100644 --- a/frontend/src/components/UserDropdown.vue +++ b/frontend/src/components/Sidebar/UserDropdown.vue @@ -1,7 +1,7 @@