util.rs 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. use flowy_grid::entities::*;
  2. use flowy_grid::services::field::selection_type_option::SelectOptionPB;
  3. use flowy_grid::services::field::*;
  4. use flowy_grid_data_model::revision::*;
  5. pub fn create_text_field(grid_id: &str) -> (CreateFieldParams, FieldRevision) {
  6. let mut field_rev = FieldBuilder::new(RichTextTypeOptionBuilder::default())
  7. .name("Name")
  8. .visibility(true)
  9. .build();
  10. let cloned_field_rev = field_rev.clone();
  11. let type_option_data = field_rev
  12. .get_type_option::<RichTextTypeOptionPB>(field_rev.ty)
  13. .unwrap()
  14. .protobuf_bytes()
  15. .to_vec();
  16. let type_option_builder = type_option_builder_from_bytes(type_option_data.clone(), &field_rev.ty.into());
  17. field_rev.insert_type_option(type_option_builder.data_format());
  18. let params = CreateFieldParams {
  19. grid_id: grid_id.to_owned(),
  20. field_type: field_rev.ty.into(),
  21. type_option_data: Some(type_option_data),
  22. };
  23. (params, cloned_field_rev)
  24. }
  25. pub fn create_single_select_field(grid_id: &str) -> (CreateFieldParams, FieldRevision) {
  26. let single_select = SingleSelectTypeOptionBuilder::default()
  27. .add_option(SelectOptionPB::new("Done"))
  28. .add_option(SelectOptionPB::new("Progress"));
  29. let mut field_rev = FieldBuilder::new(single_select).name("Name").visibility(true).build();
  30. let cloned_field_rev = field_rev.clone();
  31. let type_option_data = field_rev
  32. .get_type_option::<SingleSelectTypeOptionPB>(field_rev.ty)
  33. .unwrap()
  34. .protobuf_bytes()
  35. .to_vec();
  36. let type_option_builder = type_option_builder_from_bytes(type_option_data.clone(), &field_rev.ty.into());
  37. field_rev.insert_type_option(type_option_builder.data_format());
  38. let params = CreateFieldParams {
  39. grid_id: grid_id.to_owned(),
  40. field_type: field_rev.ty.into(),
  41. type_option_data: Some(type_option_data),
  42. };
  43. (params, cloned_field_rev)
  44. }
  45. // The grid will contains all existing field types and there are three empty rows in this grid.
  46. pub fn make_date_cell_string(s: &str) -> String {
  47. serde_json::to_string(&DateCellChangesetPB {
  48. date: Some(s.to_string()),
  49. time: None,
  50. })
  51. .unwrap()
  52. }