From 4ff5ae83ea8e6a85a8feae21939dab21f1b6c7cb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ga=C3=ABlle=20FOURNIER?= <gaelle.fournier.work@gmail.com>
Date: Fri, 10 Sep 2021 16:55:29 +0200
Subject: [PATCH] TULEAP 24764 : Rule description is be mandatory in agreement
 with data model vitam documentation

---
 .../src/app/rule/rule-create/rule-create.component.html     | 6 +++++-
 .../src/app/rule/rule-create/rule-create.component.spec.ts  | 3 +++
 .../src/app/rule/rule-create/rule-create.component.ts       | 2 +-
 .../rule-information-tab.component.html                     | 6 +++++-
 .../rule-information-tab/rule-information-tab.component.ts  | 2 +-
 5 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/ui/ui-frontend/projects/referential/src/app/rule/rule-create/rule-create.component.html b/ui/ui-frontend/projects/referential/src/app/rule/rule-create/rule-create.component.html
index 33e2cac16..51fd402e7 100644
--- a/ui/ui-frontend/projects/referential/src/app/rule/rule-create/rule-create.component.html
+++ b/ui/ui-frontend/projects/referential/src/app/rule/rule-create/rule-create.component.html
@@ -59,7 +59,11 @@
           </div>
 
           <div class="col-12 form-control">
-            <vitamui-common-textarea formControlName="ruleDescription" placeholder="Description" [rows]="1">
+            <vitamui-common-textarea formControlName="ruleDescription" required placeholder="Description" [rows]="1">
+              <ng-container *ngIf="form.get('ruleDescription')?.touched">
+                <vitamui-common-input-error *ngIf="!!form.get('ruleDescription')?.errors?.required"
+                  i18n="Required field error hint@@formErrorRequiredField">Champ requis</vitamui-common-input-error>
+              </ng-container>
             </vitamui-common-textarea>
           </div>
 
diff --git a/ui/ui-frontend/projects/referential/src/app/rule/rule-create/rule-create.component.spec.ts b/ui/ui-frontend/projects/referential/src/app/rule/rule-create/rule-create.component.spec.ts
index e0c9e7245..7225bdeec 100644
--- a/ui/ui-frontend/projects/referential/src/app/rule/rule-create/rule-create.component.spec.ts
+++ b/ui/ui-frontend/projects/referential/src/app/rule/rule-create/rule-create.component.spec.ts
@@ -184,6 +184,9 @@ describe('RuleCreateComponent', () => {
           expect(setControlValue('ruleDuration', '').invalid).toBeTruthy('empty ruleDuration invalid');
           expect(setControlValue('ruleDuration', '10').valid).toBeTruthy('ruleDuration valid');
 
+          expect(setControlValue('ruleDescription', '').invalid).toBeTruthy('empty ruleDescription invalid');
+          expect(setControlValue('ruleDescription', 'azerty').valid).toBeTruthy('ruleDescription valid');
+
           expect(setControlValue('ruleMeasurement', '').invalid).toBeTruthy('empty ruleMeasurement invalid');
           expect(setControlValue('ruleMeasurement', RULE_MEASUREMENTS[0].key).valid).toBeTruthy('ruleMeasurement valid');
         });
diff --git a/ui/ui-frontend/projects/referential/src/app/rule/rule-create/rule-create.component.ts b/ui/ui-frontend/projects/referential/src/app/rule/rule-create/rule-create.component.ts
index 6a1235dff..77b42cac8 100644
--- a/ui/ui-frontend/projects/referential/src/app/rule/rule-create/rule-create.component.ts
+++ b/ui/ui-frontend/projects/referential/src/app/rule/rule-create/rule-create.component.ts
@@ -88,7 +88,7 @@ export class RuleCreateComponent implements OnInit, OnDestroy {
       ruleId: [null, [Validators.required, this.ruleCreateValidator.ruleIdPattern()], this.ruleCreateValidator.uniqueRuleId()],
       ruleType: [null, Validators.required],
       ruleValue: [null, Validators.required],
-      ruleDescription: [null],
+      ruleDescription: [null, Validators.required],
       ruleDuration: [null, Validators.required],
       ruleMeasurement: [null, Validators.required]
     });
diff --git a/ui/ui-frontend/projects/referential/src/app/rule/rule-preview/rule-information-tab/rule-information-tab.component.html b/ui/ui-frontend/projects/referential/src/app/rule/rule-preview/rule-information-tab/rule-information-tab.component.html
index 7066b0bfa..7ba036963 100644
--- a/ui/ui-frontend/projects/referential/src/app/rule/rule-preview/rule-information-tab/rule-information-tab.component.html
+++ b/ui/ui-frontend/projects/referential/src/app/rule/rule-preview/rule-information-tab/rule-information-tab.component.html
@@ -45,7 +45,11 @@
     </div>
 
     <div class="col-12 form-control">
-      <vitamui-common-textarea formControlName="ruleDescription" placeholder="Description" [rows]="2">
+      <vitamui-common-textarea formControlName="ruleDescription" required="required" placeholder="Description" [rows]="2">
+        <ng-container *ngIf="form.get('ruleDescription')?.touched">
+          <vitamui-common-input-error *ngIf="!!form.get('ruleDescription')?.errors?.required"
+            i18n="Required field error hint@@formErrorRequiredField">Champ requis</vitamui-common-input-error>
+        </ng-container>
       </vitamui-common-textarea>
     </div>
   </div>
diff --git a/ui/ui-frontend/projects/referential/src/app/rule/rule-preview/rule-information-tab/rule-information-tab.component.ts b/ui/ui-frontend/projects/referential/src/app/rule/rule-preview/rule-information-tab/rule-information-tab.component.ts
index 18c472610..b12c5d4cd 100644
--- a/ui/ui-frontend/projects/referential/src/app/rule/rule-preview/rule-information-tab/rule-information-tab.component.ts
+++ b/ui/ui-frontend/projects/referential/src/app/rule/rule-preview/rule-information-tab/rule-information-tab.component.ts
@@ -98,7 +98,7 @@ export class RuleInformationTabComponent {
     this.form = this.formBuilder.group({
       ruleType: [null, Validators.required],
       ruleValue: [null, Validators.required],
-      ruleDescription: [null],
+      ruleDescription: [null, Validators.required],
       ruleDuration: [null, Validators.required],
       ruleMeasurement: [null, Validators.required]
     });
-- 
GitLab