From faea229921466adfe265770467334d66c9d20de9 Mon Sep 17 00:00:00 2001 From: Scott Bishel Date: Tue, 15 Aug 2023 08:27:45 -0600 Subject: [PATCH] MM-53688 Remove boards dataretention (#24231) * remove boards data-retention * remove another variable * update snapshots, to remove boards * need to keep config settings until focalboard is updated --------- Co-authored-by: Mattermost Build --- .../support/server/default_config.ts | 3 -- server/config/client.go | 4 -- .../platform/services/telemetry/telemetry.go | 2 - server/public/model/data_retention_policy.go | 2 - server/public/model/feature_flags.go | 4 -- .../data_retention_settings.test.tsx.snap | 47 ------------------- .../data_retention_settings.test.tsx | 3 -- .../data_retention_settings.tsx | 19 -------- .../global_policy_form/global_policy_form.tsx | 42 +---------------- webapp/channels/src/i18n/en.json | 2 - webapp/platform/types/src/config.ts | 2 - 11 files changed, 1 insertion(+), 129 deletions(-) diff --git a/e2e-tests/playwright/support/server/default_config.ts b/e2e-tests/playwright/support/server/default_config.ts index c57222c8a7..f33653f9db 100644 --- a/e2e-tests/playwright/support/server/default_config.ts +++ b/e2e-tests/playwright/support/server/default_config.ts @@ -583,10 +583,8 @@ const defaultServerConfig: AdminConfig = { DataRetentionSettings: { EnableMessageDeletion: false, EnableFileDeletion: false, - EnableBoardsDeletion: false, MessageRetentionDays: 365, FileRetentionDays: 365, - BoardsRetentionDays: 365, DeletionJobStartTime: '02:00', BatchSize: 3000, }, @@ -669,7 +667,6 @@ const defaultServerConfig: AdminConfig = { PermalinkPreviews: true, CallsEnabled: true, BoardsFeatureFlags: '', - BoardsDataRetention: false, NormalizeLdapDNs: false, GraphQL: false, CommandPalette: false, diff --git a/server/config/client.go b/server/config/client.go index 50f9c048a3..46dad7e496 100644 --- a/server/config/client.go +++ b/server/config/client.go @@ -126,8 +126,6 @@ func GenerateClientConfig(c *model.Config, telemetryID string, license *model.Li props["DataRetentionMessageRetentionDays"] = "0" props["DataRetentionEnableFileDeletion"] = "false" props["DataRetentionFileRetentionDays"] = "0" - props["DataRetentionEnableBoardsDeletion"] = "false" - props["DataRetentionBoardsRetentionDays"] = "0" props["CustomUrlSchemes"] = strings.Join(c.DisplaySettings.CustomURLSchemes, ",") props["IsDefaultMarketplace"] = strconv.FormatBool(*c.PluginSettings.MarketplaceURL == model.PluginSettingsDefaultMarketplaceURL) @@ -200,8 +198,6 @@ func GenerateClientConfig(c *model.Config, telemetryID string, license *model.Li props["DataRetentionMessageRetentionDays"] = strconv.FormatInt(int64(*c.DataRetentionSettings.MessageRetentionDays), 10) props["DataRetentionEnableFileDeletion"] = strconv.FormatBool(*c.DataRetentionSettings.EnableFileDeletion) props["DataRetentionFileRetentionDays"] = strconv.FormatInt(int64(*c.DataRetentionSettings.FileRetentionDays), 10) - props["DataRetentionEnableBoardsDeletion"] = strconv.FormatBool(*c.DataRetentionSettings.EnableBoardsDeletion) - props["DataRetentionBoardsRetentionDays"] = strconv.FormatInt(int64(*c.DataRetentionSettings.BoardsRetentionDays), 10) } if license.HasSharedChannels() { diff --git a/server/platform/services/telemetry/telemetry.go b/server/platform/services/telemetry/telemetry.go index ad5b7d0beb..ef8c485874 100644 --- a/server/platform/services/telemetry/telemetry.go +++ b/server/platform/services/telemetry/telemetry.go @@ -829,10 +829,8 @@ func (ts *TelemetryService) trackConfig() { ts.SendTelemetry(TrackConfigDataRetention, map[string]any{ "enable_message_deletion": *cfg.DataRetentionSettings.EnableMessageDeletion, "enable_file_deletion": *cfg.DataRetentionSettings.EnableFileDeletion, - "enable_boards_deletion": *cfg.DataRetentionSettings.EnableBoardsDeletion, "message_retention_days": *cfg.DataRetentionSettings.MessageRetentionDays, "file_retention_days": *cfg.DataRetentionSettings.FileRetentionDays, - "boards_retention_days": *cfg.DataRetentionSettings.BoardsRetentionDays, "deletion_job_start_time": *cfg.DataRetentionSettings.DeletionJobStartTime, "batch_size": *cfg.DataRetentionSettings.BatchSize, "time_between_batches": *cfg.DataRetentionSettings.TimeBetweenBatchesMilliseconds, diff --git a/server/public/model/data_retention_policy.go b/server/public/model/data_retention_policy.go index 1e2817c28a..f8d3ad6470 100644 --- a/server/public/model/data_retention_policy.go +++ b/server/public/model/data_retention_policy.go @@ -6,10 +6,8 @@ package model type GlobalRetentionPolicy struct { MessageDeletionEnabled bool `json:"message_deletion_enabled"` FileDeletionEnabled bool `json:"file_deletion_enabled"` - BoardsDeletionEnabled bool `json:"boards_deletion_enabled"` MessageRetentionCutoff int64 `json:"message_retention_cutoff"` FileRetentionCutoff int64 `json:"file_retention_cutoff"` - BoardsRetentionCutoff int64 `json:"boards_retention_cutoff"` } type RetentionPolicy struct { diff --git a/server/public/model/feature_flags.go b/server/public/model/feature_flags.go index a820acd289..73b7ebf8d7 100644 --- a/server/public/model/feature_flags.go +++ b/server/public/model/feature_flags.go @@ -27,9 +27,6 @@ type FeatureFlags struct { // CallsEnabled controls whether or not the Calls plugin should be enabled CallsEnabled bool - // Enable DataRetention for Boards - BoardsDataRetention bool - NormalizeLdapDNs bool // Enable GraphQL feature @@ -58,7 +55,6 @@ func (f *FeatureFlags) SetDefaults() { f.TestBoolFeature = false f.EnableRemoteClusterService = false f.AppsEnabled = true - f.BoardsDataRetention = false f.NormalizeLdapDNs = false f.GraphQL = false f.CallsEnabled = true diff --git a/webapp/channels/src/components/admin_console/data_retention_settings/__snapshots__/data_retention_settings.test.tsx.snap b/webapp/channels/src/components/admin_console/data_retention_settings/__snapshots__/data_retention_settings.test.tsx.snap index eba2b19e90..7943720835 100644 --- a/webapp/channels/src/components/admin_console/data_retention_settings/__snapshots__/data_retention_settings.test.tsx.snap +++ b/webapp/channels/src/components/admin_console/data_retention_settings/__snapshots__/data_retention_settings.test.tsx.snap @@ -112,14 +112,6 @@ exports[`components/admin_console/data_retention_settings/data_retention_setting /> , - "boards":
- -
, "channel_messages":
@@ -490,19 +482,6 @@ exports[`components/admin_console/data_retention_settings/data_retention_setting /> , - "boards":
- -
, "channel_messages":
@@ -888,19 +867,6 @@ exports[`components/admin_console/data_retention_settings/data_retention_setting /> , - "boards":
- -
, "channel_messages":
@@ -1281,19 +1247,6 @@ exports[`components/admin_console/data_retention_settings/data_retention_setting /> , - "boards":
- -
, "channel_messages":
diff --git a/webapp/channels/src/components/admin_console/data_retention_settings/data_retention_settings.test.tsx b/webapp/channels/src/components/admin_console/data_retention_settings/data_retention_settings.test.tsx index 06b98cbc2d..9453f7799a 100644 --- a/webapp/channels/src/components/admin_console/data_retention_settings/data_retention_settings.test.tsx +++ b/webapp/channels/src/components/admin_console/data_retention_settings/data_retention_settings.test.tsx @@ -12,10 +12,8 @@ describe('components/admin_console/data_retention_settings/data_retention_settin DataRetentionSettings: { EnableMessageDeletion: true, EnableFileDeletion: true, - EnableBoardsDeletion: true, MessageRetentionDays: 100, FileRetentionDays: 100, - BoardsRetentionDays: 100, DeletionJobStartTime: '00:15', }, }, @@ -83,7 +81,6 @@ describe('components/admin_console/data_retention_settings/data_retention_settin const props = baseProps; props.config.DataRetentionSettings.EnableMessageDeletion = false; props.config.DataRetentionSettings.EnableFileDeletion = false; - props.config.DataRetentionSettings.EnableBoardsDeletion = false; const wrapper = shallow( { const columns: Column[] = [ { @@ -100,19 +99,6 @@ export default class DataRetentionSettings extends React.PureComponent - ), - field: 'boards', - }, - ); - } columns.push( { name: '', @@ -205,11 +191,6 @@ export default class DataRetentionSettings extends React.PureComponent ), - boards: ( -
- {this.getMessageRetentionSetting(DataRetentionSettings?.EnableBoardsDeletion, DataRetentionSettings?.BoardsRetentionDays)} -
- ), actions: ( messageRetentionInputValue: this.getDefaultInputValue(DataRetentionSettings?.EnableMessageDeletion, DataRetentionSettings?.MessageRetentionDays), fileRetentionDropdownValue: this.getDefaultDropdownValue(DataRetentionSettings?.EnableFileDeletion, DataRetentionSettings?.FileRetentionDays), fileRetentionInputValue: this.getDefaultInputValue(DataRetentionSettings?.EnableFileDeletion, DataRetentionSettings?.FileRetentionDays), - boardsRetentionDropdownValue: this.getDefaultDropdownValue(DataRetentionSettings?.EnableBoardsDeletion, DataRetentionSettings?.BoardsRetentionDays), - boardsRetentionInputValue: this.getDefaultInputValue(DataRetentionSettings?.EnableBoardsDeletion, DataRetentionSettings?.BoardsRetentionDays), }; } - includeBoards = this.props.config.PluginSettings?.PluginStates?.focalboard?.Enable && this.props.config.FeatureFlags?.BoardsDataRetention; - getDefaultInputValue = (isEnabled: boolean | undefined, days: number | undefined): string => { if (!isEnabled || days === undefined) { return ''; @@ -84,7 +78,7 @@ export default class GlobalPolicyForm extends React.PureComponent }; handleSubmit = async () => { - const {messageRetentionDropdownValue, messageRetentionInputValue, fileRetentionDropdownValue, fileRetentionInputValue, boardsRetentionDropdownValue, boardsRetentionInputValue} = this.state; + const {messageRetentionDropdownValue, messageRetentionInputValue, fileRetentionDropdownValue, fileRetentionInputValue} = this.state; const newConfig: AdminConfig = JSON.parse(JSON.stringify(this.props.config)); this.setState({saving: true}); @@ -108,13 +102,6 @@ export default class GlobalPolicyForm extends React.PureComponent newConfig.DataRetentionSettings.FileRetentionDays = fileDays; } - newConfig.DataRetentionSettings.EnableBoardsDeletion = this.setDeletionEnabled(boardsRetentionDropdownValue.value); - - const boardsDays = this.setRetentionDays(boardsRetentionDropdownValue.value, boardsRetentionInputValue); - if (boardsDays >= 1) { - newConfig.DataRetentionSettings.BoardsRetentionDays = boardsDays; - } - const {error} = await this.props.actions.updateConfig(newConfig); if (error) { @@ -222,33 +209,6 @@ export default class GlobalPolicyForm extends React.PureComponent inputId={'file_retention_input'} />
- { this.includeBoards && -
- { - if (this.state.boardsRetentionDropdownValue.value !== value.value) { - this.setState({boardsRetentionDropdownValue: value, saveNeeded: true}); - this.props.actions.setNavigationBlocked(true); - } - }} - onInputChange={(e) => { - this.setState({boardsRetentionInputValue: e.target.value, saveNeeded: true}); - this.props.actions.setNavigationBlocked(true); - }} - value={this.state.boardsRetentionDropdownValue} - inputValue={this.state.boardsRetentionInputValue} - width={90} - exceptionToInput={[FOREVER]} - defaultValue={keepForeverOption()} - options={[daysOption(), yearsOption(), keepForeverOption()]} - legend={Utils.localizeMessage('admin.data_retention.form.boardsRetention', 'Boards retention')} - placeholder={Utils.localizeMessage('admin.data_retention.form.boardsRetention', 'Boards retention')} - name={'boards_retention'} - inputType={'number'} - dropdownClassNamePrefix={'boards_retention_dropdown'} - inputId={'boards_retention_input'} - /> -
}
diff --git a/webapp/channels/src/i18n/en.json b/webapp/channels/src/i18n/en.json index 5e06a0416d..b7559736fd 100644 --- a/webapp/channels/src/i18n/en.json +++ b/webapp/channels/src/i18n/en.json @@ -708,7 +708,6 @@ "admin.data_retention.customPoliciesTable.channelMessages": "Channel messages", "admin.data_retention.customPoliciesTable.description": "Description", "admin.data_retention.customTitle": "Custom Retention Policy", - "admin.data_retention.form.boardsRetention": "Boards retention", "admin.data_retention.form.channelAndDirectMessageRetention": "Channel & direct message retention", "admin.data_retention.form.days": "Days", "admin.data_retention.form.fileRetention": "File retention", @@ -716,7 +715,6 @@ "admin.data_retention.form.text": "Applies to all teams and channels, but does not apply to custom retention policies.", "admin.data_retention.form.years": "Years", "admin.data_retention.global_policy.form.numberError": "You must add a number greater than or equal to 1.", - "admin.data_retention.globalPoliciesTable.boards": "Boards", "admin.data_retention.globalPoliciesTable.channelMessages": "Channel messages", "admin.data_retention.globalPoliciesTable.delete": "Delete", "admin.data_retention.globalPoliciesTable.description": "Description", diff --git a/webapp/platform/types/src/config.ts b/webapp/platform/types/src/config.ts index 12edcd1dc3..21dca76dc8 100644 --- a/webapp/platform/types/src/config.ts +++ b/webapp/platform/types/src/config.ts @@ -790,10 +790,8 @@ export type BleveSettings = { export type DataRetentionSettings = { EnableMessageDeletion: boolean; EnableFileDeletion: boolean; - EnableBoardsDeletion: boolean; MessageRetentionDays: number; FileRetentionDays: number; - BoardsRetentionDays: number; DeletionJobStartTime: string; BatchSize: number; };