Improve compatibility (#7214)

* refactor content

* refactor core

* refactor rest

* fix lint

* fix

* lint

* lint

* fix

* fix

* fix
This commit is contained in:
Eugenio Romano
2021-08-16 11:42:29 +02:00
committed by GitHub
parent 8c8e388fa0
commit a25923d1f2
62 changed files with 595 additions and 235 deletions

View File

@@ -29,13 +29,16 @@ import { AspectEntry, AspectPaging, AspectsApi } from '@alfresco/js-api';
}) })
export class AspectListService { export class AspectListService {
private aspectsApi: AspectsApi; _aspectsApi: AspectsApi;
get aspectsApi(): AspectsApi {
this._aspectsApi = this._aspectsApi ?? new AspectsApi(this.alfrescoApiService.getInstance());
return this._aspectsApi;
}
constructor(private alfrescoApiService: AlfrescoApiService, constructor(private alfrescoApiService: AlfrescoApiService,
private appConfigService: AppConfigService, private appConfigService: AppConfigService,
private dialog: MatDialog, private dialog: MatDialog,
private logService: LogService) { private logService: LogService) {
this.aspectsApi = new AspectsApi(this.alfrescoApiService.getInstance());
} }
getAspects(): Observable<AspectEntry[]> { getAspects(): Observable<AspectEntry[]> {

View File

@@ -18,7 +18,15 @@
import { Injectable } from '@angular/core'; import { Injectable } from '@angular/core';
import { Observable, from, throwError } from 'rxjs'; import { Observable, from, throwError } from 'rxjs';
import { AlfrescoApiService, LogService } from '@alfresco/adf-core'; import { AlfrescoApiService, LogService } from '@alfresco/adf-core';
import { AuditApi, AuditAppPaging, AuditAppEntry, AuditApp, AuditBodyUpdate, AuditEntryPaging, AuditEntryEntry } from '@alfresco/js-api'; import {
AuditApi,
AuditAppPaging,
AuditAppEntry,
AuditApp,
AuditBodyUpdate,
AuditEntryPaging,
AuditEntryEntry
} from '@alfresco/js-api';
import { catchError } from 'rxjs/operators'; import { catchError } from 'rxjs/operators';
@Injectable({ @Injectable({
@@ -26,10 +34,13 @@ import { catchError } from 'rxjs/operators';
}) })
export class AuditService { export class AuditService {
auditApi: AuditApi; _auditApi: AuditApi;
get auditApi(): AuditApi {
this._auditApi = this._auditApi ?? new AuditApi(this.apiService.getInstance());
return this._auditApi;
}
constructor(private apiService: AlfrescoApiService, private logService: LogService) { constructor(private apiService: AlfrescoApiService, private logService: LogService) {
this.auditApi = new AuditApi(this.apiService.getInstance());
} }
getAuditApps(opts?: any): Observable<AuditAppPaging> { getAuditApps(opts?: any): Observable<AuditAppPaging> {
@@ -57,7 +68,7 @@ export class AuditService {
updateAuditApp(auditApplicationId: string, auditAppBodyUpdate: boolean, opts?: any): Observable<AuditApp | {}> { updateAuditApp(auditApplicationId: string, auditAppBodyUpdate: boolean, opts?: any): Observable<AuditApp | {}> {
const defaultOptions = {}; const defaultOptions = {};
const queryOptions = Object.assign({}, defaultOptions, opts); const queryOptions = Object.assign({}, defaultOptions, opts);
return from(this.auditApi.updateAuditApp(auditApplicationId, new AuditBodyUpdate({ isEnabled: auditAppBodyUpdate}), queryOptions)) return from(this.auditApi.updateAuditApp(auditApplicationId, new AuditBodyUpdate({ isEnabled: auditAppBodyUpdate }), queryOptions))
.pipe( .pipe(
catchError((err: any) => this.handleError(err)) catchError((err: any) => this.handleError(err))
); );

View File

@@ -26,10 +26,14 @@ import { ClassesApi } from '@alfresco/js-api';
providedIn: 'root' providedIn: 'root'
}) })
export class PropertyDescriptorsService { export class PropertyDescriptorsService {
private classesApi: ClassesApi;
private _classesApi;
get classesApi(): ClassesApi {
this._classesApi = this._classesApi ?? new ClassesApi(this.alfrescoApiService.getInstance());
return this._classesApi;
}
constructor(private alfrescoApiService: AlfrescoApiService) { constructor(private alfrescoApiService: AlfrescoApiService) {
this.classesApi = new ClassesApi(this.alfrescoApiService.getInstance());
} }
load(groupNames: string[]): Observable<PropertyGroupContainer> { load(groupNames: string[]): Observable<PropertyGroupContainer> {

View File

@@ -43,13 +43,17 @@ export class NodeSharedDirective implements OnChanges, OnDestroy {
baseShareUrl: string; baseShareUrl: string;
private onDestroy$ = new Subject<boolean>(); private onDestroy$ = new Subject<boolean>();
private nodesApi = new NodesApi();
_nodesApi: NodesApi;
get nodesApi(): NodesApi {
this._nodesApi = this._nodesApi ?? new NodesApi(this.alfrescoApiService.getInstance());
return this._nodesApi;
}
constructor( constructor(
private dialog: MatDialog, private dialog: MatDialog,
private zone: NgZone, private zone: NgZone,
private alfrescoApiService: AlfrescoApiService) { private alfrescoApiService: AlfrescoApiService) {
this.nodesApi = new NodesApi(this.alfrescoApiService.getInstance());
} }
ngOnDestroy() { ngOnDestroy() {

View File

@@ -25,10 +25,13 @@ import { map } from 'rxjs/operators';
}) })
export class ContentTypeService { export class ContentTypeService {
private typesApi: TypesApi; _typesApi: TypesApi;
get typesApi(): TypesApi {
this._typesApi = this._typesApi ?? new TypesApi(this.alfrescoApiService.getInstance());
return this._typesApi;
}
constructor(private alfrescoApiService: AlfrescoApiService) { constructor(private alfrescoApiService: AlfrescoApiService) {
this.typesApi = new TypesApi(this.alfrescoApiService.getInstance());
} }
getContentTypeByPrefix(prefixedType: string): Observable<TypeEntry> { getContentTypeByPrefix(prefixedType: string): Observable<TypeEntry> {

View File

@@ -72,7 +72,11 @@ export class LibraryDialogComponent implements OnInit, OnDestroy {
]; ];
disableCreateButton = false; disableCreateButton = false;
queriesApi: QueriesApi; _queriesApi: QueriesApi;
get queriesApi(): QueriesApi {
this._queriesApi = this._queriesApi ?? new QueriesApi(this.alfrescoApiService.getInstance());
return this._queriesApi;
}
constructor( constructor(
private alfrescoApiService: AlfrescoApiService, private alfrescoApiService: AlfrescoApiService,
@@ -80,7 +84,6 @@ export class LibraryDialogComponent implements OnInit, OnDestroy {
private formBuilder: FormBuilder, private formBuilder: FormBuilder,
private dialog: MatDialogRef<LibraryDialogComponent> private dialog: MatDialogRef<LibraryDialogComponent>
) { ) {
this.queriesApi = new QueriesApi(this.alfrescoApiService.getInstance());
} }
ngOnInit() { ngOnInit() {

View File

@@ -35,7 +35,11 @@ export class NodeLockDialogComponent implements OnInit {
node: Node = null; node: Node = null;
nodeName: string; nodeName: string;
private nodesApi: NodesApi; _nodesApi: NodesApi;
get nodesApi(): NodesApi {
this._nodesApi = this._nodesApi ?? new NodesApi(this.alfrescoApi.getInstance());
return this._nodesApi;
}
constructor( constructor(
private formBuilder: FormBuilder, private formBuilder: FormBuilder,
@@ -45,7 +49,6 @@ export class NodeLockDialogComponent implements OnInit {
@Inject(MAT_DIALOG_DATA) @Inject(MAT_DIALOG_DATA)
public data: any public data: any
) { ) {
this.nodesApi = new NodesApi(this.alfrescoApi.getInstance());
} }
ngOnInit() { ngOnInit() {

View File

@@ -342,7 +342,12 @@ export class DocumentListComponent implements OnInit, OnChanges, OnDestroy, Afte
private rowMenuCache: { [key: string]: ContentActionModel[] } = {}; private rowMenuCache: { [key: string]: ContentActionModel[] } = {};
private loadingTimeout; private loadingTimeout;
private onDestroy$ = new Subject<boolean>(); private onDestroy$ = new Subject<boolean>();
private nodesApi: NodesApi;
_nodesApi: NodesApi;
get nodesApi(): NodesApi {
this._nodesApi = this._nodesApi ?? new NodesApi(this.alfrescoApiService.getInstance());
return this._nodesApi;
}
constructor(private documentListService: DocumentListService, constructor(private documentListService: DocumentListService,
private ngZone: NgZone, private ngZone: NgZone,
@@ -353,7 +358,6 @@ export class DocumentListComponent implements OnInit, OnChanges, OnDestroy, Afte
private thumbnailService: ThumbnailService, private thumbnailService: ThumbnailService,
private alfrescoApiService: AlfrescoApiService, private alfrescoApiService: AlfrescoApiService,
private lockService: LockService) { private lockService: LockService) {
this.nodesApi = new NodesApi(this.alfrescoApiService.getInstance());
this.userPreferencesService this.userPreferencesService
.select(UserPreferenceValues.PaginationSize) .select(UserPreferenceValues.PaginationSize)
.pipe(takeUntil(this.onDestroy$)) .pipe(takeUntil(this.onDestroy$))

View File

@@ -41,22 +41,49 @@ export class CustomResourcesService {
private CREATE_PERMISSION = 'create'; private CREATE_PERMISSION = 'create';
peopleApi: PeopleApi; _peopleApi: PeopleApi;
sitesApi: SitesApi; get peopleApi(): PeopleApi {
trashcanApi: TrashcanApi; this._peopleApi = this._peopleApi ?? new PeopleApi(this.apiService.getInstance());
searchApi: SearchApi; return this._peopleApi;
sharedLinksApi: SharedlinksApi; }
favoritesApi: FavoritesApi;
nodesApi: NodesApi; _sitesApi: SitesApi;
get sitesApi(): SitesApi {
this._sitesApi = this._sitesApi ?? new SitesApi(this.apiService.getInstance());
return this._sitesApi;
}
_trashcanApi: TrashcanApi;
get trashcanApi(): TrashcanApi {
this._trashcanApi = this._trashcanApi ?? new TrashcanApi(this.apiService.getInstance());
return this._trashcanApi;
}
_searchApi: SearchApi;
get searchApi(): SearchApi {
this._searchApi = this._searchApi ?? new SearchApi(this.apiService.getInstance());
return this._searchApi;
}
_sharedLinksApi: SharedlinksApi;
get sharedLinksApi(): SharedlinksApi {
this._sharedLinksApi = this._sharedLinksApi ?? new SharedlinksApi(this.apiService.getInstance());
return this._sharedLinksApi;
}
_favoritesApi: FavoritesApi;
get favoritesApi(): FavoritesApi {
this._favoritesApi = this._favoritesApi ?? new FavoritesApi(this.apiService.getInstance());
return this._favoritesApi;
}
_nodesApi: NodesApi;
get nodesApi(): NodesApi {
this._nodesApi = this._nodesApi ?? new NodesApi(this.apiService.getInstance());
return this._nodesApi;
}
constructor(private apiService: AlfrescoApiService, private logService: LogService) { constructor(private apiService: AlfrescoApiService, private logService: LogService) {
this.peopleApi = new PeopleApi(this.apiService.getInstance());
this.sitesApi = new SitesApi(this.apiService.getInstance());
this.favoritesApi = new FavoritesApi(this.apiService.getInstance());
this.searchApi = new SearchApi(this.apiService.getInstance());
this.sharedLinksApi = new SharedlinksApi(this.apiService.getInstance());
this.trashcanApi = new TrashcanApi(this.apiService.getInstance());
this.nodesApi = new NodesApi(this.apiService.getInstance());
} }
/** /**
@@ -154,7 +181,7 @@ export class CustomResourcesService {
const options = { const options = {
maxItems: pagination.maxItems, maxItems: pagination.maxItems,
skipCount: pagination.skipCount, skipCount: pagination.skipCount,
where: where ? `${where} AND ${defaultPredicate}` : defaultPredicate , where: where ? `${where} AND ${defaultPredicate}` : defaultPredicate,
include: includeFieldsRequest include: includeFieldsRequest
}; };
@@ -209,7 +236,7 @@ export class CustomResourcesService {
return new Observable((observer) => { return new Observable((observer) => {
this.sitesApi.listSiteMembershipsForPerson('-me-', options) this.sitesApi.listSiteMembershipsForPerson('-me-', options)
.then((result: SiteRolePaging) => { .then((result: SiteRolePaging) => {
const page: SiteMemberPaging = new SiteMemberPaging( { const page: SiteMemberPaging = new SiteMemberPaging({
list: { list: {
entries: result.list.entries entries: result.list.entries
.map(({ entry: { site } }: any) => { .map(({ entry: { site } }: any) => {

View File

@@ -34,13 +34,16 @@ export class DocumentListService implements DocumentListLoader {
static ROOT_ID = '-root-'; static ROOT_ID = '-root-';
nodes: NodesApi; _nodesApi: NodesApi;
get nodes(): NodesApi {
this._nodesApi = this._nodesApi ?? new NodesApi(this.apiService.getInstance());
return this._nodesApi;
}
constructor(private contentService: ContentService, constructor(private contentService: ContentService,
private apiService: AlfrescoApiService, private apiService: AlfrescoApiService,
private logService: LogService, private logService: LogService,
private customResourcesService: CustomResourcesService) { private customResourcesService: CustomResourcesService) {
this.nodes = new NodesApi(this.apiService.getInstance());
} }
/** /**

View File

@@ -24,12 +24,15 @@ import { AlfrescoApiService } from '@alfresco/adf-core';
}) })
export class GroupService { export class GroupService {
groupsApi: GroupsApi; _groupsApi: GroupsApi;
get groupsApi(): GroupsApi {
this._groupsApi = this._groupsApi ?? new GroupsApi(this.alfrescoApiService.getInstance());
return this._groupsApi;
}
constructor( constructor(
private alfrescoApiService: AlfrescoApiService private alfrescoApiService: AlfrescoApiService
) { ) {
this.groupsApi = new GroupsApi(this.alfrescoApiService.getInstance());
} }
async listAllGroupMembershipsForPerson(personId: string, opts?: any, accumulator = []): Promise<GroupEntry[]> { async listAllGroupMembershipsForPerson(personId: string, opts?: any, accumulator = []): Promise<GroupEntry[]> {

View File

@@ -42,13 +42,16 @@ import { RoleModel } from '../models/role.model';
}) })
export class NodePermissionService { export class NodePermissionService {
groupsApi: GroupsApi; _groupsApi: GroupsApi;
get groupsApi(): GroupsApi {
this._groupsApi = this._groupsApi ?? new GroupsApi(this.apiService.getInstance());
return this._groupsApi;
}
constructor(private apiService: AlfrescoApiService, constructor(private apiService: AlfrescoApiService,
private searchApiService: SearchService, private searchApiService: SearchService,
private nodeService: NodesApiService, private nodeService: NodesApiService,
private translation: TranslationService) { private translation: TranslationService) {
this.groupsApi = new GroupsApi(this.apiService.getInstance());
} }
/** /**

View File

@@ -42,7 +42,12 @@ import { SearchForm } from '../models/search-form.interface';
providedIn: 'root' providedIn: 'root'
}) })
export abstract class BaseQueryBuilderService { export abstract class BaseQueryBuilderService {
private searchApi: SearchApi;
_searchApi: SearchApi;
get searchApi(): SearchApi {
this._searchApi = this._searchApi ?? new SearchApi(this.alfrescoApiService.getInstance());
return this._searchApi;
}
/* Stream that emits the search configuration whenever the user change the search forms */ /* Stream that emits the search configuration whenever the user change the search forms */
configUpdated = new Subject<SearchConfiguration>(); configUpdated = new Subject<SearchConfiguration>();
@@ -88,7 +93,6 @@ export abstract class BaseQueryBuilderService {
ranges: { [id: string]: SearchRange } = {}; ranges: { [id: string]: SearchRange } = {};
constructor(protected appConfig: AppConfigService, protected alfrescoApiService: AlfrescoApiService) { constructor(protected appConfig: AppConfigService, protected alfrescoApiService: AlfrescoApiService) {
this.searchApi = new SearchApi(this.alfrescoApiService.getInstance());
this.resetToDefaults(); this.resetToDefaults();
} }

View File

@@ -26,10 +26,13 @@ import { catchError } from 'rxjs/operators';
}) })
export class RatingService { export class RatingService {
ratingsApi: RatingsApi; _ratingsApi: RatingsApi;
get ratingsApi(): RatingsApi {
this._ratingsApi = this._ratingsApi ?? new RatingsApi(this.apiService.getInstance());
return this._ratingsApi;
}
constructor(private apiService: AlfrescoApiService, private logService: LogService) { constructor(private apiService: AlfrescoApiService, private logService: LogService) {
this.ratingsApi = new RatingsApi(this.apiService.getInstance());
} }
/** /**

View File

@@ -27,7 +27,11 @@ import { TagBody, TagPaging, TagEntry, TagsApi } from '@alfresco/js-api';
// tslint:disable-next-line: directive-class-suffix // tslint:disable-next-line: directive-class-suffix
export class TagService { export class TagService {
private tagsApi: TagsApi; _tagsApi: TagsApi;
get tagsApi(): TagsApi {
this._tagsApi = this._tagsApi ?? new TagsApi(this.apiService.getInstance());
return this._tagsApi;
}
/** Emitted when tag information is updated. */ /** Emitted when tag information is updated. */
@Output() @Output()
@@ -35,7 +39,6 @@ export class TagService {
constructor(private apiService: AlfrescoApiService, constructor(private apiService: AlfrescoApiService,
private logService: LogService) { private logService: LogService) {
this.tagsApi = new TagsApi(this.apiService.getInstance());
} }
/** /**

View File

@@ -32,9 +32,24 @@ import { ConfirmDialogComponent } from '../dialogs/confirm.dialog';
}) })
export class VersionListComponent implements OnChanges { export class VersionListComponent implements OnChanges {
private versionsApi: VersionsApi; _contentApi: ContentApi;
private nodesApi: NodesApi; get contentApi(): ContentApi {
private contentApi: ContentApi; this._contentApi = this._contentApi ?? new ContentApi(this.alfrescoApi.getInstance());
return this._contentApi;
}
_versionsApi: VersionsApi;
get versionsApi(): VersionsApi {
this._versionsApi = this._versionsApi ?? new VersionsApi(this.alfrescoApi.getInstance());
return this._versionsApi;
}
_nodesApi: NodesApi;
get nodesApi(): NodesApi {
this._nodesApi = this._nodesApi ?? new NodesApi(this.alfrescoApi.getInstance());
return this._nodesApi;
}
versions: VersionEntry[] = []; versions: VersionEntry[] = [];
isLoading = true; isLoading = true;
@@ -73,9 +88,6 @@ export class VersionListComponent implements OnChanges {
constructor(private alfrescoApi: AlfrescoApiService, constructor(private alfrescoApi: AlfrescoApiService,
private contentService: ContentService, private contentService: ContentService,
private dialog: MatDialog) { private dialog: MatDialog) {
this.versionsApi = new VersionsApi(this.alfrescoApi.getInstance());
this.nodesApi = new NodesApi(this.alfrescoApi.getInstance());
this.contentApi = new ContentApi(this.alfrescoApi.getInstance());
} }
ngOnChanges() { ngOnChanges() {

View File

@@ -45,6 +45,12 @@ import { WebscriptApi } from '@alfresco/js-api';
}) })
export class WebscriptComponent implements OnChanges { export class WebscriptComponent implements OnChanges {
_webscriptApi: WebscriptApi;
get webscriptApi(): WebscriptApi {
this._webscriptApi = this._webscriptApi ?? new WebscriptApi(this.apiService.getInstance());
return this._webscriptApi;
}
/** (required) Path to the webscript (as defined by webscript). */ /** (required) Path to the webscript (as defined by webscript). */
@Input() @Input()
scriptPath: string; scriptPath: string;
@@ -81,11 +87,8 @@ export class WebscriptComponent implements OnChanges {
data: any = undefined; data: any = undefined;
showError: boolean = false; showError: boolean = false;
webscriptApi: WebscriptApi;
constructor(private apiService: AlfrescoApiService, constructor(private apiService: AlfrescoApiService,
private logService: LogService) { private logService: LogService) {
this.webscriptApi = new WebscriptApi(this.apiService.getInstance());
} }
ngOnChanges() { ngOnChanges() {

View File

@@ -38,7 +38,12 @@ export class LibraryFavoriteDirective implements OnChanges {
@Output() error = new EventEmitter<any>(); @Output() error = new EventEmitter<any>();
private targetLibrary = null; private targetLibrary = null;
private favoritesApi: FavoritesApi;
_favoritesApi: FavoritesApi;
get favoritesApi(): FavoritesApi {
this._favoritesApi = this._favoritesApi ?? new FavoritesApi(this.alfrescoApiService.getInstance());
return this._favoritesApi;
}
@HostListener('click') @HostListener('click')
onClick() { onClick() {
@@ -58,7 +63,6 @@ export class LibraryFavoriteDirective implements OnChanges {
} }
constructor(private alfrescoApiService: AlfrescoApiService) { constructor(private alfrescoApiService: AlfrescoApiService) {
this.favoritesApi = new FavoritesApi(this.alfrescoApiService.getInstance());
} }
ngOnChanges(changes) { ngOnChanges(changes) {

View File

@@ -48,7 +48,11 @@ export class LibraryMembershipDirective implements OnChanges {
isJoinRequested: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false); isJoinRequested: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);
private sitesApi: SitesApi; _sitesApi: SitesApi;
get sitesApi(): SitesApi {
this._sitesApi = this._sitesApi ?? new SitesApi(this.alfrescoApiService.getInstance());
return this._sitesApi;
}
/** Site for which to toggle the membership request. */ /** Site for which to toggle the membership request. */
@Input('adf-library-membership') @Input('adf-library-membership')
@@ -75,7 +79,6 @@ export class LibraryMembershipDirective implements OnChanges {
private sitesService: SitesService, private sitesService: SitesService,
private versionCompatibilityService: VersionCompatibilityService private versionCompatibilityService: VersionCompatibilityService
) { ) {
this.sitesApi = new SitesApi(this.alfrescoApiService.getInstance());
} }
ngOnChanges(changes: SimpleChanges) { ngOnChanges(changes: SimpleChanges) {

View File

@@ -62,8 +62,17 @@ export class NodeDeleteDirective implements OnChanges {
@Output() @Output()
delete: EventEmitter<any> = new EventEmitter(); delete: EventEmitter<any> = new EventEmitter();
private trashcanApi: TrashcanApi; _trashcanApi: TrashcanApi;
private nodesApi: NodesApi; get trashcanApi(): TrashcanApi {
this._trashcanApi = this._trashcanApi ?? new TrashcanApi(this.alfrescoApiService.getInstance());
return this._trashcanApi;
}
_nodesApi: NodesApi;
get nodesApi(): NodesApi {
this._nodesApi = this._nodesApi ?? new NodesApi(this.alfrescoApiService.getInstance());
return this._nodesApi;
}
@HostListener('click') @HostListener('click')
onClick() { onClick() {
@@ -73,8 +82,6 @@ export class NodeDeleteDirective implements OnChanges {
constructor(private alfrescoApiService: AlfrescoApiService, constructor(private alfrescoApiService: AlfrescoApiService,
private translation: TranslationService, private translation: TranslationService,
private elementRef: ElementRef) { private elementRef: ElementRef) {
this.trashcanApi = new TrashcanApi(this.alfrescoApiService.getInstance());
this.nodesApi = new NodesApi(this.alfrescoApiService.getInstance());
} }
ngOnChanges() { ngOnChanges() {

View File

@@ -31,7 +31,11 @@ import { DownloadService } from '../services/download.service';
}) })
export class NodeDownloadDirective { export class NodeDownloadDirective {
private contentApi: ContentApi; _contentApi: ContentApi;
get contentApi(): ContentApi {
this._contentApi = this._contentApi ?? new ContentApi(this.apiService.getInstance());
return this._contentApi;
}
/** Nodes to download. */ /** Nodes to download. */
@Input('adfNodeDownload') @Input('adfNodeDownload')
@@ -50,7 +54,6 @@ export class NodeDownloadDirective {
private apiService: AlfrescoApiService, private apiService: AlfrescoApiService,
private downloadService: DownloadService, private downloadService: DownloadService,
private dialog: MatDialog) { private dialog: MatDialog) {
this.contentApi = new ContentApi(this.apiService.getInstance());
} }
/** /**

View File

@@ -30,7 +30,11 @@ import { catchError, map } from 'rxjs/operators';
export class NodeFavoriteDirective implements OnChanges { export class NodeFavoriteDirective implements OnChanges {
favorites: any[] = []; favorites: any[] = [];
private favoritesApi: FavoritesApi; _favoritesApi: FavoritesApi;
get favoritesApi(): FavoritesApi {
this._favoritesApi = this._favoritesApi ?? new FavoritesApi(this.alfrescoApiService.getInstance());
return this._favoritesApi;
}
/** Array of nodes to toggle as favorites. */ /** Array of nodes to toggle as favorites. */
@Input('adf-node-favorite') @Input('adf-node-favorite')
@@ -48,7 +52,6 @@ export class NodeFavoriteDirective implements OnChanges {
} }
constructor(private alfrescoApiService: AlfrescoApiService) { constructor(private alfrescoApiService: AlfrescoApiService) {
this.favoritesApi = new FavoritesApi(this.alfrescoApiService.getInstance());
} }
ngOnChanges(changes) { ngOnChanges(changes) {

View File

@@ -35,7 +35,12 @@ export class RestoreMessageModel {
}) })
export class NodeRestoreDirective { export class NodeRestoreDirective {
private readonly restoreProcessStatus; private readonly restoreProcessStatus;
private trashcanApi: TrashcanApi;
_trashcanApi: TrashcanApi;
get trashcanApi(): TrashcanApi {
this._trashcanApi = this._trashcanApi ?? new TrashcanApi(this.alfrescoApiService.getInstance());
return this._trashcanApi;
}
/** Array of deleted nodes to restore. */ /** Array of deleted nodes to restore. */
@Input('adf-restore') @Input('adf-restore')
@@ -53,7 +58,6 @@ export class NodeRestoreDirective {
constructor(private alfrescoApiService: AlfrescoApiService, constructor(private alfrescoApiService: AlfrescoApiService,
private translation: TranslationService) { private translation: TranslationService) {
this.restoreProcessStatus = this.processStatus(); this.restoreProcessStatus = this.processStatus();
this.trashcanApi = new TrashcanApi(this.alfrescoApiService.getInstance());
} }
private recover(selection: any) { private recover(selection: any) {

View File

@@ -38,15 +38,21 @@ export class ActivitiContentService {
static UNKNOWN_ERROR_MESSAGE: string = 'Unknown error'; static UNKNOWN_ERROR_MESSAGE: string = 'Unknown error';
static GENERIC_ERROR_MESSAGE: string = 'Server error'; static GENERIC_ERROR_MESSAGE: string = 'Server error';
integrationAlfrescoOnPremiseApi: IntegrationAlfrescoOnPremiseApi; _integrationAlfrescoOnPremiseApi: IntegrationAlfrescoOnPremiseApi;
contentApi: ActivitiContentApi; get integrationAlfrescoOnPremiseApi(): IntegrationAlfrescoOnPremiseApi {
this._integrationAlfrescoOnPremiseApi = this._integrationAlfrescoOnPremiseApi ?? new IntegrationAlfrescoOnPremiseApi(this.apiService.getInstance());
return this._integrationAlfrescoOnPremiseApi;
}
_contentApi: ActivitiContentApi;
get contentApi(): ActivitiContentApi {
this._contentApi = this._contentApi ?? new ActivitiContentApi(this.apiService.getInstance());
return this._contentApi;
}
constructor(private apiService: AlfrescoApiService, constructor(private apiService: AlfrescoApiService,
private logService: LogService, private logService: LogService,
private sitesService: SitesService) { private sitesService: SitesService) {
this.integrationAlfrescoOnPremiseApi = new IntegrationAlfrescoOnPremiseApi(this.apiService.getInstance());
this.contentApi = new ActivitiContentApi(this.apiService.getInstance());
} }
/** /**

View File

@@ -32,11 +32,14 @@ export class EcmModelService {
public static MODEL_NAME: string = 'activitiFormsModel'; public static MODEL_NAME: string = 'activitiFormsModel';
public static TYPE_MODEL: string = 'cm:folder'; public static TYPE_MODEL: string = 'cm:folder';
private customModelApi: CustomModelApi; _customModelApi: CustomModelApi;
get customModelApi(): CustomModelApi {
this._customModelApi = this._customModelApi ?? new CustomModelApi(this.apiService.getInstance());
return this._customModelApi;
}
constructor(private apiService: AlfrescoApiService, constructor(private apiService: AlfrescoApiService,
private logService: LogService) { private logService: LogService) {
this.customModelApi = new CustomModelApi(this.apiService.getInstance());
} }
public createEcmTypeForActivitiForm(formName: string, form: FormModel): Observable<any> { public createEcmTypeForActivitiForm(formName: string, form: FormModel): Observable<any> {

View File

@@ -52,15 +52,59 @@ export class FormService {
static UNKNOWN_ERROR_MESSAGE: string = 'Unknown error'; static UNKNOWN_ERROR_MESSAGE: string = 'Unknown error';
static GENERIC_ERROR_MESSAGE: string = 'Server error'; static GENERIC_ERROR_MESSAGE: string = 'Server error';
taskApi: TasksApi; _taskFormsApi: TaskFormsApi;
taskFormsApi: TaskFormsApi; get taskFormsApi(): TaskFormsApi {
modelsApi: ModelsApi; this._taskFormsApi = this._taskFormsApi ?? new TaskFormsApi(this.apiService.getInstance());
editorApi: FormModelsApi; return this._taskFormsApi;
processDefinitionsApi: ProcessDefinitionsApi; }
processInstancesApi: ProcessInstancesApi;
processInstanceVariablesApi: ProcessInstanceVariablesApi; _taskApi: TasksApi;
groupsApi: ActivitiGroupsApi; get taskApi(): TasksApi {
usersApi: UsersApi; this._taskApi = this._taskApi ?? new TasksApi(this.apiService.getInstance());
return this._taskApi;
}
_modelsApi: ModelsApi;
get modelsApi(): ModelsApi {
this._modelsApi = this._modelsApi ?? new ModelsApi(this.apiService.getInstance());
return this._modelsApi;
}
_editorApi: FormModelsApi;
get editorApi(): FormModelsApi {
this._editorApi = this._editorApi ?? new FormModelsApi(this.apiService.getInstance());
return this._editorApi;
}
_processDefinitionsApi: ProcessDefinitionsApi;
get processDefinitionsApi(): ProcessDefinitionsApi {
this._processDefinitionsApi = this._processDefinitionsApi ?? new ProcessDefinitionsApi(this.apiService.getInstance());
return this._processDefinitionsApi;
}
_processInstanceVariablesApi: ProcessInstanceVariablesApi;
get processInstanceVariablesApi(): ProcessInstanceVariablesApi {
this._processInstanceVariablesApi = this._processInstanceVariablesApi ?? new ProcessInstanceVariablesApi(this.apiService.getInstance());
return this._processInstanceVariablesApi;
}
_processInstancesApi: ProcessInstancesApi;
get processInstancesApi(): ProcessInstancesApi {
this._processInstancesApi = this._processInstancesApi ?? new ProcessInstancesApi(this.apiService.getInstance());
return this._processInstancesApi;
}
_groupsApi: ActivitiGroupsApi;
get groupsApi(): ActivitiGroupsApi {
this._groupsApi = this._groupsApi ?? new ActivitiGroupsApi(this.apiService.getInstance());
return this._groupsApi;
}
_usersApi: UsersApi;
get usersApi(): UsersApi {
this._usersApi = this._usersApi ?? new UsersApi(this.apiService.getInstance());
return this._usersApi;
}
formLoaded = new Subject<FormEvent>(); formLoaded = new Subject<FormEvent>();
formDataRefreshed = new Subject<FormEvent>(); formDataRefreshed = new Subject<FormEvent>();
@@ -83,16 +127,6 @@ export class FormService {
constructor(private ecmModelService: EcmModelService, constructor(private ecmModelService: EcmModelService,
private apiService: AlfrescoApiService, private apiService: AlfrescoApiService,
protected logService: LogService) { protected logService: LogService) {
this.taskApi = new TasksApi(this.apiService.getInstance());
this.modelsApi = new ModelsApi(this.apiService.getInstance());
this.editorApi = new FormModelsApi(this.apiService.getInstance());
this.processDefinitionsApi = new ProcessDefinitionsApi(this.apiService.getInstance());
this.processInstanceVariablesApi = new ProcessInstanceVariablesApi(this.apiService.getInstance());
this.processInstancesApi = new ProcessInstancesApi(this.apiService.getInstance());
this.usersApi = new UsersApi(this.apiService.getInstance());
this.groupsApi = new ActivitiGroupsApi(this.apiService.getInstance());
this.taskFormsApi = new TaskFormsApi(this.apiService.getInstance());
} }
/** /**

View File

@@ -30,11 +30,14 @@ export class ProcessContentService {
static UNKNOWN_ERROR_MESSAGE: string = 'Unknown error'; static UNKNOWN_ERROR_MESSAGE: string = 'Unknown error';
static GENERIC_ERROR_MESSAGE: string = 'Server error'; static GENERIC_ERROR_MESSAGE: string = 'Server error';
private contentApi: ActivitiContentApi; _contentApi: ActivitiContentApi;
get contentApi(): ActivitiContentApi {
this._contentApi = this._contentApi ?? new ActivitiContentApi(this.apiService.getInstance());
return this._contentApi;
}
constructor(private apiService: AlfrescoApiService, constructor(private apiService: AlfrescoApiService,
private logService: LogService) { private logService: LogService) {
this.contentApi = new ActivitiContentApi(this.apiService.getInstance());
} }
/** /**

View File

@@ -37,13 +37,17 @@ import { TaskFormsApi } from '@alfresco/js-api';
}) })
export class WidgetVisibilityService { export class WidgetVisibilityService {
private taskFormsApi: TaskFormsApi; _taskFormsApi: TaskFormsApi;
get taskFormsApi(): TaskFormsApi {
this._taskFormsApi = this._taskFormsApi ?? new TaskFormsApi(this.apiService.getInstance());
return this._taskFormsApi;
}
private processVarList: TaskProcessVariableModel[]; private processVarList: TaskProcessVariableModel[];
private form: FormModel; private form: FormModel;
constructor(private apiService: AlfrescoApiService, constructor(private apiService: AlfrescoApiService,
private logService: LogService) { private logService: LogService) {
this.taskFormsApi = new TaskFormsApi(this.apiService.getInstance());
} }
public refreshVisibility(form: FormModel, processVarList?: TaskProcessVariableModel[]) { public refreshVisibility(form: FormModel, processVarList?: TaskProcessVariableModel[]) {

View File

@@ -27,11 +27,14 @@ import { map, catchError } from 'rxjs/operators';
}) })
export class AppsProcessService { export class AppsProcessService {
appsApi: RuntimeAppDefinitionsApi; _appsApi: RuntimeAppDefinitionsApi;
get appsApi(): RuntimeAppDefinitionsApi {
this._appsApi = this._appsApi ?? new RuntimeAppDefinitionsApi(this.apiService.getInstance());
return this._appsApi;
}
constructor(private apiService: AlfrescoApiService, constructor(private apiService: AlfrescoApiService,
private logService: LogService) { private logService: LogService) {
this.appsApi = new RuntimeAppDefinitionsApi(this.apiService.getInstance());
} }
/** /**

View File

@@ -48,7 +48,11 @@ export class AuthenticationService {
*/ */
onLogout: ReplaySubject<any> = new ReplaySubject<any>(1); onLogout: ReplaySubject<any> = new ReplaySubject<any>(1);
private profileApi: UserProfileApi; _profileApi: UserProfileApi;
get profileApi(): UserProfileApi {
this._profileApi = this._profileApi ?? new UserProfileApi(this.alfrescoApi.getInstance());
return this._profileApi;
}
constructor( constructor(
private appConfig: AppConfigService, private appConfig: AppConfigService,
@@ -58,7 +62,6 @@ export class AuthenticationService {
private logService: LogService) { private logService: LogService) {
this.alfrescoApi.alfrescoApiInitialized.subscribe(() => { this.alfrescoApi.alfrescoApiInitialized.subscribe(() => {
this.alfrescoApi.getInstance().reply('logged-in', () => { this.alfrescoApi.getInstance().reply('logged-in', () => {
this.profileApi = new UserProfileApi(alfrescoApi.getInstance());
this.onLogin.next(); this.onLogin.next();
}); });
}); });

View File

@@ -33,11 +33,14 @@ import { UserProfileApi, UserRepresentation } from '@alfresco/js-api';
}) })
export class BpmUserService { export class BpmUserService {
private profileApi: UserProfileApi; _profileApi: UserProfileApi;
get profileApi(): UserProfileApi {
this._profileApi = this._profileApi ?? new UserProfileApi(this.apiService.getInstance());
return this._profileApi;
}
constructor(private apiService: AlfrescoApiService, constructor(private apiService: AlfrescoApiService,
private logService: LogService) { private logService: LogService) {
this.profileApi = new UserProfileApi(this.apiService.getInstance());
} }
/** /**

View File

@@ -28,11 +28,14 @@ import { CommentEntry, CommentsApi } from '@alfresco/js-api';
}) })
export class CommentContentService { export class CommentContentService {
private commentsApi: CommentsApi; _commentsApi: CommentsApi;
get commentsApi(): CommentsApi {
this._commentsApi = this._commentsApi ?? new CommentsApi(this.apiService.getInstance());
return this._commentsApi;
}
constructor(private apiService: AlfrescoApiService, constructor(private apiService: AlfrescoApiService,
private logService: LogService) { private logService: LogService) {
this.commentsApi = new CommentsApi(this.apiService.getInstance());
} }
/** /**
@@ -42,7 +45,7 @@ export class CommentContentService {
* @returns Details of the comment added * @returns Details of the comment added
*/ */
addNodeComment(nodeId: string, message: string): Observable<CommentModel> { addNodeComment(nodeId: string, message: string): Observable<CommentModel> {
return from(this.commentsApi.createComment(nodeId, {content: message})) return from(this.commentsApi.createComment(nodeId, { content: message }))
.pipe( .pipe(
map((response: CommentEntry) => { map((response: CommentEntry) => {
return new CommentModel({ return new CommentModel({

View File

@@ -29,11 +29,14 @@ import { ActivitiCommentsApi } from '@alfresco/js-api';
}) })
export class CommentProcessService { export class CommentProcessService {
private commentsApi: ActivitiCommentsApi; _commentsApi: ActivitiCommentsApi;
get commentsApi(): ActivitiCommentsApi {
this._commentsApi = this._commentsApi ?? new ActivitiCommentsApi(this.apiService.getInstance());
return this._commentsApi;
}
constructor(private apiService: AlfrescoApiService, constructor(private apiService: AlfrescoApiService,
private logService: LogService) { private logService: LogService) {
this.commentsApi = new ActivitiCommentsApi(this.apiService.getInstance());
} }
/** /**

View File

@@ -38,8 +38,17 @@ export class ContentService {
folderCreate: Subject<MinimalNode> = new Subject<MinimalNode>(); folderCreate: Subject<MinimalNode> = new Subject<MinimalNode>();
folderEdit: Subject<MinimalNode> = new Subject<MinimalNode>(); folderEdit: Subject<MinimalNode> = new Subject<MinimalNode>();
private contentApi: ContentApi; _contentApi: ContentApi;
private nodesApi: NodesApi; get contentApi(): ContentApi {
this._contentApi = this._contentApi ?? new ContentApi(this.apiService.getInstance());
return this._contentApi;
}
_nodesApi: NodesApi;
get nodesApi(): NodesApi {
this._nodesApi = this._nodesApi ?? new NodesApi(this.apiService.getInstance());
return this._nodesApi;
}
constructor(public authService: AuthenticationService, constructor(public authService: AuthenticationService,
public apiService: AlfrescoApiService, public apiService: AlfrescoApiService,
@@ -47,8 +56,6 @@ export class ContentService {
private sanitizer: DomSanitizer, private sanitizer: DomSanitizer,
private downloadService: DownloadService, private downloadService: DownloadService,
private thumbnailService: ThumbnailService) { private thumbnailService: ThumbnailService) {
this.contentApi = new ContentApi(apiService.getInstance());
this.nodesApi = new NodesApi(apiService.getInstance());
} }
/** /**

View File

@@ -28,15 +28,22 @@ import { catchError } from 'rxjs/operators';
}) })
export class DeletedNodesApiService { export class DeletedNodesApiService {
nodesApi: NodesApi; _nodesApi: NodesApi;
trashcanApi: TrashcanApi; get nodesApi(): NodesApi {
this._nodesApi = this._nodesApi ?? new NodesApi(this.apiService.getInstance());
return this._nodesApi;
}
_trashcanApi: TrashcanApi;
get trashcanApi(): TrashcanApi {
this._trashcanApi = this._trashcanApi ?? new TrashcanApi(this.apiService.getInstance());
return this._trashcanApi;
}
constructor( constructor(
private apiService: AlfrescoApiService, private apiService: AlfrescoApiService,
private preferences: UserPreferencesService private preferences: UserPreferencesService
) { ) {
this.nodesApi = new NodesApi(this.apiService.getInstance());
this.trashcanApi = new TrashcanApi(this.apiService.getInstance());
} }
/** /**

View File

@@ -27,11 +27,14 @@ import { catchError } from 'rxjs/operators';
}) })
export class DownloadZipService { export class DownloadZipService {
downloadsApi: DownloadsApi; _downloadsApi: DownloadsApi;
get downloadsApi(): DownloadsApi {
this._downloadsApi = this._downloadsApi ?? new DownloadsApi(this.apiService.getInstance());
return this._downloadsApi;
}
constructor(private apiService: AlfrescoApiService, constructor(private apiService: AlfrescoApiService,
private logService: LogService) { private logService: LogService) {
this.downloadsApi = new DownloadsApi(this.apiService.getInstance());
} }
/** /**

View File

@@ -28,16 +28,16 @@ import { PeopleApi } from '@alfresco/js-api';
}) })
export class EcmUserService { export class EcmUserService {
private _peopleApi: PeopleApi; _peopleApi: PeopleApi;
get peopleApi(): PeopleApi {
this._peopleApi = this._peopleApi ?? new PeopleApi(this.apiService.getInstance());
return this._peopleApi;
}
constructor(private apiService: AlfrescoApiService, constructor(private apiService: AlfrescoApiService,
private contentService: ContentService) { private contentService: ContentService) {
} }
get peopleApi(): PeopleApi {
return this._peopleApi || (this._peopleApi = new PeopleApi(this.apiService.getInstance()));
}
/** /**
* Gets information about a user identified by their username. * Gets information about a user identified by their username.
* @param userName Target username * @param userName Target username

View File

@@ -19,8 +19,7 @@ import { Injectable } from '@angular/core';
import { import {
AlfrescoApiCompatibility, AlfrescoApiCompatibility,
ContentApi, ContentApi,
Core, Node, NodesApi
Node
} from '@alfresco/js-api'; } from '@alfresco/js-api';
import { ReplaySubject, Subject } from 'rxjs'; import { ReplaySubject, Subject } from 'rxjs';
@@ -37,6 +36,7 @@ export class ExternalAlfrescoApiService {
alfrescoApiInitialized: ReplaySubject<boolean> = new ReplaySubject(1); alfrescoApiInitialized: ReplaySubject<boolean> = new ReplaySubject(1);
protected alfrescoApi: AlfrescoApiCompatibility; protected alfrescoApi: AlfrescoApiCompatibility;
_nodesApi: NodesApi;
getInstance(): AlfrescoApiCompatibility { getInstance(): AlfrescoApiCompatibility {
return this.alfrescoApi; return this.alfrescoApi;
@@ -46,8 +46,9 @@ export class ExternalAlfrescoApiService {
return this.getInstance().content; return this.getInstance().content;
} }
get nodesApi(): Core.NodesApi { get nodesApi(): NodesApi {
return this.getInstance().nodes; this._nodesApi = this._nodesApi ?? new NodesApi(this.getInstance());
return this._nodesApi;
} }
init(ecmHost: string, contextRoot: string) { init(ecmHost: string, contextRoot: string) {

View File

@@ -27,7 +27,11 @@ import { catchError } from 'rxjs/operators';
}) })
export class FavoritesApiService { export class FavoritesApiService {
private favoritesApi: FavoritesApi; _favoritesApi: FavoritesApi;
get favoritesApi(): FavoritesApi {
this._favoritesApi = this._favoritesApi ?? new FavoritesApi(this.apiService.getInstance());
return this._favoritesApi;
}
static remapEntry({ entry }: any): any { static remapEntry({ entry }: any): any {
entry.properties = { entry.properties = {
@@ -42,7 +46,6 @@ export class FavoritesApiService {
private apiService: AlfrescoApiService, private apiService: AlfrescoApiService,
private preferences: UserPreferencesService private preferences: UserPreferencesService
) { ) {
this.favoritesApi = new FavoritesApi(this.apiService.getInstance());
} }
remapFavoritesData(data: FavoritePaging = {}): NodePaging { remapFavoritesData(data: FavoritePaging = {}): NodePaging {

View File

@@ -28,13 +28,20 @@ import { NodeMetadata } from '../models/node-metadata.model';
}) })
export class NodesApiService { export class NodesApiService {
private nodesApi: NodesApi; _trashcanApi: TrashcanApi;
private trashcanApi: TrashcanApi; get trashcanApi(): TrashcanApi {
this._trashcanApi = this._trashcanApi ?? new TrashcanApi(this.apiService.getInstance());
return this._trashcanApi;
}
_nodesApi: NodesApi;
get nodesApi(): NodesApi {
this._nodesApi = this._nodesApi ?? new NodesApi(this.apiService.getInstance());
return this._nodesApi;
}
constructor(private apiService: AlfrescoApiService, constructor(private apiService: AlfrescoApiService,
private preferences: UserPreferencesService) { private preferences: UserPreferencesService) {
this.nodesApi = new NodesApi(this.apiService.getInstance());
this.trashcanApi = new TrashcanApi(this.apiService.getInstance());
} }
private getEntryFromEntity(entity: NodeEntry) { private getEntryFromEntity(entity: NodeEntry) {

View File

@@ -50,10 +50,13 @@ export class PeopleContentService {
private hasContentAdminRole: boolean = false; private hasContentAdminRole: boolean = false;
hasCheckedIsContentAdmin: boolean = false; hasCheckedIsContentAdmin: boolean = false;
private peopleApi: PeopleApi; _peopleApi: PeopleApi;
get peopleApi(): PeopleApi {
this._peopleApi = this._peopleApi ?? new PeopleApi(this.apiService.getInstance());
return this._peopleApi;
}
constructor(private apiService: AlfrescoApiService, private logService: LogService) { constructor(private apiService: AlfrescoApiService, private logService: LogService) {
this.peopleApi = new PeopleApi(this.apiService.getInstance());
} }
/** /**
@@ -124,7 +127,7 @@ export class PeopleContentService {
} }
private buildOrderArray(sorting: PeopleContentSortingModel): string[] { private buildOrderArray(sorting: PeopleContentSortingModel): string[] {
return sorting?.orderBy && sorting?.direction ? [ `${sorting.orderBy} ${sorting.direction.toUpperCase()}` ] : []; return sorting?.orderBy && sorting?.direction ? [`${sorting.orderBy} ${sorting.direction.toUpperCase()}`] : [];
} }
private handleError(error: any) { private handleError(error: any) {

View File

@@ -21,20 +21,31 @@ import { UserProcessModel } from '../models/user-process.model';
import { AlfrescoApiService } from './alfresco-api.service'; import { AlfrescoApiService } from './alfresco-api.service';
import { LogService } from './log.service'; import { LogService } from './log.service';
import { catchError, map } from 'rxjs/operators'; import { catchError, map } from 'rxjs/operators';
import { TaskActionsApi, UsersApi, ResultListDataRepresentationLightUserRepresentation } from '@alfresco/js-api'; import {
TaskActionsApi,
UsersApi,
ResultListDataRepresentationLightUserRepresentation
} from '@alfresco/js-api';
@Injectable({ @Injectable({
providedIn: 'root' providedIn: 'root'
}) })
export class PeopleProcessService { export class PeopleProcessService {
private taskActionsApi: TaskActionsApi; _taskActionsApi: TaskActionsApi;
private userApi: UsersApi; get taskActionsApi(): TaskActionsApi {
this._taskActionsApi = this._taskActionsApi ?? new TaskActionsApi(this.apiService.getInstance());
return this._taskActionsApi;
}
_userApi: UsersApi;
get userApi(): UsersApi {
this._userApi = this._userApi ?? new UsersApi(this.apiService.getInstance());
return this._userApi;
}
constructor(private apiService: AlfrescoApiService, constructor(private apiService: AlfrescoApiService,
private logService: LogService) { private logService: LogService) {
this.taskActionsApi = new TaskActionsApi(this.apiService.getInstance());
this.userApi = new UsersApi(this.apiService.getInstance());
} }
/** /**

View File

@@ -26,12 +26,19 @@ import { concatMap, switchMap, takeWhile, map } from 'rxjs/operators';
}) })
export class RenditionsService { export class RenditionsService {
private renditionsApi: RenditionsApi; _renditionsApi: RenditionsApi;
private contentApi: ContentApi; get renditionsApi(): RenditionsApi {
this._renditionsApi = this._renditionsApi ?? new RenditionsApi(this.apiService.getInstance());
return this._renditionsApi;
}
_contentApi: ContentApi;
get contentApi(): ContentApi {
this._contentApi = this._contentApi ?? new ContentApi(this.apiService.getInstance());
return this._contentApi;
}
constructor(private apiService: AlfrescoApiService) { constructor(private apiService: AlfrescoApiService) {
this.renditionsApi = new RenditionsApi(this.apiService.getInstance());
this.contentApi = new ContentApi(this.apiService.getInstance());
} }
/** /**

View File

@@ -27,13 +27,21 @@ import { SearchConfigurationService } from './search-configuration.service';
export class SearchService { export class SearchService {
dataLoaded: Subject<ResultSetPaging> = new Subject(); dataLoaded: Subject<ResultSetPaging> = new Subject();
queriesApi: QueriesApi;
searchApi: SearchApi; _queriesApi: QueriesApi;
get queriesApi(): QueriesApi {
this._queriesApi = this._queriesApi ?? new QueriesApi(this.apiService.getInstance());
return this._queriesApi;
}
_searchApi: SearchApi;
get searchApi(): SearchApi {
this._searchApi = this._searchApi ?? new SearchApi(this.apiService.getInstance());
return this._searchApi;
}
constructor(private apiService: AlfrescoApiService, constructor(private apiService: AlfrescoApiService,
private searchConfigurationService: SearchConfigurationService) { private searchConfigurationService: SearchConfigurationService) {
this.queriesApi = new QueriesApi(this.apiService.getInstance());
this.searchApi = new SearchApi(this.apiService.getInstance());
} }
/** /**

View File

@@ -28,11 +28,15 @@ import { catchError } from 'rxjs/operators';
export class SharedLinksApiService { export class SharedLinksApiService {
error = new Subject<{ statusCode: number, message: string }>(); error = new Subject<{ statusCode: number, message: string }>();
private sharedLinksApi: SharedlinksApi;
_sharedLinksApi: SharedlinksApi;
get sharedLinksApi(): SharedlinksApi {
this._sharedLinksApi = this._sharedLinksApi ?? new SharedlinksApi(this.apiService.getInstance());
return this._sharedLinksApi;
}
constructor(private apiService: AlfrescoApiService, constructor(private apiService: AlfrescoApiService,
private preferences: UserPreferencesService) { private preferences: UserPreferencesService) {
this.sharedLinksApi = new SharedlinksApi(this.apiService.getInstance());
} }
/** /**

View File

@@ -40,10 +40,13 @@ import { LogService } from './log.service';
}) })
export class SitesService { export class SitesService {
private sitesApi: SitesApi; _sitesApi: SitesApi;
get sitesApi(): SitesApi {
this._sitesApi = this._sitesApi ?? new SitesApi(this.apiService.getInstance());
return this._sitesApi;
}
constructor(private apiService: AlfrescoApiService, private logService: LogService) { constructor(private apiService: AlfrescoApiService, private logService: LogService) {
this.sitesApi = new SitesApi(this.apiService.getInstance());
} }
/** /**

View File

@@ -164,10 +164,13 @@ export class ThumbnailService {
'task': './assets/images/task.svg' 'task': './assets/images/task.svg'
}; };
private contentApi: ContentApi; _contentApi: ContentApi;
get contentApi(): ContentApi {
this._contentApi = this._contentApi ?? new ContentApi(this.apiService.getInstance());
return this._contentApi;
}
constructor(protected apiService: AlfrescoApiService, matIconRegistry: MatIconRegistry, sanitizer: DomSanitizer) { constructor(protected apiService: AlfrescoApiService, matIconRegistry: MatIconRegistry, sanitizer: DomSanitizer) {
this.contentApi = new ContentApi(apiService.getInstance());
Object.keys(this.mimeTypeIcons).forEach((key) => { Object.keys(this.mimeTypeIcons).forEach((key) => {
const url = sanitizer.bypassSecurityTrustResourceUrl(this.mimeTypeIcons[key]); const url = sanitizer.bypassSecurityTrustResourceUrl(this.mimeTypeIcons[key]);

View File

@@ -63,9 +63,23 @@ export class UploadService {
fileUploadDeleted: Subject<FileUploadDeleteEvent> = new Subject<FileUploadDeleteEvent>(); fileUploadDeleted: Subject<FileUploadDeleteEvent> = new Subject<FileUploadDeleteEvent>();
fileDeleted: Subject<string> = new Subject<string>(); fileDeleted: Subject<string> = new Subject<string>();
private uploadApi: UploadApi; _uploadApi: UploadApi;
private nodesApi: NodesApi; get uploadApi(): UploadApi {
private versionsApi: VersionsApi; this._uploadApi = this._uploadApi ?? new UploadApi(this.apiService.getInstance());
return this._uploadApi;
}
_nodesApi: NodesApi;
get nodesApi(): NodesApi {
this._nodesApi = this._nodesApi ?? new NodesApi(this.apiService.getInstance());
return this._nodesApi;
}
_versionsApi: VersionsApi;
get versionsApi(): VersionsApi {
this._versionsApi = this._versionsApi ?? new VersionsApi(this.apiService.getInstance());
return this._versionsApi;
}
constructor( constructor(
protected apiService: AlfrescoApiService, protected apiService: AlfrescoApiService,
@@ -76,10 +90,6 @@ export class UploadService {
.subscribe(({ status }) => { .subscribe(({ status }) => {
this.isThumbnailGenerationEnabled = status.isThumbnailGenerationEnabled; this.isThumbnailGenerationEnabled = status.isThumbnailGenerationEnabled;
}); });
this.uploadApi = new UploadApi(apiService.getInstance());
this.nodesApi = new NodesApi(apiService.getInstance());
this.versionsApi = new VersionsApi(apiService.getInstance());
} }
/** /**

View File

@@ -206,11 +206,11 @@ export class ViewerComponent implements OnChanges, OnInit, OnDestroy {
/** Emitted when user clicks 'Navigate Before' ("<") button. */ /** Emitted when user clicks 'Navigate Before' ("<") button. */
@Output() @Output()
navigateBefore = new EventEmitter<MouseEvent|KeyboardEvent>(); navigateBefore = new EventEmitter<MouseEvent | KeyboardEvent>();
/** Emitted when user clicks 'Navigate Next' (">") button. */ /** Emitted when user clicks 'Navigate Next' (">") button. */
@Output() @Output()
navigateNext = new EventEmitter<MouseEvent|KeyboardEvent>(); navigateNext = new EventEmitter<MouseEvent | KeyboardEvent>();
/** Emitted when the shared link used is not valid. */ /** Emitted when the shared link used is not valid. */
@Output() @Output()
@@ -257,10 +257,29 @@ export class ViewerComponent implements OnChanges, OnInit, OnDestroy {
private shouldCloseViewer = true; private shouldCloseViewer = true;
private keyDown$ = fromEvent<KeyboardEvent>(document, 'keydown'); private keyDown$ = fromEvent<KeyboardEvent>(document, 'keydown');
private sharedLinksApi: SharedlinksApi; _sharedLinksApi: SharedlinksApi;
private versionsApi: VersionsApi; get sharedLinksApi(): SharedlinksApi {
private nodesApi: NodesApi; this._sharedLinksApi = this._sharedLinksApi ?? new SharedlinksApi(this.apiService.getInstance());
private contentApi: ContentApi; return this._sharedLinksApi;
}
_versionsApi: VersionsApi;
get versionsApi(): VersionsApi {
this._versionsApi = this._versionsApi ?? new VersionsApi(this.apiService.getInstance());
return this._versionsApi;
}
_nodesApi: NodesApi;
get nodesApi(): NodesApi {
this._nodesApi = this._nodesApi ?? new NodesApi(this.apiService.getInstance());
return this._nodesApi;
}
_contentApi: ContentApi;
get contentApi(): ContentApi {
this._contentApi = this._contentApi ?? new ContentApi(this.apiService.getInstance());
return this._contentApi;
}
constructor(private apiService: AlfrescoApiService, constructor(private apiService: AlfrescoApiService,
private viewUtilService: ViewUtilService, private viewUtilService: ViewUtilService,
@@ -270,10 +289,6 @@ export class ViewerComponent implements OnChanges, OnInit, OnDestroy {
private uploadService: UploadService, private uploadService: UploadService,
private el: ElementRef, private el: ElementRef,
public dialog: MatDialog) { public dialog: MatDialog) {
this.sharedLinksApi = new SharedlinksApi(this.apiService.getInstance());
this.versionsApi = new VersionsApi(this.apiService.getInstance());
this.nodesApi = new NodesApi(this.apiService.getInstance());
this.contentApi = new ContentApi(this.apiService.getInstance());
viewUtilService.maxRetries = this.maxRetries; viewUtilService.maxRetries = this.maxRetries;
} }
@@ -563,11 +578,11 @@ export class ViewerComponent implements OnChanges, OnInit, OnDestroy {
this.close(); this.close();
} }
onNavigateBeforeClick(event: MouseEvent|KeyboardEvent) { onNavigateBeforeClick(event: MouseEvent | KeyboardEvent) {
this.navigateBefore.next(event); this.navigateBefore.next(event);
} }
onNavigateNextClick(event: MouseEvent|KeyboardEvent) { onNavigateNextClick(event: MouseEvent | KeyboardEvent) {
this.navigateNext.next(event); this.navigateNext.next(event);
} }
@@ -754,7 +769,7 @@ export class ViewerComponent implements OnChanges, OnInit, OnDestroy {
skipWhile(() => !this.overlayMode), skipWhile(() => !this.overlayMode),
filter((e: KeyboardEvent) => e.keyCode === 27), filter((e: KeyboardEvent) => e.keyCode === 27),
takeUntil(this.onDestroy$) takeUntil(this.onDestroy$)
).subscribe( (event: KeyboardEvent) => { ).subscribe((event: KeyboardEvent) => {
event.preventDefault(); event.preventDefault();
if (this.shouldCloseViewer) { if (this.shouldCloseViewer) {

View File

@@ -74,16 +74,27 @@ export class ViewUtilService {
viewerTypeChange: Subject<string> = new Subject<string>(); viewerTypeChange: Subject<string> = new Subject<string>();
urlFileContentChange: Subject<string> = new Subject<string>(); urlFileContentChange: Subject<string> = new Subject<string>();
renditionsApi: RenditionsApi; _renditionsApi: RenditionsApi;
contentApi: ContentApi; get renditionsApi(): RenditionsApi {
versionsApi: VersionsApi; this._renditionsApi = this._renditionsApi ?? new RenditionsApi(this.apiService.getInstance());
return this._renditionsApi;
}
_contentApi: ContentApi;
get contentApi(): ContentApi {
this._contentApi = this._contentApi ?? new ContentApi(this.apiService.getInstance());
return this._contentApi;
}
_versionsApi: VersionsApi;
get versionsApi(): VersionsApi {
this._versionsApi = this._versionsApi ?? new VersionsApi(this.apiService.getInstance());
return this._versionsApi;
}
constructor(private apiService: AlfrescoApiService, constructor(private apiService: AlfrescoApiService,
private logService: LogService, private logService: LogService,
private translateService: TranslationService) { private translateService: TranslationService) {
this.renditionsApi = new RenditionsApi(this.apiService.getInstance());
this.contentApi = new ContentApi(this.apiService.getInstance());
this.versionsApi = new VersionsApi(this.apiService.getInstance());
} }
/** /**

View File

@@ -33,13 +33,20 @@ import { ProcessDefinitionsApi, ReportApi } from '@alfresco/js-api';
@Injectable({ providedIn: 'root' }) @Injectable({ providedIn: 'root' })
export class AnalyticsService { export class AnalyticsService {
reportApi: ReportApi; _reportApi: ReportApi;
processDefinitionsApi: ProcessDefinitionsApi; get reportApi(): ReportApi {
this._reportApi = this._reportApi ?? new ReportApi(this.apiService.getInstance());
return this._reportApi;
}
_processDefinitionsApi: ProcessDefinitionsApi;
get processDefinitionsApi(): ProcessDefinitionsApi {
this._processDefinitionsApi = this._processDefinitionsApi ?? new ProcessDefinitionsApi(this.apiService.getInstance());
return this._processDefinitionsApi;
}
constructor(private apiService: AlfrescoApiService, constructor(private apiService: AlfrescoApiService,
private logService: LogService) { private logService: LogService) {
this.reportApi = new ReportApi(this.apiService.getInstance());
this.processDefinitionsApi = new ProcessDefinitionsApi(this.apiService.getInstance());
} }
/** /**

View File

@@ -24,11 +24,14 @@ import { ModelJsonBpmnApi } from '@alfresco/js-api';
@Injectable({ providedIn: 'root' }) @Injectable({ providedIn: 'root' })
export class DiagramsService { export class DiagramsService {
private modelJsonBpmnApi: ModelJsonBpmnApi; _modelJsonBpmnApi: ModelJsonBpmnApi;
get modelJsonBpmnApi(): ModelJsonBpmnApi {
this._modelJsonBpmnApi = this._modelJsonBpmnApi ?? new ModelJsonBpmnApi(this.apiService.getInstance());
return this._modelJsonBpmnApi;
}
constructor(private apiService: AlfrescoApiService, constructor(private apiService: AlfrescoApiService,
private logService: LogService) { private logService: LogService) {
this.modelJsonBpmnApi = new ModelJsonBpmnApi(this.apiService.getInstance());
} }
getProcessDefinitionModel(processDefinitionId: string): Observable<any> { getProcessDefinitionModel(processDefinitionId: string): Observable<any> {

View File

@@ -67,7 +67,11 @@ export class AttachFileCloudWidgetComponent extends UploadCloudWidgetComponent i
rootNodeId = AttachFileCloudWidgetComponent.ALIAS_USER_FOLDER; rootNodeId = AttachFileCloudWidgetComponent.ALIAS_USER_FOLDER;
selectedNode: Node; selectedNode: Node;
private nodesApi: NodesApi; _nodesApi: NodesApi;
get nodesApi(): NodesApi {
this._nodesApi = this._nodesApi ?? new NodesApi(this.apiService.getInstance());
return this._nodesApi;
}
constructor( constructor(
formService: FormService, formService: FormService,
@@ -81,7 +85,6 @@ export class AttachFileCloudWidgetComponent extends UploadCloudWidgetComponent i
private contentNodeSelectorPanelService: ContentNodeSelectorPanelService private contentNodeSelectorPanelService: ContentNodeSelectorPanelService
) { ) {
super(formService, thumbnails, processCloudContentService, notificationService, logger); super(formService, thumbnails, processCloudContentService, notificationService, logger);
this.nodesApi = new NodesApi(this.apiService.getInstance());
} }
ngOnInit() { ngOnInit() {

View File

@@ -31,14 +31,18 @@ import { Observable, Subject, throwError } from 'rxjs';
}) })
export class ContentCloudNodeSelectorService { export class ContentCloudNodeSelectorService {
nodesApi: NodesApi; _nodesApi: NodesApi;
get nodesApi(): NodesApi {
this._nodesApi = this._nodesApi ?? new NodesApi(this.apiService.getInstance());
return this._nodesApi;
}
sourceNodeNotFound = false; sourceNodeNotFound = false;
constructor( constructor(
private apiService: AlfrescoApiService, private apiService: AlfrescoApiService,
private notificationService: NotificationService, private notificationService: NotificationService,
private dialog: MatDialog) { private dialog: MatDialog) {
this.nodesApi = new NodesApi(this.apiService.getInstance());
} }
openUploadFileDialog(currentFolderId?: string, selectionMode?: string, isAllFileSources?: boolean, restrictRootToCurrentFolderId?: boolean): Observable<Node[]> { openUploadFileDialog(currentFolderId?: string, selectionMode?: string, isAllFileSources?: boolean, restrictRootToCurrentFolderId?: boolean): Observable<Node[]> {

View File

@@ -36,14 +36,17 @@ import { FormContent } from '../../services/form-fields.interfaces';
}) })
export class FormCloudService extends BaseCloudService { export class FormCloudService extends BaseCloudService {
uploadApi: UploadApi; private _uploadApi;
get uploadApi(): UploadApi {
this._uploadApi = this._uploadApi ?? new UploadApi(this.apiService.getInstance());
return this._uploadApi;
}
constructor( constructor(
apiService: AlfrescoApiService, apiService: AlfrescoApiService,
appConfigService: AppConfigService appConfigService: AppConfigService
) { ) {
super(apiService, appConfigService); super(apiService, appConfigService);
this.uploadApi = new UploadApi(apiService.getInstance());
} }
/** /**

View File

@@ -31,8 +31,17 @@ import { AuthenticationApi, Node, UploadApi } from '@alfresco/js-api';
}) })
export class ProcessCloudContentService { export class ProcessCloudContentService {
uploadApi: UploadApi; private _uploadApi;
authenticationApi: AuthenticationApi; get uploadApi(): UploadApi {
this._uploadApi = this._uploadApi ?? new UploadApi(this.apiService.getInstance());
return this._uploadApi;
}
private _authenticationApi;
get authenticationApi(): AuthenticationApi {
this._authenticationApi = this._authenticationApi ?? new AuthenticationApi(this.apiService.getInstance());
return this._authenticationApi;
}
constructor( constructor(
private apiService: AlfrescoApiService, private apiService: AlfrescoApiService,
@@ -40,8 +49,6 @@ export class ProcessCloudContentService {
public contentService: ContentService, public contentService: ContentService,
private downloadService: DownloadService private downloadService: DownloadService
) { ) {
this.uploadApi = new UploadApi(this.apiService.getInstance());
this.authenticationApi = new AuthenticationApi(this.apiService.getInstance());
} }
createTemporaryRawRelatedContent( createTemporaryRawRelatedContent(

View File

@@ -20,17 +20,23 @@ import { Injectable } from '@angular/core';
import { Observable, from, forkJoin, throwError } from 'rxjs'; import { Observable, from, forkJoin, throwError } from 'rxjs';
import { FilterProcessRepresentationModel } from '../models/filter-process.model'; import { FilterProcessRepresentationModel } from '../models/filter-process.model';
import { map, catchError } from 'rxjs/operators'; import { map, catchError } from 'rxjs/operators';
import { ResultListDataRepresentationUserProcessInstanceFilterRepresentation, UserFiltersApi } from '@alfresco/js-api'; import {
ResultListDataRepresentationUserProcessInstanceFilterRepresentation,
UserFiltersApi
} from '@alfresco/js-api';
@Injectable({ @Injectable({
providedIn: 'root' providedIn: 'root'
}) })
export class ProcessFilterService { export class ProcessFilterService {
private userFiltersApi: UserFiltersApi; private _userFiltersApi;
get userFiltersApi(): UserFiltersApi {
this._userFiltersApi = this._userFiltersApi ?? new UserFiltersApi(this.alfrescoApiService.getInstance());
return this._userFiltersApi;
}
constructor(private alfrescoApiService: AlfrescoApiService) { constructor(private alfrescoApiService: AlfrescoApiService) {
this.userFiltersApi = new UserFiltersApi(this.alfrescoApiService.getInstance());
} }
/** /**

View File

@@ -42,16 +42,31 @@ declare let moment: any;
}) })
export class ProcessService { export class ProcessService {
private processInstanceVariablesApi: ProcessInstanceVariablesApi; private _tasksApi;
private processInstancesApi: ProcessInstancesApi; get tasksApi(): TasksApi {
private processDefinitionsApi: ProcessDefinitionsApi; this._tasksApi = this._tasksApi ?? new TasksApi(this.alfrescoApiService.getInstance());
private tasksApi: TasksApi; return this._tasksApi;
}
private _processDefinitionsApi;
get processDefinitionsApi(): ProcessDefinitionsApi {
this._processDefinitionsApi = this._processDefinitionsApi ?? new ProcessDefinitionsApi(this.alfrescoApiService.getInstance());
return this._processDefinitionsApi;
}
private _processInstancesApi;
get processInstancesApi(): ProcessInstancesApi {
this._processInstancesApi = this._processInstancesApi ?? new ProcessInstancesApi(this.alfrescoApiService.getInstance());
return this._processInstancesApi;
}
private _processInstanceVariablesApi;
get processInstanceVariablesApi(): ProcessInstanceVariablesApi {
this._processInstanceVariablesApi = this._processInstanceVariablesApi ?? new ProcessInstanceVariablesApi(this.alfrescoApiService.getInstance());
return this._processInstanceVariablesApi;
}
constructor(private alfrescoApiService: AlfrescoApiService) { constructor(private alfrescoApiService: AlfrescoApiService) {
this.processInstanceVariablesApi = new ProcessInstanceVariablesApi(this.alfrescoApiService.getInstance());
this.processInstancesApi = new ProcessInstancesApi(this.alfrescoApiService.getInstance());
this.processDefinitionsApi = new ProcessDefinitionsApi(this.alfrescoApiService.getInstance());
this.tasksApi = new TasksApi(this.alfrescoApiService.getInstance());
} }
/** /**

View File

@@ -25,11 +25,14 @@ import { throwError } from 'rxjs';
}) })
export class ProcessUploadService extends UploadService { export class ProcessUploadService extends UploadService {
contentApi: ActivitiContentApi; private _contentApi;
get contentApi(): ActivitiContentApi {
this._contentApi = this._contentApi ?? new ActivitiContentApi(this.apiService.getInstance());
return this._contentApi;
}
constructor(protected apiService: AlfrescoApiService, appConfigService: AppConfigService, discoveryApiService: DiscoveryApiService) { constructor(protected apiService: AlfrescoApiService, appConfigService: AppConfigService, discoveryApiService: DiscoveryApiService) {
super(apiService, appConfigService, discoveryApiService); super(apiService, appConfigService, discoveryApiService);
this.contentApi = new ActivitiContentApi(apiService.getInstance());
} }
getUploadPromise(file: any): any { getUploadPromise(file: any): any {

View File

@@ -27,11 +27,14 @@ import { UserFiltersApi } from '@alfresco/js-api';
}) })
export class TaskFilterService { export class TaskFilterService {
private userFiltersApi: UserFiltersApi; private _userFiltersApi;
get userFiltersApi(): UserFiltersApi {
this._userFiltersApi = this._userFiltersApi ?? new UserFiltersApi(this.apiService.getInstance());
return this._userFiltersApi;
}
constructor(private apiService: AlfrescoApiService, constructor(private apiService: AlfrescoApiService,
private logService: LogService) { private logService: LogService) {
this.userFiltersApi = new UserFiltersApi(this.apiService.getInstance());
} }
/** /**

View File

@@ -25,11 +25,14 @@ import { ActivitiContentApi } from '@alfresco/js-api';
}) })
export class TaskUploadService extends UploadService { export class TaskUploadService extends UploadService {
private contentApi: ActivitiContentApi; private _contentApi;
get contentApi(): ActivitiContentApi {
this._contentApi = this._contentApi ?? new ActivitiContentApi(this.apiService.getInstance());
return this._contentApi;
}
constructor(protected apiService: AlfrescoApiService, appConfigService: AppConfigService, discoveryApiService: DiscoveryApiService) { constructor(protected apiService: AlfrescoApiService, appConfigService: AppConfigService, discoveryApiService: DiscoveryApiService) {
super(apiService, appConfigService, discoveryApiService); super(apiService, appConfigService, discoveryApiService);
this.contentApi = new ActivitiContentApi(apiService.getInstance());
} }
getUploadPromise(file: any): any { getUploadPromise(file: any): any {

View File

@@ -34,17 +34,32 @@ import {
}) })
export class TaskListService { export class TaskListService {
private modelsApi: ModelsApi; private _modelsApi;
private tasksApi: TasksApi; get modelsApi(): ModelsApi {
private taskActionsApi: TaskActionsApi; this._modelsApi = this._modelsApi ?? new ModelsApi(this.apiService.getInstance());
private checklistsApi: ChecklistsApi; return this._modelsApi;
}
private _tasksApi;
get tasksApi(): TasksApi {
this._tasksApi = this._tasksApi ?? new TasksApi(this.apiService.getInstance());
return this._tasksApi;
}
private _taskActionsApi;
get taskActionsApi(): TaskActionsApi {
this._taskActionsApi = this._taskActionsApi ?? new TaskActionsApi(this.apiService.getInstance());
return this._taskActionsApi;
}
private _checklistsApi;
get checklistsApi(): ChecklistsApi {
this._checklistsApi = this._checklistsApi ?? new ChecklistsApi(this.apiService.getInstance());
return this._checklistsApi;
}
constructor(private apiService: AlfrescoApiService, constructor(private apiService: AlfrescoApiService,
private logService: LogService) { private logService: LogService) {
this.modelsApi = new ModelsApi(this.apiService.getInstance());
this.taskActionsApi = new TaskActionsApi(this.apiService.getInstance());
this.tasksApi = new TasksApi(this.apiService.getInstance());
this.checklistsApi = new ChecklistsApi(this.apiService.getInstance());
} }
/** /**