Skip to content

Commit 3edf2ae

Browse files
author
Rik Dekker
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 a66d94f commit 3edf2ae

6 files changed

Lines changed: 842 additions & 753 deletions

File tree

0 commit comments

Comments
 (0)