* fix: Use origin as provided in HeadSeo. origin would be different for Domain cases
* Add a test
* add more test
* Add tests
* Cleanup tests
* Add an e2e as well
* fix-test
* Reset mocks
* feat: Workflow — Send Email to Specific Email
* disable button when verifyEmail pending
* add verified emails table and routes
* fix: include teamId in verifyEmailCode
* fix: include email address in activate handler
* fix: check team before adding email
* feat: check verified email, add to team if only users
* remove logs
* fix: if statement
Co-authored-by: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com>
* change email to verify your email
* fix: show error if saving unverified email
* fix: show email in subject
* verify email when editing steps
* remove double calls from same block
* verify email when creating new step
---------
Co-authored-by: v0ltZzie <161201747+v0ltZzie@users.noreply.github.com>
Co-authored-by: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com>
* fix: save workflow button not visible on dev env
* refactor: use the CALCOM_ENV constant
* fix: ui fix for header on workspace pages
* refactor: remove unused variable
---------
Co-authored-by: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com>
* add endpoint to fetch managed user from client id
* update typings
* minor tweaks
* custom hook to fetch managed users from client id
* add translations for platform onboarding
* add isPlatformOrg boolean to figure out which is platform and which is not
* set isPlatform hook based on data obtained from org
* add limitWidth prop to control component width
* add props to shell to make sidebar display different tabs based on if the shell isPlattform or not
* platform related pages
* fix merge conflicts
* fix merge conflicts
* platform oauth client form and card
* remove everything related to platform from organization
* update oauth client card and form
* fixup
* fix imports and remove logs
* fixup
* update redirect url
* split oauth client form into separate update and create forms
* separate forms for create and edit oauth clients
* fixup
* fixup
* dynamic routes for oauth client edit page
* fixup fixup
* fix to not show error when redirect uri is empty
* refactor create handler for org
* cleaup comments
* add custom hook to check user billing
* export managed user type
* refactor platform index page
* refactor edit and create pages
* dashboard component containing oauth client list and managed user
* common oauth client form used for create and edit form
* platform pricing helper
* platform pricing component
* fix typing and data response for billing
* use custom hook to check team billing info
* fix type checks
* upgrade conditional rendering for upgrade to org banner
* add isLoading prop to check button loading state
* pass in button handler
* add custom hook to subscribe to stripe and typings
* update typings
* fix incorrect endpoint
* pass in team id as prop
* fix type check
* update stripe success and cancel redirect url
* add and pass redirect url param to custom hook
* custom hooks for platform
* cleanup
* update imports
* fix merge conflicts
* fixup
* fixup fixup
* fixup
* merge conflicts fixup
* merge conlficts battle :(
* minor fixes
* skip admin checks for a platform client
* fix typo
* append slug with _platform for a platform user
* PR feedback
* dashboard refactor
* bring back org form to its orginal state
* add platform folder to ee
* update typings
* use new create platform form
* fixup
* fix typo and update plans
* simplifying rendering
* remove managed users endpoint since it already exists
* url for endpoint
* rename tabs
* pr feedback
* managed users endpoint
* update endpoint
* remove form
---------
Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com>
Co-authored-by: exception <erik@erosemberg.com>
Co-authored-by: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com>
Co-authored-by: Keith Williams <keithwillcode@gmail.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
* feat: Redirect when event type does not match booking type
* Favour early return
* If multiple bookingUid/rescheduleUid given, use first
* rescheduleUid/bookingUid behaviour is required
* feat: impersonate trigger when there is a URL param
* feat: update intercom sidebar
* fix: add to onOpen too
---------
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
* feat: setup usePublicEvent with orgSlug and duration
* feat: setup useAvailableSlots with eventTypeSlug and orgSlug
* fix & feat: fix TS issues and allow passing multiple users to Booker
* refactor: dont show [15min] [30min] [60min] [1h30min] picker
* fix: pass orgSlug to handleNewBooking -> loadUsers -> findUsersByUsername to not return empty users[]
* refactor: display attendees in booking confirmation screen
* fix: getting slots get orgSlug from props not event
* revert: Booker username use props instead of hardcoded values
* refactor: setup BookerStore org and use it for selectedTime + isDynamic logic
* refactor: hide 'what is this meeting about' input in final booking step
* fix: TS error
* revert: what is the meeting about field hiding
* revert: make org as org? in booker store
* revert: createNewBooking -> loadUsers -> get forced orgSlug from header not body
* refactor: useHandleBookEvent get orgSlug from booker store not props
* fix: if entity undefined dont access orgSlug
* refactor: add isDynamic prop as queryKey for usePublicEvent
* refactor: remove unused prop
* re-add docs
* fix: typescript error
* fix: force platform orgSlug in handleNewBooking.ts
* fix: remove duplicate setSelectedDuration declaration
* refactor: destructure properies from body instead of req.body
* fix: entity optional and hide event members
---------
Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com>
Co-authored-by: Morgan Vernay <morgan@cal.com>
* fix: Support adding an non-existent email as the owner of the organization
* Remove dead code
* fixes
* add test
* self review changes
* Update packages/trpc/server/routers/viewer/organizations/create.handler.ts
Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
* Fix typo everywhere
---------
Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
* Install upstash redis again - base of noficationSender
* Setup email handler etc and use tasker
* Remove logs
* Sending emails and correct format and spacing in emails
* Update email styles
* Update email styles
* add switch to enable feature
* fix: reset tasker types - will fix in new PR
* WIP: test suite
* WIP: test suite
* Add redis service and add WIP mock test
* Add tests for redis service and fix lpush
* More working tests
* More working tests
* fix: type error + typo
* update export to match i18n next mock
* (debug) push for debug
* Fix: fixed hosting in mocks
* Add common.json i18n
* add better test descriptions
* reset mocks after each test to allow concurancy
* Remove redundant RedisService.test.ts
* Rename and remove redundant isAdmin check
* Rename to .d.ts
* Add key versioning to constructRedisKey
* Update packages/trpc/server/routers/viewer/slots/handleNotificationWhenNoSlots.ts
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
* Update packages/trpc/server/routers/viewer/slots/handleNotificationWhenNoSlots.ts
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
* Add try/catch
* fix breaking when option === undefined
* Add missing await to Promise.all
* Rename data stored in redis to save space
* Include thrown error in logs
---------
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
* remove event type requires confirmation
* allow sms sending also for team (frontend)
* allow text to attendee for team (backend)
* add rate limiting for SMS (WIP)
* add functionality to lock and unlock SMS sending (+admin UI view)
* rename to smsLockState
* add ability to lock users and teams
* don't send sms if locked
* add missing imports
* fix rate limit namespace
* add translation
* fix type error
* remove prop from UsersTable
* add smsLockState to buildUser
* code clean up
* create seperate sms rate limit function
* fix type error
* add missing userId and teamId to sendSMS
* code improvements
* add User Team type
* fix marking as reviewed
* check monthly sms limit only for user
* don't lock orgs
* fix type error
* fix avatars
* fix type error
* fix type error
* fix type error
---------
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
* fix: team memebrs being hidden for admin when org is private and they are not org admin
* chore: remove console.loog
* chore: make permissionCheck more readable
* test: push e2e test for normal privacy banner in orgs
* test: add a few more edge cases
* chore: negate names
* feat: update func to make more sense
* Fix
---------
Co-authored-by: Hariom <hariombalhara@gmail.com>
* chore: Remove all avatar/logo references
* Updated user profile to only use avatarUrl
* fix: minor style issue
* chore: Remove redundant includeTeamLogo
* fix: Use right avatar default in event type list
* fix: placeholder avatar team profile, target
* chore: Add logoUrl/avatarUrl to JWT
* fix: Bunch of org avatar issues, fix members list
* Fix logoUrl on org pages
* More type fixes
* Hopefully final type fixes
* Another round of type fixes
* fix: UserForm ts
* fix: Handle as return types, not input types
* fix: Remove profile and add avatarUrl
* fix: notFound as const
* fix: Seeder avatarUrl params
* revert: Migration changes for easier recovery
* fix: Add explicit type to builder as avatar is now set
* Add logoUrl to unpublished entity
* Avatar test out of scope here
* fix: Use the new avatarUrl after save
* chore: Removed getOrgAvatarUrl/getTeamAvatarUrl
* fix: Update sidebar image immediately after change
* Unable to safe unnamed user, so default
* fix: Unpublished page, add organization test
* Add more tests
* 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>
* 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>