Skip to content

Commit b6d69a9

Browse files
CSimoesJrjcorrea97
authored andcommitted
feat(job-scheduler): cria diretiva p-job-scheduler-summary-template
Cria diretiva para poder customizar as informações no sumário. fixes DTHFUI-9306
1 parent 4606655 commit b6d69a9

File tree

12 files changed

+186
-9
lines changed

12 files changed

+186
-9
lines changed

projects/templates/src/lib/components/po-page-job-scheduler/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,5 @@ export * from './po-page-job-scheduler.module';
55
export * from './interfaces/po-job-scheduler.interface';
66

77
export * from './po-page-job-scheduler-parameters';
8+
9+
export * from './po-page-job-scheduler-summary';
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export * from './po-job-scheduler-summary-template';
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export * from './po-job-scheduler-summary-template.directive';
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import { PoJobSchedulerSummaryTemplateDirective } from './po-job-scheduler-summary-template.directive';
2+
3+
describe('PoComboOptionTemplateDirective:', () => {
4+
const component = new PoJobSchedulerSummaryTemplateDirective(null);
5+
6+
it('should be created', () => {
7+
expect(component).toBeTruthy();
8+
});
9+
});
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import { Directive, TemplateRef } from '@angular/core';
2+
3+
/**
4+
* @usedBy PoPageJobScheduler
5+
*
6+
* @description
7+
*
8+
* Esta diretiva permite personalizar o conteúdo de resumo das informações de parâmetro na etapa de conclusão do componente de PoPageJobScheduler.
9+
*
10+
* Essa funcionalidade costuma ser útil em casos onde a propriedade parameters não tem valor e mesmo assim é necessário exibir
11+
* as informações de resumo na etapa de conclusão.
12+
*
13+
* ```
14+
* ...
15+
* <po-page-job-scheduler [p-service-api]="serviceApi">
16+
* <ng-template p-job-scheduler-summary-template>
17+
* ...
18+
* <po-dynamic-view
19+
* [p-fields]="fieldsSummary"
20+
* [p-value]="valueSummary"
21+
* >
22+
* </po-dynamic-view
23+
* </ng-template>
24+
* </po-page-job-scheduler>
25+
* ...
26+
* ```
27+
*
28+
*/
29+
@Directive({
30+
selector: '[p-job-scheduler-summary-template]'
31+
})
32+
export class PoJobSchedulerSummaryTemplateDirective {
33+
// Necessário manter templateRef para o funcionamento do row template.
34+
constructor(public templateRef: TemplateRef<any>) {}
35+
}

projects/templates/src/lib/components/po-page-job-scheduler/po-page-job-scheduler-summary/po-page-job-scheduler-summary.component.html

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,13 @@
3030
<po-info [p-label]="literals.firstExecution" [p-orientation]="infoOrientation" [p-value]="firstExecutionValue">
3131
</po-info>
3232
</div>
33-
34-
<po-widget *ngIf="parameters && parameters.length" class="po-pt-1 po-pb-1 po-md-12" [p-title]="literals.parameters">
33+
<po-widget
34+
*ngIf="parameters && parameters.length && !jobSchedulerSummaryTemplate"
35+
class="po-pt-1 po-pb-1 po-md-12"
36+
[p-title]="literals.parameters"
37+
>
3538
<po-dynamic-view [p-fields]="parameters" [p-value]="value.executionParameter"> </po-dynamic-view>
3639
</po-widget>
40+
<div *ngIf="jobSchedulerSummaryTemplate" class="po-pt-1 po-pb-1 po-md-12">
41+
<ng-template [ngTemplateOutlet]="jobSchedulerSummaryTemplate?.templateRef"></ng-template>
42+
</div>

projects/templates/src/lib/components/po-page-job-scheduler/po-page-job-scheduler-summary/po-page-job-scheduler-summary.component.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { Component, Input, OnInit } from '@angular/core';
21
import { DatePipe } from '@angular/common';
2+
import { Component, Input, OnInit } from '@angular/core';
33

44
import { PoDynamicViewField, PoInfoOrientation } from '@po-ui/ng-components';
55

@@ -18,6 +18,8 @@ export class PoPageJobSchedulerSummaryComponent implements OnInit {
1818

1919
@Input('p-no-parameters') noParameters: Boolean = true;
2020

21+
@Input('p-summary-template') jobSchedulerSummaryTemplate;
22+
2123
executionValue = '';
2224
firstExecutionValue = '';
2325
infoOrientation = PoInfoOrientation.Horizontal;

projects/templates/src/lib/components/po-page-job-scheduler/po-page-job-scheduler.component.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,9 @@
3838
</po-page-job-scheduler-parameters>
3939

4040
<po-page-job-scheduler-summary
41-
[p-no-parameters]="!parameters.length"
4241
*ngIf="step === stepSummary"
42+
[p-no-parameters]="!parameters.length"
43+
[p-summary-template]="jobSchedulerSummaryTemplate"
4344
class="po-md-12"
4445
[p-literals]="literals"
4546
[p-parameters]="parameters"

projects/templates/src/lib/components/po-page-job-scheduler/po-page-job-scheduler.component.ts

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
1-
import { ActivatedRoute, Router } from '@angular/router';
21
import {
32
AfterContentInit,
43
Component,
4+
ContentChild,
55
ContentChildren,
66
OnInit,
77
QueryList,
88
ViewChild,
99
ViewEncapsulation
1010
} from '@angular/core';
1111
import { NgForm } from '@angular/forms';
12+
import { ActivatedRoute } from '@angular/router';
1213

1314
import { Observable } from 'rxjs';
1415

@@ -24,12 +25,13 @@ import {
2425
} from '@po-ui/ng-components';
2526

2627
import { PoJobSchedulerInternal } from './interfaces/po-job-scheduler-internal.interface';
27-
import { PoPageJobSchedulerInternal } from './po-page-job-scheduler-internal';
2828
import { PoPageJobSchedulerBaseComponent } from './po-page-job-scheduler-base.component';
29+
import { PoPageJobSchedulerInternal } from './po-page-job-scheduler-internal';
2930
import { poPageJobSchedulerLiteralsDefault } from './po-page-job-scheduler-literals';
3031
import { PoPageJobSchedulerLookupService } from './po-page-job-scheduler-lookup.service';
31-
import { PoPageJobSchedulerService } from './po-page-job-scheduler.service';
3232
import { PoJobSchedulerParametersTemplateDirective } from './po-page-job-scheduler-parameters';
33+
import { PoJobSchedulerSummaryTemplateDirective } from './po-page-job-scheduler-summary';
34+
import { PoPageJobSchedulerService } from './po-page-job-scheduler.service';
3335

3436
/**
3537
* @docsExtends PoPageJobSchedulerBaseComponent
@@ -41,6 +43,11 @@ import { PoJobSchedulerParametersTemplateDirective } from './po-page-job-schedul
4143
* <file name="sample-po-page-job-scheduler-background-process/sample-po-page-job-scheduler-background-process.component.ts"> </file>
4244
* </example>
4345
*
46+
* <example name="po-page-job-scheduler-directives" title="PO Page Job Scheduler - Directives">
47+
* <file name="sample-po-page-job-scheduler-directives/sample-po-page-job-scheduler-directives.component.html"> </file>
48+
* <file name="sample-po-page-job-scheduler-directives/sample-po-page-job-scheduler-directives.component.ts"> </file>
49+
* </example>
50+
*
4451
*/
4552
@Component({
4653
selector: 'po-page-job-scheduler',
@@ -60,6 +67,9 @@ export class PoPageJobSchedulerComponent extends PoPageJobSchedulerBaseComponent
6067
@ContentChildren(PoJobSchedulerParametersTemplateDirective)
6168
parametersTemplate: QueryList<PoJobSchedulerParametersTemplateDirective>;
6269

70+
@ContentChild(PoJobSchedulerSummaryTemplateDirective)
71+
jobSchedulerSummaryTemplate: PoJobSchedulerSummaryTemplateDirective;
72+
6373
isEdit = false;
6474
literals = {
6575
...poPageJobSchedulerLiteralsDefault[poLocaleDefault]

projects/templates/src/lib/components/po-page-job-scheduler/po-page-job-scheduler.module.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,16 +23,22 @@ import { PoPageJobSchedulerParametersComponent } from './po-page-job-scheduler-p
2323
import { PoPageJobSchedulerService } from './po-page-job-scheduler.service';
2424
import { PoPageJobSchedulerSummaryComponent } from './po-page-job-scheduler-summary/po-page-job-scheduler-summary.component';
2525
import { PoJobSchedulerParametersTemplateDirective } from './po-page-job-scheduler-parameters';
26+
import { PoJobSchedulerSummaryTemplateDirective } from './po-page-job-scheduler-summary/po-job-scheduler-summary-template';
2627

2728
@NgModule({
2829
declarations: [
2930
PoPageJobSchedulerComponent,
3031
PoPageJobSchedulerExecutionComponent,
3132
PoPageJobSchedulerParametersComponent,
3233
PoPageJobSchedulerSummaryComponent,
33-
PoJobSchedulerParametersTemplateDirective
34+
PoJobSchedulerParametersTemplateDirective,
35+
PoJobSchedulerSummaryTemplateDirective
36+
],
37+
exports: [
38+
PoPageJobSchedulerComponent,
39+
PoJobSchedulerParametersTemplateDirective,
40+
PoJobSchedulerSummaryTemplateDirective
3441
],
35-
exports: [PoPageJobSchedulerComponent, PoJobSchedulerParametersTemplateDirective],
3642
imports: [
3743
CommonModule,
3844
FormsModule,

0 commit comments

Comments
 (0)