@topconsultnpm/sdkui-react 6.22.0-dev2.50 → 6.22.0-dev2.52
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/features/documents/TMDcmtForm.js +28 -6
- package/lib/components/viewers/TMTidViewer.js +3 -3
- package/lib/helper/SDKUI_Localizator.d.ts +2 -0
- package/lib/helper/SDKUI_Localizator.js +20 -0
- package/lib/helper/TMUtils.d.ts +6 -0
- package/lib/helper/TMUtils.js +9 -1
- package/lib/hooks/useDocumentOperations.js +3 -1
- package/package.json +1 -1
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
3
3
|
import TMDcmtPreview from './TMDcmtPreview';
|
|
4
|
-
import { AccessLevelsEx, AppModules, ArchiveConstraints, ArchiveEngineByID, DcmtTypeListCacheService, DossierCacheService, LayoutCacheService, LayoutModes, MetadataDataDomains, MetadataDataTypes, MetadataFormats, ObjectClasses, ResultTypes, SDK_Globals, SDK_Localizator, SystemMIDsAsNumber, SystemTIDs, Task_States, TID_DID, UpdateEngineByID, UserListCacheService, ValidationItem, WorkflowCacheService, WorkingGroupCacheService, WorkItemMetadataNames } from '@topconsultnpm/sdk-ts';
|
|
4
|
+
import { AccessLevels, AccessLevelsEx, AppModules, ArchiveConstraints, ArchiveEngineByID, DcmtTypeDescriptor, DcmtTypeListCacheService, DcmtTypePermission, DossierCacheService, LayoutCacheService, LayoutModes, MetadataDataDomains, MetadataDataTypes, MetadataFormats, ObjectClasses, ResultTypes, SDK_Globals, SDK_Localizator, SystemMIDsAsNumber, SystemTIDs, Task_States, TID_DID, UpdateEngineByID, UserListCacheService, ValidationItem, WorkflowCacheService, WorkingGroupCacheService, WorkItemMetadataNames } from '@topconsultnpm/sdk-ts';
|
|
5
5
|
import { FormModes, SearchResultContext } from '../../../ts';
|
|
6
6
|
import { DeviceType, useDeviceType } from '../../base/TMDeviceProvider';
|
|
7
7
|
import { getWorkItemSetIDAsync, handleArchiveVisibility, searchResultToMetadataValues } from '../../../helper/queryHelper';
|
|
8
|
-
import { genUniqueId, IconShow, SDKUI_Localizator, updateMruTids, IconBoard, IconDcmtTypeSys, calcIsModified, IconMenuVertical, Globalization, getListMaxItems, getSystemMetadata, IconBoxArchiveIn, IconClear, IconUndo, SDKUI_Globals, IconPreview, isTaskMoreInfo, IconWorkflow, IconSearch, deepCompare, IconActivity, getExceptionMessage, isApprovalWorkflowView, getDcmtCicoStatus, buildWorkItemsFromWFCtrl, IconLock, getDcmtFormToolbarVisibility, taskModalSizes, IconArchiveMultipleDetailDocuments } from '../../../helper';
|
|
8
|
+
import { genUniqueId, IconShow, SDKUI_Localizator, updateMruTids, IconBoard, IconDcmtTypeSys, calcIsModified, IconMenuVertical, Globalization, getListMaxItems, getSystemMetadata, IconBoxArchiveIn, IconClear, IconUndo, SDKUI_Globals, IconPreview, isTaskMoreInfo, IconWorkflow, IconSearch, deepCompare, IconActivity, getExceptionMessage, isApprovalWorkflowView, getDcmtCicoStatus, buildWorkItemsFromWFCtrl, IconLock, getDcmtFormToolbarVisibility, taskModalSizes, IconArchiveMultipleDetailDocuments, isNotGrantedDraftsDTD } from '../../../helper';
|
|
9
9
|
import { hasDetailRelations, hasMasterRelations } from '../../../helper/dcmtsHelper';
|
|
10
10
|
import { Gutters, TMColors } from '../../../utils/theme';
|
|
11
11
|
import { StyledFormButtonsContainer, StyledLoadingContainer, StyledSpinner, StyledToolbarCardContainer } from '../../base/Styled';
|
|
@@ -336,6 +336,14 @@ const TMDcmtForm = ({ TID, DID, groupId, layoutMode = LayoutModes.Update, formMo
|
|
|
336
336
|
}
|
|
337
337
|
// Carica DTD e metadata
|
|
338
338
|
let dtd = await DcmtTypeListCacheService.GetWithNotGrantedAsync(TID, DID, getMetadataResult);
|
|
339
|
+
// Le bozze dei gruppi di lavoro vivono su un tipo documento non autorizzato e quindi privo di
|
|
340
|
+
// permessi: si concede la sola lettura del file, altrimenti non sarebbe scaricabile dal form.
|
|
341
|
+
if (isNotGrantedDraftsDTD(dtd)) {
|
|
342
|
+
const perm = new DcmtTypePermission();
|
|
343
|
+
perm.canRetrieveFile = AccessLevels.Yes;
|
|
344
|
+
// Su una copia: GetWithNotGrantedAsync restituisce l'istanza in cache, condivisa con gli altri consumer
|
|
345
|
+
dtd = Object.assign(new DcmtTypeDescriptor(), dtd, { perm });
|
|
346
|
+
}
|
|
339
347
|
setFromDTD(dtd);
|
|
340
348
|
if (layoutMode === LayoutModes.Update || (layoutMode === LayoutModes.Ark && DID)) {
|
|
341
349
|
await setMetadataList(dtd?.metadata ?? [], getMetadataResult);
|
|
@@ -1068,18 +1076,32 @@ const TMDcmtForm = ({ TID, DID, groupId, layoutMode = LayoutModes.Update, formMo
|
|
|
1068
1076
|
setUseWaitPanelLocalState(false);
|
|
1069
1077
|
}
|
|
1070
1078
|
}, [TID, connectorFileSave, onSavedAsyncCallback, onSaveRecents, onClose, DID, setMetadataList, handleReset, layoutMode, isSharedDcmt]);
|
|
1079
|
+
// Messaggio di conferma dell'archiviazione in base al vincolo del tipo documento (ArchiveConstraints).
|
|
1080
|
+
const getArchiveConfirmMessage = useCallback(() => {
|
|
1081
|
+
// Con connectorFileSave il file viene prodotto dal connettore solo alla conferma: si assume che ci sarà.
|
|
1082
|
+
const hasFile = !!connectorFileSave || !!dcmtFileRef.current;
|
|
1083
|
+
switch (fromDTDRef.current?.archiveConstraint) {
|
|
1084
|
+
// Solo metadati: il file non è previsto.
|
|
1085
|
+
case ArchiveConstraints.OnlyMetadata: return SDKUI_Localizator.ArchiveDocument_Confirm;
|
|
1086
|
+
// File obbligatorio: senza file il pulsante Archivia è disabilitato, quindi qui il file c'è.
|
|
1087
|
+
case ArchiveConstraints.ContentCompulsory: return SDKUI_Localizator.ArchiveDocument_Confirm;
|
|
1088
|
+
// Metadati e/o file: se il file manca lo segnala, come in v5.
|
|
1089
|
+
default: return hasFile ? SDKUI_Localizator.ArchiveDocument_Confirm : SDKUI_Localizator.ArchiveOnlyMetadata_Confirm;
|
|
1090
|
+
}
|
|
1091
|
+
}, [connectorFileSave]);
|
|
1071
1092
|
const handleConfirmAction = useCallback(async () => {
|
|
1093
|
+
const isUpdate = layoutMode === LayoutModes.Update;
|
|
1072
1094
|
TMMessageBoxManager.show({
|
|
1073
1095
|
parentId: isModal ? "TMDcmtFormShowConfirmForClose-" + id : undefined,
|
|
1074
1096
|
buttons: [ButtonNames.YES, ButtonNames.NO],
|
|
1075
|
-
message:
|
|
1076
|
-
onButtonClick(e) {
|
|
1097
|
+
message: isUpdate ? SDKUI_Localizator.SaveQuestion : getArchiveConfirmMessage(),
|
|
1098
|
+
onButtonClick: (e) => {
|
|
1077
1099
|
if (e !== ButtonNames.YES)
|
|
1078
1100
|
return;
|
|
1079
|
-
|
|
1101
|
+
isUpdate ? handleSave() : handleArchiveCompleted();
|
|
1080
1102
|
},
|
|
1081
1103
|
});
|
|
1082
|
-
}, [isModal, id, layoutMode, handleSave, handleArchiveCompleted]);
|
|
1104
|
+
}, [isModal, id, layoutMode, getArchiveConfirmMessage, handleSave, handleArchiveCompleted]);
|
|
1083
1105
|
// Azione secondaria del form di archiviazione: archivia il master e, subito dopo,
|
|
1084
1106
|
// apre il modale di archiviazione dei documenti di dettaglio multipli usando il master appena creato.
|
|
1085
1107
|
const handleArchiveMasterAndDetails = useCallback(async () => {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { useEffect, useState } from 'react';
|
|
3
|
-
import { getDTDDisplayNameInfo, IconDcmtType, IconDcmtTypeOnlyMetadata, IconLocked, IconView, isCreateCertificateEnabled, isPdfEditorEnabled, isSign4TopEnabled, LocalizeArchiveConstraints, LocalizeParametricFilterTypes, SDKUI_Localizator, TMImageLibrary } from '../../helper';
|
|
3
|
+
import { getDTDDisplayNameInfo, IconDcmtType, IconDcmtTypeOnlyMetadata, IconLocked, IconView, isCreateCertificateEnabled, isPdfEditorEnabled, isSign4TopEnabled, LocalizeArchiveConstraints, isNotGrantedDTD, LocalizeParametricFilterTypes, SDKUI_Localizator, TMImageLibrary } from '../../helper';
|
|
4
4
|
import { AccessLevels, AccessLevelsEx, ArchiveConstraints, DcmtTypeListCacheService, OwnershipLevels, ParametricFilterTypes, SDK_Globals, SDK_Localizator, TemplateTIDs } from '@topconsultnpm/sdk-ts';
|
|
5
5
|
import TMSpinner from '../base/TMSpinner';
|
|
6
6
|
import { StyledDivHorizontal, StyledTooltipContainer, StyledTooltipItem, StyledTooltipSeparatorItem } from '../base/Styled';
|
|
@@ -243,7 +243,7 @@ export const TMDcmtTypeIcon = ({ dtd }) => {
|
|
|
243
243
|
if (!dtd)
|
|
244
244
|
return null;
|
|
245
245
|
let icon = null;
|
|
246
|
-
if (dtd
|
|
246
|
+
if (isNotGrantedDTD(dtd))
|
|
247
247
|
icon = _jsx(IconLocked, { fontSize: 16 });
|
|
248
248
|
else if (dtd.imageID && dtd.imageID.length > 0)
|
|
249
249
|
icon = _jsx(TMImageLibrary, { imageID: dtd.imageID });
|
|
@@ -402,7 +402,7 @@ export const renderDTDTooltipContent = (dtd) => {
|
|
|
402
402
|
}
|
|
403
403
|
};
|
|
404
404
|
return (!dtd ? null
|
|
405
|
-
: _jsxs(StyledTooltipContainer, { children: [_jsx(StyledTooltipItem, { children: `${SDK_Globals.useLocalizedName ? dtd.nameLoc : dtd.name} (${dtd.isView ? 'VID' : 'TID'}: ${dtd.id}, RootTID: ${dtd.rootTID ?? 0})` }), dtd.description && _jsx(StyledTooltipItem, { children: dtd.description }), _jsx(StyledTooltipSeparatorItem, {}), dtd
|
|
405
|
+
: _jsxs(StyledTooltipContainer, { children: [_jsx(StyledTooltipItem, { children: `${SDK_Globals.useLocalizedName ? dtd.nameLoc : dtd.name} (${dtd.isView ? 'VID' : 'TID'}: ${dtd.id}, RootTID: ${dtd.rootTID ?? 0})` }), dtd.description && _jsx(StyledTooltipItem, { children: dtd.description }), _jsx(StyledTooltipSeparatorItem, {}), isNotGrantedDTD(dtd)
|
|
406
406
|
? _jsx(StyledTooltipItem, { style: { fontWeight: 600 }, children: 'Tipo documento NON autorizzato' })
|
|
407
407
|
:
|
|
408
408
|
_jsxs(_Fragment, { children: [_jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.ArchiveConstraint}: ${LocalizeArchiveConstraints(dtd.archiveConstraint)}` }), dtd.isView && dtd.parametricFilterType != ParametricFilterTypes.None && _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.ParametricFilter}: ${LocalizeParametricFilterTypes(dtd.parametricFilterType)}` }), dtd.isView && dtd.withCheckOption && _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.ViewWithCheckOption}: ${SDKUI_Localizator.Yes}` }), dtd.isLexProt && dtd.isLexProt > 0 && _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.LexProt}: ${SDKUI_Localizator.Yes}` }), dtd.isFreeSearchable && _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.Search_Free}: ${SDKUI_Localizator.Yes}` }), dtd.templateTID && _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.Template}: ${dtd.templateTID}` }), dtd.traceTID && _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.Tracing}: ${SDKUI_Localizator.Yes} - ${dtd.templateTID == TemplateTIDs.Trace_DcmtType ? SDKUI_Localizator.Destination : SDKUI_Localizator.Source} ${dtd.traceTID < 0 ? SDKUI_Localizator.Disabled : ''}` }), dtd.wfAppr && _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.WorkflowApproval}: ${SDKUI_Localizator.Yes}` }), _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.BlogCase}: ${dtd.hasBlog ? SDKUI_Localizator.Yes : SDKUI_Localizator.No}` }), _jsx(StyledTooltipItem, { children: `${SDKUI_Localizator.CheckIn}: ${dtd.cico ? SDKUI_Localizator.Yes : SDKUI_Localizator.No}` }), dtd.perm ?
|
|
@@ -61,6 +61,8 @@ export declare class SDKUI_Localizator {
|
|
|
61
61
|
static get ArchiveMultipleDetailDocuments(): "Mehrere Details archivieren" | "Archive multiple details" | "Archivar múltiples detalles" | "Archiver plusieurs détails" | "Arquivar múltiplos detalhes" | "Archivia dettagli multipli";
|
|
62
62
|
static get ArchiveMasterAndMultipleDetailDocuments(): "Master mit mehreren Details archivieren" | "Archive master with multiple details" | "Archivar maestro con múltiples detalles" | "Archiver le maître avec plusieurs détails" | "Arquivar mestre com múltiplos detalhes" | "Archivia master con dettagli multipli";
|
|
63
63
|
static get ArchiveMasterAndDetails_Confirm(): "Master archivieren und mit den Details fortfahren?" | "Archive the master and proceed with the details?" | "¿Archivar el maestro y continuar con los detalles?" | "Archiver le maître et poursuivre avec les détails ?" | "Arquivar o mestre e prosseguir com os detalhes?" | "Archiviare il master e proseguire con i dettagli?";
|
|
64
|
+
static get ArchiveDocument_Confirm(): "Möchten Sie dieses Dokument wirklich archivieren?" | "Are you sure you want to archive this document?" | "¿Está seguro de que desea archivar este documento?" | "Êtes-vous sûr de vouloir archiver ce document ?" | "Tem a certeza de que pretende arquivar este documento?" | "Sei sicuro di voler archiviare questo documento?";
|
|
65
|
+
static get ArchiveOnlyMetadata_Confirm(): "Keine Datei ausgewählt.<br>Mit einer Archivierung von nur Metadaten fortfahren?" | "No file selected.<br>Proceed with a metadata-only archiving?" | "Ningún archivo seleccionado.<br>¿Continuar con un archivado de solo metadatos?" | "Aucun fichier sélectionné.<br>Poursuivre avec un archivage de métadonnées uniquement ?" | "Nenhum ficheiro selecionado.<br>Prosseguir com um arquivamento apenas de metadados?" | "Nessun file selezionato.<br>Procedere con una archiviazione di soli metadati?";
|
|
64
66
|
static get ExitWithoutArchiving_Confirm(): "Möchten Sie wirklich beenden? Die eingegebenen Dokumente werden nicht archiviert. Fortfahren?" | "Are you sure you want to exit? The entered documents will not be archived. Continue?" | "¿Está seguro de que desea salir? Los documentos introducidos no se archivarán. ¿Continuar?" | "Êtes-vous sûr de vouloir quitter ? Les documents saisis ne seront pas archivés. Continuer ?" | "Tem a certeza de que pretende sair? Os documentos introduzidos não serão arquivados. Continuar?" | "Sei sicuro di voler uscire? I documenti inseriti non verranno archiviati. Continuare?";
|
|
65
67
|
static get Archiving(): string;
|
|
66
68
|
static get ArchivingCompletionInProgress(): string;
|
|
@@ -564,6 +564,26 @@ export class SDKUI_Localizator {
|
|
|
564
564
|
default: return "Archiviare il master e proseguire con i dettagli?";
|
|
565
565
|
}
|
|
566
566
|
}
|
|
567
|
+
static get ArchiveDocument_Confirm() {
|
|
568
|
+
switch (this._cultureID) {
|
|
569
|
+
case CultureIDs.De_DE: return "Möchten Sie dieses Dokument wirklich archivieren?";
|
|
570
|
+
case CultureIDs.En_US: return "Are you sure you want to archive this document?";
|
|
571
|
+
case CultureIDs.Es_ES: return "¿Está seguro de que desea archivar este documento?";
|
|
572
|
+
case CultureIDs.Fr_FR: return "Êtes-vous sûr de vouloir archiver ce document ?";
|
|
573
|
+
case CultureIDs.Pt_PT: return "Tem a certeza de que pretende arquivar este documento?";
|
|
574
|
+
default: return "Sei sicuro di voler archiviare questo documento?";
|
|
575
|
+
}
|
|
576
|
+
}
|
|
577
|
+
static get ArchiveOnlyMetadata_Confirm() {
|
|
578
|
+
switch (this._cultureID) {
|
|
579
|
+
case CultureIDs.De_DE: return "Keine Datei ausgewählt.<br>Mit einer Archivierung von nur Metadaten fortfahren?";
|
|
580
|
+
case CultureIDs.En_US: return "No file selected.<br>Proceed with a metadata-only archiving?";
|
|
581
|
+
case CultureIDs.Es_ES: return "Ningún archivo seleccionado.<br>¿Continuar con un archivado de solo metadatos?";
|
|
582
|
+
case CultureIDs.Fr_FR: return "Aucun fichier sélectionné.<br>Poursuivre avec un archivage de métadonnées uniquement ?";
|
|
583
|
+
case CultureIDs.Pt_PT: return "Nenhum ficheiro selecionado.<br>Prosseguir com um arquivamento apenas de metadados?";
|
|
584
|
+
default: return "Nessun file selezionato.<br>Procedere con una archiviazione di soli metadati?";
|
|
585
|
+
}
|
|
586
|
+
}
|
|
567
587
|
static get ExitWithoutArchiving_Confirm() {
|
|
568
588
|
switch (this._cultureID) {
|
|
569
589
|
case CultureIDs.De_DE: return "Möchten Sie wirklich beenden? Die eingegebenen Dokumente werden nicht archiviert. Fortfahren?";
|
package/lib/helper/TMUtils.d.ts
CHANGED
|
@@ -42,6 +42,12 @@ export declare const isCreateCertificateEnabled: (widgetsString: string) => bool
|
|
|
42
42
|
export declare const isPdfEditorEnabled: (widgetsString: string) => boolean;
|
|
43
43
|
/** Verifica se l'editor PDF è disponibile: richiede file PDF, licenza attiva e widget abilitato sul tipo documento. */
|
|
44
44
|
export declare const isPdfEditorAvailable: (fromDTD: DcmtTypeDescriptor | undefined, ext: string | undefined) => boolean;
|
|
45
|
+
/** Verifica se il tipo documento è quello delle bozze dei gruppi di lavoro. */
|
|
46
|
+
export declare const isDraftsDTD: (dtd: DcmtTypeDescriptor | undefined) => boolean;
|
|
47
|
+
/** Verifica se il tipo documento non è autorizzato per l'utente corrente. */
|
|
48
|
+
export declare const isNotGrantedDTD: (dtd: DcmtTypeDescriptor | undefined) => boolean;
|
|
49
|
+
/** Verifica se il tipo documento è quello delle bozze dei gruppi di lavoro non autorizzato, e quindi privo di permessi. */
|
|
50
|
+
export declare const isNotGrantedDraftsDTD: (dtd: DcmtTypeDescriptor | undefined) => boolean;
|
|
45
51
|
interface TabItemProps {
|
|
46
52
|
$isSelected: boolean;
|
|
47
53
|
$activeGradient?: string;
|
package/lib/helper/TMUtils.js
CHANGED
|
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import styled from "styled-components";
|
|
3
3
|
import { TMTooltip } from '../components';
|
|
4
4
|
import { IconCADossier, IconKey, IconMenuCAWorkingGroups } from './TMIcons';
|
|
5
|
-
import { AccessLevels, AppModules, DataColumnTypes, DataListCacheService, DcmtTypeListCacheService, LicenseModuleStatus, MetadataDataDomains, MetadataFormats, PdGs, SDK_Globals, SystemMIDs } from '@topconsultnpm/sdk-ts';
|
|
5
|
+
import { AccessLevels, AppModules, DataColumnTypes, DataListCacheService, DcmtTypeListCacheService, LicenseModuleStatus, MetadataDataDomains, MetadataFormats, PdGs, SDK_Globals, SystemMIDs, SystemTIDs } from '@topconsultnpm/sdk-ts';
|
|
6
6
|
import { SDKUI_Localizator } from './SDKUI_Localizator';
|
|
7
7
|
/**
|
|
8
8
|
* Estensioni di firma/marca temporale note che possono avvolgere altre estensioni.
|
|
@@ -242,6 +242,14 @@ export const isPdfEditorAvailable = (fromDTD, ext) => {
|
|
|
242
242
|
const isPdfEditorLicensed = SDK_Globals?.license?.dcmtArchiveLicenses?.[0]?.siX_60007?.status === LicenseModuleStatus.Licensed;
|
|
243
243
|
return isPdfEditorLicensed && isPdfEditorEnabled(fromDTD.widgets);
|
|
244
244
|
};
|
|
245
|
+
/** Valore di customData2 con cui il server marca i tipi documento non autorizzati per l'utente corrente. */
|
|
246
|
+
const NOT_GRANTED_DTD = 'NOTGRANTED';
|
|
247
|
+
/** Verifica se il tipo documento è quello delle bozze dei gruppi di lavoro. */
|
|
248
|
+
export const isDraftsDTD = (dtd) => dtd?.id === SystemTIDs.Drafts;
|
|
249
|
+
/** Verifica se il tipo documento non è autorizzato per l'utente corrente. */
|
|
250
|
+
export const isNotGrantedDTD = (dtd) => dtd?.customData2 === NOT_GRANTED_DTD;
|
|
251
|
+
/** Verifica se il tipo documento è quello delle bozze dei gruppi di lavoro non autorizzato, e quindi privo di permessi. */
|
|
252
|
+
export const isNotGrantedDraftsDTD = (dtd) => !!dtd && !dtd.perm && isDraftsDTD(dtd) && isNotGrantedDTD(dtd);
|
|
245
253
|
export const StyledTabItem = styled.div `
|
|
246
254
|
display: flex;
|
|
247
255
|
align-items: center;
|
|
@@ -21,7 +21,7 @@ import { useDcmtOperations } from "./useDcmtOperations";
|
|
|
21
21
|
import useFloatingBarPinnedItems from "./useFloatingBarPinnedItems";
|
|
22
22
|
import { useInputAttachmentsDialog, useInputCvtFormatDialog } from "./useInputDialog";
|
|
23
23
|
import { useRelatedDocuments } from "./useRelatedDocuments";
|
|
24
|
-
import { convertSearchResultDescriptorToFileItems, dcmtsFileCachePreview, getDcmtCicoStatus, getMoreInfoTasksForDocument, IconActivity, IconArchiveDetail, IconArchiveDoc, IconArchiveMaster, IconBatchUpdate, IconCheck, IconCheckFile, IconCheckIn, IconCircleInfo, IconCloseCircle, IconConvertFilePdf, IconCopy, IconCustom, IconDelete, IconDetailDcmts, IconDotsVerticalCircleOutline, IconDownload, IconEdit, IconExportTo, IconFileDots, IconHide, IconInfo, IconMenuCAArchive, IconMoveToFolder, IconPair, IconPin, IconPlatform, IconPreview, IconRelation, IconSearch, IconShare, IconSharedDcmt, IconShow, IconSignaturePencil, IconStar, IconSubstFile, IconUndo, IconUnpair, IconUserGroupOutline, isConvertibleToPdfExt, isPdfEditorAvailable, S4T_USER_REGISTRY_MASTER, SDKUI_Globals, SDKUI_Localizator, searchResultToMetadataValues, TMImageLibrary, IconCertificateBadge, IconArchiveMultipleDetailDocuments } from '../helper';
|
|
24
|
+
import { convertSearchResultDescriptorToFileItems, dcmtsFileCachePreview, getDcmtCicoStatus, getMoreInfoTasksForDocument, IconActivity, IconArchiveDetail, IconArchiveDoc, IconArchiveMaster, IconBatchUpdate, IconCheck, IconCheckFile, IconCheckIn, IconCircleInfo, IconCloseCircle, IconConvertFilePdf, IconCopy, IconCustom, IconDelete, IconDetailDcmts, IconDotsVerticalCircleOutline, IconDownload, IconEdit, IconExportTo, IconFileDots, IconHide, IconInfo, IconMenuCAArchive, IconMoveToFolder, IconPair, IconPin, IconPlatform, IconPreview, IconRelation, IconSearch, IconShare, IconSharedDcmt, IconShow, IconSignaturePencil, IconStar, IconSubstFile, IconUndo, IconUnpair, IconUserGroupOutline, isConvertibleToPdfExt, isPdfEditorAvailable, S4T_USER_REGISTRY_MASTER, SDKUI_Globals, SDKUI_Localizator, searchResultToMetadataValues, TMImageLibrary, IconCertificateBadge, IconArchiveMultipleDetailDocuments, isDraftsDTD } from '../helper';
|
|
25
25
|
import { isXMLFileExt } from "../helper/dcmtsHelper";
|
|
26
26
|
import TMCopyToFolderForm from "../components/features/documents/TMCopyToFolderForm";
|
|
27
27
|
import TMMergeToPdfForm from "../components/features/documents/TMMergeToPdfForm";
|
|
@@ -764,6 +764,7 @@ export const useDocumentOperations = (props) => {
|
|
|
764
764
|
id: 'cico',
|
|
765
765
|
icon: _jsx(IconFileDots, {}),
|
|
766
766
|
name: "Check in/Check out",
|
|
767
|
+
visible: !isDraftsDTD(dtd), // Non disponibile per le bozze dei gruppi di lavoro
|
|
767
768
|
disabled: dcmt === undefined || isDisabledForSingleRow(),
|
|
768
769
|
submenu: [
|
|
769
770
|
{
|
|
@@ -886,6 +887,7 @@ export const useDocumentOperations = (props) => {
|
|
|
886
887
|
name: SDKUI_Localizator.Relations,
|
|
887
888
|
operationType: 'multiRow',
|
|
888
889
|
disabled: isDisabledForMultiRow(),
|
|
890
|
+
visible: !isDraftsDTD(dtd), // Non disponibile per le bozze dei gruppi di lavoro
|
|
889
891
|
submenu: [
|
|
890
892
|
{
|
|
891
893
|
id: 'rel-pair',
|