import {Injectable} from "@angular/core"; import {BehaviorSubject} from "rxjs/BehaviorSubject"; import { DatabaseType, IPrivateConfig, ReIndexingSensitivity, ThumbnailProcessingLib } from "../../../common/config/private/IPrivateConfig"; import {NetworkService} from "../model/network/network.service"; @Injectable() export class SettingsService { public settings: BehaviorSubject; constructor(private _networkService: NetworkService) { this.settings = new BehaviorSubject({ Client: { Search: { enabled: true, autocompleteEnabled: true, instantSearchEnabled: true, InstantSearchTimeout: 0, searchCacheTimeout: 1000 * 60 * 60, instantSearchCacheTimeout: 1000 * 60 * 60, autocompleteCacheTimeout: 1000 * 60 * 60 }, concurrentThumbnailGenerations: null, Thumbnail: { iconSize: 30, thumbnailSizes: [] }, Sharing: { enabled: true, passwordProtected: true }, Map: { enabled: true, googleApiKey: "" }, publicUrl: "", applicationTitle: "", enableCache: true, enableOnScrollRendering: true, enableOnScrollThumbnailPrioritising: true, authenticationRequired: true, languages: [] }, Server: { database: { type: DatabaseType.memory }, sharing: { updateTimeout: 2000 }, imagesFolder: "", enableThreading: true, port: 80, thumbnail: { folder: "", qualityPriority: true, processingLibrary: ThumbnailProcessingLib.sharp }, sessionTimeout: 0, indexing: { cachedFolderTimeout: 0, folderPreviewSize: 0, reIndexingSensitivity: ReIndexingSensitivity.medium } } }); } public async getSettings(): Promise { this.settings.next(await >this._networkService.getJson("/settings")); } }