Commit Graph
77 Commits
Author SHA1 Message Date
Khafid Prayoga ed56c4201f feat(breadcrumb): add breadcrumb component and update header integration
- Implement new breadcrumb component with proper routing handling
- Update header to use new breadcrumb component
- Optimize nuxt config for SPA with router and rendering settings
2025-09-17 15:57:21 +07:00
Khafid Prayoga f0c7d678cd Merge remote-tracking branch 'origin/dev' into fe-refactor-division-40 2025-09-17 11:09:39 +07:00
Khafid Prayoga 0ae1923f27 refactor(division): move entry logic to shared config file
Extract division form configuration and tree logic from entry.vue component into a shared entry.ts file. This improves code organization and reusability while maintaining the same functionality.
2025-09-16 16:00:16 +07:00
Khafid Prayoga c5ec8ccd32 fix(select-tree): adjust tree node indentation and alignment logic
- Add level prop to track node hierarchy
- Fix indentation calculation for leaves and nodes
- Simplify alignment logic based on node level
2025-09-16 15:14:37 +07:00
Khafid Prayoga b106b1d23e Merge remote-tracking branch 'origin/dev' into fe-refactor-division-40 2025-09-16 11:23:06 +07:00
Khafid Prayoga a63c364170 Merge branch 'dev' of github.com:dikstub-rssa/simrs-fe into fe-specialist-subspecialist-39 2025-09-15 14:43:03 +07:00
Khafid Prayoga 56056c3fdb fix(pagination): format record numbers with locale for indonesia
Apply toLocaleString('id-ID') to startRecord and endRecord to display numbers in Indonesian format
2025-09-15 14:42:36 +07:00
Khafid Prayoga 06caccf3cd feat(subspecialist): add subspecialist management components and pages
- Implement list view with pagination and search functionality
- Create form for adding subspecialist entries
- Add configuration for subspecialist data validation and dropdown options
2025-09-15 14:21:15 +07:00
Khafid Prayoga 566627239b feat(pagination): add reusable pagination component and update list views
- Create new PaginationView component to standardize pagination display
- Update multiple list components to use the new PaginationView
- Make paginationMeta prop required in list components
2025-09-15 11:01:18 +07:00
Khafid Prayoga 790c76be56 style(form/select): improve select component styling and focus state
- Add focus outline and ring styles to SelectTrigger
- Conditionally apply text color based on modelValue
- Simplify SelectItem template structure
2025-09-12 15:26:23 +07:00
Khafid Prayoga 87c36b94ea feat(specialist): add installation-unit relationship to specialist form
- Implement installation-unit mapping and filtering logic
- Update entry form to handle installation selection and unit filtering
- Add installation and unit dropdowns with combobox components
2025-09-12 14:42:05 +07:00
Khafid Prayoga 41d87623e2 feat(combobox): add disabled prop and improve styling
- Add disabled prop to combobox component to support disabled state
- Update styling to include better focus states and border color
2025-09-12 14:39:52 +07:00
Khafid Prayoga 865bbbdce9 init specialist feature 2025-09-11 14:46:50 +07:00
Khafid Prayoga 26b0cf12e3 refactor(api): consolidate query param transformation into utility function
Move URL parameter construction logic from multiple list components to a shared transform function in usePaginatedList. This improves code reuse and maintainability while keeping the same functionality.

Standardize query parameter names to match backend expectations ('page-number' and 'page-size' instead of 'page' and 'pageSize'). Update related schema and default params accordingly.
2025-09-11 13:28:07 +07:00
Khafid Prayoga 140bfa0420 init specialist feature 2025-09-11 10:13:40 +07:00
Khafid Prayoga ba6485a3e7 feat(division): wip tree select component
feat(division): update division list components and add mock api

- Replace patient API endpoint with division mock endpoint
- Simplify table columns and headers for division list
- Add mock API endpoint for division list with tree/flat format

feat(select-tree): add collapsible tree select component with lazy loading

Implement a tree select component with collapsible sections and lazy loading of child items. Includes:
- Collapsible component wrappers for Vue
- Command component wrappers for combobox functionality
- Tree select item component with loading states
- Example implementation in dev page

todo:
- scroll on overflow
- long text truncate possibly with tooltip
- more than > 5 depth of child
- mutate the children lazy
- integration backend for search based text and return  keys

feat(select-tree): add command-item component for tree selection

adjust hover bg-accent (remove state on-highlighted at styling) to avoid conflict on global component

refactor(select-tree): extract TreeItem interface to shared type file

Move TreeItem interface to a dedicated type file for better code organization and reusability. Update components to import the interface and add styling improvements to the tree-select component.

adjust text size for tree to sm

refactor(select-tree): rename tree-select-item to leaf and improve component

- Rename component to better reflect its purpose as a leaf node
- Improve UI with better spacing and hover states
- Simplify toggle logic using v-model
- Add checkmark icon for selected items

checkpoint

wip
2025-09-11 09:50:18 +07:00
Khafid Prayoga b436737f62 Merge branch 'dev' into refactor/mv-flow-to-content 2025-09-08 13:41:33 +07:00
Khafid Prayoga cae8ca73fd refactor(tools-equipment): replace flow components with content components
- Update device and material pages to use Content prefixed components instead of Flow
- Add new content components for device and material list/entry functionality
- Maintain same functionality while improving component naming consistency
2025-09-08 11:17:47 +07:00
Khafid Prayoga b0938a2eb6 feat(org-src): replace flow components with content components and add list views
Add new content components for unit, division, and installation with list views, entry forms, and validation schemas. Replace Flow*List components with Content*List components in org-src pages. Includes pagination, search functionality, and CRUD operations for each entity type.
2025-09-08 11:09:35 +07:00
Khafid Prayoga 97199cee3b feat(integration): adjust route pages based on sys conf 2025-09-08 10:57:16 +07:00
Khafid Prayoga d9a675be05 refactor(composables): extract pagination logic into usePaginatedList composable
- Remove duplicate schema.query.ts files from unit, division, and installation components
- Create new usePaginatedList composable to centralize pagination logic
- Update list.vue components to use the new composable
- Maintain same functionality while reducing code duplication
2025-09-04 16:19:51 +07:00
Khafid Prayoga 39d96e7b24 feat(unit): implement unit management flow with list and form components
- Add schema validation and default query params for unit management
- Create list view with pagination, search, and delete functionality
- Implement form entry with validation for creating/editing units
- Replace placeholder content with functional unit list component
- Remove unused unit add page and update page titles
2025-09-04 13:17:06 +07:00
Khafid Prayoga 3dbc1b8fd1 refactor(pagination): move pagination info display to component and improve layout
- Consolidate pagination info display logic in pagination component
- Remove duplicate computed properties from list components
- Improve pagination layout with better spacing and responsiveness
- Add skeleton loading support to data tables
2025-09-04 11:26:58 +07:00
Khafid Prayoga 6c70beb882 refactor(org-src): remove unused division and installation add pages
move to modal based form entry (bcz its simple form)
2025-09-03 17:03:05 +07:00
Khafid Prayoga 4c0312e487 feat(installation): implement installation list with pagination and search
refactor(installation): move form schema and configuration to separate files
fix(installation): update page title and content display
2025-09-03 17:00:49 +07:00
Khafid Prayoga 646c7b6d73 fix(flow): prevent outside click on division form dialog
Add prevent-outside prop to Dialog component to avoid accidental closure
2025-09-03 16:07:39 +07:00
Khafid Prayoga a3905dd9b9 feat(data-table): add skeletonSize prop to customize loading rows
Add optional skeletonSize prop to control the number of skeleton rows displayed during loading. Defaults to 5 if not provided.
2025-09-03 15:34:11 +07:00
Khafid Prayoga a9c286bd0a feat(division): impl division list+entry
feat(form): add accessibility improvements to form components

- Add labelFor prop to Label component for better form element association
- Enhance Combobox with ARIA attributes for better screen reader support
- Update form fields with proper IDs and label associations

feat(pagination): adjust button width based on page number length

Add dynamic button sizing for pagination items to accommodate different digit lengths (1-99, 100-999, 1000+). This improves visual consistency when displaying varying page numbers.

feat(modal): add reusable dialog component and refactor division form

- Create new Dialog.vue component with configurable size and outside click prevention
- Replace inline dialog implementation in division list with new Dialog component
- Fix formatting in entry-form.vue

feat(data-table): add click handling for action cells

Implement handleActionCellClick function to manage click events on action cells, triggering dropdown buttons when clicked outside interactive elements. Add cursor-pointer class and click handler to action cells for better UX.

refactor(custom-ui): centralize action event strings in types

Replace hardcoded action event strings with constants from types.ts to improve maintainability and reduce potential typos

feat(confirmation): add reusable confirmation modal components

- Implement base confirmation.vue component with customizable props
- Create record-specific record-confirmation.vue for data operations
- Add comprehensive README.md documentation for usage
- Integrate confirmation flow in division list component

refactor(components): move dialog component to base directory and update imports

The dialog component was moved from custom-ui/modal to base/modal to better reflect its shared usage across the application. All import paths referencing the old location have been updated accordingly.

refactor(select): reorganize imports and adjust conditional formatting

- Reorder imports in Select.vue for better organization
- Adjust logical operator formatting in SelectContent.vue for consistency
2025-09-03 15:13:44 +07:00
Khafid Prayoga b6d30eb154 refactor(division): extract entry form to separate component and improve form handling
- Move form logic from list component to dedicated entry-form component
- Implement proper form submission and cancellation handlers
- Add type safety with DivisionFormData interface
- Improve form validation using vee-validate
- Refresh data after successful form submission
2025-09-02 16:49:19 +07:00
Khafid Prayoga add19f33a2 feat(data-table): add size prop to action components
Add size prop configuration to action components in data table to allow consistent sizing. Update dropdown action component to accept size prop with default value.
2025-09-02 16:25:32 +07:00
Khafid Prayoga 664849e15b feat(division): add form dialog for creating new division
- Implement dialog form with validation schema for division creation
- Add combobox component for parent division selection
- Include form submission handling with reset and error states
- a11y
2025-09-02 16:14:40 +07:00
Khafid Prayoga 132068fcde feat(division): implement division list with pagination and search
- Add schema validation for query parameters
- Create pagination component with type definitions
- Implement division list view with search functionality
- Add data table configuration for division listing
- Handle pagination state and URL synchronization
2025-09-01 15:08:55 +07:00
Khafid Prayoga b1b324e688 refactor(data-table): improve type safety and component rendering
- Replace generic 'any' types with specific type imports for better type safety
- Add optional chaining for funcComponent to prevent potential runtime errors
- Update funcHtml and funcParsed to include rowIndex parameter in callbacks
2025-09-01 11:35:02 +07:00
Khafid Prayoga 529b8ef7df feat(installation): add installation entry form and pages
- Create new installation entry form component with validation
- Add installation list and add pages with basic routing
- Implement custom select component for encounter class selection
- Update SelectTrigger styling for better icon positioning
2025-08-29 16:33:20 +07:00
Khafid Prayoga 5e1775d057 feat(unit): add unit management pages and form components
- Create new unit list and add pages under org-src feature
- Implement unit entry form with validation using zod
- Update error types to support readonly path property
- Refactor field component to use shared error type
2025-08-29 13:39:59 +07:00
Khafid Prayoga ee3bb1cd6e refactor(error): move error types to centralized location
Consolidate XError, XErrors, and FormErrors types into a single file for better maintainability and consistency across the codebase.
2025-08-29 11:04:59 +07:00
Khafid Prayoga d6b288404f feat(division): add division management pages and form validation
- Create new division list and add pages
- Implement form validation using zod and error handling
- Add useFormErrors composable for form error management
- Update division entry form with validation support
- Add error styling in main.css
2025-08-29 10:42:07 +07:00
Khafid Prayoga 2a74c0a2c7 feat(division): add entry form and view components for division management 2025-08-28 15:29:48 +07:00
Khafid Prayoga 89710d9768 feat(combobox): add reusable combobox component with search and selection
Implement a combobox component with search functionality and item selection. The component supports displaying item labels with optional codes, maintains selected item state, and provides customizable placeholders. Items are sorted with selected items first followed by alphabetical order.
2025-08-28 15:24:14 +07:00
Khafid Prayoga c773edce8c Merge branch 'dev' of github.com:dikstub-rssa/simrs-fe into feat/org-src 2025-08-28 13:37:44 +07:00
Khafid Prayoga 71dfd6545c feat: add new components for unit, division and installation
Add list and entry-form components for unit, division and installation modules
2025-08-28 12:25:05 +07:00
Khafid Prayoga 6ad99d45f2 Fix/linter (#10)
* fix(style): formatting inconsistencies across codebase

- Remove trailing semicolons from TypeScript imports
- Fix Vue template indentation and line breaks
- Standardize component attribute formatting
- Remove unnecessary empty lines
- Reorder import statements for consistency

* chore: update import path and add editorconfig

Update SidebarNavLink import path to match new component structure and add standard editorconfig for consistent code formatting
2025-08-27 13:06:40 +07:00
Khafid Prayoga 6b1c7a6b37 Merge pull request #9 from dikstub-rssa/feat/satusehat
Feat/satusehat
2025-08-27 09:58:10 +07:00
Khafid Prayoga d4cdbb063d docs: add Shadcn Vue documentation link to README 2025-08-26 17:09:32 +07:00
Khafid Prayoga 04b87733d5 build: add vscode launch config and tailwind config
Add launch configuration for Chrome debugging in VSCode and set up TailwindCSS configuration with animations and theme customization
2025-08-26 17:05:08 +07:00
Khafid Prayoga 153c171a3b refactor(ui): migrate button and pagination components to radix-vue
- Replace reka-ui imports with radix-vue in Button component
- Update pagination components to use direct radix-vue icons
- Simplify button variants styling and adjust size variants
- Remove unused data-slot attribute from Button component
2025-08-26 16:57:11 +07:00
Khafid Prayoga e21e5f1e7a refactor(ui): improve layout consistency and table styling
- Add container borders and padding for better visual hierarchy
- Standardize table cell borders across components
- Reset query params to defaults when changing resource type
- Clear data on fetch error to prevent stale data display
- Translate "No data available" to Indonesian
2025-08-26 15:15:14 +07:00
Khafid Prayoga 5685b31c48 feat(satusehat): implement query schema and improve data table
- Add schema.query.ts for query validation with zod
- Move constants to const.ts for better organization
- Refactor list.vue to use new query schema and constants
- Add empty state handling to data-table.vue
2025-08-26 13:10:09 +07:00
Khafid Prayoga de7a833ddc Merge branch 'dev' of github.com:dikstub-rssa/simrs-fe into feat/satusehat 2025-08-25 14:58:45 +07:00
Khafid Prayoga 31084be5ce feat(loading-state): add loading indicators and skeleton UI for data tables
- Implement loading state management across patient, doctor and satusehat lists
- Add skeleton loading UI for data tables during data fetching
- Refactor loading state variable naming for consistency
- Make search nav optional in header component
- Update icon sizing in header for better responsiveness
- Implement url search params query state at satusehat
2025-08-25 13:33:28 +07:00
Khafid Prayoga 92d6e2af10 Merge branch 'dev' of github.com:dikstub-rssa/simrs-fe into feat/satusehat 2025-08-22 11:34:40 +07:00
Khafid Prayoga b9d72af02f Merge pull request #7 from dikstub-rssa/fix/shadcnui-import-alias
refactor(ui): update import paths from @/lib/utils to ~/lib/utils
2025-08-22 11:19:36 +07:00
Khafid Prayoga ae0acf84d0 refactor(ui): update import paths from @/lib/utils to ~/lib/utils
Standardize import paths across UI components to use ~/lib/utils alias instead of @/lib/utils for better consistency and maintainability.
2025-08-22 11:18:06 +07:00
Khafid Prayoga a5f9e3fc68 feat(satusehat-mock): implement API Mock integration with filtering and pagination
- Add new API endpoint for fetching SatuSehat data with filtering capabilities
- Implement client-side data fetching with status, resource type, date range and search filters
- Add pagination support with server-side pagination handling
- Improve UI with loading states and pagination controls
2025-08-21 16:28:01 +07:00
Khafid Prayoga 6fe1bd2c48 feat(satusehat): add search component, card summary and date picker
- Implement search component with lucide-vue-next icon
- Create card summary component for displaying summary data
- Add date picker component with range selection functionality
- Update list configuration and styling
- Reorganize package.json structure
2025-08-21 14:43:42 +07:00
Khafid Prayoga e4b634e76a Merge branch 'dev' of github.com:dikstub-rssa/simrs-fe into feat/satusehat 2025-08-21 10:02:38 +07:00
Khafid Prayoga d913724d62 feat(satusehat): add patient list components and integration
- Implement badge components for patient and status display
- Create list component with configurable table columns
- Add entry form for new patient registration
- Integrate with existing SatuSehat service flow
2025-08-20 14:50:17 +07:00
Khafid Prayoga bd98bb815a refactor: update type casting and clean up imports
- Add type casting for route.meta.title in index.vue
- Update tailwind css path in components.json
- Remove unused imports and simplify dashboard component
2025-08-20 14:49:59 +07:00
Khafid Prayoga ff67dd5146 Merge branch 'dev' of github.com:dikstub-rssa/simrs-fe into feat/satusehat 2025-08-20 09:38:49 +07:00
Khafid Prayoga 8fc097d92f feat(patient): add status badge component for patient list
Implement a new status badge component to visually indicate patient status (active/inactive) in the patient list. The badge uses different colors based on status code and is integrated into the list configuration.
2025-08-19 17:04:49 +07:00
Khafid Prayoga 341c27679c refactor(data-table): improve type safety and rendering logic
- Replace ambiguous `object` types with more specific type definitions
- Separate HTML rendering from plain text interpolation for better security
- Simplify template logic by removing nested ternary operations
2025-08-19 16:51:21 +07:00
Khafid Prayoga 1b84ce3c62 feat(doctor): add status badge component for doctor list
Replace hardcoded status text with a reusable status badge component to improve consistency and maintainability. Remove console.log statement and adjust column widths in the list configuration.
2025-08-19 16:40:53 +07:00
Khafid Prayoga 3e6e773313 style: add loader state on acquiring token 2025-08-19 15:50:17 +07:00
Khafid Prayoga 066a884bf0 Merge branch 'dev' of github.com:dikstub-rssa/simrs-fe into feat/satusehat 2025-08-19 11:05:03 +07:00
Khafid Prayoga b1cb24cae3 feat(satusehat): add integration pages and components
Add new SatuSehat integration feature including:
- Page components for list, add, edit, and detail views
- Service status component and type definitions
- Summary card component updates for string metrics
- RBAC permissions configuration for SatuSehat routes
2025-08-19 11:01:28 +07:00
Khafid Prayoga cbb38c0275 impl data table list of doctor 2025-08-15 13:54:54 +07:00
Khafid Prayoga 025fc821fc Merge branch 'dev' of github.com:dikstub-rssa/simrs-fe into feat/doctor 2025-08-14 16:57:09 +07:00
Khafid Prayoga 4f2782a934 init form add doctor 2025-08-14 14:59:47 +07:00
Khafid Prayoga b22d606a17 Merge branch 'dev' of github.com:dikstub-rssa/simrs-fe into feat/doctor 2025-08-14 11:05:20 +07:00
Khafid Prayoga 616c843260 init doctor page 2025-08-14 10:55:25 +07:00
Khafid Prayoga bcfbc3af67 Merge remote-tracking branch 'origin/dev' into feat/doctor 2025-08-14 10:32:16 +07:00
Khafid Prayoga 1b6c161448 init doctor base feature 2025-08-13 14:45:28 +07:00
Khafid Prayoga b51f4c248d Merge remote-tracking branch 'origin/dev' into feat/patient 2025-08-13 10:24:49 +07:00
Khafid Prayoga 949aa718b6 add condition if zero trends , hide the timeframe 2025-08-12 14:58:29 +07:00
Khafid Prayoga cc26415486 refactor(flow/patient): use Summary Card and loading state ♻️
- Replace inline cards with `PubBaseSummaryCard`
- Add `isLoading.summary` and mock `getPatientSummary()` 
- Render skeleton while loading; show data when ready 
- Update icons and remove `cn` 🧹
- Call `getPatientSummary()` and `getPatientList()` on mount 🚀
2025-08-12 14:38:40 +07:00
Khafid Prayoga 7f7dfe0a02 feat(pub/base): add reusable Summary Card + Summary type
- Add `summary-card.vue` with skeleton state 
- Add `summary-card.type.ts` with `Summary` interface and timeframe mapping 📅
2025-08-12 14:38:20 +07:00
Khafid Prayoga cecd591f47 impl summary card patient 2025-08-11 16:02:36 +07:00