Commit bd9b34d
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
- src
- components/Editor/Resources
- models
0 commit comments