awf-test-lib 0.1.23 → 0.1.25
Sign up to get free protection for your applications and to get access to all the features.
- package/karma.conf.js +44 -0
- package/ng-package.json +7 -0
- package/package.json +10 -30
- package/src/lib/core/core-routing.module.ts +10 -0
- package/src/lib/core/core.module.ts +35 -0
- package/src/lib/core/menu/menu.component.css +18 -0
- package/src/lib/core/menu/menu.component.html +8 -0
- package/src/lib/core/menu/menu.component.spec.ts +23 -0
- package/src/lib/core/menu/menu.component.ts +28 -0
- package/src/lib/core/menu-consomer/menu-consomer.component.html +20 -0
- package/src/lib/core/menu-consomer/menu-consomer.component.scss +20 -0
- package/src/lib/core/menu-consomer/menu-consomer.component.spec.ts +25 -0
- package/src/lib/core/menu-consomer/menu-consomer.component.ts +21 -0
- package/src/lib/core/menu-ge-portal/menu-ge-portal.component.html +7 -0
- package/src/lib/core/menu-ge-portal/menu-ge-portal.component.scss +17 -0
- package/src/lib/core/menu-ge-portal/menu-ge-portal.component.spec.ts +25 -0
- package/src/lib/core/menu-ge-portal/menu-ge-portal.component.ts +83 -0
- package/src/lib/core/menu-warranty/menu-warranty.component.html +20 -0
- package/src/lib/core/menu-warranty/menu-warranty.component.scss +16 -0
- package/src/lib/core/menu-warranty/menu-warranty.component.spec.ts +25 -0
- package/src/lib/core/menu-warranty/menu-warranty.component.ts +31 -0
- package/src/lib/core/not-found/not-found.component.css +31 -0
- package/src/lib/core/not-found/not-found.component.html +6 -0
- package/src/lib/core/not-found/not-found.component.spec.ts +23 -0
- package/src/lib/core/not-found/not-found.component.ts +15 -0
- package/src/lib/core/top-bar/top-bar.component.css +116 -0
- package/src/lib/core/top-bar/top-bar.component.html +1 -0
- package/src/lib/core/top-bar/top-bar.component.spec.ts +23 -0
- package/src/lib/core/top-bar/top-bar.component.ts +39 -0
- package/{lib/models/account.model.d.ts → src/lib/models/account.model.ts} +6 -3
- package/src/lib/models/alternativeDate.model.ts +6 -0
- package/src/lib/models/applicationName.ts +6 -0
- package/{lib/models/cancelPMMailRequest.model.d.ts → src/lib/models/cancelPMMailRequest.model.ts} +3 -1
- package/src/lib/models/customObject.model.ts +4 -0
- package/src/lib/models/detailedPmJob.model.ts +25 -0
- package/src/lib/models/emailStatus.ts +4 -0
- package/src/lib/models/emailType.ts +19 -0
- package/src/lib/models/eventStatus.ts +8 -0
- package/src/lib/models/field.ts +7 -0
- package/src/lib/models/language.ts +4 -0
- package/{lib/models/mailRequest.model.d.ts → src/lib/models/mailRequest.model.ts} +3 -1
- package/src/lib/models/pMGroupedJob.model.ts +4 -0
- package/{lib/models/pmJob.model.d.ts → src/lib/models/pmJob.model.ts} +7 -6
- package/src/lib/models/pmJobRequest.model.ts +6 -0
- package/{lib/models/pmJobStatus.d.ts → src/lib/models/pmJobStatus.ts} +8 -3
- package/src/lib/models/reason.model.ts +7 -0
- package/src/lib/models/reasonCode.ts +9 -0
- package/src/lib/models/reasonContact.ts +7 -0
- package/{lib/models/reportDateMailRequest.model.d.ts → src/lib/models/reportDateMailRequest.model.ts} +3 -1
- package/src/lib/models/role.ts +5 -0
- package/src/lib/models/service.model.ts +8 -0
- package/src/lib/models/serviceName.ts +14 -0
- package/{lib/models/socialLoginRequest.model.d.ts → src/lib/models/socialLoginRequest.model.ts} +1 -1
- package/src/lib/models/socialMadia.ts +4 -0
- package/src/lib/models/stingBoolean.ts +7 -0
- package/src/lib/models/system.ts +15 -0
- package/{lib/models/theme.model.d.ts → src/lib/models/theme.model.ts} +18 -11
- package/src/lib/models/tokenStatus.ts +6 -0
- package/src/lib/models/warranty.ts +18 -0
- package/src/lib/pipes/pipes/pipes.module.ts +14 -0
- package/src/lib/pipes/subrtring-w.pipe.spec.ts +8 -0
- package/src/lib/pipes/subrtring-w.pipe.ts +16 -0
- package/src/lib/pipes/substring.pipe.spec.ts +8 -0
- package/src/lib/pipes/substring.pipe.ts +15 -0
- package/src/lib/shared/choose-another-date/choose-another-date.component.html +12 -0
- package/src/lib/shared/choose-another-date/choose-another-date.component.scss +12 -0
- package/src/lib/shared/choose-another-date/choose-another-date.component.spec.ts +25 -0
- package/src/lib/shared/choose-another-date/choose-another-date.component.ts +127 -0
- package/src/lib/shared/confirm-dialog/confirm-dialog.component.html +26 -0
- package/src/lib/shared/confirm-dialog/confirm-dialog.component.scss +0 -0
- package/src/lib/shared/confirm-dialog/confirm-dialog.component.spec.ts +25 -0
- package/src/lib/shared/confirm-dialog/confirm-dialog.component.ts +39 -0
- package/src/lib/shared/confirm-dialog-contact/confirm-dialog-contact.component.css +0 -0
- package/src/lib/shared/confirm-dialog-contact/confirm-dialog-contact.component.html +19 -0
- package/src/lib/shared/confirm-dialog-contact/confirm-dialog-contact.component.spec.ts +23 -0
- package/src/lib/shared/confirm-dialog-contact/confirm-dialog-contact.component.ts +36 -0
- package/src/lib/shared/confirmed-date-information/confirmed-date-information.component.html +25 -0
- package/src/lib/shared/confirmed-date-information/confirmed-date-information.component.scss +23 -0
- package/src/lib/shared/confirmed-date-information/confirmed-date-information.component.spec.ts +25 -0
- package/src/lib/shared/confirmed-date-information/confirmed-date-information.component.ts +30 -0
- package/src/lib/shared/contact/contact.component.css +144 -0
- package/src/lib/shared/contact/contact.component.html +136 -0
- package/src/lib/shared/contact/contact.component.spec.ts +23 -0
- package/src/lib/shared/contact/contact.component.ts +169 -0
- package/src/lib/shared/contact-support/contact-support.component.html +130 -0
- package/src/lib/shared/contact-support/contact-support.component.scss +10 -0
- package/src/lib/shared/contact-support/contact-support.component.spec.ts +25 -0
- package/src/lib/shared/contact-support/contact-support.component.ts +188 -0
- package/src/lib/shared/dashboard/dashboard.component.html +81 -0
- package/src/lib/shared/dashboard/dashboard.component.scss +5 -0
- package/src/lib/shared/dashboard/dashboard.component.spec.ts +23 -0
- package/src/lib/shared/dashboard/dashboard.component.ts +23 -0
- package/src/lib/shared/maintenance-list/maintenance-list.component.html +105 -0
- package/src/lib/shared/maintenance-list/maintenance-list.component.scss +26 -0
- package/src/lib/shared/maintenance-list/maintenance-list.component.spec.ts +25 -0
- package/src/lib/shared/maintenance-list/maintenance-list.component.ts +403 -0
- package/src/lib/shared/shared-routing.module.ts +10 -0
- package/src/lib/shared/shared.module.ts +80 -0
- package/src/lib/shared/show-links/show-links.component.html +49 -0
- package/src/lib/shared/show-links/show-links.component.scss +0 -0
- package/src/lib/shared/show-links/show-links.component.spec.ts +25 -0
- package/src/lib/shared/show-links/show-links.component.ts +78 -0
- package/src/lib/shared/system-list/system-list.component.css +0 -0
- package/src/lib/shared/system-list/system-list.component.html +40 -0
- package/src/lib/shared/system-list/system-list.component.spec.ts +23 -0
- package/src/lib/shared/system-list/system-list.component.ts +26 -0
- package/{public-api.d.ts → src/public-api.ts} +16 -1
- package/src/test.ts +27 -0
- package/tsconfig.lib.dev.json +10 -0
- package/tsconfig.lib.json +15 -0
- package/tsconfig.lib.pp.json +10 -0
- package/tsconfig.lib.prod.json +10 -0
- package/tsconfig.spec.json +17 -0
- package/esm2020/awf-test-lib.mjs +0 -5
- package/esm2020/lib/core/core-routing.module.mjs +0 -18
- package/esm2020/lib/core/core.module.mjs +0 -51
- package/esm2020/lib/core/menu/menu.component.mjs +0 -40
- package/esm2020/lib/core/menu-consomer/menu-consomer.component.mjs +0 -27
- package/esm2020/lib/core/menu-ge-portal/menu-ge-portal.component.mjs +0 -105
- package/esm2020/lib/core/menu-warranty/menu-warranty.component.mjs +0 -35
- package/esm2020/lib/core/not-found/not-found.component.mjs +0 -19
- package/esm2020/lib/core/top-bar/top-bar.component.mjs +0 -41
- package/esm2020/lib/models/account.model.mjs +0 -3
- package/esm2020/lib/models/alternativeDate.model.mjs +0 -3
- package/esm2020/lib/models/applicationName.mjs +0 -7
- package/esm2020/lib/models/cancelPMMailRequest.model.mjs +0 -4
- package/esm2020/lib/models/customObject.model.mjs +0 -3
- package/esm2020/lib/models/detailedPmJob.model.mjs +0 -3
- package/esm2020/lib/models/emailStatus.mjs +0 -6
- package/esm2020/lib/models/emailType.mjs +0 -17
- package/esm2020/lib/models/eventStatus.mjs +0 -9
- package/esm2020/lib/models/field.mjs +0 -9
- package/esm2020/lib/models/language.mjs +0 -6
- package/esm2020/lib/models/mailRequest.model.mjs +0 -3
- package/esm2020/lib/models/pMGroupedJob.model.mjs +0 -3
- package/esm2020/lib/models/pmJob.model.mjs +0 -3
- package/esm2020/lib/models/pmJobRequest.model.mjs +0 -3
- package/esm2020/lib/models/pmJobStatus.mjs +0 -17
- package/esm2020/lib/models/reason.model.mjs +0 -3
- package/esm2020/lib/models/reasonCode.mjs +0 -9
- package/esm2020/lib/models/reasonContact.mjs +0 -8
- package/esm2020/lib/models/reportDateMailRequest.model.mjs +0 -4
- package/esm2020/lib/models/role.mjs +0 -7
- package/esm2020/lib/models/service.model.mjs +0 -3
- package/esm2020/lib/models/serviceName.mjs +0 -12
- package/esm2020/lib/models/socialLoginRequest.model.mjs +0 -3
- package/esm2020/lib/models/socialMadia.mjs +0 -5
- package/esm2020/lib/models/stingBoolean.mjs +0 -6
- package/esm2020/lib/models/system.mjs +0 -3
- package/esm2020/lib/models/theme.model.mjs +0 -2
- package/esm2020/lib/models/tokenStatus.mjs +0 -7
- package/esm2020/lib/models/warranty.mjs +0 -3
- package/esm2020/lib/pipes/pipes/pipes.module.mjs +0 -21
- package/esm2020/lib/pipes/subrtring-w.pipe.mjs +0 -20
- package/esm2020/lib/pipes/substring.pipe.mjs +0 -16
- package/esm2020/lib/shared/choose-another-date/choose-another-date.component.mjs +0 -110
- package/esm2020/lib/shared/confirm-dialog/confirm-dialog.component.mjs +0 -45
- package/esm2020/lib/shared/confirm-dialog-contact/confirm-dialog-contact.component.mjs +0 -42
- package/esm2020/lib/shared/confirmed-date-information/confirmed-date-information.component.mjs +0 -39
- package/esm2020/lib/shared/contact/contact.component.mjs +0 -160
- package/esm2020/lib/shared/contact-support/contact-support.component.mjs +0 -172
- package/esm2020/lib/shared/dashboard/dashboard.component.mjs +0 -35
- package/esm2020/lib/shared/maintenance-list/maintenance-list.component.mjs +0 -352
- package/esm2020/lib/shared/shared-routing.module.mjs +0 -18
- package/esm2020/lib/shared/shared.module.mjs +0 -144
- package/esm2020/lib/shared/show-links/show-links.component.mjs +0 -80
- package/esm2020/lib/shared/system-list/system-list.component.mjs +0 -33
- package/esm2020/public-api.mjs +0 -48
- package/fesm2015/awf-test-lib.mjs +0 -1654
- package/fesm2015/awf-test-lib.mjs.map +0 -1
- package/fesm2020/awf-test-lib.mjs +0 -1650
- package/fesm2020/awf-test-lib.mjs.map +0 -1
- package/index.d.ts +0 -5
- package/lib/core/core-routing.module.d.ts +0 -7
- package/lib/core/core.module.d.ts +0 -15
- package/lib/core/menu/menu.component.d.ts +0 -17
- package/lib/core/menu-consomer/menu-consomer.component.d.ts +0 -12
- package/lib/core/menu-ge-portal/menu-ge-portal.component.d.ts +0 -20
- package/lib/core/menu-warranty/menu-warranty.component.d.ts +0 -15
- package/lib/core/not-found/not-found.component.d.ts +0 -10
- package/lib/core/top-bar/top-bar.component.d.ts +0 -13
- package/lib/models/alternativeDate.model.d.ts +0 -6
- package/lib/models/applicationName.d.ts +0 -5
- package/lib/models/customObject.model.d.ts +0 -3
- package/lib/models/detailedPmJob.model.d.ts +0 -23
- package/lib/models/emailStatus.d.ts +0 -4
- package/lib/models/emailType.d.ts +0 -15
- package/lib/models/eventStatus.d.ts +0 -7
- package/lib/models/field.d.ts +0 -7
- package/lib/models/language.d.ts +0 -4
- package/lib/models/pMGroupedJob.model.d.ts +0 -3
- package/lib/models/pmJobRequest.model.d.ts +0 -5
- package/lib/models/reason.model.d.ts +0 -4
- package/lib/models/reasonCode.d.ts +0 -7
- package/lib/models/reasonContact.d.ts +0 -6
- package/lib/models/role.d.ts +0 -5
- package/lib/models/service.model.d.ts +0 -8
- package/lib/models/serviceName.d.ts +0 -10
- package/lib/models/socialMadia.d.ts +0 -3
- package/lib/models/stingBoolean.d.ts +0 -4
- package/lib/models/system.d.ts +0 -14
- package/lib/models/tokenStatus.d.ts +0 -5
- package/lib/models/warranty.d.ts +0 -17
- package/lib/pipes/pipes/pipes.module.d.ts +0 -9
- package/lib/pipes/subrtring-w.pipe.d.ts +0 -7
- package/lib/pipes/substring.pipe.d.ts +0 -7
- package/lib/shared/choose-another-date/choose-another-date.component.d.ts +0 -33
- package/lib/shared/confirm-dialog/confirm-dialog.component.d.ts +0 -21
- package/lib/shared/confirm-dialog-contact/confirm-dialog-contact.component.d.ts +0 -19
- package/lib/shared/confirmed-date-information/confirmed-date-information.component.d.ts +0 -17
- package/lib/shared/contact/contact.component.d.ts +0 -39
- package/lib/shared/contact-support/contact-support.component.d.ts +0 -50
- package/lib/shared/dashboard/dashboard.component.d.ts +0 -18
- package/lib/shared/maintenance-list/maintenance-list.component.d.ts +0 -81
- package/lib/shared/shared-routing.module.d.ts +0 -7
- package/lib/shared/shared.module.d.ts +0 -40
- package/lib/shared/show-links/show-links.component.d.ts +0 -24
- package/lib/shared/system-list/system-list.component.d.ts +0 -16
@@ -0,0 +1,136 @@
|
|
1
|
+
<div *ngIf="translate && reasons ">
|
2
|
+
<section class="pt-0">
|
3
|
+
<div class="app-section-header-img">
|
4
|
+
<div class="container pt-4">
|
5
|
+
<div class="">
|
6
|
+
<h2>{{translate.title}} </h2>
|
7
|
+
</div>
|
8
|
+
</div>
|
9
|
+
</div>
|
10
|
+
</section>
|
11
|
+
<section class="py-5 background-light">
|
12
|
+
<div class="container px-lg-5">
|
13
|
+
<div class="row align-items-center">
|
14
|
+
<div class="col-md-6">
|
15
|
+
<div class="container-contact100">
|
16
|
+
<div class="wrap-contact100">
|
17
|
+
<form [formGroup]="form" *ngIf="form && systems && reasons" class="contact100-form validate-form">
|
18
|
+
<span class="contact100-form-title">{{translate.title}} </span>
|
19
|
+
<div class="p-grid p-fluid p-mt-2">
|
20
|
+
<div class="p-col-12 p-md-12 ">
|
21
|
+
<span class="titre">{{translate.placeholderName}}</span> <span class="requis">* </span>:
|
22
|
+
<input [placeholder]="translate.placeholderName" type="text" pInputText formControlName="name" [ngClass]="{ 'is-invalid': submitted && f.name.invalid }">
|
23
|
+
<div *ngIf="submitted && f.name.errors">
|
24
|
+
<div class="requis" *ngIf="f.name.errors.required">{{translate.requiredName}}</div>
|
25
|
+
<div class="requis" *ngIf="f.name.errors.minlength">{{translate.requiredNameMin}}</div>
|
26
|
+
</div>
|
27
|
+
</div>
|
28
|
+
</div>
|
29
|
+
<div class="p-grid p-fluid p-mt-2">
|
30
|
+
<div class="p-col-12 p-md-12 ">
|
31
|
+
<span class="titre">{{translate.placeholderEmail}}</span> <span class="requis">*</span>:
|
32
|
+
<input [placeholder]="translate.placeholderEmail" type="text" pInputText formControlName="email" [ngClass]="{ 'is-invalid': submitted && f.email.invalid }">
|
33
|
+
<div *ngIf="submitted && f.email.errors">
|
34
|
+
<div class="requis" *ngIf="f.email.errors.required">{{translate.requiredEmail}}</div>
|
35
|
+
<div class="requis" *ngIf="f.email.errors.email">{{translate.requiredEmailFormat}}</div>
|
36
|
+
</div>
|
37
|
+
</div>
|
38
|
+
</div>
|
39
|
+
<div class="p-grid p-fluid p-mt-2">
|
40
|
+
<div class="p-col-12 p-md-6">
|
41
|
+
<span class="titre">{{translate.placeholderPhone}}</span> <span class="requis">*</span>:
|
42
|
+
<input [placeholder]="translate.placeholderPhone" type="text" pInputText formControlName="phone" [ngClass]="{ 'is-invalid': submitted && f.phone.invalid }" (keypress)="preventStringKeypress($event)">
|
43
|
+
<div *ngIf="submitted && f.phone.errors">
|
44
|
+
<div class="requis" *ngIf="f.phone.errors.required">{{translate.requiredPhone}}</div>
|
45
|
+
</div>
|
46
|
+
</div>
|
47
|
+
<div class="p-col-12 p-md-6">
|
48
|
+
<span class="titre">{{translate.placeholderextentionOrComment}}</span>:
|
49
|
+
<input [placeholder]="translate.placeholderextentionOrComment" type="text" pInputText formControlName="extentionOrComment">
|
50
|
+
</div>
|
51
|
+
</div>
|
52
|
+
<div class="p-grid p-fluid p-mt-2">
|
53
|
+
<div class="p-col-12 p-md-12 ">
|
54
|
+
<span class="titre">{{translate.RelatedSystems}}</span> <span class="requis">*</span>:
|
55
|
+
<p-dropdown (click)="selectPM(selectedSystem)" [options]="systems" [placeholder]="translate.selectSystem" [(ngModel)]="selectedSystem" [optionLabel]="'name'" formControlName="systems" optionDisabled="inactive" [ngClass]="{ 'is-invalid': submitted && f.systems.invalid }"></p-dropdown>
|
56
|
+
|
57
|
+
<div *ngIf="submitted && f.systems.errors">
|
58
|
+
<div class="requis" *ngIf="f.systems.errors.required">{{translate.requiredSystem}}</div>
|
59
|
+
</div>
|
60
|
+
</div>
|
61
|
+
|
62
|
+
</div>
|
63
|
+
<div class="p-grid p-fluid p-mt-2" *ngIf="showPm">
|
64
|
+
<div class="p-col-12 p-md-12 ">
|
65
|
+
<span class="titre">{{translate.RelatedPMs}}</span>:
|
66
|
+
<p-dropdown
|
67
|
+
[options]="pmJobs"
|
68
|
+
[placeholder]="translate.selectPM"
|
69
|
+
[(ngModel)]="selectedPm"
|
70
|
+
[optionLabel]="'wokorderDetails'"
|
71
|
+
formControlName="pms"
|
72
|
+
optionDisabled="inactive"
|
73
|
+
[ngClass]="{ 'is-invalid': submitted && f.pms.invalid }">
|
74
|
+
</p-dropdown>
|
75
|
+
<!-- <div *ngIf="submitted && f.pms.errors">
|
76
|
+
<div class="requis" *ngIf="f.pms.errors.required">{{translate.requiredPM }}</div>
|
77
|
+
</div>-->
|
78
|
+
</div>
|
79
|
+
</div>
|
80
|
+
<div class="p-grid p-fluid p-mt-2">
|
81
|
+
<div class="p-col-12 p-md-12 ">
|
82
|
+
<span class="titre">{{translate.reason}}</span> <span class="requis">*</span>:
|
83
|
+
<p-dropdown [options]="reasons" [placeholder]="translate.selectReason" [(ngModel)]="selectedReason" optionLabel="name" formControlName="reason" optionDisabled="inactive" [ngClass]="{ 'is-invalid': submitted && f.reason.invalid }"></p-dropdown>
|
84
|
+
<!-- <input [placeholder]="translate.reason" type="text" pInputText formControlName="reason" [ngClass]="{ 'is-invalid': submitted && f.reason.invalid }"> -->
|
85
|
+
<div *ngIf="submitted && f.reason.errors">
|
86
|
+
<div class="requis" *ngIf="f.reason.errors.required">{{translate.reasonRequired}}</div>
|
87
|
+
</div>
|
88
|
+
</div>
|
89
|
+
</div>
|
90
|
+
<div class="p-grid p-fluid p-mt-2">
|
91
|
+
<div class="p-col-12 p-md-12 ">
|
92
|
+
<span class="titre">{{translate.placeholderMessage}} </span> <span class="requis">*</span>:
|
93
|
+
<textarea pInputTextarea style=" min-height:100px;height:100%;width:100%;" [placeholder]="translate.placeholderMessage +'...'" formControlName="message" [ngClass]="{ 'is-invalid': submitted && f.message.errors }"></textarea>
|
94
|
+
<div *ngIf="submitted && f.message.errors">
|
95
|
+
<div class="requis" *ngIf="f.message.errors.required">{{translate.requiredMessage}}</div>
|
96
|
+
<div class="requis" *ngIf="f.message.errors.minlength">{{translate.requiredMessageMin}}</div>
|
97
|
+
</div>
|
98
|
+
</div>
|
99
|
+
</div>
|
100
|
+
<br>
|
101
|
+
<br>
|
102
|
+
<div class="container-contact100-form-btn">
|
103
|
+
<div class="wrap-contact100-form-btn">
|
104
|
+
<div class="contact100-form-bgbtn"></div>
|
105
|
+
<button class="btn-warranty mt-3" (click)="onSubmit()">
|
106
|
+
{{translate.send}}
|
107
|
+
</button>
|
108
|
+
</div>
|
109
|
+
</div>
|
110
|
+
</form>
|
111
|
+
</div>
|
112
|
+
</div>
|
113
|
+
</div>
|
114
|
+
<div class="col-md-6 contact">
|
115
|
+
<iframe src="https://maps.google.com/maps?q=283,%20Rue%20De%20la%20Miniere-BP34%20%2078533%20BUC%20%E2%80%93%20Cedex&t=&z=13&ie=UTF8&iwloc=&output=embed" width="100%" height="250" style="border:0;" allowfullscreen="" loading="lazy"></iframe>
|
116
|
+
<h6 class="fs-4 mt-3"> {{translate.information}}</h6>
|
117
|
+
<section class="mb-4">
|
118
|
+
<div class="">
|
119
|
+
<i class="pi pi-envelope"></i><label> {{translate.emailText}}</label>
|
120
|
+
<p class="">{{translate.email}} </p>
|
121
|
+
</div>
|
122
|
+
<div class=" mt-4">
|
123
|
+
<i class="pi pi-map"></i><label> {{translate.addressText}}</label>
|
124
|
+
<p class="">{{translate.adress}}</p>
|
125
|
+
<p class="">{{translate.town}}</p>
|
126
|
+
<p class="">{{translate.country}}</p>
|
127
|
+
</div>
|
128
|
+
</section>
|
129
|
+
</div>
|
130
|
+
|
131
|
+
</div>
|
132
|
+
</div>
|
133
|
+
</section>
|
134
|
+
</div>
|
135
|
+
|
136
|
+
<p-toast position="top-center"></p-toast>
|
@@ -0,0 +1,23 @@
|
|
1
|
+
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
2
|
+
|
3
|
+
import { ContactComponent } from './contact.component';
|
4
|
+
|
5
|
+
describe('ContactComponent', () => {
|
6
|
+
let component: ContactComponent;
|
7
|
+
let fixture: ComponentFixture<ContactComponent>;
|
8
|
+
|
9
|
+
beforeEach(async () => {
|
10
|
+
await TestBed.configureTestingModule({
|
11
|
+
declarations: [ ContactComponent ]
|
12
|
+
})
|
13
|
+
.compileComponents();
|
14
|
+
|
15
|
+
fixture = TestBed.createComponent(ContactComponent);
|
16
|
+
component = fixture.componentInstance;
|
17
|
+
fixture.detectChanges();
|
18
|
+
});
|
19
|
+
|
20
|
+
it('should create', () => {
|
21
|
+
expect(component).toBeTruthy();
|
22
|
+
});
|
23
|
+
});
|
@@ -0,0 +1,169 @@
|
|
1
|
+
import {
|
2
|
+
Component,
|
3
|
+
Output,
|
4
|
+
OnChanges,
|
5
|
+
Input,
|
6
|
+
EventEmitter,
|
7
|
+
} from '@angular/core';
|
8
|
+
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
|
9
|
+
import { MessageService } from 'primeng/api';
|
10
|
+
import { DetailedPmJob } from '../../models/detailedPmJob.model';
|
11
|
+
import { EventStatus } from '../../models/eventStatus';
|
12
|
+
import { PmJob } from '../../models/pmJob.model';
|
13
|
+
import { PmJobStatus } from '../../models/pmJobStatus';
|
14
|
+
import { Reason } from '../../models/reason.model';
|
15
|
+
import { ReasonCode } from '../../models/reasonCode';
|
16
|
+
import { ReasonContact } from '../../models/reasonContact';
|
17
|
+
import { System } from '../../models/system';
|
18
|
+
import { DatePipe } from '@angular/common';
|
19
|
+
|
20
|
+
@Component({
|
21
|
+
selector: 'awf-contact',
|
22
|
+
templateUrl: './contact.component.html',
|
23
|
+
styleUrls: ['./contact.component.css'],
|
24
|
+
providers: [MessageService,DatePipe],
|
25
|
+
})
|
26
|
+
export class ContactComponent implements OnChanges {
|
27
|
+
@Input() loading = false;
|
28
|
+
@Input() submitted = false;
|
29
|
+
@Input() systems: System[] = [];
|
30
|
+
@Input() selectedSystems: System[] = [];
|
31
|
+
@Input() translate!: any;
|
32
|
+
@Input() reasons!: Reason[];
|
33
|
+
@Output() sendForm: EventEmitter<any> = new EventEmitter();
|
34
|
+
form!: FormGroup;
|
35
|
+
selectedReason!: any;
|
36
|
+
selectedSystem!: System;
|
37
|
+
selectedPm!: any;
|
38
|
+
pmJobs!: any[];
|
39
|
+
systemContainPm = true;
|
40
|
+
|
41
|
+
showPm = false;
|
42
|
+
constructor(
|
43
|
+
private formBuilder: FormBuilder,
|
44
|
+
private messageService: MessageService,
|
45
|
+
private datePipe: DatePipe
|
46
|
+
|
47
|
+
) {}
|
48
|
+
|
49
|
+
ngOnChanges(): void {
|
50
|
+
this.reasons = this.reasons.filter(
|
51
|
+
(x) => x.code == ReasonCode.SDI || x.code == ReasonCode.OTH
|
52
|
+
);
|
53
|
+
this.selectPM(this.selectedSystem);
|
54
|
+
this.loadForm();
|
55
|
+
}
|
56
|
+
|
57
|
+
// convenience getter for easy access to form fields
|
58
|
+
get f() {
|
59
|
+
return this.form.controls;
|
60
|
+
}
|
61
|
+
|
62
|
+
preventStringKeypress(event: any): void {
|
63
|
+
if (
|
64
|
+
isNaN(Number(String.fromCharCode(event.charCode))) ||
|
65
|
+
String.fromCharCode(event.charCode) === ' '
|
66
|
+
) {
|
67
|
+
event.preventDefault();
|
68
|
+
}
|
69
|
+
}
|
70
|
+
|
71
|
+
onSubmit() {
|
72
|
+
this.submitted = true;
|
73
|
+
|
74
|
+
if (this.form.invalid) {
|
75
|
+
this.messageService.add({ severity: 'error', summary: this.translate.summaryError, detail: this.translate.invalidForm });
|
76
|
+
return;
|
77
|
+
}
|
78
|
+
|
79
|
+
let detailedPmJob = {} as DetailedPmJob;
|
80
|
+
detailedPmJob.name = this.form.value.name;
|
81
|
+
detailedPmJob.phone = this.form.value.phone;
|
82
|
+
detailedPmJob.extentionOrComment = this.form.value.extentionOrComment;
|
83
|
+
detailedPmJob.email = this.form.value.email;
|
84
|
+
detailedPmJob.reason = this.form.value.reason.name;
|
85
|
+
detailedPmJob.comment = this.form.value.message;
|
86
|
+
if (this.form.value.pms !== undefined) {
|
87
|
+
detailedPmJob.pmJob = this.form.value.pms;
|
88
|
+
}
|
89
|
+
detailedPmJob.systemName = this.selectedSystem.name;
|
90
|
+
detailedPmJob.systemId = this.selectedSystem.systemId;
|
91
|
+
detailedPmJob.siteName = this.selectedSystem.siteName;
|
92
|
+
detailedPmJob.siteCity = this.selectedSystem.siteCity;
|
93
|
+
detailedPmJob.sitePostalCode = this.selectedSystem.sitePostalCode;
|
94
|
+
detailedPmJob.toUpdate = true;
|
95
|
+
if (this.form.value.pms !== undefined) {
|
96
|
+
detailedPmJob.selectedDate = detailedPmJob.pmJob.startDateTime;
|
97
|
+
}
|
98
|
+
detailedPmJob.reasonContact = ReasonContact.Contact;
|
99
|
+
detailedPmJob.futureStatus = this.slectsFutureStatus(
|
100
|
+
this.form.value.reason.code
|
101
|
+
);
|
102
|
+
this.sendForm.emit(detailedPmJob);
|
103
|
+
}
|
104
|
+
|
105
|
+
slectsFutureStatus(status: any) {
|
106
|
+
switch (status) {
|
107
|
+
case ReasonCode.MPM:
|
108
|
+
return PmJobStatus.WAITING;
|
109
|
+
case ReasonCode.RPM:
|
110
|
+
return PmJobStatus.REPORTED;
|
111
|
+
case ReasonCode.CPM:
|
112
|
+
return PmJobStatus.CANCELLED;
|
113
|
+
case ReasonCode.SDI:
|
114
|
+
return PmJobStatus.DESINSTALLED;
|
115
|
+
case ReasonCode.OTH:
|
116
|
+
return PmJobStatus.OTHER;
|
117
|
+
default:
|
118
|
+
return 'Erreur';
|
119
|
+
}
|
120
|
+
}
|
121
|
+
|
122
|
+
loadForm() {
|
123
|
+
let name = sessionStorage.getItem('userName') ? sessionStorage.getItem('userName') : localStorage.getItem('userName') ;
|
124
|
+
let email = sessionStorage.getItem('email') ? sessionStorage.getItem('email') : localStorage.getItem('email');
|
125
|
+
let phone = sessionStorage.getItem('mobilePhoneNumber') ? sessionStorage.getItem('mobilePhoneNumber') : localStorage.getItem('mobilePhoneNumber');
|
126
|
+
this.form = this.formBuilder.group({
|
127
|
+
name: [
|
128
|
+
name !== 'null' ? name : '',
|
129
|
+
[Validators.required, Validators.minLength(3)],
|
130
|
+
],
|
131
|
+
email: [
|
132
|
+
email !== 'null' ? email : '',
|
133
|
+
[Validators.required, Validators.email],
|
134
|
+
],
|
135
|
+
phone: [phone !== 'null' ? phone : '', [Validators.required]],
|
136
|
+
extentionOrComment: [''],
|
137
|
+
reason: ['', [Validators.required]],
|
138
|
+
systems: [[], [Validators.required]],
|
139
|
+
pms: [[], this.showPm ? [] : []],
|
140
|
+
message: ['', [Validators.required, Validators.minLength(15)]],
|
141
|
+
});
|
142
|
+
}
|
143
|
+
|
144
|
+
selectPM(selectedSystem: any) {
|
145
|
+
this.systemContainPm = true;
|
146
|
+
if (selectedSystem === undefined) {
|
147
|
+
return;
|
148
|
+
} else {
|
149
|
+
if (selectedSystem.pmJobs.length === 0) {
|
150
|
+
this.showPm = false;
|
151
|
+
} else {
|
152
|
+
this.selectedSystem = selectedSystem;
|
153
|
+
this.pmJobs = selectedSystem.pmJobs;
|
154
|
+
this.pmJobs.forEach((element) => {
|
155
|
+
if (element.startDateTime) {
|
156
|
+
if (element.caseType == 'Planned Maintenance') {
|
157
|
+
element.wokorderDetails = element.workorderNumber + ' - ' + this.datePipe.transform(element.startDateTime, 'dd MMM yyyy') + ' - ' + this.translate.typePlanned;
|
158
|
+
}else if(element.caseType =="QARA"){
|
159
|
+
element.wokorderDetails = element.workorderNumber + ' - ' + this.datePipe.transform(element.startDateTime, 'dd MMM yyyy') + ' - ' + this.translate.typeQARA;
|
160
|
+
}else{
|
161
|
+
element.wokorderDetails = element.workorderNumber + " - "+ this.datePipe.transform(element.startDateTime, 'dd MMM yyyy');
|
162
|
+
}
|
163
|
+
}
|
164
|
+
});
|
165
|
+
this.showPm = true;
|
166
|
+
}
|
167
|
+
}
|
168
|
+
}
|
169
|
+
}
|
@@ -0,0 +1,130 @@
|
|
1
|
+
<p-dialog header="" [modal]="true" [(visible)]="displaycontactSupport" [maximizable]="true" [breakpoints]="{'960px': '75vw'}" [style]="{width: '900px',height:'1400px'}" [draggable]="false" [resizable]="true" (onHide)="cancelContactSupport()">
|
2
|
+
<strong>
|
3
|
+
<h3 class="text-center title"> {{translate.header}} </h3>
|
4
|
+
</strong>
|
5
|
+
<br>
|
6
|
+
<div class="row" *ngIf="translate && form && reasons ">
|
7
|
+
|
8
|
+
<div class="col-md-6 card-bg" >
|
9
|
+
<div class="conteur contact-bloc" [style]="{height:'150px'}">
|
10
|
+
<img class="d-block mx-auto" src="assets/img/GEPortal/phone-call-.png">
|
11
|
+
<p class="counter contact-icon text-center mt-4">{{translate.contacted}}</p>
|
12
|
+
</div>
|
13
|
+
<br>
|
14
|
+
<form [formGroup]="form" *ngIf="form" class="contact100-form validate-form">
|
15
|
+
<span class="contact100-form-title">{{translate.title}}</span>
|
16
|
+
<div class="p-grid p-fluid p-mt-2">
|
17
|
+
<div class="p-col-12 p-md-12 ">
|
18
|
+
<span class="titre">{{translate.placeholderName}}</span> <span class="requis">* </span>:
|
19
|
+
<input [placeholder]="translate.placeholderName" type="text" pInputText formControlName="name" [ngClass]="{ 'is-invalid': submitted && f.name.invalid }">
|
20
|
+
<div *ngIf="submitted && f.name.errors">
|
21
|
+
<div class="requis" *ngIf="f.name.errors.required">{{translate.requiredName}}</div>
|
22
|
+
<div class="requis" *ngIf="f.name.errors.minlength">{{translate.requiredNameMin}}</div>
|
23
|
+
</div>
|
24
|
+
</div>
|
25
|
+
</div>
|
26
|
+
<div class="p-grid p-fluid p-mt-2">
|
27
|
+
<div class="p-col-12 p-md-12">
|
28
|
+
<span class="titre">{{translate.placeholderEmail}}</span> <span class="requis">*</span>:
|
29
|
+
<input [placeholder]="translate.placeholderEmail" type="text" pInputText formControlName="email" [ngClass]="{ 'is-invalid': submitted && f.email.invalid }">
|
30
|
+
<div *ngIf="submitted && f.email.errors">
|
31
|
+
<div class="requis" *ngIf="f.email.errors.required">{{translate.requiredEmail}}</div>
|
32
|
+
<div class="requis" *ngIf="f.email.errors.email">{{translate.requiredEmailFormat}}</div>
|
33
|
+
</div>
|
34
|
+
</div>
|
35
|
+
</div>
|
36
|
+
<div class="p-grid p-fluid p-mt-2">
|
37
|
+
<div class="p-col-12 p-md-6">
|
38
|
+
<span class="titre">{{translate.placeholderPhone}}</span> <span class="requis">*</span>:
|
39
|
+
<input [placeholder]="translate.placeholderPhone" type="text" pInputText formControlName="phone" [ngClass]="{ 'is-invalid': submitted && f.phone.invalid }" (keypress)="preventStringKeypress($event)">
|
40
|
+
<div *ngIf="submitted && f.phone.errors">
|
41
|
+
<div class="requis" *ngIf="f.phone.errors.required">{{translate.requiredPhone}}</div>
|
42
|
+
</div>
|
43
|
+
</div>
|
44
|
+
<div class="p-col-12 p-md-6">
|
45
|
+
<span class="titre">{{translate.placeholderextentionOrComment}}</span>:
|
46
|
+
<input [placeholder]="translate.placeholderextentionOrComment" type="text" pInputText formControlName="extentionOrComment">
|
47
|
+
</div>
|
48
|
+
</div>
|
49
|
+
|
50
|
+
<div class="p-grid p-fluid p-mt-2">
|
51
|
+
<div class="p-col-12 p-md-12 ">
|
52
|
+
<span class="titre">{{translate.system}}</span> <span class="requis">*</span>:
|
53
|
+
<input [placeholder]="translate.system" type="text" pInputText formControlName="system" [ngClass]="{ 'is-invalid': submitted && f.system.invalid }">
|
54
|
+
<div *ngIf="submitted && f.system.errors">
|
55
|
+
<div class="requis" *ngIf="f.system.errors?.required">{{translate.required}}</div>
|
56
|
+
</div>
|
57
|
+
</div>
|
58
|
+
</div>
|
59
|
+
<div class="p-grid p-fluid p-mt-2">
|
60
|
+
<div class="p-col-12 p-md-12 ">
|
61
|
+
<span class="titre">{{translate.workOrder}}</span> <span class="requis"></span>:
|
62
|
+
<input [placeholder]="translate.workOrder" type="text" pInputText formControlName="workOrder" [ngClass]="{ 'is-invalid': submitted && f.workOrder.invalid }">
|
63
|
+
<div *ngIf="submitted && f.workOrder.errors">
|
64
|
+
<div class="requis" *ngIf="f.workOrder.errors?.required">{{translate.required}}</div>
|
65
|
+
</div>
|
66
|
+
</div>
|
67
|
+
</div>
|
68
|
+
<div class="p-grid p-fluid p-mt-2">
|
69
|
+
<div class="p-col-12 p-md-12 ">
|
70
|
+
<span class="titre">{{translate.reason}}</span> <span class="requis">*</span>:
|
71
|
+
<p-dropdown [options]="reasons" [placeholder]="translate.selectReason" [(ngModel)]="selectedReason" optionLabel="name" formControlName="reason" optionDisabled="inactive" [ngClass]="{ 'is-invalid': submitted && f.reason.invalid }"></p-dropdown>
|
72
|
+
<!-- <input [placeholder]="translate.reason" type="text" pInputText formControlName="reason" [ngClass]="{ 'is-invalid': submitted && f.reason.invalid }"> -->
|
73
|
+
<div *ngIf="submitted && f.reason.errors">
|
74
|
+
<div class="requis" *ngIf="f.reason.errors.required">{{translate.reasonRequired}}</div>
|
75
|
+
</div>
|
76
|
+
</div>
|
77
|
+
</div>
|
78
|
+
<div class="p-grid p-fluid p-mt-2">
|
79
|
+
<div class="p-col-12 p-md-12 ">
|
80
|
+
<span class="titre">{{translate.message}} </span> <span *ngIf=" reasonContact !=='MoreDatesFormPm'" class="requis">*</span>:
|
81
|
+
<textarea pInputTextarea style=" min-height:100px;height:100%;width:100%;" [placeholder]="translate.message +'...'" formControlName="message" [ngClass]="{ 'is-invalid': submitted && f.message.errors }"></textarea>
|
82
|
+
<div *ngIf="submitted && f.message.errors">
|
83
|
+
<div class="requis" *ngIf="f.message.errors.required">{{translate.required}}</div>
|
84
|
+
<div class="requis" *ngIf="f.message.errors.minlength">{{translate.requiredMessageMin}}</div>
|
85
|
+
</div>
|
86
|
+
</div>
|
87
|
+
</div>
|
88
|
+
<br>
|
89
|
+
<br>
|
90
|
+
<div class="container-contact100-form-btn">
|
91
|
+
<div class="wrap-contact100-form-btn">
|
92
|
+
<div class="contact100-form-bgbtn"></div>
|
93
|
+
<button pButton pRipple class="d-block mx-auto" [label]="translate.accept" icon="pi pi-thumbs-up" [pTooltip]="translate.accept" tooltipPosition="bottom" (click)="onSubmit()"></button>
|
94
|
+
</div>
|
95
|
+
</div>
|
96
|
+
</form>
|
97
|
+
<!-- <button pButton pRipple class="d-block mx-auto" [label]="translate.accept" icon="pi pi-thumbs-up" [pTooltip]="translate.accept" tooltipPosition="bottom" (click)="contacted()"></button> -->
|
98
|
+
</div>
|
99
|
+
<div class="col-md-6 card-bg" >
|
100
|
+
<div class="conteur contact-bloc" [style]="{height:'150px'}">
|
101
|
+
<img class="d-block mx-auto" src="assets/img/GEPortal/phone-called.png">
|
102
|
+
<p class="counter contact-icon text-center mt-4">{{translate.contact}}</p>
|
103
|
+
</div>
|
104
|
+
<br>
|
105
|
+
<button pButton pRipple class="d-block mx-auto" [label]="translate.seeNumber" icon="pi pi-eye" [pTooltip]="translate.accept" tooltipPosition="bottom" (click)="contact()"></button>
|
106
|
+
<br>
|
107
|
+
<iframe src="https://maps.google.com/maps?q=283,%20Rue%20De%20la%20Miniere-BP34%20%2078533%20BUC%20%E2%80%93%20Cedex&t=&z=13&ie=UTF8&iwloc=&output=embed" width="100%" height="250" style="border:0;" allowfullscreen="" loading="lazy"></iframe>
|
108
|
+
<h6 class="fs-4 mt-3"> {{translate.information}}</h6>
|
109
|
+
<section class="mb-4">
|
110
|
+
<div class="">
|
111
|
+
<i class="pi pi-envelope"></i><label> {{translate.emailText}}</label>
|
112
|
+
<p class="">{{translate.email}} </p>
|
113
|
+
</div>
|
114
|
+
<div class=" mt-4">
|
115
|
+
<i class="pi pi-map"></i><label> {{translate.addressText}}</label>
|
116
|
+
<p class="">{{translate.adress}}</p>
|
117
|
+
<p class="">{{translate.town}}</p>
|
118
|
+
<p class="">{{translate.country}}</p>
|
119
|
+
</div>
|
120
|
+
</section>
|
121
|
+
</div>
|
122
|
+
</div>
|
123
|
+
</p-dialog>
|
124
|
+
<p-dialog *ngIf="translate"[header]="translate.serviceCenterPhoneText" [modal]="true" [(visible)]="displayNumber" [breakpoints]="{'960px': '75vw'}" [style]="{width: '400px',height:'200px'}" [draggable]="false" [resizable]="false" (onHide)="closeNumber()">
|
125
|
+
<br>
|
126
|
+
<h4 class="number"> <strong> <i class="pi pi-phone"></i> {{translate.contactNumber}}</strong></h4>
|
127
|
+
</p-dialog>
|
128
|
+
|
129
|
+
|
130
|
+
<p-toast position="top-center"></p-toast>
|
@@ -0,0 +1,25 @@
|
|
1
|
+
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
2
|
+
|
3
|
+
import { ContactSupportComponent } from './contact-support.component';
|
4
|
+
|
5
|
+
describe('ContactSupportComponent', () => {
|
6
|
+
let component: ContactSupportComponent;
|
7
|
+
let fixture: ComponentFixture<ContactSupportComponent>;
|
8
|
+
|
9
|
+
beforeEach(async () => {
|
10
|
+
await TestBed.configureTestingModule({
|
11
|
+
declarations: [ ContactSupportComponent ]
|
12
|
+
})
|
13
|
+
.compileComponents();
|
14
|
+
});
|
15
|
+
|
16
|
+
beforeEach(() => {
|
17
|
+
fixture = TestBed.createComponent(ContactSupportComponent);
|
18
|
+
component = fixture.componentInstance;
|
19
|
+
fixture.detectChanges();
|
20
|
+
});
|
21
|
+
|
22
|
+
it('should create', () => {
|
23
|
+
expect(component).toBeTruthy();
|
24
|
+
});
|
25
|
+
});
|