From cfbc8a0faa3527eb8388baab18a3c110111fac97 Mon Sep 17 00:00:00 2001 From: Eldar Iusupzhanov Date: Mon, 2 Feb 2026 15:59:26 +0800 Subject: [PATCH 01/19] unskip tests --- apps/demos/utils/visual-tests/matrix-test-helper.ts | 4 ---- 1 file changed, 4 deletions(-) diff --git a/apps/demos/utils/visual-tests/matrix-test-helper.ts b/apps/demos/utils/visual-tests/matrix-test-helper.ts index b6e92f28fe02..96ba9a81a36c 100644 --- a/apps/demos/utils/visual-tests/matrix-test-helper.ts +++ b/apps/demos/utils/visual-tests/matrix-test-helper.ts @@ -210,19 +210,15 @@ const SKIPPED_TESTS = { Angular: { Common: ['PopupAndNotificationsOverview'], DataGrid: ['BatchUpdateRequest', 'EditStateManagement', 'RemoteGrouping'], - Scheduler: ['ContextMenu'], FileUploader: ['CustomDropzone'], }, Vue: { Common: ['PopupAndNotificationsOverview'], - // NOTE: Context menu item position is different across themes - Scheduler: ['ContextMenu'], DataGrid: ['BatchUpdateRequest', 'EditStateManagement', 'RemoteGrouping'], FileUploader: ['CustomDropzone'], }, React: { Common: ['PopupAndNotificationsOverview'], - Scheduler: ['ContextMenu'], DataGrid: ['BatchUpdateRequest', 'EditStateManagement', 'RemoteGrouping'], FileUploader: ['CustomDropzone'], }, From fb06cd74eb870571804bb6f1076597fe0dee0b26 Mon Sep 17 00:00:00 2001 From: Eldar Iusupzhanov Date: Mon, 2 Feb 2026 16:35:20 +0800 Subject: [PATCH 02/19] fix icon bg in angular --- .../Demos/Scheduler/ContextMenu/Angular/app/app.component.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/demos/Demos/Scheduler/ContextMenu/Angular/app/app.component.html b/apps/demos/Demos/Scheduler/ContextMenu/Angular/app/app.component.html index 93cbf6453a15..c3a64acefd69 100644 --- a/apps/demos/Demos/Scheduler/ContextMenu/Angular/app/app.component.html +++ b/apps/demos/Demos/Scheduler/ContextMenu/Angular/app/app.component.html @@ -28,7 +28,7 @@ >
@if(e.color) { -
+
}
{{ e.text }}
From b6dfff41d6f839d314ab185148328bdf8fa51189 Mon Sep 17 00:00:00 2001 From: Eldar Iusupzhanov Date: Mon, 2 Feb 2026 18:17:54 +0800 Subject: [PATCH 03/19] make itemTemplate in jquery consistent & rename react itemTemplate --- .../Demos/Scheduler/ContextMenu/React/App.tsx | 4 +-- ...pointmentTemplate.tsx => itemTemplate.tsx} | 6 ++-- .../Scheduler/ContextMenu/jQuery/index.js | 32 +++++------------- ...extMenu_cell_click (fluent.blue.light).png | Bin 93276 -> 93276 bytes 4 files changed, 14 insertions(+), 28 deletions(-) rename apps/demos/Demos/Scheduler/ContextMenu/React/{AppointmentTemplate.tsx => itemTemplate.tsx} (59%) diff --git a/apps/demos/Demos/Scheduler/ContextMenu/React/App.tsx b/apps/demos/Demos/Scheduler/ContextMenu/React/App.tsx index eaa9085a94db..e20ff98fa146 100644 --- a/apps/demos/Demos/Scheduler/ContextMenu/React/App.tsx +++ b/apps/demos/Demos/Scheduler/ContextMenu/React/App.tsx @@ -5,7 +5,7 @@ import type { SchedulerTypes, SchedulerRef } from 'devextreme-react/scheduler'; import { ContextMenu } from 'devextreme-react/context-menu'; import type { ContextMenuTypes } from 'devextreme-react/context-menu'; -import AppointmentMenuTemplate from './AppointmentTemplate.tsx'; +import ItemTemplate from './itemTemplate.tsx'; import { data, resourcesData } from './data.ts'; import type { ContextMenuItem } from './types'; @@ -142,7 +142,7 @@ const App = () => { target={target} disabled={disabled} onItemClick={onContextMenuItemClick} - itemComponent={AppointmentMenuTemplate} + itemComponent={ItemTemplate} /> ); diff --git a/apps/demos/Demos/Scheduler/ContextMenu/React/AppointmentTemplate.tsx b/apps/demos/Demos/Scheduler/ContextMenu/React/itemTemplate.tsx similarity index 59% rename from apps/demos/Demos/Scheduler/ContextMenu/React/AppointmentTemplate.tsx rename to apps/demos/Demos/Scheduler/ContextMenu/React/itemTemplate.tsx index f4278dc0da98..ce704b4a2f01 100644 --- a/apps/demos/Demos/Scheduler/ContextMenu/React/AppointmentTemplate.tsx +++ b/apps/demos/Demos/Scheduler/ContextMenu/React/itemTemplate.tsx @@ -1,17 +1,17 @@ import React from 'react'; -type AppointmentMenuTemplateProps = { +type ItemTemplateProps = { data: { color: string; text: string; } }; -const AppointmentMenuTemplate = (props: AppointmentMenuTemplateProps) => ( +const ItemTemplate = (props: ItemTemplateProps) => (
{props.data.color &&
} {props.data.text}
); -export default AppointmentMenuTemplate; +export default ItemTemplate; diff --git a/apps/demos/Demos/Scheduler/ContextMenu/jQuery/index.js b/apps/demos/Demos/Scheduler/ContextMenu/jQuery/index.js index 0894b9a450ca..c3a4e378b97c 100644 --- a/apps/demos/Demos/Scheduler/ContextMenu/jQuery/index.js +++ b/apps/demos/Demos/Scheduler/ContextMenu/jQuery/index.js @@ -11,16 +11,10 @@ $(() => { startDayHour: 9, recurrenceEditMode: 'series', onAppointmentContextMenu(e) { - updateContextMenu( - false, - appointmentContextMenuItems, - appointmentClassName, - itemTemplate, - onItemClick(e), - ); + updateContextMenu(false, appointmentContextMenuItems, appointmentClassName, e); }, onCellContextMenu(e) { - updateContextMenu(false, cellContextMenuItems, cellClassName, 'item', onItemClick(e)); + updateContextMenu(false, cellContextMenuItems, cellClassName, e); }, resources: [{ fieldExpr: 'roomId', @@ -36,28 +30,20 @@ $(() => { dataSource: [], disabled: true, target: appointmentClassName, + itemTemplate, }).dxContextMenu('instance'); - const updateContextMenu = function (disable, dataSource, target, itemTemplate, onItemClick) { + const updateContextMenu = function (disable, dataSource, target, contextMenuEvent) { contextMenuInstance.option({ dataSource, target, - itemTemplate, - onItemClick, + onItemClick: (e) => { + e.itemData.onItemClick(contextMenuEvent); + }, disabled: disable, }); }; - const itemTemplate = function (itemData) { - return getAppointmentMenuTemplate(itemData); - }; - - const onItemClick = function (contextMenuEvent) { - return (e) => { - e.itemData.onItemClick(contextMenuEvent, e); - }; - }; - const createAppointment = function (e) { e.component.showAppointmentPopup({ startDate: e.cellData.startDateUTC, @@ -130,7 +116,7 @@ $(() => { appointmentContextMenuItems = $.merge(appointmentContextMenuItems, resourcesData); - const getAppointmentMenuTemplate = function (itemData) { + function itemTemplate(itemData) { const template = $('
'); if (itemData.color) { @@ -141,5 +127,5 @@ $(() => { } template.append(itemData.text); return template; - }; + } }); diff --git a/apps/demos/testing/widgets/scheduler/etalons/scheduler_contextMenu_cell_click (fluent.blue.light).png b/apps/demos/testing/widgets/scheduler/etalons/scheduler_contextMenu_cell_click (fluent.blue.light).png index af445645f9f5823e62d714c34b6aeecf66000623..2cd3fcfa72263ee7147fbbc4a7107a4f559304ed 100644 GIT binary patch delta 67547 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®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 Jm7GP${{mwln#}+J delta 67472 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%0A%BQtoL`t^GEVyi|-$%!F9@8&2|7Kxj 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 Cf$Nh1 From 2d2031fcd5f4142d6a30e0b1afa6262ef768be2d Mon Sep 17 00:00:00 2001 From: Eldar Iusupzhanov Date: Tue, 3 Feb 2026 14:44:13 +0800 Subject: [PATCH 04/19] fix double contextMenu event call --- .../__internal/scheduler/workspaces/m_work_space.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/devextreme/js/__internal/scheduler/workspaces/m_work_space.ts b/packages/devextreme/js/__internal/scheduler/workspaces/m_work_space.ts index 6105e50b0732..7fe075ad25a3 100644 --- a/packages/devextreme/js/__internal/scheduler/workspaces/m_work_space.ts +++ b/packages/devextreme/js/__internal/scheduler/workspaces/m_work_space.ts @@ -1058,12 +1058,15 @@ class SchedulerWorkSpace extends Widget { _attachContextMenuEvent() { this._createContextMenuAction(); - const cellSelector = `.${DATE_TABLE_CELL_CLASS},.${ALL_DAY_TABLE_CELL_CLASS}`; - const $element = this.$element(); const eventName = addNamespace(contextMenuEventName, this.NAME); - eventsEngine.off($element, eventName, cellSelector); - eventsEngine.on($element, eventName, cellSelector, this._contextMenuHandler.bind(this)); + const dateCellSelector = `.${DATE_TABLE_CELL_CLASS}`; + eventsEngine.off(this._$dateTable, eventName, dateCellSelector); + eventsEngine.on(this._$dateTable, eventName, dateCellSelector, this._contextMenuHandler.bind(this)); + + const dayCellSelector = `.${ALL_DAY_TABLE_CELL_CLASS}`; + eventsEngine.off(this._$allDayTable, eventName, dayCellSelector); + eventsEngine.on(this._$allDayTable, eventName, dayCellSelector, this._contextMenuHandler.bind(this)); } _contextMenuHandler(e) { From 487ad867d2287a7d2726824c963f94e93f0605fc Mon Sep 17 00:00:00 2001 From: Eldar Iusupzhanov Date: Tue, 3 Feb 2026 15:07:21 +0800 Subject: [PATCH 05/19] implement test for contextmenu --- .../scheduler/__tests__/scheduler.test.ts | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/packages/devextreme/js/__internal/scheduler/__tests__/scheduler.test.ts b/packages/devextreme/js/__internal/scheduler/__tests__/scheduler.test.ts index 0faa6eda1f08..47aadc7688c1 100644 --- a/packages/devextreme/js/__internal/scheduler/__tests__/scheduler.test.ts +++ b/packages/devextreme/js/__internal/scheduler/__tests__/scheduler.test.ts @@ -60,3 +60,31 @@ describe('Scheduler scrollTo deprecation', () => { expect(loggerWarnSpy).toHaveBeenCalledTimes(0); }); }); + +describe('Scheduler onAppointmentContextMenu', () => { + it('should be called only once', async () => { + setupSchedulerTestEnvironment(); + + const onAppointmentContextMenu = jest.fn(); + + const { POM } = await createScheduler({ + dataSource: [{ + text: 'Meeting', + startDate: new Date(2025, 0, 15, 9, 0), + endDate: new Date(2025, 0, 15, 10, 0), + }], + views: ['week'], + currentView: 'week', + currentDate: new Date(2025, 0, 15), + startDayHour: 8, + endDayHour: 18, + onAppointmentContextMenu, + }); + + const appointmentElement = POM.getAppointment('Meeting').element as HTMLElement; + + appointmentElement.dispatchEvent(new MouseEvent('contextmenu', { bubbles: true, cancelable: true })); + + expect(onAppointmentContextMenu).toHaveBeenCalledTimes(1); + }); +}); From 54bc3510be2a2872dbc6fc008fdc2249bf0c1c22 Mon Sep 17 00:00:00 2001 From: Eldar Iusupzhanov Date: Tue, 3 Feb 2026 15:10:19 +0800 Subject: [PATCH 06/19] convert react demo to js --- apps/demos/Demos/Scheduler/ContextMenu/ReactJs/App.js | 4 ++-- .../ReactJs/{AppointmentTemplate.js => itemTemplate.js} | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) rename apps/demos/Demos/Scheduler/ContextMenu/ReactJs/{AppointmentTemplate.js => itemTemplate.js} (71%) diff --git a/apps/demos/Demos/Scheduler/ContextMenu/ReactJs/App.js b/apps/demos/Demos/Scheduler/ContextMenu/ReactJs/App.js index 2052f22053ec..929ff0ac916d 100644 --- a/apps/demos/Demos/Scheduler/ContextMenu/ReactJs/App.js +++ b/apps/demos/Demos/Scheduler/ContextMenu/ReactJs/App.js @@ -1,7 +1,7 @@ import React, { useCallback, useRef, useState } from 'react'; import { Scheduler, Resource } from 'devextreme-react/scheduler'; import { ContextMenu } from 'devextreme-react/context-menu'; -import AppointmentMenuTemplate from './AppointmentTemplate.js'; +import ItemTemplate from './itemTemplate.js'; import { data, resourcesData } from './data.js'; const views = ['day', 'month']; @@ -132,7 +132,7 @@ const App = () => { target={target} disabled={disabled} onItemClick={onContextMenuItemClick} - itemComponent={AppointmentMenuTemplate} + itemComponent={ItemTemplate} /> ); diff --git a/apps/demos/Demos/Scheduler/ContextMenu/ReactJs/AppointmentTemplate.js b/apps/demos/Demos/Scheduler/ContextMenu/ReactJs/itemTemplate.js similarity index 71% rename from apps/demos/Demos/Scheduler/ContextMenu/ReactJs/AppointmentTemplate.js rename to apps/demos/Demos/Scheduler/ContextMenu/ReactJs/itemTemplate.js index ff6707af3299..31eaeb9417d8 100644 --- a/apps/demos/Demos/Scheduler/ContextMenu/ReactJs/AppointmentTemplate.js +++ b/apps/demos/Demos/Scheduler/ContextMenu/ReactJs/itemTemplate.js @@ -1,6 +1,6 @@ import React from 'react'; -const AppointmentMenuTemplate = (props) => ( +const ItemTemplate = (props) => (
{props.data.color && (
( {props.data.text}
); -export default AppointmentMenuTemplate; +export default ItemTemplate; From 1be15fe9e6968c886eb58fbe4daf0b3316741f97 Mon Sep 17 00:00:00 2001 From: Eldar Iusupzhanov Date: Wed, 4 Feb 2026 11:34:55 +0800 Subject: [PATCH 07/19] rewrite jquery and vue demos --- .../Demos/Scheduler/ContextMenu/Vue/App.vue | 160 ++++++++------ .../Scheduler/ContextMenu/jQuery/index.html | 3 +- .../Scheduler/ContextMenu/jQuery/index.js | 200 +++++++++--------- 3 files changed, 198 insertions(+), 165 deletions(-) diff --git a/apps/demos/Demos/Scheduler/ContextMenu/Vue/App.vue b/apps/demos/Demos/Scheduler/ContextMenu/Vue/App.vue index ed78632e61ec..4f658a32aa5b 100644 --- a/apps/demos/Demos/Scheduler/ContextMenu/Vue/App.vue +++ b/apps/demos/Demos/Scheduler/ContextMenu/Vue/App.vue @@ -1,7 +1,29 @@ @@ -46,99 +56,113 @@ import { resourcesData, data } from './data.ts'; import type { ContextMenuItem } from './types'; const views = ['day', 'month']; -const appointmentClassName = '.dx-scheduler-appointment'; -const cellClassName = '.dx-scheduler-date-table-cell'; const currentDate = ref(new Date(2020, 10, 25)); const dataSource = data; -const groups = ref(); +const groups = ref([]); const crossScrollingEnabled = ref(false); -const disabled = ref(true); -const contextMenuItems = ref([]); -const target = ref(appointmentClassName); -const schedulerRef = ref(); +const appointmentContextMenuItems = ref([]); +const cellContextMenuItems = ref([]); + +function onAppointmentContextMenu(e: DxSchedulerTypes.AppointmentContextMenuEvent) { + const items = getAppointmentContextMenuItems(e); + appointmentContextMenuItems.value = items; +} -function onAppointmentContextMenu( - { appointmentData, targetedAppointmentData }: DxSchedulerTypes.AppointmentContextMenuEvent, -) { - const scheduler = schedulerRef.value!.instance!; - const resourceItems = resourcesData.map((item) => ({ - ...item, - onItemClick: ( - { itemData }: DxContextMenuTypes.ItemClickEvent, - ) => scheduler?.updateAppointment(appointmentData, { - ...appointmentData, - ...{ roomId: [itemData?.id] }, - }), - })); - target.value = appointmentClassName; - disabled.value = false; - contextMenuItems.value = [ +function onCellContextMenu(e: DxSchedulerTypes.CellContextMenuEvent) { + const items = getCellContextMenuItems(e); + cellContextMenuItems.value = items; +} + +function onContextMenuItemClick(e: DxContextMenuTypes.ItemClickEvent) { + e.itemData?.onItemClick?.(e); +} + +function getAppointmentContextMenuItems( + e: DxSchedulerTypes.AppointmentContextMenuEvent, +): ContextMenuItem[] { + const scheduler = e.component; + const { appointmentData: appointment, targetedAppointmentData: targetedAppointment } = e; + + return [ { text: 'Open', - onItemClick: () => scheduler.showAppointmentPopup(appointmentData), + onItemClick: () => { scheduler.showAppointmentPopup(appointment); }, }, { text: 'Delete', - onItemClick: () => scheduler.deleteAppointment(appointmentData), + onItemClick: () => { scheduler.deleteAppointment(appointment); }, }, { text: 'Repeat Weekly', beginGroup: true, - onItemClick: () => scheduler.updateAppointment(appointmentData, { - startDate: targetedAppointmentData?.startDate, - recurrenceRule: 'FREQ=WEEKLY', - }), + onItemClick: () => { + scheduler.updateAppointment(appointment, { + ...appointment, + startDate: targetedAppointment.startDate, + recurrenceRule: 'FREQ=WEEKLY', + }); + }, + }, + { + text: 'Set Room', + beginGroup: true, + disabled: true, }, - { text: 'Set Room', beginGroup: true, disabled: true }, - ...resourceItems, + ...resourcesData.map((item) => ({ + ...item, + onItemClick: (clickEvent: DxContextMenuTypes.ItemClickEvent) => { + scheduler.updateAppointment(appointment, { + ...appointment, + roomId: [clickEvent.itemData?.id], + }); + }, + })), ]; } -function onCellContextMenu({ cellData }: DxSchedulerTypes.CellContextMenuEvent) { - const scheduler = schedulerRef.value!.instance!; - target.value = cellClassName; - disabled.value = false; - contextMenuItems.value = [ + +function getCellContextMenuItems( + e: DxSchedulerTypes.CellContextMenuEvent, +): ContextMenuItem[] { + const scheduler = e.component; + + return [ { text: 'New Appointment', - onItemClick: () => scheduler.showAppointmentPopup( - { startDate: cellData.startDateUTC }, - true, - ), + onItemClick: () => { + scheduler.showAppointmentPopup({ + startDate: e.cellData.startDateUTC, + }, true); + }, }, { text: 'New Recurring Appointment', - onItemClick: () => scheduler.showAppointmentPopup( - { - startDate: cellData.startDateUTC, + onItemClick: () => { + scheduler.showAppointmentPopup({ + startDate: e.cellData.startDateUTC, recurrenceRule: 'FREQ=DAILY', - }, - true, - ), + }, true); + }, }, { text: 'Group by Room/Ungroup', beginGroup: true, onItemClick: () => { - if (groups.value) { - crossScrollingEnabled.value = false; - groups.value = undefined; + if (scheduler.option('groups')?.length) { + scheduler.option({ crossScrollingEnabled: false, groups: [] }); } else { - crossScrollingEnabled.value = true; - groups.value = ['roomId']; + scheduler.option({ crossScrollingEnabled: true, groups: ['roomId'] }); } }, }, { text: 'Go to Today', onItemClick: () => { - currentDate.value = new Date(); + scheduler.option('currentDate', new Date()); }, }, ]; } -function onContextMenuItemClick(e: DxContextMenuTypes.ItemClickEvent) { - e.itemData?.onItemClick?.(e); -} + diff --git a/apps/demos/Demos/Scheduler/ContextMenu/jQuery/styles.css b/apps/demos/Demos/Scheduler/ContextMenu/jQuery/styles.css index 7d52d89364e2..41fb881541dd 100644 --- a/apps/demos/Demos/Scheduler/ContextMenu/jQuery/styles.css +++ b/apps/demos/Demos/Scheduler/ContextMenu/jQuery/styles.css @@ -1,13 +1,3 @@ -.dx-menu-item-content span { - margin-right: 5px; -} - -.dx-menu-item-has-submenu .dx-icon-spinright { - position: absolute; - top: 7px; - right: 2px; -} - .item-badge { text-align: center; float: left; From 8dfbf0c1a68f107d91767b2c46527c3a3e4e6d48 Mon Sep 17 00:00:00 2001 From: Eldar Iusupzhanov Date: Wed, 4 Feb 2026 16:17:54 +0800 Subject: [PATCH 13/19] fix angular demo cell context --- .../ContextMenu/Angular/app/app.component.ts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/apps/demos/Demos/Scheduler/ContextMenu/Angular/app/app.component.ts b/apps/demos/Demos/Scheduler/ContextMenu/Angular/app/app.component.ts index 05c42717773d..b3ff7b5e16f7 100644 --- a/apps/demos/Demos/Scheduler/ContextMenu/Angular/app/app.component.ts +++ b/apps/demos/Demos/Scheduler/ContextMenu/Angular/app/app.component.ts @@ -128,6 +128,25 @@ export class AppComponent { true, ), }, + { + text: 'Group by Room/Ungroup', + beginGroup: true, + onItemClick: () => { + if (this.groups.length) { + this.crossScrollingEnabled = false; + this.groups = []; + } else { + this.crossScrollingEnabled = true; + this.groups = ['roomId']; + } + }, + }, + { + text: 'Go to Today', + onItemClick: () => { + this.currentDate = new Date(); + }, + }, ] as unknown as ContextMenuItem[]; } } From cdcf6d164d9e0c6a81383ca43034bafac7ddefe3 Mon Sep 17 00:00:00 2001 From: Eldar Iusupzhanov Date: Wed, 4 Feb 2026 17:33:26 +0800 Subject: [PATCH 14/19] fix tests --- apps/angular/angular.json | 2 +- .../Angular/app/app.component.html | 20 +++++++++++-------- .../Scheduler/ContextMenu/ReactJs/styles.css | 10 ---------- .../ContextMenu/Vue/ItemTemplate.vue | 14 +++++++------ 4 files changed, 21 insertions(+), 25 deletions(-) diff --git a/apps/angular/angular.json b/apps/angular/angular.json index dcefaeb9ccc2..3369e881fa61 100644 --- a/apps/angular/angular.json +++ b/apps/angular/angular.json @@ -23,7 +23,7 @@ "tsConfig": "src/tsconfig.app.json", "styles": [ "node_modules/devextreme/dist/css/dx.common.css", - "node_modules/devextreme/dist/css/dx.light.css" + "node_modules/devextreme/dist/css/dx.fluent.blue.light.css" ], "scripts": [], "browser": "src/main.ts" diff --git a/apps/demos/Demos/Scheduler/ContextMenu/Angular/app/app.component.html b/apps/demos/Demos/Scheduler/ContextMenu/Angular/app/app.component.html index 2cf48da06fbd..b835fa37eeac 100644 --- a/apps/demos/Demos/Scheduler/ContextMenu/Angular/app/app.component.html +++ b/apps/demos/Demos/Scheduler/ContextMenu/Angular/app/app.component.html @@ -5,10 +5,12 @@ [width]="200" >
- @if(e.color) { -
- } -
{{ e.text }}
+
+ @if(e.color) { +
+ } + {{ e.text }} +
- @if(e.color) { -
- } -
{{ e.text }}
+
+ @if(e.color) { +
+ } + {{ e.text }} +
diff --git a/apps/demos/Demos/Scheduler/ContextMenu/ReactJs/styles.css b/apps/demos/Demos/Scheduler/ContextMenu/ReactJs/styles.css index 7d52d89364e2..41fb881541dd 100644 --- a/apps/demos/Demos/Scheduler/ContextMenu/ReactJs/styles.css +++ b/apps/demos/Demos/Scheduler/ContextMenu/ReactJs/styles.css @@ -1,13 +1,3 @@ -.dx-menu-item-content span { - margin-right: 5px; -} - -.dx-menu-item-has-submenu .dx-icon-spinright { - position: absolute; - top: 7px; - right: 2px; -} - .item-badge { text-align: center; float: left; diff --git a/apps/demos/Demos/Scheduler/ContextMenu/Vue/ItemTemplate.vue b/apps/demos/Demos/Scheduler/ContextMenu/Vue/ItemTemplate.vue index c7ab935c8e3d..73d53e97738f 100644 --- a/apps/demos/Demos/Scheduler/ContextMenu/Vue/ItemTemplate.vue +++ b/apps/demos/Demos/Scheduler/ContextMenu/Vue/ItemTemplate.vue @@ -1,11 +1,13 @@ From 2728e00ecb508d6f2ca8c4b043048b6c346c0d36 Mon Sep 17 00:00:00 2001 From: Eldar Iusupzhanov Date: Wed, 4 Feb 2026 17:38:48 +0800 Subject: [PATCH 15/19] remove unneeded changes --- apps/angular/angular.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/angular/angular.json b/apps/angular/angular.json index 3369e881fa61..dcefaeb9ccc2 100644 --- a/apps/angular/angular.json +++ b/apps/angular/angular.json @@ -23,7 +23,7 @@ "tsConfig": "src/tsconfig.app.json", "styles": [ "node_modules/devextreme/dist/css/dx.common.css", - "node_modules/devextreme/dist/css/dx.fluent.blue.light.css" + "node_modules/devextreme/dist/css/dx.light.css" ], "scripts": [], "browser": "src/main.ts" From 6bb2d0914506537357d76939b736d38f3e06d337 Mon Sep 17 00:00:00 2001 From: Eldar Iusupzhanov Date: Thu, 5 Feb 2026 10:31:06 +0800 Subject: [PATCH 16/19] fix demo types --- .../Demos/Scheduler/ContextMenu/Angular/app/app.component.ts | 4 ++-- .../Demos/Scheduler/ContextMenu/Angular/app/app.service.ts | 2 +- apps/demos/Demos/Scheduler/ContextMenu/React/types.ts | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/demos/Demos/Scheduler/ContextMenu/Angular/app/app.component.ts b/apps/demos/Demos/Scheduler/ContextMenu/Angular/app/app.component.ts index b3ff7b5e16f7..92955ea6214d 100644 --- a/apps/demos/Demos/Scheduler/ContextMenu/Angular/app/app.component.ts +++ b/apps/demos/Demos/Scheduler/ContextMenu/Angular/app/app.component.ts @@ -103,7 +103,7 @@ export class AppComponent { roomId: [itemData.id], }), })), - ] as ContextMenuItem[]; + ]; } getCellContextMenuItems(e: DxSchedulerTypes.CellContextMenuEvent): ContextMenuItem[] { @@ -147,7 +147,7 @@ export class AppComponent { this.currentDate = new Date(); }, }, - ] as unknown as ContextMenuItem[]; + ]; } } diff --git a/apps/demos/Demos/Scheduler/ContextMenu/Angular/app/app.service.ts b/apps/demos/Demos/Scheduler/ContextMenu/Angular/app/app.service.ts index 58ab97226925..c65695a0db3d 100644 --- a/apps/demos/Demos/Scheduler/ContextMenu/Angular/app/app.service.ts +++ b/apps/demos/Demos/Scheduler/ContextMenu/Angular/app/app.service.ts @@ -16,7 +16,7 @@ export interface Resource { color: string; } -export type ContextMenuItem = DxContextMenuTypes.Item & Resource & { +export type ContextMenuItem = DxContextMenuTypes.Item & Partial & { onItemClick?: (e: DxContextMenuTypes.ItemClickEvent) => void }; diff --git a/apps/demos/Demos/Scheduler/ContextMenu/React/types.ts b/apps/demos/Demos/Scheduler/ContextMenu/React/types.ts index 854fba22f8c6..f526dc20a468 100644 --- a/apps/demos/Demos/Scheduler/ContextMenu/React/types.ts +++ b/apps/demos/Demos/Scheduler/ContextMenu/React/types.ts @@ -9,4 +9,4 @@ export type Resource = { color?: string; }; -export type ContextMenuItem = ContextMenuTypes.Item & Resource & { onItemClick?: (e: ContextMenuTypes.ItemClickEvent) => void }; +export type ContextMenuItem = ContextMenuTypes.Item & Partial & { onItemClick?: (e: ContextMenuTypes.ItemClickEvent) => void }; From 6f82c3c94496de715de077a1e0a0ba2e090ff0d9 Mon Sep 17 00:00:00 2001 From: Eldar Iusupzhanov Date: Thu, 5 Feb 2026 10:45:57 +0800 Subject: [PATCH 17/19] revert workspace changes --- .../scheduler/__tests__/scheduler.test.ts | 28 ------------------- .../scheduler/workspaces/m_work_space.ts | 11 +++----- 2 files changed, 4 insertions(+), 35 deletions(-) diff --git a/packages/devextreme/js/__internal/scheduler/__tests__/scheduler.test.ts b/packages/devextreme/js/__internal/scheduler/__tests__/scheduler.test.ts index 47aadc7688c1..0faa6eda1f08 100644 --- a/packages/devextreme/js/__internal/scheduler/__tests__/scheduler.test.ts +++ b/packages/devextreme/js/__internal/scheduler/__tests__/scheduler.test.ts @@ -60,31 +60,3 @@ describe('Scheduler scrollTo deprecation', () => { expect(loggerWarnSpy).toHaveBeenCalledTimes(0); }); }); - -describe('Scheduler onAppointmentContextMenu', () => { - it('should be called only once', async () => { - setupSchedulerTestEnvironment(); - - const onAppointmentContextMenu = jest.fn(); - - const { POM } = await createScheduler({ - dataSource: [{ - text: 'Meeting', - startDate: new Date(2025, 0, 15, 9, 0), - endDate: new Date(2025, 0, 15, 10, 0), - }], - views: ['week'], - currentView: 'week', - currentDate: new Date(2025, 0, 15), - startDayHour: 8, - endDayHour: 18, - onAppointmentContextMenu, - }); - - const appointmentElement = POM.getAppointment('Meeting').element as HTMLElement; - - appointmentElement.dispatchEvent(new MouseEvent('contextmenu', { bubbles: true, cancelable: true })); - - expect(onAppointmentContextMenu).toHaveBeenCalledTimes(1); - }); -}); diff --git a/packages/devextreme/js/__internal/scheduler/workspaces/m_work_space.ts b/packages/devextreme/js/__internal/scheduler/workspaces/m_work_space.ts index 7fe075ad25a3..6105e50b0732 100644 --- a/packages/devextreme/js/__internal/scheduler/workspaces/m_work_space.ts +++ b/packages/devextreme/js/__internal/scheduler/workspaces/m_work_space.ts @@ -1058,15 +1058,12 @@ class SchedulerWorkSpace extends Widget { _attachContextMenuEvent() { this._createContextMenuAction(); + const cellSelector = `.${DATE_TABLE_CELL_CLASS},.${ALL_DAY_TABLE_CELL_CLASS}`; + const $element = this.$element(); const eventName = addNamespace(contextMenuEventName, this.NAME); - const dateCellSelector = `.${DATE_TABLE_CELL_CLASS}`; - eventsEngine.off(this._$dateTable, eventName, dateCellSelector); - eventsEngine.on(this._$dateTable, eventName, dateCellSelector, this._contextMenuHandler.bind(this)); - - const dayCellSelector = `.${ALL_DAY_TABLE_CELL_CLASS}`; - eventsEngine.off(this._$allDayTable, eventName, dayCellSelector); - eventsEngine.on(this._$allDayTable, eventName, dayCellSelector, this._contextMenuHandler.bind(this)); + eventsEngine.off($element, eventName, cellSelector); + eventsEngine.on($element, eventName, cellSelector, this._contextMenuHandler.bind(this)); } _contextMenuHandler(e) { From c2a27aab46718780000d198ebfd549ff0a14309b Mon Sep 17 00:00:00 2001 From: Eldar Iusupzhanov Date: Thu, 5 Feb 2026 18:20:08 +0800 Subject: [PATCH 18/19] use single contextMenu --- .../Angular/app/app.component.html | 48 +++++++------------ .../ContextMenu/Angular/app/app.component.ts | 12 +++-- .../Demos/Scheduler/ContextMenu/React/App.tsx | 39 ++++++++------- .../Scheduler/ContextMenu/ReactJs/App.js | 36 +++++++------- .../Demos/Scheduler/ContextMenu/Vue/App.vue | 47 ++++++++---------- .../Scheduler/ContextMenu/jQuery/index.html | 3 +- .../Scheduler/ContextMenu/jQuery/index.js | 37 ++++++-------- 7 files changed, 96 insertions(+), 126 deletions(-) diff --git a/apps/demos/Demos/Scheduler/ContextMenu/Angular/app/app.component.html b/apps/demos/Demos/Scheduler/ContextMenu/Angular/app/app.component.html index b835fa37eeac..0420b7842f72 100644 --- a/apps/demos/Demos/Scheduler/ContextMenu/Angular/app/app.component.html +++ b/apps/demos/Demos/Scheduler/ContextMenu/Angular/app/app.component.html @@ -1,34 +1,3 @@ - -
-
- @if(e.color) { -
- } - {{ e.text }} -
-
-
- -
-
- @if(e.color) { -
- } - {{ e.text }} -
-
-
- + + +
+
+ @if(e.color) { +
+ } + {{ e.text }} +
+
+
\ No newline at end of file diff --git a/apps/demos/Demos/Scheduler/ContextMenu/Angular/app/app.component.ts b/apps/demos/Demos/Scheduler/ContextMenu/Angular/app/app.component.ts index 92955ea6214d..dbb0f9ffb696 100644 --- a/apps/demos/Demos/Scheduler/ContextMenu/Angular/app/app.component.ts +++ b/apps/demos/Demos/Scheduler/ContextMenu/Angular/app/app.component.ts @@ -43,9 +43,7 @@ export class AppComponent { crossScrollingEnabled = false; - appointmentContextMenuItems: ContextMenuItem[] = []; - - cellContextMenuItems: ContextMenuItem[] = []; + contextMenuItems: ContextMenuItem[] = []; constructor(service: Service) { this.resourcesData = service.getResources(); @@ -58,12 +56,16 @@ export class AppComponent { onAppointmentContextMenu(e: DxSchedulerTypes.AppointmentContextMenuEvent) { const items = this.getAppointmentContextMenuItems(e); - this.appointmentContextMenuItems = items; + this.contextMenuItems = items; } onCellContextMenu(e: DxSchedulerTypes.CellContextMenuEvent) { const items = this.getCellContextMenuItems(e); - this.cellContextMenuItems = items; + this.contextMenuItems = items; + } + + onContextMenuHiding() { + this.contextMenuItems = []; } getAppointmentContextMenuItems(e: DxSchedulerTypes.AppointmentContextMenuEvent): ContextMenuItem[] { diff --git a/apps/demos/Demos/Scheduler/ContextMenu/React/App.tsx b/apps/demos/Demos/Scheduler/ContextMenu/React/App.tsx index 7fdf219764e4..da48c214a4e8 100644 --- a/apps/demos/Demos/Scheduler/ContextMenu/React/App.tsx +++ b/apps/demos/Demos/Scheduler/ContextMenu/React/App.tsx @@ -1,7 +1,7 @@ -import React, { useCallback, useState } from 'react'; +import React, { useCallback, useRef, useState } from 'react'; import { Scheduler, Resource } from 'devextreme-react/scheduler'; -import type { SchedulerTypes } from 'devextreme-react/scheduler'; +import type { SchedulerRef, SchedulerTypes } from 'devextreme-react/scheduler'; import { ContextMenu } from 'devextreme-react/context-menu'; import type { ContextMenuTypes } from 'devextreme-react/context-menu'; @@ -16,9 +16,9 @@ const onContextMenuItemClick = (e: ContextMenuTypes.ItemClickEvent { + const schedulerRef = useRef(null); const [currentDate, setCurrentDate] = useState(new Date(2020, 10, 25)); - const [appointmentContextMenuItems, setAppointmentContextMenuItems] = useState([]); - const [cellContextMenuItems, setCellContextMenuItems] = useState([]); + const [contextMenuItems, setContextMenuItems] = useState([]); const [groups, setGroups] = useState([]); const [crossScrollingEnabled, setCrossScrollingEnabled] = useState(false); @@ -110,31 +110,22 @@ const App = () => { const onAppointmentContextMenu = useCallback((e: SchedulerTypes.AppointmentContextMenuEvent) => { const items = getAppointmentContextMenuItems(e); - setAppointmentContextMenuItems(items); + setContextMenuItems(items); }, [getAppointmentContextMenuItems]); const onCellContextMenu = useCallback((e: SchedulerTypes.CellContextMenuEvent) => { const items = getCellContextMenuItems(e); - setCellContextMenuItems(items); + setContextMenuItems(items); }, [getCellContextMenuItems]); + const onContextMenuHiding = useCallback(() => { + setContextMenuItems([]); + }, []); + return ( <> - - { icon="conferenceroomoutline" /> + ); }; diff --git a/apps/demos/Demos/Scheduler/ContextMenu/ReactJs/App.js b/apps/demos/Demos/Scheduler/ContextMenu/ReactJs/App.js index 5adf356bdae9..3603761cf4ce 100644 --- a/apps/demos/Demos/Scheduler/ContextMenu/ReactJs/App.js +++ b/apps/demos/Demos/Scheduler/ContextMenu/ReactJs/App.js @@ -1,4 +1,4 @@ -import React, { useCallback, useState } from 'react'; +import React, { useCallback, useRef, useState } from 'react'; import { Scheduler, Resource } from 'devextreme-react/scheduler'; import { ContextMenu } from 'devextreme-react/context-menu'; import ItemTemplate from './itemTemplate.js'; @@ -9,9 +9,9 @@ const onContextMenuItemClick = (e) => { e.itemData?.onItemClick?.(e); }; const App = () => { + const schedulerRef = useRef(null); const [currentDate, setCurrentDate] = useState(new Date(2020, 10, 25)); - const [appointmentContextMenuItems, setAppointmentContextMenuItems] = useState([]); - const [cellContextMenuItems, setCellContextMenuItems] = useState([]); + const [contextMenuItems, setContextMenuItems] = useState([]); const [groups, setGroups] = useState([]); const [crossScrollingEnabled, setCrossScrollingEnabled] = useState(false); const getAppointmentContextMenuItems = useCallback((e) => { @@ -100,34 +100,24 @@ const App = () => { const onAppointmentContextMenu = useCallback( (e) => { const items = getAppointmentContextMenuItems(e); - setAppointmentContextMenuItems(items); + setContextMenuItems(items); }, [getAppointmentContextMenuItems], ); const onCellContextMenu = useCallback( (e) => { const items = getCellContextMenuItems(e); - setCellContextMenuItems(items); + setContextMenuItems(items); }, [getCellContextMenuItems], ); + const onContextMenuHiding = useCallback(() => { + setContextMenuItems([]); + }, []); return ( <> - - { icon="conferenceroomoutline" /> + ); }; diff --git a/apps/demos/Demos/Scheduler/ContextMenu/Vue/App.vue b/apps/demos/Demos/Scheduler/ContextMenu/Vue/App.vue index 8a381f27e4d9..144de8b2a47e 100644 --- a/apps/demos/Demos/Scheduler/ContextMenu/Vue/App.vue +++ b/apps/demos/Demos/Scheduler/ContextMenu/Vue/App.vue @@ -1,28 +1,5 @@ @@ -60,23 +50,26 @@ const currentDate = ref(new Date(2020, 10, 25)); const dataSource = data; const groups = ref([]); const crossScrollingEnabled = ref(false); -const appointmentContextMenuItems = ref([]); -const cellContextMenuItems = ref([]); +const contextMenuItems = ref([]); const onAppointmentContextMenu = (e: DxSchedulerTypes.AppointmentContextMenuEvent) => { const items = getAppointmentContextMenuItems(e); - appointmentContextMenuItems.value = items; + contextMenuItems.value = items; }; const onCellContextMenu = (e: DxSchedulerTypes.CellContextMenuEvent) => { const items = getCellContextMenuItems(e); - cellContextMenuItems.value = items; + contextMenuItems.value = items; }; const onContextMenuItemClick = (e: DxContextMenuTypes.ItemClickEvent) => { e.itemData?.onItemClick?.(e); }; +const onContextMenuHiding = () => { + contextMenuItems.value = []; +}; + const getAppointmentContextMenuItems = ( e: DxSchedulerTypes.AppointmentContextMenuEvent, ): ContextMenuItem[] => { diff --git a/apps/demos/Demos/Scheduler/ContextMenu/jQuery/index.html b/apps/demos/Demos/Scheduler/ContextMenu/jQuery/index.html index 8e8ad48ff30b..0aedfa1614b6 100644 --- a/apps/demos/Demos/Scheduler/ContextMenu/jQuery/index.html +++ b/apps/demos/Demos/Scheduler/ContextMenu/jQuery/index.html @@ -15,9 +15,8 @@
-
-
+
diff --git a/apps/demos/Demos/Scheduler/ContextMenu/jQuery/index.js b/apps/demos/Demos/Scheduler/ContextMenu/jQuery/index.js index 75006e3ec9c4..4bff6cdb7bc3 100644 --- a/apps/demos/Demos/Scheduler/ContextMenu/jQuery/index.js +++ b/apps/demos/Demos/Scheduler/ContextMenu/jQuery/index.js @@ -1,24 +1,4 @@ $(() => { - const appointmentContextMenuInstance = $('#appointment-context-menu').dxContextMenu({ - width: 200, - dataSource: [], - target: '.dx-scheduler-appointment', - itemTemplate: contextMenuItemTemplate, - onItemClick: (e) => { - e.itemData.onItemClick(e); - }, - }).dxContextMenu('instance'); - - const cellContextMenuInstance = $('#cell-context-menu').dxContextMenu({ - width: 200, - dataSource: [], - target: '.dx-scheduler-date-table-cell', - itemTemplate: contextMenuItemTemplate, - onItemClick: (e) => { - e.itemData.onItemClick(e); - }, - }).dxContextMenu('instance'); - $('#scheduler').dxScheduler({ timeZone: 'America/Los_Angeles', dataSource: data, @@ -30,11 +10,11 @@ $(() => { groups: [], onAppointmentContextMenu(e) { const items = getAppointmentContextMenuItems(e); - appointmentContextMenuInstance.option('dataSource', items); + contextMenuInstance.option('dataSource', items); }, onCellContextMenu(e) { const items = getCellContextMenuItems(e); - cellContextMenuInstance.option('dataSource', items); + contextMenuInstance.option('dataSource', items); }, resources: [{ fieldExpr: 'roomId', @@ -45,6 +25,19 @@ $(() => { height: 730, }); + const contextMenuInstance = $('#context-menu').dxContextMenu({ + width: 200, + dataSource: [], + target: '#scheduler', + itemTemplate: contextMenuItemTemplate, + onItemClick: (e) => { + e.itemData.onItemClick(e); + }, + onHiding: (e) => { + e.component.option('dataSource', []); + }, + }).dxContextMenu('instance'); + function contextMenuItemTemplate(itemData) { const template = $('
'); From c99be332eeb3afa9d45a13f7358b66c221bb77c4 Mon Sep 17 00:00:00 2001 From: Eldar Iusupzhanov Date: Thu, 5 Feb 2026 18:48:56 +0800 Subject: [PATCH 19/19] prettier --- .../Demos/Scheduler/ContextMenu/Angular/app/app.component.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/demos/Demos/Scheduler/ContextMenu/Angular/app/app.component.html b/apps/demos/Demos/Scheduler/ContextMenu/Angular/app/app.component.html index 0420b7842f72..efa3ce860356 100644 --- a/apps/demos/Demos/Scheduler/ContextMenu/Angular/app/app.component.html +++ b/apps/demos/Demos/Scheduler/ContextMenu/Angular/app/app.component.html @@ -35,4 +35,4 @@ {{ e.text }}
- \ No newline at end of file +