Nathan.fooo 61fd608200
Feat/view map database (#1885)
* refactor: rename structs

* chore: read database id from view

* chore: fix open database error because of create a database view for database id

* chore: fix tests

* chore: rename datbase id to view id in flutter

* refactor: move grid and board to database view folder

* refactor: rename functions

* refactor: move calender to datbase view folder

* refactor: rename app_flowy to appflowy_flutter

* chore: reanming

* chore: fix freeze gen

* chore: remove todos

* refactor: view process events

* chore: add link database test

* chore: just open view if there is opened database
2023-02-26 16:27:17 +08:00

70 lines
2.1 KiB
Rust

use database_model::*;
use flowy_database::entities::*;
use flowy_database::services::field::selection_type_option::SelectOptionPB;
use flowy_database::services::field::*;
pub fn create_text_field(grid_id: &str) -> (CreateFieldParams, FieldRevision) {
let mut field_rev = FieldBuilder::new(RichTextTypeOptionBuilder::default())
.name("Name")
.visibility(true)
.build();
let cloned_field_rev = field_rev.clone();
let type_option_data = field_rev
.get_type_option::<RichTextTypeOptionPB>(field_rev.ty)
.unwrap()
.protobuf_bytes()
.to_vec();
let type_option_builder =
type_option_builder_from_bytes(type_option_data.clone(), &field_rev.ty.into());
field_rev.insert_type_option(type_option_builder.serializer());
let params = CreateFieldParams {
view_id: grid_id.to_owned(),
field_type: field_rev.ty.into(),
type_option_data: Some(type_option_data),
};
(params, cloned_field_rev)
}
pub fn create_single_select_field(grid_id: &str) -> (CreateFieldParams, FieldRevision) {
let single_select = SingleSelectTypeOptionBuilder::default()
.add_option(SelectOptionPB::new("Done"))
.add_option(SelectOptionPB::new("Progress"));
let mut field_rev = FieldBuilder::new(single_select)
.name("Name")
.visibility(true)
.build();
let cloned_field_rev = field_rev.clone();
let type_option_data = field_rev
.get_type_option::<SingleSelectTypeOptionPB>(field_rev.ty)
.unwrap()
.protobuf_bytes()
.to_vec();
let type_option_builder =
type_option_builder_from_bytes(type_option_data.clone(), &field_rev.ty.into());
field_rev.insert_type_option(type_option_builder.serializer());
let params = CreateFieldParams {
view_id: grid_id.to_owned(),
field_type: field_rev.ty.into(),
type_option_data: Some(type_option_data),
};
(params, cloned_field_rev)
}
// The grid will contains all existing field types and there are three empty rows in this grid.
pub fn make_date_cell_string(s: &str) -> String {
serde_json::to_string(&DateCellChangeset {
date: Some(s.to_string()),
time: None,
is_utc: true,
})
.unwrap()
}