refactor: baord configuration

This commit is contained in:
appflowy 2022-08-19 19:59:09 +08:00
parent edd520abda
commit c81b6f10fa
24 changed files with 326 additions and 169 deletions

View File

@ -491,6 +491,27 @@ impl TryInto<FieldChangesetParams> for FieldChangesetPayloadPB {
}
}
#[derive(Debug, Clone, Default)]
pub struct FieldChangesetParams {
pub field_id: String,
pub grid_id: String,
pub name: Option<String>,
pub desc: Option<String>,
pub field_type: Option<FieldTypeRevision>,
pub frozen: Option<bool>,
pub visibility: Option<bool>,
pub width: Option<i32>,
pub type_option_data: Option<Vec<u8>>,
}
#[derive(
Debug,
Clone,

View File

@ -5,8 +5,7 @@ use crate::entities::{
use flowy_derive::ProtoBuf;
use flowy_error::ErrorCode;
use flowy_grid_data_model::parser::NotEmptyStr;
use flowy_grid_data_model::revision::{FieldRevision, FilterConfigurationRevision};
use flowy_sync::entities::grid::{CreateGridFilterParams, DeleteFilterParams};
use flowy_grid_data_model::revision::{FieldRevision, FieldTypeRevision, FilterConfigurationRevision};
use std::convert::TryInto;
use std::sync::Arc;
@ -72,6 +71,12 @@ impl TryInto<DeleteFilterParams> for DeleteFilterPayloadPB {
}
}
pub struct DeleteFilterParams {
pub field_id: String,
pub filter_id: String,
pub field_type_rev: FieldTypeRevision,
}
#[derive(ProtoBuf, Debug, Default, Clone)]
pub struct CreateGridFilterPayloadPB {
#[pb(index = 1)]
@ -99,10 +104,10 @@ impl CreateGridFilterPayloadPB {
}
}
impl TryInto<CreateGridFilterParams> for CreateGridFilterPayloadPB {
impl TryInto<CreateFilterParams> for CreateGridFilterPayloadPB {
type Error = ErrorCode;
fn try_into(self) -> Result<CreateGridFilterParams, Self::Error> {
fn try_into(self) -> Result<CreateFilterParams, Self::Error> {
let field_id = NotEmptyStr::parse(self.field_id)
.map_err(|_| ErrorCode::FieldIdIsEmpty)?
.0;
@ -125,7 +130,7 @@ impl TryInto<CreateGridFilterParams> for CreateGridFilterPayloadPB {
}
}
Ok(CreateGridFilterParams {
Ok(CreateFilterParams {
field_id,
field_type_rev: self.field_type.into(),
condition,
@ -133,3 +138,10 @@ impl TryInto<CreateGridFilterParams> for CreateGridFilterPayloadPB {
})
}
}
pub struct CreateFilterParams {
pub field_id: String,
pub field_type_rev: FieldTypeRevision,
pub condition: u8,
pub content: Option<String>,
}

View File

@ -1,4 +1,5 @@
use flowy_derive::{ProtoBuf, ProtoBuf_Enum};
use flowy_grid_data_model::revision::{GroupRecordRevision, SelectOptionGroupConfigurationRevision};
#[derive(Eq, PartialEq, ProtoBuf, Debug, Default, Clone)]
pub struct UrlGroupConfigurationPB {
@ -16,6 +17,36 @@ pub struct TextGroupConfigurationPB {
pub struct SelectOptionGroupConfigurationPB {
#[pb(index = 1)]
hide_empty: bool,
#[pb(index = 2)]
groups: Vec<GroupRecordPB>,
}
impl std::convert::From<SelectOptionGroupConfigurationRevision> for SelectOptionGroupConfigurationPB {
fn from(rev: SelectOptionGroupConfigurationRevision) -> Self {
Self {
hide_empty: rev.hide_empty,
groups: rev.groups.into_iter().map(GroupRecordPB::from).collect(),
}
}
}
#[derive(Eq, PartialEq, ProtoBuf, Debug, Default, Clone)]
pub struct GroupRecordPB {
#[pb(index = 1)]
group_id: String,
#[pb(index = 2)]
visible: bool,
}
impl std::convert::From<GroupRecordRevision> for GroupRecordPB {
fn from(rev: GroupRecordRevision) -> Self {
Self {
group_id: rev.group_id,
visible: rev.visible,
}
}
}
#[derive(Eq, PartialEq, ProtoBuf, Debug, Default, Clone)]

View File

@ -2,8 +2,7 @@ use crate::entities::{FieldType, RowPB};
use flowy_derive::ProtoBuf;
use flowy_error::ErrorCode;
use flowy_grid_data_model::parser::NotEmptyStr;
use flowy_grid_data_model::revision::GroupConfigurationRevision;
use flowy_sync::entities::grid::{CreateGridGroupParams, DeleteGroupParams};
use flowy_grid_data_model::revision::{FieldTypeRevision, GroupConfigurationRevision};
use std::convert::TryInto;
use std::sync::Arc;
@ -86,27 +85,28 @@ pub struct CreateGridGroupPayloadPB {
#[pb(index = 2)]
pub field_type: FieldType,
#[pb(index = 3, one_of)]
pub content: Option<Vec<u8>>,
}
impl TryInto<CreateGridGroupParams> for CreateGridGroupPayloadPB {
impl TryInto<CreatGroupParams> for CreateGridGroupPayloadPB {
type Error = ErrorCode;
fn try_into(self) -> Result<CreateGridGroupParams, Self::Error> {
fn try_into(self) -> Result<CreatGroupParams, Self::Error> {
let field_id = NotEmptyStr::parse(self.field_id)
.map_err(|_| ErrorCode::FieldIdIsEmpty)?
.0;
Ok(CreateGridGroupParams {
Ok(CreatGroupParams {
field_id,
field_type_rev: self.field_type.into(),
content: self.content,
})
}
}
pub struct CreatGroupParams {
pub field_id: String,
pub field_type_rev: FieldTypeRevision,
}
#[derive(ProtoBuf, Debug, Default, Clone)]
pub struct DeleteGroupPayloadPB {
#[pb(index = 1)]
@ -137,3 +137,9 @@ impl TryInto<DeleteGroupParams> for DeleteGroupPayloadPB {
})
}
}
pub struct DeleteGroupParams {
pub field_id: String,
pub group_id: String,
pub field_type_rev: FieldTypeRevision,
}

View File

@ -1,5 +1,7 @@
use crate::entities::{InsertedRowPB, RowPB};
use crate::entities::{GroupPB, InsertedRowPB, RowPB};
use flowy_derive::ProtoBuf;
use flowy_error::ErrorCode;
use flowy_grid_data_model::parser::NotEmptyStr;
use std::fmt::Formatter;
#[derive(Debug, Default, ProtoBuf)]
@ -62,3 +64,55 @@ impl GroupRowsChangesetPB {
}
}
}
#[derive(Debug, Default, ProtoBuf)]
pub struct MoveGroupPayloadPB {
#[pb(index = 1)]
pub view_id: String,
#[pb(index = 2)]
pub from_group_id: String,
#[pb(index = 3)]
pub to_group_id: String,
}
pub struct MoveGroupParams {
pub view_id: String,
pub from_group_id: String,
pub to_group_id: String,
}
impl TryInto<MoveGroupParams> for MoveGroupPayloadPB {
type Error = ErrorCode;
fn try_into(self) -> Result<MoveGroupParams, Self::Error> {
let view_id = NotEmptyStr::parse(self.view_id)
.map_err(|_| ErrorCode::GridViewIdIsEmpty)?
.0;
let from_group_id = NotEmptyStr::parse(self.from_group_id)
.map_err(|_| ErrorCode::GroupIdIsEmpty)?
.0;
let to_group_id = NotEmptyStr::parse(self.to_group_id)
.map_err(|_| ErrorCode::GroupIdIsEmpty)?
.0;
Ok(MoveGroupParams {
view_id,
from_group_id,
to_group_id,
})
}
}
#[derive(Debug, Default, ProtoBuf)]
pub struct GroupsChangesetPB {
#[pb(index = 1)]
pub view_id: String,
#[pb(index = 2)]
pub inserted_groups: Vec<GroupPB>,
#[pb(index = 3)]
pub deleted_groups: Vec<String>,
}
impl GroupsChangesetPB {}

View File

@ -1,6 +1,7 @@
use crate::entities::{
CreateGridFilterPayloadPB, CreateGridGroupPayloadPB, CreateGridSortPayloadPB, DeleteFilterPayloadPB,
DeleteGroupPayloadPB, RepeatedGridConfigurationFilterPB, RepeatedGridGroupConfigurationPB, RepeatedGridSortPB,
CreatGroupParams, CreateFilterParams, CreateGridFilterPayloadPB, CreateGridGroupPayloadPB, CreateGridSortPayloadPB,
CreateSortParams, DeleteFilterParams, DeleteFilterPayloadPB, DeleteGroupParams, DeleteGroupPayloadPB,
RepeatedGridConfigurationFilterPB, RepeatedGridGroupConfigurationPB, RepeatedGridSortPB,
};
use flowy_derive::{ProtoBuf, ProtoBuf_Enum};
use flowy_error::ErrorCode;
@ -156,3 +157,20 @@ impl TryInto<GridSettingChangesetParams> for GridSettingChangesetPayloadPB {
})
}
}
pub struct GridSettingChangesetParams {
pub grid_id: String,
pub layout_type: LayoutRevision,
pub insert_filter: Option<CreateFilterParams>,
pub delete_filter: Option<DeleteFilterParams>,
pub insert_group: Option<CreatGroupParams>,
pub delete_group: Option<DeleteGroupParams>,
pub insert_sort: Option<CreateSortParams>,
pub delete_sort: Option<String>,
}
impl GridSettingChangesetParams {
pub fn is_filter_changed(&self) -> bool {
self.insert_filter.is_some() || self.delete_filter.is_some()
}
}

View File

@ -2,7 +2,6 @@ use flowy_derive::ProtoBuf;
use flowy_error::ErrorCode;
use flowy_grid_data_model::parser::NotEmptyStr;
use flowy_grid_data_model::revision::SortConfigurationRevision;
use flowy_sync::entities::grid::CreateGridSortParams;
use std::convert::TryInto;
use std::sync::Arc;
@ -51,15 +50,19 @@ pub struct CreateGridSortPayloadPB {
pub field_id: Option<String>,
}
impl TryInto<CreateGridSortParams> for CreateGridSortPayloadPB {
impl TryInto<CreateSortParams> for CreateGridSortPayloadPB {
type Error = ErrorCode;
fn try_into(self) -> Result<CreateGridSortParams, Self::Error> {
fn try_into(self) -> Result<CreateSortParams, Self::Error> {
let field_id = match self.field_id {
None => None,
Some(field_id) => Some(NotEmptyStr::parse(field_id).map_err(|_| ErrorCode::FieldIdIsEmpty)?.0),
};
Ok(CreateGridSortParams { field_id })
Ok(CreateSortParams { field_id })
}
}
pub struct CreateSortParams {
pub field_id: Option<String>,
}

View File

@ -437,3 +437,14 @@ pub(crate) async fn create_board_card_handler(
let row = editor.create_row(params).await?;
data_result(row)
}
#[tracing::instrument(level = "debug", skip(data, manager), err)]
pub(crate) async fn move_group_handler(
data: Data<MoveGroupPayloadPB>,
manager: AppData<Arc<GridManager>>,
) -> DataResult<GroupsChangesetPB, FlowyError> {
let params: MoveGroupParams = data.into_inner().try_into()?;
let editor = manager.get_grid_editor(params.view_id.as_ref())?;
let changeset = editor.move_group(params).await?;
data_result(changeset)
}

View File

@ -41,6 +41,7 @@ pub fn create(grid_manager: Arc<GridManager>) -> Module {
.event(GridEvent::UpdateDateCell, update_date_cell_handler)
// Group
.event(GridEvent::CreateBoardCard, create_board_card_handler)
.event(GridEvent::MoveGroup, move_group_handler)
.event(GridEvent::GetGroup, get_groups_handler);
module
@ -217,4 +218,7 @@ pub enum GridEvent {
#[event(input = "CreateBoardCardPayloadPB", output = "RowPB")]
CreateBoardCard = 110,
#[event(input = "MoveGroupPayloadPB", output = "GroupsChangesetPB")]
MoveGroup = 111,
}

View File

@ -294,6 +294,11 @@ impl GridRevisionEditor {
Ok(row_pb)
}
pub async fn move_group(&self, params: MoveGroupParams) -> FlowyResult<GroupsChangesetPB> {
//
todo!()
}
pub async fn insert_rows(&self, row_revs: Vec<RowRevision>) -> FlowyResult<Vec<RowPB>> {
let block_id = self.block_id().await?;
let mut rows_by_block_id: HashMap<String, Vec<RowRevision>> = HashMap::new();

View File

@ -172,10 +172,15 @@ impl GridViewRevisionEditor {
}
pub(crate) async fn update_setting(&self, changeset: GridSettingChangesetParams) -> FlowyResult<()> {
let _ = self.modify(|pad| Ok(pad.update_setting(changeset)?)).await;
Ok(())
// let _ = self.modify(|pad| Ok(pad.update_setting(changeset)?)).await;
// Ok(())
todo!()
}
// pub(crate) async fn insert_group(&self, params: CreateGroupParams) -> FlowyResult<()> {
//
// }
pub(crate) async fn get_filters(&self) -> Vec<GridFilterConfiguration> {
let field_revs = self.field_delegate.get_field_revs().await;
match self.pad.read().await.get_setting_rev().get_all_filters(&field_revs) {

View File

@ -130,6 +130,8 @@ impl GridViewManager {
}
}
pub(crate) async fn move_group(&self) {}
pub(crate) async fn get_view_editor(&self, view_id: &str) -> FlowyResult<Arc<GridViewRevisionEditor>> {
debug_assert!(!view_id.is_empty());
match self.view_editors.get(view_id) {

View File

@ -163,10 +163,12 @@ where
G: GroupGenerator<ConfigurationType = C, TypeOptionType = T>,
{
pub fn new(field_rev: &Arc<FieldRevision>, configuration: GroupConfigurationRevision) -> FlowyResult<Self> {
let configuration = match configuration.content {
None => None,
Some(content) => Some(C::try_from(Bytes::from(content))?),
};
// let configuration = match configuration.content {
// None => None,
// Some(content) => Some(C::try_from(Bytes::from(content))?),
// };
let configuration = None;
let field_type_rev = field_rev.ty;
let type_option = field_rev.get_type_option_entry::<T>(field_type_rev);
let groups = G::generate_groups(&field_rev.id, &configuration, &type_option);

View File

@ -4,7 +4,6 @@ use crate::services::field::{
MultiSelectTypeOptionPB, SelectOptionCellDataPB, SelectOptionCellDataParser, SingleSelectTypeOptionPB,
};
use crate::services::group::{GenericGroupController, Group, GroupController, GroupGenerator, Groupable};
use flowy_grid_data_model::revision::{FieldRevision, RowChangeset, RowRevision};
// SingleSelect

View File

@ -8,7 +8,9 @@ use crate::services::group::{
use bytes::Bytes;
use flowy_error::FlowyResult;
use flowy_grid_data_model::revision::{
gen_grid_group_id, FieldRevision, GroupConfigurationRevision, RowChangeset, RowRevision,
gen_grid_group_id, CheckboxGroupConfigurationRevision, DateGroupConfigurationRevision, FieldRevision,
GroupConfigurationRevision, NumberGroupConfigurationRevision, RowChangeset, RowRevision,
SelectOptionGroupConfigurationRevision, TextGroupConfigurationRevision, UrlGroupConfigurationRevision,
};
use lib_infra::future::AFFuture;
use std::future::Future;
@ -208,20 +210,41 @@ fn find_group_field(field_revs: &[Arc<FieldRevision>]) -> Option<Arc<FieldRevisi
}
pub fn default_group_configuration(field_rev: &FieldRevision) -> GroupConfigurationRevision {
let field_id = field_rev.id.clone();
let field_type_rev = field_rev.ty.clone();
let field_type: FieldType = field_rev.ty.into();
let bytes: Bytes = match field_type {
FieldType::RichText => TextGroupConfigurationPB::default().try_into().unwrap(),
FieldType::Number => NumberGroupConfigurationPB::default().try_into().unwrap(),
FieldType::DateTime => DateGroupConfigurationPB::default().try_into().unwrap(),
FieldType::SingleSelect => SelectOptionGroupConfigurationPB::default().try_into().unwrap(),
FieldType::MultiSelect => SelectOptionGroupConfigurationPB::default().try_into().unwrap(),
FieldType::Checkbox => CheckboxGroupConfigurationPB::default().try_into().unwrap(),
FieldType::URL => UrlGroupConfigurationPB::default().try_into().unwrap(),
};
GroupConfigurationRevision {
id: gen_grid_group_id(),
field_id: field_rev.id.clone(),
field_type_rev: field_rev.ty,
content: Some(bytes.to_vec()),
match field_type {
FieldType::RichText => {
GroupConfigurationRevision::new(field_id, field_type_rev, TextGroupConfigurationRevision::default())
.unwrap()
}
FieldType::Number => {
GroupConfigurationRevision::new(field_id, field_type_rev, NumberGroupConfigurationRevision::default())
.unwrap()
}
FieldType::DateTime => {
GroupConfigurationRevision::new(field_id, field_type_rev, DateGroupConfigurationRevision::default())
.unwrap()
}
FieldType::SingleSelect => GroupConfigurationRevision::new(
field_id,
field_type_rev,
SelectOptionGroupConfigurationRevision::default(),
)
.unwrap(),
FieldType::MultiSelect => GroupConfigurationRevision::new(
field_id,
field_type_rev,
SelectOptionGroupConfigurationRevision::default(),
)
.unwrap(),
FieldType::Checkbox => {
GroupConfigurationRevision::new(field_id, field_type_rev, CheckboxGroupConfigurationRevision::default())
.unwrap()
}
FieldType::URL => {
GroupConfigurationRevision::new(field_id, field_type_rev, UrlGroupConfigurationRevision::default()).unwrap()
}
}
}

View File

@ -3,7 +3,7 @@ use crate::entities::{
RepeatedGridSortPB,
};
use flowy_grid_data_model::revision::{FieldRevision, SettingRevision};
use flowy_sync::entities::grid::{CreateGridFilterParams, DeleteFilterParams, GridSettingChangesetParams};
use flowy_sync::entities::grid::{CreateFilterParams, DeleteFilterParams, GridSettingChangesetParams};
use std::collections::HashMap;
use std::sync::Arc;
@ -26,7 +26,7 @@ impl GridSettingChangesetBuilder {
Self { params }
}
pub fn insert_filter(mut self, params: CreateGridFilterParams) -> Self {
pub fn insert_filter(mut self, params: CreateFilterParams) -> Self {
self.params.insert_filter = Some(params);
self
}

View File

@ -6,7 +6,7 @@
use flowy_grid::entities::{CreateGridFilterPayloadPB, GridLayout, GridSettingPB};
use flowy_grid::services::setting::GridSettingChangesetBuilder;
use flowy_grid_data_model::revision::{FieldRevision, FieldTypeRevision};
use flowy_sync::entities::grid::{CreateGridFilterParams, DeleteFilterParams, GridSettingChangesetParams};
use flowy_sync::entities::grid::{CreateFilterParams, DeleteFilterParams, GridSettingChangesetParams};
use crate::grid::grid_editor::GridEditorTest;
pub enum FilterScript {
@ -54,7 +54,7 @@ impl GridFilterTest {
let _ = self.editor.update_grid_setting(params).await.unwrap();
}
FilterScript::InsertGridTableFilter { payload } => {
let params: CreateGridFilterParams = payload.try_into().unwrap();
let params: CreateFilterParams = payload.try_into().unwrap();
let layout_type = GridLayout::Table;
let params = GridSettingChangesetBuilder::new(&self.grid_id, &layout_type)
.insert_filter(params)

View File

@ -13,7 +13,7 @@ use flowy_grid_data_model::revision::*;
use flowy_revision::REVISION_WRITE_INTERVAL_IN_MILLIS;
use flowy_sync::client_grid::GridBuilder;
use flowy_sync::entities::grid::{
CreateGridFilterParams, DeleteFilterParams, FieldChangesetParams, GridSettingChangesetParams,
CreateFilterParams, DeleteFilterParams, FieldChangesetParams, GridSettingChangesetParams,
};
use flowy_test::helper::ViewTest;
use flowy_test::FlowySDKTest;

View File

@ -240,12 +240,29 @@ where
}
}
pub trait GroupConfigurationSerde {}
#[derive(Debug, Clone, Serialize, Deserialize, Default, PartialEq, Eq)]
pub struct GroupConfigurationRevision {
pub id: String,
pub field_id: String,
pub field_type_rev: FieldTypeRevision,
pub content: Option<Vec<u8>>,
pub content: String,
}
impl GroupConfigurationRevision {
pub fn new<T>(field_id: String, field_type: FieldTypeRevision, content: T) -> Result<Self, serde_json::Error>
where
T: serde::Serialize,
{
let content = serde_json::to_string(&content)?;
Ok(Self {
id: gen_grid_group_id(),
field_id,
field_type_rev: field_type,
content,
})
}
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, PartialEq, Eq, Hash)]

View File

@ -0,0 +1,59 @@
use serde::{Deserialize, Serialize};
use serde_repr::*;
#[derive(Default, Serialize, Deserialize)]
pub struct TextGroupConfigurationRevision {
pub hide_empty: bool,
}
#[derive(Default, Serialize, Deserialize)]
pub struct NumberGroupConfigurationRevision {
pub hide_empty: bool,
}
#[derive(Default, Serialize, Deserialize)]
pub struct UrlGroupConfigurationRevision {
pub hide_empty: bool,
}
#[derive(Default, Serialize, Deserialize)]
pub struct CheckboxGroupConfigurationRevision {
pub hide_empty: bool,
}
#[derive(Default, Serialize, Deserialize)]
pub struct SelectOptionGroupConfigurationRevision {
pub hide_empty: bool,
pub groups: Vec<GroupRecordRevision>,
}
#[derive(Default, Serialize, Deserialize)]
pub struct GroupRecordRevision {
pub group_id: String,
#[serde(default = "DEFAULT_GROUP_RECORD_VISIBILITY")]
pub visible: bool,
}
const DEFAULT_GROUP_RECORD_VISIBILITY: fn() -> bool = || true;
#[derive(Default, Serialize, Deserialize)]
pub struct DateGroupConfigurationRevision {
pub hide_empty: bool,
pub condition: DateCondition,
}
#[derive(Serialize_repr, Deserialize_repr)]
#[repr(u8)]
pub enum DateCondition {
Relative = 0,
Day = 1,
Week = 2,
Month = 3,
Year = 4,
}
impl std::default::Default for DateCondition {
fn default() -> Self {
DateCondition::Relative
}
}

View File

@ -2,8 +2,10 @@ mod grid_block;
mod grid_rev;
mod grid_setting_rev;
mod grid_view;
mod group_rev;
pub use grid_block::*;
pub use grid_rev::*;
pub use grid_setting_rev::*;
pub use grid_view::*;
pub use group_rev::*;

View File

@ -1,4 +1,4 @@
use crate::entities::grid::{CreateGridFilterParams, CreateGridGroupParams, GridSettingChangesetParams};
use crate::entities::grid::{CreatGroupParams, CreateFilterParams, GridSettingChangesetParams};
use crate::entities::revision::{md5, Revision};
use crate::errors::{internal_error, CollaborateError, CollaborateResult};
use crate::util::{cal_diff, make_text_delta_from_revisions};
@ -54,55 +54,6 @@ impl GridViewRevisionPad {
&self.view.setting
}
pub fn update_setting(
&mut self,
changeset: GridSettingChangesetParams,
) -> CollaborateResult<Option<GridViewRevisionChangeset>> {
self.modify(|view| {
let mut is_changed = None;
if let Some(params) = changeset.insert_filter {
view.setting.filters.insert_object(
&params.field_id,
&params.field_type_rev,
make_filter_revision(&params),
);
is_changed = Some(())
}
if let Some(params) = changeset.delete_filter {
if let Some(filters) = view
.setting
.filters
.get_mut_objects(&params.field_id, &params.field_type_rev)
{
filters.retain(|filter| filter.id != params.filter_id);
is_changed = Some(())
}
}
if let Some(params) = changeset.insert_group {
view.setting.groups.remove_all();
view.setting.groups.insert_object(
&params.field_id,
&params.field_type_rev,
make_group_revision(&params),
);
is_changed = Some(());
}
if let Some(params) = changeset.delete_group {
if let Some(groups) = view
.setting
.groups
.get_mut_objects(&params.field_id, &params.field_type_rev)
{
groups.retain(|group| group.id != params.group_id);
is_changed = Some(());
}
}
Ok(is_changed)
})
}
pub fn get_all_groups(&self, field_revs: &[Arc<FieldRevision>]) -> Option<GroupConfigurationsByFieldId> {
self.setting.groups.get_all_objects(field_revs)
}
@ -216,7 +167,7 @@ impl GridViewRevisionPad {
}
}
fn make_filter_revision(params: &CreateGridFilterParams) -> FilterConfigurationRevision {
fn make_filter_revision(params: &CreateFilterParams) -> FilterConfigurationRevision {
FilterConfigurationRevision {
id: gen_grid_filter_id(),
field_id: params.field_id.clone(),
@ -225,7 +176,7 @@ fn make_filter_revision(params: &CreateGridFilterParams) -> FilterConfigurationR
}
}
fn make_group_revision(params: &CreateGridGroupParams) -> GroupConfigurationRevision {
fn make_group_revision(params: &CreatGroupParams) -> GroupConfigurationRevision {
GroupConfigurationRevision {
id: gen_grid_group_id(),
field_id: params.field_id.clone(),

View File

@ -1,67 +0,0 @@
use flowy_grid_data_model::revision::{FieldTypeRevision, LayoutRevision};
pub struct GridSettingChangesetParams {
pub grid_id: String,
pub layout_type: LayoutRevision,
pub insert_filter: Option<CreateGridFilterParams>,
pub delete_filter: Option<DeleteFilterParams>,
pub insert_group: Option<CreateGridGroupParams>,
pub delete_group: Option<DeleteGroupParams>,
pub insert_sort: Option<CreateGridSortParams>,
pub delete_sort: Option<String>,
}
impl GridSettingChangesetParams {
pub fn is_filter_changed(&self) -> bool {
self.insert_filter.is_some() || self.delete_filter.is_some()
}
}
pub struct CreateGridFilterParams {
pub field_id: String,
pub field_type_rev: FieldTypeRevision,
pub condition: u8,
pub content: Option<String>,
}
pub struct DeleteFilterParams {
pub field_id: String,
pub filter_id: String,
pub field_type_rev: FieldTypeRevision,
}
pub struct CreateGridGroupParams {
pub field_id: String,
pub field_type_rev: FieldTypeRevision,
pub content: Option<Vec<u8>>,
}
pub struct DeleteGroupParams {
pub field_id: String,
pub group_id: String,
pub field_type_rev: FieldTypeRevision,
}
pub struct CreateGridSortParams {
pub field_id: Option<String>,
}
#[derive(Debug, Clone, Default)]
pub struct FieldChangesetParams {
pub field_id: String,
pub grid_id: String,
pub name: Option<String>,
pub desc: Option<String>,
pub field_type: Option<FieldTypeRevision>,
pub frozen: Option<bool>,
pub visibility: Option<bool>,
pub width: Option<i32>,
pub type_option_data: Option<Vec<u8>>,
}

View File

@ -1,5 +1,4 @@
pub mod folder;
pub mod grid;
pub mod parser;
pub mod revision;
pub mod text_block;