Skip to content

Commit 07ffba7

Browse files
authored
Merge pull request #303 from netgrif/NAE-2217
[NAE-2217] Single Task View
2 parents 68b9d8d + 6ee6330 commit 07ffba7

File tree

35 files changed

+180
-82
lines changed

35 files changed

+180
-82
lines changed

projects/netgrif-components-core/src/lib/panel/public-api.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22
export * from './abstract-panel.component';
33
export * from './case-panel/abstract-case-panel.component';
44
export * from './task-panel/abstract-task-panel.component';
5-
export * from './task-panel-list/abstract-task-list.component';
6-
export * from './task-panel-list/task-panel-list-pagination/abstract-task-list-pagination.component';
75
export * from './workflow-panel/abstract-workflow-panel.component';
86
export * from './abstract/tabbed-virtual-scroll.component';
97
export * from './immediate/abstract-immediate-filter-text.component';
@@ -12,7 +10,7 @@ export * from './panel-item/abstract-panel-item.component';
1210
export * from './task-panel-single/abstract-single-task.component';
1311

1412
/* DATA */
15-
export * from './task-panel-list/task-panel-data/task-panel-data';
13+
export * from './task-panel-data/task-panel-data';
1614
export * from './task-panel/models/disable-functions';
1715
export * from './abstract/featured-value';
1816
export * from './immediate/model/filter-text-injection-token';

projects/netgrif-components-core/src/lib/panel/task-panel-list/task-panel-data/task-panel-data.ts renamed to projects/netgrif-components-core/src/lib/panel/task-panel-data/task-panel-data.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import {Task} from '../../../resources/interface/task';
1+
import {Task} from '../../resources/interface/task';
22
import {Subject} from 'rxjs';
3-
import {ChangedFields} from '../../../data-fields/models/changed-fields';
3+
import {ChangedFields} from '../../data-fields/models/changed-fields';
44

55

66
export interface TaskPanelData {

projects/netgrif-components-core/src/lib/panel/task-panel-single/abstract-single-task.component.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ import {AllowedNetsService} from '../../allowed-nets/services/allowed-nets.servi
2929
import {AllowedNetsServiceFactory} from '../../allowed-nets/services/factory/allowed-nets-service-factory';
3030
import {ActivatedRoute} from '@angular/router';
3131
import { AbstractSingleTaskComponent } from './abstract-single-task.component';
32-
import { TaskPanelData } from '../task-panel-list/task-panel-data/task-panel-data';
32+
import { TaskPanelData } from '../task-panel-data/task-panel-data';
3333

3434

3535
describe('AbstractSingleTaskComponent', () => {

projects/netgrif-components-core/src/lib/panel/task-panel-single/abstract-single-task.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { Component, EventEmitter, Inject, Input, OnDestroy, Optional, Output, TemplateRef } from '@angular/core';
22
import { Observable, Subject } from 'rxjs';
3-
import { TaskPanelData } from '../task-panel-list/task-panel-data/task-panel-data';
3+
import { TaskPanelData } from '../task-panel-data/task-panel-data';
44
import { MatExpansionPanel } from '@angular/material/expansion';
55
import { HeaderColumn } from '../../header/models/header-column';
66
import { TaskEventNotification } from '../../task-content/model/task-event-notification';

projects/netgrif-components-core/src/lib/panel/task-panel/abstract-task-panel.component.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ import {SearchService} from '../../search/search-service/search.service';
3636
import {TestTaskBaseFilterProvider, TestTaskViewAllowedNetsFactory} from '../../utility/tests/test-factory-methods';
3737
import {ErrorSnackBarComponent} from '../../snack-bar/components/error-snack-bar/error-snack-bar.component';
3838
import {SuccessSnackBarComponent} from '../../snack-bar/components/success-snack-bar/success-snack-bar.component';
39-
import {TaskPanelData} from '../task-panel-list/task-panel-data/task-panel-data';
39+
import {TaskPanelData} from '../task-panel-data/task-panel-data';
4040
import {AssignPolicy, DataFocusPolicy, FinishPolicy} from '../../task-content/model/policy';
4141
import {ChangedFields} from '../../data-fields/models/changed-fields';
4242
import {HeaderColumn, HeaderColumnType} from '../../header/models/header-column';

projects/netgrif-components-core/src/lib/panel/task-panel/abstract-task-panel.component.ts

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import {MatExpansionPanel} from '@angular/material/expansion';
1515
import {ComponentPortal} from '@angular/cdk/portal';
1616
import {TaskContentService} from '../../task-content/services/task-content.service';
1717
import {LoggerService} from '../../logger/services/logger.service';
18-
import {TaskPanelData} from '../task-panel-list/task-panel-data/task-panel-data';
18+
import {TaskPanelData} from '../task-panel-data/task-panel-data';
1919
import {Observable, Subscription} from 'rxjs';
2020
import {TaskViewService} from '../../view/task-view/service/task-view.service';
2121
import {filter, map, take} from 'rxjs/operators';
@@ -53,6 +53,7 @@ import { FinishPolicyService } from '../../task/services/finish-policy.service';
5353
import {NAE_TAB_DATA} from '../../tabs/tab-data-injection-token/tab-data-injection-token';
5454
import {InjectedTabData} from '../../tabs/interfaces';
5555
import {AfterAction} from '../../utility/call-chain/after-action';
56+
import {UnlimitedTaskContentService} from "../../task-content/services/unlimited-task-content.service";
5657

5758
@Component({
5859
selector: 'ncc-abstract-legal-notice',
@@ -257,6 +258,17 @@ export abstract class AbstractTaskPanelComponent extends AbstractPanelWithImmedi
257258
@Input()
258259
public set taskPanelData(data: TaskPanelData) {
259260
this._taskPanelData = data;
261+
if (this._taskContentService instanceof UnlimitedTaskContentService && this.panelRef) {
262+
this.collapse();
263+
this._taskContentService.task = this._taskPanelData.task;
264+
if (this._sub) {
265+
this._sub.unsubscribe();
266+
}
267+
this._sub = this._taskPanelData.changedFields.subscribe(chFields => {
268+
this._taskContentService.updateFromChangedFields(chFields);
269+
});
270+
this.expand();
271+
}
260272
this.resolveFeaturedFieldsValues();
261273
}
262274

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
import {InjectionToken} from '@angular/core';
2+
import {TaskContentServiceType} from './task-content-service-type';
3+
4+
export const NAE_TASK_CONTENT_SERVICE_TYPE = new InjectionToken<TaskContentServiceType>('NaeTaskContentServiceType');
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
export enum TaskContentServiceType {
2+
/**
3+
* Type for creating SingleTaskContentService
4+
*/
5+
SINGLE = 'single',
6+
/**
7+
* Type for creating UnlimitedTaskContentService
8+
*/
9+
UNLIMITED = 'unlimited'
10+
}

projects/netgrif-components-core/src/lib/task-content/public-api.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ export * from './services/field-converter.service';
44
export * from './services/task-content.service';
55
export * from './services/single-task-content.service';
66
export * from './services/unlimited-task-content.service';
7+
export * from './services/task-content-service-factory';
78

89
/* MODELS */
910
export * from './model/policy';
@@ -17,6 +18,8 @@ export * from './model/async-rendering-configuration-injection-token';
1718
export * from './model/subgrid';
1819
export * from './model/split-data-group';
1920
export * from './model/task-fields';
21+
export * from './model/task-content-service-type';
22+
export * from './model/task-content-injection-token';
2023

2124
/* MODULES */
2225
export * from './task-content/abstract-task-content.component';
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import {Injectable, Injector} from "@angular/core";
2+
import {LoggerService} from "../../logger/services/logger.service";
3+
import {FieldConverterService} from "./field-converter.service";
4+
import {SnackBarService} from "../../snack-bar/services/snack-bar.service";
5+
import {TranslateService} from "@ngx-translate/core";
6+
import {SingleTaskContentService} from "./single-task-content.service";
7+
import {UnlimitedTaskContentService} from "./unlimited-task-content.service";
8+
9+
@Injectable({
10+
providedIn: 'root'
11+
})
12+
export class TaskContentServiceFactory {
13+
14+
constructor(protected _fieldConverterService: FieldConverterService,
15+
protected _snackBarService: SnackBarService,
16+
protected _translate: TranslateService,
17+
protected _log: LoggerService,
18+
protected _injector: Injector) {
19+
}
20+
21+
public createSingleTaskContentService(): SingleTaskContentService {
22+
return new SingleTaskContentService(this._fieldConverterService, this._snackBarService, this._translate, this._log, this._injector);
23+
}
24+
25+
public createUnlimitedTaskContentService(): UnlimitedTaskContentService {
26+
return new UnlimitedTaskContentService(this._fieldConverterService, this._snackBarService, this._translate, this._log, this._injector);
27+
}
28+
}

0 commit comments

Comments
 (0)