/
vshmidt
/
cloudbeaver
Обзор
Документация
Войти
/
vshmidt
/
cloudbeaver
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
devel
webapp/packages/plugin-navigation-tree/src/NavigationTreeSettingsService.ts
56 строк
2 KB
Alexey Potsetsuev
dbeaver/pro#6744 refactor: migration to `@wroud/di` (#3704)
29 авг 2025, 13:22
Не верифицирован
29 авг 2025, 13:22
80f258b
Код
Авторство
О чём код?
/* * 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 { computed, makeObservable } from 'mobx'; import { injectable } from '@cloudbeaver/core-di'; import { ESettingsValueType, SettingsManagerService, SettingsProvider, SettingsProviderService } from '@cloudbeaver/core-settings'; import { schema, schemaExtra } from '@cloudbeaver/core-utils'; import { NAVIGATION_TREE_SETTINGS_GROUP } from '@cloudbeaver/core-navigation-tree'; const defaultSettings = schema.object({ 'plugin.navigation-tree.disabled': schemaExtra.stringedBoolean().default(false), }); export type NavigationTreeSettings = schema.infer<typeof defaultSettings>; @injectable(() => [SettingsProviderService, SettingsManagerService]) export class NavigationTreeSettingsService { get disabled(): boolean { return this.settings.getValue('plugin.navigation-tree.disabled'); } readonly settings: SettingsProvider<typeof defaultSettings>; constructor( private readonly settingsProviderService: SettingsProviderService, private readonly settingsManagerService: SettingsManagerService, ) { this.settings = this.settingsProviderService.createSettings(defaultSettings); this.registerSettings(); makeObservable(this, { disabled: computed, }); } private registerSettings() { this.settingsManagerService.registerSettings<typeof defaultSettings>(() => [ { group: NAVIGATION_TREE_SETTINGS_GROUP, key: 'plugin.navigation-tree.disabled', access: { scope: ['role'], }, type: ESettingsValueType.Checkbox, name: 'plugin_navigation_tree_settings_disable', description: 'plugin_navigation_tree_settings_disable_description', }, ]); } }