chore: add board data controller

This commit is contained in:
appflowy
2022-08-11 15:00:36 +08:00
parent 8b535720ef
commit cefd571dd0
19 changed files with 141 additions and 151 deletions

View File

@ -1,5 +1,5 @@
pub use crate::entities::view::ViewDataTypePB;
use crate::entities::{SubViewDataTypePB, ViewInfoPB};
use crate::entities::ViewInfoPB;
use crate::manager::{ViewDataProcessor, ViewDataProcessorMap};
use crate::{
dart_notification::{send_dart_notification, FolderNotification},

View File

@ -359,6 +359,7 @@ pub async fn create_view(
desc: desc.to_string(),
thumbnail: None,
data_type,
sub_data_type: None,
plugin_type: 0,
data: vec![],
};

View File

@ -32,7 +32,7 @@ impl std::convert::From<&GridGroupRevision> for GridGroupConfigurationPB {
#[derive(ProtoBuf, Debug, Default, Clone)]
pub struct RepeatedGridGroupPB {
#[pb(index = 1)]
groups: Vec<GroupPB>,
items: Vec<GroupPB>,
}
#[derive(ProtoBuf, Debug, Default, Clone)]

View File

@ -6,7 +6,7 @@ use flowy_derive::{ProtoBuf, ProtoBuf_Enum};
use flowy_error::ErrorCode;
use flowy_grid_data_model::parser::NotEmptyStr;
use flowy_grid_data_model::revision::GridLayoutRevision;
use flowy_sync::entities::grid::{DeleteGroupParams, GridSettingChangesetParams};
use flowy_sync::entities::grid::GridSettingChangesetParams;
use std::collections::HashMap;
use std::convert::TryInto;
use strum::IntoEnumIterator;

View File

@ -35,6 +35,8 @@ pub struct GridRevisionEditor {
block_manager: Arc<GridBlockManager>,
#[allow(dead_code)]
pub(crate) filter_service: Arc<GridFilterService>,
#[allow(dead_code)]
pub(crate) group_service: Arc<GridGroupService>,
}

View File

@ -5,8 +5,11 @@ use std::sync::Arc;
use tokio::sync::RwLock;
pub(crate) struct GridGroupService {
#[allow(dead_code)]
scheduler: Arc<dyn GridServiceTaskScheduler>,
#[allow(dead_code)]
grid_pad: Arc<RwLock<GridRevisionPad>>,
#[allow(dead_code)]
block_manager: Arc<GridBlockManager>,
}

View File

@ -1,3 +1,3 @@
mod group_service;
pub use group_service::*;
pub(crate) use group_service::*;

View File

@ -50,18 +50,16 @@ impl<'a> RowRevisionBuilder<'a> {
}
}
pub fn insert_select_option_cell(mut self, field_id: &str, data: String) -> Self {
pub fn insert_select_option_cell(&mut self, field_id: &str, data: String) {
match self.field_rev_map.get(&field_id.to_owned()) {
None => {
tracing::warn!("Invalid field_id: {}", field_id);
self
}
Some(field_rev) => {
let cell_data = SelectOptionCellChangeset::from_insert(&data).to_str();
let data = apply_cell_data_changeset(cell_data, None, field_rev).unwrap();
let cell = CellRevision::new(data);
self.payload.cell_by_field_id.insert(field_id.to_owned(), cell);
self
}
}
}

View File

@ -48,19 +48,18 @@ pub fn make_default_board() -> BuildGridContext {
let done_option = SelectOptionPB::new("Done");
let single_select = SingleSelectTypeOptionBuilder::default()
.add_option(not_started_option.clone())
.add_option(in_progress_option.clone())
.add_option(done_option.clone());
.add_option(in_progress_option)
.add_option(done_option);
let single_select_field = FieldBuilder::new(single_select).name("Status").visibility(true).build();
let single_select_field_id = single_select_field.id.clone();
grid_builder.add_field(single_select_field);
// rows
// Insert rows
for _ in 0..3 {
grid_builder.add_row(
RowRevisionBuilder::new(grid_builder.block_id(), grid_builder.field_revs())
.insert_select_option_cell(&single_select_field_id, not_started_option.id.clone())
.build(),
);
let mut row_builder = RowRevisionBuilder::new(grid_builder.block_id(), grid_builder.field_revs());
row_builder.insert_select_option_cell(&single_select_field_id, not_started_option.id.clone());
let row = row_builder.build();
grid_builder.add_row(row);
}
grid_builder.build()

View File

@ -10,7 +10,6 @@ use flowy_grid_data_model::revision::{FieldRevision, RowRevision};
use strum::EnumCount;
pub struct GridRowTestBuilder<'a> {
block_id: String,
field_revs: &'a [Arc<FieldRevision>],
inner_builder: RowRevisionBuilder<'a>,
}
@ -20,7 +19,6 @@ impl<'a> GridRowTestBuilder<'a> {
assert_eq!(field_revs.len(), FieldType::COUNT);
let inner_builder = RowRevisionBuilder::new(block_id, field_revs);
Self {
block_id: block_id.to_owned(),
field_revs,
inner_builder,
}