update user preference service

This commit is contained in:
Dan Percic 2021-10-06 11:17:47 +03:00
parent 19cfa93575
commit 824794a4cc
4 changed files with 17 additions and 17 deletions

View File

@ -26,7 +26,6 @@ import { AnnotationProcessingService } from './services/annotation-processing.se
import { EditDossierDialogComponent } from './dialogs/edit-dossier-dialog/edit-dossier-dialog.component';
import { EditDossierGeneralInfoComponent } from './dialogs/edit-dossier-dialog/general-info/edit-dossier-general-info.component';
import { EditDossierDownloadPackageComponent } from './dialogs/edit-dossier-dialog/download-package/edit-dossier-download-package.component';
import { UserPreferenceControllerService } from '@redaction/red-ui-http';
import { EditDossierDictionaryComponent } from './dialogs/edit-dossier-dialog/dictionary/edit-dossier-dictionary.component';
import { EditDossierTeamMembersComponent } from './dialogs/edit-dossier-dialog/team-members/edit-dossier-team-members.component';
import { TeamMembersManagerComponent } from './components/team-members-manager/team-members-manager.component';
@ -85,7 +84,6 @@ const services = [
PdfViewerDataService,
AnnotationDrawService,
AnnotationProcessingService,
UserPreferenceControllerService,
];
@NgModule({

View File

@ -28,7 +28,7 @@ import { PermissionsService } from '@services/permissions.service';
import { timer } from 'rxjs';
import { UserPreferenceService } from '@services/user-preference.service';
import { UserService } from '@services/user.service';
import { FileManagementControllerService, FileStatus, List, UserPreferenceControllerService } from '@redaction/red-ui-http';
import { FileManagementControllerService, FileStatus, List } from '@redaction/red-ui-http';
import { PdfViewerDataService } from '../../services/pdf-viewer-data.service';
import { download } from '@utils/file-download-utils';
import { ViewMode } from '@models/file/view-mode';
@ -88,7 +88,6 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni
readonly permissionsService: PermissionsService,
readonly userPreferenceService: UserPreferenceService,
readonly userService: UserService,
private readonly _userPreferenceControllerService: UserPreferenceControllerService,
private readonly _changeDetectorRef: ChangeDetectorRef,
private readonly _activatedRoute: ActivatedRoute,
private readonly _dialogService: DossiersDialogService,

View File

@ -1,15 +1,15 @@
import { Injectable } from '@angular/core';
import { UserPreferenceControllerService } from '@redaction/red-ui-http';
import { Injectable, Injector } from '@angular/core';
import { List } from '@redaction/red-ui-http';
import { GenericService, RequiredParam, Validate } from '@iqser/common-ui';
interface UserAttributes {
[p: string]: string[];
}
type UserAttributes = Record<string, List>;
@Injectable({
providedIn: 'root',
})
export class UserPreferenceService {
constructor(private readonly _userPreferenceControllerService: UserPreferenceControllerService) {
export class UserPreferenceService extends GenericService<UserAttributes> {
constructor(protected readonly _injector: Injector) {
super(_injector, 'attributes');
this.reload();
}
@ -35,7 +35,7 @@ export class UserPreferenceService {
async saveLastOpenedFileForDossier(dossierId: string, fileId: string): Promise<void> {
const key = `Dossier-Recent-${dossierId}`;
this.userAttributes[key] = [fileId];
await this._userPreferenceControllerService.savePreferences([fileId], key).toPromise();
await this.savePreferences([fileId], key).toPromise();
}
toggleDevFeatures(): void {
@ -44,11 +44,15 @@ export class UserPreferenceService {
}
reload(): void {
this._userPreferenceControllerService
.getAllUserAttributes()
this.getAll<UserAttributes>()
.toPromise()
.then(attributes => {
this._userAttributes = attributes ?? {};
});
}
@Validate()
savePreferences(@RequiredParam() body: List, @RequiredParam() key: string) {
return this._put(body, `${this._defaultModelPath}/${key}`);
}
}

View File

@ -20,7 +20,6 @@ import { RulesControllerService } from './api/rulesController.service';
import { SmtpConfigurationControllerService } from './api/smtpConfigurationController.service';
import { UploadControllerService } from './api/uploadController.service';
import { UserControllerService } from './api/userController.service';
import { UserPreferenceControllerService } from './api/userPreferenceController.service';
import { VersionsControllerService } from './api/versionsController.service';
import { ViewedPagesControllerService } from './api/viewedPagesController.service';
import { WatermarkControllerService } from './api/watermarkController.service';
@ -51,7 +50,6 @@ import { StatusReportControllerService } from './api/statusReportController.serv
SmtpConfigurationControllerService,
UploadControllerService,
UserControllerService,
UserPreferenceControllerService,
VersionsControllerService,
ViewedPagesControllerService,
WatermarkControllerService,
@ -67,7 +65,8 @@ export class ApiModule {
}
if (!http) {
throw new Error(
'You need to import the HttpClientModule in your AppModule! \n' + 'See also https://github.com/angular/angular/issues/20575',
'You need to import the HttpClientModule in your AppModule! \n' +
'See also https://github.com/angular/angular/issues/20575',
);
}
}