@topconsultnpm/sdkui-react 6.21.0-t1 → 6.21.0-t3
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/NewComponents/ContextMenu/TMContextMenu.js +22 -1
- package/lib/components/NewComponents/ContextMenu/styles.d.ts +4 -4
- package/lib/components/NewComponents/FloatingMenuBar/styles.d.ts +10 -10
- package/lib/components/base/Styled.d.ts +1 -1
- package/lib/components/base/TMAccordionNew.d.ts +1 -0
- package/lib/components/base/TMAccordionNew.js +6 -5
- package/lib/components/base/TMAreaManager.js +30 -3
- package/lib/components/base/TMCounterBar.d.ts +2 -2
- package/lib/components/base/TMCounterContainer.d.ts +2 -1
- package/lib/components/base/TMCustomButton.d.ts +1 -1
- package/lib/components/base/TMDataGrid.js +14 -4
- package/lib/components/base/TMDataGridExportForm.d.ts +2 -1
- package/lib/components/base/TMDataGridExportForm.js +19 -8
- package/lib/components/base/TMFileManager.d.ts +2 -1
- package/lib/components/base/TMFileManagerDataGridView.d.ts +2 -1
- package/lib/components/base/TMFileManagerDataGridView.js +4 -4
- package/lib/components/base/TMFileManagerThumbnailItems.d.ts +1 -1
- package/lib/components/base/TMFileManagerThumbnailItems.js +3 -3
- package/lib/components/base/TMFileManagerThumbnailsView.d.ts +1 -1
- package/lib/components/base/TMFileManagerUtils.d.ts +7 -0
- package/lib/components/base/TMFileManagerUtils.js +14 -1
- package/lib/components/base/TMLayout.d.ts +4 -4
- package/lib/components/base/TMList.d.ts +2 -1
- package/lib/components/base/TMListView.d.ts +1 -1
- package/lib/components/base/TMModal.d.ts +1 -0
- package/lib/components/base/TMModal.js +4 -4
- package/lib/components/base/TMPanel.d.ts +7 -4
- package/lib/components/base/TMPanel.js +58 -26
- package/lib/components/base/TMPopUp.d.ts +1 -0
- package/lib/components/base/TMPopUp.js +59 -2
- package/lib/components/base/TMSpinner.d.ts +5 -2
- package/lib/components/base/TMSpinner.js +33 -6
- package/lib/components/base/TMTab.d.ts +4 -3
- package/lib/components/base/TMTooltip.d.ts +1 -1
- package/lib/components/base/TMTreeView.d.ts +1 -1
- package/lib/components/base/TMTreeView.js +24 -17
- package/lib/components/base/TMUserAvatar.d.ts +2 -1
- package/lib/components/base/TMVilViewer.d.ts +2 -1
- package/lib/components/base/TMWaitPanel.d.ts +5 -2
- package/lib/components/base/TMWaitPanel.js +14 -9
- package/lib/components/choosers/TMDistinctValues.js +35 -21
- package/lib/components/choosers/TMDynDataListItemChooser.d.ts +1 -1
- package/lib/components/choosers/TMDynDataListItemChooser.js +6 -1
- package/lib/components/choosers/TMGroupChooser.js +1 -1
- package/lib/components/choosers/TMInvoiceRetrieveFormats.d.ts +2 -1
- package/lib/components/choosers/TMOrderRetrieveFormats.d.ts +2 -1
- package/lib/components/choosers/TMRelationChooser.d.ts +3 -3
- package/lib/components/choosers/TMUserChooser.d.ts +6 -2
- package/lib/components/choosers/TMUserChooser.js +7 -5
- package/lib/components/editors/TMDateBox.js +4 -2
- package/lib/components/editors/TMEditorStyled.d.ts +6 -6
- package/lib/components/editors/TMFormulaEditor.d.ts +4 -1
- package/lib/components/editors/TMFormulaEditor.js +125 -22
- package/lib/components/editors/TMHtmlContentDisplay.d.ts +2 -1
- package/lib/components/editors/TMHtmlEditor.d.ts +2 -1
- package/lib/components/editors/TMMetadataEditor.js +6 -2
- package/lib/components/editors/TMMetadataValues.js +25 -7
- package/lib/components/editors/TMRadioButton.js +7 -5
- package/lib/components/editors/TMTextArea.d.ts +2 -0
- package/lib/components/editors/TMTextArea.js +6 -3
- package/lib/components/editors/TMTextBox.d.ts +2 -0
- package/lib/components/editors/TMTextBox.js +3 -3
- package/lib/components/editors/TMTreeDropDown.d.ts +1 -1
- package/lib/components/features/archive/TMArchive.js +1 -1
- package/lib/components/features/assistant/TMToppyDraggableHelpCenter.d.ts +1 -1
- package/lib/components/features/blog/TMBlogCommentForm.d.ts +2 -1
- package/lib/components/features/blog/TMBlogCommentForm.js +5 -2
- package/lib/components/features/documents/TMCopyToFolderForm.d.ts +24 -0
- package/lib/components/features/documents/TMCopyToFolderForm.js +401 -0
- package/lib/components/features/documents/TMDcmtForm.d.ts +1 -0
- package/lib/components/features/documents/TMDcmtForm.js +166 -54
- package/lib/components/features/documents/TMDcmtFormActionButtons.d.ts +1 -1
- package/lib/components/features/documents/TMDcmtFormActionButtons.js +259 -60
- package/lib/components/features/documents/TMDcmtIcon.d.ts +2 -1
- package/lib/components/features/documents/TMDcmtIcon.js +1 -1
- package/lib/components/features/documents/TMDcmtPreview.d.ts +2 -1
- package/lib/components/features/documents/TMDcmtPreview.js +2 -2
- package/lib/components/features/documents/TMDcmtTasks.d.ts +3 -1
- package/lib/components/features/documents/TMDcmtTasks.js +2 -2
- package/lib/components/features/documents/TMDownloadRelationViewerSection.d.ts +23 -0
- package/lib/components/features/documents/TMDownloadRelationViewerSection.js +173 -0
- package/lib/components/features/documents/TMDragDropOverlay.d.ts +1 -1
- package/lib/components/features/documents/TMFileUploader.js +1 -1
- package/lib/components/features/documents/TMMasterDetailDcmts.d.ts +2 -0
- package/lib/components/features/documents/TMMasterDetailDcmts.js +28 -9
- package/lib/components/features/documents/TMMergeToPdfForm.d.ts +24 -0
- package/lib/components/features/documents/TMMergeToPdfForm.js +309 -0
- package/lib/components/features/documents/TMRelationViewer.d.ts +13 -0
- package/lib/components/features/documents/TMRelationViewer.js +80 -6
- package/lib/components/features/documents/copyAndMergeDcmtsShared.d.ts +58 -0
- package/lib/components/features/documents/copyAndMergeDcmtsShared.js +266 -0
- package/lib/components/features/search/SignatureParamsManager.d.ts +70 -0
- package/lib/components/features/search/SignatureParamsManager.js +145 -0
- package/lib/components/features/search/TMDcmtCheckoutInfoForm.d.ts +2 -1
- package/lib/components/features/search/TMMetadataOutputForm.d.ts +18 -0
- package/lib/components/features/search/TMMetadataOutputForm.js +225 -0
- package/lib/components/features/search/TMMetadataSorterForm.d.ts +18 -0
- package/lib/components/features/search/TMMetadataSorterForm.js +243 -0
- package/lib/components/features/search/TMSavedQuerySelector.d.ts +3 -3
- package/lib/components/features/search/TMSavedQuerySelector.js +3 -2
- package/lib/components/features/search/TMSearch.d.ts +4 -1
- package/lib/components/features/search/TMSearch.js +16 -10
- package/lib/components/features/search/TMSearchQueryEditor.js +14 -8
- package/lib/components/features/search/TMSearchQueryPanel.js +250 -59
- package/lib/components/features/search/TMSearchResult.d.ts +3 -0
- package/lib/components/features/search/TMSearchResult.js +154 -38
- package/lib/components/features/search/TMSearchResultFloatingActionButton.d.ts +1 -1
- package/lib/components/features/search/TMSignatureInfoContent.d.ts +2 -1
- package/lib/components/features/search/TMViewHistoryDcmt.d.ts +2 -1
- package/lib/components/features/search/TMViewHistoryDcmt.js +2 -3
- package/lib/components/features/search/metadataFormHelper.d.ts +16 -0
- package/lib/components/features/search/metadataFormHelper.js +77 -0
- package/lib/components/features/tasks/TMTaskForm.d.ts +1 -1
- package/lib/components/features/tasks/TMTaskFormUtils.d.ts +10 -10
- package/lib/components/features/tasks/TMTasksAgenda.d.ts +1 -1
- package/lib/components/features/tasks/TMTasksCalendar.d.ts +1 -1
- package/lib/components/features/tasks/TMTasksHeader.d.ts +1 -1
- package/lib/components/features/tasks/TMTasksPanelContent.d.ts +1 -1
- package/lib/components/features/tasks/TMTasksUtilsView.d.ts +5 -5
- package/lib/components/features/tasks/TMTasksView.d.ts +1 -1
- package/lib/components/features/wg/TMWGsCopyMoveForm.d.ts +3 -2
- package/lib/components/features/workflow/TMWorkflowPopup.d.ts +8 -7
- package/lib/components/features/workflow/TMWorkflowPopup.js +3 -0
- package/lib/components/features/workflow/diagram/queryDescriptorParser.js +3 -6
- package/lib/components/forms/Login/Chooser.d.ts +2 -2
- package/lib/components/forms/Login/TMLoginForm.d.ts +9 -0
- package/lib/components/forms/Login/TMLoginForm.js +76 -3
- package/lib/components/forms/TMChooserForm.d.ts +2 -1
- package/lib/components/forms/TMResultDialog.d.ts +1 -1
- package/lib/components/forms/TMResultDialog.js +4 -2
- package/lib/components/forms/TMSaveForm.d.ts +4 -4
- package/lib/components/grids/TMBlogAttachments.d.ts +3 -1
- package/lib/components/grids/TMBlogAttachments.js +39 -13
- package/lib/components/grids/TMBlogHeader.d.ts +1 -1
- package/lib/components/grids/TMBlogsPost.d.ts +1 -1
- package/lib/components/grids/TMBlogsPost.js +12 -4
- package/lib/components/grids/TMBlogsPostUtils.d.ts +10 -9
- package/lib/components/grids/TMBlogsPostUtils.js +14 -18
- package/lib/components/grids/TMValidationItemsList.d.ts +2 -1
- package/lib/components/index.d.ts +1 -0
- package/lib/components/index.js +1 -0
- package/lib/components/layout/panelManager/TMPanelManagerContainer.d.ts +2 -1
- package/lib/components/layout/panelManager/TMPanelManagerContext.d.ts +2 -2
- package/lib/components/layout/panelManager/TMPanelManagerToolbar.d.ts +1 -1
- package/lib/components/layout/panelManager/TMPanelManagerWithPersistenceProvider.d.ts +2 -2
- package/lib/components/layout/panelManager/TMPanelWrapper.d.ts +2 -2
- package/lib/components/pages/TMPage.d.ts +1 -1
- package/lib/components/pages/TMPage.js +3 -1
- package/lib/components/query/TMQueryEditor.js +2 -2
- package/lib/components/settings/SettingsAppearance.d.ts +2 -1
- package/lib/components/sidebar/TMAboutApp.d.ts +2 -1
- package/lib/components/sidebar/TMHeader.d.ts +3 -3
- package/lib/components/viewers/TMDataListItemViewer.d.ts +3 -2
- package/lib/components/viewers/TMDataUserIdItemViewer.d.ts +3 -2
- package/lib/components/viewers/TMMidViewer.d.ts +2 -2
- package/lib/components/viewers/TMTidViewer.d.ts +2 -2
- package/lib/components/viewers/TMTidViewer.js +1 -1
- package/lib/components/wizard/TMWizard.d.ts +1 -0
- package/lib/components/wizard/TMWizard.js +5 -3
- package/lib/helper/Enum_Localizator.js +1 -0
- package/lib/helper/GlobalStyles.js +6 -0
- package/lib/helper/MergePdfManager.d.ts +45 -0
- package/lib/helper/MergePdfManager.js +148 -0
- package/lib/helper/SDKUI_Globals.d.ts +15 -0
- package/lib/helper/SDKUI_Globals.js +16 -1
- package/lib/helper/SDKUI_Localizator.d.ts +112 -2
- package/lib/helper/SDKUI_Localizator.js +1120 -12
- package/lib/helper/TMCommandsContextMenu.d.ts +1 -1
- package/lib/helper/TMIcons.d.ts +278 -278
- package/lib/helper/TMPdfViewer.d.ts +2 -1
- package/lib/helper/TMPdfViewer.js +25 -24
- package/lib/helper/TMToppyMessage.d.ts +2 -2
- package/lib/helper/TMUtils.d.ts +25 -1
- package/lib/helper/TMUtils.js +72 -0
- package/lib/helper/ZipManager.d.ts +56 -0
- package/lib/helper/ZipManager.js +127 -0
- package/lib/helper/checkinCheckoutManager.d.ts +4 -3
- package/lib/helper/checkinCheckoutManager.js +29 -11
- package/lib/helper/helpers.d.ts +3 -2
- package/lib/helper/helpers.js +1 -0
- package/lib/helper/index.d.ts +1 -0
- package/lib/helper/index.js +1 -0
- package/lib/hooks/useCheckInOutOperations.d.ts +4 -3
- package/lib/hooks/useDataUserIdItem.js +6 -4
- package/lib/hooks/useDcmtOperations.d.ts +26 -2
- package/lib/hooks/useDcmtOperations.js +292 -38
- package/lib/hooks/useDocumentOperations.d.ts +3 -0
- package/lib/hooks/useDocumentOperations.js +254 -26
- package/lib/hooks/useForm.js +5 -2
- package/lib/hooks/useInputDialog.d.ts +2 -1
- package/lib/hooks/useRelatedDocuments.js +4 -4
- package/lib/hooks/useResizeObserver.d.ts +1 -1
- package/lib/hooks/useResizeObserver.js +16 -15
- package/lib/services/platform_services.d.ts +7 -6
- package/lib/ts/types.d.ts +3 -1
- package/lib/ts/types.js +1 -0
- package/package.json +15 -7
|
@@ -1,7 +1,7 @@
|
|
|
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, LayoutCacheService, LayoutModes, MetadataDataDomains, MetadataDataTypes, ObjectClasses, ResultTypes, SDK_Globals, SDK_Localizator, SystemMIDsAsNumber, SystemTIDs, Task_States, TID_DID, UpdateEngineByID, UserListCacheService, ValidationItem, WorkflowCacheService, WorkItemMetadataNames } from '@topconsultnpm/sdk-ts';
|
|
4
|
+
import { AccessLevelsEx, AppModules, ArchiveConstraints, ArchiveEngineByID, DcmtTypeListCacheService, DossierCacheService, LayoutCacheService, LayoutModes, MetadataDataDomains, MetadataDataTypes, 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';
|
|
@@ -57,7 +57,7 @@ export var InvocationContext;
|
|
|
57
57
|
let abortControllerLocal = new AbortController();
|
|
58
58
|
;
|
|
59
59
|
//#endregion
|
|
60
|
-
const TMDcmtForm = ({ TID, DID, groupId, layoutMode = LayoutModes.Update, formMode = FormModes.Update, invocationContext = InvocationContext.Default, showHeader = true, showBackButton = true, showDcmtFormSidebar = true, isClosable = false, isExpertMode = SDKUI_Globals.userSettings.advancedSettings.expertMode === 1, isModal = false, titleModal, widthModal = "100%", heightModal = "100%", allowNavigation = true, canNext, canPrev, count, itemIndex, onNext, onPrev, inputFile = null, inputMids = [], connectorFileSave = undefined, isSharedDcmt = false, sharedSourceTID, sharedSourceDID, allowRelations = true, allowButtonsRefs = false, openS4TViewer = false, enableDragDropOverlay = false, onClose, onSavedAsyncCallback, onSaveRecents, onWFOperationCompleted, allTasks = [], getAllTasks, deleteTaskByIdsCallback, addTaskCallback, editTaskCallback, onTaskCompleted, onTaskCreateRequest, moreInfoTasks, taskFormDialogComponent, handleNavigateToWGs, handleNavigateToDossiers, onReferenceClick, onOpenS4TViewerRequest, onOpenPdfEditorRequest, openFileUploaderPdfEditor, s4TViewerDialogComponent, onScanRequest, passToSearch, datagridUtility }) => {
|
|
60
|
+
const TMDcmtForm = ({ TID, DID, groupId, layoutMode = LayoutModes.Update, formMode = FormModes.Update, invocationContext = InvocationContext.Default, showHeader = true, showBackButton = true, showDcmtFormSidebar = true, isClosable = false, showTodoDcmtForm = false, isExpertMode = SDKUI_Globals.userSettings.advancedSettings.expertMode === 1, isModal = false, titleModal, widthModal = "100%", heightModal = "100%", allowNavigation = true, canNext, canPrev, count, itemIndex, onNext, onPrev, inputFile = null, inputMids = [], connectorFileSave = undefined, isSharedDcmt = false, sharedSourceTID, sharedSourceDID, allowRelations = true, allowButtonsRefs = false, openS4TViewer = false, enableDragDropOverlay = false, onClose, onSavedAsyncCallback, onSaveRecents, onWFOperationCompleted, allTasks = [], getAllTasks, deleteTaskByIdsCallback, addTaskCallback, editTaskCallback, onTaskCompleted, onTaskCreateRequest, moreInfoTasks, taskFormDialogComponent, handleNavigateToWGs, handleNavigateToDossiers, onReferenceClick, onOpenS4TViewerRequest, onOpenPdfEditorRequest, openFileUploaderPdfEditor, s4TViewerDialogComponent, onScanRequest, passToSearch, datagridUtility }) => {
|
|
61
61
|
const { onRefreshSearchAsyncDatagrid, onRefreshBlogDatagrid, onRefreshPreviewDatagrid } = datagridUtility || {};
|
|
62
62
|
const floatingBarContainerRef = useRef(null);
|
|
63
63
|
const [id, setID] = useState('');
|
|
@@ -91,6 +91,7 @@ const TMDcmtForm = ({ TID, DID, groupId, layoutMode = LayoutModes.Update, formMo
|
|
|
91
91
|
const formDataRef = useRef([]);
|
|
92
92
|
const fromDTDRef = useRef();
|
|
93
93
|
const dcmtFileRef = useRef(null);
|
|
94
|
+
const metadataDcmtOriginRef = useRef(null);
|
|
94
95
|
const [isOpenDistinctValues, setIsOpenDistinctValues] = useState(false);
|
|
95
96
|
const [isOpenFormulaEditor, setIsOpenFormulaEditor] = useState(false);
|
|
96
97
|
const [currentTIDHasDetailRelations, setCurrentTIDHasDetailRelations] = useState();
|
|
@@ -114,6 +115,7 @@ const TMDcmtForm = ({ TID, DID, groupId, layoutMode = LayoutModes.Update, formMo
|
|
|
114
115
|
const [refreshPreviewTrigger, setRefreshPreviewTrigger] = useState(0);
|
|
115
116
|
const [wfError, setWfError] = useState(null);
|
|
116
117
|
const [metadataDcmtOrigin, setMetadataDcmtOrigin] = useState(null);
|
|
118
|
+
const { workflowApproveData, getWorkItemsByDID } = useWorkflowApprove();
|
|
117
119
|
// Get the current device type (e.g., mobile, tablet, desktop) using a custom hook.
|
|
118
120
|
const deviceType = useDeviceType();
|
|
119
121
|
// This avoids unnecessary re-renders by only recalculating when deviceType changes.
|
|
@@ -134,7 +136,30 @@ const TMDcmtForm = ({ TID, DID, groupId, layoutMode = LayoutModes.Update, formMo
|
|
|
134
136
|
if (!did)
|
|
135
137
|
return;
|
|
136
138
|
TMSpinner.show({ description: 'Loading Metadata...' });
|
|
137
|
-
let res = getMetadataResult
|
|
139
|
+
let res = getMetadataResult;
|
|
140
|
+
if (!res) {
|
|
141
|
+
try {
|
|
142
|
+
res = await SDK_Globals.tmSession?.NewSearchEngine().GetMetadataAsync(TID, did, true);
|
|
143
|
+
}
|
|
144
|
+
catch (metadataError) {
|
|
145
|
+
// Estrai ErrorCode dal campo detail se disponibile
|
|
146
|
+
let errorCode = undefined;
|
|
147
|
+
if (metadataError?.isApiException && metadataError?.response?.detail) {
|
|
148
|
+
try {
|
|
149
|
+
const detailObj = JSON.parse(metadataError.response.detail);
|
|
150
|
+
errorCode = detailObj?.ErrorCode;
|
|
151
|
+
}
|
|
152
|
+
catch (parseError) {
|
|
153
|
+
console.log("Impossibile parsare il detail dell'eccezione:", parseError);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
// Se ErrorCode è -5, ignora silenziosamente, altrimenti mostra l'eccezione originale
|
|
157
|
+
if (errorCode !== -5) {
|
|
158
|
+
TMExceptionBoxManager.show({ exception: metadataError });
|
|
159
|
+
}
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
138
163
|
const origin = { fromName: res?.fromName, fromTID: res?.fromTID };
|
|
139
164
|
let dtd = res?.dtdResult;
|
|
140
165
|
let rows = dtd.rows ? dtd.rows[0] : [];
|
|
@@ -235,7 +260,7 @@ const TMDcmtForm = ({ TID, DID, groupId, layoutMode = LayoutModes.Update, formMo
|
|
|
235
260
|
const handleReset = useCallback(() => {
|
|
236
261
|
setDcmtFile(null);
|
|
237
262
|
}, []);
|
|
238
|
-
const
|
|
263
|
+
const loadDocumentFormDataAsync = useCallback(async () => {
|
|
239
264
|
try {
|
|
240
265
|
setFetchError(false);
|
|
241
266
|
if (!TID)
|
|
@@ -254,12 +279,34 @@ const TMDcmtForm = ({ TID, DID, groupId, layoutMode = LayoutModes.Update, formMo
|
|
|
254
279
|
layoutMode === LayoutModes.Update
|
|
255
280
|
? LayoutCacheService.GetAsync(TID, LayoutModes.None)
|
|
256
281
|
: Promise.resolve(undefined),
|
|
257
|
-
// 4.
|
|
258
|
-
(() => {
|
|
259
|
-
|
|
260
|
-
const
|
|
282
|
+
// 4. FindAllReferencesAsync - Cerca riferimenti a WorkingGroup, Dossier e Workflow se presenti nel sistema e se allowButtonsRefs è abilitato
|
|
283
|
+
(async () => {
|
|
284
|
+
// Array per raccogliere le classi di riferimento da cercare
|
|
285
|
+
const refs = [];
|
|
286
|
+
// Recupera working groups, dossier e dati di approvazione workflow in parallelo
|
|
287
|
+
const [workingGroups, dossiers] = await Promise.all([
|
|
288
|
+
WorkingGroupCacheService.GetAllAsync(),
|
|
289
|
+
DossierCacheService.GetAllAsync(),
|
|
290
|
+
]);
|
|
291
|
+
// Aggiunge WorkingGroup se esistono WG diversi da quello di sistema (id=1)
|
|
292
|
+
if (workingGroups.filter(wg => wg.id !== 1).length > 0) {
|
|
293
|
+
refs.push(ObjectClasses.WorkingGroup);
|
|
294
|
+
}
|
|
295
|
+
// Aggiunge Dossier se ne esistono
|
|
296
|
+
if (dossiers.length > 0) {
|
|
297
|
+
refs.push(ObjectClasses.Dossier);
|
|
298
|
+
}
|
|
299
|
+
// Aggiunge Workflow se ci sono dati di approvazione presenti
|
|
300
|
+
if (workflowApproveData.length > 0) {
|
|
301
|
+
refs.push(ObjectClasses.Workflow);
|
|
302
|
+
}
|
|
303
|
+
// Recupera le preferenze utente per autoFindReferences e le merge con i refs già raccolti
|
|
304
|
+
const userRefs = SDKUI_Globals?.userSettings?.searchSettings?.autoFindReferences ?? [];
|
|
305
|
+
const mergedRefs = [...new Set([...refs, ...userRefs])];
|
|
306
|
+
// Verifica se ci sono riferimenti da cercare e se i bottoni sono abilitati
|
|
307
|
+
const hasRefs = allowButtonsRefs && Array.isArray(mergedRefs) && mergedRefs.length > 0;
|
|
261
308
|
return hasRefs
|
|
262
|
-
? SDK_Globals.tmSession?.NewSearchEngine().FindAllReferencesAsync(TID, DID,
|
|
309
|
+
? SDK_Globals.tmSession?.NewSearchEngine().FindAllReferencesAsync(TID, DID, mergedRefs) ?? Promise.resolve(undefined)
|
|
263
310
|
: Promise.resolve(undefined);
|
|
264
311
|
})()
|
|
265
312
|
];
|
|
@@ -284,7 +331,7 @@ const TMDcmtForm = ({ TID, DID, groupId, layoutMode = LayoutModes.Update, formMo
|
|
|
284
331
|
}
|
|
285
332
|
else {
|
|
286
333
|
const renderedMetadata = dtd?.metadata?.filter((metadata) => handleArchiveVisibility(metadata)) ?? [];
|
|
287
|
-
const metadataList = searchResultToMetadataValues(dtd?.id, undefined, [], [], renderedMetadata, layoutMode, isReadOnlyOriginCallback(
|
|
334
|
+
const metadataList = searchResultToMetadataValues(dtd?.id, undefined, [], [], renderedMetadata, layoutMode, isReadOnlyOriginCallback(metadataDcmtOriginRef.current?.fromTID));
|
|
288
335
|
setFormDataOrig(structuredClone(metadataList));
|
|
289
336
|
setFormData(structuredClone(metadataList));
|
|
290
337
|
formDataOrigRef.current = structuredClone(metadataList);
|
|
@@ -299,7 +346,7 @@ const TMDcmtForm = ({ TID, DID, groupId, layoutMode = LayoutModes.Update, formMo
|
|
|
299
346
|
setIsInitialLoading(false);
|
|
300
347
|
setIsNavigating(false);
|
|
301
348
|
}
|
|
302
|
-
}, [TID, DID, layoutMode, inputFile, setMetadataList, handleReset, allowButtonsRefs, isReadOnlyOriginCallback
|
|
349
|
+
}, [TID, DID, layoutMode, inputFile, setMetadataList, handleReset, allowButtonsRefs, isReadOnlyOriginCallback]);
|
|
303
350
|
const currentSearchResults = useMemo(() => {
|
|
304
351
|
if (!formData || formData.length === 0 || !TID || !DID)
|
|
305
352
|
return [];
|
|
@@ -342,8 +389,8 @@ const TMDcmtForm = ({ TID, DID, groupId, layoutMode = LayoutModes.Update, formMo
|
|
|
342
389
|
context: SearchResultContext.DCMT_FORM,
|
|
343
390
|
documentData: {
|
|
344
391
|
dtd: fromDTD,
|
|
345
|
-
selectedItems: currentDcmt ? [{ TID: currentDcmt.tid, DID: currentDcmt.did, FILEEXT: currentDcmt.fileExt, rowIndex: 0 }] : [],
|
|
346
|
-
focusedItem: currentDcmt ? { TID: currentDcmt.tid, DID: currentDcmt.did, FILEEXT: currentDcmt.fileExt, rowIndex: 0 } : undefined,
|
|
392
|
+
selectedItems: currentDcmt ? [{ TID: currentDcmt.tid, DID: currentDcmt.did, FILEEXT: currentDcmt.fileExt, ISSIGNED: currentDcmt.isSigned ?? 0, rowIndex: 0 }] : [],
|
|
393
|
+
focusedItem: currentDcmt ? { TID: currentDcmt.tid, DID: currentDcmt.did, FILEEXT: currentDcmt.fileExt, ISSIGNED: currentDcmt.isSigned ?? 0, rowIndex: 0 } : undefined,
|
|
347
394
|
searchResult: currentSearchResults ? currentSearchResults[0] : undefined,
|
|
348
395
|
currentSearchResults,
|
|
349
396
|
currentMetadataValues: formData,
|
|
@@ -385,7 +432,7 @@ const TMDcmtForm = ({ TID, DID, groupId, layoutMode = LayoutModes.Update, formMo
|
|
|
385
432
|
},
|
|
386
433
|
callbacks: {
|
|
387
434
|
// Refresh operations (data consistency)
|
|
388
|
-
onRefreshSearchAsync,
|
|
435
|
+
onRefreshSearchAsync: loadDocumentFormDataAsync,
|
|
389
436
|
onSavedAsyncCallback,
|
|
390
437
|
// Workflow operations
|
|
391
438
|
onWFOperationCompleted,
|
|
@@ -413,7 +460,6 @@ const TMDcmtForm = ({ TID, DID, groupId, layoutMode = LayoutModes.Update, formMo
|
|
|
413
460
|
if (!allowButtonsRefs)
|
|
414
461
|
setDcmtReferences(undefined);
|
|
415
462
|
}, [allowButtonsRefs]);
|
|
416
|
-
const { workflowApproveData, getWorkItemsByDID } = useWorkflowApprove();
|
|
417
463
|
const fetchErrorShownRef = useRef(false);
|
|
418
464
|
useEffect(() => {
|
|
419
465
|
if (!TID)
|
|
@@ -455,6 +501,9 @@ const TMDcmtForm = ({ TID, DID, groupId, layoutMode = LayoutModes.Update, formMo
|
|
|
455
501
|
useEffect(() => {
|
|
456
502
|
dcmtFileRef.current = dcmtFile;
|
|
457
503
|
}, [dcmtFile]);
|
|
504
|
+
useEffect(() => {
|
|
505
|
+
metadataDcmtOriginRef.current = metadataDcmtOrigin;
|
|
506
|
+
}, [metadataDcmtOrigin]);
|
|
458
507
|
useEffect(() => {
|
|
459
508
|
if (!inputFile || inputFile === null)
|
|
460
509
|
return;
|
|
@@ -467,12 +516,12 @@ const TMDcmtForm = ({ TID, DID, groupId, layoutMode = LayoutModes.Update, formMo
|
|
|
467
516
|
// Distinguish between initial load and navigation
|
|
468
517
|
if (isInitialLoading) {
|
|
469
518
|
// First load - keep isInitialLoading true
|
|
470
|
-
await
|
|
519
|
+
await loadDocumentFormDataAsync();
|
|
471
520
|
}
|
|
472
521
|
else {
|
|
473
522
|
// Navigation - use isNavigating instead
|
|
474
523
|
setIsNavigating(true);
|
|
475
|
-
await
|
|
524
|
+
await loadDocumentFormDataAsync();
|
|
476
525
|
}
|
|
477
526
|
}
|
|
478
527
|
catch (e) {
|
|
@@ -486,7 +535,7 @@ const TMDcmtForm = ({ TID, DID, groupId, layoutMode = LayoutModes.Update, formMo
|
|
|
486
535
|
}
|
|
487
536
|
};
|
|
488
537
|
run();
|
|
489
|
-
}, [TID, DID,
|
|
538
|
+
}, [TID, DID, loadDocumentFormDataAsync]);
|
|
490
539
|
useEffect(() => {
|
|
491
540
|
if (formData.length > 0) {
|
|
492
541
|
setValidationItems(validateMetadataList(formData));
|
|
@@ -495,14 +544,16 @@ const TMDcmtForm = ({ TID, DID, groupId, layoutMode = LayoutModes.Update, formMo
|
|
|
495
544
|
did: formData.find(o => o.mid == SystemMIDsAsNumber.DID)?.value,
|
|
496
545
|
fileCount: formData.find(o => o.mid == SystemMIDsAsNumber.FileCount)?.value,
|
|
497
546
|
fileSize: formData.find(o => o.mid == SystemMIDsAsNumber.FileSize)?.value,
|
|
498
|
-
fileExt: formData.find(o => o.mid == SystemMIDsAsNumber.FileExt)?.value
|
|
547
|
+
fileExt: formData.find(o => o.mid == SystemMIDsAsNumber.FileExt)?.value,
|
|
548
|
+
isSigned: formData.find(o => o.mid == SystemMIDsAsNumber.IsSigned)?.value?.toString() === '1' ? 1 : 0,
|
|
499
549
|
};
|
|
500
550
|
if (!currentDcmt ||
|
|
501
551
|
currentDcmt.tid !== newDcmt.tid ||
|
|
502
552
|
currentDcmt.did !== newDcmt.did ||
|
|
503
553
|
currentDcmt.fileExt !== newDcmt.fileExt ||
|
|
504
554
|
currentDcmt.fileSize !== newDcmt.fileSize ||
|
|
505
|
-
currentDcmt.fileCount !== newDcmt.fileCount
|
|
555
|
+
currentDcmt.fileCount !== newDcmt.fileCount ||
|
|
556
|
+
currentDcmt.isSigned !== newDcmt.isSigned) {
|
|
506
557
|
setCurrentDcmt(newDcmt);
|
|
507
558
|
}
|
|
508
559
|
}
|
|
@@ -751,7 +802,7 @@ const TMDcmtForm = ({ TID, DID, groupId, layoutMode = LayoutModes.Update, formMo
|
|
|
751
802
|
// Verifica che ci siano riferimenti renderizzabili (solo Dossier o WorkingGroup)
|
|
752
803
|
return dcmtReferences.some(ref => ref.objClass === ObjectClasses.Dossier || ref.objClass === ObjectClasses.WorkingGroup);
|
|
753
804
|
}, [allowButtonsRefs, layoutMode, dcmtReferences, isOpenDetails, isOpenMaster]);
|
|
754
|
-
const isToppyVisible = useMemo(() => Boolean((showToppyForApprove || showToppyForCompleteMoreInfo || showToppyForReferences) && !openS4TViewer), [showToppyForApprove, showToppyForCompleteMoreInfo, showToppyForReferences, openS4TViewer]);
|
|
805
|
+
const isToppyVisible = useMemo(() => Boolean((showToppyForApprove || showToppyForCompleteMoreInfo || showToppyForReferences) && !openS4TViewer && !showTodoDcmtForm), [showToppyForApprove, showToppyForCompleteMoreInfo, showToppyForReferences, openS4TViewer, showTodoDcmtForm]);
|
|
755
806
|
const isModified = useMemo(() => calcIsModified(formData, formDataOrig), [formData, formDataOrig]);
|
|
756
807
|
const formToolbar = useMemo(() => _jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: '10px' }, children: [allowNavigation && canPrev != undefined && _jsx("p", { style: { textAlign: 'center', padding: '1px 4px', display: 'flex' }, children: `${itemIndex}/${count}` }), allowNavigation && canPrev != undefined && _jsx(TMSaveFormButtonPrevious, { btnStyle: 'icon', iconColor: 'white', isModified: isModified, formMode: formMode, canPrev: canPrev, onPrev: onPrev }), allowNavigation && canNext != undefined && _jsx(TMSaveFormButtonNext, { btnStyle: 'icon', iconColor: 'white', isModified: isModified, formMode: formMode, canNext: canNext, onNext: onNext }), layoutMode === LayoutModes.Update &&
|
|
757
808
|
_jsx(ContextMenu, { items: operationItems, trigger: "left", children: _jsx(IconMenuVertical, { color: 'white', cursor: 'pointer' }) }), layoutMode === LayoutModes.Ark &&
|
|
@@ -820,7 +871,7 @@ const TMDcmtForm = ({ TID, DID, groupId, layoutMode = LayoutModes.Update, formMo
|
|
|
820
871
|
const handleArchiveCompleted = useCallback(async () => {
|
|
821
872
|
let firstBlock = true;
|
|
822
873
|
let maxFileSize = 0;
|
|
823
|
-
let operationTitle =
|
|
874
|
+
let operationTitle = SDKUI_Localizator.Archiving;
|
|
824
875
|
setUseWaitPanelLocalState(true);
|
|
825
876
|
setShowWaitPanelLocal(true);
|
|
826
877
|
setShowPrimaryLocal(false);
|
|
@@ -869,11 +920,16 @@ const TMDcmtForm = ({ TID, DID, groupId, layoutMode = LayoutModes.Update, formMo
|
|
|
869
920
|
firstBlock = false;
|
|
870
921
|
}
|
|
871
922
|
setWaitPanelValueSecondaryLocal(pd.ProgressBarValue);
|
|
872
|
-
setWaitPanelTextSecondaryLocal(
|
|
923
|
+
setWaitPanelTextSecondaryLocal(`${SDKUI_Localizator.Archiving}... ${Globalization.getNumberDisplayValue(pd.ProgressBarValue, true)} / ${Globalization.getNumberDisplayValue(maxFileSize, true)}`);
|
|
873
924
|
if (pd.ProgressBarValue === pd.ProgressBarMaximum) {
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
925
|
+
// Cambia subito il titolo alla fase 2 quando l'upload termina
|
|
926
|
+
// e mostra la progress bar primaria con valore iniziale 20%
|
|
927
|
+
setWaitPanelTitleLocal(SDKUI_Localizator.ArchivingCompletionInProgress);
|
|
928
|
+
setShowSecondaryLocal(false);
|
|
929
|
+
setShowPrimaryLocal(true);
|
|
930
|
+
setWaitPanelMaxValuePrimaryLocal(3);
|
|
931
|
+
setWaitPanelValuePrimaryLocal(0.6); // 20% di 3
|
|
932
|
+
setWaitPanelTextPrimaryLocal(SDKUI_Localizator.ArchivingCompletionInProgress);
|
|
877
933
|
firstBlock = true;
|
|
878
934
|
}
|
|
879
935
|
});
|
|
@@ -882,11 +938,22 @@ const TMDcmtForm = ({ TID, DID, groupId, layoutMode = LayoutModes.Update, formMo
|
|
|
882
938
|
const savedFormData = structuredClone(formDataRef.current);
|
|
883
939
|
setFormDataOrig(savedFormData);
|
|
884
940
|
formDataOrigRef.current = savedFormData;
|
|
941
|
+
// Fase 2: Completamento archiviazione (la progress bar primaria è già visibile dal callback)
|
|
942
|
+
// Imposta il titolo anche qui per sicurezza, nel caso il callback non venga eseguito
|
|
943
|
+
setWaitPanelTitleLocal(SDKUI_Localizator.ArchivingCompletionInProgress);
|
|
944
|
+
// Step 1/3: Aggiornamento griglia di ricerca
|
|
945
|
+
setWaitPanelValuePrimaryLocal(1);
|
|
885
946
|
await onRefreshSearchAsyncDatagrid?.();
|
|
947
|
+
// Step 2/3: Callback di salvataggio
|
|
948
|
+
setWaitPanelValuePrimaryLocal(2);
|
|
886
949
|
await onSavedAsyncCallback?.(ae.TID, newDID);
|
|
950
|
+
// Step 3/3: Aggiornamento lista metadati
|
|
951
|
+
setWaitPanelValuePrimaryLocal(3);
|
|
887
952
|
// Usa fromDTDRef.current invece di fromDTD per evitare stale closure,
|
|
888
953
|
// garantendo di avere il descrittore del tipo documento corrente.
|
|
889
954
|
await setMetadataList(fromDTDRef.current?.metadata ?? [], undefined, true, newDID);
|
|
955
|
+
// Breve pausa per mostrare il completamento al 100%
|
|
956
|
+
await new Promise(resolve => setTimeout(resolve, 200));
|
|
890
957
|
handleReset();
|
|
891
958
|
let newMruTIDS = updateMruTids(SDKUI_Globals.userSettings.archivingSettings.mruTIDs, TID);
|
|
892
959
|
SDKUI_Globals.userSettings.archivingSettings.mruTIDs = newMruTIDS;
|
|
@@ -900,12 +967,6 @@ const TMDcmtForm = ({ TID, DID, groupId, layoutMode = LayoutModes.Update, formMo
|
|
|
900
967
|
TMExceptionBoxManager.show({ exception: err });
|
|
901
968
|
}
|
|
902
969
|
finally {
|
|
903
|
-
setWaitPanelTextPrimaryLocal('');
|
|
904
|
-
setWaitPanelMaxValuePrimaryLocal(0);
|
|
905
|
-
setWaitPanelValuePrimaryLocal(0);
|
|
906
|
-
setWaitPanelTextSecondaryLocal('');
|
|
907
|
-
setWaitPanelMaxValueSecondaryLocal(0);
|
|
908
|
-
setWaitPanelValueSecondaryLocal(0);
|
|
909
970
|
setShowWaitPanelLocal(false);
|
|
910
971
|
setUseWaitPanelLocalState(false);
|
|
911
972
|
}
|
|
@@ -992,6 +1053,21 @@ const TMDcmtForm = ({ TID, DID, groupId, layoutMode = LayoutModes.Update, formMo
|
|
|
992
1053
|
fd.tid = TID;
|
|
993
1054
|
return fd;
|
|
994
1055
|
}, [focusedMetadataValue?.value, focusedMetadataValue?.mid, TID]);
|
|
1056
|
+
/**
|
|
1057
|
+
* Restituisce l'handler onBack per i pannelli, evitando duplicazione di codice.
|
|
1058
|
+
* @param isMainPanel - Se true, è il pannello principale (tmDcmtForm)
|
|
1059
|
+
*/
|
|
1060
|
+
const getOnBackHandler = (isMainPanel = false) => {
|
|
1061
|
+
// Se showBackButton è false, non mostrare mai il back
|
|
1062
|
+
if (showBackButton === false)
|
|
1063
|
+
return undefined;
|
|
1064
|
+
// Mobile: mostra back su tutti i pannelli (se showBackButton è definito e non è closable)
|
|
1065
|
+
if (isMobile) {
|
|
1066
|
+
return (showBackButton !== undefined && !isClosable) ? handleClose : undefined;
|
|
1067
|
+
}
|
|
1068
|
+
// Desktop: mostra back solo sul pannello principale (se showBackButton è definito e non è closable)
|
|
1069
|
+
return (showBackButton !== undefined && isMainPanel && !isClosable) ? handleClose : undefined;
|
|
1070
|
+
};
|
|
995
1071
|
// Determina se showAll deve essere automaticamente true
|
|
996
1072
|
// Best practice: usa useMemo per calcolare valori derivati invece di useEffect con setState
|
|
997
1073
|
const shouldShowAll = useMemo(() => {
|
|
@@ -1076,7 +1152,7 @@ const TMDcmtForm = ({ TID, DID, groupId, layoutMode = LayoutModes.Update, formMo
|
|
|
1076
1152
|
]);
|
|
1077
1153
|
const tmBlog = useMemo(() => _jsx(TMDcmtBlog, { tid: TID, did: DID, fetchBlogDataTrigger: refreshBlogTrigger, onRefreshBlogDatagrid: onRefreshBlogDatagrid, allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers }), [TID, DID, allTasks, refreshBlogTrigger, handleNavigateToWGs, handleNavigateToDossiers]);
|
|
1078
1154
|
const tmSysMetadata = useMemo(() => _jsx(TMMetadataValues, { layoutMode: layoutMode, openChooserBySingleClick: !isOpenDistinctValues, TID: TID, isReadOnly: true, deviceType: deviceType, metadataValues: formData.filter(o => (o.mid != undefined && o.mid <= 100)), metadataValuesOrig: formData.filter(o => (o.mid != undefined && o.mid <= 100)), validationItems: [], inputMids: inputMids }), [TID, layoutMode, formData, deviceType, inputMids]);
|
|
1079
|
-
const tmDcmtPreview = useMemo(() => _jsx(TMDcmtPreviewWrapper, { refreshPreviewTrigger: refreshPreviewTrigger, fromDTD: fromDTD, currentDcmt: currentDcmt, dcmtFile: dcmtFile ?? inputFile, deviceType: deviceType, layoutMode: layoutMode, onFileUpload: (file) => { setDcmtFile(file); }, openFileUploaderPdfEditor: openFileUploaderPdfEditor, enableDragDropOverlay: enableDragDropOverlay, onScanRequest: onScanRequest }), [currentDcmt, dcmtFile, deviceType, fromDTD, layoutMode, inputFile, enableDragDropOverlay, setDcmtFile, onScanRequest, openFileUploaderPdfEditor, refreshPreviewTrigger]);
|
|
1155
|
+
const tmDcmtPreview = useMemo(() => _jsx(TMDcmtPreviewWrapper, { refreshPreviewTrigger: refreshPreviewTrigger, fromDTD: fromDTD, currentDcmt: currentDcmt, dcmtFile: dcmtFile ?? inputFile, deviceType: deviceType, onBack: getOnBackHandler(), layoutMode: layoutMode, onFileUpload: (file) => { setDcmtFile(file); }, openFileUploaderPdfEditor: openFileUploaderPdfEditor, enableDragDropOverlay: enableDragDropOverlay, onScanRequest: onScanRequest }), [currentDcmt, dcmtFile, deviceType, fromDTD, layoutMode, inputFile, enableDragDropOverlay, setDcmtFile, onScanRequest, openFileUploaderPdfEditor, refreshPreviewTrigger]);
|
|
1080
1156
|
const tmWF = useMemo(() => {
|
|
1081
1157
|
if (isWFDataLoading) {
|
|
1082
1158
|
return (_jsx("div", { style: {
|
|
@@ -1147,7 +1223,7 @@ const TMDcmtForm = ({ TID, DID, groupId, layoutMode = LayoutModes.Update, formMo
|
|
|
1147
1223
|
did: Number(DID),
|
|
1148
1224
|
name: fromDTD?.nameLoc ?? SDKUI_Localizator.Widget_Activities,
|
|
1149
1225
|
},
|
|
1150
|
-
}, allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback, afterTaskSaved: afterTaskSaved, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers }));
|
|
1226
|
+
}, allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback, afterTaskSaved: afterTaskSaved, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers, onBack: getOnBackHandler() }));
|
|
1151
1227
|
}, [allTasks, TID, DID, fromDTD]);
|
|
1152
1228
|
const normalizedTID = TID !== undefined ? Number(TID) : undefined;
|
|
1153
1229
|
const defaultPanelDimensions = {
|
|
@@ -1206,7 +1282,7 @@ const TMDcmtForm = ({ TID, DID, groupId, layoutMode = LayoutModes.Update, formMo
|
|
|
1206
1282
|
showHeader: showHeader,
|
|
1207
1283
|
title: titleDcmtFormPanel,
|
|
1208
1284
|
allowMaximize: !isMobile,
|
|
1209
|
-
onBack:
|
|
1285
|
+
onBack: getOnBackHandler(true),
|
|
1210
1286
|
onClose: isClosable ? () => { } : undefined,
|
|
1211
1287
|
toolbar: allowNavigation ? formToolbar : _jsx(_Fragment, {})
|
|
1212
1288
|
},
|
|
@@ -1221,7 +1297,14 @@ const TMDcmtForm = ({ TID, DID, groupId, layoutMode = LayoutModes.Update, formMo
|
|
|
1221
1297
|
{
|
|
1222
1298
|
id: 'tmBlog',
|
|
1223
1299
|
name: SDKUI_Localizator.BlogCase,
|
|
1224
|
-
contentOptions: {
|
|
1300
|
+
contentOptions: {
|
|
1301
|
+
component: tmBlog,
|
|
1302
|
+
panelContainer: {
|
|
1303
|
+
title: SDKUI_Localizator.BlogCase,
|
|
1304
|
+
allowMaximize: !isMobile,
|
|
1305
|
+
onBack: getOnBackHandler(),
|
|
1306
|
+
}
|
|
1307
|
+
},
|
|
1225
1308
|
toolbarOptions: {
|
|
1226
1309
|
icon: _jsx(IconBoard, { fontSize: 24 }),
|
|
1227
1310
|
visible: getDcmtFormToolbarVisibility(SDK_Globals.tmSession?.SessionDescr?.appModuleID ?? AppModules.SURFER).tmBlog,
|
|
@@ -1233,7 +1316,14 @@ const TMDcmtForm = ({ TID, DID, groupId, layoutMode = LayoutModes.Update, formMo
|
|
|
1233
1316
|
{
|
|
1234
1317
|
id: 'tmSysMetadata',
|
|
1235
1318
|
name: SDKUI_Localizator.MetadataSystem,
|
|
1236
|
-
contentOptions: {
|
|
1319
|
+
contentOptions: {
|
|
1320
|
+
component: tmSysMetadata,
|
|
1321
|
+
panelContainer: {
|
|
1322
|
+
title: SDKUI_Localizator.MetadataSystem,
|
|
1323
|
+
allowMaximize: !isMobile,
|
|
1324
|
+
onBack: getOnBackHandler(),
|
|
1325
|
+
}
|
|
1326
|
+
},
|
|
1237
1327
|
toolbarOptions: { icon: _jsx(IconDcmtTypeSys, { fontSize: 24 }), visible: getDcmtFormToolbarVisibility(SDK_Globals.tmSession?.SessionDescr?.appModuleID ?? AppModules.SURFER).tmSysMetadata, disabled: isSysMetadataDisabled, orderNumber: 3, isActive: allInitialPanelVisibility['tmSysMetadata'] }
|
|
1238
1328
|
},
|
|
1239
1329
|
{
|
|
@@ -1254,7 +1344,8 @@ const TMDcmtForm = ({ TID, DID, groupId, layoutMode = LayoutModes.Update, formMo
|
|
|
1254
1344
|
contentOptions: {
|
|
1255
1345
|
component: tmWF,
|
|
1256
1346
|
panelContainer: {
|
|
1257
|
-
title: "Workflow", allowMaximize: !isMobile
|
|
1347
|
+
title: "Workflow", allowMaximize: !isMobile,
|
|
1348
|
+
onBack: getOnBackHandler(),
|
|
1258
1349
|
}
|
|
1259
1350
|
},
|
|
1260
1351
|
toolbarOptions: {
|
|
@@ -1513,38 +1604,59 @@ const validateMaxLength = (mvd, value, validationItems) => {
|
|
|
1513
1604
|
//#endregion Validation
|
|
1514
1605
|
// Synchronizes panel visibility and toolbar button disabled states when panels become disabled
|
|
1515
1606
|
const PanelDisabledStateHandler = ({ isWFDisabled, isSysMetadataDisabled, isBoardDisabled, isDcmtTasksDisabled, isPreviewDisabled }) => {
|
|
1516
|
-
const { setPanelVisibilityById, setToolbarButtonDisabled
|
|
1607
|
+
const { setPanelVisibilityById, setToolbarButtonDisabled } = useTMPanelManagerContext();
|
|
1517
1608
|
useEffect(() => {
|
|
1518
|
-
|
|
1519
|
-
|
|
1520
|
-
setToolbarButtonDisabled('tmBlog', isBoardDisabled);
|
|
1521
|
-
setToolbarButtonDisabled('tmWF', isWFDisabled);
|
|
1522
|
-
setToolbarButtonDisabled('tmDcmtTasks', isDcmtTasksDisabled);
|
|
1523
|
-
setToolbarButtonDisabled('tmDcmtPreview', isPreviewDisabled);
|
|
1524
|
-
// Chiude il pannello solo se è attualmente visibile e deve essere disabilitato
|
|
1525
|
-
if (isSysMetadataDisabled && panelVisibility['tmSysMetadata']) {
|
|
1609
|
+
if (isSysMetadataDisabled) {
|
|
1610
|
+
setToolbarButtonDisabled('tmSysMetadata', true);
|
|
1526
1611
|
setPanelVisibilityById('tmSysMetadata', false);
|
|
1527
1612
|
}
|
|
1528
|
-
|
|
1613
|
+
else {
|
|
1614
|
+
setToolbarButtonDisabled('tmSysMetadata', false);
|
|
1615
|
+
}
|
|
1616
|
+
}, [isSysMetadataDisabled]);
|
|
1617
|
+
useEffect(() => {
|
|
1618
|
+
if (isBoardDisabled) {
|
|
1619
|
+
setToolbarButtonDisabled('tmBlog', true);
|
|
1529
1620
|
setPanelVisibilityById('tmBlog', false);
|
|
1530
1621
|
}
|
|
1531
|
-
|
|
1622
|
+
else {
|
|
1623
|
+
setToolbarButtonDisabled('tmBlog', false);
|
|
1624
|
+
}
|
|
1625
|
+
}, [isBoardDisabled]);
|
|
1626
|
+
useEffect(() => {
|
|
1627
|
+
if (isWFDisabled) {
|
|
1628
|
+
setToolbarButtonDisabled('tmWF', true);
|
|
1532
1629
|
setPanelVisibilityById('tmWF', false);
|
|
1533
1630
|
}
|
|
1534
|
-
|
|
1631
|
+
else {
|
|
1632
|
+
setToolbarButtonDisabled('tmWF', false);
|
|
1633
|
+
}
|
|
1634
|
+
}, [isWFDisabled]);
|
|
1635
|
+
useEffect(() => {
|
|
1636
|
+
if (isDcmtTasksDisabled) {
|
|
1637
|
+
setToolbarButtonDisabled('tmDcmtTasks', true);
|
|
1535
1638
|
setPanelVisibilityById('tmDcmtTasks', false);
|
|
1536
1639
|
}
|
|
1537
|
-
|
|
1640
|
+
else {
|
|
1641
|
+
setToolbarButtonDisabled('tmDcmtTasks', false);
|
|
1642
|
+
}
|
|
1643
|
+
}, [isDcmtTasksDisabled]);
|
|
1644
|
+
useEffect(() => {
|
|
1645
|
+
if (isPreviewDisabled) {
|
|
1646
|
+
setToolbarButtonDisabled('tmDcmtPreview', true);
|
|
1538
1647
|
setPanelVisibilityById('tmDcmtPreview', false);
|
|
1539
1648
|
}
|
|
1540
|
-
|
|
1649
|
+
else {
|
|
1650
|
+
setToolbarButtonDisabled('tmDcmtPreview', false);
|
|
1651
|
+
}
|
|
1652
|
+
}, [isPreviewDisabled]);
|
|
1541
1653
|
return null;
|
|
1542
1654
|
};
|
|
1543
|
-
const TMDcmtPreviewWrapper = ({ refreshPreviewTrigger, fromDTD, currentDcmt, layoutMode, dcmtFile, deviceType, isVisible, onFileUpload, openFileUploaderPdfEditor, enableDragDropOverlay = false, onScanRequest }) => {
|
|
1655
|
+
const TMDcmtPreviewWrapper = ({ refreshPreviewTrigger, fromDTD, currentDcmt, layoutMode, dcmtFile, deviceType, isVisible, onFileUpload, openFileUploaderPdfEditor, enableDragDropOverlay = false, onScanRequest, onBack }) => {
|
|
1544
1656
|
const { setPanelVisibilityById, toggleMaximize, isResizingActive, countVisibleLeafPanels, panelVisibility } = useTMPanelManagerContext();
|
|
1545
1657
|
const isMobile = deviceType === DeviceType.MOBILE;
|
|
1546
1658
|
return (layoutMode === LayoutModes.Update ?
|
|
1547
|
-
_jsx(TMDcmtPreview, { dcmtData: currentDcmt, isVisible: isVisible, onClosePanel: (!isMobile && countVisibleLeafPanels() > 1) ? () => setPanelVisibilityById('tmDcmtPreview', false) : undefined, allowMaximize: !isMobile && countVisibleLeafPanels() > 1, onMaximizePanel: (!isMobile && countVisibleLeafPanels() > 1) ? () => toggleMaximize("tmDcmtPreview") : undefined, isResizingActive: isResizingActive }, refreshPreviewTrigger) :
|
|
1659
|
+
_jsx(TMDcmtPreview, { dcmtData: currentDcmt, isVisible: isVisible, onClosePanel: (!isMobile && countVisibleLeafPanels() > 1) ? () => setPanelVisibilityById('tmDcmtPreview', false) : undefined, allowMaximize: !isMobile && countVisibleLeafPanels() > 1, onMaximizePanel: (!isMobile && countVisibleLeafPanels() > 1) ? () => toggleMaximize("tmDcmtPreview") : undefined, onBack: onBack, isResizingActive: isResizingActive }, refreshPreviewTrigger) :
|
|
1548
1660
|
_jsx(TMFileUploader, { fromDTD: fromDTD, onFileUpload: onFileUpload, openFileUploaderPdfEditor: openFileUploaderPdfEditor, onClose: (!isMobile && countVisibleLeafPanels() > 1) ? () => setPanelVisibilityById('tmDcmtPreview', false) : undefined, isRequired: fromDTD?.archiveConstraint === ArchiveConstraints.ContentCompulsory && dcmtFile === null, defaultBlob: dcmtFile, deviceType: deviceType, isResizingActive: isResizingActive, enableDragDropOverlay: panelVisibility['tmDcmtPreview'] && enableDragDropOverlay, onScanRequest: onScanRequest }));
|
|
1549
1661
|
};
|
|
1550
1662
|
const Ribbon = styled.div `
|
|
@@ -30,5 +30,5 @@ interface TMDcmtFormActionButtonsProps {
|
|
|
30
30
|
setShowMoreInfoTaskPopup: React.Dispatch<React.SetStateAction<boolean>>;
|
|
31
31
|
setShowMoreInfoTaskTask: React.Dispatch<React.SetStateAction<TaskDescriptor | undefined>>;
|
|
32
32
|
}
|
|
33
|
-
declare const TMDcmtFormActionButtons: (props: TMDcmtFormActionButtonsProps) =>
|
|
33
|
+
declare const TMDcmtFormActionButtons: (props: TMDcmtFormActionButtonsProps) => React.JSX.Element;
|
|
34
34
|
export default TMDcmtFormActionButtons;
|