## What does this PR do?
<!-- Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change. -->
This PR adds the `credentialId` to payment app data. This fixes a bug where team installed payment apps were not working with team events.
Fixes # (issue)
<!-- Please provide a loom video for visual changes to speed up reviews
Loom Video: https://www.loom.com/
-->
## Requirement/Documentation
<!-- Please provide all documents that are important to understand the reason of that PR. -->
- If there is a requirement document, please, share it here.
- If there is ab UI/UX design document, please, share it here.
## Type of change
<!-- Please delete bullets that are not relevant. -->
- [x] Bug fix (non-breaking change which fixes an issue)
## How should this be tested?
<!-- Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration. Write details that help to start the tests -->
- Install Stripe for the individual user
- Enable it for the individual's event type
- The `credentialId` should be saved to the metadata
- Install Stripe to the user's team
- Enable it in the team's event type
- The `credentialId` should be saved to the metadata
## Mandatory Tasks
- [ ] Make sure you have self-reviewed the code. A decent size PR without self-review might be rejected.
## Checklist
<!-- Remove bullet points below that don't apply to you -->
- I haven't checked if new and existing unit tests pass locally with my changes
## What does this PR do?
Fixes that it can happen that Round Robin host is booked outside of availability.
I found and fixed the following two scenarios where this can happen:
- when host has a date override
- when host is available for only a part the event time (for example, booking time 9:00-11:00 and user is only available between 10:00-11:00)
Fixes#10315Fixes#11690
It also fixes that it can happen that round robin doesn't correctly pick the luck user (least recently booked). This happened when a user was an attendee of a booking before, then we always compared this booking and never the actual last booking of this user.
## Type of change
- [x] Bug fix (non-breaking change which fixes an issue)
## How should this be tested?
#### Booked outside of availability:
1.
- Create Round Robin event and assign user1 and user2 as round robin hosts
- event duration: 120 minutes
- user 1 availability:
- Monday to Friday 9:00-17:00
- user2 availability:
- Monday to Friday 10:00-17:00
- Book event at a 9:00 slot -> check if i user1 is booked
- Book event again at a 9:00 slot -> check if user1 is booked again (user2 is not available at that time)
2.
- Change availability of user2
- Mark Monday as unavailable
- Add date override on any day this month
- Book any Monday this month -> see that user 1 is booked
- Again Book any Monday this month -> see that user 1 is booked again
#### Wrong lucky user
- Book event and add user1's email as the attendee email address
- Book several slots where both users should be available, and see that it alternates between user1 and user2 (before it ended up always booking user1)
## Mandatory Tasks
- [ ] Make sure you have self-reviewed the code. A decent size PR without self-review might be rejected.
* feat: add team name in the createTeam fixture
* chore: remove unnecessary variables
* test: e2e booking for Round Robin EventType
* feat: teammates in user fixtures
* chore: DRY
* fix: remove redundant todo
* fix: add teamEvent title and slug in scenario
* test: booking title, RR hostname
* feat: Added e2e test paid booking should be able to be rescheduled
* refactor: abstracted and simplied the logic
* fix: stripe iframe isnt the first frame
* fix: import expect
* Add Stripe integration tests
* Add Stripe payment feature
* Update Stripe payment form with valid card info
* Fill postal code if visible in Stripe test
* Implementing new e2e test
* lint fix
---------
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: alannnc <alannnc@gmail.com>
* Add test for attendees rescheduling bookings
* Add tests for rescheduling seated bookings (first attendee)
* Fix tests not skipping disabled times on new booker UI
* Add tests for rescheduling seated bookings (all attendees)
* Remove duplicate tests (my mistake)
* Add explicit test ids for cancel inputs
* Add E2E tests for seated attendees cancelling their bookings
* Update E2E tests for a seated attendee rescheduling their booking
* Update tests to remove dependence on localised text
* Updated seated E2E tests to remove testing of unused URL
---------
Co-authored-by: Efraín Rochín <roae.85@gmail.com>
* Replace the ui login with api login
* test api login
* go to first page after login in some tests
---------
Co-authored-by: Keith Williams <keithwillcode@gmail.com>
* [CAL-1517] fix all Typescript warnings
* solve conflicts
* Update stripeCheckoutSession.handler.ts
Parse is a guard, so even though the variable is unused the parse itself is needed.
* Update ToolbarPlugin.tsx
Don't change dependency tree
---------
Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
* WIP-already-reschedule-success-emails-missing
* WIP now saving bookingSeatsReferences and identifyin on reschedule/book page
* Remove logs and created test
* WIP saving progress
* Select second slot to pass test
* Delete attendee from event
* Clean up
* Update with main changes
* Fix emails not being sent
* Changed test end url from success to booking
* Remove unused pkg
* Fix new booking reschedule
* remove log
* Renable test
* remove unused pkg
* rename table name
* review changes
* Fix and and other test to reschedule with seats
* Fix api for cancel booking
* Typings
* Update [uid].tsx
* Abstracted common pattern
into maybeGetBookingUidFromSeat
* Reverts
* Nitpicks
* Update handleCancelBooking.ts
* Adds missing cascades
* Improve booking seats changes (#6858)
* Create sendCancelledSeatEmails
* Draft attendee cancelled seat email
* Send no longer attendee email to attendee
* Send email to organizer when attendee cancels
* Pass cloned event data to emails
* Send booked email for first seat
* Add seat reference uid from email link
* Query for seatReferenceUId and add to cancel & reschedule links
* WIP
* Display proper attendee when rescheduling seats
* Remove console.logs
* Only check for already invited when not rescheduling
* WIP sending reschedule email to just single attendee and owner
* Merge branch 'main' into send-email-on-seats-attendee-changes
* Remove console.logs
* Add cloned event to seat emails
* Do not show manage link for calendar event
* First seat, have both attendees on calendar
* WIP refactor booking seats reschedule logic
* WIP Refactor handleSeats
* Change relation of attendee & seat reference to a one-to-one
* Migration with relationship change
* Booking page handling unique seat references
* Abstract to handleSeats
* Remove console.logs and clean up
* New migration file, delete on cascade
* Check if attendee is already a part of the booking
* Move deleting booking logic to `handleSeats`
* When owner reschedule, move whole booking
* Prevent owner from rescheduling if not enough seats
* Add owner reschedule
* Send reschedule email when moving to new timeslot
* Add event data to reschedule email for seats
* Remove DB changes from event manager
* When a booking has no attendees then delete
* Update calendar when merging bookings
* Move both attendees and seat references when merging
* Remove guest list from seats booking page
* Update original booking when moving an attendee
* Delete calendar and video events if no more attendees
* Update or delete integrations when attendees cancel
* Show no longer attendee if a single attendee cancels
* Change booking to accepted if an attendee books on an empty booking
* If booking in same slot then just return the booking
* Clean up
* Clean up
* Remove booking select
* Typos
---------
Co-authored-by: zomars <zomars@me.com>
* Fix migration table name
* Add missing trpc import
* Rename bookingSeatReferences to bookingSeat
* Change relationship between Attendee & BookingSeat to one to one
* Fix some merge conflicts
* Minor merge artifact fixup
* Add the right 'Person' type
* Check on email, less (although still) editable than name
* Removed calEvent.attendeeUniqueId
* rename referenceUId -> referenceUid
* Squashes migrations
* Run cached installs
Should still be faster. Ensures prisma client is up to date.
* Solve attendee form on booking page
* Remove unused code
* Some type fixes
* Squash migrations
* Type fixes
* Fix for reschedule/[uid] redirect
* Fix e2e test
* Solve double declaration of host
* Solve lint errors
* Drop constraint only if exists
* Renamed UId to Uid
* Explicit vs. implicit
* Attempt to work around text flakiness by adding a little break between animations
* Various bugfixes
* Persistently apply seatReferenceUid (#7545)
* Persistently apply seatReferenceUid
* Small ts fix
* Setup guards correctly
* Type fixes
* Fix render 0 in conditional
* Test refactoring
* Fix type on handleSeats
* Fix handle seats conditional
* Fix type inference
* Update packages/features/bookings/lib/handleNewBooking.ts
* Update apps/web/components/booking/pages/BookingPage.tsx
* Fix type and missing logic for reschedule
* Fix delete of calendar event and booking
* Add handleSeats return type
* Fix seats booking creation
* Fall through normal booking for initial booking, handleSeats for secondary/reschedule
* Simplification of fetching booking
* Enable seats for round-robin events
* A lot harder than I expected
* ignore-owner-if-seat-reference-given
* Return seatReferenceUid when second seat
* negate userIsOwner
* Fix booking seats with a link without bookingUid
* Needed a time check otherwise the attendee will be in the older booking
* Can't open dialog twice in test..
* Allow passing the booking ID from the server
* Fixed isCancelled check, fixed test
* Delete through cascade instead of multiple deletes
---------
Co-authored-by: Joe Au-Yeung <j.auyeung419@gmail.com>
Co-authored-by: Peer Richelsen <peer@cal.com>
Co-authored-by: zomars <zomars@me.com>
Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
Co-authored-by: Efraín Rochín <roae.85@gmail.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
* first attempt of <UpgradeScreen>
* changes to icons
* reverted changes back to initial state, needs fix: teams not showing
* WIP
* Fix weird reactnode error
* Fix loading text
* added upgradeTip to routing forms
* icon colors
* create and use hook to check if user has team plan
* use useTeamPlan for upgradeTeamsBadge
* replace huge svg with compressed jpeg
* responsive fixes
* Update packages/ui/components/badge/UpgradeTeamsBadge.tsx
Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>
* Give team plan features to E2E tests
* Allow option to make a user part of team int ests
* Remove flash of paywall for team user
* Add team user for typeform tests as well
Co-authored-by: Peer Richelsen <peer@cal.com>
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
* Add new modal for duplicate and trpc action for it
* Adding event type duplication validations
* Fix type errors and id not being removed from rest obj
* Fix test for duplicating event
* Fix test for duplicating event
* Add connect to event type workflows
* fix button for adding new events
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* nit
* added timezoneChangeDialog
* prevent interactOutside
* nit
* fixed title prop clash
* nit
* remind in one day if clicked outside
* Use utcOffset instead of tz string for checking diff
Co-authored-by: Alex van Andel <me@alexvanandel.com>
* First commit
* Additional changes to meet designs
* Fixing app details disconnect button
App Store category filtering fixed
* Further changes for the fix
* Progress on various fronts
* Fixing e2e tests
* second try fixing e2e tests
* Yet again trying to fix e2e tests
* Missing action for non-credential flow
* Adding missing Add button
* Final tweaks and fixes
* Missing button in empty screen
* fix border radius
* EmptyScreen for calendar
* Dynamic installed app return page with highlights + other fixes
* Removing unneeded code
* App Store V2 Improvements over feat/v2-installed-apps (#4379)
* Removing unneeded text
* Fixing app details disconnect button and number of apps (#4305)
* V2 Settings Shell - Add Teams Section & UI fixes (#4347)
* Add teams to sidebar and fix UI
* Clean up
* V2 Multi-select (Team Select) (#4324)
* --init
* design improved
* further fine tuning
* more fixes
* removed extra JSX tag
* added story
* NIT
* revert to use of CheckedTeamSelect
* Removes comments
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
* fix: toggle alligment (#4361)
* fix: add checked tranform for switch (#4357)
* fixed input size on mobile, fixed settings (#4360)
* fixing type errors
* Mobile fixes
* Tests fixes
Co-authored-by: Syed Ali Shahbaz <52925846+alishaz-polymath@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: zomars <zomars@me.com>
* Feat/team owner booking (#3999)
* WIP: testing queries
* feat: add badge
* fix: get only id
* refactor: get bookings query
* WIP: display attendees added
* fix: add type
* Adds skeleton loader to workflows (#4402)
* fix event types skeleton loader
* fix margin in event types
* fix skeleton loader in bookings
* add skeleton loader for workflow list
* add skeleton loader for editing page
* fix border radius of skeleton loader
* fix mobile view workflow list
* add mobile view for skeleton list
* make multi select full with in mobile view
* mobile view for edit skeleton loader
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* V2 settings teams (Profil, Members, Appearance View) (#4350)
* add team profile
* first version for team members page
* finish up design of member list item
* fix dialog buttons
* add missing seats and upgrading information
* add v2 dialog for changing role
* finish basic version of member's schedule
* remove modalContainer
* design fixes team profile page
* show only team info to non admins
* allow all member to check availabilities
* make time available heading sticky
* add dropdown for mobile view
* create team appearance view
* finish appearance page
* use settings layout and add danger zone for member
* add fallback logo
* Add teams to sidebar and fix UI
* add team invitations
* Clean up
* code clean up
* add impersontation and disable autofocus on calendar
* improve team info
* refactor teaminvitelist code and fix leaving a team
* add team pages to settings shell
* add link to create new team
* small fixes
* clean up comments
* V2 Multi-select (Team Select) (#4324)
* --init
* design improved
* further fine tuning
* more fixes
* removed extra JSX tag
* added story
* NIT
* revert to use of CheckedTeamSelect
* Removes comments
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
* fix: toggle alligment (#4361)
* fix: add checked tranform for switch (#4357)
* fixed input size on mobile, fixed settings (#4360)
* fix image uploader button in safari
* code clean up
* fixing type errors
* Moved v2 team components to features
Adds deprecation notices
* Update SettingsLayout.tsx
* Migrated to features and build fixes
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: Joe Au-Yeung <j.auyeung419@gmail.com>
Co-authored-by: Syed Ali Shahbaz <52925846+alishaz-polymath@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
Co-authored-by: zomars <zomars@me.com>
* add rainbowkit form to v2 event-types (#4349)
Co-authored-by: Omar López <zomars@me.com>
* v1.9.5
* Fix/daterangepicker css (#4418)
* added styles from external stylesheet
* fixed a border color
* codacy improvements
* more codacy fix
* codacy why u be so dumb
* dynamic import rainbow (only if installed) (#4409)
* Tidyup app cards (#4428)
* Moving API to trpc query
Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
Co-authored-by: Syed Ali Shahbaz <52925846+alishaz-polymath@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: zomars <zomars@me.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com>
Co-authored-by: Joe Au-Yeung <j.auyeung419@gmail.com>
Co-authored-by: hexcowboy <accounts@cowboy.dev>
Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>
* Abstracting one level the redirectUrl for apps
* Moving enum to a better/working place
* Another try
* Missing code
* Correcting categories look in apps page
* ui tweaks
* Breadcrumb wrong font-weight
* Toast is v1 component and copy updated
* Fix TS error
* Fix TS error
* Update AppsLayout.tsx
* Update InstalledAppsLayout.tsx
* translations and disconnect button with icon
* Reverting file
* Test e2e fix on app-store
* Missing testid in button
* Fix to click categories that are visible
* Going directly to category page as a patch
* Fixing stripe e2e test
* Disconnect is now empty with icon
* Disabled stripe test for now as the navigation is completely changed
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Omar López <zomars@me.com>
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
Co-authored-by: Syed Ali Shahbaz <52925846+alishaz-polymath@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
Co-authored-by: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com>
Co-authored-by: Joe Au-Yeung <j.auyeung419@gmail.com>
Co-authored-by: hexcowboy <accounts@cowboy.dev>
Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
* [WIP] New design and components for onboarding page
* saving work in progress
* new fonts
* [WIP] new onboarding page, initial page, components
* WIP calendar connect
* WIP availability new design
* WIP onboarding page
* WIP onboarding, working new availability form
* WIP AvailabilitySchedule componente v2
* WIP availability with defaultSchedule
* User profile view
* Relocate new onboarding/getting-started page components
* Steps test for onboarding v2
* Remove logs and unused code
* remove any as types
* Adding translations
* Fixes translation text and css for step 4
* Deprecation note for old-getting-started
* Added defaul events and refetch user query when finishing getting-started
* Fix button text translation
* Undo schedule v1 changes
* Fix calendar switches state
* Add cookie to save return-to when connecting calendar
* Change useTranslation for useLocale instead
* Change test to work with data-testid instead of hardcoded plain text due to translation
* Fix skeleton containers for calendars
* Style fixes
* fix styles to match v2
* Fix styles and props types to match v2 design
* Bugfix/router and console errors (#4206)
* The loading={boolean} parameter is required, so this must be <Button />
* Fixes duplicate key error
* Use zod and router.query.step directly to power state machine
* use ul>li & divide for borders
* Update apps/web/components/getting-started/steps-views/ConnectCalendars.tsx
Co-authored-by: alannnc <alannnc@gmail.com>
* Linting
* Deprecation notices and type fixes
* Update CreateEventsOnCalendarSelect.tsx
* Type fixes
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
Co-authored-by: zomars <zomars@me.com>