refactor: specific settings for user group and language

This commit is contained in:
Jovan Krunić
2021-07-21 15:57:49 +02:00
parent 5377d026f3
commit 805c1f0937
2 changed files with 59 additions and 5 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2019 StApps
* Copyright (C) 2019-2021 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.
@@ -15,7 +15,7 @@
// tslint:disable-next-line:no-implicit-dependencies
import {Polygon} from 'geojson';
import {SCTranslations} from '../general/i18n';
import {SCSetting} from '../things/setting';
import {SCLanguageSetting, SCSetting, SCUserGroupSetting} from '../things/setting';
/**
* An app configuration menu item
@@ -112,8 +112,9 @@ export interface SCAppConfiguration {
/**
* A list of available settings in the app
* !Important! Use provided specific settings, for other settings use general SCSetting
*/
settings: SCSetting[];
settings: Array<SCUserGroupSetting | SCLanguageSetting | SCSetting>;
/**
* Map of store URLs

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2019 StApps
* Copyright (C) 2019-2021 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.
@@ -12,7 +12,7 @@
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <https://www.gnu.org/licenses/>.
*/
import {SCMetaTranslations, SCTranslations} from '../general/i18n';
import {SCLanguageCode, SCMetaTranslations, SCTranslations} from '../general/i18n';
import {SCThing, SCThingMeta, SCThingType} from './abstract/thing';
import {
SCThingWithCategories,
@@ -21,6 +21,7 @@ import {
SCThingWithCategoriesWithoutReferences,
SCThingWithCategoriesWithoutReferencesMeta,
} from './abstract/thing-with-categories';
import {SCUserGroup} from './abstract/user-groups';
/**
* A setting without references
@@ -177,3 +178,55 @@ export class SCSettingMeta extends SCThingMeta implements SCMetaTranslations<SCS
},
};
}
/**
* A user group setting
*/
export interface SCUserGroupSetting extends SCSetting {
/**
* Exact categories of the setting
*/
categories: ['profile'];
/**
* The default value of the setting
*/
defaultValue: SCUserGroup;
/**
* Specific name of the setting
*/
name: 'group';
/**
* Chosen value of the setting
*/
value?: SCUserGroup;
/**
* The possible values of the setting
*/
values: SCUserGroup[];
}
/**
* A language setting
*/
export interface SCLanguageSetting extends SCSetting {
/**
* Exact categories of the setting
*/
categories: ['profile'];
/**
* The default value of the setting
*/
defaultValue: SCLanguageCode;
/**
* Specific name of the setting
*/
name: 'language';
/**
* Chosen value of the setting
*/
value?: SCLanguageCode;
/**
* The possible values of the setting
*/
values: SCLanguageCode[];
}