* build basic database structure and basic design
* create simple workflow list
* add editing dots to list
* add mutation to create workflows
* add createMutation on submit + redirect to editing page
* redirect to edit page when clicking on row
* add functionality to delete workflow
* add timeUnit + input validation
* add empty screen view
* add time before it triggers to description
* add multi select with checkboxes
* remove getServerSideProps
* set default time period to 24
* fetch eventypes and display in dropdown
* add functionality to update workflows + many-to-many relationship
* fix all checked event types
* add SMS reminders
* fix bug with trigger + relocate sms template
* clean code
* add model for unscheduled reminders
* fix selected eventTypes
* fixing value to show how many event types selected
* fix plural of event types in select
* add onDelete cascade for all relations
* fix errors
* add functionality to send SMS to specific number
* fix type error for timeUnit
* set default value for time unit + fix type issues
* remove console.logs
* fix error in checking if scheduled date is more than 1h in advance
* fix build errors
* add migration for workflows
* add basic UI for editing workflow steps
* add formSchema
* improve functionality to update a step
* remove console logs
* fix issue with active event types
* allow null value for time and timeUnit
* sort steps asc step number
* add action to workflow (frontend)
* add phone number input for SMS to specific number
* use PhoneInput for number input + input validation
* improve invalid input for phone number
* improve UI of phoneInput
* Improve design and validation
* fix undefined error
* set default action when adding action
* include all team event types
* fix phone number input for editing steps
* fix update muation to add steps
* remove console logs
* fix order of steps
* functionality to delete steps
* add trigger when event is cancelled
* add custom email body
* sms and email reminder updates
* add custom emails
* add custom email subject
* send reminder email to all attendees
* update migration
* fix default value for time and timeUnit
* save email reminders to database
* clean code
* add custom template to SMS actions
* schedule emails with sendgrid
* clean code
* add workflow templates
* keep custom template saved when changing templates
* create reminder template for email
* add dot at the end of sentace for email template
* fix merge error
* fix issue that template was not saved
* include sending emails for when event is cancelled
* fix bug that email was always sent
* add templates to sms reminders
* add info that sending sms to attendees won't trigger for already exisitng bookings
* only schedule sms for attendees when smsReminderNumber exists
* only schedule sms for attendees when smsReminderNumber exists
* set scheduled of workflow reminder to false when longer than 72 hours
* add cron for email scheduling + fixes for for sms an email scheduling
* adjust step number when deleting a step
* cast to boolean with !!
* update cron job for email reminders
* update sms template
* send reminder email not to guests
* remove sendTo from workflow reminder
* fixes sending sms without name + removing sendTo everywhere
* fix undefined name in sms template
* set user name to undefined for sending sms to a specific number
* fix singular and plural for time unit
* set to edit mode when changing action and custom template is selected
* delete reminders when booking cancelled or not active anymore
* fix type errors
* fix error that deleted reminders twice
* create booking reminders for existing bookings when eventType is set active
* improve email and sms templates
* use BookingInfo type instead of calendarEvent for reminder emails
* schedule emails for already existing bookings
* add and remove reminders for new active event types and cancelled events
* connect add action button with last step
* fix step container width for mobile view
* helper functions that return options for select
* fix typo and remove comment
* clean code
* add/improve error messages for forms
* fix typo
* clean code
* improve email template
* clean code
* fix missing prop
* save reference id when scheduling reminder
* fix step not added because of changed id for new steps
* small fixes + code cleanup
* code cleanup
* show error message when number is invalid
* fix typo
* fix phone number input when location is already phone
* set multi select checkbox to read only
* change email scheduling in cron job from 7 days to 72 hours
* show active event types in workflow list
* fix trigger information for workflow list
* improve layout for small screens in workflow list
* remove optional from zod type for workflow name
* order workflows by id
* use link icon to show active event types
* fix plural and add translation for showing nr of active eventtypes
* fix text for sms reminder template
* add reminders for added steps
* remove optional for activeOn
* improve reminder templates
* improve design of custom input fields
* set edit mode to false when phone number isn't needed anymore
* set sendTo in workflow step only for SMS_NUMBER action
* set email body and subject only when custom template
* only delete reminders that belong to workflow steps
* improve text for new event book trigger
* move reminders folder to workflows
* fix issue that save button was sometimes enabled in edit mode
* fix form issues for send to
* delete all scheduled reminders when workflow is deleted
* use enum for method
* fix imports for workflow methods
* add missing import
* fix edit mode
* create reminders when event is confirmed
* add reminderScheduler to reduce duplicate code
* make workflow enterprise and pro only feature
* move all files to /ee/ folder
* move package.json change to /ee/ folder
* add pro badge to shell
* set to edit mode to true if email subject is missing when action changes
* fix loading bug
* add migration
* fix old imports
* don't schedule reminders for opt-ins
* fix style of email body
* code clean up
* Update yarn.lock
* fix isLoading for active on dropdown
* update import for prisma
Co-authored-by: Omar López <zomars@me.com>
* update imports
* remove console
* use session to check if user has valid license
* use defaultHandler
* clean up code
* Create db-staging-snapshot.yml
* move LisenceRequired inside shell
* update import for FormValues
* fix phone input design
* fix disabled save button for edit mode
* squah all migration into a single one
* use isAfter and isBefore instead of isBetween
* import dayjs from @calcom
* validate phone number for sms reminders when booking event
* Allows auto approvals for crowdin
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: zomars <zomars@me.com>
* Fix request reschedule organizer email
* Updated book a new time link and removed manage or cancel action on user owner email request reschedule
* Fix let with const for a variable and change env var to a constant from lib
Co-authored-by: Omar López <zomars@me.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* WIP feature/settings-username-update
* WIP username change
* WIP downgrade stripe
* stripe downgrade and prorate preview
* new UI for username premium component
* Fix server side props
* Remove migration, changed field to metadata user
* WIP for update subscriptions
* WIP intent username table
* WIP saving and updating username via hooks
* WIP saving working username sub update
* WIP, update html to work with tests
* Added stripe test for username update go to stripe
* WIP username change test
* Working test for username change
* Fix timeout for flaky test
* Review changes, remove logs
* Move input username as a self contained component
* Self review changes
* Removing unnecesary arrow function
* Removed intentUsername table and now using user metadata
* Update website
* Update turbo.json
* Update e2e.yml
* Update yarn.lock
* Fixes for self host username update
* Revert yarn lock from main branch
* E2E fixes
* Centralizes username check
* Improvements
* WIP separate logic between premium and save username button
* WIP refactor username premium update
* Saving WIP
* WIP redo of username check
* WIP obtain action normal, update or downgrade
* Update username change components
* Fix test for change-username self host or cal server
* Fix user type for premiumTextfield
* Using now a global unique const to know if is selfhosted, css fixes
* Remove unused import
* Using dynamic import for username textfield, prevent submit on enter
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: zomars <zomars@me.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* There is lot of hardcoding links in application
* Apply suggestions from code review
Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
Co-authored-by: gitstart <gitstart@users.noreply.github.com>
Co-authored-by: Omar López <zomars@me.com>
Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
* Share WIP
* Embed tests fixes
* AvailabilityPage improvements
* Type fixes
* Fixes Datepicker day witdth
* Update troubleshoot.tsx
* Adds local cached slots and browsingDate
* Migrating DatePicker to use Dayjs for timeZone support
* Fixed Sunday not being available
* Added comment to clarify what is going on
* Minor bugfix in DatePicker, double empty slot markup
* Change selected date with URL through ?date..
* Initialize properly w/o query params, remove minDate for now
* Remove Loader as now using Skeleton
* Handle Etc/GMT edge case (not a timeZone)
* Added dark mode bg- color to SkeletonText + made text slightly more subtle on DatePicker
Co-authored-by: zomars <zomars@me.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
* As Google Meet is always installed, this fixes the doubling
* Make entire Google link clickable, fix extraData
* Attempt at type fixing :)
* AdditionalInformation for the booking page?
* Update packages/emails/src/components/LocationInfo.tsx
Being explicit :)
* Exclude AdditionalInformation as it is irrelevant here
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Omar López <zomars@me.com>
* Extracted UI related logic on the DatePicker, stripped out all logic
* wip
* fixed small regression due to merge
* Fix alignment of the chevrons
* Added isToday dot, added onMonthChange so we can fetch this month slots
* Added includedDates to inverse excludedDates
* removed trpcState
* Improvements to the state
* All params are now dynamic
* This builds the flat map so not all paths block on every new build
* Added requiresConfirmation
* Correctly take into account getFilteredTimes to make the calendar function
* Rewritten team availability, seems to work
* Circumvent i18n flicker by showing the loader instead
* 'You can remove this code. Its not being used now' - Hariom
* Nailed a persistent little bug, new Date() caused the current day to flicker on and off
* TS fixes
* Fix some eventType details in AvailableTimes
* '5 / 6 Seats Available' instead of '6 / Seats Available'
* More type fixes
* Removed unrelated merge artifact
* Use WEBAPP_URL instead of hardcoded
* Next round of TS fixes
* I believe this was mistyped
* Temporarily disabled rescheduling 'this is when you originally scheduled', so removed dep
* Sorting some dead code
* This page has a lot of red, not all related to this PR
* A PR to your PR (#3067)
* Cleanup
* Cleanup
* Uses zod to parse params
* Type fixes
* Fixes ISR
* E2E fixes
* Disabled dynamic bookings until post v1.7
* More test fixes
* Fixed border position (transparent border) to prevent dot from jumping - and possibly fix spacing
* Disabled style nitpicks
* Delete useSlots.ts
Removed early design artifact
* Unlock DatePicker locale
* Adds mini spinner to DatePicker
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: zomars <zomars@me.com>
* Fix sort order to ensure correct event-type is picked when duplicates
* Refetch after mutation to ensure that after positioning is changed, UI is updated
* Dont rely on hashmap for ordering.
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* Fixes for both apps regarding event update/delete
* Added wipe my cal test
* Added eslint ignore
* Fix test
* Merge both test into a single test
* remove duplicated line
* Using prisma from calcom pkg and removing optional chaining from current invocations
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* Incorporates recurringEvent into calEvent
* Recurrent event fixes
* Update event.ts
* type fixes
* Update zod-utils.ts
* Adding more recurringEvent to calEvent and other fixes
* Moving away from heavy 3rd party enum
* Fixing test
* Renaming as suggested and fixes
Co-authored-by: Leo Giovanetti <hello@leog.me>
* disable darkmode only for organizer
* disable dark mode when user comes from user dashboard
* move Theme to shell
* fix build errors
* sort dates for recurring bookings
* new parameter if user comes from booking an event
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* next-collect initial setup
* naming changes
* WIP
* WIP: added cookie name
* telemetry update
* fixes
* telemetry eventTypes fix
* tmp jitsu config for testing
* tmp jitsu key update (for tests)
* deploy commit
* cookieName fixes
* telemetry credentials update
* NextCollect updated to latest canary; added TELEMETRY_KEY to config
* TELEMETRY_KEY fix
removed browser_user_agent field from event
* removed _middleware.ts for test deploy
* _middleware.ts restored
* next-collect version bump
* yarn.lock fix
* Added license consent property, set default telemetry endpoint
* Switched to stable version of next-collect; restored LicenseProvider accidentally deleted during merge
* Switched to stable version of next-collect; restored LicenseProvider accidentally deleted during merge
* Updated to latest version of next-collect
* - Updated to latest version of next-collect
- Few improvements in event collection: isTeamBooking for all events, page_url for all events
- Do not send second page event on re-render of /team/[slug]
* Revert booking confirmed tracking
* Applied prettier + fix lint
Co-authored-by: Art Sk <kirsan007@gmail.com>
* add functionality to change location in booking and send out mail
* add i18n
* change location with dropdown like in event-types
* small fixes and code clean up
* clean code
* improve format of current Location string
* clean code
* clear selection when dialog closed
* added mutation and changed props (first working verison)
* clean code
* clean code
* clean code
* clean code
* fix typo
* change maxHeight of select
* use useWatch for selectedLocation
* pass default values with props
* set current location directly in useState
* clear selected values when updating location
* fix trpc query for credentialst
* change icons for editing booking
* improve naming of variables
* remove unnecessary orderBy
* use locationOptionsToString method
* fix current location naming for Cal Video
* add phone input
* save phone number as location of booking
* remove input field for phone number for event-types
* fix redirection issue
* show previous selected location in event-type
* remove attendee number from selection for booking
* make first letter of location lowercase
* remove input field for attendee phone number
* clear Errors when changing location type
* set location details to optional
* clean code
* fixing issue that dropdown doesn't close when dialog opens
* clean code
* make overflow visibile in dialog
* fix existing bug with address not showing in event-type settings
* fix issue with losing focus after validation
* close rejection dialog
* small spelling fixes
* fix issue with LocationChangeEmail
* fix failing E2E test
* fix failing E2E test
* fix E2E test
* bug fix for saving user phone, and other minor changes
* merge main
* improve text
* fix UI of booking list
* Delete admin
* remove selection after update and submit
* add translation for error message
* add default values for checkbox
* add "your phone number" to locations on booking page
* remove duplicate attributes from viewer.bookings
Co-authored-by: Omar López <zomars@me.com>
* check if user is authorized to make changes to booking
* remove location string
* clan code for displayLocaitonPublicly checkbox
* fetch locationOptions on server side
* remove trpc query for credentials
* fix phone number input
* fix labels of host and attendee phone number for booking page
* Migrates edit location to tRPC
* Link elemnt should only be used in `a` tags
* Adds missin router
* Migrates locationOptions to tRPC query
* Type fixes
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: Alan <alannnc@gmail.com>
Co-authored-by: Omar López <zomars@me.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* fixes date not showing for confirmed recurring event
* only show all events on upcoming bookings
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
* fixed labels for seats
* minor fixes, removed shadow from all event-type inputs
* Render input field on pro accounts (#2859)
Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
* fix(ui/login): better disabled state for login CTA
The fix involves tracking the form submission with a dedicated state `submitInProgress` with React.
`formState` from `react-hook-form` does not take time taken for the network call into account. For example,
if the api takes 5 seconds to complete, we would expect the `formState.isSubmitting` to be true for `5`
seconds. But, surprisingly this is not the case and `formState` from `react-hook-form` resolves
immediately after it makes a successful connection to the endpoint.
A dedicated state (with `useState`) is introduced that is enabled when the user clicks on the login CTA, and disabled when the api call is resolved, either successfully or with an error.
* Update login.tsx
* Update login.tsx
* Fixes isSubmitting state
Co-authored-by: zomars <zomars@me.com>
* removed large mandatory height and scroll
* added z index using css
* cleanup
* fixed TS errors
* extract dialog out of dropdown
* Adds custom loading text to confirmation dialog
* rename update
* utilizing mutation loading state
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* Set google cal event id to use our uid
* Save calendar external id to bookingRef
* Pass external calendar ids to update and delete
* Create migration
* Fix type errors
* Fix prisma url
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Omar López <zomars@me.com>
* Prevents users from deleting the same schedule multiple times due to delay before the schedule disappears. It also applies the same fix to team disband.
Schedule deletion:
![schedule_deletion_new_behaving](https://user-images.githubusercontent.com/42497300/165126805-b3090268-c1a6-418a-b06e-06bd8446da03.gif)
Team disband:
![team_disband_new_behaving](https://user-images.githubusercontent.com/42497300/165127043-7e083e94-e4c9-4e88-90a2-47d31bdd92e6.gif)
Fixes issue [#2569](https://github.com/calcom/cal.com/issues/2569)
Bug fix (non-breaking change which fixes an issue)
**apps/web/components/LightLoader.tsx** → this file was created in order to make a light color loading spinner available. It's necessary when we need to display a loading spinner above dark backgrounds.
**apps/web/components/availability/ScheduleListItem.tsx** → this component was created in order to give a schedule list item its own state.
* Removing a "setTimeout" that was only used for testing purposes
* Adding a code review suggestion to my modifications
* Changing loading style
* Cleanup
* Avoids using unnecessary state
* Revert "Adding a code review suggestion to my modifications"
This reverts commit b5e40062d7.
* Reverts some changes
* Renames isLoading
Co-authored-by: Alex van Andel <me@alexvanandel.com>
Co-authored-by: Omar López <zomars@me.com>
* Fixing warnings
* Reverting and disabling ESLint in some cases
* Reverting Next Images
* Reverting file, bad merge
* Targeting ESLint to line
* Additional warnings
* New warning squished
* More tweaks and major fixes
* Uneeded conf
Co-authored-by: Omar López <zomars@me.com>
* Change date format for RecurringBookings
* Missing bookingId query param
Co-authored-by: Leo Giovanetti <hello@leog.me>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* add invite link and toaster to zapier setup page
* create env variable for invite link and save in database
* fetch invite link form getStaticProps
* add getStaticPath method
* clean code
* Moves app setup and index page
* Moves Loader to ui
* Trying new way to handle dynamic app store pages
* Cleanup
* Update tailwind.config.js
* zapier invite link fixes
* Tests fixes
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: zomars <zomars@me.com>
* Replaces member avatars with links to avatar.png endpoint
* Replaced additional occurences
* Use WEBSITE_URL from @calcom/lib/constants instead
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* Merge remote-tracking branch 'origin/main' into feat/success-url
* Fix localstorage access
* Fix Comments
* make custom eleemnt explicitly 100% in width to go full width in a flex type parent
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* added toast feedback
* updated flow
* locale
* updated locale data
* removed unused booking call for reschedule flow
* fixed hashedURL test
* test adjustment
* further test changes
* added check in test to click check only if unchecked
* Added private link quick copy button
* fixed spacing
* fix lint
* consistency
* moved create hash function out of component render
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* Add vital integration
* Tidy up client_user_id creation
* Rename vital app to vitalother to follow name rules
* Added env var
* App vital reschedule
* Fix on app structure and api calls
* Implemented user identification from webhook
* WIP fix api call and read me
* Save vital settings via api
* Now saving userVitalSettings and trigger reschedule on selected param
* Added translations
* Fix type for vitalSettings
* Using api to get env vars required for url, fix display of vital settings
* Fix hours placeholder, translation not working
* Renames vital app
* Update seed-app-store.ts
* Update package.json
* Update yarn.lock
* Refactored env variables
* Update README.md
* Migrates to api_keys
* Extracts AppConfiguration
* vitalClient fixes
* Update index.ts
* Update metadata.ts
* Update index.ts
* Update metadata.ts
* Added namespace vital for translations
Co-authored-by: Maitham <maithamdib@gmail.com>
Co-authored-by: zomars <zomars@me.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* Add support to dynamically change the theme
* Add Embed UI in app
* Update UI as per Figma
* Dynamicaly update Embed Code
* Get differnet modes working in preview
* Support Embed on EventType Edit, Team Link Fix and Mobile unsupported
* Fix auto theme switch in Embed Snippet generator
* Fix types
* Self Review fixes
* Remove Embed from App section
* Move get query after the middleware to let middleware work on it
* Add sandboxes in the document
* Add error handling for embed loading
* Fix types
* Update snapshots and fix bug identified by tests
* UI Fixes
* Add Embed Tests
* Respond in preview to width and height
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* disposable link model added
* disposable model updated
* added disposable slug availability page
* added disposable book page
* added disposable slug hook
* added disposable link booking flow
* updated schema
* checktype fix
* added checkfix and schema generated
* create link API added
* added one time link view on event type list
* adjusted schema
* fixed disposable visual indicator
* expired check and visual indicator added
* updated slug for disposable event type
* revised schema
* WIP
* revert desc
* revert --WIP
* rework based on change of plans
* further adjustments
* added eventtype option for hashed link
* added refresh and delete on update
* fixed update call conditions
* cleanup
* code improvement
* clean up
* Potential fix for 404
* backward compat for booking page
* fixes regular booking for user and team
* typefix
* updated path for Booking import
* checkfix
* e2e wip
* link err fix
* workaround for banner issue in event type update-test
* added regenerate hash check
* fixed test according to new testID
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: zomars <zomars@me.com>
* disposable link model added
* disposable model updated
* added disposable slug availability page
* added disposable book page
* added disposable slug hook
* added disposable link booking flow
* updated schema
* checktype fix
* added checkfix and schema generated
* create link API added
* added one time link view on event type list
* adjusted schema
* fixed disposable visual indicator
* expired check and visual indicator added
* updated slug for disposable event type
* revised schema
* WIP
* revert desc
* revert --WIP
* rework based on change of plans
* further adjustments
* added eventtype option for hashed link
* added refresh and delete on update
* fixed update call conditions
* cleanup
* code improvement
* clean up
* Potential fix for 404
* backward compat for booking page
* fixes regular booking for user and team
* typefix
* updated path for Booking import
* checkfix
* e2e wip
* link err fix
* workaround for banner issue in event type update-test
* added regenerate hash check
* fixed test according to new testID
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: zomars <zomars@me.com>
* manual migration to rename verificationtoken, maybe it could be dropped and create a new table instead if we're not using it, will consult @zomars
* feat: rename verificationRequest --> verificationToken in schema.prisma
* fix: rename verificationRequest -> verificationToken in the codebase
* feat: add default cookies for next-auth
* fix: moves @lib/serverConfig to @calcom/lib so it can be called by website too
* fix: make self-certificate work in dev env by not rejecting tls in serverConfig
* fix verificationTokenToken typo
Co-authored-by: Omar López <zomars@me.com>
* Adds domain: .cal.com if not dev env in cookies
* Adds default-cookies to apps/web, and nextauth_domain to turbo website build deps"a
* update NEXTAUTH_DOMAIN to NEXTAUTH_COOKIE_DOMAIN
* Updates website submodule
* Removes deprecated env vars
* Consolidates auth logic in one place
* Updates website module
* Signup fixes
* Build fixes
* Updates example
* Updates example
* Fixes
* Fix Email Verification
* fix: move csrf-token cookiePrefix from __Host -> __Secure
* Removes console log
* Fixes link in email template
* Removed irrelevant coment
* Testing with a 32 bit secret
* Fixes for cookien in E2E
* E2E fixes
* Fixes Stripe tests locally
* Temp fix for E2E
Co-authored-by: Agusti Fernandez Pardo <git@agusti.me>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Omar López <zomars@me.com>
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
* Fix for appstores and wipe-my-cal
* Fix email subject for reschedule
* Fix email subject for reschedule
* Fix api add wipemycal return
* Now we ask on a endpoint if app its installed
* Fix types
Co-authored-by: Omar López <zomars@me.com>
* feat: add ApiKey model for new Api auth, owned by a user
* fix: remove metadata:Json and add note:String instead in new apiKey model
* fix: rename apiKey to apiKeys in moder User relation in schema.prisma
* feat: add hashedKey to apiKey and lastUsedAt datetime to keep track of usage of keys and makiung them securely stored in db
* fix 30 day -> 30 days in expiresAt
* feat: api keys frontend in security page
* adds hashedKey to api key model, add frontend api keys in security page
* Make frontend work to create api keys with or without expiry, note, defaults to 1 month expiry
* remove migration for now, add env.example to swagger, sync api
* feat: hashed api keys
* fix: minor refactor and cleanup in apiKeys generator
* add api key success modal
* sync apps/api
* feat: We have API Keys in Security =)
* remove swagger env from pr
* apps api sync
* remove comments in password section
* feat: migration for api keys schema
* sync api w main
* delete apps/api
* add back apps/api
* make min date and disabled optional props in datepicker
* feat fix type check errors
* fix : types
* fix: rmeove renaming of verificationrequest token indexes in migration
* fix: remove extra div
* Fixes for feedback in PR
* fix button />
* fix: rename weird naming of translation for you_will_only_view_it_once
* fix: remove ternary and use && to avoid null for false
* fix sync apps/api with main not old commit
* fix empty className
* fix: remove unused imports
* fix remove commented jsx fragment close
* fix rename editing
* improve translations
* feat: adds beta tag in security tab under api keys
* fix: use api keys everywhere
* fix: cleanup code in api keys
* fix: use watch and controller for neverexpires/datepicker
* Fixes: improve api key never expires
* add back change password h2 title section in security page
* fix update env API_KEY_ prefix default to cal_
* fix: improve eidt api keys modal
* fix: update edit mutation in viewer.apiKeys
* Update apps/web/ee/components/apiKeys/ApiKeyListItem.tsx
Co-authored-by: Alex van Andel <me@alexvanandel.com>
* fix: item: any to pass build
Co-authored-by: Agusti Fernandez Pardo <git@agusti.me>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Omar López <zomars@me.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
* users can be array of user when roundrobin team booking is there with availablity of multiple people
* Return empty array
* Add comments
* checktype fix
* removed extra condition
Co-authored-by: Syed Ali Shahbaz <alishahbaz7@gmail.com>
* patch applied
* patch applied
* We shouldn't pollute global css
* Build fixes
* Updates typings
* WIP extracting zoom to package
* Revert "Upgrades next to 12.1 (#1895)" (#1903)
This reverts commit ede0e98e1f.
* Tweak/gitignore prisma zod (#1905)
* Extracts ignored createEventTypeBaseInput
* Adds postinstall script
* Revert "Tweak/gitignore prisma zod (#1905)" (#1906)
This reverts commit 15bfeb30d7.
* Eslint fixes (#1898)
* Eslint fixes
* Docs build fixes
* Upgrade to next 12.1 (#1904)
* Upgrades next to 12.1
* Fixes build
* Updaters e2e test pipelines
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* Fix URL by removing slash and backslash (#1733)
* Fix URl by removing slash and backslash
* Implement slugify
* Add data type
* Fixing folder structure
* Solve zod-utils conflict
* Build fixes (#1929)
* Build fixes
* Fixes type error
* WIP
* Conflict fixes
* Removes unused file
* TODO
* WIP
* Type fixes
* Linting
* WIP
* Moved App definition to types
* WIP
* WIP
* WIP
* WIP WIP
* Renamed zoomvideo app
* Import fix
* Daily.co app (#2022)
* Daily.co app
* Update packages/app-store/dailyvideo/lib/VideoApiAdapter.ts
Co-authored-by: Omar López <zomars@me.com>
* Update packages/app-store/dailyvideo/lib/VideoApiAdapter.ts
Co-authored-by: Omar López <zomars@me.com>
* Missing deps for newly added contants to lib
Co-authored-by: Omar López <zomars@me.com>
* WIP
* WIP
* WIP
* Daily fixes
* Updated type info
* Slack Oauth integration - api route ideas
* Adds getLocationOptions
* Type fixes
* Adds location option for daily video
* Revert "Slack Oauth integration - api route ideas"
This reverts commit 35ffa78e92.
* Slack Oauth + verify sig
* Slack Oauth + verify sig
Implementing connect slack with workspace OAuth
Implemented the ability for slack to send requests on events (commands etc) - This only works if slacks signature matches with our signature
* Revert "Slack Oauth + verify sig"
This reverts commit ee95795e0f.
* WIP - Signature verifiaction failure
* Huddle01 migration to app store (#2038)
* Jitsi Video App migration
* Removing uneeded dependencies
* Missed unused reference
* Missing dependency
`@calcom/lib` is needed in the `locationOption.ts` file
* Huddle01 migration to app store
* WIP: PostData for creating event
* Optimising Query
Vital as we only have 3 seconds max to return the response to slack.
* Jitsi Video App migration (#2027)
* Jitsi Video App migration
* Removing uneeded dependencies
* Missed unused reference
* Missing dependency
`@calcom/lib` is needed in the `locationOption.ts` file
Co-authored-by: Omar López <zomars@me.com>
* Monorepo/app store MS Teams Integration (#2080)
* Create teamsvideo package
* Remove zoom specific refrences
* Add teams video files
* Rename to office365_video
* Add call back to add crednetial type office365_teams
* Rename to office_video to match type
* Add MS Teams as a location option
* Rename files
* Add teams reponse interface and create meeting
* Comment out Daily imports
* Add check for Teams integration
* Add token checking functions
* Change template to create event rather than meeting
* Add comment to test between create link and event
* Add teams URL to booking
* Ask for just onlineMeeting permission
* Add MS Teams logo
* Add message to have an enterprise account
* Remove comments
* Comment back hasDailyIntegration
* Comment back daily credentials
* Update link to MS Graph section of README
* Move API calls to package
Co-authored-by: Omar López <zomars@me.com>
* Re-adds missing module for transpiling
* Adding connect button if there is on user
* Adds email as required field for app store metadata
* WIP: migrates tandem to app store
* Cleanup
* Migrates tandem api routes to app store
* Fixes tandem api handlers
* Big WIP WIP
* Show todays bookings.
* No booking message to json
* Transition into modals
Better UX for submitting forms.
* Create Bookings - Working
* Fixing /today to show today and not all upcoming
* Fixing message
* Build fixes
* WIP
* Fixes annoying circular dependency bug
I've spent a whole day on this....
* Location option cleanup
* Type fixes
* Update EventManager.ts
* Update CalendarManager.ts
* Merge branch 'monorepo/app-store' into sean-monorepo-slack-oauth
* Moves CalendarService back to lib
* Moves apple calendar to App Store
* Cleanup
* Booking Success
* Merge branch 'main' into sean-monorepo-slack-oauth
* Restored moved file
* Delete TeamRole.tsx
* Undoing unrelated changes
* Cleanup
* Cleanup
* Updates website
* Delete .env.example
* Update yarn.lock
* Adds instructions to README
* Build fixes
* Uses generic app store api handler
* Adds install button and cleanup
* Updates .env.example
* Update README.md
* Renames slackapp to slackmessaing
* Update InstallAppButton.tsx
* Delete locationOption.ts
* Type fixes
* Build fixes
* Links + Fixing connection issue
* fixed merge conflict
* fixed merge conflict
* Type fixes
* Update index.ts
Co-authored-by: zomars <zomars@me.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Juan Esteban Nieto Cifuentes <89233604+Jenietoc@users.noreply.github.com>
Co-authored-by: Leo Giovanetti <hello@leog.me>
Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peer@cal.com>
* Moves locations to App Store and Core
* LocationType fixes
* Update App.d.ts
* Re-add Google Meet
* Moves location labels to the app store
* Renames labels to locationLabels
* Update utils.ts
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* username update from getting-started when received as query param
* Added test for onboarding username update
* Now saving username saved in localStorage
* remove username field
* Removed wordlist
* Implement checkoutUsername as api endpoint
* Remove unused lib utils not empty
Co-authored-by: zomars <zomars@me.com>
* added emptyscreen component to availability
* added emptyscreen for event-types too
* added placeholder for adding new schedule
* didnt realise we had a Working Hours string alredy
* nit
* remove white background from empty availability
* Concluded merge
* Applied stash to newly merged
* Always disconnect + remove redundant success message
* Added named dialog to replace new=1
* Merged with main p2
* Set eventTypeId to @unique
* WIP
* Undo vscode changes
* Availability dropdown works
* Remove console.log + set schedule to null as it is unneeded
* Added schedule to availability endpoint
* Reduce one refresh; hotfix state inconsistency with forced refresh for now
* Add missing translations
* Fixed some type errors I missed
* Ditch outdated remnant from before packages/prisma
* Remove Availability section for teams
* Bringing back the Availability section temporarily to teams to allow configuration
* Migrated getting-started to new availability system + updated translations + updated seed
* Fixed type error coming from main
* Titlecase 'default' by providing translation
* Fixed broken 'radio' buttons.
* schedule deleted translation added
* Added empty state for when no schedules are configured
* Added correct created message + hotfix reload hard on delete to refresh state
* Removed index renames
* Type fixes
* Update NewScheduleButton.tsx
Co-authored-by: zomars <zomars@me.com>
Co-authored-by: Bailey Pumfleet <pumfleet@hey.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* --init
* refactored more dialogs --WIP
* more modals replaced by dialogs --WIP
* fix for new dialog location import
* --WIP
* lint fix
* final dialog refactor
* added more width to max-w for dialog in sm screen
* clean-up
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* checking if username is premium on google sign up
* Removed test validating query input value, but it's no longer required
* undo code that was moved to a function for reuse
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Omar López <zomars@me.com>
* feat: pre-fill name and email if user loggedIn in booking page
* feat: add name to next-auth autoMergeIdentiteies response
* fix: Update booking page so if you're in your own booking, it doesn't prefill
Co-authored-by: Agusti Fernandez Pardo <git@agusti.me>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* convert the email to lowercase
this code will prevent the email check from failing if the user email contain capitalisation.
* Updated Readme to contain warning.
* Revert "Updated Readme to contain warning."
This reverts commit c406587c73.
Co-authored-by: Bailey Pumfleet <pumfleet@hey.com>
* init dark brand color addition
* added dark mode css vars
* added contrast brand colors
* minor fixes
* added dark branding to loader, button
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* Avoid crypto to land in the browser
* Avoid prefetching as it has Crypto code bundled in AvatarGroup
* Use md5 directly if avatar not available
Co-authored-by: Bailey Pumfleet <pumfleet@hey.com>
* Event Types - Mobile Ui
* Removing Daily video from default list
Added this for testing purposes
* Removing ZOD + mt on clock
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
* before and after buffer added to handleAvailableSlots function
* --WIP
* added migration
* pull buffer data from DB
* cleanup
* added buffer input in form
* removed unused functions in controller field
* improved the buffer time check
* fixed default value and added preceding event afterbuffer consideration
* fixed e2e test issue
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* Revert "Revert "Webhooks to support event type association (#1889)" (#2032)"
This reverts commit 71e74b8320.
* Fixes turbo DB deploy
* Update turbo.json
* fix: adds new isBrowserLocal24h timeFormat util, uses in BookingPage
* fix: adds new time format locale detector in available times
* fix: removes 24h clock from availabletimes
* chore: move timeFormat to lib util, add to payment page
* chore: remove commented out is24h
* fix: adds timeFormat to success page
* fix: adds timeFormat to cancel page
* fix: adds timeFormat to video meeting ended/not started pages
* fix: removes added typo in success page
* fix: reverts back to use of is24h Switch in available times / time options, renames timeFormat to detectBrowserTimeFormat to avoid collisions
* fix: moves use uf isBrowserLocal24h() to clock util initClock() itself, by calling it only if no localStorage settings are set
* chore: move back timeFormat props to line it was so no change
* chore: remove empty line in timeOptions
* chore: move back timeFormat where it was in TimeOptions props
* chore: add back empty line before selectedTimeZone return
* fix: reverts back to use of is24h in payments page
* feat: adds browser locale as default in payment page in case there's no settings set by the customer
* feat: adds browser locale as default in success page
* fix: deconstruct props so eslint passes
* fix: lint issue for extra empty line in meeting-ended uid page
Co-authored-by: Agusti Fernandez <git@agusti.me>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* initial
* scale plan instructions in the readme and removed the buffer for entering a video call
* readme update for Daily Scale Plan users
Co-authored-by: Lola-Ojabowale <lola.ojabowale@gmail.com>
Co-authored-by: Omar López <zomars@me.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* Upgrades prisma
* Extends Stripe paid booking timeout
* Stripe test fixes
* Disables cache for db-reset
* Disabled cache from db-seed
* Avatar fixes
* Fixes paid booking test once and for all
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* Add navigator.share in mobile
* Validate navigator.share in useEffect
* Add new Button with navigator.share condition
* Add new Icons
* Solve check types
* username slug should be lowercase
* if logging in via a non-CAL identity provider then show username during onboarding
* type fix
Co-authored-by: Bailey Pumfleet <pumfleet@hey.com>
* fix: remove use of window.location in redirect of callbackUrl in Login Page
* Adds WEBSITE_URL constant to callbackUrl in login page
Co-authored-by: Peer Richelsen <peeroke@gmail.com>