Merge Dev in Staging
This commit is contained in:
commit
aa13cb5fd8
@ -99,3 +99,15 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.loader-container {
|
||||||
|
display: flex;
|
||||||
|
flex: 1;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
height: 100%;
|
||||||
|
.loader {
|
||||||
|
width: 40px;
|
||||||
|
height: 40px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -80,109 +80,124 @@ class FolderInformationClass extends BasePage<IPropsClass, IState> {
|
|||||||
.modules.pages.Folder.pages.EditCollaborators.props.path.replace("[folderUid]", this.props.selectedFolderUid);
|
.modules.pages.Folder.pages.EditCollaborators.props.path.replace("[folderUid]", this.props.selectedFolderUid);
|
||||||
return (
|
return (
|
||||||
<DefaultNotaryDashboard title={"Dossier"} isArchived={false} mobileBackText="Retour aux dossiers">
|
<DefaultNotaryDashboard title={"Dossier"} isArchived={false} mobileBackText="Retour aux dossiers">
|
||||||
<div className={classes["root"]}>
|
{!this.props.isLoading && (
|
||||||
{this.props.selectedFolder ? (
|
<div className={classes["root"]}>
|
||||||
<div className={classes["folder-informations"]}>
|
{this.props.selectedFolder ? (
|
||||||
<div className={classes["folder-header"]}>
|
<div className={classes["folder-informations"]}>
|
||||||
<div className={classes["header"]}>
|
<div className={classes["folder-header"]}>
|
||||||
<div className={classes["title"]}>
|
<div className={classes["header"]}>
|
||||||
<Typography typo={ITypo.H1Bis}>Informations du dossier</Typography>
|
<div className={classes["title"]}>
|
||||||
|
<Typography typo={ITypo.H1Bis}>Informations du dossier</Typography>
|
||||||
|
</div>
|
||||||
|
<Link href={redirectPathEditCollaborators}>
|
||||||
|
<Button variant={EButtonVariant.LINE} icon={ChevronIcon}>
|
||||||
|
Modifier les collaborateurs
|
||||||
|
</Button>
|
||||||
|
</Link>
|
||||||
</div>
|
</div>
|
||||||
<Link href={redirectPathEditCollaborators}>
|
<FolderBoxInformation
|
||||||
<Button variant={EButtonVariant.LINE} icon={ChevronIcon}>
|
folder={this.props.selectedFolder}
|
||||||
Modifier les collaborateurs
|
type={EFolderBoxInformationType.INFORMATIONS}
|
||||||
</Button>
|
|
||||||
</Link>
|
|
||||||
</div>
|
|
||||||
<FolderBoxInformation folder={this.props.selectedFolder} type={EFolderBoxInformationType.INFORMATIONS} />
|
|
||||||
<div className={classes["second-box"]}>
|
|
||||||
<FolderBoxInformation folder={this.props.selectedFolder} type={EFolderBoxInformationType.DESCRIPTION} />
|
|
||||||
</div>
|
|
||||||
<div className={classes["progress-bar"]}>
|
|
||||||
<QuantityProgressBar
|
|
||||||
title="Complétion du dossier"
|
|
||||||
total={100}
|
|
||||||
currentNumber={this.getCompletionNumber()}
|
|
||||||
/>
|
/>
|
||||||
|
<div className={classes["second-box"]}>
|
||||||
|
<FolderBoxInformation
|
||||||
|
folder={this.props.selectedFolder}
|
||||||
|
type={EFolderBoxInformationType.DESCRIPTION}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div className={classes["progress-bar"]}>
|
||||||
|
<QuantityProgressBar
|
||||||
|
title="Complétion du dossier"
|
||||||
|
total={100}
|
||||||
|
currentNumber={this.getCompletionNumber()}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
{this.doesFolderHaveCustomer() && <ClientSection folder={this.props.selectedFolder} />}
|
||||||
</div>
|
</div>
|
||||||
{this.doesFolderHaveCustomer() && <ClientSection folder={this.props.selectedFolder} />}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{!this.doesFolderHaveCustomer() && <ClientSection folder={this.props.selectedFolder} />}
|
{!this.doesFolderHaveCustomer() && <ClientSection folder={this.props.selectedFolder} />}
|
||||||
|
|
||||||
<div className={classes["button-container"]}>
|
<div className={classes["button-container"]}>
|
||||||
<Button variant={EButtonVariant.GHOST} onClick={this.openArchivedModal}>
|
<Button variant={EButtonVariant.GHOST} onClick={this.openArchivedModal}>
|
||||||
Archiver le dossier
|
Archiver le dossier
|
||||||
</Button>
|
</Button>
|
||||||
{this.everyDocumentValidated() && !this.props.isLoading && (
|
{this.everyDocumentValidated() && !this.props.isLoading && (
|
||||||
<>
|
<>
|
||||||
{this.props.isAnchored === AnchorStatus.NOT_ANCHORED && (
|
{this.props.isAnchored === AnchorStatus.NOT_ANCHORED && (
|
||||||
<Button variant={EButtonVariant.PRIMARY} onClick={this.openValidateModal}>
|
<Button variant={EButtonVariant.PRIMARY} onClick={this.openValidateModal}>
|
||||||
Ancrer le dossier
|
Ancrer le dossier
|
||||||
</Button>
|
</Button>
|
||||||
)}
|
)}
|
||||||
{this.props.isAnchored === AnchorStatus.ANCHORING && (
|
{this.props.isAnchored === AnchorStatus.ANCHORING && (
|
||||||
<Button variant={EButtonVariant.PRIMARY} disabled>
|
<Button variant={EButtonVariant.PRIMARY} disabled>
|
||||||
Ancrage en cours...
|
Ancrage en cours...
|
||||||
<Loader />
|
<Loader />
|
||||||
</Button>
|
</Button>
|
||||||
)}
|
)}
|
||||||
{this.props.isAnchored === AnchorStatus.VERIFIED_ON_CHAIN && (
|
{this.props.isAnchored === AnchorStatus.VERIFIED_ON_CHAIN && (
|
||||||
<Button
|
<Button
|
||||||
variant={EButtonVariant.PRIMARY}
|
variant={EButtonVariant.PRIMARY}
|
||||||
onClick={() => this.downloadAnchoringProof(this.props.selectedFolder?.uid)}>
|
onClick={() => this.downloadAnchoringProof(this.props.selectedFolder?.uid)}>
|
||||||
Télécharger la preuve d'ancrage
|
Télécharger la preuve d'ancrage
|
||||||
</Button>
|
</Button>
|
||||||
)}
|
)}
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
{!this.doesFolderHaveCustomer() && (
|
{!this.doesFolderHaveCustomer() && (
|
||||||
<span className={classes["delete-folder"]} onClick={this.openVerifDeleteFolder}>
|
<span className={classes["delete-folder"]} onClick={this.openVerifDeleteFolder}>
|
||||||
<Button variant={EButtonVariant.SECONDARY}>Supprimer le dossier</Button>
|
<Button variant={EButtonVariant.SECONDARY}>Supprimer le dossier</Button>
|
||||||
</span>
|
</span>
|
||||||
)}
|
)}
|
||||||
</div>
|
|
||||||
<Confirm
|
|
||||||
isOpen={this.state.isArchivedModalOpen}
|
|
||||||
onAccept={this.onArchivedModalAccepted}
|
|
||||||
onClose={this.closeArchivedModal}
|
|
||||||
closeBtn
|
|
||||||
header={"Archiver le dossier ?"}
|
|
||||||
cancelText={"Annuler"}
|
|
||||||
confirmText={"Archiver"}>
|
|
||||||
<div className={classes["modal-title"]}>
|
|
||||||
<Typography typo={ITypo.P_16}>Souhaitez-vous vraiment archiver le dossier ?</Typography>
|
|
||||||
</div>
|
</div>
|
||||||
<TextAreaField
|
<Confirm
|
||||||
name="archived_description"
|
isOpen={this.state.isArchivedModalOpen}
|
||||||
placeholder="Description"
|
onAccept={this.onArchivedModalAccepted}
|
||||||
onChange={this.onArchivedDescriptionInputChange}
|
onClose={this.closeArchivedModal}
|
||||||
/>
|
closeBtn
|
||||||
</Confirm>
|
header={"Archiver le dossier ?"}
|
||||||
<Confirm
|
cancelText={"Annuler"}
|
||||||
isOpen={this.state.isVerifDeleteModalVisible}
|
confirmText={"Archiver"}>
|
||||||
onAccept={this.deleteFolder}
|
<div className={classes["modal-title"]}>
|
||||||
onClose={this.closeVerifDeleteFolder}
|
<Typography typo={ITypo.P_16}>Souhaitez-vous vraiment archiver le dossier ?</Typography>
|
||||||
closeBtn
|
</div>
|
||||||
header={"Êtes-vous sûr de vouloir supprimer ce dossier ?"}
|
<TextAreaField
|
||||||
cancelText={"Annuler"}
|
name="archived_description"
|
||||||
confirmText={"Confirmer"}>
|
placeholder="Description"
|
||||||
<div className={classes["modal-title"]}>
|
onChange={this.onArchivedDescriptionInputChange}
|
||||||
<Typography typo={ITypo.P_16}>Cette action sera irréversible.</Typography>
|
/>
|
||||||
</div>
|
</Confirm>
|
||||||
</Confirm>
|
<Confirm
|
||||||
</div>
|
isOpen={this.state.isVerifDeleteModalVisible}
|
||||||
) : (
|
onAccept={this.deleteFolder}
|
||||||
<div className={classes["no-folder-selected"]}>
|
onClose={this.closeVerifDeleteFolder}
|
||||||
<Typography typo={ITypo.H1Bis}>Informations du dossier</Typography>
|
closeBtn
|
||||||
<div className={classes["choose-a-folder"]}>
|
header={"Êtes-vous sûr de vouloir supprimer ce dossier ?"}
|
||||||
<Typography typo={ITypo.P_18} color={ITypoColor.GREY}>
|
cancelText={"Annuler"}
|
||||||
Sélectionnez un dossier
|
confirmText={"Confirmer"}>
|
||||||
</Typography>
|
<div className={classes["modal-title"]}>
|
||||||
|
<Typography typo={ITypo.P_16}>Cette action sera irréversible.</Typography>
|
||||||
|
</div>
|
||||||
|
</Confirm>
|
||||||
</div>
|
</div>
|
||||||
|
) : (
|
||||||
|
<div className={classes["no-folder-selected"]}>
|
||||||
|
<Typography typo={ITypo.H1Bis}>Informations du dossier</Typography>
|
||||||
|
<div className={classes["choose-a-folder"]}>
|
||||||
|
<Typography typo={ITypo.P_18} color={ITypoColor.GREY}>
|
||||||
|
Sélectionnez un dossier
|
||||||
|
</Typography>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
{this.props.isLoading && (
|
||||||
|
<div className={classes["loader-container"]}>
|
||||||
|
<div className={classes["loader"]}>
|
||||||
|
<Loader />
|
||||||
</div>
|
</div>
|
||||||
)}
|
</div>
|
||||||
</div>
|
)}
|
||||||
<Confirm
|
<Confirm
|
||||||
isOpen={this.state.isPreventArchiveModalOpen}
|
isOpen={this.state.isPreventArchiveModalOpen}
|
||||||
onAccept={this.closePreventArchiveModal}
|
onAccept={this.closePreventArchiveModal}
|
||||||
@ -389,20 +404,9 @@ export default function FolderInformation(props: IProps) {
|
|||||||
let { folderUid } = router.query;
|
let { folderUid } = router.query;
|
||||||
folderUid = folderUid as string;
|
folderUid = folderUid as string;
|
||||||
|
|
||||||
const verifyAnchorStatus = useCallback(async () => {
|
|
||||||
if (!folderUid) return;
|
|
||||||
setIsLoading(true);
|
|
||||||
try {
|
|
||||||
const anchorStatus = await OfficeFolderAnchors.getInstance().get(folderUid as string);
|
|
||||||
setIsAnchored(anchorStatus.status === "VERIFIED_ON_CHAIN" ? AnchorStatus.VERIFIED_ON_CHAIN : AnchorStatus.ANCHORING);
|
|
||||||
} catch (e) {
|
|
||||||
setIsAnchored(AnchorStatus.NOT_ANCHORED);
|
|
||||||
}
|
|
||||||
setIsLoading(false);
|
|
||||||
}, [folderUid]);
|
|
||||||
|
|
||||||
const getFolder = useCallback(async () => {
|
const getFolder = useCallback(async () => {
|
||||||
if (!folderUid) return;
|
if (!folderUid) return;
|
||||||
|
setIsLoading(true);
|
||||||
const query = {
|
const query = {
|
||||||
q: {
|
q: {
|
||||||
deed: { include: { deed_type: true } },
|
deed: { include: { deed_type: true } },
|
||||||
@ -435,17 +439,23 @@ export default function FolderInformation(props: IProps) {
|
|||||||
const folder = await Folders.getInstance().getByUid(folderUid as string, query);
|
const folder = await Folders.getInstance().getByUid(folderUid as string, query);
|
||||||
if (folder) {
|
if (folder) {
|
||||||
setSelectedFolder(folder);
|
setSelectedFolder(folder);
|
||||||
}
|
|
||||||
}, [folderUid]);
|
|
||||||
|
|
||||||
useEffect(() => {
|
try {
|
||||||
verifyAnchorStatus();
|
const anchorStatus = await OfficeFolderAnchors.getInstance().get(folderUid as string);
|
||||||
getFolder();
|
setIsAnchored(anchorStatus.status === "VERIFIED_ON_CHAIN" ? AnchorStatus.VERIFIED_ON_CHAIN : AnchorStatus.ANCHORING);
|
||||||
}, [verifyAnchorStatus, getFolder]);
|
} catch (e) {
|
||||||
|
setIsAnchored(AnchorStatus.NOT_ANCHORED);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
setIsLoading(false);
|
||||||
|
}, [folderUid]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setIsLoading(true);
|
setIsLoading(true);
|
||||||
}, [folderUid]);
|
getFolder();
|
||||||
|
}, [getFolder]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<FolderInformationClass
|
<FolderInformationClass
|
||||||
{...props}
|
{...props}
|
||||||
|
@ -47,7 +47,7 @@ const MyApp = (({
|
|||||||
instance.BACK_API_HOST = backApiHost ?? "api.stg.lecoffre.smart-chain.fr";
|
instance.BACK_API_HOST = backApiHost ?? "api.stg.lecoffre.smart-chain.fr";
|
||||||
instance.BACK_API_ROOT_URL = backApiRootUrl ?? "/api";
|
instance.BACK_API_ROOT_URL = backApiRootUrl ?? "/api";
|
||||||
instance.BACK_API_VERSION = backApiVersion ?? "/v1";
|
instance.BACK_API_VERSION = backApiVersion ?? "/v1";
|
||||||
instance.FRONT_APP_HOST = frontAppHost ?? "app.stg.lecoffre.smart-chain.fr";
|
instance.FRONT_APP_HOST = frontAppHost ?? "https://app.stg.lecoffre.smart-chain.fr";
|
||||||
instance.IDNOT_BASE_URL = idNotBaseUrl ?? "https://qual-connexion.idnot.fr";
|
instance.IDNOT_BASE_URL = idNotBaseUrl ?? "https://qual-connexion.idnot.fr";
|
||||||
instance.IDNOT_AUTHORIZE_ENDPOINT = idNotAuthorizeEndpoint ?? "/IdPOAuth2/authorize/idnot_idp_v1";
|
instance.IDNOT_AUTHORIZE_ENDPOINT = idNotAuthorizeEndpoint ?? "/IdPOAuth2/authorize/idnot_idp_v1";
|
||||||
instance.IDNOT_CLIENT_ID = idNotClientId ?? "4501646203F3EF67";
|
instance.IDNOT_CLIENT_ID = idNotClientId ?? "4501646203F3EF67";
|
||||||
|
Loading…
x
Reference in New Issue
Block a user