Commit Graph

287 Commits (dab146a313fe31db19d1774bffb47556d1190975)

Author SHA1 Message Date
Alex Johansson 4879479981
add `<QueryCell />` to remove bespoke loading/error/empty/success logic (#835) 2021-10-01 15:12:47 +00:00
Alex Johansson c80992aa1c
move `withTRPC`-HOC to `_app.tsx` (#822) 2021-09-30 06:28:30 -06:00
Omar López dd9f801872
cal 485 prevent users from changing their username to premium ones (#799)
* Makes userRequired middleware

* Prevent users from changing usernames to premium ones

* refactor on zomars' branch (#801)

* rename `profile` -> `mutation`

* `createProtectedRouter()` helper

* move profile mutation to `viewer.`

* simplify checkUsername

* Auto scrolls to error when there is one

* Renames username helpers

* Follows db convention

Co-authored-by: Alex Johansson <alexander@n1s.se>
Co-authored-by: Bailey Pumfleet <pumfleet@hey.com>
2021-09-28 09:57:30 +01:00
Alex Johansson 649e79bdc7
statically render profile pages (#615) 2021-09-27 17:09:19 +01:00
Alex Johansson 34300650e4
add tRPC (#614)
* add trpc

* trpc specific

* fix deps

* lint fix

* upgrade prisma

* nativeTypes

* nope, not needed

* fix app propviders

* Revert "upgrade prisma"

This reverts commit e6f2d2542a.

* rev

* up trpc

* simplify

* wip - bookings page with trpc

* bookings using trpc

* fix `Shell` props

* call it viewerRouter instead

* cleanuop

* ssg helper

* fix lint

* fix types

* skip

* add `useRedirectToLoginIfUnauthenticated`

* exhaustive-deps

* fix callbackUrl

* rewrite `/availability` using trpc

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-09-27 14:47:55 +00:00
Alex van Andel c22beb698c
Fixes the Radix UI warning for consistent IDs (#774)
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2021-09-26 21:55:27 +00:00
Omar López 7ab49acebe
Fixes eventype form (#777)
* Type fixes

* Uses all integrations and session fixes on getting started page

* eventtype form fixes

* Update pages/event-types/[type].tsx

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-09-26 21:49:16 +00:00
Omar López 9e7cb2c0b8
CAL-469 Adds intercom dynamically (#762)
* 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>
2021-09-24 21:02:03 +01:00
Alex Johansson f709972f86
ui bug: alert looking funky (#766)
* tweak alert text to be growing
* fix alert looking funky
* get rid of `typeof window` dirt
2021-09-24 06:52:00 -06:00
Omar López 420daec147
CAL-473 Fixes client-side routing for authed pages (#763) 2021-09-24 11:16:46 +01:00
Alex van Andel ad3a06384f
Fixes a crash caused by too many redraws (#759) 2021-09-23 23:30:09 +01:00
Omar López bcacc1d166
More availability fixes (#755)
* Abstracts MinutesField

* Adds missing Minimum booking notice

* Refactoring

* Fixes int field sent as string

* Sorts slots by time

* Fixes availability page

* Fixes available days

* Type fixes

* More availability bugfixes
2021-09-23 18:18:29 +01:00
Omar López cb4a1e031e
Fixes user event availability page (#749)
* Abstracts MinutesField

* Adds missing Minimum booking notice

* Refactoring

* Fixes int field sent as string

* Sorts slots by time

* Fixes availability page

* Fixes available days
2021-09-23 15:08:44 +01:00
Mihai C 82e7e51fca
Setup i18n and locale detection (#712)
* 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>
2021-09-23 09:49:17 +01:00
Nico 3764a9d462
Bugfix/include zoom location (#715)
* 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>
2021-09-22 23:43:10 +01:00
Omar López d194878bb2
Suggestion: let prettier sort imports order (#673)
* Suggestion: let prettier sort imports order

# Conflicts:
#	yarn.lock

* AUTO SORT ALL THE IMPORTS

* Linting

* Fixes test
2021-09-22 13:52:38 -06:00
Omar López 3add84a279
Adds Stripe integration (#717)
* Adds Stripe integration

* Moves Stripe instrucctions to ee

* Adds NEXT_PUBLIC_APP_URL variable

* Adds fallback for NEXT_PUBLIC_APP_URL

* Throws error objects instead

* Improved error handling

* Removes deprecated method

* Bug fixing

* Payment refactoring

* PaymentPage fixes

* Fixes preview links

* More preview link fixes

* Fixes client links

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2021-09-22 19:36:13 +01:00
Femi Odugbesan a047177e72
Fix/duplicate events on onboarding (#716) 2021-09-22 08:25:33 +01:00
Peer Richelsen 3c089af58a
new EmptyScreen component, using it in /bookings (#708)
* new EmptyScreen component, using it in /bookings

* Linting fixes

Co-authored-by: Bailey Pumfleet <pumfleet@hey.com>
2021-09-21 11:36:29 +01:00
Conor Meagher 96fd7ecf41
chore: change calendso strings to cal.com (#707)
* chore: change calendso strings to cal.com

* rebase LICENSE

* rebase LICENSE

* strings that were missed

Co-authored-by: Bailey Pumfleet <pumfleet@hey.com>
2021-09-21 10:59:34 +01:00
Chris c0330acd83
Add two-factor authentication (#692)
Co-authored-by: Bailey Pumfleet <pumfleet@hey.com>
2021-09-21 10:29:20 +01:00
Femi Odugbesan ed8241ac1b
Fix/events from caldav not taken into consideration when checking availability (#637)
* use version 1.0.6

* use logger over console log

fix typing issue

Co-authored-by: Bailey Pumfleet <pumfleet@hey.com>
2021-09-18 17:49:18 +01:00
Omar López f6005b8c70
[CAL-409] Prevents usernames with special characters (#668) 2021-09-18 00:08:02 +01:00
Nico 961f297ba8
No confirmation shall be needed when rescheduling events that need confirmation (#440)
* No reconfirmation needed when rescheduling

* adapted success page

* Parse query as string

Co-authored-by: nicolas <privat@nicolasjessen.de>
Co-authored-by: Bailey Pumfleet <pumfleet@hey.com>
Co-authored-by: Peer_Rich <peeroke@gmail.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
2021-09-17 22:31:44 +01:00
Alex van Andel 7ae85fefee
Lacked encoding of the URL components for iso8601 dates (#669)
Co-authored-by: Bailey Pumfleet <pumfleet@hey.com>
2021-09-16 11:14:48 +01:00
Alex van Andel cf7f5ae53c
Replace all instances of calendso.com with cal.com and add a new logo for Cal.com emails (#662) 2021-09-15 21:35:55 +01:00
Peer_Rich 9fcd458d25
renamed more calendso to cal.com (#659) 2021-09-15 19:18:16 +01:00
Peer Richelsen 59972bc8ea fixed og-image 2021-09-15 17:27:00 +01:00
Alex van Andel d3fa6cec80
Fixes timeZone() by no longer needing timeZone() (#646)
* Fixes timeZone() by no longer needing timeZone()

* Added simple testcase to demonstrate the behaviour of parseZone() vs dayjs()

* Fixed eslint errors
2021-09-15 03:58:29 +01:00
Alex van Andel 6ab741b927
Feature/round robin (#613)
* 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>
2021-09-14 09:45:28 +01:00
Alex Johansson ab78bb3802
move calendso branding into pro (#629)
* badge

* mv branding to paid plan

* upgrade ts

* hideBranding check

* user.plan

* lint fixes

* `isBrandingHidden` helper

* hide pro for non-pros
2021-09-13 10:48:55 +01:00
Femi Odugbesan bc79f24fd4
integrate apple icalendar (#623) 2021-09-11 08:54:13 +01:00
Femi Odugbesan 6b4cea2f30
Copy of #560 Parallel CalDav (#621)
* Make the caldav queries run in parallel when querying availability

* improvements to caldav operations

run queries in parallel

if no selected calendars get availability from all calendars

* fix: busyTimes not properly resolved

Co-authored-by: Kuba Orlik <kontakt@kuba-orlik.name>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
2021-09-09 14:03:07 -05:00
Mihai C 903f7729c7
feat: add better error handling (#605)
* feat: add better error handling

* refactor: update after review

* refactor: remove unnecessary code

* refactor: better path structure

* refactor: fetch-wrapper after code review

Co-authored-by: Mihai Colceriu <colceriumi@gmail.com>
2021-09-09 16:51:06 +03:00
Alex van Andel aff45e3451
Fixed #598 - handleLegacyConfirmationMail (#601)
Co-authored-by: Bailey Pumfleet <pumfleet@hey.com>
2021-09-08 11:21:19 +00:00
Syed Ali Shahbaz e587432894
Bug fix (#592) 2021-09-08 12:00:34 +01:00
Alex Johansson 7e6e935ed3
add free plan (#549)
- 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
2021-09-06 13:51:15 +00:00
Syed Ali Shahbaz fa35af7bd8
Cal 262 refactor edit teams according to the design reference (#516)
* refactored settings/team landing page

* changed team edit flow, WIP

* merge conflict fix for teams.tsx

* minor fixes to edit team, WIP

* invite-member and disband team APIs attached inside edit-team page

* added remove-member API in edit-team page, minor fixes

* minor code fix, WIP

* WIP

* add logo, bio, branding to team schema

* bio, logo, branding, slug patch API and minor code fix-- WIP

* fn to Disband team directly from the dropdown menu in settings/teams page, removed debug remnants --WIP

* Pull latest data after an action in settings/teams-edit page

* added slug conflict check at Patch time

* code clean-up

* initial change request fixes --WIP

* prop type fix and add warn button color theme --WIP

* added warn Button to Dialog

* remaining change request fixes

* added noop from react-query

* updated invited team-list design

* prettier fix for api/teams/profile

* removed noop import and added custom noop

* minor Button fix

* requested changes addressed
2021-09-06 14:22:22 +01:00
Alex van Andel d9aff72220
Prepares the email system for Calendso Teams (#586)
Co-authored-by: Bailey Pumfleet <pumfleet@hey.com>
2021-09-06 09:06:33 +00:00
Alex Johansson 8eaa94d3c1
mv `ONBOARDING_INTRODUCED_AT` to new file (#557)
otherwise will the `/event-types`-route probably unnecessarily import the whole `getting_started`-page
2021-09-02 16:36:58 +00:00
Alex Johansson 52f95eb1c3
add `inferSSRProps` utility (#551) 2021-09-02 18:10:44 +02:00
Femi Odugbesan 2d23a8b7db
Onboarding Flow (#503)
* wip

* wip

* db: schedule schema

* fix adding time goes into new day

fix adding new time not keeping updating ranges

fix updating ranges not maintaining changed values

* remove photo upload

* remove unused code

* remove more unused code

* undo time lib

* didnt actually change this

* dont show onboardi
ng flow for users created before sept 1 2021

* use more consistent max-widths

* align all inputs in scheduler component

* allow overriding of default styles

* match figma designs

implement goto previous step

* add more types, match figma

Co-authored-by: Bailey Pumfleet <pumfleet@hey.com>
2021-09-02 13:13:19 +01:00
Mihai C 1ab9d1797a
fix: organizer/attendee timezones in emails (#543) 2021-09-01 21:39:24 +01:00
Mihai C a37411b8af
refactor: add next-seo (#531)
* refactor: add next-seo

* refactor: change naming of seo component
2021-08-27 15:35:20 +03:00
Mihai C fc50821282
feat: add react-query and navigate to edit after event-type creation (#528)
* 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>
2021-08-27 15:11:24 +03:00
Femi Odugbesan 2d127a5316
improve speed of caldav event fetching (#501)
* improve speed of caldav event fetching

use forked version of tsDav

* use dayjs to format timerange

* apply calendar timezone to event dates
2021-08-23 16:15:03 +00:00
Alex Johansson a77a15056a
`<Button>`-component (#480)
-`<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
2021-08-23 14:45:25 +02:00
Alex van Andel ce64080160
Implement the new Avatar interface to the teams page (#512) 2021-08-23 10:40:57 +01:00
Alex van Andel bc97237858
Remove image from session, add /api/me, update Avatar component (#493)
* Remove image from session, add /api/me, update Avatar component

* Fixed Avatar on Desktop

* Added emailMd5 to session + load md5 from props on /settings/profile

* Explicitly select which fields to expose in /api/me

* Abstracted Gravatar, defaults avatar for /api/me, removed session dep from UserDropdown

* Delete md5.js :)

Co-authored-by: Bailey Pumfleet <pumfleet@hey.com>
2021-08-22 14:16:42 +01:00
Alex Johansson a8ef195546
add query params parser util (#496) 2021-08-19 12:32:51 +00:00
Alex Johansson f63aa5d550
add linting in CI + fix lint errors (#473)
* run `yarn lint --fix`

* Revert "Revert "add linting to ci""

This reverts commit 0bbbbee4be.

* Fixed some errors

* remove unused code - not sure why this was here?

* assert env var

* more type fixes

* fix typings og gcal callback - needs testing

* rename `md5.ts` to `md5.js`

it is js.

* fix types

* fix types

* fix lint errors

* fix last lint error

Co-authored-by: Alex van Andel <me@alexvanandel.com>
2021-08-19 14:27:01 +02:00
Alex Johansson 2af160a13e
make `pages/[user]/[type].tsx` type-safe (#484)
* make `pages/[user]/[type].tsx` type-safe
* deprecate `whereAndSelect`
2021-08-18 12:21:52 +00:00
Alex Johansson aed9757409
fix bad auth commit (#487) 2021-08-18 12:15:22 +00:00
Alex Johansson a0a0ec86f0
add type-safe `getSession()` (#486)
* fix types for auth
* implement safer to use `getSession`
2021-08-18 11:52:25 +00:00
Peer_Rich a162949cf1
added useNotification @lib, using it in EventType (#468) 2021-08-18 10:18:18 +02:00
femyeda 49e7cbf803 fix issue where user could not connect to caldav
Uses base caldav adapter to ensure connectivity

rethrows all errors on CalDavCalendarAdapter
2021-08-16 09:34:49 -05:00
Bailey Pumfleet 06dce130b2
Merge pull request #450 from emrysal/bugfix/custom-inputs 2021-08-16 10:35:28 +01:00
Peer_Rich 83bef7d95e
Merge pull request #448 from femyeda/team-pages
Team pages
2021-08-15 18:44:42 +02:00
Femi Odugbesan 65d6791a36
url input has incorrect label props (#455) 2021-08-15 09:32:29 -05:00
femyeda 19ef588fa5 fix issue where client side vali
dation not happening

show error message from server
2021-08-15 09:22:05 -05:00
Femi Odugbesan 65366b7c5b
cal-101-caldav-integration (#419)
* 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
2021-08-14 20:53:59 -05:00
Alex van Andel 252a329f09 Fixed issues relating to custom-inputs
* Don't duplicate custom input when editing before db persist
* Remove correct custom input during delete pre db persist (id undefined)
* Moved typings to prisma, keeping backwards compatibility with @map
* Updated all usages of the enum
2021-08-14 17:03:50 +00:00
femyeda 216a7c0c48 prevent duplicate team names 2021-08-13 14:50:11 -05:00
femyeda 60a4b8b29e add page for teams 2021-08-13 14:46:42 -05:00
nicolas 560bd19472 Merge branch 'main' into bugfix/unify-email-sending 2021-08-08 21:21:33 +02:00
Bailey Pumfleet b175fd9bcc
Merge pull request #397 from javereec/main
Use calendarView instead of events for Office 365 calendars
2021-08-06 07:59:13 +01:00
nicolas bd07a93f06 Removed full stop 2021-08-05 21:49:32 +02:00
Peer Richelsen 8340fce157 extracted classNames into helpers 2021-08-03 10:30:35 +02:00
nicolas d2bc02e6fc Further renaming 2021-08-01 23:38:38 +02:00
nicolas 19374d38f7 Renamed isVideo to isDedicated; hard-coded logic for zoom meetings for now 2021-08-01 23:29:15 +02:00
nicolas c8a53d7f29 Merge branch 'main' into bugfix/unify-email-sending 2021-08-01 22:59:43 +02:00
Jan Vereecken 04d7a280ef Use calendarView instead of events
When calling Microsoft Graph use calendars/calendarView instead of calendars/events to allow occurences to be returned.
2021-07-31 15:00:27 +02:00
Alex van Andel e3ad889c54 Fixes Shifting the selected working days 2021-07-29 16:08:35 +00:00
nicolas 082281bdd0 Added type for credential 2021-07-28 22:44:52 +02:00
nicolas f948370bef Fixed codacy issues 2021-07-28 22:05:37 +02:00
nicolas bd28636af5 Merge branch 'main' into bugfix/unify-email-sending 2021-07-28 22:01:58 +02:00
Peer Richelsen a08e502d01 changed hardcoded email reminders to 10 vs 60 minutes. adding ability to change reminder time soon 2021-07-27 13:45:53 +02:00
Bailey Pumfleet 5df4fe413e
Merge pull request #343 from emrysal/feature/minimize-o365-calls-batching-list-events
Minimized msgraph calls while event listing by batching
2021-07-26 12:56:08 +01:00
Bailey Pumfleet 3c55660537
Merge pull request #384 from emrysal/feature/minimum-booking-notice
Feature/minimum booking notice
2021-07-26 11:54:22 +01:00
Bailey Pumfleet ca5fac4203
Merge pull request #378 from Nico-J/bugfix/remove-fancy-html
(Conditionally) remove HTML from event description
2021-07-26 10:15:44 +01:00
nicolas 47ee0334db Use better Regex to strip down html 2021-07-25 23:22:34 +02:00
nicolas 2b38638d84 Added maybeUid to CalEventParser 2021-07-25 19:15:31 +02:00
nicolas b0ac65b0f6 Added maybeUid to createEvent and createMeeting 2021-07-25 17:05:18 +02:00
nicolas 4dd8359a15 Made location optional 2021-07-25 14:40:02 +02:00
nicolas a97862d4b8 Process event location in EventManager 2021-07-25 14:19:49 +02:00
nicolas d7d1b79d0e Added JSDoc 2021-07-24 22:30:14 +02:00
nicolas 86e2add30f Resolved conflicts; included reference creation into EventManager; use EventManager everywhere 2021-07-24 22:24:00 +02:00
nicolas 749693b6bf Always use plain text event descriptions for now 2021-07-24 21:23:15 +02:00
Alex van Andel 9234f74bec Added accompanying frontend 2021-07-23 20:19:23 +00:00
Alex van Andel 4368ad0289 Implement minimum booking notice 2021-07-22 22:52:27 +00:00
nicolas 936338db3e Added condition when updating event 2021-07-22 01:11:25 +02:00
nicolas 0a60a62910 Conditionally use HTML 2021-07-22 00:46:31 +02:00
nicolas 13a6b9b549 Use regex to remove br tag 2021-07-21 18:20:08 +02:00
nicolas 39f16d95cb Properly replace a link tags 2021-07-21 14:25:28 +02:00
nicolas e5d94e74a2 No HTMl in rich event description 2021-07-21 14:01:48 +02:00
nicolas cf52df5662 Use entrypoint to make zoom location more beautiful 2021-07-20 20:40:41 +02:00
nicolas 7aff32fb50 Only send single mail when booking zoom 2021-07-20 20:07:59 +02:00
nicolas a40a5c04fe Retain rescheduleUid when picking a date 2021-07-18 22:17:18 +02:00
Malte Delfs f5516ed427 added reminder emails for opt-in bookings 2021-07-18 21:12:35 +02:00
Malte Delfs a2bf242c9e opt in booking 2021-07-18 20:28:54 +02:00