395 lines
39 KiB
XML
395 lines
39 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<project version="4">
|
|
<component name="AutoImportSettings">
|
|
<option name="autoReloadType" value="SELECTIVE" />
|
|
</component>
|
|
<component name="ChangeListManager">
|
|
<list default="true" id="6c8b3c54-eabb-40e5-967f-c7b594c750bc" name="Changes" comment="Allow admins and supervisors to book or update reservations for other users - Add role-based restrictions for booking or updating reservations on behalf of others (Admins/Supervisors only). - Extend reservation DTOs (`CreateReservationDto`, `UpdateReservationDto`) to include `userId` and `note` fields. - Update Prisma schema to allow nullable `userId` and add support for reservation notes. - Enhance API logic to validate permissions and handle ownership changes for reservations. - Improve UI for booking flow; introduce "Book for" options, user search, and reservation notes. - Localize new strings in `en.json` and `es-ES.json`.">
|
|
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
|
<change beforePath="$PROJECT_DIR$/apps/api/src/reports/reports.service.ts" beforeDir="false" afterPath="$PROJECT_DIR$/apps/api/src/reports/reports.service.ts" afterDir="false" />
|
|
<change beforePath="$PROJECT_DIR$/apps/api/src/reservations/reservations.service.ts" beforeDir="false" afterPath="$PROJECT_DIR$/apps/api/src/reservations/reservations.service.ts" afterDir="false" />
|
|
</list>
|
|
<option name="SHOW_DIALOG" value="false" />
|
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
|
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
|
<option name="LAST_RESOLUTION" value="IGNORE" />
|
|
</component>
|
|
<component name="EmbeddingIndexingInfo">
|
|
<option name="cachedIndexableFilesCount" value="93" />
|
|
<option name="fileBasedEmbeddingIndicesEnabled" value="true" />
|
|
</component>
|
|
<component name="Git.Settings">
|
|
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
|
</component>
|
|
<component name="McpProjectServerCommands">
|
|
<commands />
|
|
<urls />
|
|
</component>
|
|
<component name="ProblemsViewState">
|
|
<option name="selectedTabId" value="AISelfReview" />
|
|
</component>
|
|
<component name="ProjectColorInfo">{
|
|
"associatedIndex": 0,
|
|
"fromUser": false
|
|
}</component>
|
|
<component name="ProjectId" id="3BXlUbAsiEmEvH0PacGIZgCuvpY" />
|
|
<component name="ProjectViewState">
|
|
<option name="hideEmptyMiddlePackages" value="true" />
|
|
<option name="showLibraryContents" value="true" />
|
|
</component>
|
|
<component name="PropertiesComponent">{
|
|
"keyToString": {
|
|
"Docker.docker-compose.yml: Compose Deployment.executor": "Run",
|
|
"ModuleVcsDetector.initialDetectionPerformed": "true",
|
|
"RunOnceActivity.MCP Project settings loaded": "true",
|
|
"RunOnceActivity.ShowReadmeOnStart": "true",
|
|
"RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager.252": "true",
|
|
"RunOnceActivity.git.unshallow": "true",
|
|
"RunOnceActivity.typescript.service.memoryLimit.init": "true",
|
|
"codeWithMe.voiceChat.enabledByDefault": "false",
|
|
"com.intellij.ml.llm.matterhorn.ej.ui.settings.DefaultModelSelectionForGA.v1": "true",
|
|
"git-widget-placeholder": "main",
|
|
"javascript.preferred.runtime.type.id": "node",
|
|
"junie.onboarding.icon.badge.shown": "true",
|
|
"node.js.detected.package.eslint": "true",
|
|
"node.js.detected.package.tslint": "true",
|
|
"node.js.selected.package.eslint": "(autodetect)",
|
|
"node.js.selected.package.tslint": "(autodetect)",
|
|
"nodejs_interpreter_path": "/home/micosil/.nvm/versions/node/v22.21.1/bin/node",
|
|
"nodejs_package_manager_path": "npm",
|
|
"npm.api > start:dev.executor": "Run",
|
|
"npm.web > dev.executor": "Run",
|
|
"settings.editor.selected.configurable": "settings.javascript.runtime",
|
|
"to.speed.mode.migration.done": "true",
|
|
"ts.external.directory.path": "/home/micosil/WebstormProjects/desker/node_modules/typescript/lib",
|
|
"vue.rearranger.settings.migration": "true"
|
|
},
|
|
"keyToStringList": {
|
|
"DatabaseDriversLRU": [
|
|
"postgresql"
|
|
]
|
|
}
|
|
}</component>
|
|
<component name="RunManager" selected="npm.web > dev">
|
|
<configuration default="true" type="docker-deploy" factoryName="docker-compose.yml" temporary="true">
|
|
<deployment type="docker-compose.yml">
|
|
<settings />
|
|
</deployment>
|
|
<method v="2" />
|
|
</configuration>
|
|
<configuration name="docker-compose.yml: Compose Deployment" type="docker-deploy" factoryName="docker-compose.yml" temporary="true" server-name="Docker">
|
|
<deployment type="docker-compose.yml">
|
|
<settings>
|
|
<option name="sourceFilePath" value="docker-compose.yml" />
|
|
</settings>
|
|
</deployment>
|
|
<method v="2" />
|
|
</configuration>
|
|
<configuration name="api > start:dev" type="js.build_tools.npm" temporary="true" nameIsGenerated="true">
|
|
<package-json value="$PROJECT_DIR$/apps/api/package.json" />
|
|
<command value="run" />
|
|
<scripts>
|
|
<script value="start:dev" />
|
|
</scripts>
|
|
<node-interpreter value="project" />
|
|
<envs />
|
|
<method v="2" />
|
|
</configuration>
|
|
<configuration name="web > dev" type="js.build_tools.npm" temporary="true" nameIsGenerated="true">
|
|
<package-json value="$PROJECT_DIR$/apps/web/package.json" />
|
|
<command value="run" />
|
|
<scripts>
|
|
<script value="dev" />
|
|
</scripts>
|
|
<node-interpreter value="$USER_HOME$/.nvm/versions/node/v22.21.1/bin/node" />
|
|
<envs />
|
|
<method v="2" />
|
|
</configuration>
|
|
<recent_temporary>
|
|
<list>
|
|
<item itemvalue="npm.api > start:dev" />
|
|
<item itemvalue="npm.web > dev" />
|
|
<item itemvalue="Docker.docker-compose.yml: Compose Deployment" />
|
|
</list>
|
|
</recent_temporary>
|
|
</component>
|
|
<component name="SharedIndexes">
|
|
<attachedChunks>
|
|
<set>
|
|
<option value="bundled-js-predefined-d6986cc7102b-3bd3a6803838-JavaScript-WS-261.22158.274" />
|
|
</set>
|
|
</attachedChunks>
|
|
</component>
|
|
<component name="TaskManager">
|
|
<task active="true" id="Default" summary="Default task">
|
|
<changelist id="6c8b3c54-eabb-40e5-967f-c7b594c750bc" name="Changes" comment="" />
|
|
<created>1774643312599</created>
|
|
<option name="number" value="Default" />
|
|
<option name="presentableId" value="Default" />
|
|
<updated>1774643312599</updated>
|
|
<workItem from="1774643313611" duration="74000" />
|
|
<workItem from="1774643422240" duration="5278000" />
|
|
<workItem from="1774706361502" duration="13226000" />
|
|
</task>
|
|
<task id="LOCAL-00001" summary="Initialize Hot Desking app with web and API services - Set up SvelteKit for the web interface with Tailwind CSS. - Build the API using NestJS with Prisma ORM for database interaction. - Add environment variable management and docker-compose for PostgreSQL and PgAdmin instances. - Create shared data models for consistent typing across services. - Establish basic routing and layouts for web and API services.">
|
|
<option name="closed" value="true" />
|
|
<created>1774652817905</created>
|
|
<option name="number" value="00001" />
|
|
<option name="presentableId" value="LOCAL-00001" />
|
|
<option name="project" value="LOCAL" />
|
|
<updated>1774652817905</updated>
|
|
</task>
|
|
<task id="LOCAL-00002" summary="Remove compiled API files from version control - Deleted compiled JavaScript files, type definitions, and source maps from the `dist` folder.">
|
|
<option name="closed" value="true" />
|
|
<created>1774653909300</created>
|
|
<option name="number" value="00002" />
|
|
<option name="presentableId" value="LOCAL-00002" />
|
|
<option name="project" value="LOCAL" />
|
|
<updated>1774653909300</updated>
|
|
</task>
|
|
<task id="LOCAL-00003" summary="Implement authentication, organization management, and floor layout features - Add API authentication with JWT strategy using NestJS. - Configure Prisma schema for organizations, users, buildings, floors, and spaces. - Seed initial database with test data and relationships. - Build SvelteKit web pages for dashboard and floor layout with secured routing and organization hierarchy display. - Remove deprecated `AppService` from API.">
|
|
<option name="closed" value="true" />
|
|
<created>1774654565964</created>
|
|
<option name="number" value="00003" />
|
|
<option name="presentableId" value="LOCAL-00003" />
|
|
<option name="project" value="LOCAL" />
|
|
<updated>1774654565964</updated>
|
|
</task>
|
|
<task id="LOCAL-00004" summary="Add floorplan editor for admin layout management - Implement `FloorplanEditor.svelte` component for adding, editing, and positioning spaces. - Add backend support for floorplan image upload and batch updating space positions. - Update Prisma schema to include `planImageUrl` for floors. - Enable API proxy in Vite configuration for straightforward local development. - Refactor API calls to use a centralized `apiFetch` utility with token handling.">
|
|
<option name="closed" value="true" />
|
|
<created>1774707328435</created>
|
|
<option name="number" value="00004" />
|
|
<option name="presentableId" value="LOCAL-00004" />
|
|
<option name="project" value="LOCAL" />
|
|
<updated>1774707328435</updated>
|
|
</task>
|
|
<task id="LOCAL-00005" summary="Add building-level dashboard and interactive floorplan viewer - Create `+page.svelte` for building-level dashboard with floor selection and layout preview. - Add `FloorplanViewer.svelte` component with WebSocket integration for real-time space status updates. - Extend `SpacesService` and API endpoints for building floors and floor details retrieval. - Update dashboard UI with cleaner building and floor presentation. - Improve loading states and error handling across dashboard and floor pages.">
|
|
<option name="closed" value="true" />
|
|
<created>1774707617715</created>
|
|
<option name="number" value="00005" />
|
|
<option name="presentableId" value="LOCAL-00005" />
|
|
<option name="project" value="LOCAL" />
|
|
<updated>1774707617715</updated>
|
|
</task>
|
|
<task id="LOCAL-00006" summary="Add booking modal and enhance reservation handling - Create `BookingModal.svelte` for booking spaces with custom time slots or full-day durations. - Add API endpoint to fetch reservations by space ID and date. - Update `SpacesService` with enhanced validation rules and conflict checks for reservations. - Extend WebSocket updates to include reservation data for real-time synchronization. - Enable date-based filtering and status handling in UI components (`SpaceCard.svelte`, `FloorplanViewer.svelte`).">
|
|
<option name="closed" value="true" />
|
|
<created>1774708414077</created>
|
|
<option name="number" value="00006" />
|
|
<option name="presentableId" value="LOCAL-00006" />
|
|
<option name="project" value="LOCAL" />
|
|
<updated>1774708414077</updated>
|
|
</task>
|
|
<task id="LOCAL-00007" summary="Add support for space resizing and enhanced layout management - Update `SpacesService` to handle width and height properties for spaces. - Introduce `UpdateSpaceDto` for improved validation in batch update operations. - Extend `FloorplanEditor.svelte` and `FloorplanViewer.svelte` to support dynamic container scaling and space resizing. - Modify Prisma schema to include `width` and `height` fields for spaces. - Enhance floorplan rendering to maintain proportional layout during editing and viewing.">
|
|
<option name="closed" value="true" />
|
|
<created>1774709613724</created>
|
|
<option name="number" value="00007" />
|
|
<option name="presentableId" value="LOCAL-00007" />
|
|
<option name="project" value="LOCAL" />
|
|
<updated>1774709613724</updated>
|
|
</task>
|
|
<task id="LOCAL-00008" summary="Add admin reporting dashboard with utilization statistics and downloadable reports - Implement `+page.svelte` for admin reporting dashboard showing utilization and employee stats. - Add API endpoints for utilization stats, employee stats, and Excel report export (NestJS). - Create `ReportsService` and `ReportsModule` for backend logic. - Introduce `xlsx` package for generating Excel reports. - Update layout to include "Reports" link for admin users. - Extend Prisma querying for detailed building, space type, and employee role data.">
|
|
<option name="closed" value="true" />
|
|
<created>1774710366017</created>
|
|
<option name="number" value="00008" />
|
|
<option name="presentableId" value="LOCAL-00008" />
|
|
<option name="project" value="LOCAL" />
|
|
<updated>1774710366017</updated>
|
|
</task>
|
|
<task id="LOCAL-00009" summary="Add user management and registration features with invite-based onboarding - Implement `+page.svelte` for admin user management, allowing role updates, password resets, and invite link generation. - Add `+page.svelte` for user registration using invite tokens. -">
|
|
<option name="closed" value="true" />
|
|
<created>1774710670712</created>
|
|
<option name="number" value="00009" />
|
|
<option name="presentableId" value="LOCAL-00009" />
|
|
<option name="project" value="LOCAL" />
|
|
<updated>1774710670712</updated>
|
|
</task>
|
|
<task id="LOCAL-00010" summary="Add "My Bookings" page and enable reservation updates and cancellations - Implement `+page.svelte` for managing user reservations with real-time updates. - Add API endpoints for updating and canceling reservations with enhanced validation and authorization. - Introduce `UpdateReservationDto` for refined reservation update handling. - Update `reservations.service.ts` to handle overlapping checks, time adjustments, and admin actions. - Extend layout to include a link to the "My Bookings" page. - Add `date-fns` library for date formatting.">
|
|
<option name="closed" value="true" />
|
|
<created>1774710987605</created>
|
|
<option name="number" value="00010" />
|
|
<option name="presentableId" value="LOCAL-00010" />
|
|
<option name="project" value="LOCAL" />
|
|
<updated>1774710987605</updated>
|
|
</task>
|
|
<task id="LOCAL-00011" summary="Add building and floor management with admin editor modal - Implement `BuildingEditorModal.svelte` for creating, editing, and deleting buildings and floors. - Add `CreateBuildingDto`, `UpdateBuildingDto`, `CreateFloorDto`, and `UpdateFloorDto` for validation. - Extend `SpacesService` and `SpacesController` with endpoints for building and floor CRUD operations. - Update Prisma schema to include building descriptions and image URLs, and floor names. - Enhance dashboard with building management functionality for admin users.">
|
|
<option name="closed" value="true" />
|
|
<created>1774711356754</created>
|
|
<option name="number" value="00011" />
|
|
<option name="presentableId" value="LOCAL-00011" />
|
|
<option name="project" value="LOCAL" />
|
|
<updated>1774711356754</updated>
|
|
</task>
|
|
<task id="LOCAL-00012" summary="Enhance real-time space status updates and handling - Improve WebSocket connection reliability with updated transport options. - Introduce logic to prioritize real-time updates over initial data for live views. - Add logging for better debugging of WebSocket events and data propagation. - Update UI components (`SpaceCard`, `FloorplanViewer`) to avoid overwrites from stale data. - Refactor date handling for consistent behavior across components.">
|
|
<option name="closed" value="true" />
|
|
<created>1774711643921</created>
|
|
<option name="number" value="00012" />
|
|
<option name="presentableId" value="LOCAL-00012" />
|
|
<option name="project" value="LOCAL" />
|
|
<updated>1774711643921</updated>
|
|
</task>
|
|
<task id="LOCAL-00013" summary="Fix ownership checks and improve delete booking button UI - Update `isOwner` logic to account for nested user objects in reservation data. - Enhance delete button styling for better visibility and usability.">
|
|
<option name="closed" value="true" />
|
|
<created>1774711743510</created>
|
|
<option name="number" value="00013" />
|
|
<option name="presentableId" value="LOCAL-00013" />
|
|
<option name="project" value="LOCAL" />
|
|
<updated>1774711743510</updated>
|
|
</task>
|
|
<task id="LOCAL-00014" summary="Add organization management with logo support - Implement organization settings page (`+page.svelte`) for updating organization name and logo. - Create backend APIs for retrieving and updating organization details with role-based access control. - Add `OrganizationsModule`, `OrganizationsService`, and DTOs for input validation in NestJS. - Update Prisma schema to include `logoUrl` field for organizations. - Enhance navigation to dynamically display organization logo and name.">
|
|
<option name="closed" value="true" />
|
|
<created>1774712424451</created>
|
|
<option name="number" value="00014" />
|
|
<option name="presentableId" value="LOCAL-00014" />
|
|
<option name="project" value="LOCAL" />
|
|
<updated>1774712424451</updated>
|
|
</task>
|
|
<task id="LOCAL-00015" summary="Add assets module with file upload and retrieval support - Introduce `AssetsModule` with APIs for uploading and retrieving organization logos, building images, and floor plans. - Implement file validation for type and size (10MB max). - Add `resolveAssetUrl` utility for generating absolute asset URLs. - Enhance admin UI components to support image file uploads and previews. - Update Prisma schema to associate assets with organizations, buildings, and floors. - Modify existing update logic to clear references when external URLs are used.">
|
|
<option name="closed" value="true" />
|
|
<created>1774714222515</created>
|
|
<option name="number" value="00015" />
|
|
<option name="presentableId" value="LOCAL-00015" />
|
|
<option name="project" value="LOCAL" />
|
|
<updated>1774714222515</updated>
|
|
</task>
|
|
<task id="LOCAL-00016" summary="Add user profile management with avatar upload and update support - Create `+page.svelte` for managing user profiles, including name, avatar, and password updates. - Add `Avatar.svelte` component for rendering user avatars with Gravatar and fallback initials support. - Implement backend APIs for fetching and updating user profiles (`/users/profile`). - Add support for avatar uploads with file validation (max size: 5MB). - Update `FloorplanViewer.svelte` to display user names and avatars in reservations. - Introduce utilities for Gravatar URLs and user avatar management (`getGravatarUrl`, `getInitials`).">
|
|
<option name="closed" value="true" />
|
|
<created>1774714977147</created>
|
|
<option name="number" value="00016" />
|
|
<option name="presentableId" value="LOCAL-00016" />
|
|
<option name="project" value="LOCAL" />
|
|
<updated>1774714977147</updated>
|
|
</task>
|
|
<task id="LOCAL-00017" summary="Add i18n support with English and Spanish translations - Introduce `svelte-i18n` for internationalization. - Add English (`en.json`) and Spanish (`es-ES.json`) locale files. - Implement `setupI18n` function for initializing and managing locales. - Update project dependencies to include `svelte-i18n`.">
|
|
<option name="closed" value="true" />
|
|
<created>1774715653258</created>
|
|
<option name="number" value="00017" />
|
|
<option name="presentableId" value="LOCAL-00017" />
|
|
<option name="project" value="LOCAL" />
|
|
<updated>1774715653258</updated>
|
|
</task>
|
|
<task id="LOCAL-00018" summary="Update prompts to include progress indicator for documentation readability">
|
|
<option name="closed" value="true" />
|
|
<created>1774715728737</created>
|
|
<option name="number" value="00018" />
|
|
<option name="presentableId" value="LOCAL-00018" />
|
|
<option name="project" value="LOCAL" />
|
|
<updated>1774715728737</updated>
|
|
</task>
|
|
<task id="LOCAL-00019" summary="Add Docker deployment support for API and Web services - Add Dockerfiles for API and Web apps with multi-stage builds. - Configure `docker-compose.yml` to manage services (Postgres, API, Web, pgAdmin). - Add `.dockerignore` for optimized builds. - Include `DOCKER_SETUP.md` for deployment steps and guidance.">
|
|
<option name="closed" value="true" />
|
|
<created>1774715983233</created>
|
|
<option name="number" value="00019" />
|
|
<option name="presentableId" value="LOCAL-00019" />
|
|
<option name="project" value="LOCAL" />
|
|
<updated>1774715983233</updated>
|
|
</task>
|
|
<task id="LOCAL-00020" summary="Add rotation support for spaces in floorplan editor - Extend `Space` model and Prisma schema to include `rotation` property. - Update API services and DTOs to handle rotation data. - Add UI controls in `FloorplanEditor.svelte` for rotating spaces. - Refactor space rendering logic in both editor and viewer to support rotation.">
|
|
<option name="closed" value="true" />
|
|
<created>1774716452045</created>
|
|
<option name="number" value="00020" />
|
|
<option name="presentableId" value="LOCAL-00020" />
|
|
<option name="project" value="LOCAL" />
|
|
<updated>1774716452045</updated>
|
|
</task>
|
|
<task id="LOCAL-00021" summary="Add i18n integration and translations for improved localization - Extend English (`en.json`) and Spanish (`es-ES.json`) locale files with additional keys for buildings, bookings, reports, and user management. - Update Svelte components and pages to use `svelte-i18n` for dynamic translations across the app. - Refactor labels, titles, and error messages for multilingual support. - Improve date formatting based on locale preferences.">
|
|
<option name="closed" value="true" />
|
|
<created>1774717104130</created>
|
|
<option name="number" value="00021" />
|
|
<option name="presentableId" value="LOCAL-00021" />
|
|
<option name="project" value="LOCAL" />
|
|
<updated>1774717104130</updated>
|
|
</task>
|
|
<task id="LOCAL-00022" summary="Add seed service to initialize default admin and organization - Implement `SeedService` to create a default admin account and organization on app startup. - Update `PrismaModule` to include `SeedService` as a provider. - Remove seeded credentials display from login page. - Refactor existing seed script for consistency with the new service.">
|
|
<option name="closed" value="true" />
|
|
<created>1774717642991</created>
|
|
<option name="number" value="00022" />
|
|
<option name="presentableId" value="LOCAL-00022" />
|
|
<option name="project" value="LOCAL" />
|
|
<updated>1774717642991</updated>
|
|
</task>
|
|
<task id="LOCAL-00023" summary="Improve real-time space status handling and date-based resets - Add logic to clear real-time updates when the selected date changes. - Enhance space status updates to consider reservation time ranges for relevance. - Update relevant Svelte components (`SpaceCard`, `FloorplanViewer`) to handle date-sensitive real-time updates. - Update API to include reservation details in `space_status_changed` events for improved update precision.">
|
|
<option name="closed" value="true" />
|
|
<created>1774717937214</created>
|
|
<option name="number" value="00023" />
|
|
<option name="presentableId" value="LOCAL-00023" />
|
|
<option name="project" value="LOCAL" />
|
|
<updated>1774717937214</updated>
|
|
</task>
|
|
<task id="LOCAL-00024" summary="Add filtering for past and upcoming bookings in "My Bookings" page - Enhance UI to separate upcoming and past bookings with collapsible sections. - Add new i18n keys for handling booking filters (`en.json`, `es-ES.json`). - Update booking component logic to filter reservations based on time. - Introduce "Show/Hide Past Bookings" toggle for improved user experience.">
|
|
<option name="closed" value="true" />
|
|
<created>1774718091896</created>
|
|
<option name="number" value="00024" />
|
|
<option name="presentableId" value="LOCAL-00024" />
|
|
<option name="project" value="LOCAL" />
|
|
<updated>1774718091896</updated>
|
|
</task>
|
|
<task id="LOCAL-00025" summary="Refactor date picker components for improved accessibility and usability - Add `showPicker` event to trigger native date picker overlays. - Adjust z-index and positioning for hidden `input` elements to improve interaction. - Reorganize markup for consistent focus and selection behavior across components.">
|
|
<option name="closed" value="true" />
|
|
<created>1774718250404</created>
|
|
<option name="number" value="00025" />
|
|
<option name="presentableId" value="LOCAL-00025" />
|
|
<option name="project" value="LOCAL" />
|
|
<updated>1774718250404</updated>
|
|
</task>
|
|
<task id="LOCAL-00026" summary="Prevent past bookings and updates across web and API - Add validation logic to block creating or updating reservations in the past. - Update date pickers to enforce minimum selectable date as today. - Extend i18n files (`en.json`, `es-ES.json`) with new error messages. - Refine UI to disable interaction with past time slots and display appropriate messages.">
|
|
<option name="closed" value="true" />
|
|
<created>1774718397058</created>
|
|
<option name="number" value="00026" />
|
|
<option name="presentableId" value="LOCAL-00026" />
|
|
<option name="project" value="LOCAL" />
|
|
<updated>1774718397058</updated>
|
|
</task>
|
|
<task id="LOCAL-00027" summary="Allow admins and supervisors to book or update reservations for other users - Add role-based restrictions for booking or updating reservations on behalf of others (Admins/Supervisors only). - Extend reservation DTOs (`CreateReservationDto`, `UpdateReservationDto`) to include `userId` and `note` fields. - Update Prisma schema to allow nullable `userId` and add support for reservation notes. - Enhance API logic to validate permissions and handle ownership changes for reservations. - Improve UI for booking flow; introduce "Book for" options, user search, and reservation notes. - Localize new strings in `en.json` and `es-ES.json`.">
|
|
<option name="closed" value="true" />
|
|
<created>1774718807082</created>
|
|
<option name="number" value="00027" />
|
|
<option name="presentableId" value="LOCAL-00027" />
|
|
<option name="project" value="LOCAL" />
|
|
<updated>1774718807082</updated>
|
|
</task>
|
|
<option name="localTasksCounter" value="28" />
|
|
<servers />
|
|
</component>
|
|
<component name="TypeScriptGeneratedFilesManager">
|
|
<option name="version" value="3" />
|
|
</component>
|
|
<component name="Vcs.Log.Tabs.Properties">
|
|
<option name="TAB_STATES">
|
|
<map>
|
|
<entry key="MAIN">
|
|
<value>
|
|
<State />
|
|
</value>
|
|
</entry>
|
|
</map>
|
|
</option>
|
|
</component>
|
|
<component name="VcsManagerConfiguration">
|
|
<MESSAGE value="Add booking modal and enhance reservation handling - Create `BookingModal.svelte` for booking spaces with custom time slots or full-day durations. - Add API endpoint to fetch reservations by space ID and date. - Update `SpacesService` with enhanced validation rules and conflict checks for reservations. - Extend WebSocket updates to include reservation data for real-time synchronization. - Enable date-based filtering and status handling in UI components (`SpaceCard.svelte`, `FloorplanViewer.svelte`)." />
|
|
<MESSAGE value="Add support for space resizing and enhanced layout management - Update `SpacesService` to handle width and height properties for spaces. - Introduce `UpdateSpaceDto` for improved validation in batch update operations. - Extend `FloorplanEditor.svelte` and `FloorplanViewer.svelte` to support dynamic container scaling and space resizing. - Modify Prisma schema to include `width` and `height` fields for spaces. - Enhance floorplan rendering to maintain proportional layout during editing and viewing." />
|
|
<MESSAGE value="Add admin reporting dashboard with utilization statistics and downloadable reports - Implement `+page.svelte` for admin reporting dashboard showing utilization and employee stats. - Add API endpoints for utilization stats, employee stats, and Excel report export (NestJS). - Create `ReportsService` and `ReportsModule` for backend logic. - Introduce `xlsx` package for generating Excel reports. - Update layout to include "Reports" link for admin users. - Extend Prisma querying for detailed building, space type, and employee role data." />
|
|
<MESSAGE value="Add user management and registration features with invite-based onboarding - Implement `+page.svelte` for admin user management, allowing role updates, password resets, and invite link generation." />
|
|
<MESSAGE value="Add user management and registration features with invite-based onboarding - Implement `+page.svelte` for admin user management, allowing role updates, password resets, and invite link generation. Update `UsersController` and `UsersService` to support user role updates, password changes, and invite token generation. - Create DTOs (`RegisterDto`, `UpdateUserDto`) for input validation in user management endpoints. - Extend `AuthService` and `AuthController` with invite-based registration logic. - Update admin layout to include "Users" link for easy access to user management." />
|
|
<MESSAGE value="Add "My Bookings" page and enable reservation updates and cancellations - Implement `+page.svelte` for managing user reservations with real-time updates. - Add API endpoints for updating and canceling reservations with enhanced validation and authorization. - Introduce `UpdateReservationDto` for refined reservation update handling. - Update `reservations.service.ts` to handle overlapping checks, time adjustments, and admin actions. - Extend layout to include a link to the "My Bookings" page. - Add `date-fns` library for date formatting." />
|
|
<MESSAGE value="Add building and floor management with admin editor modal - Implement `BuildingEditorModal.svelte` for creating, editing, and deleting buildings and floors. - Add `CreateBuildingDto`, `UpdateBuildingDto`, `CreateFloorDto`, and `UpdateFloorDto` for validation. - Extend `SpacesService` and `SpacesController` with endpoints for building and floor CRUD operations. - Update Prisma schema to include building descriptions and image URLs, and floor names. - Enhance dashboard with building management functionality for admin users." />
|
|
<MESSAGE value="Enhance real-time space status updates and handling - Improve WebSocket connection reliability with updated transport options. - Introduce logic to prioritize real-time updates over initial data for live views. - Add logging for better debugging of WebSocket events and data propagation. - Update UI components (`SpaceCard`, `FloorplanViewer`) to avoid overwrites from stale data. - Refactor date handling for consistent behavior across components." />
|
|
<MESSAGE value="Fix ownership checks and improve delete booking button UI - Update `isOwner` logic to account for nested user objects in reservation data. - Enhance delete button styling for better visibility and usability." />
|
|
<MESSAGE value="Add organization management with logo support - Introduce `OrganizationsModule` with related logic in `AppModule`. - Update Prisma schema to include `logoUrl` field for organizations. - Enhance seeds to include default organization logo. - Update layout to dynamically display organization details, including logo and name. - Add UI support for organization-based navigation in admin routes." />
|
|
<MESSAGE value="Add organization management with logo support - Implement organization settings page (`+page.svelte`) for updating organization name and logo. - Create backend APIs for retrieving and updating organization details with role-based access control. - Add `OrganizationsModule`, `OrganizationsService`, and DTOs for input validation in NestJS. - Update Prisma schema to include `logoUrl` field for organizations. - Enhance navigation to dynamically display organization logo and name." />
|
|
<MESSAGE value="Add assets module with file upload and retrieval support - Introduce `AssetsModule` with APIs for uploading and retrieving organization logos, building images, and floor plans. - Implement file validation for type and size (10MB max). - Add `resolveAssetUrl` utility for generating absolute asset URLs. - Enhance admin UI components to support image file uploads and previews. - Update Prisma schema to associate assets with organizations, buildings, and floors. - Modify existing update logic to clear references when external URLs are used." />
|
|
<MESSAGE value="Add user profile management with avatar upload and update support - Create `+page.svelte` for managing user profiles, including name, avatar, and password updates. - Add `Avatar.svelte` component for rendering user avatars with Gravatar and fallback initials support. - Implement backend APIs for fetching and updating user profiles (`/users/profile`). - Add support for avatar uploads with file validation (max size: 5MB). - Update `FloorplanViewer.svelte` to display user names and avatars in reservations. - Introduce utilities for Gravatar URLs and user avatar management (`getGravatarUrl`, `getInitials`)." />
|
|
<MESSAGE value="Add i18n support with English and Spanish translations - Introduce `svelte-i18n` for internationalization. - Add English (`en.json`) and Spanish (`es-ES.json`) locale files. - Implement `setupI18n` function for initializing and managing locales. - Update project dependencies to include `svelte-i18n`." />
|
|
<MESSAGE value="Update prompts to include progress indicator for documentation readability" />
|
|
<MESSAGE value="Add Docker deployment support for API and Web services - Add Dockerfiles for API and Web apps with multi-stage builds. - Configure `docker-compose.yml` to manage services (Postgres, API, Web, pgAdmin). - Add `.dockerignore` for optimized builds. - Include `DOCKER_SETUP.md` for deployment steps and guidance." />
|
|
<MESSAGE value="Add rotation support for spaces in floorplan editor - Extend `Space` model and Prisma schema to include `rotation` property. - Update API services and DTOs to handle rotation data. - Add UI controls in `FloorplanEditor.svelte` for rotating spaces. - Refactor space rendering logic in both editor and viewer to support rotation." />
|
|
<MESSAGE value="Add i18n integration and translations for improved localization - Extend English (`en.json`) and Spanish (`es-ES.json`) locale files with additional keys for buildings, bookings, reports, and user management. - Update Svelte components and pages to use `svelte-i18n` for dynamic translations across the app. - Refactor labels, titles, and error messages for multilingual support. - Improve date formatting based on locale preferences." />
|
|
<MESSAGE value="Add seed service to initialize default admin and organization - Implement `SeedService` to create a default admin account and organization on app startup. - Update `PrismaModule` to include `SeedService` as a provider. - Remove seeded credentials display from login page. - Refactor existing seed script for consistency with the new service." />
|
|
<MESSAGE value="Improve real-time space status handling and date-based resets - Add logic to clear real-time updates when the selected date changes. - Enhance space status updates to consider reservation time ranges for relevance. - Update relevant Svelte components (`SpaceCard`, `FloorplanViewer`) to handle date-sensitive real-time updates. - Update API to include reservation details in `space_status_changed` events for improved update precision." />
|
|
<MESSAGE value="Add past and upcoming reservations filtering in My Bookings - Introduce filters to separate and toggle display of past and upcoming reservations. - Enhance localization with new translations for filter-related actions in English and Spanish. - Update My Bookings UI to dynamically display reservations based on their timeline. - Improve reservation display logic using `isPast` from `date-fns`." />
|
|
<MESSAGE value="Add filtering for past and upcoming bookings in "My Bookings" page - Enhance UI to separate upcoming and past bookings with collapsible sections. - Add new i18n keys for handling booking filters (`en.json`, `es-ES.json`). - Update booking component logic to filter reservations based on time. - Introduce "Show/Hide Past Bookings" toggle for improved user experience." />
|
|
<MESSAGE value="Refactor date picker components for improved accessibility and usability - Add `showPicker` event to trigger native date picker overlays. - Adjust z-index and positioning for hidden `input` elements to improve interaction. - Reorganize markup for consistent focus and selection behavior across components." />
|
|
<MESSAGE value="Prevent past bookings and updates across web and API - Add validation logic to block creating or updating reservations in the past. - Update date pickers to enforce minimum selectable date as today. - Extend i18n files (`en.json`, `es-ES.json`) with new error messages. - Refine UI to disable interaction with past time slots and display appropriate messages." />
|
|
<MESSAGE value="Allow admins and supervisors to book or update reservations for other users - Add role-based restrictions for booking or updating reservations on behalf of others (Admins/Supervisors only). - Extend reservation DTOs (`CreateReservationDto`, `UpdateReservationDto`) to include `userId` and `note` fields. - Update Prisma schema to allow nullable `userId` and add support for reservation notes. - Enhance API logic to validate permissions and handle ownership changes for reservations. - Improve UI for booking flow; introduce "Book for" options, user search, and reservation notes. - Localize new strings in `en.json` and `es-ES.json`." />
|
|
<option name="LAST_COMMIT_MESSAGE" value="Allow admins and supervisors to book or update reservations for other users - Add role-based restrictions for booking or updating reservations on behalf of others (Admins/Supervisors only). - Extend reservation DTOs (`CreateReservationDto`, `UpdateReservationDto`) to include `userId` and `note` fields. - Update Prisma schema to allow nullable `userId` and add support for reservation notes. - Enhance API logic to validate permissions and handle ownership changes for reservations. - Improve UI for booking flow; introduce "Book for" options, user search, and reservation notes. - Localize new strings in `en.json` and `es-ES.json`." />
|
|
</component>
|
|
</project> |