|
@@ -183,11 +183,11 @@ where
|
|
|
|
|
|
fn groups(&self) -> Vec<Group> {
|
|
fn groups(&self) -> Vec<Group> {
|
|
if self.use_default_group() {
|
|
if self.use_default_group() {
|
|
- let mut groups: Vec<Group> = self.group_ctx.concrete_groups().into_iter().cloned().collect();
|
|
|
|
- groups.push(self.group_ctx.default_group().clone());
|
|
|
|
|
|
+ let mut groups: Vec<Group> = self.group_ctx.groups().into_iter().cloned().collect();
|
|
|
|
+ groups.push(self.group_ctx.get_default_group().clone());
|
|
groups
|
|
groups
|
|
} else {
|
|
} else {
|
|
- self.group_ctx.concrete_groups().into_iter().cloned().collect()
|
|
|
|
|
|
+ self.group_ctx.groups().into_iter().cloned().collect()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -208,7 +208,7 @@ where
|
|
let mut grouped_rows: Vec<GroupedRow> = vec![];
|
|
let mut grouped_rows: Vec<GroupedRow> = vec![];
|
|
let cell_bytes = decode_any_cell_data(cell_rev.data, field_rev);
|
|
let cell_bytes = decode_any_cell_data(cell_rev.data, field_rev);
|
|
let cell_data = cell_bytes.parser::<P>()?;
|
|
let cell_data = cell_bytes.parser::<P>()?;
|
|
- for group in self.group_ctx.concrete_groups() {
|
|
|
|
|
|
+ for group in self.group_ctx.groups() {
|
|
if self.can_group(&group.filter_content, &cell_data) {
|
|
if self.can_group(&group.filter_content, &cell_data) {
|
|
grouped_rows.push(GroupedRow {
|
|
grouped_rows.push(GroupedRow {
|
|
row: row_rev.into(),
|
|
row: row_rev.into(),
|
|
@@ -264,12 +264,17 @@ where
|
|
row_rev: &RowRevision,
|
|
row_rev: &RowRevision,
|
|
field_rev: &FieldRevision,
|
|
field_rev: &FieldRevision,
|
|
) -> FlowyResult<Vec<GroupChangesetPB>> {
|
|
) -> FlowyResult<Vec<GroupChangesetPB>> {
|
|
|
|
+ // if the cell_rev is none, then the row must be crated from the default group.
|
|
if let Some(cell_rev) = row_rev.cells.get(&self.field_id) {
|
|
if let Some(cell_rev) = row_rev.cells.get(&self.field_id) {
|
|
let cell_bytes = decode_any_cell_data(cell_rev.data.clone(), field_rev);
|
|
let cell_bytes = decode_any_cell_data(cell_rev.data.clone(), field_rev);
|
|
let cell_data = cell_bytes.parser::<P>()?;
|
|
let cell_data = cell_bytes.parser::<P>()?;
|
|
Ok(self.remove_row_if_match(row_rev, &cell_data))
|
|
Ok(self.remove_row_if_match(row_rev, &cell_data))
|
|
} else {
|
|
} else {
|
|
- Ok(vec![])
|
|
|
|
|
|
+ let group = self.group_ctx.get_default_group();
|
|
|
|
+ Ok(vec![GroupChangesetPB::delete(
|
|
|
|
+ group.id.clone(),
|
|
|
|
+ vec![row_rev.id.clone()],
|
|
|
|
+ )])
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|