* Replace ctx.user.credentials to fetch in their own usecases
* Remove rawavatar from return
* Remove avatar rawAvatar from handler
* Fix fallback avatars
* fix: profile.slug already includes /team
* perf: Deprecate useAvatarQuery hook
* Extract to reusable credential func
* Fix type errors for credentials
* credentialOwner was inferred incorrectly, string non-nullable
---------
Co-authored-by: Keith Williams <keithwillcode@gmail.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
Co-authored-by: Leo Giovanetti <hello@leog.me>
Co-authored-by: Syed Ali Shahbaz <52925846+alishaz-polymath@users.noreply.github.com>
Co-authored-by: Keith Williams <keithwillcode@gmail.com>
Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
* No batching on getting session
* Fix usePublicPage hook to use new router search params
* Move things so getSchedule data can be load as soon as we are rendering BookerComponent
* pre fetch session
* Removed custom code in favour of useTimePreferences
---------
Co-authored-by: Alex van Andel <me@alexvanandel.com>
* fix: add spinner to general settings section
* feat: add and manage spinner in the emptyScreen component
* feat: add spinner to two-factor auth modal buttons
* feat: add spinner to password and impersonation setting buttons
* feat: add spinner to webhookform(edit and create)
* chore: clean up code
---------
Co-authored-by: lemmyMwaura <lemmymwauracodes@gmail.com>
* WIP
* New files for other teams
* Update code domain model location
* Fixes for finding teams in orgs
* VerticalTabs remove other teams appearance and only display if org admin
* Added conditional to consider orgs admin when updating team profile
* team-member-list wip
* Update memberInviteModal with disableCopyLink prop
* cleaning up
* Undo changes to files
* remove logs
* clean up
* undo changes
* undo change
* Undo changes
* Reset files to main
* typo on import
* Update packages/features/ee/organizations/pages/components/OtherTeamListItem.tsx
Co-authored-by: Omar López <zomars@me.com>
* useSearchParams hook instead of useRouter
* remove unused code and clean up
* Fix type
---------
Co-authored-by: Omar López <zomars@me.com>
* disable sms and whatsapp to attendee
* fix type error
* fix prisma enum imports
---------
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
* fix: responsive upload avatar
Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
* Update ImageUploader.tsx
Move title to the DialogContent title prop instead of the content.
---------
Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
* redirect user to /[user]/[type] for dynamic booking in /[user]
* feat: dynamic group links
* fix: type errors
* fix: more type errors
* Booker components cannot rely on useRouter
* Rename 15min/30/60 to dynamic
* Fixed a blocking test, unclear what it was waiting for
---------
Co-authored-by: Alex van Andel <me@alexvanandel.com>
* fix: app-store-cli windows support issue #10324
* fix: app-store-cli windows support issue #10324 - remove yarn.lock
* fix: app-store-cli windows support issue #10324
* refactor: instead of repeating code, use constant to know if it is windows platform
* create test files
* add first e2e test
* finish first e2e test
* code clean up
* fix event type create button data-testid
* enable sandbox mode for non production environments
* comment out code for testing
* Revert "comment out code for testing"
This reverts commit 5553dacce2.
* clean up comments
* prettier
* use NEXT_PUBLIC_IS_E2E
* use todo fn
---------
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: Alan <alannnc@gmail.com>
Co-authored-by: Keith Williams <keithwillcode@gmail.com>
Co-authored-by: Shivam Kalra <shivamkalra98@gmail.com>
* Release latest embeds
* Release latest embeds
* Ensure that unpublished packages arent imported
* linter is important to catch unexpected imports
* Create new release
* Add a new patch
* Add split full name variant
* Share propsType across fieldTypes and components
* Simplify Components
* Add assertions for required field indicator
* Fix test as name cant be used as a custom field right now
* Make it disabled during reschedule
* Fix UI issues in dark mode
* Support adding links in boolean checkbox
* Revert "Support adding links in boolean checkbox"
This reverts commit 31252f8a5f.
* Make sure getBookingFields isnt import client side
* PR feedback addressed from Carina
* DRY Code
* Fix Dialog
---------
Co-authored-by: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com>
## What does this PR do?
Fixes#10032
Before:
https://www.loom.com/share/1890e4eebf41426aaf66d8b4909d0765
After:
https://www.loom.com/share/8b00c41587f2467ab05ef48e4ed523ef
## Type of change
<!-- Please delete bullets that are not relevant. -->
- Bug fix (non-breaking change which fixes an issue)
## How should this be tested?
- See loom
## Mandatory Tasks
- [x] Make sure you have self-reviewed the code. A decent size PR without self-review might be rejected.
## Checklist
- I haven't added tests that prove my fix is effective or that my feature works
## What does this PR do?
Fixes#10187
See [Tests Done](https://www.loom.com/share/f03e0191b60143d8b45a505042dbfa11)
## Type of change
- [x] Bug fix (non-breaking change which fixes an issue)
## How should this be tested?
- [x] Configure embed to use `dark` theme and verify that dark theme is shown on event booking page(when user has light theme set). This is failing in main
- Additional Tests for embed to avoid any new regression
- [x] - Configure "auto" theme using embed API and see it reacts to system theme
- [x] - Don't configure any theme and see that "light" theme is shown even when we switch system theme(Because User has configured light theme in App)
- Tests outside embed to avoid any new regression
- [x] - See that light theme is shown even after switching system theme
- [x] - Now, switch the user theme to dark and see that it reflects the change.
## Mandatory Tasks
[x] Make sure you have self-reviewed the code. A decent size PR without self-review might be rejected.
* 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>
* Improve continue button on team add and validations
* Fix server validations for orgs create team
* Remove unused prop form input
* add comment for context
* Fix duplicatedSlugs not working properly
* Fix continue button disabled state, added more examples for team names
* Fix initial state for inputValues on addTeamForm
* Don't allow whitespaces only inputs on create teams
* Use rhf instead of react useState
---------
Co-authored-by: Leo Giovanetti <hello@leog.me>
* Added rule to validate username vs team slugs in team considering orgs too
* Validate valid username vs team slugs
* Add or clause to find org team and child teams
* add isLoading type to ButtonProps type
* add loading feedback
* Update apps/web/components/getting-started/components/AppConnectionItem.tsx
Not neeeded as buttonProps.isLoading is false by default :)
---------
Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>
* auto submit 2FA if all inputs have a value
* organize imports
* Fix duplicate text issue, this label is part of TwoFactor
* Fixed test that was failing due to enable-2fa not clickable anymore due to auto-submit
* Remove extra newline for clarity
---------
Co-authored-by: Alex van Andel <me@alexvanandel.com>
## What does this PR do?
This is not the cleanest approach, but the existing mechanism didn't work in a few situations because of the date sort. The update caused a re-render that caused an invalid unsortedFieldArrayMap.
Reproduction/how to test:
**Updating bug was hit when you changed the date and it went before another date (re-ordering)**; which then modified the wrong date override. This PR replaces the entire array which retains the correct sort order by brute force.
**Delete bug was encountered if the sorted order was not the same as the filtered order, which depends on the order you created the date overrides in**. This PR implements an original order before the sort causing the right item to be removed.
Fixes#8043
## What does this PR do?
Fixes all date shifts that are due browser time, by ensuring everything is UTC so it's not transformed to different times.
The times weren't actually shifting, dates were, but after casting these to UTC properly the times were also shifting; so that was a bug after a bugfix, time wise it was only a problem to determine all day events (which didn't completely work)
### Yes, but how do I test this?
Before:
Create a all day date override in +05:30
Shift your local system time to -04:00
Note that the day is different
After - do the same:
The day is the same!
Fixes#8365Fixes#6978Fixes#6482
* fix incomplete vercel api error message on org creation
* remove specified type from vercelCreateDomain
* have common error message for org domain registration
---------
Co-authored-by: Leo Giovanetti <hello@leog.me>
* Allow editing guests when rescheduling or editing
* lint fix
* modify reschedule logic that assigned originalRescheduledBooking.attendees to the "rescheduled" booking to ensure that guests added or removed are used for the "rescheduled" booking
---------
Co-authored-by: alannnc <alannnc@gmail.com>
Co-authored-by: Shivam Kalra <shivamkalra98@gmail.com>
## 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. -->
- Passes the proper seats data in the new booker component between states and to the backend
Fixes#9779Fixes#9749Fixes#7967Fixes#9942
<!-- Please provide a loom video for visual changes to speed up reviews
Loom Video: https://www.loom.com/
-->
## 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 -->
**As the organizer**
- Create a seated event type
- Book at least 2 seats
- Reschedule the booking
- All attendees should be moved to the new booking
- Cancel the booking
- The event should be cancelled for all attendees
**As an attendee**
- [x] Book a seated event
- [x] Reschedule that booking to an empty slot
- [x] The attendee should be moved to that new slot
- [x] Reschedule onto a booking with occupied seats
- [x] The attendees should be merged
- [x] On that slot reschedule all attendees to a new slot
- [x] The former booking should be deleted
- [x] As the attendee cancel the booking
- [x] Only that attendee should be removed
## Mandatory Tasks
- [x] Make sure you have self-reviewed the code. A decent size PR without self-review might be rejected.
## Checklist
<!-- Please remove all the irrelevant bullets to your PR -->
* 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:
![Screenshot 2023-07-07 at 13 31 45](https://github.com/calcom/cal.com/assets/30310907/b92d4ff4-49f1-48f4-a973-99266f61d919)
After
![Screenshot 2023-07-07 at 13 34 01](https://github.com/calcom/cal.com/assets/30310907/042c7ef7-8c2a-4cd9-b663-183bc07b5864)
#### 30 Minute events, availability starting at 7:15
Before:
![Screenshot 2023-07-06 at 12 40 00](https://github.com/calcom/cal.com/assets/30310907/752ed978-83cf-4ee9-a38d-b5795df6daec)
After:
![Screenshot 2023-07-06 at 12 40 42](https://github.com/calcom/cal.com/assets/30310907/5d51ec15-5be8-4f3b-b374-46dad35216b8)
## 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.
* Initial commit
* Adding feature flag
* Desktop first banner, mobile pending
* Removing dead code and img
* AppInstallButtonBase
* WIP
* Adds Email verification template+translations for organizations (#9202)
* feat: Orgs Schema Changing `scopedMembers` to `orgUsers` (#9209)
* Change scopedMembers to orgMembers
* Change to orgUsers
* First step done
* Merge branch 'feat/organizations-onboarding' of github.com:calcom/cal.com into feat/organizations-onboarding
* Session logic to show org label
* Step 2 done, avatar not working
* List orgs and list teams specific if orgs exist
* Conditionally show org - fix settings layout - add labels for all pages
* Profile Page + update
* Org specific team creation
* appearance page
* Ensure members cant of org cant update settings in UI
* Fix update handler imports
* hide billing on sub teams
* Update profile slug page
* Letting duplicate slugs for teams to support orgs
* Add slug coliisions for org
* Covering null on unique clauses
* Covering null on unique clauses
* Extract to utils
* Update settings to use subdomain path in team url , team + org
* Supporting having the orgId in the session cookie
* Onboarding admins step
* Last step to create teams
* Update handler comments
* Upgrade ORG banner - disabled team banner for child teams
* Handle publishing ORGS
* Fix licenese issue
* Update packages/trpc/server/routers/viewer/teams/create.handler.ts
* Split into function calls to make this file more explisit
* Update parents stripe sub not teamID
* 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
* Create org membership also - billing portal page
* A11ly
* Hide create team if no valid permisisons
* Get Org members router
* Handle updating subscription if orgId
* Fix double upgrade banner
* Update constants
* Feedback
* Copy change
* Making an org avatar (temp)
* Add slug colission detection for user and team name
* Fix Import
* Remove update password func
* Fix module import over relative
* feat: organization event type filter (#9253)
Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
* Missing changes to support orgs schema changes
* Fix import again
* Throw no team found before auth error
* Check if invited found user is already in differnt org
* feat: organization settings general page
Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
* feat: add members page
Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
* chore: remove
Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
* fix: use invalidate
Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
* Move to for of loop to throw errors in usenamelist
* fix: delete mutation
Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
* fix: remove organization id
Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
* chore
Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
* Remove app install button sa its in 9337
* Remove i18n key not being used
* 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>
* 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
* Fix router
* fix: use zod schema
Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
* feat: organization settings general and members page (#9266)
* feat: organization settings general page
Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
* feat: add members page
Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
* chore: remove
Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
* fix: use invalidate
Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
* fix: delete mutation
Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
* fix: remove organization id
Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
* chore
Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
* fix: use zod schema
Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
---------
Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
* Type fixes
* Use org Stripe product when upgrading
* Removed unused code
* UI completed
* Reverting changes
* Update UsernameTextfield.tsx
* More reverts
* Update next-auth-options.ts
* Update common.json
* Type fixes
* Include invite token for orgs
* Update org schema
* Make token settings optional as it isnt used in orgs yet
* Reverts
* Add correct array logic and move to controlled component
* Fix toggle group default | Update toggle group bg
* Darkmode toggle group
* Distinct user
* Hide modal if no org members
* Extract toggle logic
* Update packages/features/ee/organizations/components/TeamInviteFromOrg.tsx
* remove yarn.lock from commit
* Fix types
* Add getMember router back
* As a query lol
* Fix types
* Fix accepted param defaulting to true as we want both
* Fix list not pulling back people who have not joined the org yet
* Fix tests to handle invite a existing org user to a team
* Fix test
* Fix an error sometimes when existing org user is invited
* Updates radix & fixes bug
---------
Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
Co-authored-by: Leo Giovanetti <hello@leog.me>
Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
Co-authored-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
Co-authored-by: zomars <zomars@me.com>
Co-authored-by: Joe Au-Yeung <j.auyeung419@gmail.com>
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
Co-authored-by: Shivam Kalra <shivamkalra98@gmail.com>
## What does this PR do?
Loom: https://www.loom.com/share/361ca6ca9b5748079cba59ed2f348d90
Not all items on edit from update the user. This is very temp page to help Milos
How to test:
Login as admin user
settings > admin > users
search - see filtered users
scroll to bottom of list - notice we refetch before you hit the bottom so you dont notice items loading
delete user -> user is deleted and removed from list (radix bug in main causes dialog to freeze refresh to make this go away)
edit user -> Edit users email/username/identityprovider. Not all items on this update work just yet. These will be picked up when we come to implement the proper user table.