mirror of
https://github.com/dbeaver/cloudbeaver.git
synced 2026-09-24 16:04:36 +08:00
* dbeaver/pro#6744 refactor: migration to `@wroud/di` * tests: enable settings tests * chore: update syntax * fix: dynamic theme detection * fix: skip not stable test * fix: skip whole test * fix: make theme optional * fix: page reload * tests: skip unstable test * fix: remove optional * fix: load system theme * fix: prevent the system theme from always loading despite not being selected --------- Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
52 lines
1.6 KiB
TypeScript
52 lines
1.6 KiB
TypeScript
/*
|
|
* CloudBeaver - Cloud Database Manager
|
|
* Copyright (C) 2020-2025 DBeaver Corp and others
|
|
*
|
|
* Licensed under the Apache License, Version 2.0.
|
|
* you may not use this file except in compliance with the License.
|
|
*/
|
|
import { injectable } from '@cloudbeaver/core-di';
|
|
import { ESettingsValueType, SettingsManagerService, SettingsProvider, SettingsProviderService } from '@cloudbeaver/core-settings';
|
|
import { schema, schemaExtra } from '@cloudbeaver/core-utils';
|
|
|
|
import { TOOLS_PANEL_SETTINGS_GROUP } from './TOOLS_PANEL_SETTINGS_GROUP.js';
|
|
|
|
const settings = schema.object({
|
|
'plugin.tools-panel.disabled': schemaExtra.stringedBoolean().default(false),
|
|
});
|
|
|
|
type Settings = typeof settings;
|
|
|
|
@injectable(() => [SettingsProviderService, SettingsManagerService])
|
|
export class ToolsPanelSettingsService {
|
|
get disabled(): boolean {
|
|
return this.settings.getValue('plugin.tools-panel.disabled');
|
|
}
|
|
|
|
readonly settings: SettingsProvider<Settings>;
|
|
|
|
constructor(
|
|
private readonly settingsProviderService: SettingsProviderService,
|
|
private readonly settingsManagerService: SettingsManagerService,
|
|
) {
|
|
this.settings = this.settingsProviderService.createSettings(settings);
|
|
|
|
this.registerSettings();
|
|
}
|
|
|
|
private registerSettings() {
|
|
this.settingsManagerService.registerSettings<Settings>(() => [
|
|
{
|
|
key: 'plugin.tools-panel.disabled',
|
|
access: {
|
|
scope: ['server', 'role'],
|
|
},
|
|
group: TOOLS_PANEL_SETTINGS_GROUP,
|
|
type: ESettingsValueType.Checkbox,
|
|
name: 'plugin_tools_panel_settings_disable_label',
|
|
description: 'plugin_tools_panel_settings_disable_description',
|
|
},
|
|
]);
|
|
}
|
|
}
|