From 13d6c74fc35867c3545359831e3970f4bb18e55b Mon Sep 17 00:00:00 2001 From: Paris Alexandre Date: Tue, 29 Aug 2023 16:20:33 +0200 Subject: [PATCH] [VAS] Story 11586: up up --- .../common/dto/IngestContractDto.java | 3 + .../IngestContractConverter.java | 4 +- .../models/ingest-contract/ingest-contract.ts | 14 + .../src/assets/shared-i18n/en.json | 38 + .../src/assets/shared-i18n/fr.json | 39 +- .../sass/material/_button-toggle-group.scss | 9 +- .../src/sass/material/_modal.scss | 2 +- .../storage-rule-search.component.html | 2 - .../storage-rule-search.component.html | 2 - .../ingest-contract-create.component.html | 740 ++++++++++-------- .../ingest-contract-create.component.scss | 85 +- .../ingest-contract-create.component.ts | 32 +- .../ingest-contract-list.component.ts | 3 +- .../projects/referential/src/sass/styles.scss | 18 +- 14 files changed, 658 insertions(+), 333 deletions(-) diff --git a/api/api-referential/referential-commons/src/main/java/fr/gouv/vitamui/referential/common/dto/IngestContractDto.java b/api/api-referential/referential-commons/src/main/java/fr/gouv/vitamui/referential/common/dto/IngestContractDto.java index f921332cbd3..ef42d478539 100644 --- a/api/api-referential/referential-commons/src/main/java/fr/gouv/vitamui/referential/common/dto/IngestContractDto.java +++ b/api/api-referential/referential-commons/src/main/java/fr/gouv/vitamui/referential/common/dto/IngestContractDto.java @@ -38,6 +38,7 @@ import com.fasterxml.jackson.annotation.JsonInclude; import fr.gouv.vitam.common.model.administration.ActivationStatus; +import fr.gouv.vitam.common.model.administration.SignaturePolicy; import fr.gouv.vitamui.commons.api.domain.IdDto; import lombok.Getter; import lombok.Setter; @@ -96,4 +97,6 @@ public class IngestContractDto extends IdDto implements Serializable { private String managementContractId; private boolean computeInheritedRulesAtIngest; + + private SignaturePolicy signaturePolicy; } diff --git a/api/api-referential/referential-internal/src/main/java/fr/gouv/vitamui/referential/internal/server/ingestcontract/IngestContractConverter.java b/api/api-referential/referential-internal/src/main/java/fr/gouv/vitamui/referential/internal/server/ingestcontract/IngestContractConverter.java index 9215ba7b17b..dd3fc951084 100644 --- a/api/api-referential/referential-internal/src/main/java/fr/gouv/vitamui/referential/internal/server/ingestcontract/IngestContractConverter.java +++ b/api/api-referential/referential-internal/src/main/java/fr/gouv/vitamui/referential/internal/server/ingestcontract/IngestContractConverter.java @@ -49,7 +49,7 @@ public class IngestContractConverter { - private static final VitamUILogger LOGGER = VitamUILoggerFactory.getInstance(IngestContractConverter.class); + private static final VitamUILogger LOGGER = VitamUILoggerFactory.getInstance(IngestContractConverter.class); public IngestContractModel convertDtoToVitam(final IngestContractDto dto) { final IngestContractModel ingestContract = VitamUIUtils.copyProperties(dto, new IngestContractModel()); @@ -65,6 +65,7 @@ public IngestContractModel convertDtoToVitam(final IngestContractDto dto) { ingestContract.setActivationdate(dto.getActivationdate()); ingestContract.setDeactivationdate(dto.getDeactivationdate()); ingestContract.setComputeInheritedRulesAtIngest(dto.isComputeInheritedRulesAtIngest()); + ingestContract.setSignaturePolicy(dto.getSignaturePolicy()); return ingestContract; } @@ -85,6 +86,7 @@ public IngestContractDto convertVitamToDto(final IngestContractModel ingestContr dto.setLastupdate(ingestContract.getLastupdate()); dto.setActivationdate(ingestContract.getActivationdate()); dto.setDeactivationdate(ingestContract.getDeactivationdate()); + dto.setSignaturePolicy(ingestContract.getSignaturePolicy()); return dto; } diff --git a/ui/ui-frontend-common/src/app/modules/models/ingest-contract/ingest-contract.ts b/ui/ui-frontend-common/src/app/modules/models/ingest-contract/ingest-contract.ts index 98f8c57a3d3..8296b4fbdac 100644 --- a/ui/ui-frontend-common/src/app/modules/models/ingest-contract/ingest-contract.ts +++ b/ui/ui-frontend-common/src/app/modules/models/ingest-contract/ingest-contract.ts @@ -52,4 +52,18 @@ export interface IngestContract extends Id { archiveProfiles: Array; managementContractId: string; computeInheritedRulesAtIngest: boolean; + signaturePolicy: SignaturePolicy; +} + +export interface SignaturePolicy { + signedDocument: SignedDocumentPolicyEnum; + needSignature: boolean; + needTimestamp: boolean; + needAdditionalProof: boolean; +} + +export enum SignedDocumentPolicyEnum { + ALLOWED = 'ALLOWED', + ONLY = 'ONLY', + FORBIDDEN = 'FORBIDDEN', } diff --git a/ui/ui-frontend-common/src/assets/shared-i18n/en.json b/ui/ui-frontend-common/src/assets/shared-i18n/en.json index dcaf1788151..04bcbdcc318 100644 --- a/ui/ui-frontend-common/src/assets/shared-i18n/en.json +++ b/ui/ui-frontend-common/src/assets/shared-i18n/en.json @@ -4407,5 +4407,43 @@ "SYMBOL": "kg" } } + }, + "INGEST_CONTRACT": { + "SIGNED_DOCUMENT_TYPE": { + "ALLOWED": "Allowed", + "ONLY": "Mandatory", + "FORBIDDEN": "Forbidden" + }, + "ELEMENT_TO_CHECK": { + "SIGNED_DOCUMENT": "Signed document", + "SIGNATURE": "Signature", + "TIMESTAMP": "Timestamp", + "ADDITIONAL_EVIDENCES": "Additional evidences" + }, + "MODAL_CREATE": { + "TITLE": "Creation of an ingest contract", + "INFORMATIONS": { + "TITLE": "Informations" + }, + "FILES_FORMAT": { + "TITLE": "Format des fichiers" + }, + "OBJECTS": { + "TITLE": "Objets" + }, + "INHERITANCE": { + "TITLE": "Héritage" + }, + "ATTACHMENT_POSITION": { + "TITLE": "Position de rattachement" + }, + "ATTACHMENT_CONTROLS": { + "TITLE": "Contrôle des rattachements" + }, + "SIGNING_POLICY": { + "TITLE": "Ingest of signed documents", + "ELEMENTS_TO_CHECK": "Systematic verification of the presence of the following elements:" + } + } } } diff --git a/ui/ui-frontend-common/src/assets/shared-i18n/fr.json b/ui/ui-frontend-common/src/assets/shared-i18n/fr.json index e4805108bba..7ce695cfeb4 100644 --- a/ui/ui-frontend-common/src/assets/shared-i18n/fr.json +++ b/ui/ui-frontend-common/src/assets/shared-i18n/fr.json @@ -3960,7 +3960,6 @@ "VERIFY_TIMESTAMP.VERIFY_TOKEN_TIMESTAMP": "Vérification de l'horodatage", "VERIFY_TIMESTAMP.WARNING": "Avertissement lors de la vérification de l'horodatage", "VERIFY_TIMESTAMP": "Vérification de l'horodatage", - "ARCHIVE_TRANSFER_LABEL": "Transfert des unités archivistiques et des groupes d'objets", "CHECK_DATAOBJECTPACKAGE.TOO_MANY_VERSION_BY_USAGE.KO": "Le transfert de plusieurs versions d'un même usage dans un même versement est interdit", "CHECK_UNIT_SCHEMA.RULE_DATE_FORMAT.KO": "Échec du calcul des dates d'échéance : la date ne peut être gérée", @@ -5320,5 +5319,43 @@ "SYMBOL": "kg" } } + }, + "INGEST_CONTRACT": { + "SIGNED_DOCUMENT_TYPE": { + "ALLOWED": "Autorisé", + "ONLY": "Obligatoire", + "FORBIDDEN": "Interdit" + }, + "ELEMENT_TO_CHECK": { + "SIGNED_DOCUMENT": "Document signé", + "SIGNATURE": "Signature", + "TIMESTAMP": "Horodatage", + "ADDITIONAL_EVIDENCES": "Preuves complémentaires" + }, + "MODAL_CREATE": { + "TITLE": "Création d'un contrat d'entrée", + "INFORMATIONS": { + "TITLE": "Informations" + }, + "FILES_FORMAT": { + "TITLE": "Format des fichiers" + }, + "OBJECTS": { + "TITLE": "Objets" + }, + "INHERITANCE": { + "TITLE": "Héritage" + }, + "ATTACHMENT_POSITION": { + "TITLE": "Position de rattachement" + }, + "ATTACHMENT_CONTROLS": { + "TITLE": "Contrôle des rattachements" + }, + "SIGNING_POLICY": { + "TITLE": "Versement de documents signés", + "ELEMENTS_TO_CHECK": "Vérification systématique de la présence des éléments suivants:" + } + } } } diff --git a/ui/ui-frontend-common/src/sass/material/_button-toggle-group.scss b/ui/ui-frontend-common/src/sass/material/_button-toggle-group.scss index d8dcb01ce30..f3e2b75ce73 100644 --- a/ui/ui-frontend-common/src/sass/material/_button-toggle-group.scss +++ b/ui/ui-frontend-common/src/sass/material/_button-toggle-group.scss @@ -28,7 +28,7 @@ &.disabled { border-color: var(--vitamui-grey); } - + .mat-button-toggle-disabled { background-color: var(--vitamui-grey-300); @@ -38,10 +38,9 @@ } .mat-button-toggle-label-content { - font-size: 14px; - line-height: 36px!important; - padding: 0 14px!important; + line-height: 22px !important; + padding: 6px 30px !important; } .mat-button-toggle-button { padding: 1px 0 0 0; @@ -92,4 +91,4 @@ } } } -} \ No newline at end of file +} diff --git a/ui/ui-frontend-common/src/sass/material/_modal.scss b/ui/ui-frontend-common/src/sass/material/_modal.scss index e71c081742a..3b62cea8e0e 100644 --- a/ui/ui-frontend-common/src/sass/material/_modal.scss +++ b/ui/ui-frontend-common/src/sass/material/_modal.scss @@ -14,7 +14,7 @@ $footer-height: 100px !default; @extend %mat-dialog-container; .header { - padding: 30px 60px 30px 60px; + padding: 30px 60px 20px 60px; } .content { diff --git a/ui/ui-frontend/projects/archive-search/src/app/archive/archive-search/archive-search-by-mgt-rules/storage-rule-search/storage-rule-search.component.html b/ui/ui-frontend/projects/archive-search/src/app/archive/archive-search/archive-search-by-mgt-rules/storage-rule-search/storage-rule-search.component.html index ae575abb364..32f0f8c9505 100644 --- a/ui/ui-frontend/projects/archive-search/src/app/archive/archive-search/archive-search-by-mgt-rules/storage-rule-search/storage-rule-search.component.html +++ b/ui/ui-frontend/projects/archive-search/src/app/archive/archive-search/archive-search-by-mgt-rules/storage-rule-search/storage-rule-search.component.html @@ -240,7 +240,6 @@ @@ -252,7 +251,6 @@ diff --git a/ui/ui-frontend/projects/collect/src/app/collect/archive-search-collect/archive-search-criteria/components/storage-rule-search/storage-rule-search.component.html b/ui/ui-frontend/projects/collect/src/app/collect/archive-search-collect/archive-search-criteria/components/storage-rule-search/storage-rule-search.component.html index 93c2dd3f607..5a6a610ac36 100644 --- a/ui/ui-frontend/projects/collect/src/app/collect/archive-search-collect/archive-search-criteria/components/storage-rule-search/storage-rule-search.component.html +++ b/ui/ui-frontend/projects/collect/src/app/collect/archive-search-collect/archive-search-criteria/components/storage-rule-search/storage-rule-search.component.html @@ -218,7 +218,6 @@ @@ -230,7 +229,6 @@ diff --git a/ui/ui-frontend/projects/referential/src/app/ingest-contract/ingest-contract-create/ingest-contract-create.component.html b/ui/ui-frontend/projects/referential/src/app/ingest-contract/ingest-contract-create/ingest-contract-create.component.html index d86f3ac2564..69e107b89b2 100644 --- a/ui/ui-frontend/projects/referential/src/app/ingest-contract/ingest-contract-create/ingest-contract-create.component.html +++ b/ui/ui-frontend/projects/referential/src/app/ingest-contract/ingest-contract-create/ingest-contract-create.component.html @@ -1,77 +1,81 @@
- +
+
-
Création d'un contrat d'entrée
-

Informations

- -
-
-
- Contrat d'entrée actif - -
-
-
-
- - - Champ requis - - Nom déjà utilisé - - - +

{{ 'INGEST_CONTRACT.MODAL_CREATE.TITLE' | translate }}

+

{{ 'INGEST_CONTRACT.MODAL_CREATE.INFORMATIONS.TITLE' | translate }}

+
+
+
+
+ Contrat d'entrée actif + +
+
+
+ + + Champ requis + + Nom déjà utilisé + + + +
-
- - - Champ requis - - Identifiant déjà utilisé - - - -
+
+ + + Champ requis + + Identifiant déjà utilisé + + + +
-
- - - - {{ 'COMMON.REQUIRED' | translate }} - - - +
+ + + + {{ 'COMMON.REQUIRED' | translate }} + + + +
- - +
+ + +
@@ -79,332 +83,452 @@

Informations

-
Création d'un contrat d'entrée
-

Informations

- -
-
-
- - - {{ profiles.name }} - -
- keyboard_arrow_up - keyboard_arrow_down -
-
+

{{ 'INGEST_CONTRACT.MODAL_CREATE.TITLE' | translate }}

+

{{ 'INGEST_CONTRACT.MODAL_CREATE.INFORMATIONS.TITLE' | translate }}

+
+
+
+
+ + + {{ profiles.name }} + +
+ keyboard_arrow_up + keyboard_arrow_down +
+
+
-
-
-
- - - {{ managementContract.name }} - - -
- keyboard_arrow_up - keyboard_arrow_down -
-
+
+
+ + + {{ managementContract.name }} + + +
+ keyboard_arrow_up + keyboard_arrow_down +
+
+
- - +
+ + +
+
-
- +
-
Création d'un contrat d'entrée
-

Format des fichiers

- -
-
-
- Tous les formats de fichiers - - info -
-
- -
-
- - {{ 'INGEST_CONTRACT.MODAL_CREATE.TITLE' | translate }} +

{{ 'INGEST_CONTRACT.MODAL_CREATE.FILES_FORMAT.TITLE' | translate }}

+
+
+
+
+ Tous les formats de fichiers + + info - {{ fileFormat.name }} - -
- keyboard_arrow_down -
- -
- info -
- -
-
- - Autoriser les formats non identifiés - - info +
-
-
-
- - -
- -
- - - - -
-
Création d'un contrat d'entrée
-

Objets

-
-
-
- Original binaire obligatoire - - info -
-
-
-
- Tous usages autorisés - -
+
+
- - {{ usage.label }} - + {{ fileFormat.name }}
keyboard_arrow_down
+ info
-
- info + +
+
+ + Autoriser les formats non identifiés + + info +
- - +
+ + +
+
-
- +
-
Création d'un contrat d'entrée
-

Héritage

+

{{ 'INGEST_CONTRACT.MODAL_CREATE.TITLE' | translate }}

+

{{ 'INGEST_CONTRACT.MODAL_CREATE.OBJECTS.TITLE' | translate }}

+
+
+
+
+ Original binaire obligatoire + + info +
+
+
+
+ Tous usages autorisés + +
+ + + + {{ usage.label }} + + +
+ keyboard_arrow_down +
+
+
+
+
+ info +
+
+
+
+
+
+ + +
+ +
+
+
-
-
-
- Calcul des héritages de règles et d'indexation des échéances - - +

{{ 'INGEST_CONTRACT.MODAL_CREATE.TITLE' | translate }}

+

{{ 'INGEST_CONTRACT.MODAL_CREATE.INHERITANCE.TITLE' | translate }}

+
+
+
+
+ Calcul des héritages de règles et d'indexation des échéances + + info + matTooltipClass="vitamui-tooltip" + >info +
- - +
+ + +
+
-
- +
-
Création d'un contrat d'entrée
-

- Position de rattachement +

{{ 'INGEST_CONTRACT.MODAL_CREATE.TITLE' | translate }}

+

{{ 'INGEST_CONTRACT.MODAL_CREATE.ATTACHMENT_POSITION.TITLE' | translate }} info -

-
- + matTooltipClass="vitamui-tooltip">info +
+
+ +
- - +
+ + +
+
-
- +
-
Création d'un contrat d'entrée
-

- Contrôle des rattachements +

{{ 'INGEST_CONTRACT.MODAL_CREATE.TITLE' | translate }}

+

{{ 'INGEST_CONTRACT.MODAL_CREATE.ATTACHMENT_CONTROLS.TITLE' | translate }} info -

-
-
-
- - - - - - - - + +
+
+
+
+ + + + + + + + +
- - +
+ + +
+
-
- +
-
Contrôle des rattachements
-

- Contrôle des rattachementsinfo -

+

{{ 'INGEST_CONTRACT.MODAL_CREATE.TITLE' | translate }}

+

{{ 'INGEST_CONTRACT.MODAL_CREATE.ATTACHMENT_CONTROLS.TITLE' | translate }} + info +

+
+
+ +
+
+
+
+ + +
+ +
+
+
-
- + + +
+

{{ 'INGEST_CONTRACT.MODAL_CREATE.TITLE' | translate }}

+

{{ 'INGEST_CONTRACT.MODAL_CREATE.SIGNING_POLICY.TITLE' | translate }}

+
+
+ + + {{ 'INGEST_CONTRACT.SIGNED_DOCUMENT_TYPE.' + signedDocumentPolicyEnum.ALLOWED | translate }} + + + {{ 'INGEST_CONTRACT.SIGNED_DOCUMENT_TYPE.' + signedDocumentPolicyEnum.ONLY | translate }} + + + {{ 'INGEST_CONTRACT.SIGNED_DOCUMENT_TYPE.' + signedDocumentPolicyEnum.FORBIDDEN | translate }} + + +
+
+

{{ 'INGEST_CONTRACT.MODAL_CREATE.SIGNING_POLICY.ELEMENTS_TO_CHECK' | translate}}

+
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+
- + +
+ -
-
diff --git a/ui/ui-frontend/projects/referential/src/app/ingest-contract/ingest-contract-create/ingest-contract-create.component.scss b/ui/ui-frontend/projects/referential/src/app/ingest-contract/ingest-contract-create/ingest-contract-create.component.scss index d5aaee91861..8c862f6da31 100644 --- a/ui/ui-frontend/projects/referential/src/app/ingest-contract/ingest-contract-create/ingest-contract-create.component.scss +++ b/ui/ui-frontend/projects/referential/src/app/ingest-contract/ingest-contract-create/ingest-contract-create.component.scss @@ -9,6 +9,7 @@ .form-group { padding-bottom: 30px; + width: 100%; } .field-tooltip { @@ -31,7 +32,6 @@ label { color: var(--vitamui-grey-900); font-size: 15px; line-height: normal; - margin-bottom: 10px; display: block; .required-marker { @@ -57,10 +57,6 @@ button.primary { margin-right: 20px; } -button.back { - margin-top: 60px; -} - button > small { display: block; font-size: 12px; @@ -71,3 +67,82 @@ button > small { color: #a5a5a5; font-size: 15px; } + +.content { + + h4 { + font-family: Mulish; + font-size: 16px; + font-style: normal; + font-weight: 400; + line-height: 24px; /* 150% */ + color: var(--vitamui-grey-600); + margin: 0; + } + + h2 { + font-family: Mulish; + font-size: 20px; + font-style: normal; + font-weight: 700; + line-height: 28px; /* 140% */ + margin: 0; + margin-bottom: 30px; + } + + .main-content { + display: flex; + flex-direction: column; + justify-content: start; + align-items: start; + margin-bottom: 15px; + + .row { + margin: 0; + } + } + + .actions { + margin-top: 25px !important; + flex-direction: column; + align-items: start; + + .line { + display: flex; + flex-direction: row; + margin-bottom: 15px; + } + + button { + margin-right: 20px; + } + } +} + +.criteria-checkbox-choice { + display: flex; + margin-bottom: 10px; + + label { + cursor: pointer; + display: flex; + align-items: center; + } + + span { + font-family: Mulish; + font-size: 14px; + font-weight: 400; + padding: 0 10px; + } + + input { + margin: 4px; + cursor: pointer; + accent-color: var(--vitamui-primary); + height: 20px; + width: 20px; + border-radius: 4px; + transition-duration: 0.3s; + } +} diff --git a/ui/ui-frontend/projects/referential/src/app/ingest-contract/ingest-contract-create/ingest-contract-create.component.ts b/ui/ui-frontend/projects/referential/src/app/ingest-contract/ingest-contract-create/ingest-contract-create.component.ts index b1dc06d0b66..653f2e47d94 100644 --- a/ui/ui-frontend/projects/referential/src/app/ingest-contract/ingest-contract-create/ingest-contract-create.component.ts +++ b/ui/ui-frontend/projects/referential/src/app/ingest-contract/ingest-contract-create/ingest-contract-create.component.ts @@ -38,11 +38,13 @@ import { HttpHeaders, HttpParams } from '@angular/common/http'; import { Component, Inject, Input, OnDestroy, OnInit } from '@angular/core'; import { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms'; import '@angular/localize/init'; -import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; +import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { MatSnackBar } from '@angular/material/snack-bar'; import { FileFormat, FilingPlanMode } from 'projects/vitamui-library/src/public-api'; import { Subscription } from 'rxjs'; -import { ConfirmDialogService, ExternalParameters, ExternalParametersService, IngestContract, Option } from 'ui-frontend-common'; +import { + ConfirmDialogService, ExternalParameters, ExternalParametersService, IngestContract, Option, SignaturePolicy, SignedDocumentPolicyEnum +} from 'ui-frontend-common'; import { ArchiveProfileApiService } from '../../core/api/archive-profile-api.service'; import { ManagementContractApiService } from '../../core/api/management-contract-api.service'; import { FileFormatService } from '../../file-format/file-format.service'; @@ -57,6 +59,9 @@ const PROGRESS_BAR_MULTIPLICATOR = 100; styleUrls: ['./ingest-contract-create.component.scss'], }) export class IngestContractCreateComponent implements OnInit, OnDestroy { + + signedDocumentPolicyEnum = SignedDocumentPolicyEnum; + form: FormGroup; stepIndex = 0; hasCustomGraphicIdentity = false; @@ -71,7 +76,7 @@ export class IngestContractCreateComponent implements OnInit, OnDestroy { // We could get the number of steps using ViewChildren(StepComponent) but this triggers a // "Expression has changed after it was checked" error so we instead manually define the value. // Make sure to update this value whenever you add or remove a step from the template. - private stepCount = 8; + stepCount = 9; private keyPressSubscription: Subscription; constructor( @@ -130,6 +135,16 @@ export class IngestContractCreateComponent implements OnInit, OnDestroy { linkParentId: [null, Validators.required], checkParentId: [new Array(), Validators.required], + /* <- step 6 -> */ + signaturePolicy: this.formBuilder.group({ + signedDocument: [SignedDocumentPolicyEnum.ALLOWED], + needSignature: [false], + needTimestamp: [false], + needAdditionalProof: [false], + }), + signedDocument: [SignedDocumentPolicyEnum.ALLOWED], + elementsToCheck: [new Array()], + /* default */ masterMandatory: [true, Validators.required], computeInheritedRulesAtIngest: [false, Validators.required], @@ -264,7 +279,18 @@ export class IngestContractCreateComponent implements OnInit, OnDestroy { ); } + selectedSignedDocumentPolicyInvalid(): boolean { + const signaturePolicy: SignaturePolicy = this.form.get('signaturePolicy').value + if (signaturePolicy.signedDocument === SignedDocumentPolicyEnum.ONLY) { + return !(signaturePolicy.needSignature || signaturePolicy.needTimestamp || signaturePolicy.needAdditionalProof); + } + if (signaturePolicy.signedDocument === SignedDocumentPolicyEnum.FORBIDDEN) { + return signaturePolicy.needSignature || signaturePolicy.needTimestamp || signaturePolicy.needAdditionalProof; + } + } + get stepProgress() { return ((this.stepIndex + 1) / this.stepCount) * PROGRESS_BAR_MULTIPLICATOR; } + } diff --git a/ui/ui-frontend/projects/referential/src/app/ingest-contract/ingest-contract-list/ingest-contract-list.component.ts b/ui/ui-frontend/projects/referential/src/app/ingest-contract/ingest-contract-list/ingest-contract-list.component.ts index 735eb723240..3b6dc2629a3 100644 --- a/ui/ui-frontend/projects/referential/src/app/ingest-contract/ingest-contract-list/ingest-contract-list.component.ts +++ b/ui/ui-frontend/projects/referential/src/app/ingest-contract/ingest-contract-list/ingest-contract-list.component.ts @@ -36,7 +36,7 @@ */ import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core'; -import { Subject, Subscription, merge } from 'rxjs'; +import { merge, Subject, Subscription } from 'rxjs'; import { debounceTime } from 'rxjs/operators'; import { DEFAULT_PAGE_SIZE, Direction, InfiniteScrollTable, IngestContract, PageRequest } from 'ui-frontend-common'; @@ -139,6 +139,7 @@ export class IngestContractListComponent extends InfiniteScrollTable