Scheduler - Remove legacy AppointmentPopup and AppointmentForm#33108
Conversation
There was a problem hiding this comment.
Pull request overview
This PR removes the Scheduler’s legacy appointment popup/form implementation (including the editing.legacyForm switch) and updates unit/e2e tests, test models, and theme styles to rely solely on the current appointment popup/form.
Changes:
- Removed legacy popup/form code paths and related internal utilities/types.
- Updated QUnit/Jest/TestCafe coverage to use the current appointment popup/form editor names and expected payloads.
- Removed legacy popup/form theme styles and legacy e2e artifacts.
Reviewed changes
Copilot reviewed 49 out of 68 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| packages/testcafe-models/scheduler/index.ts | Removes legacyAppointmentPopup model wiring from Scheduler TestCafe POM. |
| packages/testcafe-models/scheduler/appointment/legacyPopup.ts | Deletes legacy appointment popup TestCafe model. |
| packages/devextreme/testing/tests/DevExpress.ui.widgets.scheduler/timezones.tests.js | Drops legacy-form-specific scenarios and updates editor lookups/expected update payloads. |
| packages/devextreme/testing/tests/DevExpress.ui.widgets.scheduler/legacyAppointmentPopup.tests.js | Deletes legacy appointment popup QUnit test suite. |
| packages/devextreme/testing/tests/DevExpress.ui.widgets.scheduler/integration.resources.tests.js | Removes legacy-form-only resource editor expectations; keeps coverage for current form. |
| packages/devextreme/testing/tests/DevExpress.ui.widgets.scheduler/integration.recurringAppointments.tests.js | Updates popup editor targeting and expected appointment payload shape. |
| packages/devextreme/testing/tests/DevExpress.ui.widgets.scheduler/integration.base.tests.js | Removes legacy-form-specific assertion about form options. |
| packages/devextreme/testing/tests/DevExpress.ui.widgets.scheduler/integration.appointmentTooltip.tests.js | Removes assertion tied to legacy popup config argument shape. |
| packages/devextreme/testing/tests/DevExpress.ui.widgets.scheduler/integration.appointmentCollector.tests.js | Updates appointment form editor access to current editor names. |
| packages/devextreme/testing/tests/DevExpress.ui.widgets.scheduler/integration.agenda.tests.js | Removes legacy-form-only data assertions. |
| packages/devextreme/testing/tests/DevExpress.ui.widgets.scheduler/integration.adaptivity.tests.js | Updates behavior expectations for current popup sizing/toolbar layout and removes legacy-only cases. |
| packages/devextreme/testing/tests/DevExpress.ui.widgets.scheduler/editing.tests.js | Removes legacy-form-specific readOnly propagation tests. |
| packages/devextreme/testing/tests/DevExpress.ui.widgets.scheduler/common.options.tests.js | Removes legacyForm from expected default editing options. |
| packages/devextreme/testing/tests/DevExpress.ui.widgets.scheduler/common.events.tests.js | Removes legacy-form-specific onAppointmentFormOpening event test. |
| packages/devextreme/testing/tests/DevExpress.ui.widgets.scheduler/appointment.week.based.views.tests.js | Removes legacy-form-only details-view expectations. |
| packages/devextreme/testing/tests/DevExpress.ui.widgets.scheduler/appointment.monthView.tests.js | Removes legacy-form-only recurrence popup correctness tests/imports. |
| packages/devextreme/testing/tests/DevExpress.ui.widgets.scheduler/appointment.editing.tests.js | Removes legacy recurrence-update test and updates popup selector/expected update payload. |
| packages/devextreme/testing/helpers/scheduler/helpers.js | Updates scheduler test wrapper to only target the current appointment popup and editor names. |
| packages/devextreme/js/__internal/scheduler/utils/resource_manager/popup_utils.ts | Deletes legacy-form resource editor model helper. |
| packages/devextreme/js/__internal/scheduler/utils/resource_manager/popup_utils.test.ts | Deletes tests for removed legacy resource editor model helper. |
| packages/devextreme/js/__internal/scheduler/utils/options/types.ts | Removes editing type union that allowed legacyForm. |
| packages/devextreme/js/__internal/scheduler/utils/options/constants.ts | Removes legacyForm from default internal editing options. |
| packages/devextreme/js/__internal/scheduler/m_scheduler.ts | Removes legacy popup/form imports and branching; updates debug accessor to return the current form instance. |
| packages/devextreme/js/__internal/scheduler/appointment_popup/m_legacy_popup.ts | Deletes legacy appointment popup implementation. |
| packages/devextreme/js/__internal/scheduler/appointment_popup/m_legacy_form.ts | Deletes legacy appointment form implementation. |
| packages/devextreme/js/__internal/scheduler/appointment_popup/m_form.ts | Ensures current form module includes required editor component imports (switch/selectbox/etc.). |
| packages/devextreme/js/__internal/scheduler/tests/legacy_form.test.ts | Deletes Jest tests for removed editing.legacyForm option. |
| packages/devextreme/js/__internal/scheduler/tests/mock/create_appointment_popup.ts | Removes legacyForm from the default editing mock. |
| packages/devextreme-scss/scss/widgets/material/scheduler/_index.scss | Removes legacy popup-specific styling. |
| packages/devextreme-scss/scss/widgets/material/scheduler/_colors.scss | Removes legacy popup color variable. |
| packages/devextreme-scss/scss/widgets/generic/scheduler/_index.scss | Removes legacy popup-specific styling. |
| packages/devextreme-scss/scss/widgets/generic/scheduler/_colors.scss | Removes legacy popup color/separator variables. |
| packages/devextreme-scss/scss/widgets/fluent/scheduler/_index.scss | Removes legacy popup-specific styling. |
| packages/devextreme-scss/scss/widgets/fluent/scheduler/_colors.scss | Removes legacy popup color variable. |
| packages/devextreme-scss/scss/widgets/base/scheduler/_index.scss | Removes legacy popup-specific layout constants/styles. |
| packages/devextreme-scss/scss/widgets/base/scheduler/_common.scss | Removes legacy popup content padding rules. |
| e2e/testcafe-devextreme/tests/scheduler/common/legacyAppointmentForm/timezoneEditors.ts | Deletes legacy appointment form timezone editor e2e coverage. |
| e2e/testcafe-devextreme/tests/scheduler/common/legacyAppointmentForm/showAppointmentPopup.ts | Deletes legacy appointment form showAppointmentPopup e2e coverage. |
| e2e/testcafe-devextreme/tests/scheduler/common/legacyAppointmentForm/recurrenceEditor.ts | Deletes legacy recurrence editor e2e coverage. |
| e2e/testcafe-devextreme/tests/scheduler/common/legacyAppointmentForm/expressions.ts | Deletes legacy form expression-mapping e2e coverage. |
| e2e/testcafe-devextreme/tests/scheduler/common/legacyAppointmentForm/dataEditors.ts | Deletes legacy date editor masking e2e coverage. |
| e2e/testcafe-devextreme/tests/scheduler/common/legacyAppointmentForm/appointmentPopupErrors.ts | Deletes legacy popup console-error e2e coverage. |
| e2e/testcafe-devextreme/tests/scheduler/common/legacyAppointmentForm.ts | Deletes legacy appointment form e2e suite. |
| e2e/testcafe-devextreme/tests/scheduler/common/layout/legacyAppointmentForm/mobileEnvironment.ts | Deletes legacy layout screenshot e2e coverage. |
| e2e/testcafe-devextreme/tests/scheduler/common/layout/legacyAppointmentForm/integerFormatNumberBox.ts | Deletes legacy numberbox screenshot e2e coverage. |
| e2e/testcafe-devextreme/tests/scheduler/common/layout/legacyAppointmentForm/common.ts | Deletes legacy layout screenshot e2e coverage. |
| e2e/testcafe-devextreme/tests/scheduler/common/layout/legacyAppointmentForm/allDay.ts | Deletes legacy all-day layout screenshot e2e coverage. |
| e2e/testcafe-devextreme/tests/scheduler/common/appointments/legacyEditing.ts | Deletes legacy editing e2e coverage. |
| e2e/testcafe-devextreme/tests/accessibility/scheduler/legacyPopup.ts | Deletes legacy popup accessibility e2e coverage. |
| e2e/testcafe-devextreme/tests/scheduler/common/legacyAppointmentForm/etalons/*.png | Removes legacy appointment form visual baseline images. |
| e2e/testcafe-devextreme/tests/scheduler/common/layout/legacyAppointmentForm/etalons/*.png | Removes legacy appointment form visual baseline images. |
| import '../m_recurrence_editor'; | ||
| import '@js/ui/text_area'; | ||
| import '@js/ui/tag_box'; | ||
| import '@js/ui/switch'; | ||
| import '@js/ui/select_box'; |
There was a problem hiding this comment.
These are side-effect imports that register widgets (dxTextArea, dxTagBox, dxSwitch, dxSelectBox, dxRecurrenceEditor) in the component registry. The form creates them by editorType name, so without these imports they won't be available at runtime.
Previously they were imported in the legacy form — now that it's removed, they moved here.
| editing: { | ||
| legacyForm: true | ||
| }, | ||
| maxAppointmentsPerCell: 2 |
There was a problem hiding this comment.
The editing option is currently set to an empty object. This is a no-op and can trigger lint/style issues; remove the editing property entirely (or set the specific editing flags needed for the scenario).
| export { DxPopupComponent, DxPopupModule } from 'devextreme-angular/ui/popup'; | ||
| export { DxProgressBarComponent, DxProgressBarModule } from 'devextreme-angular/ui/progress-bar'; | ||
| export { DxRadioGroupComponent, DxRadioGroupModule } from 'devextreme-angular/ui/radio-group'; | ||
| export { DxRangeSelectorComponent, DxRangeSelectorModule } from 'devextreme-angular/ui/range-selector'; | ||
| export { DxRangeSliderComponent, DxRangeSliderModule } from 'devextreme-angular/ui/range-slider'; |
There was a problem hiding this comment.
The Recurrence Editor Angular wrapper is removed in this PR, but Angular SSR tests still list recurrence-editor as a component to render (see packages/devextreme-angular/tests/src/server/component-names.ts). Update that list (and any similar test registries) to remove recurrence-editor, otherwise SSR component rendering tests will fail due to an unknown component.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 62 out of 85 changed files in this pull request and generated 1 comment.
Comments suppressed due to low confidence (1)
packages/devextreme-angular/src/index.ts:91
packages/devextreme-angular/src/index.tsno longer exports the previousCommonnamespace surface (and many type/value re-exports) and instead switches toexport * as Common from './common/index'. This is a significant public API change and appears unrelated to the PR’s stated Scheduler/AppointmentPopup cleanup; please confirm this is intentional and either preserve backward compatibility (keep the previous namespace exports) or move this change to a dedicated PR with release notes/breaking-change handling.
…gacy-popup # Conflicts: # packages/devextreme/js/__internal/scheduler/appointment_popup/m_legacy_popup.ts # packages/devextreme/js/__internal/scheduler/m_scheduler.ts # packages/devextreme/js/__internal/scheduler/utils/options/types.ts # packages/devextreme/testing/tests/DevExpress.ui.widgets.scheduler/integration.appointmentTooltip.tests.js
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 62 out of 85 changed files in this pull request and generated no new comments.
Comments suppressed due to low confidence (2)
packages/devextreme/testing/tests/DevExpress.ui.widgets.scheduler/integration.resources.tests.js:132
- Several QUnit tests covering resource editors in the appointment form (value types, passing resource editors to the details view, and avoiding extra resource reloads when opening the popup) were removed. Since resources are still editable via the current appointment popup/form, consider adding equivalent coverage for the non-legacy form to prevent regressions in resource editor values and resource store loading behavior.
packages/devextreme/testing/tests/DevExpress.ui.widgets.scheduler/timezones.tests.js:103 - The test block that validated appointment rendering/positioning and the appointment popup’s start/end date editor values when startDateTimeZone/endDateTimeZone are set (including differing time zones) was removed. The remaining tests in this module no longer assert the popup’s displayed dates under time zone conversions, so please add equivalent coverage for the current appointment popup/form to avoid regressions.
…press#33108) # Conflicts: # e2e/testcafe-devextreme/tests/accessibility/scheduler/legacyPopup.ts # packages/devextreme-angular/src/ui/recurrence-editor/index.ts # packages/devextreme-scss/scss/widgets/base/scheduler/_common.scss # packages/devextreme-scss/scss/widgets/fluent/scheduler/_colors.scss # packages/devextreme-scss/scss/widgets/generic/scheduler/_index.scss # packages/devextreme-scss/scss/widgets/material/scheduler/_colors.scss # packages/devextreme/js/ui/recurrence_editor.d.ts
No description provided.