|
@@ -1,4 +1,4 @@
|
|
-use crate::entities::grid::{CreateGridFilterParams, CreateGridGroupParams, GridSettingChangesetParams};
|
|
|
|
|
|
+use crate::entities::grid::{CreatGroupParams, CreateFilterParams, GridSettingChangesetParams};
|
|
use crate::entities::revision::{md5, Revision};
|
|
use crate::entities::revision::{md5, Revision};
|
|
use crate::errors::{internal_error, CollaborateError, CollaborateResult};
|
|
use crate::errors::{internal_error, CollaborateError, CollaborateResult};
|
|
use crate::util::{cal_diff, make_text_delta_from_revisions};
|
|
use crate::util::{cal_diff, make_text_delta_from_revisions};
|
|
@@ -54,55 +54,6 @@ impl GridViewRevisionPad {
|
|
&self.view.setting
|
|
&self.view.setting
|
|
}
|
|
}
|
|
|
|
|
|
- pub fn update_setting(
|
|
|
|
- &mut self,
|
|
|
|
- changeset: GridSettingChangesetParams,
|
|
|
|
- ) -> CollaborateResult<Option<GridViewRevisionChangeset>> {
|
|
|
|
- self.modify(|view| {
|
|
|
|
- let mut is_changed = None;
|
|
|
|
- if let Some(params) = changeset.insert_filter {
|
|
|
|
- view.setting.filters.insert_object(
|
|
|
|
- ¶ms.field_id,
|
|
|
|
- ¶ms.field_type_rev,
|
|
|
|
- make_filter_revision(¶ms),
|
|
|
|
- );
|
|
|
|
- is_changed = Some(())
|
|
|
|
- }
|
|
|
|
- if let Some(params) = changeset.delete_filter {
|
|
|
|
- if let Some(filters) = view
|
|
|
|
- .setting
|
|
|
|
- .filters
|
|
|
|
- .get_mut_objects(¶ms.field_id, ¶ms.field_type_rev)
|
|
|
|
- {
|
|
|
|
- filters.retain(|filter| filter.id != params.filter_id);
|
|
|
|
- is_changed = Some(())
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- if let Some(params) = changeset.insert_group {
|
|
|
|
- view.setting.groups.remove_all();
|
|
|
|
- view.setting.groups.insert_object(
|
|
|
|
- ¶ms.field_id,
|
|
|
|
- ¶ms.field_type_rev,
|
|
|
|
- make_group_revision(¶ms),
|
|
|
|
- );
|
|
|
|
-
|
|
|
|
- is_changed = Some(());
|
|
|
|
- }
|
|
|
|
- if let Some(params) = changeset.delete_group {
|
|
|
|
- if let Some(groups) = view
|
|
|
|
- .setting
|
|
|
|
- .groups
|
|
|
|
- .get_mut_objects(¶ms.field_id, ¶ms.field_type_rev)
|
|
|
|
- {
|
|
|
|
- groups.retain(|group| group.id != params.group_id);
|
|
|
|
- is_changed = Some(());
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- Ok(is_changed)
|
|
|
|
- })
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
pub fn get_all_groups(&self, field_revs: &[Arc<FieldRevision>]) -> Option<GroupConfigurationsByFieldId> {
|
|
pub fn get_all_groups(&self, field_revs: &[Arc<FieldRevision>]) -> Option<GroupConfigurationsByFieldId> {
|
|
self.setting.groups.get_all_objects(field_revs)
|
|
self.setting.groups.get_all_objects(field_revs)
|
|
}
|
|
}
|
|
@@ -216,7 +167,7 @@ impl GridViewRevisionPad {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-fn make_filter_revision(params: &CreateGridFilterParams) -> FilterConfigurationRevision {
|
|
|
|
|
|
+fn make_filter_revision(params: &CreateFilterParams) -> FilterConfigurationRevision {
|
|
FilterConfigurationRevision {
|
|
FilterConfigurationRevision {
|
|
id: gen_grid_filter_id(),
|
|
id: gen_grid_filter_id(),
|
|
field_id: params.field_id.clone(),
|
|
field_id: params.field_id.clone(),
|
|
@@ -225,7 +176,7 @@ fn make_filter_revision(params: &CreateGridFilterParams) -> FilterConfigurationR
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-fn make_group_revision(params: &CreateGridGroupParams) -> GroupConfigurationRevision {
|
|
|
|
|
|
+fn make_group_revision(params: &CreatGroupParams) -> GroupConfigurationRevision {
|
|
GroupConfigurationRevision {
|
|
GroupConfigurationRevision {
|
|
id: gen_grid_group_id(),
|
|
id: gen_grid_group_id(),
|
|
field_id: params.field_id.clone(),
|
|
field_id: params.field_id.clone(),
|