diff --git a/src/common/config/migrationPreferences.test.js b/src/common/config/migrationPreferences.test.js index 0f72c36a..6a89cbfd 100644 --- a/src/common/config/migrationPreferences.test.js +++ b/src/common/config/migrationPreferences.test.js @@ -29,7 +29,7 @@ describe('common/config/migrationPreferences', () => { getValue: () => false, setValue: jest.fn(), })); - expect(migrateConfigItems({})).toBe(true); + expect(migrateConfigItems({teams: []})).toBe(true); Object.defineProperty(process, 'platform', { value: originalPlatform, }); diff --git a/src/common/config/migrationPreferences.ts b/src/common/config/migrationPreferences.ts index e78b44da..2b237b94 100644 --- a/src/common/config/migrationPreferences.ts +++ b/src/common/config/migrationPreferences.ts @@ -4,6 +4,7 @@ import {Config, MigrationInfo} from 'types/config'; import JsonFileManager from 'common/JsonFileManager'; +import {TAB_MESSAGING} from 'common/views/View'; import {migrationInfoPath} from 'main/constants'; @@ -17,5 +18,15 @@ export default function migrateConfigItems(config: Config) { didMigrate = true; } + if (!migrationPrefs.getValue('closeExtraTabs')) { + config.teams.forEach((team) => { + team.tabs.filter((tab) => tab.name !== TAB_MESSAGING).forEach((tab) => { + tab.isOpen = false; + }); + }); + migrationPrefs.setValue('closeExtraTabs', true); + didMigrate = true; + } + return didMigrate; } diff --git a/src/common/servers/serverManager.test.js b/src/common/servers/serverManager.test.js index f1a0945a..72213e95 100644 --- a/src/common/servers/serverManager.test.js +++ b/src/common/servers/serverManager.test.js @@ -53,42 +53,6 @@ describe('common/servers/serverManager', () => { expect(serverManager.persistServers).not.toHaveBeenCalled(); }); - it('should open all views', async () => { - serverManager.updateRemoteInfos(new Map([['server-1', { - siteURL: 'http://server-1.com', - serverVersion: '6.0.0', - hasPlaybooks: true, - hasFocalboard: true, - }]])); - - expect(serverManager.views.get('view-2').isOpen).toBe(true); - expect(serverManager.views.get('view-3').isOpen).toBe(true); - }); - - it('should open only playbooks', async () => { - serverManager.updateRemoteInfos(new Map([['server-1', { - siteURL: 'http://server-1.com', - serverVersion: '6.0.0', - hasPlaybooks: true, - hasFocalboard: false, - }]])); - - expect(serverManager.views.get('view-2').isOpen).toBe(true); - expect(serverManager.views.get('view-3').isOpen).toBeUndefined(); - }); - - it('should open none when server version is too old', async () => { - serverManager.updateRemoteInfos(new Map([['server-1', { - siteURL: 'http://server-1.com', - serverVersion: '5.0.0', - hasPlaybooks: true, - hasFocalboard: true, - }]])); - - expect(serverManager.views.get('view-2').isOpen).toBeUndefined(); - expect(serverManager.views.get('view-3').isOpen).toBeUndefined(); - }); - it('should update server URL using site URL', async () => { serverManager.updateRemoteInfos(new Map([['server-1', { siteURL: 'http://server-2.com', diff --git a/src/common/servers/serverManager.ts b/src/common/servers/serverManager.ts index 29b6c467..1a957322 100644 --- a/src/common/servers/serverManager.ts +++ b/src/common/servers/serverManager.ts @@ -18,7 +18,6 @@ import MessagingView from 'common/views/MessagingView'; import FocalboardView from 'common/views/FocalboardView'; import PlaybooksView from 'common/views/PlaybooksView'; import {getFormattedPathName, isInternalURL, parseURL} from 'common/utils/url'; -import Utils from 'common/utils/util'; const log = new Logger('ServerManager'); @@ -108,7 +107,6 @@ export class ServerManager extends EventEmitter { remoteInfos.forEach((remoteInfo, serverId) => { this.remoteInfo.set(serverId, remoteInfo); hasUpdates = this.updateServerURL(serverId) || hasUpdates; - hasUpdates = this.openExtraViews(serverId) || hasUpdates; }); if (hasUpdates) { @@ -379,42 +377,6 @@ export class ServerManager extends EventEmitter { return false; } - private openExtraViews = (serverId: string) => { - const server = this.servers.get(serverId); - const remoteInfo = this.remoteInfo.get(serverId); - - if (!(server && remoteInfo)) { - return false; - } - - if (!(remoteInfo.serverVersion && Utils.isVersionGreaterThanOrEqualTo(remoteInfo.serverVersion, '6.0.0'))) { - return false; - } - - let hasUpdates = false; - const viewOrder = this.viewOrder.get(serverId); - if (viewOrder) { - viewOrder.forEach((viewId) => { - const view = this.views.get(viewId); - if (view) { - if (view.type === TAB_PLAYBOOKS && remoteInfo.hasPlaybooks && typeof view.isOpen === 'undefined') { - log.withPrefix(view.id).verbose('opening Playbooks'); - view.isOpen = true; - this.views.set(viewId, view); - hasUpdates = true; - } - if (view.type === TAB_FOCALBOARD && remoteInfo.hasFocalboard && typeof view.isOpen === 'undefined') { - log.withPrefix(view.id).verbose('opening Boards'); - view.isOpen = true; - this.views.set(viewId, view); - hasUpdates = true; - } - } - }); - } - return hasUpdates; - } - private includeId = (id: string, ...prefixes: string[]) => { const shouldInclude = ['debug', 'silly'].includes(getLevel()); return shouldInclude ? [id, ...prefixes] : prefixes; diff --git a/src/types/config.ts b/src/types/config.ts index 53e228b1..7cefe22d 100644 --- a/src/types/config.ts +++ b/src/types/config.ts @@ -131,4 +131,5 @@ export type LocalConfiguration = Config & { export type MigrationInfo = { updateTrayIconWin32: boolean; masConfigs: boolean; + closeExtraTabs: boolean; }