-import { Component, HostListener } from '@angular/core'
+import { Component, HostListener, OnInit } from '@angular/core'
import { FormControl } from '@angular/forms'
import { ActivatedRoute, Router } from '@angular/router'
import { from, Observable } from 'rxjs'
templateUrl: './app-frame.component.html',
styleUrls: ['./app-frame.component.scss'],
})
-export class AppFrameComponent implements ComponentCanDeactivate {
+export class AppFrameComponent implements OnInit, ComponentCanDeactivate {
constructor(
public router: Router,
private activatedRoute: ActivatedRoute,
public settingsService: SettingsService,
public tasksService: TasksService,
private readonly toastService: ToastService
- ) {
- if (settingsService.updateCheckingEnabled) {
+ ) {}
+
+ ngOnInit(): void {
+ if (this.settingsService.get(SETTINGS_KEYS.UPDATE_CHECKING_ENABLED)) {
this.checkForUpdates()
}
- tasksService.reload()
+ this.tasksService.reload()
}
versionString = `${environment.appTitle} ${environment.version}`
<div [ngbNavOutlet]="nav" class="border-start border-end border-bottom p-3 mb-3 shadow-sm"></div>
- <button type="submit" class="btn btn-primary" [disabled]="!(isDirty$ | async)" i18n>Save</button>
+ <button type="submit" class="btn btn-primary mb-2" [disabled]="!(isDirty$ | async)" i18n>Save</button>
</form>
)
}
- get displayLanguageIsDirty(): boolean {
- return (
- this.settingsForm.get('displayLanguage').value !=
- this.store?.getValue()['displayLanguage']
- )
- }
-
constructor(
public savedViewService: SavedViewService,
private documentListViewService: DocumentListViewService,
}
private saveLocalSettings() {
- const reloadRequired = this.displayLanguageIsDirty // just this one, for now
+ const reloadRequired =
+ this.settingsForm.value.displayLanguage !=
+ this.store?.getValue()['displayLanguage'] || // displayLanguage is dirty
+ (this.settingsForm.value.updateCheckingEnabled !=
+ this.store?.getValue()['updateCheckingEnabled'] &&
+ this.settingsForm.value.updateCheckingEnabled) // update checking was turned on
+
this.settings.set(
SETTINGS_KEYS.BULK_EDIT_APPLY_ON_CLOSE,
this.settingsForm.value.bulkEditApplyOnClose
},
})
}
- }
-
- get updateCheckingEnabled(): boolean {
- const backendSetting = this.get(
- SETTINGS_KEYS.UPDATE_CHECKING_BACKEND_SETTING
- )
if (
!this.settingIsSet(SETTINGS_KEYS.UPDATE_CHECKING_ENABLED) &&
- backendSetting != 'default'
+ this.get(SETTINGS_KEYS.UPDATE_CHECKING_BACKEND_SETTING) != 'default'
) {
- this.set(SETTINGS_KEYS.UPDATE_CHECKING_ENABLED, backendSetting === 'true')
+ this.set(
+ SETTINGS_KEYS.UPDATE_CHECKING_ENABLED,
+ this.get(SETTINGS_KEYS.UPDATE_CHECKING_BACKEND_SETTING).toString() ===
+ 'true'
+ )
+
+ this.storeSettings()
+ .pipe(first())
+ .subscribe({
+ error: (e) => {
+ this.toastService.showError(
+ 'Error migrating update checking setting'
+ )
+ console.log(e)
+ },
+ })
}
- 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'
- )
+ return this.settingIsSet(SETTINGS_KEYS.UPDATE_CHECKING_ENABLED)
}
}
"settings",
]
+ def validate_settings(self, settings):
+ # we never save update checking backend setting
+ if "update_checking" in settings:
+ try:
+ settings["update_checking"].pop("backend_setting")
+ except KeyError:
+ pass
+ return settings
+
def create(self, validated_data):
ui_settings = UiSettings.objects.update_or_create(
user=validated_data.get("user"),
ui_settings = {}
if hasattr(user, "ui_settings"):
ui_settings = user.ui_settings.settings
- if ui_settings["update_checking"]:
+ if "update_checking" in ui_settings:
ui_settings["update_checking"][
"backend_setting"
] = settings.ENABLE_UPDATE_CHECK