* add Travel Schedule modal
* UI to list schedules
* set shouldDirty
* add backend to add new travelSchedule
* implement deleting a schedule
* check if schedule is overlapping
* WIP
* fix finding overlapping travel schedule
* only use travelSchedule when default availability is used
* adjust date overrides to timezone schedule
* first version of changeTimeZone cron job
* fix tests by adding travelSchedules
* fixes for cron job api call
* improve unit tests
* add migration
* fix type error
* fix collective-scheduling test
* clean up cron job
* code clean up
* code clean up
* show timezone from travel schedule for date override
* add date override tests
* show tz on date override only in default schedule
* fix deleting old schedules
* minor fixes in cron api handler
* code clean up
* code clean up from feedback
* fix asia/kalkota comment
* fix dark mode
* fix start and end date conversion to utc
* add first unit test for travel schedules
* Fix modal render issue
* show timezone city wtihout _
* fix dark more for datepicker
* reset values after closing dialog
* remove session from middleware
* exit loop early once schedule is found
* fix type error
* add getTravelSchedules handler
* clean up DatePicker
* fix type error
* code clean up
* code clean up
* add indexes
* use deleteMany
* fix icons
---------
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
* feat: Delete/Create WebhookScheduledTriggers for existing bookings
* fix: type check
* fix: early return, query status in prisma, unnecessary trigger type check
* feat: add/delete scheduled webhook triggers for team and user
---------
Co-authored-by: v0ltZzie <samit091848@gmail.com>
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
* fix: [CAL-3374] Says Number is not Verified, but it is Verified
* clearing error only when verified
* type-checks fixed
* chore: improvement
---------
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
Co-authored-by: Udit Takkar <udit222001@gmail.com>
* feat: always show intercom on desktop by default (hidden on mobile)
* Revert "feat: always show intercom on desktop by default (hidden on mobile)"
This reverts commit d14a7b0808a5c3b7f15de75d3a422c4ec5e14f2b.
* feat: always show intercom on desktop by default (hidden on mobile)
* fix: type error
* refactor
* saved showIntercom in localstorage instead of DB
---------
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
* Consider requestedSlug as well for instances that require payment
* fix
* Though we should add isTeamEvent to avoid duplicate /event request. But right now that is not breaking functionality
* fix small frontend issues with Booker
This commit fixes the following:
- The "location" icon is now visible in light move when using the "in person (Organizer Address)" option
- The language in which the date and length is shown in modals now corresponds to the language of the creator of the calendar (before this is was always in english)
- If the text is too large for the modal, they will adapt into a collumn
-
* correct small mistakes
* chore: getDurationFormatted
---------
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
Co-authored-by: Udit Takkar <udit222001@gmail.com>
* feat(appStore): add isOAuth config
* refactor(appStore): EventTypeAppSettngsInterface
* refactor(qr_code): split EventTypeAppCardInterface and EventTypeAppSettingsInterface
* feat(appStore): redirect to onboarding for stripe and basecam
* fix(ui/ScrollableArea): overflow indicator not working
* feat(apps): new install app flow
* fix(configureStep): get disabled props for settings
* fix: getAppInstallsBySlug now use teamIds
* chore: Alby to AppSettingsInterface
* chore: Giphy to appsettings interface
* chore: GTM migration
* chore: GT4 - migration
* chore: fathom migration
* chore: paypal
* feat: basecamp migration
* feat: metapixel migration
* feat:plausable
* feat:stripe
* fix merge issues
* fix merge issues in new app install flow steps
* wip: callback to onboarding
* fix: imports
* fix: more imports
* feat: use redirect to onboarding on install flow
* feat: New app install flow 2 (#14077)
* fix: redirect to event-type after oauth flow
* When clicking on install new app button, only redirect to the new app install flow if it is an oAuth app or an app that extends the EventType feature in it's config
* code refactor, skip event-type step
* removed extra consoles
* so that no one can change the eventTypeId in url
* theme support enabled
* only pass eventTypeId instead of whole evetType obj to OmniInstallAppButton
* fix: clicking on event-type gives error and redirects to /apps
* saved appOnboardingRedirectUrl to OAuth State
* fix: a user having no team breaks the onboarding flow
* add optional chaining to appMetadata.extendsFeature and appMetadata.isOAuth;
* encode appOnboardingRedirectUrl
* fix: dark theme ui issues
* skip configure step if no-event types
if user/team does not have event-type then skip configure step and goto apps/installed/[category]
* exclude calendars from apps- onboarding flow
* Update getAppOnboardingRedirectUrl.ts
* fix: On configure step, inputs aren't showing errors
* change route from `apps/onboarding` to `apps/installation`
* fix: flow not correctly working for teams
* should only allow team ADMIN or OWER to install an app to team
* Prevent two payment apps to be enabled
* removed loading state
* Fix type error
* undo new-app-flow from OmniInstallAppButton
* remove OAuth Step, handle step numbering
* fix: redirect url
* getAppOnboardingRedirectUrl refactor
* for debugging
* Revert "for debugging"
This reverts commit b9362c1a8f47f2280e684c213d7ec08d04a8ac4c.
* fix: added toaster
* feat: added support to select multiple events (almost)
* hide button
* Move inner form outside outer form using portal
Due to limitations with nested forms in React Hook Form, moved the inner form outside the outer form using a portal to ensure proper form handling.
* submit buttons refs madness
* removed configure step
we had to use query params to manage selected event-types, between routes which was causing 2 issues:
* each time we selected or unselected an event the whole page was reloaded including getserversideprops being called again and again
* the form was reloaded causing more issues
* removed extra unwanted code
* small fix
* fix: type error
* fix: types
* implemented suggested changes
* removed step footer
* fixed error.message
* removed commented styles
* removed step footer
* fix: Display team event types instead of user's on event types step when team selected
* fix: typo
* removed shouldLockDisableProps
* refactor setUpdatedEventTypesStatus, fix type
* removed extra code
* can't delete while saving
* added translations
* fix: loading in select account step, fix handle onSelect params type
* Fix typo
---------
Co-authored-by: Joe Au-Yeung <j.auyeung419@gmail.com>
* fix: type errors
* fix: failing tests
---------
Co-authored-by: sean-brydon <sean@cal.com>
Co-authored-by: Keith Williams <keithwillcode@gmail.com>
Co-authored-by: Joe Au-Yeung <j.auyeung419@gmail.com>
Co-authored-by: Somay Chauhan <somaychauhan98@gmail.com>
* fix: filter and listMember handler
* Update packages/trpc/server/routers/viewer/teams/listMembers.handler.ts
Co-authored-by: Keith Williams <keithwillcode@gmail.com>
* Update packages/features/bookings/components/PeopleFilter.tsx
---------
Co-authored-by: Keith Williams <keithwillcode@gmail.com>
* added email and company form
* i18n
* feat: add guest email and company
* chore: update and format prompt
* chore: hint var
* chore: fix err message
---------
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
Co-authored-by: Udit Takkar <udit222001@gmail.com>
* make sure modal always appears
* separate event form wrappers into two components
* platform hook to fetch event type by id
* testing useGetEventTypeById hook
* add useGetEventTypeById to monorepo exports
* use platform hook for event type by id
* init bookings endpoint
* abstracting functions
* e2e tests for bookings
* hooks for bookings endpoint
* bookings respository fixtures
* typings for booking input
* fixup
* abstract booking info code and use it as handler
* import handlers for bookings endpoint
* add cancel booking input
* add handleCancelBooking handler in platform libraries
* cancel booking endpoint
* abstract call into its own separate fn
* cancel booking hook
* e2e test for cancel booking endpoint
* fix import
* export getBookings function
* move getAllUserBookings into lib
* add bookings folder to package exports
* use getAllUserBookings from lib
* fix import path
* fix: hooks, endpoint and example for cancel / reschedule / list / booking success page
* fix: unit test mock classNames import from lib
* fix: unit test mock classNames import from lib
---------
Co-authored-by: Morgan Vernay <morgan@cal.com>
Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com>
* WIP
Adds the capability to add SSO setup in orgs
if you are an Admin or an Owner of the org
* remove sso setup from teams
* allows account creation on first login
* auto-add on login and dsync fixes
* allow SP & idP initiated login for SAML
* revert change to checkIfUserShouldbelongToOrg
* fixes SP initiated Login for first time
* removed stale comment
* code improvement
* --
* minor fixes
* more fix
* add description for non-admin sso settings page
* fix: Attendee address and phone number field not shown in booking questions
* Address review comments
---------
Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
* fix: getEnv not returning fallback API_URL breaking examples app
* refactor: use vite as the only way to build atoms
* refactor: web use atoms from web.ts and rest from dist
* refactor: update atoms version, description and set privacy to public
* fix: lib and ui import from web atoms
* refactor: rename @calcom/platform-atoms to @calcom/atoms
* feat: atoms as npm works with example app outside monorepo
* start atoms from v1.0.0
* refactor: monorepo atoms for internal use
* document atoms publishing
* refactor: remove unused import in v2
* fix: mistakes made during main merge
* refactor: move back examples app while still having it in atoms-examples repo
* refactor: monorepo examples readme
* feat: atoms yarn publish command
* refactor: atoms css file simplify
* fix: mocking atoms in ui unit test
* fix: mocking atoms in app-store unit test
* Add UI to select members to receive emails in routing form
* Add backend changes to support frontend to select team members to get routing form updates to
* Fix type error
* Fix all the members of all the teams the user is part of shown instead of only the current team where the routing form is created
* Fix type error
* Refactor components to a shared folder
* fix type error
* Fix review comment: only include emails
* Remove listMembers trpc call in frontend and get the data in formQuery.handler
* Address review comments
* Remove unrelated changes
* Update SingleForm.tsx
---------
Co-authored-by: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com>
Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>