* wip
* Add preview mode in router
* only fetch bookings of this month for weighted rr
* test set up
* only get bookings of current month
* reverts test setup
* first changes for weight adjustments
* reset booking count + adjust calibration
* depreciate weightAdjustment
* get only bookings created this month
* fix typo
* make sure createdAt for hosts is correct
* use earliest possibel date as fallback
* add missing createdAt date to tests
* fix typo
* clean up changes in tests
* fix typo
* change end date to current date
* fix: Fall back to empty host array when no hosts are found
* fix: Restructure code a little
* fixed test, incorrectly used now outdated var
* perf: remove Dayjs from getLuckyUser
* Refactor getHostsWithCalibration for optimised performance, intentionally break test as findMany is always an array
* Better mock for host.findMany
* Remove team-event-types.test.ts, move to appropriate package
* TypeScript cannot auto-infer that an array is non-empty when assigning to a var
* fix: Type Fixes and DistributionMethod enum add
* Optimise tests
* Added test to show that bookings made before a newHost was added affect the lucky user result
* Throw error when the usersWithHighestPriority is empty, which should never happen
* WIP
* remove comment
* update migrations
* get attributes weights and virtual queue data
* use attribute weights and use bookings of virtual queue only
* clean up migrations
* Add shortfall column and add tests
* code clean up from feedback
* wrapper function for getLuckyUser
* code clean up
* fetch routingFormResponse in handleNewBooking
* fix type errors
* fix type errors in tests
* fix getAttributesQueryValue import for tests
* fix totalWeight
* add test for attributes weights and virtual queues
* clean up code
* add test for prepareQueuesAndAttributesData
* remove console.log
* use lazy import
* Add more tests and more columns to matching members queue
* fix issue from merge
* always send usersAndTheirBookingShortfalls
---------
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
* move types to types file
* Create salesforce routing form components
* Save salesforce data to routing form
* Fixes
* Add event type service
* Change commenting
* Pass data from routing form to CRM
* Init Salesforce routing form booking form handler
* Salesforce find user associated with lookup field
* Add looking up the contact owner
* If salesforce is disabled then don't change the Salesforce option
* Small refactor
* Refactor getting event type app metadata
* Refactor eventType service
* Type fix
* Clean up
* Add translations
Co-authored-by: Alex van Andel <emrysal@users.noreply.github.com>
---------
Co-authored-by: Alex van Andel <emrysal@users.noreply.github.com>
* only fetch bookings of this month for weighted rr
* test set up
* only get bookings of current month
* reverts test setup
* first changes for weight adjustments
* reset booking count + adjust calibration
* depreciate weightAdjustment
* get only bookings created this month
* fix typo
* make sure createdAt for hosts is correct
* use earliest possibel date as fallback
* add missing createdAt date to tests
* fix typo
* clean up changes in tests
* fix typo
* change end date to current date
* fix: Fall back to empty host array when no hosts are found
* fix: Restructure code a little
* fixed test, incorrectly used now outdated var
* perf: remove Dayjs from getLuckyUser
* Refactor getHostsWithCalibration for optimised performance, intentionally break test as findMany is always an array
* Better mock for host.findMany
* Remove team-event-types.test.ts, move to appropriate package
* TypeScript cannot auto-infer that an array is non-empty when assigning to a var
* fix: Type Fixes and DistributionMethod enum add
* Optimise tests
* Added test to show that bookings made before a newHost was added affect the lucky user result
* Throw error when the usersWithHighestPriority is empty, which should never happen
---------
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
* Add fallback
* Support attribute query fallback
* Refactor
* Add tests and cleanup SingleFofrm
* small text fixes
* With fallback in picture, we dont throw error in preview now instead we capture errors and show them gracefully
* Get attribute logic preview working without saving Fixes CAL-4582
* Abstract useRoutes out
* Update e2e
* Dont define Page component again and again
---------
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
* POC working with no TS error
* cleanup
* Fix query booking
* Simplify things
* Support rerouting to different event
* self-review fixes
* Some improvements
* add more tests
* Remove members relation query
* Udits feedback
* Dont show CTAs when non-eventTypeRedirectUrl action route is chosen
---------
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
* moved listSchedules to schedule repository
* Create EventAvailabilityTabPlatformWrapper.tsx
* Revert "moved listSchedules to schedule repository"
This reverts commit b5feacfabbadbf9d75eb205dfad8f70b7773a5cb.
* fix: active state of tabs items
* added event availability platform wrapper
* Update event-types.tsx
* better types
only pick the types we need and omit the rest
* fix: type-check failing
---------
Co-authored-by: Morgan Vernay <morgan@cal.com>
Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com>
* add feature to change host schedule
* update for type-check:ci
* Update SingleForm.tsx for linterr
* update as per design review
* update for rerendering
* migration files
* On Delete set null for schedule
if schedule is deleted, no need to delete the host
* updated schema
* added testcases
* checking permissions before
* updated for comments
* update for initial value
* updated and cleanup
* set initial value
* update after merge
* updated nit style
* update for console warning and added comments
* nit/chore
* chore
* update for typechecks
* update for scheduleId param after merge
* update after merge or new changes in metadata.config
* update after weights functionality
* updated description text and column name as per review suggestion
* resolved merge conflicts
* fix typecheck due to changes in getScheduleSchema
* update after merge having refactor
* update refactored EventTypeWebWrapper after merge
* updated props
* updated trpc err code and added log
* update due to refactor in EventAvailabilityTab
* perf: Optimise TS type + select only the data that's needed for a specific function
---------
Co-authored-by: Amit Sharma <74371312+Amit91848@users.noreply.github.com>
Co-authored-by: Syed Ali Shahbaz <52925846+alishaz-polymath@users.noreply.github.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
* Remove use of location from FormBuilder
* Add tests
* FormBuilderField and BookingFields tests
* More tests
* Remove always true if condition
* Fix ui import mockig that got broken after the last merge
* Add handlePaste function and integrate it with options fields
* Prevents function running if user does not paste a list, allows list items to be pasted without deleting following items
* Subs useState for rhf useWatch to fix issues with multiple form fields
* Sets options array as optional property in zod schema
* Assigns default value to options array to fix possibly undefined type errors
* Sets placedholder property as optional
* maps selectText to options on mount
* Removes comma & semicolon delimiting for pasted lists (new line only) & defines regex as a constant
* Sets default value of placeholder to empty string, provides default fallback for component text field if placeholder is omitted.
* Fix type error on placeholder
* Extracts handlePaste to service function & tests thoroughly
* Some improvements and tests arent needed
* More fixes
* Fix reporting as well
* TS fixes
* Do transforms to and fro from label
* Add unit tests
* Unit test reporting
* Test Improvements
* Self review feedback addressed
---------
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
Co-authored-by: Anik Dhabal Babu <81948346+anikdhabal@users.noreply.github.com>
* feat:add prefilcheck check box in the field creation
* chore:formatted the li8 translations
* feat:add e2e test case for this feature
* refactor:reanmed the key from prefilledCheck to disableOnPrefill and moved the readOnly logic to formbuilderField
* chore:fixed the type check
* fix:if prefilled has error. do not disabble it
* chore:removed the e2e tests for prefill in e2e
* chore:revert back to old changes
* chore:remove unwanted code frome2e
* Support name field as well
* refactor:handled the feedback changes. still unit test cases pending
* feat: add unit tests for disable field on prefill logic
* chore: resolved the type check and typos
* chore:renamed the files and type clean up
* Apply suggestions from code review
* chore:renaming test files and moving the disableonprefill hook to formbuilderFeild.
* refactor: add unit test for serach params and form values check and minor code formatting and file name changes
* fix: validating the input value partially at the intialising phase. so that form response values and from ui values are same and making sure invalid data not sent to backend on submit.
* chore:fix the type check issue
* fix: field value valdiation at initilisation and add the unit test cases for that change
* chore:add comments to the tests
* chore:resolve type check
* chore: moved the tests to the formBuilder
* Simplify codebase by ensuring select and multiselect changes the value when no option is found
* Relocate and refactor tests
* handle special cases
* Dont disable for dirty fields
* Update schema.prisma
---------
Co-authored-by: Anik Dhabal Babu <81948346+anikdhabal@users.noreply.github.com>
Co-authored-by: Hariom <hariombalhara@gmail.com>
* WIP
* add frontend
* backend to update weight
* UI improvements
* WIP weight algorithm
* enable weights switch + algorithm improvements
* fix weightDescription
* clean up code
* remove OOOEntryHost from schema.prisma
* implement logic (not yet tested)
* add tests for weight algorithm
* add test with weight adjustment
* finish unit tests
* fix type error
* fix type error
* add migration
* fix type error
* fix event type update handler
* fix failing test
* UI fixes for saving hosts
* make sure weightAdjustment is not lost on host changes
* fix weightadjustment for new hosts
* add weightAdjustment to availableUsers
* fix type errors
* fix default value for weight
* make weight and weightAdjustment optional
* fix type errors from schema changes
* type fix
* clean up code
* improve comments
* remove comment
* clean up code
* add tests & weight adjustment improvments
* better variable naming
* fixes for weight adjustments
* make weightAdjustments proportional to weights
* fix previous host weight adjustments
* improved tests for weight adjustments
* save weight and priority + sort hosts correctly
* fix type error
* code clean up
* remove console.log
* use BookingRepository to fetch bookings of users
* use BookingRepository to fetch bookings in getLuckyUser
* fix type errors
* fix weightAdjustment if changed from fixed to rr host
* disable weights when 'assign all' is enabled
* typo
* allow 0 weight
* set min (and max) for weight and priority
* use useWatch
* code clean up
* fix type error
* only count accepted bookings for RR
* fix type error
* improve data fetching of bookings
* only filter bookings of availableUsers
* code clean up form feedback
* fix tests
* don't count no show bookings
* code clean up
* choose user with highest weight
* use one reduce instead of two
* use reduce instead of filter and map
* don't show weights toggle when 'assign all' is enabled
* design fixes
* fix type errors
* fix: type check
* Update packages/features/eventtypes/components/AddMembersWithSwitch.tsx
---------
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
* fix: [CAL-3374] Says Number is not Verified, but it is Verified
* clearing error only when verified
* type-checks fixed
* chore: improvement
---------
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
Co-authored-by: Udit Takkar <udit222001@gmail.com>
* Add UI to select members to receive emails in routing form
* Add backend changes to support frontend to select team members to get routing form updates to
* Fix type error
* Fix all the members of all the teams the user is part of shown instead of only the current team where the routing form is created
* Fix type error
* Refactor components to a shared folder
* fix type error
* Fix review comment: only include emails
* Remove listMembers trpc call in frontend and get the data in formQuery.handler
* Address review comments
* Remove unrelated changes
* Update SingleForm.tsx
---------
Co-authored-by: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com>
Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
* open reporting in new tab full screen
* nit
* fixed type
* Fix failing test
* Update packages/app-store/routing-forms/pages/reporting/[...appPages].tsx
---------
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
Co-authored-by: Hariom <hariombalhara@gmail.com>