migrate cloud components

This commit is contained in:
Denys Vuika
2024-09-20 12:04:57 -04:00
parent ace50ca8cd
commit e2e6417139
9 changed files with 100 additions and 50 deletions

View File

@@ -18,7 +18,7 @@
import { NgModule, ModuleWithProviders } from '@angular/core';
import { CoreModule, FormRenderingService, provideTranslations } from '@alfresco/adf-core';
import { APP_LIST_CLOUD_DIRECTIVES } from './app/app-list-cloud.module';
import { TaskCloudModule } from './task/task-cloud.module';
import { TASK_CLOUD_DIRECTIVES } from './task/task-cloud.module';
import { ProcessCloudModule } from './process/process-cloud.module';
import { FormCloudModule } from './form/form-cloud.module';
import {
@@ -48,7 +48,7 @@ import { TaskListCloudService } from './task/task-list/services/task-list-cloud.
CoreModule,
...APP_LIST_CLOUD_DIRECTIVES,
ProcessCloudModule,
TaskCloudModule,
...TASK_CLOUD_DIRECTIVES,
GroupCloudComponent,
PeopleCloudComponent,
FormCloudModule,
@@ -61,7 +61,7 @@ import { TaskListCloudService } from './task/task-list/services/task-list-cloud.
exports: [
...APP_LIST_CLOUD_DIRECTIVES,
ProcessCloudModule,
TaskCloudModule,
...TASK_CLOUD_DIRECTIVES,
GroupCloudComponent,
FormCloudModule,
TaskFormCloudComponent,

View File

@@ -18,7 +18,7 @@
import { NgModule } from '@angular/core';
import { ProcessFiltersCloudModule } from './process-filters/process-filters-cloud.module';
import { StartProcessCloudModule } from './start-process/start-process-cloud.module';
import { CoreModule, LocalizedDatePipe } from '@alfresco/adf-core';
import { CoreModule } from '@alfresco/adf-core';
import { ProcessHeaderCloudModule } from './process-header/process-header-cloud.module';
import { ProcessNameCloudPipe } from '../pipes/process-name-cloud.pipe';
import { ProcessListCloudComponent } from './process-list/components/process-list-cloud.component';
@@ -34,6 +34,6 @@ import { CancelProcessDirective } from './directives/cancel-process.directive';
CancelProcessDirective
],
exports: [ProcessFiltersCloudModule, ProcessListCloudComponent, StartProcessCloudModule, ProcessHeaderCloudModule, CancelProcessDirective],
providers: [ProcessNameCloudPipe, LocalizedDatePipe]
providers: [ProcessNameCloudPipe]
})
export class ProcessCloudModule {}

View File

@@ -16,7 +16,6 @@
*/
import { NgModule } from '@angular/core';
import { TaskListCloudModule } from './task-list/task-list-cloud.module';
import { TaskFiltersCloudModule } from './task-filters/task-filters-cloud.module';
import { TaskFormCloudComponent } from './task-form/components/task-form-cloud.component';
import { StartTaskCloudComponent } from './start-task/components/start-task-cloud.component';
@@ -24,27 +23,24 @@ import { TaskHeaderCloudComponent } from './task-header/components/task-header-c
import { CompleteTaskDirective } from './directives/complete-task.directive';
import { ClaimTaskCloudDirective } from './directives/claim-task-cloud.directive';
import { UnClaimTaskCloudDirective } from './directives/unclaim-task-cloud.directive';
import { TaskListCloudComponent } from './task-list/components/task-list-cloud.component';
import { ServiceTaskListCloudComponent } from './task-list/components/service-task-list-cloud.component';
export const TASK_CLOUD_DIRECTIVES = [
TaskListCloudComponent,
ServiceTaskListCloudComponent,
TaskFiltersCloudModule,
StartTaskCloudComponent,
TaskHeaderCloudComponent,
TaskFormCloudComponent,
CompleteTaskDirective,
ClaimTaskCloudDirective,
UnClaimTaskCloudDirective
] as const;
/** @deprecated import individual standalone components instead */
@NgModule({
imports: [
TaskListCloudModule,
TaskFiltersCloudModule,
StartTaskCloudComponent,
TaskHeaderCloudComponent,
TaskFormCloudComponent,
CompleteTaskDirective,
ClaimTaskCloudDirective,
UnClaimTaskCloudDirective
],
exports: [
TaskListCloudModule,
TaskFiltersCloudModule,
StartTaskCloudComponent,
TaskHeaderCloudComponent,
TaskFormCloudComponent,
CompleteTaskDirective,
ClaimTaskCloudDirective,
UnClaimTaskCloudDirective
]
imports: [...TASK_CLOUD_DIRECTIVES],
exports: [...TASK_CLOUD_DIRECTIVES]
})
export class TaskCloudModule {}

View File

@@ -79,7 +79,7 @@ describe('ServiceTaskListCloudComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule],
imports: [ProcessServiceCloudTestingModule, ServiceTaskListCloudComponent],
declarations: [EmptyTemplateComponent]
});
appConfig = TestBed.inject(AppConfigService);

View File

@@ -16,7 +16,16 @@
*/
import { Component, ViewEncapsulation, Input, Inject, OnDestroy } from '@angular/core';
import { AppConfigService, UserPreferencesService } from '@alfresco/adf-core';
import {
AppConfigService,
ColumnsSelectorComponent,
DataTableComponent,
EmptyContentComponent,
LoadingContentTemplateDirective,
MainMenuDataTableTemplateDirective,
NoContentTemplateDirective,
UserPreferencesService
} from '@alfresco/adf-core';
import { ServiceTaskQueryCloudRequestModel } from '../models/service-task-cloud.model';
import { BaseTaskListCloudComponent } from './base-task-list-cloud.component';
import { ServiceTaskListCloudService } from '../services/service-task-list-cloud.service';
@@ -24,11 +33,26 @@ import { TaskCloudService } from '../../services/task-cloud.service';
import { Subject, combineLatest, BehaviorSubject } from 'rxjs';
import { PreferenceCloudServiceInterface, TASK_LIST_PREFERENCES_SERVICE_TOKEN } from '../../../services/public-api';
import { map, takeUntil } from 'rxjs/operators';
import { CommonModule } from '@angular/common';
import { TranslateModule } from '@ngx-translate/core';
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
const PRESET_KEY = 'adf-cloud-service-task-list.presets';
@Component({
selector: 'adf-cloud-service-task-list',
standalone: true,
imports: [
CommonModule,
TranslateModule,
EmptyContentComponent,
NoContentTemplateDirective,
ColumnsSelectorComponent,
MainMenuDataTableTemplateDirective,
MatProgressSpinnerModule,
LoadingContentTemplateDirective,
DataTableComponent
],
templateUrl: './base-task-list-cloud.component.html',
styleUrls: ['./base-task-list-cloud.component.scss'],
encapsulation: ViewEncapsulation.None

View File

@@ -18,7 +18,17 @@
import { Component, SimpleChange, ViewChild } from '@angular/core';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { By } from '@angular/platform-browser';
import { AppConfigService, DataRowEvent, ObjectDataRow, User, DataColumn, ColumnsSelectorComponent } from '@alfresco/adf-core';
import {
AppConfigService,
DataRowEvent,
ObjectDataRow,
User,
DataColumn,
ColumnsSelectorComponent,
CustomEmptyContentTemplateDirective,
DataColumnComponent,
DataColumnListComponent
} from '@alfresco/adf-core';
import { TaskListCloudService } from '../services/task-list-cloud.service';
import { TaskListCloudComponent } from './task-list-cloud.component';
import { fakeGlobalTasks, fakeCustomSchema, fakeGlobalTask } from '../mock/fake-task-response.mock';
@@ -28,13 +38,14 @@ import { TaskListCloudSortingModel } from '../../../models/task-list-sorting.mod
import { shareReplay, skip } from 'rxjs/operators';
import { TaskListCloudServiceInterface } from '../../../services/task-list-cloud.service.interface';
import { TASK_LIST_CLOUD_TOKEN, TASK_LIST_PREFERENCES_SERVICE_TOKEN } from '../../../services/cloud-token.service';
import { TaskListCloudModule } from '../task-list-cloud.module';
import { PreferenceCloudServiceInterface } from '../../../services/preference-cloud.interface';
import { HarnessLoader } from '@angular/cdk/testing';
import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed';
import { MatProgressSpinnerHarness } from '@angular/material/progress-spinner/testing';
@Component({
standalone: true,
imports: [DataColumnComponent, DataColumnListComponent, TaskListCloudComponent],
template: ` <adf-cloud-task-list #taskListCloud>
<data-columns>
<data-column
@@ -66,7 +77,10 @@ class CustomTaskListComponent {
return `${person.firstName} ${person.lastName}`;
}
}
@Component({
standalone: true,
imports: [CustomEmptyContentTemplateDirective, TaskListCloudComponent],
template: `
<adf-cloud-task-list>
<adf-custom-empty-content-template>
@@ -76,7 +90,10 @@ class CustomTaskListComponent {
`
})
class EmptyTemplateComponent {}
@Component({
standalone: true,
imports: [DataColumnComponent, DataColumnListComponent, TaskListCloudComponent],
template: ` <adf-cloud-task-list>
<data-columns>
<data-column [copyContent]="true" key="id" title="ADF_CLOUD_TASK_LIST.PROPERTIES.ID"></data-column>
@@ -500,8 +517,7 @@ describe('TaskListCloudComponent: Injecting custom colums for tasklist - CustomT
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule],
declarations: [CustomTaskListComponent, CustomCopyContentTaskListComponent]
imports: [ProcessServiceCloudTestingModule, CustomCopyContentTaskListComponent, CustomTaskListComponent]
});
taskListCloudService = TestBed.inject(TASK_LIST_CLOUD_TOKEN);
spyOn(taskListCloudService, 'getTaskByRequest').and.returnValue(of(fakeGlobalTasks));
@@ -554,7 +570,7 @@ describe('TaskListCloudComponent: Creating an empty custom template - EmptyTempl
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule, TaskListCloudModule]
imports: [ProcessServiceCloudTestingModule, EmptyTemplateComponent]
});
taskListCloudService = TestBed.inject(TASK_LIST_CLOUD_TOKEN);
const emptyList = { list: { entries: [] } };

View File

@@ -16,14 +16,23 @@
*/
import { Component, ViewEncapsulation, Input, Inject, OnDestroy } from '@angular/core';
import { AppConfigService, UserPreferencesService } from '@alfresco/adf-core';
import {
AppConfigService,
ColumnsSelectorComponent,
DataTableComponent,
EmptyContentComponent,
LoadingContentTemplateDirective,
MainMenuDataTableTemplateDirective,
NoContentTemplateDirective,
UserPreferencesService
} from '@alfresco/adf-core';
import { TaskQueryCloudRequestModel } from '../../../models/filter-cloud-model';
import { BaseTaskListCloudComponent } from './base-task-list-cloud.component';
import { TaskCloudService } from '../../services/task-cloud.service';
import { TASK_LIST_CLOUD_TOKEN, TASK_LIST_PREFERENCES_SERVICE_TOKEN } from '../../../services/cloud-token.service';
import { PreferenceCloudServiceInterface } from '../../../services/preference-cloud.interface';
import { TaskListCloudServiceInterface } from '../../../services/task-list-cloud.service.interface';
import { Subject, of, BehaviorSubject, combineLatest } from 'rxjs';
import { Subject, of, BehaviorSubject, combineLatest, Observable } from 'rxjs';
import { map, switchMap, takeUntil, tap } from 'rxjs/operators';
import { VariableMapperService } from '../../../services/variable-mapper.sevice';
import { ProcessListDataColumnCustomData } from '../../../models/data-column-custom-data';
@@ -31,11 +40,26 @@ import { TaskCloudModel } from '../../../models/task-cloud.model';
import { PaginatedEntries } from '@alfresco/js-api';
import { TaskInstanceCloudListViewModel } from '../models/task-cloud-view.model';
import { TasksListDatatableAdapter } from '../datatable/task-list-datatable-adapter';
import { CommonModule } from '@angular/common';
import { TranslateModule } from '@ngx-translate/core';
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
const PRESET_KEY = 'adf-cloud-task-list.presets';
@Component({
selector: 'adf-cloud-task-list',
standalone: true,
imports: [
CommonModule,
TranslateModule,
EmptyContentComponent,
NoContentTemplateDirective,
ColumnsSelectorComponent,
MainMenuDataTableTemplateDirective,
MatProgressSpinnerModule,
LoadingContentTemplateDirective,
DataTableComponent
],
templateUrl: './base-task-list-cloud.component.html',
styleUrls: ['./base-task-list-cloud.component.scss'],
encapsulation: ViewEncapsulation.None
@@ -151,7 +175,7 @@ export class TaskListCloudComponent extends BaseTaskListCloudComponent<ProcessLi
dataAdapter: TasksListDatatableAdapter | undefined;
private isReloadingSubject$ = new BehaviorSubject<boolean>(false);
isLoading$ = combineLatest([this.isLoadingPreferences$, this.isReloadingSubject$]).pipe(
isLoading$: Observable<boolean> = combineLatest([this.isLoadingPreferences$, this.isReloadingSubject$]).pipe(
map(([isLoadingPreferences, isReloading]) => isLoadingPreferences || isReloading)
);

View File

@@ -16,15 +16,12 @@
*/
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { MaterialModule } from '../../material.module';
import { TaskListCloudComponent } from './components/task-list-cloud.component';
import { ServiceTaskListCloudComponent } from './components/service-task-list-cloud.component';
import { CoreModule } from '@alfresco/adf-core';
/** @deprecated use individual standalone components instead */
@NgModule({
imports: [CommonModule, MaterialModule, CoreModule],
declarations: [TaskListCloudComponent, ServiceTaskListCloudComponent],
imports: [TaskListCloudComponent, ServiceTaskListCloudComponent],
exports: [TaskListCloudComponent, ServiceTaskListCloudComponent]
})
export class TaskListCloudModule {}

View File

@@ -18,18 +18,11 @@
import { NgModule } from '@angular/core';
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
import { HttpClientModule } from '@angular/common/http';
import { TaskListCloudModule } from '../task-list-cloud.module';
import {
AppConfigService,
AppConfigServiceMock,
TranslationService,
TranslationMock,
CONTEXT_MENU_DIRECTIVES
} from '@alfresco/adf-core';
import { AppConfigService, AppConfigServiceMock, TranslationService, TranslationMock, CONTEXT_MENU_DIRECTIVES } from '@alfresco/adf-core';
import { AlfrescoApiService, AlfrescoApiServiceMock } from '@alfresco/adf-content-services';
@NgModule({
imports: [HttpClientModule, NoopAnimationsModule, TaskListCloudModule, ...CONTEXT_MENU_DIRECTIVES],
imports: [HttpClientModule, NoopAnimationsModule, ...CONTEXT_MENU_DIRECTIVES],
providers: [
{ provide: AlfrescoApiService, useClass: AlfrescoApiServiceMock },
{ provide: AppConfigService, useClass: AppConfigServiceMock },