Skip to content

Scheduler - Remove legacy AppointmentPopup and AppointmentForm#33108

Merged
aleksei-semikozov merged 34 commits into
DevExpress:26_1from
aleksei-semikozov:scheduler-remove-legacy-popup
Apr 3, 2026
Merged

Scheduler - Remove legacy AppointmentPopup and AppointmentForm#33108
aleksei-semikozov merged 34 commits into
DevExpress:26_1from
aleksei-semikozov:scheduler-remove-legacy-popup

Conversation

@aleksei-semikozov
Copy link
Copy Markdown
Contributor

No description provided.

@aleksei-semikozov aleksei-semikozov marked this pull request as ready for review April 2, 2026 09:39
@aleksei-semikozov aleksei-semikozov requested a review from a team as a code owner April 2, 2026 09:39
Copilot AI review requested due to automatic review settings April 2, 2026 09:39
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread packages/devextreme/testing/helpers/scheduler/helpers.js
Comment on lines +1 to +5
import '../m_recurrence_editor';
import '@js/ui/text_area';
import '@js/ui/tag_box';
import '@js/ui/switch';
import '@js/ui/select_box';
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why we need this imports?

Copy link
Copy Markdown
Contributor Author

@aleksei-semikozov aleksei-semikozov Apr 2, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Got it, thank you!

Comment thread packages/devextreme/js/__internal/scheduler/appointment_popup/m_form.ts Outdated
Comment thread packages/devextreme/js/__internal/scheduler/m_scheduler.ts Outdated
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 61 out of 84 changed files in this pull request and generated 2 comments.

Comment on lines 66 to 68
editing: {
legacyForm: true
},
maxAppointmentsPerCell: 2
Copy link

Copilot AI Apr 2, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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).

Copilot uses AI. Check for mistakes.
Comment on lines 55 to 59
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';
Copy link

Copilot AI Apr 2, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copilot uses AI. Check for mistakes.
Copilot AI review requested due to automatic review settings April 2, 2026 21:11
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.ts no longer exports the previous Common namespace surface (and many type/value re-exports) and instead switches to export * 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.

Comment thread packages/devextreme-angular/project.json
Copilot AI review requested due to automatic review settings April 2, 2026 21:29
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 61 out of 84 changed files in this pull request and generated 1 comment.

…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
Copilot AI review requested due to automatic review settings April 3, 2026 08:50
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@aleksei-semikozov aleksei-semikozov merged commit a165032 into DevExpress:26_1 Apr 3, 2026
106 checks passed
aleksei-semikozov added a commit to aleksei-semikozov/DevExtreme that referenced this pull request Apr 3, 2026
…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
aleksei-semikozov added a commit to aleksei-semikozov/DevExtreme that referenced this pull request Apr 3, 2026
aleksei-semikozov added a commit to aleksei-semikozov/DevExtreme that referenced this pull request Apr 3, 2026
aleksei-semikozov added a commit to aleksei-semikozov/DevExtreme that referenced this pull request Apr 3, 2026
@aleksei-semikozov aleksei-semikozov deleted the scheduler-remove-legacy-popup branch April 16, 2026 18:22
sjbur pushed a commit to sjbur/DevExtreme that referenced this pull request May 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants