mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-11 20:08:37 +00:00
feat: improve kanban grouping & data materialization (#14393)
fix #13512 fix #13255 fix #9743 #### PR Dependency Tree * **PR #14393** 👈 This tree was auto-generated by [Charcoal](https://github.com/danerwilliams/charcoal) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Enhanced Kanban view grouping support for additional property types: checkboxes, select fields, multi-select fields, members, and created-by information. * Improved drag-and-drop visual feedback with more precise drop indicators in Kanban views. * **Bug Fixes** * Refined grouping logic to ensure only compatible properties appear in group-by options. * Enhanced column visibility and ordering consistency when managing Kanban views. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
@@ -338,8 +338,8 @@ test.describe('kanban view selection', () => {
|
||||
rows: ['row1'],
|
||||
columns: [
|
||||
{
|
||||
type: 'number',
|
||||
value: [1],
|
||||
type: 'checkbox',
|
||||
value: [true],
|
||||
},
|
||||
{
|
||||
type: 'rich-text',
|
||||
@@ -350,8 +350,6 @@ test.describe('kanban view selection', () => {
|
||||
|
||||
await focusKanbanCardHeader(page);
|
||||
await assertKanbanCellSelected(page, {
|
||||
// group by `number` column, `Ungroups` is hidden because it's empty (hideEmpty: true by default)
|
||||
// so the first visible group is the one with value "1" at groupIndex: 0
|
||||
groupIndex: 0,
|
||||
cardIndex: 0,
|
||||
cellIndex: 0,
|
||||
@@ -380,9 +378,9 @@ test.describe('kanban view selection', () => {
|
||||
rows: ['row1', 'row2'],
|
||||
columns: [
|
||||
{
|
||||
type: 'number',
|
||||
// Both rows have value 1 to put them in the same group
|
||||
value: [1, 1],
|
||||
type: 'checkbox',
|
||||
// Both rows are checked so they stay in the same group.
|
||||
value: [true, true],
|
||||
},
|
||||
{
|
||||
type: 'rich-text',
|
||||
@@ -394,8 +392,6 @@ test.describe('kanban view selection', () => {
|
||||
await focusKanbanCardHeader(page);
|
||||
await pressArrowUp(page);
|
||||
await assertKanbanCellSelected(page, {
|
||||
// `Ungroups` is hidden because it's empty (hideEmpty: true by default)
|
||||
// so the first visible group is "1" at groupIndex: 0
|
||||
groupIndex: 0,
|
||||
cardIndex: 1,
|
||||
cellIndex: 2,
|
||||
@@ -414,18 +410,18 @@ test.describe('kanban view selection', () => {
|
||||
}) => {
|
||||
await enterPlaygroundRoom(page);
|
||||
await initKanbanViewState(page, {
|
||||
rows: ['row1', 'row2', 'row3'],
|
||||
rows: ['row1', 'row2'],
|
||||
columns: [
|
||||
{
|
||||
type: 'number',
|
||||
value: [undefined, 1, 10],
|
||||
type: 'checkbox',
|
||||
value: [true, false],
|
||||
},
|
||||
],
|
||||
});
|
||||
|
||||
await focusKanbanCardHeader(page);
|
||||
|
||||
await pressArrowRight(page, 3);
|
||||
await pressArrowRight(page, 2);
|
||||
await assertKanbanCellSelected(page, {
|
||||
groupIndex: 0,
|
||||
cardIndex: 0,
|
||||
@@ -434,7 +430,7 @@ test.describe('kanban view selection', () => {
|
||||
|
||||
await pressArrowLeft(page);
|
||||
await assertKanbanCellSelected(page, {
|
||||
groupIndex: 2,
|
||||
groupIndex: 1,
|
||||
cardIndex: 0,
|
||||
cellIndex: 0,
|
||||
});
|
||||
@@ -480,11 +476,11 @@ test.describe('kanban view selection', () => {
|
||||
}) => {
|
||||
await enterPlaygroundRoom(page);
|
||||
await initKanbanViewState(page, {
|
||||
rows: ['row1', 'row2', 'row3'],
|
||||
rows: ['row1', 'row2'],
|
||||
columns: [
|
||||
{
|
||||
type: 'number',
|
||||
value: [undefined, 1, 10],
|
||||
type: 'checkbox',
|
||||
value: [true, false],
|
||||
},
|
||||
],
|
||||
});
|
||||
@@ -493,7 +489,7 @@ test.describe('kanban view selection', () => {
|
||||
await pressEscape(page);
|
||||
await pressEscape(page);
|
||||
|
||||
await pressArrowRight(page, 3);
|
||||
await pressArrowRight(page, 2);
|
||||
await assertKanbanCardSelected(page, {
|
||||
groupIndex: 0,
|
||||
cardIndex: 0,
|
||||
@@ -501,7 +497,7 @@ test.describe('kanban view selection', () => {
|
||||
|
||||
await pressArrowLeft(page);
|
||||
await assertKanbanCardSelected(page, {
|
||||
groupIndex: 2,
|
||||
groupIndex: 1,
|
||||
cardIndex: 0,
|
||||
});
|
||||
});
|
||||
@@ -512,8 +508,8 @@ test.describe('kanban view selection', () => {
|
||||
rows: ['row1', 'row2'],
|
||||
columns: [
|
||||
{
|
||||
type: 'number',
|
||||
value: [undefined, 1],
|
||||
type: 'checkbox',
|
||||
value: [true, false],
|
||||
},
|
||||
],
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user