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 {
private aspectsApi: AspectsApi;
_aspectsApi: AspectsApi;
get aspectsApi(): AspectsApi {
this._aspectsApi = this._aspectsApi ?? new AspectsApi(this.alfrescoApiService.getInstance());
return this._aspectsApi;
}
constructor(private alfrescoApiService: AlfrescoApiService,
private appConfigService: AppConfigService,
private dialog: MatDialog,
private logService: LogService) {
this.aspectsApi = new AspectsApi(this.alfrescoApiService.getInstance());
}
getAspects(): Observable<AspectEntry[]> {

View File

@@ -18,7 +18,15 @@
import { Injectable } from '@angular/core';
import { Observable, from, throwError } from 'rxjs';
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';
@Injectable({
@@ -26,10 +34,13 @@ import { catchError } from 'rxjs/operators';
})
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) {
this.auditApi = new AuditApi(this.apiService.getInstance());
}
getAuditApps(opts?: any): Observable<AuditAppPaging> {
@@ -57,7 +68,7 @@ export class AuditService {
updateAuditApp(auditApplicationId: string, auditAppBodyUpdate: boolean, opts?: any): Observable<AuditApp | {}> {
const defaultOptions = {};
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(
catchError((err: any) => this.handleError(err))
);

View File

@@ -26,10 +26,14 @@ import { ClassesApi } from '@alfresco/js-api';
providedIn: 'root'
})
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) {
this.classesApi = new ClassesApi(this.alfrescoApiService.getInstance());
}
load(groupNames: string[]): Observable<PropertyGroupContainer> {

View File

@@ -43,13 +43,17 @@ export class NodeSharedDirective implements OnChanges, OnDestroy {
baseShareUrl: string;
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(
private dialog: MatDialog,
private zone: NgZone,
private alfrescoApiService: AlfrescoApiService) {
this.nodesApi = new NodesApi(this.alfrescoApiService.getInstance());
}
ngOnDestroy() {

View File

@@ -25,10 +25,13 @@ import { map } from 'rxjs/operators';
})
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) {
this.typesApi = new TypesApi(this.alfrescoApiService.getInstance());
}
getContentTypeByPrefix(prefixedType: string): Observable<TypeEntry> {

View File

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

View File

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

View File

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

View File

@@ -41,22 +41,49 @@ export class CustomResourcesService {
private CREATE_PERMISSION = 'create';
peopleApi: PeopleApi;
sitesApi: SitesApi;
trashcanApi: TrashcanApi;
searchApi: SearchApi;
sharedLinksApi: SharedlinksApi;
favoritesApi: FavoritesApi;
nodesApi: NodesApi;
_peopleApi: PeopleApi;
get peopleApi(): PeopleApi {
this._peopleApi = this._peopleApi ?? new PeopleApi(this.apiService.getInstance());
return this._peopleApi;
}
_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) {
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 = {
maxItems: pagination.maxItems,
skipCount: pagination.skipCount,
where: where ? `${where} AND ${defaultPredicate}` : defaultPredicate ,
where: where ? `${where} AND ${defaultPredicate}` : defaultPredicate,
include: includeFieldsRequest
};
@@ -165,18 +192,18 @@ export class CustomResourcesService {
list: {
entries: result.list.entries
.map(({ entry }: any) => {
const target = entry.target.file || entry.target.folder;
target.properties = {
...(target.properties || {
'cm:title': entry.title || target.title,
'cm:description': entry.description || target.description
}),
...(entry.properties || {})
};
const target = entry.target.file || entry.target.folder;
target.properties = {
...(target.properties || {
'cm:title': entry.title || target.title,
'cm:description': entry.description || target.description
}),
...(entry.properties || {})
};
return {
entry: target
};
return {
entry: target
};
}),
pagination: result.list.pagination
}
@@ -209,7 +236,7 @@ export class CustomResourcesService {
return new Observable((observer) => {
this.sitesApi.listSiteMembershipsForPerson('-me-', options)
.then((result: SiteRolePaging) => {
const page: SiteMemberPaging = new SiteMemberPaging( {
const page: SiteMemberPaging = new SiteMemberPaging({
list: {
entries: result.list.entries
.map(({ entry: { site } }: any) => {

View File

@@ -34,13 +34,16 @@ export class DocumentListService implements DocumentListLoader {
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,
private apiService: AlfrescoApiService,
private logService: LogService,
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 {
groupsApi: GroupsApi;
_groupsApi: GroupsApi;
get groupsApi(): GroupsApi {
this._groupsApi = this._groupsApi ?? new GroupsApi(this.alfrescoApiService.getInstance());
return this._groupsApi;
}
constructor(
private alfrescoApiService: AlfrescoApiService
) {
this.groupsApi = new GroupsApi(this.alfrescoApiService.getInstance());
}
async listAllGroupMembershipsForPerson(personId: string, opts?: any, accumulator = []): Promise<GroupEntry[]> {

View File

@@ -42,13 +42,16 @@ import { RoleModel } from '../models/role.model';
})
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,
private searchApiService: SearchService,
private nodeService: NodesApiService,
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'
})
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 */
configUpdated = new Subject<SearchConfiguration>();
@@ -88,7 +93,6 @@ export abstract class BaseQueryBuilderService {
ranges: { [id: string]: SearchRange } = {};
constructor(protected appConfig: AppConfigService, protected alfrescoApiService: AlfrescoApiService) {
this.searchApi = new SearchApi(this.alfrescoApiService.getInstance());
this.resetToDefaults();
}

View File

@@ -26,10 +26,13 @@ import { catchError } from 'rxjs/operators';
})
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) {
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
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. */
@Output()
@@ -35,7 +39,6 @@ export class TagService {
constructor(private apiService: AlfrescoApiService,
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 {
private versionsApi: VersionsApi;
private nodesApi: NodesApi;
private contentApi: ContentApi;
_contentApi: ContentApi;
get 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[] = [];
isLoading = true;
@@ -73,9 +88,6 @@ export class VersionListComponent implements OnChanges {
constructor(private alfrescoApi: AlfrescoApiService,
private contentService: ContentService,
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() {

View File

@@ -45,6 +45,12 @@ import { WebscriptApi } from '@alfresco/js-api';
})
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). */
@Input()
scriptPath: string;
@@ -81,11 +87,8 @@ export class WebscriptComponent implements OnChanges {
data: any = undefined;
showError: boolean = false;
webscriptApi: WebscriptApi;
constructor(private apiService: AlfrescoApiService,
private logService: LogService) {
this.webscriptApi = new WebscriptApi(this.apiService.getInstance());
}
ngOnChanges() {

View File

@@ -38,7 +38,12 @@ export class LibraryFavoriteDirective implements OnChanges {
@Output() error = new EventEmitter<any>();
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')
onClick() {
@@ -58,7 +63,6 @@ export class LibraryFavoriteDirective implements OnChanges {
}
constructor(private alfrescoApiService: AlfrescoApiService) {
this.favoritesApi = new FavoritesApi(this.alfrescoApiService.getInstance());
}
ngOnChanges(changes) {

View File

@@ -48,7 +48,11 @@ export class LibraryMembershipDirective implements OnChanges {
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. */
@Input('adf-library-membership')
@@ -75,7 +79,6 @@ export class LibraryMembershipDirective implements OnChanges {
private sitesService: SitesService,
private versionCompatibilityService: VersionCompatibilityService
) {
this.sitesApi = new SitesApi(this.alfrescoApiService.getInstance());
}
ngOnChanges(changes: SimpleChanges) {

View File

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

View File

@@ -31,7 +31,11 @@ import { DownloadService } from '../services/download.service';
})
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. */
@Input('adfNodeDownload')
@@ -50,7 +54,6 @@ export class NodeDownloadDirective {
private apiService: AlfrescoApiService,
private downloadService: DownloadService,
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 {
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. */
@Input('adf-node-favorite')
@@ -48,7 +52,6 @@ export class NodeFavoriteDirective implements OnChanges {
}
constructor(private alfrescoApiService: AlfrescoApiService) {
this.favoritesApi = new FavoritesApi(this.alfrescoApiService.getInstance());
}
ngOnChanges(changes) {

View File

@@ -35,7 +35,12 @@ export class RestoreMessageModel {
})
export class NodeRestoreDirective {
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. */
@Input('adf-restore')
@@ -53,7 +58,6 @@ export class NodeRestoreDirective {
constructor(private alfrescoApiService: AlfrescoApiService,
private translation: TranslationService) {
this.restoreProcessStatus = this.processStatus();
this.trashcanApi = new TrashcanApi(this.alfrescoApiService.getInstance());
}
private recover(selection: any) {

View File

@@ -38,15 +38,21 @@ export class ActivitiContentService {
static UNKNOWN_ERROR_MESSAGE: string = 'Unknown error';
static GENERIC_ERROR_MESSAGE: string = 'Server error';
integrationAlfrescoOnPremiseApi: IntegrationAlfrescoOnPremiseApi;
contentApi: ActivitiContentApi;
_integrationAlfrescoOnPremiseApi: IntegrationAlfrescoOnPremiseApi;
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,
private logService: LogService,
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 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,
private logService: LogService) {
this.customModelApi = new CustomModelApi(this.apiService.getInstance());
}
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 GENERIC_ERROR_MESSAGE: string = 'Server error';
taskApi: TasksApi;
taskFormsApi: TaskFormsApi;
modelsApi: ModelsApi;
editorApi: FormModelsApi;
processDefinitionsApi: ProcessDefinitionsApi;
processInstancesApi: ProcessInstancesApi;
processInstanceVariablesApi: ProcessInstanceVariablesApi;
groupsApi: ActivitiGroupsApi;
usersApi: UsersApi;
_taskFormsApi: TaskFormsApi;
get taskFormsApi(): TaskFormsApi {
this._taskFormsApi = this._taskFormsApi ?? new TaskFormsApi(this.apiService.getInstance());
return this._taskFormsApi;
}
_taskApi: TasksApi;
get taskApi(): TasksApi {
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>();
formDataRefreshed = new Subject<FormEvent>();
@@ -83,16 +127,6 @@ export class FormService {
constructor(private ecmModelService: EcmModelService,
private apiService: AlfrescoApiService,
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 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,
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 {
private taskFormsApi: TaskFormsApi;
_taskFormsApi: TaskFormsApi;
get taskFormsApi(): TaskFormsApi {
this._taskFormsApi = this._taskFormsApi ?? new TaskFormsApi(this.apiService.getInstance());
return this._taskFormsApi;
}
private processVarList: TaskProcessVariableModel[];
private form: FormModel;
constructor(private apiService: AlfrescoApiService,
private logService: LogService) {
this.taskFormsApi = new TaskFormsApi(this.apiService.getInstance());
}
public refreshVisibility(form: FormModel, processVarList?: TaskProcessVariableModel[]) {

View File

@@ -27,11 +27,14 @@ import { map, catchError } from 'rxjs/operators';
})
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,
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);
private profileApi: UserProfileApi;
_profileApi: UserProfileApi;
get profileApi(): UserProfileApi {
this._profileApi = this._profileApi ?? new UserProfileApi(this.alfrescoApi.getInstance());
return this._profileApi;
}
constructor(
private appConfig: AppConfigService,
@@ -58,7 +62,6 @@ export class AuthenticationService {
private logService: LogService) {
this.alfrescoApi.alfrescoApiInitialized.subscribe(() => {
this.alfrescoApi.getInstance().reply('logged-in', () => {
this.profileApi = new UserProfileApi(alfrescoApi.getInstance());
this.onLogin.next();
});
});

View File

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

View File

@@ -29,11 +29,14 @@ import { ActivitiCommentsApi } from '@alfresco/js-api';
})
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,
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>();
folderEdit: Subject<MinimalNode> = new Subject<MinimalNode>();
private contentApi: ContentApi;
private nodesApi: NodesApi;
_contentApi: ContentApi;
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,
public apiService: AlfrescoApiService,
@@ -47,8 +56,6 @@ export class ContentService {
private sanitizer: DomSanitizer,
private downloadService: DownloadService,
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 {
nodesApi: NodesApi;
trashcanApi: TrashcanApi;
_nodesApi: NodesApi;
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(
private apiService: AlfrescoApiService,
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 {
downloadsApi: DownloadsApi;
_downloadsApi: DownloadsApi;
get downloadsApi(): DownloadsApi {
this._downloadsApi = this._downloadsApi ?? new DownloadsApi(this.apiService.getInstance());
return this._downloadsApi;
}
constructor(private apiService: AlfrescoApiService,
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 {
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 contentService: ContentService) {
}
get peopleApi(): PeopleApi {
return this._peopleApi || (this._peopleApi = new PeopleApi(this.apiService.getInstance()));
}
/**
* Gets information about a user identified by their username.
* @param userName Target username

View File

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

View File

@@ -27,7 +27,11 @@ import { catchError } from 'rxjs/operators';
})
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 {
entry.properties = {
@@ -42,7 +46,6 @@ export class FavoritesApiService {
private apiService: AlfrescoApiService,
private preferences: UserPreferencesService
) {
this.favoritesApi = new FavoritesApi(this.apiService.getInstance());
}
remapFavoritesData(data: FavoritePaging = {}): NodePaging {

View File

@@ -28,13 +28,20 @@ import { NodeMetadata } from '../models/node-metadata.model';
})
export class NodesApiService {
private nodesApi: NodesApi;
private trashcanApi: TrashcanApi;
_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,
private preferences: UserPreferencesService) {
this.nodesApi = new NodesApi(this.apiService.getInstance());
this.trashcanApi = new TrashcanApi(this.apiService.getInstance());
}
private getEntryFromEntity(entity: NodeEntry) {

View File

@@ -50,10 +50,13 @@ export class PeopleContentService {
private hasContentAdminRole: 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) {
this.peopleApi = new PeopleApi(this.apiService.getInstance());
}
/**
@@ -124,7 +127,7 @@ export class PeopleContentService {
}
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) {

View File

@@ -21,20 +21,31 @@ import { UserProcessModel } from '../models/user-process.model';
import { AlfrescoApiService } from './alfresco-api.service';
import { LogService } from './log.service';
import { catchError, map } from 'rxjs/operators';
import { TaskActionsApi, UsersApi, ResultListDataRepresentationLightUserRepresentation } from '@alfresco/js-api';
import {
TaskActionsApi,
UsersApi,
ResultListDataRepresentationLightUserRepresentation
} from '@alfresco/js-api';
@Injectable({
providedIn: 'root'
})
export class PeopleProcessService {
private taskActionsApi: TaskActionsApi;
private userApi: UsersApi;
_taskActionsApi: TaskActionsApi;
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,
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 {
private renditionsApi: RenditionsApi;
private contentApi: ContentApi;
_renditionsApi: RenditionsApi;
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) {
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 {
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,
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 {
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,
private preferences: UserPreferencesService) {
this.sharedLinksApi = new SharedlinksApi(this.apiService.getInstance());
}
/**

View File

@@ -40,10 +40,13 @@ import { LogService } from './log.service';
})
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) {
this.sitesApi = new SitesApi(this.apiService.getInstance());
}
/**

View File

@@ -164,10 +164,13 @@ export class ThumbnailService {
'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) {
this.contentApi = new ContentApi(apiService.getInstance());
Object.keys(this.mimeTypeIcons).forEach((key) => {
const url = sanitizer.bypassSecurityTrustResourceUrl(this.mimeTypeIcons[key]);

View File

@@ -63,9 +63,23 @@ export class UploadService {
fileUploadDeleted: Subject<FileUploadDeleteEvent> = new Subject<FileUploadDeleteEvent>();
fileDeleted: Subject<string> = new Subject<string>();
private uploadApi: UploadApi;
private nodesApi: NodesApi;
private versionsApi: VersionsApi;
_uploadApi: UploadApi;
get uploadApi(): UploadApi {
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(
protected apiService: AlfrescoApiService,
@@ -76,10 +90,6 @@ export class UploadService {
.subscribe(({ status }) => {
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. */
@Output()
navigateBefore = new EventEmitter<MouseEvent|KeyboardEvent>();
navigateBefore = new EventEmitter<MouseEvent | KeyboardEvent>();
/** Emitted when user clicks 'Navigate Next' (">") button. */
@Output()
navigateNext = new EventEmitter<MouseEvent|KeyboardEvent>();
navigateNext = new EventEmitter<MouseEvent | KeyboardEvent>();
/** Emitted when the shared link used is not valid. */
@Output()
@@ -257,10 +257,29 @@ export class ViewerComponent implements OnChanges, OnInit, OnDestroy {
private shouldCloseViewer = true;
private keyDown$ = fromEvent<KeyboardEvent>(document, 'keydown');
private sharedLinksApi: SharedlinksApi;
private versionsApi: VersionsApi;
private nodesApi: NodesApi;
private contentApi: ContentApi;
_sharedLinksApi: SharedlinksApi;
get sharedLinksApi(): SharedlinksApi {
this._sharedLinksApi = this._sharedLinksApi ?? new SharedlinksApi(this.apiService.getInstance());
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,
private viewUtilService: ViewUtilService,
@@ -270,10 +289,6 @@ export class ViewerComponent implements OnChanges, OnInit, OnDestroy {
private uploadService: UploadService,
private el: ElementRef,
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;
}
@@ -563,11 +578,11 @@ export class ViewerComponent implements OnChanges, OnInit, OnDestroy {
this.close();
}
onNavigateBeforeClick(event: MouseEvent|KeyboardEvent) {
onNavigateBeforeClick(event: MouseEvent | KeyboardEvent) {
this.navigateBefore.next(event);
}
onNavigateNextClick(event: MouseEvent|KeyboardEvent) {
onNavigateNextClick(event: MouseEvent | KeyboardEvent) {
this.navigateNext.next(event);
}
@@ -754,7 +769,7 @@ export class ViewerComponent implements OnChanges, OnInit, OnDestroy {
skipWhile(() => !this.overlayMode),
filter((e: KeyboardEvent) => e.keyCode === 27),
takeUntil(this.onDestroy$)
).subscribe( (event: KeyboardEvent) => {
).subscribe((event: KeyboardEvent) => {
event.preventDefault();
if (this.shouldCloseViewer) {

View File

@@ -74,16 +74,27 @@ export class ViewUtilService {
viewerTypeChange: Subject<string> = new Subject<string>();
urlFileContentChange: Subject<string> = new Subject<string>();
renditionsApi: RenditionsApi;
contentApi: ContentApi;
versionsApi: VersionsApi;
_renditionsApi: RenditionsApi;
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;
}
_versionsApi: VersionsApi;
get versionsApi(): VersionsApi {
this._versionsApi = this._versionsApi ?? new VersionsApi(this.apiService.getInstance());
return this._versionsApi;
}
constructor(private apiService: AlfrescoApiService,
private logService: LogService,
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' })
export class AnalyticsService {
reportApi: ReportApi;
processDefinitionsApi: ProcessDefinitionsApi;
_reportApi: ReportApi;
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,
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' })
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,
private logService: LogService) {
this.modelJsonBpmnApi = new ModelJsonBpmnApi(this.apiService.getInstance());
}
getProcessDefinitionModel(processDefinitionId: string): Observable<any> {

View File

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

View File

@@ -31,14 +31,18 @@ import { Observable, Subject, throwError } from 'rxjs';
})
export class ContentCloudNodeSelectorService {
nodesApi: NodesApi;
_nodesApi: NodesApi;
get nodesApi(): NodesApi {
this._nodesApi = this._nodesApi ?? new NodesApi(this.apiService.getInstance());
return this._nodesApi;
}
sourceNodeNotFound = false;
constructor(
private apiService: AlfrescoApiService,
private notificationService: NotificationService,
private dialog: MatDialog) {
this.nodesApi = new NodesApi(this.apiService.getInstance());
}
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 {
uploadApi: UploadApi;
private _uploadApi;
get uploadApi(): UploadApi {
this._uploadApi = this._uploadApi ?? new UploadApi(this.apiService.getInstance());
return this._uploadApi;
}
constructor(
apiService: AlfrescoApiService,
appConfigService: 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 {
uploadApi: UploadApi;
authenticationApi: AuthenticationApi;
private _uploadApi;
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(
private apiService: AlfrescoApiService,
@@ -40,8 +49,6 @@ export class ProcessCloudContentService {
public contentService: ContentService,
private downloadService: DownloadService
) {
this.uploadApi = new UploadApi(this.apiService.getInstance());
this.authenticationApi = new AuthenticationApi(this.apiService.getInstance());
}
createTemporaryRawRelatedContent(

View File

@@ -20,17 +20,23 @@ import { Injectable } from '@angular/core';
import { Observable, from, forkJoin, throwError } from 'rxjs';
import { FilterProcessRepresentationModel } from '../models/filter-process.model';
import { map, catchError } from 'rxjs/operators';
import { ResultListDataRepresentationUserProcessInstanceFilterRepresentation, UserFiltersApi } from '@alfresco/js-api';
import {
ResultListDataRepresentationUserProcessInstanceFilterRepresentation,
UserFiltersApi
} from '@alfresco/js-api';
@Injectable({
providedIn: 'root'
})
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) {
this.userFiltersApi = new UserFiltersApi(this.alfrescoApiService.getInstance());
}
/**

View File

@@ -42,16 +42,31 @@ declare let moment: any;
})
export class ProcessService {
private processInstanceVariablesApi: ProcessInstanceVariablesApi;
private processInstancesApi: ProcessInstancesApi;
private processDefinitionsApi: ProcessDefinitionsApi;
private tasksApi: TasksApi;
private _tasksApi;
get tasksApi(): TasksApi {
this._tasksApi = this._tasksApi ?? new TasksApi(this.alfrescoApiService.getInstance());
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) {
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 {
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) {
super(apiService, appConfigService, discoveryApiService);
this.contentApi = new ActivitiContentApi(apiService.getInstance());
}
getUploadPromise(file: any): any {

View File

@@ -27,11 +27,14 @@ import { UserFiltersApi } from '@alfresco/js-api';
})
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,
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 {
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) {
super(apiService, appConfigService, discoveryApiService);
this.contentApi = new ActivitiContentApi(apiService.getInstance());
}
getUploadPromise(file: any): any {

View File

@@ -34,17 +34,32 @@ import {
})
export class TaskListService {
private modelsApi: ModelsApi;
private tasksApi: TasksApi;
private taskActionsApi: TaskActionsApi;
private checklistsApi: ChecklistsApi;
private _modelsApi;
get modelsApi(): ModelsApi {
this._modelsApi = this._modelsApi ?? new ModelsApi(this.apiService.getInstance());
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,
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());
}
/**