[skip ci] Update server settings for Authentication modes (#984)
* Update GQL interface * Update queried server settings * package.json: Fix GQL script * Basic AuthMode setting * Setting disable, disclaimer on login page * Update gql generated files * Alphabetical sort en.json * Fix constants name typos * Move settings types and constants to corresponding files * Rename setting constants * Update required server version --------- Co-authored-by: schroda <50052685+schroda@users.noreply.github.com>
This commit is contained in:
@@ -8,10 +8,16 @@
|
||||
|
||||
import { DEFAULT_DEVICE } from '@/modules/device/services/Device.ts';
|
||||
import { DEFAULT_SORT_SETTINGS } from '@/modules/migration/Migration.constants.ts';
|
||||
import { MetadataServerSettings } from '@/modules/settings/Settings.types.ts';
|
||||
import { GlobalUpdateSkipEntriesSettings, MetadataServerSettings } from '@/modules/settings/Settings.types.ts';
|
||||
import { GridLayout } from '@/modules/core/Core.types.ts';
|
||||
import { getDefaultLanguages } from '@/modules/core/utils/Languages.ts';
|
||||
import { ThemeMode } from '@/modules/theme/contexts/AppThemeContext.tsx';
|
||||
import {
|
||||
SelectSettingValue,
|
||||
SelectSettingValueDisplayInfo,
|
||||
} from '@/modules/core/components/settings/SelectSetting.tsx';
|
||||
import { AuthMode, WebUiChannel, WebUiFlavor, WebUiInterface } from '@/lib/graphql/generated/graphql.ts';
|
||||
import { TranslationKey } from '@/Base.types.ts';
|
||||
|
||||
export const MANGA_GRID_WIDTH = {
|
||||
min: 100,
|
||||
@@ -75,3 +81,109 @@ export const SERVER_SETTINGS_METADATA_DEFAULT: MetadataServerSettings = {
|
||||
mangaDynamicColorSchemes: true,
|
||||
mangaGridItemWidth: MANGA_GRID_WIDTH.default,
|
||||
};
|
||||
|
||||
const AUTH_MODES = [AuthMode.None].concat(Object.values(AuthMode).filter((mode) => mode !== AuthMode.None));
|
||||
const AUTH_MODES_TO_TRANSLATION_KEY: { [mode in AuthMode]: SelectSettingValueDisplayInfo } = {
|
||||
[AuthMode.None]: {
|
||||
text: 'settings.server.auth.mode.option.none.label.title',
|
||||
description: 'settings.server.auth.mode.option.none.label.description',
|
||||
disclaimer: 'settings.server.auth.mode.option.none.label.info',
|
||||
},
|
||||
[AuthMode.BasicAuth]: {
|
||||
text: 'settings.server.auth.mode.option.basicAuth.label.title',
|
||||
description: 'settings.server.auth.mode.option.basicAuth.label.description',
|
||||
},
|
||||
[AuthMode.SimpleLogin]: {
|
||||
text: 'settings.server.auth.mode.option.simpleLogin.label.title',
|
||||
description: 'settings.server.auth.mode.option.simpleLogin.label.description',
|
||||
disclaimer: 'settings.server.auth.mode.option.simpleLogin.label.info',
|
||||
},
|
||||
};
|
||||
export const AUTH_MODES_SELECT_VALUES: SelectSettingValue<AuthMode>[] = AUTH_MODES.map((mode) => [
|
||||
mode,
|
||||
AUTH_MODES_TO_TRANSLATION_KEY[mode],
|
||||
]);
|
||||
|
||||
const WEB_UI_FLAVORS = Object.values(WebUiFlavor);
|
||||
const WEB_UI_FLAVOR_TO_TRANSLATION_KEY: { [flavor in WebUiFlavor]: SelectSettingValueDisplayInfo } = {
|
||||
[WebUiFlavor.Webui]: {
|
||||
text: 'settings.webui.title.webui',
|
||||
description: 'settings.webui.flavor.option.webui.label.description',
|
||||
disclaimer: 'settings.webui.flavor.label.info',
|
||||
},
|
||||
[WebUiFlavor.Vui]: {
|
||||
text: 'settings.webui.flavor.option.vui.label.title',
|
||||
description: 'settings.webui.flavor.option.vui.label.description',
|
||||
disclaimer: 'settings.webui.flavor.label.info',
|
||||
},
|
||||
[WebUiFlavor.Custom]: {
|
||||
text: 'settings.webui.flavor.option.custom.label.title',
|
||||
description: 'settings.webui.flavor.option.custom.label.description',
|
||||
},
|
||||
};
|
||||
export const WEB_UI_FLAVOR_SELECT_VALUES: SelectSettingValue<WebUiFlavor>[] = WEB_UI_FLAVORS.map((flavor) => [
|
||||
flavor,
|
||||
WEB_UI_FLAVOR_TO_TRANSLATION_KEY[flavor],
|
||||
]);
|
||||
|
||||
const WEB_UI_CHANNELS = Object.values(WebUiChannel);
|
||||
const WEB_UI_CHANNEL_TO_TRANSLATION_KEYS: {
|
||||
[channel in WebUiChannel]: SelectSettingValueDisplayInfo;
|
||||
} = {
|
||||
[WebUiChannel.Bundled]: {
|
||||
text: 'settings.webui.channel.option.bundled.label.title',
|
||||
description: 'settings.webui.channel.option.bundled.label.description',
|
||||
disclaimer: 'settings.webui.flavor.label.info',
|
||||
},
|
||||
[WebUiChannel.Stable]: {
|
||||
text: 'settings.webui.channel.option.stable.label.title',
|
||||
description: 'settings.webui.channel.option.stable.label.description',
|
||||
disclaimer: 'settings.webui.flavor.label.info',
|
||||
},
|
||||
[WebUiChannel.Preview]: {
|
||||
text: 'settings.webui.channel.option.preview.label.title',
|
||||
description: 'settings.webui.channel.option.preview.label.description',
|
||||
disclaimer: 'settings.webui.channel.option.preview.label.disclaimer',
|
||||
},
|
||||
};
|
||||
export const WEB_UI_CHANNEL_SELECT_VALUES: SelectSettingValue<WebUiChannel>[] = WEB_UI_CHANNELS.map((channel) => [
|
||||
channel,
|
||||
WEB_UI_CHANNEL_TO_TRANSLATION_KEYS[channel],
|
||||
]);
|
||||
|
||||
const WEB_UI_INTERFACES = Object.values(WebUiInterface);
|
||||
const WEB_UI_INTERFACE_TO_TRANSLATION_KEYS: {
|
||||
[webUIInterface in WebUiInterface]: SelectSettingValueDisplayInfo;
|
||||
} = {
|
||||
[WebUiInterface.Browser]: {
|
||||
text: 'settings.webui.interface.option.label.browser',
|
||||
description: 'settings.webui.interface.label.description',
|
||||
},
|
||||
[WebUiInterface.Electron]: {
|
||||
text: 'settings.webui.interface.option.label.electron',
|
||||
description: 'settings.webui.interface.label.description',
|
||||
},
|
||||
};
|
||||
export const WEB_UI_INTERFACE_SELECT_VALUES: SelectSettingValue<WebUiInterface>[] = WEB_UI_INTERFACES.map(
|
||||
(webUIInterface) => [webUIInterface, WEB_UI_INTERFACE_TO_TRANSLATION_KEYS[webUIInterface]],
|
||||
);
|
||||
|
||||
export const GLOBAL_UPDATE_INTERVAL = {
|
||||
default: 12,
|
||||
min: 6,
|
||||
max: 24 * 7 * 4, // 1 month
|
||||
};
|
||||
|
||||
export const GLOBAL_UPDATE_SKIP_ENTRIES_TO_TRANSLATION: {
|
||||
[setting in keyof GlobalUpdateSkipEntriesSettings]: TranslationKey;
|
||||
} = {
|
||||
excludeUnreadChapters: 'library.settings.global_update.entries.label.unread_chapters',
|
||||
excludeNotStarted: 'library.settings.global_update.entries.label.not_started',
|
||||
excludeCompleted: 'library.settings.global_update.entries.label.completed',
|
||||
};
|
||||
|
||||
export const WEB_UI_UPDATE_INTERVAL = {
|
||||
default: 23,
|
||||
min: 1,
|
||||
max: 23,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user