-
Notifications
You must be signed in to change notification settings - Fork 0
feat: Bulk operations, appointment modal improvements, and tag filtering #29
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- Enable text wrapping for description cells - Set max-width and word-break properties - Add specific styling for description cells - Update table container scrolling behavior
- Add more intuitive date range options (e.g., '6 Monate', '12 Monate') - Extend the maximum range to 18 months - Bump version to 1.0.10
- Display tags as styled badges with proper colors - Add tooltips showing tag descriptions on hover - Sort tags alphabetically within each cell - Fix tag data processing in API response - Improve tag styling to match design system
- Fix time filter by properly handling cached data - Separate data fetching from filtering logic - Improve tag filtering integration - Ensure proper reactivity for all filters
- Create reusable TagMultiSelect component with modern chip design - Match tag colors with existing table implementation - Add select all/none functionality - Improve dropdown positioning and z-index handling - Add responsive design for better mobile experience - Include proper TypeScript types and documentation
- Updated tag display in appointment details modal to match table styling - Fixed background and text color application for tags - Ensured consistent tag appearance across the application - Resolved issue with color codes being displayed as text
- Add BulkActionsWidget component for reusable bulk operations UI - Add selection support to AdminTable with checkboxes - Implement bulk appointment extension functionality - Fix checkbox reactivity by creating new Set instances - Normalize appointment data to use seriesId for proper selection - Add useBulkAppointmentActions composable for bulk operations - Update AutomaticGroupsAdmin with selection count display Co-authored-by: Ona <no-reply@ona.com>
- Add fetchAppointmentSeries API function for complete series data - Restructure modal with card-based layout for better organization - Add all appointment fields: subtitle, address, link, calendar color - Implement proper series repetition display using repeatId - Add collapsible exceptions list for many items (show 10, expand all) - Fix image display using imageUrl from Image object - Fix description field (was using deprecated note field) - Fix additionals structure (array of objects with date field) - Add performance logging for API calls - Improve date formatting and address display - Add two-column responsive grid layout - Separate cards for: details, series info, tags, description, image Co-authored-by: Ona <no-reply@ona.com>
- Make tag filtering client-side only (no API reload on tag change) - Load all appointments once, filter locally in applyFilters() - Fix dropdown positioning with better scroll/resize handling - Add debug logging for filter operations - Fix watch initialization order to prevent 'before initialization' error - Remove immediate: true from filter watch to avoid race condition Co-authored-by: Ona <no-reply@ona.com>
…rovements Co-authored-by: Ona <no-reply@ona.com>
- Fix useToast import (use showSuccess/showError/showWarning instead of showToast) - Add type annotations for API responses in useBulkAppointmentActions - Handle both AppointmentBase and AppointmentCalculated types in churchtools.ts - Add proper type casting for additionals array mapping Co-authored-by: Ona <no-reply@ona.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR adds bulk operations functionality, completely overhauls the appointment details modal, and fixes tag filtering to work client-side.
Major Changes
1. Bulk Operations Widget
BulkActionsWidgetcomponent for bulk operations across admin panelsAdminTablewithselectablepropuseBulkAppointmentActionscomposable for appointment extension2. Appointment Details Modal Overhaul
fetchAppointmentSeries()API function for full appointment datarepeatId(DAILY=1, WEEKLY=7, etc.)imageUrlfrom Image objectdescriptionfield (not deprecatednote)datefieldbase.idfor row-key3. Tag Filtering Improvements
applyFilters()Technical Improvements
Testing
Files Changed
src/components/common/BulkActionsWidget.vue(new)src/components/common/AdminTable.vuesrc/components/common/TagMultiSelect.vuesrc/components/expiring-appointments/ExpiringAppointmentsAdmin.vuesrc/composables/useBulkAppointmentActions.ts(new)src/composables/useExpiringAppointments.tssrc/services/churchtools.tsDocumentation
See
docs/DEVELOPMENT_SESSION_2025-12-12_Appointment_Details_Modal.mdfor detailed session notes.Breaking Changes
None
Next Steps