Skip to content

Commit bd9b34d

Browse files
committed
feat(resources): browsable room finder with availability and dropdown filters
Replace the search-based resource picker with a browsable room finder that loads all room principals on mount and shows their availability in real time via free/busy queries. UI follows the design feedback from @jancborchardt on PR #7996: right-column placement (Outlook-style), NcSelect dropdowns for Building/Capacity/Floor/Features (no chips), text search, and a "Show unavailable" toggle. Each room is rendered as a compact card with availability status, capacity, and add/remove action. Selecting a room auto-fills the event LOCATION property using the roomAddress derived from CalDAV building-address and room-number metadata. Implementation reuses existing services and components: - principalsStore.getRoomPrincipals for initial load - checkResourceAvailability() from freeBusyService.js for availability - @nextcloud/vue: NcSelect, NcTextField, NcCheckboxRadioSwitch, NcLoadingIcon, NcButton Removes the now-redundant ResourceListItem.vue and ResourceListSearch.vue. Adds formatFacility() helper and extends getAllRoomTypes() in resourceProps.js with additional standard room types (board room, conference room, rehearsal room, studio, outdoor area). Components are written in TypeScript with Composition API and <script setup>, following the Sebastian Krupinski review feedback. Depends on the principal.js room metadata mapping (feat(principal): map CalDAV room metadata properties). Signed-off-by: Rik Dekker <rik@rikdekker.nl>
1 parent e87c932 commit bd9b34d

6 files changed

Lines changed: 842 additions & 753 deletions

File tree

0 commit comments

Comments
 (0)