mirror of
https://github.com/n8n-io/n8n.git
synced 2025-03-05 20:50:17 -08:00
fix(core): Banner dismissal should also work for users migrating to v1 (no-changelog) (#6700)
This commit is contained in:
parent
cc29c4da74
commit
8bb7243c2d
|
@ -1,5 +1,6 @@
|
||||||
import { Service } from 'typedi';
|
import { Service } from 'typedi';
|
||||||
import { DataSource, Repository } from 'typeorm';
|
import { DataSource, Repository } from 'typeorm';
|
||||||
|
import { ErrorReporterProxy as ErrorReporter } from 'n8n-workflow';
|
||||||
import { Settings } from '../entities/Settings';
|
import { Settings } from '../entities/Settings';
|
||||||
import config from '@/config';
|
import config from '@/config';
|
||||||
|
|
||||||
|
@ -10,32 +11,24 @@ export class SettingsRepository extends Repository<Settings> {
|
||||||
}
|
}
|
||||||
|
|
||||||
async dismissBanner({ bannerName }: { bannerName: string }): Promise<{ success: boolean }> {
|
async dismissBanner({ bannerName }: { bannerName: string }): Promise<{ success: boolean }> {
|
||||||
const dismissedBannersSetting = await this.findOneBy({ key: 'ui.banners.dismissed' });
|
const key = 'ui.banners.dismissed';
|
||||||
|
const dismissedBannersSetting = await this.findOneBy({ key });
|
||||||
if (dismissedBannersSetting) {
|
try {
|
||||||
try {
|
let value: string;
|
||||||
|
if (dismissedBannersSetting) {
|
||||||
const dismissedBanners = JSON.parse(dismissedBannersSetting.value) as string[];
|
const dismissedBanners = JSON.parse(dismissedBannersSetting.value) as string[];
|
||||||
await this.saveSetting(
|
const updatedValue = [...new Set([...dismissedBanners, bannerName].sort())];
|
||||||
'ui.banners.dismissed',
|
value = JSON.stringify(updatedValue);
|
||||||
JSON.stringify([...dismissedBanners, bannerName]),
|
await this.update({ key }, { value, loadOnStartup: true });
|
||||||
);
|
} else {
|
||||||
return { success: true };
|
value = JSON.stringify([bannerName]);
|
||||||
} catch (error) {
|
await this.save({ key, value, loadOnStartup: true });
|
||||||
return { success: false };
|
|
||||||
}
|
}
|
||||||
|
config.set(key, value);
|
||||||
|
return { success: true };
|
||||||
|
} catch (error) {
|
||||||
|
ErrorReporter.error(error);
|
||||||
}
|
}
|
||||||
return { success: false };
|
return { success: false };
|
||||||
}
|
}
|
||||||
|
|
||||||
async saveSetting(key: string, value: string, loadOnStartup = true) {
|
|
||||||
const setting = await this.findOneBy({ key });
|
|
||||||
|
|
||||||
if (setting) {
|
|
||||||
await this.update({ key }, { value, loadOnStartup });
|
|
||||||
} else {
|
|
||||||
await this.save({ key, value, loadOnStartup });
|
|
||||||
}
|
|
||||||
|
|
||||||
if (loadOnStartup) config.set('ui.banners.dismissed', value);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue