Frontend update checking settings

This commit is contained in:
Michael Shamoon
2022-09-30 12:30:23 -07:00
parent 436f9e891e
commit 9e2430da46
10 changed files with 200 additions and 74 deletions

View File

@@ -6,7 +6,6 @@ import { environment } from 'src/environments/environment'
export interface AppRemoteVersion {
version: string
update_available: boolean
feature_is_set: boolean
}
@Injectable({

View File

@@ -313,13 +313,7 @@ export class SettingsService {
)
}
get(key: string): any {
let setting = SETTINGS.find((s) => s.key == key)
if (!setting) {
return null
}
private getSettingRawValue(key: string): any {
let value = null
// parse key:key:key into nested object
const keys = key.replace('general-settings:', '').split(':')
@@ -330,6 +324,17 @@ export class SettingsService {
if (index == keys.length - 1) value = settingObj[keyPart]
else settingObj = settingObj[keyPart]
})
return value
}
get(key: string): any {
let setting = SETTINGS.find((s) => s.key == key)
if (!setting) {
return null
}
let value = this.getSettingRawValue(key)
if (value != null) {
switch (setting.type) {
@@ -359,6 +364,11 @@ export class SettingsService {
})
}
private settingIsSet(key: string): boolean {
let value = this.getSettingRawValue(key)
return value != null
}
storeSettings(): Observable<any> {
return this.http.post(this.baseUrl, { settings: this.settings })
}
@@ -401,4 +411,29 @@ export class SettingsService {
})
}
}
get updateCheckingEnabled(): boolean {
const backendSetting = this.get(
SETTINGS_KEYS.UPDATE_CHECKING_BACKEND_SETTING
)
if (
!this.settingIsSet(SETTINGS_KEYS.UPDATE_CHECKING_ENABLED) &&
backendSetting != 'default'
) {
this.set(SETTINGS_KEYS.UPDATE_CHECKING_ENABLED, backendSetting === 'true')
}
return (
this.get(SETTINGS_KEYS.UPDATE_CHECKING_ENABLED) ||
(!this.settingIsSet(SETTINGS_KEYS.UPDATE_CHECKING_ENABLED) &&
backendSetting == 'true')
)
}
get updateCheckingIsSet(): boolean {
return (
this.settingIsSet(SETTINGS_KEYS.UPDATE_CHECKING_ENABLED) ||
this.get(SETTINGS_KEYS.UPDATE_CHECKING_BACKEND_SETTING) != 'default'
)
}
}