[MM-54979] Stop auto opening Boards/Playbooks tabs, close existing open tabs once for users that might have them open (#2886)
This commit is contained in:
parent
932eff2ea9
commit
8a52a94dd6
|
@ -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,
|
||||
});
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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',
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -131,4 +131,5 @@ export type LocalConfiguration = Config & {
|
|||
export type MigrationInfo = {
|
||||
updateTrayIconWin32: boolean;
|
||||
masConfigs: boolean;
|
||||
closeExtraTabs: boolean;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue