Skip to content

Commit 542f206

Browse files
authored
FilterBuilder: fix the error thrown while changing "editorName" to "dxCheckBox" or "dxSwitch" using "onEditorPreparing" option (T1310528) (#31596) (#31613)
1 parent 80192b5 commit 542f206

File tree

5 files changed

+63
-0
lines changed

5 files changed

+63
-0
lines changed
27.4 KB
Loading
27.9 KB
Loading
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
import { createScreenshotsComparer } from 'devextreme-screenshot-comparer';
2+
import FilterBuilder from 'devextreme-testcafe-models/filterBuilder';
3+
import { createWidget } from '../../../helpers/createWidget';
4+
import url from '../../../helpers/getPageUrl';
5+
import { fields, filter } from './data';
6+
import { testScreenshot } from '../../../helpers/themeUtils';
7+
8+
fixture.disablePageReloads`Editing events`
9+
.page(url(__dirname, '../../container.html'));
10+
11+
// T1310528
12+
test('Change value editor to checkbox', async (t) => {
13+
const { takeScreenshot, compareResults } = createScreenshotsComparer(t);
14+
const filterBuilder = new FilterBuilder('#container');
15+
await t.click(filterBuilder.getField(0, 'itemValue').element);
16+
17+
await testScreenshot(t, takeScreenshot, 'value-editor-checkbox.png', { element: filterBuilder.element });
18+
await t
19+
.expect(compareResults.isValid())
20+
.ok(compareResults.errorMessages());
21+
}).before(async () => {
22+
await createWidget('dxFilterBuilder', {
23+
fields,
24+
value: filter,
25+
allowHierarchicalFields: true,
26+
onEditorPreparing: (data) => {
27+
data.editorName = 'dxCheckBox';
28+
},
29+
});
30+
});
31+
32+
// T1310528
33+
test('Change value editor to switch', async (t) => {
34+
const { takeScreenshot, compareResults } = createScreenshotsComparer(t);
35+
const filterBuilder = new FilterBuilder('#container');
36+
await t.click(filterBuilder.getField(0, 'itemValue').element);
37+
38+
await testScreenshot(t, takeScreenshot, 'value-editor-switch.png', { element: filterBuilder.element });
39+
await t
40+
.expect(compareResults.isValid())
41+
.ok(compareResults.errorMessages());
42+
}).before(async () => {
43+
await createWidget('dxFilterBuilder', {
44+
fields,
45+
value: filter,
46+
allowHierarchicalFields: true,
47+
onEditorPreparing: (data) => {
48+
data.editorName = 'dxSwitch';
49+
},
50+
});
51+
});

packages/devextreme-scss/scss/widgets/base/filterBuilder/_common.scss

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,14 @@
8282
padding-left: 26px;
8383
}
8484
}
85+
86+
.dx-filterbuilder-checkbox-size {
87+
vertical-align: middle;
88+
89+
.dx-switch-container {
90+
vertical-align: baseline;
91+
}
92+
}
8593
}
8694

8795
.dx-filterbuilder-operations {

packages/devextreme/js/__internal/filter_builder/m_filter_builder.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -922,6 +922,10 @@ class FilterBuilder extends Widget<any> {
922922
const treeViewNode = treeViewPopup?.find?.(`.${TREEVIEW_NODE_CONTAINER}`);
923923
treeViewNode?.attr('role', 'presentation');
924924
}
925+
926+
addWidgetPrefix(className: string): string {
927+
return `${FILTER_BUILDER_CLASS}-${className}`;
928+
}
925929
}
926930

927931
registerComponent('dxFilterBuilder', FilterBuilder);

0 commit comments

Comments
 (0)