From 73a32380e78e329349c4d9342dd9eb7753b9f260 Mon Sep 17 00:00:00 2001 From: Wian Drs Date: Mon, 27 Jul 2026 16:25:37 +0700 Subject: [PATCH] base struktur update --- TODO.md | 40 ++ index.html | 21 +- public/apple-icon.png | Bin 18140 -> 3184 bytes public/user-default.jpg | Bin 0 -> 18068 bytes src/App.vue | 2 + src/_nav.js | 119 ++-- src/api/axios.js | 20 +- src/components/AppFooter.vue | 6 +- src/components/AppHeader.vue | 10 +- src/components/AppHeaderDropdownAccnt.vue | 68 +- src/components/AppSidebar.vue | 8 +- src/components/AppSidebarNav.js | 19 +- src/components/GlobalImagePreview.vue | 65 ++ .../base/BaseResponsiveDataView.vue | 588 ++++++++++++++++++ src/layouts/DefaultLayout.vue | 2 +- src/main.js | 7 - src/router/index.js | 139 ++++- src/services/authService.js | 21 + src/services/fileService.js | 23 + src/services/menuGroupService.js | 36 ++ src/services/menuService.js | 6 + src/services/nasService.js | 38 ++ src/services/profileService.js | 11 + src/services/tenantService.js | 26 + src/services/userService.js | 26 + src/services/wilayahService.js | 51 ++ src/stores/auth.js | 182 ++++++ src/stores/menu.js | 100 +++ src/stores/menuGroup.js | 24 + src/styles/_base-responsive-data-view.scss | 517 +++++++++++++++ src/styles/style.scss | 119 ++++ src/utils/session.js | 24 + src/utils/swal.js | 31 +- src/utils/verificationSession.js | 21 + .../group-menus/GroupMenuPermissions.vue | 353 +++++++++++ src/views/group-menus/GroupMenus.vue | 433 +++++++++++++ src/views/nas/NasResourceView.vue | 376 +++++++++++ src/views/pages/Login.vue | 75 ++- src/views/pages/Register.vue | 112 +++- src/views/pages/VerifyCode.vue | 121 ++++ src/views/profile/Profile.vue | 505 +++++++++++++++ src/views/tenants/Tenants.vue | 369 +++++++++++ src/views/users/Users.vue | 564 +++++++++++++++++ src/views/wilayah/Wilayah.vue | 317 ++++++++++ 44 files changed, 5456 insertions(+), 139 deletions(-) create mode 100644 TODO.md create mode 100644 public/user-default.jpg create mode 100644 src/components/GlobalImagePreview.vue create mode 100644 src/components/base/BaseResponsiveDataView.vue create mode 100644 src/services/authService.js create mode 100644 src/services/fileService.js create mode 100644 src/services/menuGroupService.js create mode 100644 src/services/menuService.js create mode 100644 src/services/nasService.js create mode 100644 src/services/profileService.js create mode 100644 src/services/tenantService.js create mode 100644 src/services/userService.js create mode 100644 src/services/wilayahService.js create mode 100644 src/stores/auth.js create mode 100644 src/stores/menu.js create mode 100644 src/stores/menuGroup.js create mode 100644 src/styles/_base-responsive-data-view.scss create mode 100644 src/utils/verificationSession.js create mode 100644 src/views/group-menus/GroupMenuPermissions.vue create mode 100644 src/views/group-menus/GroupMenus.vue create mode 100644 src/views/nas/NasResourceView.vue create mode 100644 src/views/pages/VerifyCode.vue create mode 100644 src/views/profile/Profile.vue create mode 100644 src/views/tenants/Tenants.vue create mode 100644 src/views/users/Users.vue create mode 100644 src/views/wilayah/Wilayah.vue diff --git a/TODO.md b/TODO.md new file mode 100644 index 00000000..e1d5c782 --- /dev/null +++ b/TODO.md @@ -0,0 +1,40 @@ +# Tenant API Integration TODO + +- [x] Review existing tenant API and UI navigation/routes (done in analysis) +- [x] Add tenant service for API CRUD in `src/services/tenantService.js` +- [x] Add tenant route in `src/router/index.js` +- [x] Add tenant menu item in `src/_nav.js` +- [x] Create tenant page `src/views/tenants/Tenants.vue` and integrate list API +- [x] Verify integration consistency + +# Tenant CRUD UI TODO + +- [x] Upgrade `src/views/tenants/Tenants.vue` to full CRUD page +- [x] Integrate create/read/update/delete flows with `tenantService` +- [x] Add form validation for `tenant_code`, `tenant_name`, `status` +- [x] Add detail modal and delete confirmation +- [x] Final consistency review + +# BaseResponsiveDataView Header/Table Alignment TODO + +- [x] Refactor desktop table header structure to follow row list layout +- [x] Align desktop header columns with rendered desktop columns +- [x] Remove desktop action spacer and use consistent action column +- [x] Keep mobile behavior unchanged +- [x] Mark tasks complete after implementation + +# GroupMenus Responsive Style Alignment TODO + +- [x] Review `GroupMenus.vue` and map existing actions/data to `BaseResponsiveDataView` +- [x] Refactor GroupMenus list section to use `BaseResponsiveDataView` +- [x] Keep existing action flows (detail, detail menu, edit, hapus) working via action handler +- [x] Add scoped container/header styling pattern similar to `Tenants.vue` +- [x] Final consistency review + +# BaseResponsiveDataView Desktop Column Proportion TODO + +- [ ] Review desktop grid logic in `BaseResponsiveDataView.vue` and `_base-responsive-data-view.scss` +- [ ] Make desktop column count dynamic (not hardcoded 6) +- [ ] Make action column width proportional and consistent +- [ ] Ensure desktop remains balanced even with only 2 data columns +- [ ] Final consistency review for desktop/mobile behavior diff --git a/index.html b/index.html index 3f4a30a6..27d9a84e 100644 --- a/index.html +++ b/index.html @@ -1,21 +1,14 @@ - - + - ManjaPro 2 + MANJAPRO - + + + diff --git a/public/apple-icon.png b/public/apple-icon.png index ac6dec0e296cbd8fc63ab9666aae249c7a754fdb..aecafa2fbc3b1388f65906543cc627b3ec292b58 100644 GIT binary patch literal 3184 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 diff --git a/public/user-default.jpg b/public/user-default.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cb8d81087ee1a0a9f04f981f3d93c20bf97811b7 GIT binary patch literal 18068 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 literal 0 HcmV?d00001 diff --git a/src/App.vue b/src/App.vue index d39529ed..9fd16aae 100644 --- a/src/App.vue +++ b/src/App.vue @@ -16,6 +16,7 @@ import { onBeforeMount } from 'vue' import { useColorModes } from '@coreui/vue' import { useThemeStore } from '@/stores/theme.js' +import GlobalImagePreview from '@/components/GlobalImagePreview.vue' // Initialize CoreUI color modes with local storage key const { isColorModeSet, setColorMode } = useColorModes( @@ -46,6 +47,7 @@ onBeforeMount(() => { diff --git a/src/views/group-menus/GroupMenus.vue b/src/views/group-menus/GroupMenus.vue new file mode 100644 index 00000000..2f0ab9ed --- /dev/null +++ b/src/views/group-menus/GroupMenus.vue @@ -0,0 +1,433 @@ + + + + + diff --git a/src/views/nas/NasResourceView.vue b/src/views/nas/NasResourceView.vue new file mode 100644 index 00000000..db0dd6bb --- /dev/null +++ b/src/views/nas/NasResourceView.vue @@ -0,0 +1,376 @@ + + + diff --git a/src/views/pages/Login.vue b/src/views/pages/Login.vue index 43386210..ee292d6f 100644 --- a/src/views/pages/Login.vue +++ b/src/views/pages/Login.vue @@ -1,3 +1,41 @@ + +