* feat: installing the app works
* Update yarn.lock
* feat: /api/callback now gets user auth info from basecamp
* feat: updated basecamp logo
* feat: added project dropdown on event apps page
* feat: basecamp event creation and deletion working
* feat: basecamp event rescheduling now works
* refactor(CalendarService): basecamp CaldendarService code clean up
* refactor: code cleanup for basecamp app API
* feat: updated event summary text sent to basecamp
* chore: updated basecamp images and contact info
* fix: fixed typescript errors and added logic to refresh tokens on event settings
* refactor(CaldendarService): used refreshAccessToken from helpers.ts instead
* chore: updated basecamp description
* fix: fixed incorrect import
* fix: accidentally deleted props to toggle app for event
* chore: updated .env.appStore.example and added README for app
* Update .env.appStore.example
Co-authored-by: Leo Giovanetti <hello@leog.me>
* feat: added basecamp userAgent in env instead of hardcoded value
* feat: updated README to include how to set basecamp user agent env
* fix: removed unused import
* feat: used URLSearchParams to construct url params
* fix: fixed typescript errors
* chore: updated README to include an example on how to set basecamp user-agent
* feat: using TRPC instead of REST
* chore: removed old projects REST code
---------
Co-authored-by: Leo Giovanetti <hello@leog.me>
* Init + get timezone + offset data agh
* Add 12/24h mode - style correctly
* User users timezone + working hours. Still some stuff to figure out
* Multiple working hours
* move calc to once per day
* Demo with two users and differnt timezones
* availabillity control tab via search params
* WIP hover overlay
* THIS WORKS ISH
* fix: multiple duration getSchedule calls [CAL-2336] (#10709)
Co-authored-by: Omar López <zomars@me.com>
* New Crowdin translations by Github Action
* fix: If the input type "Name" is selected, the label can't be changed from our default label "Your Name" (#10618)
Co-authored-by: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com>
* New Crowdin translations by Github Action
* test: Create unit tests for react components in packages/ui/components/form/step (#10442)
Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com>
Co-authored-by: Keith Williams <keithwillcode@gmail.com>
* feat: element call app added (#10585)
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
* New Crowdin translations by Github Action
* New Crowdin translations by Github Action
* fix: e2e test for rescheduling overlapping time (#10721)
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
* feat: mailhog fixture (#10606)
* feat: mailhog fixture
* fix: nodemailer to dispatch emails with e2e env
* fix: remove space from email subject
* feat: fixture getFirstEventAsOwner
* feat: assert email subjects
* fix: and enable dynamic booking test (#10642)
* fix and enable dynamic booking test
* remove page pause
---------
Co-authored-by: Alex van Andel <me@alexvanandel.com>
* fix: Broken team events if a user with the same name exists (#10724)
* fix: Broken team events if a user with the same name exists
* Fix tests + fix usernameList optionality
* Try to list calendars, if not continue (#10720)
Co-authored-by: Omar López <zomars@me.com>
* v3.1.9
* link to org settings (#10718)
* feat: app paypal payment (#8797)
Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>
Co-authored-by: Omar López <zomars@me.com>
* fix: RTL issues on booking pages + email confirmation (#10526)
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
* fix: merge conflict
* Fixing org slug (#10538)
* fix: paypal build fixes
* Fix avatar for org in Shell top (#10712)
* feat: add range of dates for availability over-ride (#10462)
* feat: add range of dates for availability over-ride
* chore: changed range select to multiple select
---------
Co-authored-by: Alex van Andel <me@alexvanandel.com>
* fix: border issue for time slots (#10577)
Co-authored-by: Raghul D <v-raghuld@microsoft.com>
* style: Fix text wrapping issue in button (#10725)
Co-authored-by: Omar López <zomars@me.com>
* New Crowdin translations by Github Action
* fix: App Install Dropdown Sort Properly [CAL-2285] (#10672)
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
* fix: link escaping in booking page (#10360)
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
* chore: fix refund i18n message (#10731)
* chore: remove tailwind-scrollbar warning (#10523)
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
* New Crowdin translations by Github Action
* chore: Simplified date overrides (#10728)
* chore: Simplified date overrides
* Fixed a test that had a date override that wasn't at midnight utc
* Wrote test that showed a fixed Europe/Brussels
* Lint fix
* New Crowdin translations by Github Action
* Fix offset time + fetching correct dates
* Deal with awkward minute offsets
* remove store overhead
* Format H based on tz
* Cleanup store logic
* Cleanup
* Remove comments
* Remove comments
* Remove yarn.lock
* Dark mode & v-align text fixes
* Move ButtonGroup to the left to prevent chevron from jumping
* Shift based on timezone (non-hour) and have 15min granularity in hour display background color
---------
Co-authored-by: Leo Giovanetti <hello@leog.me>
Co-authored-by: Omar López <zomars@me.com>
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
Co-authored-by: Zain Gulbaz <zaingulbaz8@gmail.com>
Co-authored-by: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com>
Co-authored-by: GitStart-Cal.com <121884634+gitstart-calcom@users.noreply.github.com>
Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com>
Co-authored-by: Keith Williams <keithwillcode@gmail.com>
Co-authored-by: Suyash Srivastava <suyashsrivastava5053@gmail.com>
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: Shivam Kalra <shivamkalra98@gmail.com>
Co-authored-by: alannnc <alannnc@gmail.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Anik Dhabal Babu <81948346+anikdhabal@users.noreply.github.com>
Co-authored-by: Pradumn Kumar <pradumn@tealfeed.com>
Co-authored-by: Raghul <123321540+Raghul18@users.noreply.github.com>
Co-authored-by: Raghul D <v-raghuld@microsoft.com>
Co-authored-by: ABDERRAHMANI IDRISSI HAMZA <97639117+idrissi-hamza@users.noreply.github.com>
Co-authored-by: Nafees Nazik <84864519+G3root@users.noreply.github.com>
Co-authored-by: Danila <daniil.demidovich@gmail.com>
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
* feat: add range of dates for availability over-ride
* chore: changed range select to multiple select
---------
Co-authored-by: Alex van Andel <me@alexvanandel.com>
* 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>
* 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>
* added validation for empty reset password field
* removed useState and useEffect
---------
Co-authored-by: varun thummar <Varun>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
* fix: changes for showing error message in case of INTERNAL_SERVER_ERROR
* changes for edge case
---------
Co-authored-by: Leo Giovanetti <hello@leog.me>
* 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
* Adds premium username check
* Refactor
* fix usernames
* Return a response so the request does not stall
* Fix conditional
---------
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>
* 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>
* 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
## 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>
## 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.