|
@@ -1,7 +1,7 @@
|
|
|
use crate::dart_notification::{send_dart_notification, GridNotification};
|
|
|
use crate::entities::CellIdentifier;
|
|
|
use crate::manager::GridUser;
|
|
|
-use crate::services::block_meta_manager::GridBlockManager;
|
|
|
+use crate::services::block::GridBlockMetaManager;
|
|
|
use crate::services::field::{default_type_option_builder_from_type, type_option_builder_from_bytes, FieldBuilder};
|
|
|
use crate::services::persistence::block_index::BlockIndexCache;
|
|
|
use crate::services::row::*;
|
|
@@ -24,7 +24,7 @@ pub struct GridMetaEditor {
|
|
|
user: Arc<dyn GridUser>,
|
|
|
grid_pad: Arc<RwLock<GridMetaPad>>,
|
|
|
rev_manager: Arc<RevisionManager>,
|
|
|
- block_manager: Arc<GridBlockManager>,
|
|
|
+ block_meta_manager: Arc<GridBlockMetaManager>,
|
|
|
}
|
|
|
|
|
|
impl Drop for GridMetaEditor {
|
|
@@ -47,13 +47,13 @@ impl GridMetaEditor {
|
|
|
let grid_pad = Arc::new(RwLock::new(grid_pad));
|
|
|
let blocks = grid_pad.read().await.get_block_metas();
|
|
|
|
|
|
- let block_meta_manager = Arc::new(GridBlockManager::new(grid_id, &user, blocks, persistence).await?);
|
|
|
+ let block_meta_manager = Arc::new(GridBlockMetaManager::new(grid_id, &user, blocks, persistence).await?);
|
|
|
Ok(Arc::new(Self {
|
|
|
grid_id: grid_id.to_owned(),
|
|
|
user,
|
|
|
grid_pad,
|
|
|
rev_manager,
|
|
|
- block_manager: block_meta_manager,
|
|
|
+ block_meta_manager,
|
|
|
}))
|
|
|
}
|
|
|
|
|
@@ -240,12 +240,12 @@ impl GridMetaEditor {
|
|
|
Ok(field_metas)
|
|
|
}
|
|
|
|
|
|
- pub async fn create_block(&self, grid_block: GridBlockMeta) -> FlowyResult<()> {
|
|
|
+ pub async fn create_block(&self, grid_block: GridBlockMetaSnapshot) -> FlowyResult<()> {
|
|
|
let _ = self.modify(|grid| Ok(grid.create_block_meta(grid_block)?)).await?;
|
|
|
Ok(())
|
|
|
}
|
|
|
|
|
|
- pub async fn update_block(&self, changeset: GridBlockMetaChangeset) -> FlowyResult<()> {
|
|
|
+ pub async fn update_block(&self, changeset: GridBlockInfoChangeset) -> FlowyResult<()> {
|
|
|
let _ = self.modify(|grid| Ok(grid.update_block_meta(changeset)?)).await?;
|
|
|
Ok(())
|
|
|
}
|
|
@@ -260,10 +260,13 @@ impl GridMetaEditor {
|
|
|
let row_order = RowOrder::from(&row_meta);
|
|
|
|
|
|
// insert the row
|
|
|
- let row_count = self.block_manager.create_row(&block_id, row_meta, start_row_id).await?;
|
|
|
+ let row_count = self
|
|
|
+ .block_meta_manager
|
|
|
+ .create_row(&block_id, row_meta, start_row_id)
|
|
|
+ .await?;
|
|
|
|
|
|
// update block row count
|
|
|
- let changeset = GridBlockMetaChangeset::from_row_count(&block_id, row_count);
|
|
|
+ let changeset = GridBlockInfoChangeset::from_row_count(&block_id, row_count);
|
|
|
let _ = self.update_block(changeset).await?;
|
|
|
Ok(row_order)
|
|
|
}
|
|
@@ -280,7 +283,7 @@ impl GridMetaEditor {
|
|
|
.or_insert_with(Vec::new)
|
|
|
.push(row_meta);
|
|
|
}
|
|
|
- let changesets = self.block_manager.insert_row(rows_by_block_id).await?;
|
|
|
+ let changesets = self.block_meta_manager.insert_row(rows_by_block_id).await?;
|
|
|
for changeset in changesets {
|
|
|
let _ = self.update_block(changeset).await?;
|
|
|
}
|
|
@@ -289,7 +292,7 @@ impl GridMetaEditor {
|
|
|
|
|
|
pub async fn update_row(&self, changeset: RowMetaChangeset) -> FlowyResult<()> {
|
|
|
let field_metas = self.get_field_metas::<FieldOrder>(None).await?;
|
|
|
- self.block_manager
|
|
|
+ self.block_meta_manager
|
|
|
.update_row(changeset, |row_meta| make_row_from_row_meta(&field_metas, row_meta))
|
|
|
.await
|
|
|
}
|
|
@@ -312,7 +315,7 @@ impl GridMetaEditor {
|
|
|
}
|
|
|
|
|
|
pub async fn get_row(&self, row_id: &str) -> FlowyResult<Option<Row>> {
|
|
|
- match self.block_manager.get_row_meta(row_id).await? {
|
|
|
+ match self.block_meta_manager.get_row_meta(row_id).await? {
|
|
|
None => Ok(None),
|
|
|
Some(row_meta) => {
|
|
|
let field_metas = self.get_field_metas::<FieldOrder>(None).await?;
|
|
@@ -324,7 +327,7 @@ impl GridMetaEditor {
|
|
|
}
|
|
|
}
|
|
|
pub async fn delete_row(&self, row_id: &str) -> FlowyResult<()> {
|
|
|
- let _ = self.block_manager.delete_row(row_id).await?;
|
|
|
+ let _ = self.block_meta_manager.delete_row(row_id).await?;
|
|
|
Ok(())
|
|
|
}
|
|
|
|
|
@@ -334,12 +337,12 @@ impl GridMetaEditor {
|
|
|
|
|
|
pub async fn get_cell(&self, params: &CellIdentifier) -> Option<Cell> {
|
|
|
let field_meta = self.get_field_meta(¶ms.field_id).await?;
|
|
|
- let row_meta = self.block_manager.get_row_meta(¶ms.row_id).await.ok()??;
|
|
|
+ let row_meta = self.block_meta_manager.get_row_meta(¶ms.row_id).await.ok()??;
|
|
|
make_cell(¶ms.field_id, &field_meta, &row_meta)
|
|
|
}
|
|
|
|
|
|
pub async fn get_cell_meta(&self, row_id: &str, field_id: &str) -> FlowyResult<Option<CellMeta>> {
|
|
|
- let row_meta = self.block_manager.get_row_meta(row_id).await?;
|
|
|
+ let row_meta = self.block_meta_manager.get_row_meta(row_id).await?;
|
|
|
match row_meta {
|
|
|
None => Ok(None),
|
|
|
Some(row_meta) => {
|
|
@@ -385,7 +388,7 @@ impl GridMetaEditor {
|
|
|
cell_content_changeset,
|
|
|
};
|
|
|
let _ = self
|
|
|
- .block_manager
|
|
|
+ .block_meta_manager
|
|
|
.update_cell(cell_changeset, |row_meta| {
|
|
|
make_row_from_row_meta(&field_metas, row_meta)
|
|
|
})
|
|
@@ -400,13 +403,13 @@ impl GridMetaEditor {
|
|
|
make_grid_blocks(block_ids, block_snapshots)
|
|
|
}
|
|
|
|
|
|
- pub async fn get_block_metas(&self) -> FlowyResult<Vec<GridBlockMeta>> {
|
|
|
+ pub async fn get_block_metas(&self) -> FlowyResult<Vec<GridBlockMetaSnapshot>> {
|
|
|
let grid_blocks = self.grid_pad.read().await.get_block_metas();
|
|
|
Ok(grid_blocks)
|
|
|
}
|
|
|
|
|
|
pub async fn delete_rows(&self, row_orders: Vec<RowOrder>) -> FlowyResult<()> {
|
|
|
- let changesets = self.block_manager.delete_rows(row_orders).await?;
|
|
|
+ let changesets = self.block_meta_manager.delete_rows(row_orders).await?;
|
|
|
for changeset in changesets {
|
|
|
let _ = self.update_block(changeset).await?;
|
|
|
}
|
|
@@ -418,7 +421,7 @@ impl GridMetaEditor {
|
|
|
let field_orders = pad_read_guard.get_field_orders();
|
|
|
let mut block_orders = vec![];
|
|
|
for block_order in pad_read_guard.get_block_metas() {
|
|
|
- let row_orders = self.block_manager.get_row_orders(&block_order.block_id).await?;
|
|
|
+ let row_orders = self.block_meta_manager.get_row_orders(&block_order.block_id).await?;
|
|
|
let block_order = GridBlockOrder {
|
|
|
block_id: block_order.block_id,
|
|
|
row_orders,
|
|
@@ -445,7 +448,7 @@ impl GridMetaEditor {
|
|
|
.collect::<Vec<String>>(),
|
|
|
Some(block_ids) => block_ids,
|
|
|
};
|
|
|
- let snapshots = self.block_manager.make_block_snapshots(block_ids).await?;
|
|
|
+ let snapshots = self.block_meta_manager.make_block_snapshots(block_ids).await?;
|
|
|
Ok(snapshots)
|
|
|
}
|
|
|
|
|
@@ -479,7 +482,10 @@ impl GridMetaEditor {
|
|
|
}
|
|
|
|
|
|
pub async fn move_row(&self, row_id: &str, from: i32, to: i32) -> FlowyResult<()> {
|
|
|
- let _ = self.block_manager.move_row(row_id, from as usize, to as usize).await?;
|
|
|
+ let _ = self
|
|
|
+ .block_meta_manager
|
|
|
+ .move_row(row_id, from as usize, to as usize)
|
|
|
+ .await?;
|
|
|
Ok(())
|
|
|
}
|
|
|
|
|
@@ -495,13 +501,14 @@ impl GridMetaEditor {
|
|
|
let mut blocks_meta_data = vec![];
|
|
|
if original_blocks.len() == duplicated_blocks.len() {
|
|
|
for (index, original_block_meta) in original_blocks.iter().enumerate() {
|
|
|
- let grid_block_meta_editor = self.block_manager.get_editor(&original_block_meta.block_id).await?;
|
|
|
+ let grid_block_meta_editor = self
|
|
|
+ .block_meta_manager
|
|
|
+ .get_editor(&original_block_meta.block_id)
|
|
|
+ .await?;
|
|
|
let duplicated_block_id = &duplicated_blocks[index].block_id;
|
|
|
|
|
|
tracing::trace!("Duplicate block:{} meta data", duplicated_block_id);
|
|
|
- let duplicated_block_meta_data = grid_block_meta_editor
|
|
|
- .duplicate_block_meta_data(duplicated_block_id)
|
|
|
- .await;
|
|
|
+ let duplicated_block_meta_data = grid_block_meta_editor.duplicate_block_meta(duplicated_block_id).await;
|
|
|
blocks_meta_data.push(duplicated_block_meta_data);
|
|
|
}
|
|
|
} else {
|