* removed reduntand check on assignedusers
* update for managed eventtype
* formatted
* comments
* Updated comments
* extracted checkForEmptyAssignment and added tests
* updated comments
* updated to show dialog also when not yet saved
* update translations
* updated comments
* updated translation
* updated types
* chore: update naming and comments
* Delete apps/web/lib/checkForEmptyAssignment.ts
deleted since file was renamed
* Delete apps/web/test/lib/checkForEmptyAssignment.test.ts
deleted as the file is renamed to be more descriptive
* update to do teamcheck before
* chore: revert name to CheckForEmptyAssignment
* updated check conditions
* updated useEffect dependencies
---------
Co-authored-by: Anik Dhabal Babu <81948346+anikdhabal@users.noreply.github.com>
* add org to create workflow button
* add save button for testing in dev mode
* add select all to multi select dropdown
* fix select all
* pass isOrg to WorkflowDetailsPage
* add checkbox to apply to all including future
* fix count text on select
* WIP schema
* shows teams in dropdown
* add team option to UI
* [WIP] refactor for update handler
* filter out "all" from activeOn
* fix type error
* create more helper functions
* create reusable function for scheduling all booking reminders
* finish update workflows for orgs (without testing)
* fix isAuthorized check for orgs
* fix getting newActiveOn
* move all helper functions to util file
* more code clean up
* fix deleting reminders for org workflows
* fix adding and editing steps
* update form data when workflow is saved
* code clean up
* fixing creating/deleting reminders when user is member of several teams
* fix setting activeOn for teams in useffect
* add on delete cascade
* make multiSelectSchenbox searchable
* set activeOn correctly when checkbox true
* WIP
* fix type errors in MultiSelectCheckboxes
* implemented scheduling org-wide workfow notifications (not yet tested)
* fix type errors
* type error
* add missing changes from merge conflict
* remote not needed include statement
* fix type errors
* code clean up + some todo comments
* support org workflows for cancelled workflows
* delete reminders from removed members
* remove reminders if isActiveOnAll is turned off
* fix unti test and type error
* code clean up
* create basis for testing to book org team event
* create org workflow with active team
* fix getting active org workflows on team + test setup
* fix creating workflow step for tests
* fix first org test
* add test for user event type with org workflow active
* use deleteAllWorkflowReminders everywhere
* add test for deleteRemindersFromRemovedActiveOn
* fix type errors
* make all tests pass
* fix type error
* fix getSchedule test
* code clean up
* add missing import
* fix type error
* fix tests
* code clean up
* fix imports
* update reminders when trigger was changed
* check for teamId before userId in reminderScheduler
* move getOrgIdFromMemberOrTeamId to different folder
* code clean up
* fix tests
* test setup for scheduleBookingReminders
* fix typo
* add tests for scheduleBookingReminders
* fix prisma default import
* fix workflowStep type
* add scheduleBookingReminders test for sms
* return dummy sid for scheduleSMS testMode
* clean up + fixes
* add lost changes from merge
* get teamId and userId from incoming evt object
* removing not needed select
* add org support for scheduleMandatory email reminder
* add other teams to dropdown
* move getAllWorkflows to seperate file and call it in parent function
* include org wide workflows in createNewSeat
* some fixes + code clean up
* add new team to select text count when including future teams is checked
* fix upsert and remove sms reminder field
* correctly update activeOn if 'including future ...' is enabled
* list active Org workflows in event workflows settings
* fix sms reminder field in all handlers
* add helper function to check if step was edited
* fix active on badge on workflow
* fix type error
* fix double reminders
* add teamId: null for userWorkflow query
* fix activeOnAll with managed event types
* add missing teamId in getAllWorkflows
* add a dafaut to prisma param
* fix managed event types on select all user workflows
* code clean up
* better variable name
* small fixes in update handler
* fix test name to match function name
* add info badge
* fix workflow count in event type settings
* fix getting bookings from children manged event types
* delete reminders when user is not part of any time no more
* implement feedback
* fix disbale workflow in event type settings
* fix remove member
* create new function getAllWorkflowsFromEventType
* add some removed code
* use promise.allSettled when deleting workflow reminders
* create new function deleteWorkflowRemindersOfRemovedMember.ts
* fix userId param
* delete org worklfows when team is disbanded
* don't trigger active on all workflow if not part of any team
* fix active on count badge
* add test for deleteWorkflowRemidnersOfRemovedMember
* trigger workflow also if not member of any subteam
* fix failing test
* remove unused code
* use testId for go back button
* fixes for managed event types & activateEventTypeHandler
* code clean up
* don't activate workflow on locked managed event type
* fix type error
* type error
* more type fixes
* feedback
---------
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
Co-authored-by: Keith Williams <keithwillcode@gmail.com>
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
* fix timezone display on booking page to reflect event availability timezone
* migrate fetching event owner's schedule to server side
* migrate fetching event owner's schedule to server side
* fix e2e test errors
* Add WEBAPP_URL_FOR_OAUTH to salesforce auth
* In event manager constructor include "_crm" credentials as calendar creds
* Change crm apps to type to end with `_crm`
* Move sendgrid out of CRM
* Add zoho bigin to CRM apps
* When getting apps, use slug
* Add `crm` variants
* Hubspot Oauth use `WEBAPP_URL_FOR_OAUTH`
* Refactor creating credentials
* Fix empty CRM page
* Use credentials with `_crm`
* Abstract getAppCategoryTitle
* Add integration.handler changes
* Init crmManager
* Change salesforce to CrmService
* Create crmManager
* Create contact on new event
* Create event
* Create new CRM reference
* - Fix create new contact for salesforce
- Add reschedule to crmManager
* Create deleteAllCRMEvents
* When searching for credential, look for current credentials in class
* On cancel, delete 3rd party events
* Add delete method
* Type fix
* Type fix
* Convert Close.com to CrmService
* Convert Close.com to CrmService
* Move hubspot to CrmService
* Convert Pipedrive to CrmService
* Rename classes to CrmService
* Move ZohoCrm to CrmService
* Move Bigin to CrmService
* Type return for CrmServices
* Fix type errors
* Close.com create leads and contacts
* Fix tests
* Type fix
* Zoho bug fixes
* Clean up
* Type fixes
* Remove apiDeletes
* Type fixes
* Specific typing
* Type fix
* Type fix
* Type fix
* Type fix
* Type fix
* feat: Enable CRM apps on a per event type basis (#14450)
* Add Salesforce to be an event type app
* Handle new booking, only get enabled CRM credentials
* Abstract generating search params
* Add close.com to event type
* Clean up
* Move hubspot to event type
* Add pipedrive to event type
* Add zoho bigin to event type
* Add zoho crm to event type
* Remove console.log
* Add deleting CRM apps from event type
* Delete event type apps
* Fix deleting credentials
* Add CRM app data to event type metadata
* Backwards compatibility: add CRM credential if doesn't exist on event type
* Don't include user CRM credentials for backwards comp
* Backwards compatibility show CRM app is enabled and dirty field
* Clean up
* Type fixes
* Type fixes
* Type fix
* Type fix
* Remove console.log
* Test fix
* Upgrade embed-react vite version - dev
* Change build can't find error message
* Add back omni install prop
* Clean up
* Refactor `writeAppDataToEventType`
* Use eventType repository in writeAppDataToEventType
* Clean up old comments
* Add error logging
* createCRMEvents pass event uid as created event uid
* Use `getUid`
* Clean up props in create crm event
* Small changes to `crmManager`
* Fix zoho CRM
* refactor crmManager
* Undo vite config change
* Fix teamId query
* Fix bigin error
* Remove need for `writeAppDataToEventType`
* Add `getAllCredentials` test
* Add crmManager tests
* Type fixes
* Fix type errors
* Fix getAllCredentials test
* Fix tests
* Skip CRM manager tests for now
* feat: Skip RR Assignment if Contact Exists In Salesforce (#14556)
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
* Update yarn.lock
* @zomars feedback - use new URL for state params
* fix: update hook to not produce enabled === undefined
* fix: update app card interfaces to use the new enabled from useIsAppEnabled
* fix: feedback for crm RR skip (#15160)
* code clean up
* fix type any
* test setup for RR lead skip
* code clean up
* simplify code
* type error
* finshed first test for RR lead skip
* add seconds test
* add test for handleNewBooking
* test if teamMember is set
* fix missing enabled key
* fix tests
* fix type error
* use setSystemTime instead of getDate
* remove nested if
---------
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
* fix type error
* fix: remove app metadata from all eventTypes on deleting the app
* fix: update hook to not produce enabled === undefined (default to false)
---------
Co-authored-by: Shaik-Sirajuddin <sirajuddinshaik30gmail.com>
Co-authored-by: Shaik-Sirajuddin <sirajudddinshaik30@gmail.com>
Co-authored-by: Shaik-Sirajuddin <89742297+Shaik-Sirajuddin@users.noreply.github.com>
Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>
Co-authored-by: Omar López <zomars@me.com>
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: sean-brydon <sean@cal.com>
Co-authored-by: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com>
Co-authored-by: Somay Chauhan <somaychauhan98@gmail.com>
* wip
* wip
* wip
* Add tests
* Update getSchedule.test.ts
* Update types.ts
* Self review fixes
* Update text
* PR feedback from Carina
* Use utcoffset for range as well
* Remove logging from the function that runs on every timeslot
* Add one more test
* Show x days instead of x+1 days for both ROLLING and ROLLING_WINDOW
* refactor tests
* Move bookingScenario imports to the top as they import prismock mock that has to be imported very early
* More reordering of imports
* Fix accidental min update at wrong place
* Handle legacy value of zero for periodDays
* Range fix
* Fix isDateOutOfBound not being checked properly during booking. Also added a test for the case
* Fix duplicate element, how the hell it reached there
* Use today plus x days for ROLLING periodType
* Add disabled for Checkbox as well
* Revert logger.ts
* Formatting
Signed-off-by: zomars <zomars@me.com>
* Fix ordering of imports that is causing tests failure
---------
Signed-off-by: zomars <zomars@me.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
Co-authored-by: Omar López <zomars@me.com>
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
* fix: invalid Cancelled / Rescheduled downstream calendar block
* Adjust test so no calendar is connected
* Remove the googleCalendar from multiple tests
* init
* Fix event limit interlinked switches
* wip
* WIP
* fix bugs
* lock hashed link until further notice
* lock private url for managed type to stop confusion
* fix recurring
* prettier fix
* early review fixes ...
* --WIP to send only changed form fields in updateMutation
* WIP with some type fixes
* Revert "WIP with some type fixes"
This reverts commit 00f10b772d6d08af17e7c9bd2d3601d93035d9b3.
* post merge conflict resolution fixes
* further type fix
* fixed test
* fixing e2e tests
* fix test --WIP
* attempt fix test & type --WIP
* fix duplicate locale en entry
* fix locked state persistence
* adds private URL locked/unlocked functionality
* fix tests
* Fix issue where locked labels showed up in non-managed events
* adds e2e test step
* update new test
* minor fixes
* fix test
* address changes request Part 1
fixed width on the lock badge
members default location as default selection
bugfix for offset toggle duplicate within itself
* fixes locked/unlocked label for child event types
* enable choice of destination calendar for children
* Fixes width for simple lock badge
* fix type
* fixes workflows list and apps for managed event type
* restricts creation of managed event types to EE only
* further fixes --WIP
* fix unit test for handleChildrenEventTypes
* fix test --WIP
* fix type err --WIP
* fix type err in test
* fix childevent payload
* fixes hashedLink bug
* fix test step title
* lock workflow create button when workflow is locked
* fix workflow detail
* Don't rely on parameter ordering, use object instead
* Removed console.log
* Missed one
---------
Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
* Implement secondary email
* Fix already existing tests failing
* Added tests for secondary email feature
* Skip email verification if user is changing the primary email to a verified secondary email
* Fix type errors in tests
* Fix email becoming unverified when switched between primary and secondary email
* Added a check to prevent prisma error from throwing up due to duplicate records
* Improved error handling when adding a secondary email
* Add test for resend verification email flow for secondary emails and validation of invite link
* Add a new column to link secondary emails with verification tokens
* Fix failing to update email to an unverified secondary email of the same user
* Fix failing tests
* Change text of resend verification email
* Add ability to use the verified secondary emails to get the event details to
* Fix type errors
* Fix failing e2e tests
* Fix failing unit tests
* Fix failing type checks
* Fix secondary verification email subject
* Fix failing e2e tests
---------
Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
* init
* typefix maybe
* fix type
* fix e2e
* Extract delete dialog to its own function to optimise rerender
* wip
* Delete isEqual
* adds eslint tsignore comment
* only update changed fields
* fix type err
* --WIP
* fix type err isLoading—>isPending
* isLoading—>isPending
* post conflict resoution fix
* shouldDirty minimumBookingNotice
* adds shouldDirty to setValues
* reset form to ensure updated default values
* shouldDirty changes and fixed deep check of dirty
* --WIP
* should dirty recurring
* shouldDirty team tab
* multiple-fixes
* adding console log to test something in e2e
* shouldDirty apps tab
* fixes managed event type children association
* fixed managed events update
* dirty managed fix
* fixes some onChange versus setValue and periodCountCalendarDays
* Seeing different behaviour explicitly unwrapping formState
* only mutate if at least 1 field dirty
* fix type error
* bunch of fixes
* --WIP
* update only dirtyFields for Managed Events existing children
* Fixes update old managed event type tests --WIP
* Fix unit tests
A bunch of unit test fixes which started failing
due to update fields only requiring actual updated
fields. some other small fixes also included
* type fix
* remove unnecessary comment
* Adds dirtyField to instant event
* fix: add shouldDirty
* fixes availability and team tabs, and disable save button unless dirty
* fix for hosts and bookerLayout
* add shouldDirty when resetting hosts after changing schedulingType
* add missing shouldDirty to useEventTypeDestinationCalendarEmail
---------
Co-authored-by: Alex van Andel <me@alexvanandel.com>
Co-authored-by: Udit Takkar <udit222001@gmail.com>
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
* use same lucky user + check availability
* add tests for recurring round robin events
* only use luckyUsers for recurring bookings
* don't check availability for all recurring dates
* code clean up
* pass schedulingType
* fix type error
* add availability check for fixed hosts + test
* fix type error
* implement feedback
---------
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
* Add profile table
Copy to profile table
Update schema
Migrations
* wip
* Get switcher working
* Add organization seeder
* wip
* Remove dead code
* Fix unit tests
* relevantProfile -> profile
* cache bust
* One more comment
* Squash migrations
* Copy to profile table
* Update schema
* Fix existing user invite flow
* Add profile table
* Copy to profile table
* Update schema
* Format
* Add profile table
Copy to profile table
Update schema
Migrations
* Format
* wip
Get switcher working
Add organization seeder
wip
Remove dead code
Fix unit tests
relevantProfile -> profile
cache bust
One more comment
Squash migrations
Copy to profile table
Update schema
Fix existing user invite flow
Add profile table
Copy to profile table
Update schema
chore: small improvements to signup (#13227)
* removed features on mobile, better background color
* nit
* dark mode nits
New Crowdin translations by Github Action
fix: event reschedule workflow trigger (#13122)
* fix event reschedule workflow trigger
* uncomment previously failed test
* review fix
---------
Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
chore: added community support to help (#13213)
refactor: Abstract `handleSeats` from `handleNewBooking` (#12062)
* Refactor createBooking
* Type fix
* Abstract handleSeats
* Create Invitee type
* Create OrganizerUser type
* Abstract addVideoCallDataToEvt
* Abstract createLoggerWithEventDetails
* Abstract `handleAppStatus` from handler
* Create ReqAppsStatus type
* Move `deleteMeeting` and `getCalendar`
* Set parameters for `handleSeats`
* Typescript refactor
* Change function params from req
* Type fix
---------
Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com>
Co-authored-by: Erik <erik@erosemberg.com>
fix: Dynamic group booking org-migration redirect (#13223)
* fix: Dynamic group booking redirect
* Fix flaky private team test
test: Check availability tab and all your functions (teste2e-availability) (#12434)
* add changes
* add changes
* add changes
* add changes
* Requested changes
* Change way to grab element
---------
Co-authored-by: gitstart-calcom <gitstart-calcom@users.noreply.github.com>
Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com>
Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com>
Co-authored-by: Keith Williams <keithwillcode@gmail.com>
Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
fix: Reschedule a cancelled booking (#13170)
* fix: Reschedule a cancelled booking
* canceled instead of cancelled
---------
Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
Co-authored-by: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com>
v3.7.0
test: In Team Event type when location is Organizer Default App and U… (#12939)
* test: In Team Event type when location is Organizer Default App and User Metadata is emoty
* chore: use variable
* fix: type error
test: add test for invalid cal video (#13103)
* test: add test for invalid cal video
* chore: add confirm
* chore: fix type error
* chore: update code
* test: add unit test
* chore: type error
* chore
* chore: type
* chore: fix test
* chore
---------
Co-authored-by: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com>
chore: add error message for no availability (#13230)
* chore: add error message for no default user availability
* chore: check only availability
* chore: change message
* chore: add eventType
fix: Team revert with members (#13228)
refactor: Refactor seats logic (#12905)
* Refactor createBooking
* Type fix
* Abstract handleSeats
* Create Invitee type
* Create OrganizerUser type
* Abstract addVideoCallDataToEvt
* Abstract createLoggerWithEventDetails
* Abstract `handleAppStatus` from handler
* Create ReqAppsStatus type
* Move `deleteMeeting` and `getCalendar`
* Set parameters for `handleSeats`
* Typescript refactor
* Change function params from req
* Type fix
* Move handleSeats
* Abstract lastAttendeeDeleteBooking
* Create function for rescheduling seated events
* Fix imports on reschedule seats function
* Fix imports
* Import handleSeats function
* Fix rescheduleUid type
* Refactor owner reschedule to new time slot
* Refactor combine two booking times together
* Reschedule as an attendee
* Refactor createNewSeat
* Remove old handleSeats
* Remove lastAttendeeDeleteBooking from handleNewBooking
* Test for new attendee right params are passed
* Unit test params for reschedule
* Typo fix
* Clean up
* Create new seat test
* Test when attendee already signs up for booking
* Type fix
* Test reschedule move attendee to existing booking
* On reschedule create new booking
* Test on last attendee cancel booking
* Owner reschedule to new time slot
* Owner rescheduling, merge two bookings together
* Test: when merging more than available seats, then fail
* Test: fail when event is full
* Remove duplicate E2E tests
* Clean up
* Rename `addVideoCallDataToEvt` to `addVideoCallDataToEvent`
* Refactor `calcAppsStatus`
* Assign `evt` to resutl of `addVideoCallDataToEvent`
* Use prisma.transaction when moving attendees
* Clean create seat call
* Use ErrorCode enum
* Use attendeeRescheduledSeatedBooking function
* Await function
* Prevent double triggering of workflows
* Use inviteeToAdd in createNewSeat
* Remove unused error code
* Remove old handleSeats file
* Type fix
* Type fix
* Type fix
* Type fix
* Type fix
* Type fix
* Type fix
* Type fix
---------
Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Erik <erik@erosemberg.com>
feat: Allow admins to filter bookings only by attendee emails (#13236)
* chore: Allow admins to filter bookings only by attendee emails
* Fix type error
Fixed [CAL-2930] Org branding isnt centered in shell #13225 (#13237)
Add profile table
Copy to profile table
Update schema
Migrations
Format
* wip
* Add profile relation everywhere
* Fix schema
* Fix invite handler
* Add profileId during eventTypec reation
* Get dashboard working with profile relatioon
* Add workflow create repository
* Add profileId to host
* Add profileId to credential table
* Add destinationCalendar repository
* Add profileId to membership
* Revert all profile related changes
* Add acme and dunder
* Fix membership profileId usgae
* Various fixes
* Some renaming
* Fix failing tests
* Debugging next-aut
* Consolidate migrations
* Testing fixes
* Fix unit tests
* Self review feedback
* PR feedback
* Fix orgMigration as well
* Add profile schema and copy users to it
* Remove migrations from here
* Fix type issues
* Fix type error after main merge
* Remove movedFromUserId
* Add missing migration file
* Self review addressed
* Joe's review addressed
* Fix profile switcher
---------
Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
* perf: pre-load booking data for all users
* Fixing property issues
* Fixes
* Removed unwanted console.log
* Made comment for intention of refactor more clear
* fix: types
* _count is optional
* Assign to const bookings
* Added mock for prisma booking
* Fixed unit tests
* Added lint ignore for prisma field
* Update bookingScenario.ts
* Fix linting
---------
Co-authored-by: Alex van Andel <me@alexvanandel.com>
* fix timezone zone issue for first slot
* fix failed test in getSchedule
* Update apps/web/test/lib/getSchedule.test.ts
---------
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: alannnc <alannnc@gmail.com>
* removed old booker and make new booker as a default
* fixes merge conflict
* fixed tests
* fixed tests for old-booker
* fixed typo in @calcom/lib/defaultEvents.ts
---------
Co-authored-by: René Müller <rene.mueller@clicksports.de>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
## What does this PR do?
Currently, we start the first slot always at the nearest 15 minutes. This is not ideal as for some duration other slot starting time make more sense. So with this PR the starting times are defined as follow:
- Frequency is exact hours (60, 120, 180, ...), slot start time is a full hour
- Frequency is half hours (30, 90, ...), slot start time is half or full hours (8:00, 8:30, ...)
- Same with 20-minute events (20, 40, ...) and 10-minute events
- Everything else will start at the nearest 15 min slot
It also fixes that slot times are shifted when there is a busy slot with a different duration. Here is a before and after of a 30-min event with a 5-minute busy slot at 1:00 pm
Before:

After

#### 30 Minute events, availability starting at 7:15
Before:

After:

## Type of change
- Bug fix (non-breaking change which fixes an issue)
## How should this be tested?
- Check if slot times are shown as described
- Test with different intervals/durations
- Test with busy times
- Test with different availabilities
## Mandatory Tasks
- [x] Make sure you have self-reviewed the code. A decent size PR without self-review might be rejected.
## What does this PR do?
Fix 404 booking pages when org support is enabled locally
## Type of change
<!-- Please delete bullets that are not relevant. -->
- 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 -->
- Add localhost:3000 to ALLOWED_HOSTNAMES which is the default recommendation for enabling org support locally.
<img width="1035" alt="Screenshot 2023-07-10 at 11 04 35 AM" src="https://github.com/calcom/cal.com/assets/1780212/7272437b-afae-4073-905b-eafc39f9fafc">
- Simply restart the server and visit http://localhost:3000/pro. It will give 404. After this change it would work
## Mandatory Tasks
- [x] Make sure you have self-reviewed the code. A decent size PR without self-review might be rejected.
* Fix Team Events not working
* Get embed for org events working
* Fix rewrites
* Update next-config.test.ts
Spacing changes
* Update next-config.test.ts
Scan the file through prettier and update
---------
Co-authored-by: alannnc <alannnc@gmail.com>
* Initial commit
* Adding feature flag
* Add schema relation for teams and credentials
* feat: Orgs Schema Changing `scopedMembers` to `orgUsers` (#9209)
* Change scopedMembers to orgMembers
* Change to orgUsers
* Create getUserAdminTeams function & tRPC endpoint
* Get user admin teams on app store page
* Create UserAdminTeams type
* Add user query to getUserAdminTeams
* Letting duplicate slugs for teams to support orgs
* Covering null on unique clauses
* Add dropdown to install button on app store
* Supporting having the orgId in the session cookie
* On app page, only show dropdown if there are teams
* Add teamId to OAuth state
* Create team credential for OAuth flow
* Create team credential for GCal
* Add create user or team credential for Stripe
* Create webex credentials for users or teams
* Fix type error on useAddAppMutation
* Hubspot create credential on user or team
* Zoho create create credential for user or team
* Zoom create credentials on user or team
* Salesforce create credential on user or teams
* OAuth create credentials for user or teams
* Revert Outlook changes
* Revert GCal changes
* Default app instal, create credential on user or team
* Add teamId to credential creation
* Disable installing for teams for calendars
* Include teams when querying installed apps
* Render team credentials on installed page
* Uninstall team apps
* Type fix on app card
* Add input to include user in teams query
* Add dropdown to install app page for user or team
* Type fixes on category page
* Install app from eventType page to user or team
* Render user and team apps on event type app page
* feat: organization event type filter (#9253)
Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
* Missing changes to support orgs schema changes
* Render user and team apps on event type app page
* Add credentialOwner to eventTypeAppCard types
* Type fixes
* Create hook to check if app is enabled
* Clean up console.logs
* Fix useIsAppEnabled by returning not an array
* Convert event type apps to useIsAppEnabled
* Abstract credential owner type
* Remove console.logs
* On installed app page, show apps if only team credential is installed
* Clean up commented lines
* Handle installing app to just an team event from event type page
* Fix early return when creating team app credential
* Zoom add state to callback
* Get team location credentials and save credential id to location
* feat: Onboarding process to create an organization (#9184)
* Desktop first banner, mobile pending
* Removing dead code and img
* WIP
* Adds Email verification template+translations for organizations (#9202)
* First step done
* Merge branch 'feat/organizations-onboarding' of github.com:calcom/cal.com into feat/organizations-onboarding
* Step 2 done, avatar not working
* Covering null on unique clauses
* Onboarding admins step
* Last step to create teams
* Moving change password handler, improving verifying code flow
* Clearing error before submitting
* Reverting email testing api changes
* Reverting having the banner for now
* Consistent exported components
* Remove unneeded files from banner
* Removing uneeded code
* Fixing avatar selector
* Using meta component for head/descr
* Missing i18n strings
* Feedback
* Making an org avatar (temp)
* Check for subteams slug clashes with usernames
* Fixing create teams onsuccess
* feedback
* Making sure we check requestedSlug now
---------
Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>
* Type fix
* Grab team location credentials
* Add isInstalled to eventType apps query
* feat: [CAL-1816] Organization subdomain support (#9345)
* Desktop first banner, mobile pending
* Removing dead code and img
* WIP
* Adds Email verification template+translations for organizations (#9202)
* First step done
* Merge branch 'feat/organizations-onboarding' of github.com:calcom/cal.com into feat/organizations-onboarding
* Step 2 done, avatar not working
* Covering null on unique clauses
* Onboarding admins step
* Last step to create teams
* Moving change password handler, improving verifying code flow
* Clearing error before submitting
* Reverting email testing api changes
* Reverting having the banner for now
* Consistent exported components
* Remove unneeded files from banner
* Removing uneeded code
* Fixing avatar selector
* Using meta component for head/descr
* Missing i18n strings
* Feedback
* Making an org avatar (temp)
* Check for subteams slug clashes with usernames
* Fixing create teams onsuccess
* Covering users and subteams, excluding non-org users
* Unpublished teams shows correctly
* Create subdomain in Vercel
* feedback
* Renaming Vercel env vars
* Vercel domain check before creation
* Supporting cal-staging.com
* Change to have vercel detect it
* vercel domain check data message error
* Remove check domain
* Making sure we check requestedSlug now
* Feedback and unneeded code
* Reverting unneeded changes
* Unneeded changes
---------
Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>
* Vercel subdomain creation in PROD only
* Enable payment apps for team credentials
* Fix for team-user apps for event types
* Fix layout and add teamId to app card
* Disable apps on managed event types
* Add managed event type fields to event type apps
* Include organizations in query
* Change createAppCredential to createOAuthAppCredential
* Show app installed on teams
* Making sure we let localhost still work
* UI show installed for which team
* Type fixes
* For team events move use host location to top
* Add around to appStore
* New team event types organizer default conf app
* Fix app card bug
* Clean up
* Search for teamId or userId when deleting credential
* Type fixes
* Type fixes
* Type fixes
* Type fixes
* Address feedback
* Feedback
* Type check fixes
* feat: Organization branding in side menu (#9279)
* Desktop first banner, mobile pending
* Removing dead code and img
* WIP
* Adds Email verification template+translations for organizations (#9202)
* First step done
* Merge branch 'feat/organizations-onboarding' of github.com:calcom/cal.com into feat/organizations-onboarding
* Step 2 done, avatar not working
* Covering null on unique clauses
* Onboarding admins step
* Last step to create teams
* Moving change password handler, improving verifying code flow
* Clearing error before submitting
* Reverting email testing api changes
* Reverting having the banner for now
* Consistent exported components
* Remove unneeded files from banner
* Removing uneeded code
* Fixing avatar selector
* Org branding provider used in shell sidebar
* Using meta component for head/descr
* Missing i18n strings
* Feedback
* Making an org avatar (temp)
* Using org avatar (temp)
* Not showing org logo if not set
* User onboarding with org branding (slug)
* Check for subteams slug clashes with usernames
* Fixing create teams onsuccess
* feedback
* Feedback
* Org public profile
* Public profiles for team event types
* Added setup profile alert
* Using org avatar on subteams avatar
* Making sure we show the set up profile on org only
* Profile username availability rely on org hook
* Update apps/web/pages/team/[slug].tsx
Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>
* Update apps/web/pages/team/[slug].tsx
Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>
---------
Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>
* feat: Organization support for event types page (#9449)
* Desktop first banner, mobile pending
* Removing dead code and img
* WIP
* Adds Email verification template+translations for organizations (#9202)
* First step done
* Merge branch 'feat/organizations-onboarding' of github.com:calcom/cal.com into feat/organizations-onboarding
* Step 2 done, avatar not working
* Covering null on unique clauses
* Onboarding admins step
* Last step to create teams
* Moving change password handler, improving verifying code flow
* Clearing error before submitting
* Reverting email testing api changes
* Reverting having the banner for now
* Consistent exported components
* Remove unneeded files from banner
* Removing uneeded code
* Fixing avatar selector
* Org branding provider used in shell sidebar
* Using meta component for head/descr
* Missing i18n strings
* Feedback
* Making an org avatar (temp)
* Using org avatar (temp)
* Not showing org logo if not set
* User onboarding with org branding (slug)
* Check for subteams slug clashes with usernames
* Fixing create teams onsuccess
* feedback
* Feedback
* Org public profile
* Public profiles for team event types
* Added setup profile alert
* Using org avatar on subteams avatar
* Processing orgs and children as profile options
* Reverting change not belonging to this PR
* Making sure we show the set up profile on org only
* Removing console.log
* Comparing memberships to choose the highest one
---------
Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>
* Type errors
* Refactor and type fixes
* Update orgDomains.ts
* Feedback
* Reverting
* NIT
* Address feedback
* fix issue getting org slug from domain
* Improving orgDomains util
* Host comes with port
* Update useRouterQuery.ts
* Fix app card bug
* Fix schema
* Type fixes
* Revert changes to location apps
* Remove console.log
* Fix app store test
* Handle install app dropdown
* Add CalendarApp to `getCalendar`
* Add PaymentApp type fix
* Payment type fix
* Type fixes
* Match with main
* Change type to account for team
* Fix app count for team events
* Type fixes
* More type fixes
* Type fix?
* Fix the type fix
* Remove UserAdminTeams empty array union
* Type fix
* Type fix
* Type fix
* Uses type predicates
* Use teamId. Fixes installation for teams after user installation
* Fix Team Events not working
* Get embed for org events working
* Fix rewrites
* Address feedback
* Type fix
* Fixes
* Add useAppContextWithSchema in useIsAppEnabled
* Type fix for apps using useIsAppEnabled
* Integrations.handler change credentialIds to userCredentialIds
* Remove apps endpoint
* Add LockedIcon and disabled props to event type app context
* Type fixes
* Type fix
* Type fixes
* Show team installed apps for members
* Type fix
* Reverting findFirst
* Revert findFirst
* Avoid a possible 500
* Fix missing tanslation
* Avoid possible 500
* Undo default app for teams
* Type fix
* Fix test
* Update package.json
* feat: Fix invite bug - added tests (#9945)
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
* chore: Button Component Tidy up (#9888)
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
* feat: Make Team Private
## What does this PR do?
Fixes https://github.com/calcom/cal.com/issues/8974
1) When user is admin
<img width="1440" alt="Screenshot 2023-07-03 at 6 45 50 PM" src="https://github.com/calcom/cal.com/assets/53316345/ce15158f-d278-4f1a-ba2e-8b63e4274793">
2) When user is not admin and team is private
<img width="1440" alt="Screenshot 2023-07-03 at 6 47 15 PM" src="https://github.com/calcom/cal.com/assets/53316345/ce23560e-690a-4c42-a76d-49691260aa4d">
3)
<img width="1440" alt="Screenshot 2023-07-03 at 6 51 56 PM" src="https://github.com/calcom/cal.com/assets/53316345/13af38f8-5618-4dae-b359-b24dc91e4eb4">
## Type of change
<!-- Please delete bullets that are not relevant. -->
- New feature (non-breaking change which adds functionality)
## How should this be tested?
1) go to Team members page and turn on switch Make Team Private.
Now after making the team private only admin would be able to see all the members list in the settings. There will not be a button to Book a team member instead on the team page like before.
## Mandatory Tasks
- [ ] Make sure you have self-reviewed the code. A decent size PR without self-review might be rejected.
---------
Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
Co-authored-by: Leo Giovanetti <hello@leog.me>
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>
Co-authored-by: Alan <alannnc@gmail.com>
Co-authored-by: zomars <zomars@me.com>
Co-authored-by: Efraín Rochín <roae.85@gmail.com>
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Keith Williams <keithwillcode@gmail.com>
* Fix RegExp
* Used ORGANIZATIONS_ENABLED to opt-out of orgs behaviour
* Add comments
* Add a new testcase
* Add response headers for easier debugging and Checkly tests in production
* Added unit tests for availability to string
* Testing to see if extra toString() removes unicode
* Replacing unicode space
* Updated to regex
* Reverted files that were not supposed to change
* Reverted schema changes
* Added comment
* Type check
* Change function call structure
---------
Co-authored-by: alannnc <alannnc@gmail.com>
* Add RegExp tests
* Update apps/web/test/lib/next-config.test.ts
* Dont avoid rewrite for /booked event slug
* Add /embed/embed.js test
* Add dynamic group booking link test
* [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>