Add a group setting to the view. If the setting already exists, it will be replaced.
(&mut self, view_id: &str, group_setting: impl Into<GroupSettingMap>)
| 829 | |
| 830 | /// Add a group setting to the view. If the setting already exists, it will be replaced. |
| 831 | pub fn insert_group_setting(&mut self, view_id: &str, group_setting: impl Into<GroupSettingMap>) { |
| 832 | let mut txn = self.collab.transact_mut(); |
| 833 | if let Ok(view_id) = self.body.parse_view_id(view_id) { |
| 834 | self |
| 835 | .body |
| 836 | .views |
| 837 | .update_database_view(&mut txn, &view_id, |update| { |
| 838 | update.update_groups(|txn, group_update| { |
| 839 | let group_setting = group_setting.into(); |
| 840 | let settings = if let Some(Any::String(setting_id)) = group_setting.get("id") { |
| 841 | group_update.upsert(txn, setting_id) |
| 842 | } else { |
| 843 | group_update.push_back(txn, MapPrelim::default()) |
| 844 | }; |
| 845 | Any::from(group_setting).fill(txn, &settings).unwrap(); |
| 846 | }); |
| 847 | }); |
| 848 | } |
| 849 | } |
| 850 | |
| 851 | pub fn delete_group_setting(&mut self, view_id: &str, group_setting_id: &str) { |
| 852 | let mut txn = self.collab.transact_mut(); |