Nathan.fooo 32bd0ffca2
feat: migrate flowy-database (#2373)
* feat: add flowy-database2

* chore: config type option data

* chore: impl type option

* feat: config group

* fix: group compile

* feat: add sort

* chore: setting

* chore: insert with specific type

* chore: custom group

* chore: rename any map

* chore: use group setting

* chore: update

* chore: open database event

* chore: update database editor

* chore: update

* chore: update view editor

* chore: update

* chore: update view editor

* chore: sort feat

* chore: update handler

* chore: update

* chore: config handler event

* feat: impl handlers

* feat: impl handlers

* chore: layout setting

* feat: impl handlers

* chore: remove flowy-folder ref

* chore: integrate flowy-database2

* feat: get cell

* chore: create database with data

* chore: create view

* chore: fix dart compile

* fix: some bugs

* chore: update

* chore: merge develop

* chore: fix warning

* chore: integrate rocksdb

* fix: rocksdb compile errros

* fix: update cell

* chore: update the bundle identifier

* fix: create row

* fix: switch to field

* fix: duplicate grid

* test: migrate tests

* test: migrate tests

* test: update test

* test: migrate tests

* chore: add patch
2023-04-28 14:08:53 +08:00

57 lines
1.6 KiB
Rust

use crate::entities::{
CalendarLayoutSettingPB, DatabaseLayoutPB, DatabaseViewSettingPB, FilterPB, GroupSettingPB,
LayoutSettingPB, SortPB,
};
use crate::services::filter::Filter;
use crate::services::group::GroupSetting;
use crate::services::setting::CalendarLayoutSetting;
use crate::services::sort::Sort;
use collab_database::views::DatabaseView;
pub(crate) fn database_view_setting_pb_from_view(view: DatabaseView) -> DatabaseViewSettingPB {
let layout_setting = if let Some(layout_setting) = view.layout_settings.get(&view.layout) {
let calendar_setting =
CalendarLayoutSettingPB::from(CalendarLayoutSetting::from(layout_setting.clone()));
LayoutSettingPB {
calendar: Some(calendar_setting),
}
} else {
LayoutSettingPB::default()
};
let current_layout: DatabaseLayoutPB = view.layout.into();
let filters = view
.filters
.into_iter()
.flat_map(|value| match Filter::try_from(value) {
Ok(filter) => Some(FilterPB::from(&filter)),
Err(_) => None,
})
.collect::<Vec<FilterPB>>();
let group_settings = view
.group_settings
.into_iter()
.flat_map(|value| match GroupSetting::try_from(value) {
Ok(setting) => Some(GroupSettingPB::from(&setting)),
Err(_) => None,
})
.collect::<Vec<GroupSettingPB>>();
let sorts = view
.sorts
.into_iter()
.flat_map(|value| match Sort::try_from(value) {
Ok(sort) => Some(SortPB::from(&sort)),
Err(_) => None,
})
.collect::<Vec<SortPB>>();
DatabaseViewSettingPB {
current_layout,
filters: filters.into(),
group_settings: group_settings.into(),
sorts: sorts.into(),
layout_setting,
}
}