* Add log in with Google
* Fix merge conflicts
* Merge branch 'main' into feature/copy-add-identity-provider
# Conflicts:
# pages/api/auth/[...nextauth].tsx
# pages/api/auth/forgot-password.ts
# pages/settings/security.tsx
# prisma/schema.prisma
# public/static/locales/en/common.json
* WIP: SAML login
* fixed login
* fixed verified_email check for Google
* tweaks to padding
* added BoxyHQ SAML service to local docker-compose
* identityProvider is missing from the select clause
* user may be undefined
* fix for yarn build
* Added SAML configuration to Settings -> Security page
* UI tweaks
* get saml login flag from the server
* UI tweaks
* moved SAMLConfiguration to a component in ee
* updated saml migration date
* fixed merge conflict
* fixed merge conflict
* lint fixes
* check-types fixes
* check-types fixes
* fixed type errors
* updated docker image for SAML Jackson
* added api keys config
* added default values for SAML_TENANT_ID and SAML_PRODUCT_ID
* - move all env vars related to saml into a separate file for easy access
- added SAML_ADMINS comma separated list of emails that will be able to configure the SAML metadata
* cleanup after merging main
* revert mistake during merge
* revert mistake during merge
* set info text to indicate SAML has been configured.
* tweaks to text
* tweaks to text
* i18n text
* i18n text
* tweak
* use a separate db for saml to avoid Prisma schema being out of sync
* use separate docker-compose file for saml
* padding tweak
* Prepare for implementing SAML login for the hosted solution
* WIP: Support for SAML in the hosted solution
* teams view has changed, adjusting saml changes accordingly
* enabled SAML only for PRO plan
* if user was invited and signs in via saml/google then update the user record
* WIP: embed saml lib
* 302 instead of 307
* no separate docker-compose file for saml
* - ogs cleanup
- type fixes
* fixed types for jackson
* cleaned up cors, not needed by the oauth flow
* updated jackson to support encryption at rest
* updated saml-jackson lib
* allow only the required http methods
* fixed issue with latest merge with main
* - Added instructions for deploying SAML support
- Tweaked SAML audience identifier
* fixed check for hosted Cal instance
* Added a new route to initiate Google and SAML login flows
* updated saml-jackson lib (node engine version is now 14.x or above)
* moved SAML instructions from Google Docs to a docs file
* moved randomString to lib
* comment SAML_DATABASE_URL and SAML_ADMINS in .env.example so that default is SAML off.
* fixed path to randomString
* updated @boxyhq/saml-jackson to v0.3.0
* fixed TS errors
* tweaked SAML config UI
* fixed types
* added e2e test for Google login
* setup secrets for Google login test
* test for OAuth login buttons (Google and SAML)
* enabled saml for the test
* added test for SAML config UI
* fixed nextauth import
* use pkce flow
* tweaked NextAuth config for saml
* updated saml-jackson
* added ability to delete SAML configuration
* SAML variables explainers and refactoring
* Prevents constant collision
* Var name changes
* Env explainers
* better validation for email
Co-authored-by: Omar López <zomars@me.com>
* enabled GOOGLE_API_CREDENTIALS in e2e tests (Github Actions secret)
* cleanup (will create an issue to handle forgot password for Google and SAML identities)
Co-authored-by: Chris <76668588+bytesbuffer@users.noreply.github.com>
Co-authored-by: Omar López <zomars@me.com>
* [WIP] checkpoint before pull & merge
- Added teams to sidebar
- Refactored team settings
- Improved team list UI
This code will be partly reverted next commit.
* [WIP]
- Moved team code back to components
- Removed team link from sidebar
- Built new team manager screen based on Event Type designs
- Component-ized frequently reused code (SettingInputContainer, FlatIconButton)
* [WIP]
- Created LinkIconButton as standalone component
- Added functionality to sidebar of team settings
- Fixed type bug on public team page induced by my normalization of members array in team query
- Removed teams-old which was kept as refrence
- Cleaned up loose ends
* [WIP]
- added create team model
- fixed profile missing label due to my removal of default label from component
* [WIP]
- Fixed TeamCreateModal trigger
- removed TeamShell, it didn't make the cut
- added getPlaceHolderAvatar
- renamed TeamCreate to TeamCreateModal
- removed deprecated UsernameInput and replaced uses with suggested TextField
* fix save button
* [WIP]
- Fixed drop down actions on team list
- Cleaned up state updates
* [WIP] converting teams to tRPC
* [WIP] Finished refactor to tRPC
* [WIP] Finishing touches
* [WIP] Team availability beginning
* team availability mvp
* - added validation to change role
- modified layout of team availability
- corrected types
* fix ui issue on team availability screen
* - added virtualization to team availability
- added flexChildrenContainer boolean to Shell to allow for flex on children
* availability style fix
* removed hard coded team type as teams now use inferred type from tRPC
* Removed unneeded vscode settings
* Reverted prisma schema
* Fixed migrations
* Removes unused dayjs plugins
* Reverts type regression
* Type fix
* Type fixes
* Type fixes
* Moves team availability code to ee
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: zomars <zomars@me.com>
* wip
* tmp mig
* add cron api key to header
* feels safer
* Revert "wip"
This reverts commit 15a8358661.
* test
* add name
* normalize dates
* maybe works
* test
* fixz
* maybe fix ci
* deprecated
* step 1 -- raw sql
* seems to work
* migration seems to work
* br
* fix comment
* timouet
* disconnect prisma test
* test order
* maybs
* seems to work
* tz
* tweak
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
* Refactored Schedule component
* Merge branch 'main' into feature/availability-page-revamp
* wip
* Turned value into number, many other TS tweaks
* NodeJS 16x works 100% on my local, but out of scope for this already massive PR
* Fixed TS errors in viewer.tsx and schedule/index.ts
* Reverted next.config.js
* Fixed minor remnant from moving types to @lib/types
* schema comment
* some changes to form handling
* add comments
* Turned ConfigType into number; which seems to be the value preferred by tRPC
* Fixed localized time display during onboarding
* Update components/ui/form/Schedule.tsx
Co-authored-by: Alex Johansson <alexander@n1s.se>
* Added showToast to indicate save success
* Converted number to Date, and also always establish time based on current date
* prevent height flickering of availability
by removing mb-2 of input field
* availabilty: re-added mb-2 but added min-height
* Quite a few bugs discovered, but this seems functional
Co-authored-by: KATT <alexander@n1s.se>
Co-authored-by: Bailey Pumfleet <pumfleet@hey.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
* suspense
* iframe embeds
* calendar list container
* rename things as a container
* use list container on onboarding
* fix
* rm code
* newer alpha
* make it work in react 17
* fix
* fix
* make components handle error state through `QueryCell`
* fix constant
* fix type error
* type error
* type fixes
* fix package.lock
* fix webhook invalidate
* fix mt
* fix typo
* pr comment
* Fixes error types
* Type fixes
* Refactors video meeting handling
* More type fixes
* Type fixes
* More fixes
* Makes language non optional
* Adds missing translations
* Apply suggestions from code review
Co-authored-by: Alex Johansson <alexander@n1s.se>
* Feedback
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Alex Johansson <alexander@n1s.se>
* wip
* add another
* check
* add ci job
* fix ci
* fix
* maybe
* maybs
* attempt
* test
* maybe
* another attempt
* try v2
* align with normal build
* this should break build
* Revert "this should break build"
This reverts commit 1ba44d18a1.
* tweaks
* prevent breaking on main
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* Removes unused component
* Refactors useLocale
We don't need to pass the locale prop everywhere
* Event type fixes
* Extracts CreateNewEventDialog
* Implements tRCP for event types
### Internals
- Replace `lodash.*` packages with plain `lodash` & replace `lodash.*` imports with `lodash/` - should have no impact on bundle size and opens up for us to use all of lodash
- Update `viewer.me` to cherry-pick what we actually need on that query to avoid leaking extra context info
- Update `getIntegrations` to never include `.key`-property to avoid leaking
### Visual
- Update calendars so `primary` is displayed last
- Update connected calendars so they are in ascending order in which you connected them
* ⬆️ Bump tailwindcss from 2.2.14 to 2.2.15
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss) from 2.2.14 to 2.2.15.
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/compare/v2.2.14...v2.2.15)
---
updated-dependencies:
- dependency-name: tailwindcss
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
* updating cal will provide a zoom meeting url
* updating cal will provide a zoom meeting url
* modifying how daily emails send
* modifying how daily emails send
* daily table
* migration updates
* daily table
* rebasing updates
* updating Daily references to a new table
* updating internal notes
* merge updates, adding Daily references to book/events.ts
* updated video email templates to remove Daily specific references
* updating the events.ts and refactoring in the event manager
* removing the package-lock
* changing calendso video powered by Daily.co to cal video powered by Daily.co
* updating some of the internal Daily notes
* added a modal for when the call/ link is invalid
* removing handle errors raw from the Daily video client
* prettier formatting fixes
* Added the Daily location to calendar events and updated Cal video references to Daily.co video
* updating references to create in event manager to check for Daily video
* fixing spacing on the cancel booking modal and adding Daily references in the event manager
* formatting fixes
* updating the readme file
* adding a daily interface in the event manager
* adding daily to the location labels
* added a note to cal event parser
* resolving yarn merge conflicts
* updating dailyReturn to DailyReturnType
* removing prettier auto and refactoring integrations: daily in the event manager
* removing changes to estlintrc.json
* updating read me formatting
* indent space for Daily ReadMe section
* resolving the merge conflicts in the yarn file
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Lola-Ojabowale <lola.ojabowale@gmail.com>
* wip
* wip
* wip
* wtf
* should be all the logic
* comment
* fix receiver name
* safeguard a bit more
* downgrade users cron job
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* Adds react-use-intercom
* Adds intercom env var
* Loads intercom dynamically if env is set
* CAL-473 Fixes client-side routing for authed pages
* Moves intercom code to ee
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* feat: setup translations
* feat: i18n setup
* Update pages/settings/profile.tsx
Co-authored-by: Alex Johansson <alexander@n1s.se>
* fix: abstract locale hook
* fix: set default locale if preferred locale is not supported
* Revert "fix: set default locale if preferred locale is not supported"
This reverts commit e2a3d81371.
* fix: set default locale if preferred locale is not supported
* fix: use 1 namespace and remove unnecessary logs
* fix: yarn.lock
* fix: linting errors
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Alex Johansson <alexander@n1s.se>
* Store video data in event location; fixed several types
* fixed malformed id
* Insert Zoom data when updating as well
* Add columns to store (video) meetings
* Store meeting data
* fixed type
* Use stored videoCallData
* Store location in field as well
* Use meta field for booking reference
* Introduced meta field in code
* Revert "Introduced meta field in code"
This reverts commit 535baccee3.
* Revert "Use meta field for booking reference"
This reverts commit 174c252f67.
* Linting fixes
Co-authored-by: nicolas <privat@nicolasjessen.de>
Co-authored-by: Peer_Rich <peeroke@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Bailey Pumfleet <pumfleet@hey.com>
* run jest in ci
* ignore cypress in jest
* align
* ⚠️ disable failing tests
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* Heavy WIP
* More WIP
* Playing with backwards compat
* Moar wip
* wip
* Email changes for group feature
* Committing in redundant migrations for reference
* Combine all WIP migrations into a single feature migration
* Make backup of current version of radio area pending refactor
* Improved accessibility through keyboard
* Cleanup in seperate commit so I can cherrypick later
* Added RadioArea component
* wip
* Ignore .yarn file
* Kinda stable
* Getting closer...
* Hide header when there are only personal events
* Added uid to event create, updated EventTypeDescription
* Delete redundant migration
* Committing new team related migrations
* Optimising & implemented backwards compatibility
* Removed now redundant pages
* Undid prototyping to calendarClient I did not end up using
* Properly typed Select & fixed lint throughout
* How'd that get here, removed.
* TODO: investigate why userData is not compatible with passed type
* This likely matches the event type that is created for a user
* Few bugfixes
* Adding datepicker optimisations
* Fixed new event type spacing, initial profile should always be there
* Gave NEXT_PUBLIC_BASE_URL a try but I think it's not the right solution
* Updated EventTypeDescription to account for long titles, added logo to team page.
* Added logo to team query
* Added cancel Cypress test because an upcoming merge contains changes
* Fix for when the event type description is long
* Turned Theme into the useTheme hook, and made it fully compatible with teams pages
* Built AvatarGroup ui component + moved Avatar to ui
* Give the avatar some space fom the description
* Fixed timeZone selector
* Disabled tooltip +1-...
Co-authored-by: Bailey Pumfleet <pumfleet@hey.com>
- add new fields to support this
- when free:
- fade out all event types after first
- hide events after first on booking page
- make booking page after the first one 404 if accessed directly
- add e2e tests
* feat: add react-query and navigate to edit after event-type creation
* fix: add types/toasts and add react-query mutations on event-types
Co-authored-by: Mihai Colceriu <colceriumi@gmail.com>
-`<Button/>` component
- Uses `next/link` + `<a/>` if you supply a `href` otherwise `<button/>`
- Add UI sandbox
- Change the `event-types/index` to use a query param for deciding if modal is open or not
* add generic calendar icon for caldav
* module for symmetric encrypt/decrypt
* caldav integration
* use Radix dialog
* Move caldav components to /caldav
* remove duplicate cancel button, unused function
* ensure app can connect to caldav server before adding
* fix calendar clients can possibly return null
* fix: add caldav dialog does not close when submitted
* safely attempt all caldav operations
* clarify variable name, fix typo
* use common helper for stripping html
* remove usage of request lib until "completed"
* add types and usage comments to crypto lib
* add encryption key to example env file
* add edit links to events on dashboard
* fit elements on screen for mobile
* initialize components for consistent text styles
* add more fine grained width/height settings
* add higher level setting for when an event is available
- db: add supporting values to period allow setting an amount of days,
a range, or unlimited number days an event is available
* fix issue where periodDates are null
* return minimal required data, handle date parsing
* [ui] limit booking days based on user period settings
* api: validate user period settings
* [db] migration for event type period settings
* More tests to be added to verify slots logic
* Adds Jest
* Implements logic to the booking code to take into account grayed days
* Slots take workhours into account
TODO: Improve the tests, evaluate the structure, small re-orgs here and
there for improved readability / better code
* feat: allow users to set google meet as a location for events
- add google meet location with support for other integrations
* return location types from server
also avoids potential leaks of user credentials
* chore: remove unused variable
* fix: return minimal required data from server
- Introduced useTelemetry() hook
- Telemetry events are sent for page_view, booking_confirmed, time_selected, date_selected events
- Telemetry is configured (and can be disabled) with NEXT_PUBLIC_TELEMETRY_KEY env variable