@topconsultnpm/sdkui-react 6.20.0-dev1.11 → 6.20.0-dev1.111
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/assets/Toppy-help-center.png +0 -0
- package/lib/assets/headergradient.svg +87 -0
- package/lib/components/NewComponents/ContextMenu/TMContextMenu.js +285 -28
- package/lib/components/NewComponents/ContextMenu/hooks.d.ts +8 -1
- package/lib/components/NewComponents/ContextMenu/hooks.js +80 -8
- package/lib/components/NewComponents/ContextMenu/index.d.ts +3 -0
- package/lib/components/NewComponents/ContextMenu/index.js +2 -0
- package/lib/components/NewComponents/ContextMenu/styles.d.ts +9 -1
- package/lib/components/NewComponents/ContextMenu/styles.js +157 -37
- package/lib/components/NewComponents/ContextMenu/types.d.ts +14 -1
- package/lib/components/NewComponents/ContextMenu/useLongPress.d.ts +21 -0
- package/lib/components/NewComponents/ContextMenu/useLongPress.js +112 -0
- package/lib/components/NewComponents/FloatingMenuBar/TMFloatingMenuBar.js +563 -112
- package/lib/components/NewComponents/FloatingMenuBar/styles.d.ts +21 -5
- package/lib/components/NewComponents/FloatingMenuBar/styles.js +210 -58
- package/lib/components/NewComponents/FloatingMenuBar/types.d.ts +8 -2
- package/lib/components/base/TMAccordionNew.js +35 -14
- package/lib/components/base/TMCustomButton.js +61 -17
- package/lib/components/base/TMDataGrid.d.ts +7 -4
- package/lib/components/base/TMDataGrid.js +153 -11
- package/lib/components/base/TMDropDownMenu.js +19 -18
- package/lib/components/base/TMFileManager.d.ts +4 -3
- package/lib/components/base/TMFileManager.js +32 -24
- package/lib/components/base/TMFileManagerDataGridView.d.ts +3 -2
- package/lib/components/base/TMFileManagerDataGridView.js +1 -11
- package/lib/components/base/TMFileManagerThumbnailItems.d.ts +7 -1
- package/lib/components/base/TMFileManagerThumbnailItems.js +5 -2
- package/lib/components/base/TMFileManagerThumbnailsView.d.ts +17 -4
- package/lib/components/base/TMFileManagerThumbnailsView.js +18 -6
- package/lib/components/base/TMFileManagerUtils.d.ts +0 -12
- package/lib/components/base/TMListView.js +33 -15
- package/lib/components/base/TMPanel.d.ts +1 -1
- package/lib/components/base/TMPanel.js +1 -1
- package/lib/components/base/TMTreeView.d.ts +2 -1
- package/lib/components/base/TMTreeView.js +33 -26
- package/lib/components/choosers/TMDistinctValues.js +2 -2
- package/lib/components/choosers/TMInvoiceRetrieveFormats.js +1 -1
- package/lib/components/choosers/TMMetadataChooser.js +8 -1
- package/lib/components/choosers/TMOrderRetrieveFormats.js +1 -1
- package/lib/components/choosers/TMUserChooser.d.ts +0 -5
- package/lib/components/choosers/TMUserChooser.js +25 -45
- package/lib/components/editors/TMDateBox.js +18 -9
- package/lib/components/editors/TMLocalizedTextBox.d.ts +3 -1
- package/lib/components/editors/TMLocalizedTextBox.js +16 -14
- package/lib/components/editors/TMMetadataTextBox.d.ts +9 -0
- package/lib/components/editors/TMMetadataTextBox.js +92 -0
- package/lib/components/editors/TMMetadataValues.js +23 -5
- package/lib/components/editors/TMTextArea.js +18 -30
- package/lib/components/editors/TMTextBox.d.ts +1 -1
- package/lib/components/editors/TMTextBox.js +6 -3
- package/lib/components/editors/TMTextExpression.js +6 -91
- package/lib/components/features/archive/TMArchive.js +2 -2
- package/lib/components/features/assistant/TMToppyDraggableHelpCenter.d.ts +15 -0
- package/lib/components/features/assistant/TMToppyDraggableHelpCenter.js +460 -0
- package/lib/components/features/assistant/TMToppySpeechBubble.d.ts +11 -0
- package/lib/components/features/assistant/TMToppySpeechBubble.js +126 -0
- package/lib/components/features/documents/TMDcmtForm.d.ts +14 -2
- package/lib/components/features/documents/TMDcmtForm.js +457 -206
- package/lib/components/features/documents/TMDcmtPreview.js +44 -110
- package/lib/components/features/documents/TMDcmtTasks.js +9 -9
- package/lib/components/features/documents/TMMasterDetailDcmts.js +38 -53
- package/lib/components/features/documents/TMRelationViewer.d.ts +1 -1
- package/lib/components/features/documents/TMRelationViewer.js +2 -2
- package/lib/components/features/search/TMDcmtCheckoutInfoForm.d.ts +8 -0
- package/lib/components/features/search/{TMSearchResultCheckoutInfoForm.js → TMDcmtCheckoutInfoForm.js} +2 -2
- package/lib/components/features/search/TMSavedQuerySelector.js +72 -67
- package/lib/components/features/search/TMSearch.d.ts +3 -0
- package/lib/components/features/search/TMSearch.js +50 -11
- package/lib/components/features/search/TMSearchQueryPanel.d.ts +1 -0
- package/lib/components/features/search/TMSearchQueryPanel.js +29 -21
- package/lib/components/features/search/TMSearchResult.d.ts +3 -0
- package/lib/components/features/search/TMSearchResult.js +208 -250
- package/lib/components/features/search/TMSearchResultsMenuItems.d.ts +3 -3
- package/lib/components/features/search/TMSearchResultsMenuItems.js +205 -169
- package/lib/components/features/search/TMSignSettingsForm.js +1 -1
- package/lib/components/features/search/TMSignatureInfoContent.d.ts +6 -0
- package/lib/components/features/search/TMSignatureInfoContent.js +140 -0
- package/lib/components/features/search/TMViewHistoryDcmt.js +2 -2
- package/lib/components/features/tasks/TMTaskForm.js +20 -1
- package/lib/components/features/tasks/TMTasksAgenda.d.ts +3 -1
- package/lib/components/features/tasks/TMTasksAgenda.js +48 -9
- package/lib/components/features/tasks/TMTasksCalendar.d.ts +2 -0
- package/lib/components/features/tasks/TMTasksCalendar.js +19 -7
- package/lib/components/features/tasks/TMTasksUtils.d.ts +2 -2
- package/lib/components/features/tasks/TMTasksUtils.js +43 -36
- package/lib/components/features/tasks/TMTasksView.js +28 -19
- package/lib/components/features/workflow/TMWorkflowPopup.d.ts +33 -2
- package/lib/components/features/workflow/TMWorkflowPopup.js +139 -34
- package/lib/components/features/workflow/diagram/DiagramItemComponent.d.ts +2 -0
- package/lib/components/features/workflow/diagram/DiagramItemComponent.js +12 -7
- package/lib/components/features/workflow/diagram/DiagramItemForm.js +1 -1
- package/lib/components/features/workflow/diagram/RecipientList.js +3 -2
- package/lib/components/features/workflow/diagram/WFDiagram.d.ts +4 -0
- package/lib/components/features/workflow/diagram/WFDiagram.js +164 -13
- package/lib/components/forms/Login/LoginValidatorService.d.ts +2 -0
- package/lib/components/forms/Login/LoginValidatorService.js +7 -2
- package/lib/components/forms/Login/TMLoginForm.js +34 -6
- package/lib/components/forms/TMChooserForm.js +1 -1
- package/lib/components/grids/TMBlogsPost.js +56 -31
- package/lib/components/grids/TMRecentsManager.js +20 -10
- package/lib/components/index.d.ts +6 -3
- package/lib/components/index.js +6 -3
- package/lib/components/query/TMQueryEditor.d.ts +2 -1
- package/lib/components/query/TMQueryEditor.js +92 -92
- package/lib/components/settings/SettingsAppearance.d.ts +2 -1
- package/lib/components/settings/SettingsAppearance.js +99 -30
- package/lib/components/sidebar/TMHeader.js +7 -7
- package/lib/components/sidebar/TMSidebar.d.ts +0 -1
- package/lib/components/sidebar/TMSidebar.js +16 -44
- package/lib/components/sidebar/TMSidebarItem.js +34 -17
- package/lib/components/viewers/TMDataListItemViewer.d.ts +2 -1
- package/lib/components/viewers/TMDataListItemViewer.js +35 -71
- package/lib/components/viewers/TMDataUserIdItemViewer.d.ts +8 -0
- package/lib/components/viewers/TMDataUserIdItemViewer.js +39 -0
- package/lib/css/tm-sdkui.css +1 -1
- package/lib/helper/SDKUI_Globals.d.ts +22 -0
- package/lib/helper/SDKUI_Globals.js +10 -1
- package/lib/helper/SDKUI_Localizator.d.ts +17 -1
- package/lib/helper/SDKUI_Localizator.js +167 -1
- package/lib/helper/TMCommandsContextMenu.d.ts +4 -2
- package/lib/helper/TMCommandsContextMenu.js +15 -4
- package/lib/helper/TMIcons.d.ts +4 -0
- package/lib/helper/TMIcons.js +13 -3
- package/lib/helper/TMPdfViewer.d.ts +8 -0
- package/lib/helper/TMPdfViewer.js +373 -0
- package/lib/helper/checkinCheckoutManager.d.ts +31 -1
- package/lib/helper/checkinCheckoutManager.js +112 -30
- package/lib/helper/devextremeCustomMessages.d.ts +30 -0
- package/lib/helper/devextremeCustomMessages.js +30 -0
- package/lib/helper/helpers.d.ts +28 -1
- package/lib/helper/helpers.js +130 -3
- package/lib/helper/index.d.ts +2 -0
- package/lib/helper/index.js +2 -0
- package/lib/helper/queryHelper.d.ts +1 -1
- package/lib/helper/queryHelper.js +33 -3
- package/lib/helper/workItemsHelper.d.ts +6 -0
- package/lib/helper/workItemsHelper.js +230 -0
- package/lib/hooks/useCheckInOutOperations.d.ts +28 -0
- package/lib/hooks/useCheckInOutOperations.js +223 -0
- package/lib/hooks/useDataListItem.d.ts +12 -0
- package/lib/hooks/useDataListItem.js +132 -0
- package/lib/hooks/useDataUserIdItem.d.ts +10 -0
- package/lib/hooks/useDataUserIdItem.js +96 -0
- package/lib/hooks/useMetadataExpression.d.ts +19 -0
- package/lib/hooks/useMetadataExpression.js +99 -0
- package/lib/hooks/useSettingsFeedback.d.ts +11 -0
- package/lib/hooks/useSettingsFeedback.js +38 -0
- package/lib/hooks/useWorkflowApprove.d.ts +4 -0
- package/lib/hooks/useWorkflowApprove.js +14 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +3 -2
- package/lib/services/platform_services.d.ts +3 -3
- package/lib/ts/types.d.ts +61 -1
- package/lib/utils/theme.d.ts +1 -1
- package/lib/utils/theme.js +1 -1
- package/package.json +7 -4
- package/lib/components/NewComponents/Notification/Notification.d.ts +0 -4
- package/lib/components/NewComponents/Notification/Notification.js +0 -60
- package/lib/components/NewComponents/Notification/NotificationContainer.d.ts +0 -8
- package/lib/components/NewComponents/Notification/NotificationContainer.js +0 -33
- package/lib/components/NewComponents/Notification/index.d.ts +0 -2
- package/lib/components/NewComponents/Notification/index.js +0 -2
- package/lib/components/NewComponents/Notification/styles.d.ts +0 -21
- package/lib/components/NewComponents/Notification/styles.js +0 -180
- package/lib/components/NewComponents/Notification/types.d.ts +0 -18
- package/lib/components/NewComponents/Notification/types.js +0 -1
- package/lib/components/base/TMContextMenu.d.ts +0 -25
- package/lib/components/base/TMContextMenu.js +0 -109
- package/lib/components/base/TMContextMenuOLD.d.ts +0 -26
- package/lib/components/base/TMContextMenuOLD.js +0 -56
- package/lib/components/base/TMFloatingToolbar.d.ts +0 -9
- package/lib/components/base/TMFloatingToolbar.js +0 -101
- package/lib/components/features/assistant/ToppyDraggableHelpCenter.d.ts +0 -30
- package/lib/components/features/assistant/ToppyDraggableHelpCenter.js +0 -482
- package/lib/components/features/assistant/ToppySpeechBubble.d.ts +0 -9
- package/lib/components/features/assistant/ToppySpeechBubble.js +0 -117
- package/lib/components/features/search/TMSearchResultCheckoutInfoForm.d.ts +0 -8
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import React, { useCallback, useEffect, useMemo, useState } from 'react';
|
|
3
|
-
import { SDK_Globals, DataColumnTypes, MetadataDataDomains, DataListViewModes, MetadataFormats, LayoutModes,
|
|
2
|
+
import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
3
|
+
import { SDK_Globals, DataColumnTypes, MetadataDataDomains, DataListViewModes, MetadataFormats, LayoutModes, DcmtTypeListCacheService, SystemMIDsAsNumber, RetrieveFileOptions, DcmtOpers, GeneralRetrieveFormats, AccessLevelsEx, LayoutCacheService, UserListCacheService } from '@topconsultnpm/sdk-ts';
|
|
4
4
|
import styled from 'styled-components';
|
|
5
5
|
import { getAllFieldSelectedDcmtsOrFocused, getCommandsMenuItems, getSelectedDcmtsOrFocused } from './TMSearchResultsMenuItems';
|
|
6
|
-
import { genUniqueId, IconShow, IconBoard, IconDcmtTypeSys,
|
|
6
|
+
import { genUniqueId, IconShow, IconBoard, IconDcmtTypeSys, SDKUI_Localizator, IconDelete, IconRefresh, IconMenuVertical, deepCompare, generateUniqueColumnKeys, searchResultDescriptorToSimpleArray, searchResultToMetadataValues, IconSearchCheck, TMImageLibrary, convertSearchResultDescriptorToFileItems, IconCustom, isApprovalWorkflowView, SDKUI_Globals, getMoreInfoTasksForDocument } from '../../../helper';
|
|
7
7
|
import { useDcmtOperations } from '../../../hooks/useDcmtOperations';
|
|
8
8
|
import { useInputAttachmentsDialog, useInputCvtFormatDialog } from '../../../hooks/useInputDialog';
|
|
9
9
|
import { useRelatedDocuments } from '../../../hooks/useRelatedDocuments';
|
|
10
|
-
import { DcmtOperationTypes, SearchResultContext
|
|
10
|
+
import { DcmtOperationTypes, SearchResultContext } from '../../../ts';
|
|
11
11
|
import { Gutters, TMColors } from '../../../utils/theme';
|
|
12
12
|
import { StyledModalContainer, StyledMultiViewPanel } from '../../base/Styled';
|
|
13
13
|
import TMButton from '../../base/TMButton';
|
|
@@ -16,12 +16,11 @@ import { useDeviceType, DeviceType } from '../../base/TMDeviceProvider';
|
|
|
16
16
|
import { TMSplitterLayout, TMLayoutItem } from '../../base/TMLayout';
|
|
17
17
|
import { TMMessageBoxManager, ButtonNames, TMExceptionBoxManager } from '../../base/TMPopUp';
|
|
18
18
|
import { TMLayoutWaitingContainer } from '../../base/TMWaitPanel';
|
|
19
|
-
import { TMUserIdViewer } from '../../choosers/TMUserChooser';
|
|
20
19
|
import TMMetadataValues from '../../editors/TMMetadataValues';
|
|
21
|
-
import TMDataListItemViewer from '../../viewers/TMDataListItemViewer';
|
|
22
20
|
import TMTidViewer from '../../viewers/TMTidViewer';
|
|
23
21
|
import TMDcmtPreview from '../documents/TMDcmtPreview';
|
|
24
|
-
import
|
|
22
|
+
import TMFloatingMenuBar from '../../NewComponents/FloatingMenuBar/TMFloatingMenuBar';
|
|
23
|
+
import TMContextMenu from '../../NewComponents/ContextMenu/TMContextMenu';
|
|
25
24
|
import { WorkFlowApproveRejectPopUp, WorkFlowMoreInfoPopUp, WorkFlowOperationButtons, WorkFlowReAssignPopUp } from '../workflow/TMWorkflowPopup';
|
|
26
25
|
import TMMasterDetailDcmts from '../documents/TMMasterDetailDcmts';
|
|
27
26
|
import TMBatchUpdateForm from '../../features/documents/TMBatchUpdateForm';
|
|
@@ -39,14 +38,17 @@ import TMChooserForm from '../../forms/TMChooserForm';
|
|
|
39
38
|
import TMModal from '../../base/TMModal';
|
|
40
39
|
import TMSearch from './TMSearch';
|
|
41
40
|
import TMArchive from '../archive/TMArchive';
|
|
42
|
-
import { TMResultManager } from '../../forms/TMResultDialog';
|
|
43
41
|
import TMCustomButton from '../../base/TMCustomButton';
|
|
44
|
-
import ToppyDraggableHelpCenter from '../assistant/ToppyDraggableHelpCenter';
|
|
45
42
|
import TMSignSettingsForm from './TMSignSettingsForm';
|
|
46
|
-
import { getDcmtCicoStatus
|
|
47
|
-
import TMSearchResultCheckoutInfoForm from './TMSearchResultCheckoutInfoForm';
|
|
43
|
+
import { getDcmtCicoStatus } from '../../../helper/checkinCheckoutManager';
|
|
48
44
|
import TMViewHistoryDcmt from './TMViewHistoryDcmt';
|
|
49
45
|
import TMBlogCommentForm from '../blog/TMBlogCommentForm';
|
|
46
|
+
import { useCheckInOutOperations } from '../../../hooks/useCheckInOutOperations';
|
|
47
|
+
import TMDcmtCheckoutInfoForm from './TMDcmtCheckoutInfoForm';
|
|
48
|
+
import { useDataListItem } from '../../../hooks/useDataListItem';
|
|
49
|
+
import { useDataUserIdItem } from '../../../hooks/useDataUserIdItem';
|
|
50
|
+
import { LoadIndicator } from 'devextreme-react';
|
|
51
|
+
import TMToppyDraggableHelpCenter from '../assistant/TMToppyDraggableHelpCenter';
|
|
50
52
|
let abortControllerLocal = new AbortController();
|
|
51
53
|
//#region Helper Methods
|
|
52
54
|
export const getSearchResultCountersSingleCategory = (searchResults) => {
|
|
@@ -65,7 +67,7 @@ const orderByName = (array) => {
|
|
|
65
67
|
return 1;
|
|
66
68
|
} return 0; });
|
|
67
69
|
};
|
|
68
|
-
const TMSearchResult = ({ allTasks = [], getAllTasks, deleteTaskByIdsCallback, addTaskCallback, editTaskCallback, handleNavigateToWGs, handleNavigateToDossiers, context = SearchResultContext.METADATA_SEARCH, isVisible = true, allowRelations = true, openDcmtFormAsModal = false, searchResults = [], showSearchResultSidebar = true, showSelector = false, groupId, title, isClosable = false, allowFloatingBar = true, showToolbarHeader = true, showBackButton = true, selectedSearchResultTID, workingGroupContext = undefined, disableAccordionIfSingleCategory = false, floatingActionConfig, openInOffice, onRefreshAfterAddDcmtToFavs, onRefreshSearchAsync, onSelectedTIDChanged, onWFOperationCompleted, onClose, onFileOpened, onTaskCreateRequest, openWGsCopyMoveForm, openEditPdf, openCommentFormCallback, openAddDocumentForm, openS4TViewer = false, onOpenS4TViewerRequest, passToArchiveCallback, showTodoDcmtForm = false, onReferenceClick, }) => {
|
|
70
|
+
const TMSearchResult = ({ allTasks = [], getAllTasks, deleteTaskByIdsCallback, addTaskCallback, editTaskCallback, handleNavigateToWGs, handleNavigateToDossiers, context = SearchResultContext.METADATA_SEARCH, isVisible = true, allowRelations = true, openDcmtFormAsModal = false, searchResults = [], showSearchResultSidebar = true, showSelector = false, groupId, title, isClosable = false, allowFloatingBar = true, showToolbarHeader = true, showBackButton = true, selectedSearchResultTID, workingGroupContext = undefined, disableAccordionIfSingleCategory = false, floatingActionConfig, openInOffice, onRefreshAfterAddDcmtToFavs, onRefreshSearchAsync, onSelectedTIDChanged, onWFOperationCompleted, onClose, onFileOpened, onTaskCreateRequest, openWGsCopyMoveForm, editPdfForm = false, openEditPdf, openCommentFormCallback, openAddDocumentForm, openS4TViewer = false, onOpenS4TViewerRequest, passToArchiveCallback, showTodoDcmtForm = false, showToppyDraggableHelpCenter = true, toppyHelpCenterUsePortal = false, onReferenceClick, }) => {
|
|
69
71
|
const [id, setID] = useState('');
|
|
70
72
|
const [showApprovePopup, setShowApprovePopup] = useState(false);
|
|
71
73
|
const [showRejectPopup, setShowRejectPopup] = useState(false);
|
|
@@ -94,9 +96,11 @@ const TMSearchResult = ({ allTasks = [], getAllTasks, deleteTaskByIdsCallback, a
|
|
|
94
96
|
// State to control whether the export form (for exporting to Excel/CSV/txt and others) should be shown
|
|
95
97
|
const [showExportForm, setShowExportForm] = useState(false);
|
|
96
98
|
const [showSignSettingsForm, setShowSignSettingsForm] = useState(false);
|
|
99
|
+
const floatingBarContainerRef = useRef(null);
|
|
97
100
|
const [confirmFormat, ConfirmFormatDialog] = useInputCvtFormatDialog();
|
|
98
101
|
const { openConfirmAttachmentsDialog, ConfirmAttachmentsDialog } = useInputAttachmentsDialog();
|
|
99
102
|
const { abortController, showWaitPanel, waitPanelTitle, showPrimary, waitPanelTextPrimary, waitPanelValuePrimary, waitPanelMaxValuePrimary, showSecondary, waitPanelTextSecondary, waitPanelValueSecondary, waitPanelMaxValueSecondary, downloadDcmtsAsync, runOperationAsync, getDcmtFileAsync } = useDcmtOperations();
|
|
103
|
+
const { showHistory, showHistoryCallback, hideHistoryCallback, showCheckoutInformationForm, commentFormState, hideCommentFormCallback, showCheckoutInformationFormCallback, hideCheckoutInformationFormCallback, copyCheckoutPathToClipboardCallback, handleCheckOutCallback, handleCheckInCallback, refreshPreviewTrigger, showCicoWaitPanel, cicoWaitPanelTitle, showCicoPrimaryProgress, cicoPrimaryProgressText, cicoPrimaryProgressValue, cicoPrimaryProgressMax, } = useCheckInOutOperations();
|
|
100
104
|
const relatedDocuments = useRelatedDocuments({ selectedSearchResult, focusedItem, currentSearchResults });
|
|
101
105
|
const { relatedDcmts, showRelatedDcmtsChooser, archiveType, isOpenDetails, isOpenMaster, isOpenArchiveRelationForm, archiveRelatedDcmtFormTID, archiveRelatedDcmtFormMids, relatedDcmtsChooserDataSource, showPairDcmtsModal, isPairingManyToMany, pairedSearchResults, manyToManyRelations, selectedManyToManyRelation, showManyToManyChooser, manyToManyChooserDataSource, showPairSearchModal, pairSearchModalTargetTID, pairSearchModalParentTID, pairSearchModalParentDID, pairSearchModalRelation, pairSearchModalInputMids, currentTIDHasDetailRelations, currentTIDHasMasterRelations, canArchiveMasterRelation, canArchiveDetailRelation, hasManyToManyRelation, setIsOpenDetails, setIsOpenMaster, setShowRelatedDcmtsChooser, setShowManyToManyChooser, setShowPairDcmtsModal, setShowPairSearchModal, setIsOpenArchiveRelationForm, setArchiveType, setArchiveRelatedDcmtFormTID, setArchiveRelatedDcmtFormMids, pairFloatingActionConfig, pairSearchModalFloatingActionConfig, archiveMasterDocuments, archiveDetailDocuments, pairManyToMany, checkRelatedDcmtsArchiveCapability, checkManyToManyCapability, archiveRelatedDcmtHandler, executeManyToManyPairing, } = relatedDocuments;
|
|
102
106
|
const [customButtonsLayout, setCustomButtonsLayout] = useState();
|
|
@@ -111,39 +115,12 @@ const TMSearchResult = ({ allTasks = [], getAllTasks, deleteTaskByIdsCallback, a
|
|
|
111
115
|
const disableSignApproveDisable = selectedDocs.length !== 1 || (selectedDocs.length === 1 && selectedDocs[0].FILEEXT === null);
|
|
112
116
|
const dcmtsReturned = (searchResults?.length > 1 ? selectedSearchResult?.dcmtsReturned : searchResults[0]?.dcmtsReturned ?? 0);
|
|
113
117
|
const dcmtsFound = (searchResults?.length > 1 ? selectedSearchResult?.dcmtsFound : searchResults[0]?.dcmtsFound ?? 0);
|
|
114
|
-
// State to manage show history selected file
|
|
115
|
-
const [showHistory, setShowHistory] = useState(false);
|
|
116
118
|
const [allUsers, setAllUsers] = useState([]);
|
|
117
|
-
// State to manage show history selected file
|
|
118
|
-
const [showCheckoutInformationForm, setShowCheckoutInformationForm] = useState(false);
|
|
119
|
-
// State variable to control the visibility of the wait panel
|
|
120
|
-
const [showLocalWaitPanel, setShowLocalWaitPanel] = useState(false);
|
|
121
|
-
// State variable to store the title of the wait panel
|
|
122
|
-
const [localWaitPanelTitle, setLocalWaitPanelTitle] = useState('');
|
|
123
|
-
// State variable to control the visibility of the primary section of the wait panel
|
|
124
|
-
const [localShowPrimary, setLocalShowPrimary] = useState(false);
|
|
125
|
-
// State variable to store the primary text of the wait panel
|
|
126
|
-
const [localWaitPanelTextPrimary, setLocalWaitPanelTextPrimary] = useState('');
|
|
127
|
-
// State variable to track the current value of the primary progress indicator in the wait panel
|
|
128
|
-
const [localWaitPanelValuePrimary, setLocalWaitPanelValuePrimary] = useState(0);
|
|
129
|
-
// State variable to define the maximum value for the primary progress indicator in the wait panel
|
|
130
|
-
const [localWaitPanelMaxValuePrimary, setLocalWaitPanelMaxValuePrimary] = useState(0);
|
|
131
|
-
/* State to manage show attachment badge on comment form */
|
|
132
|
-
const [removeAndEditAttachmentCommentForm, setRemoveAndEditAttachmentCommentForm] = useState(true);
|
|
133
|
-
// State to manage show comment form selected file
|
|
134
|
-
const [showCommentForm, setShowCommentForm] = useState(false);
|
|
135
|
-
// State to manage show comment form close button
|
|
136
|
-
const [isCommentRequired, setIsCommentRequired] = useState(false);
|
|
137
119
|
// Stato per triggerare il refresh del blog dall'esterno
|
|
138
120
|
const [refreshBlogTrigger, setRefreshBlogTrigger] = useState(0);
|
|
139
|
-
// Stato per triggerare il refresh della preview dall'esterno
|
|
140
|
-
const [refreshPreviewTrigger, setRefreshPreviewTrigger] = useState(0);
|
|
141
121
|
const triggerBlogRefresh = useCallback(async () => {
|
|
142
122
|
setRefreshBlogTrigger(prev => prev + 1);
|
|
143
123
|
}, []);
|
|
144
|
-
const triggerPreviewRefresh = useCallback(() => {
|
|
145
|
-
setRefreshPreviewTrigger(prev => prev + 1);
|
|
146
|
-
}, []);
|
|
147
124
|
useEffect(() => {
|
|
148
125
|
const fetchAllUsers = async () => {
|
|
149
126
|
const users = await UserListCacheService.GetAllAsync();
|
|
@@ -285,7 +262,7 @@ const TMSearchResult = ({ allTasks = [], getAllTasks, deleteTaskByIdsCallback, a
|
|
|
285
262
|
try {
|
|
286
263
|
const dtd = await DcmtTypeListCacheService.GetWithNotGrantedAsync(item.TID, item?.DID);
|
|
287
264
|
if (dtd) {
|
|
288
|
-
const isWorkItem = dtd
|
|
265
|
+
const isWorkItem = isApprovalWorkflowView(dtd);
|
|
289
266
|
const name = `${dtd.name ?? '-'} (DID: ${item.DID})`;
|
|
290
267
|
onTaskCreateRequest?.(isWorkItem
|
|
291
268
|
? { workItem: { tid: item.TID, did: item.DID, name } }
|
|
@@ -317,33 +294,12 @@ const TMSearchResult = ({ allTasks = [], getAllTasks, deleteTaskByIdsCallback, a
|
|
|
317
294
|
const closeSignSettingsForm = useCallback(() => {
|
|
318
295
|
setShowSignSettingsForm(false);
|
|
319
296
|
}, []);
|
|
320
|
-
const
|
|
321
|
-
setShowHistory(true);
|
|
322
|
-
}, []);
|
|
323
|
-
const showCheckoutInformationFormCallback = useCallback(() => {
|
|
324
|
-
setShowCheckoutInformationForm(true);
|
|
325
|
-
}, []);
|
|
326
|
-
const showCommentFormCallback = useCallback(() => {
|
|
327
|
-
setShowCommentForm(true);
|
|
328
|
-
}, []);
|
|
329
|
-
const infoCheckCopyToClipboard = () => {
|
|
297
|
+
const copyCheckoutPathToClipboardOperationCallback = () => {
|
|
330
298
|
const selectedDocs = getSelectedDcmtsOrFocused(selectedItems, focusedItem);
|
|
331
299
|
const firstDoc = selectedDocs?.[0];
|
|
332
300
|
if (!firstDoc)
|
|
333
301
|
return;
|
|
334
|
-
|
|
335
|
-
const wGSDraftCheckoutItemCurrentItems = [...SDKUI_Globals.userSettings.dcmtCheckoutInfo];
|
|
336
|
-
const existingItem = wGSDraftCheckoutItemCurrentItems.find((item) => item.TID === firstDoc.TID.toString() && item.DID === firstDoc.DID.toString());
|
|
337
|
-
const folder = existingItem && existingItem.checkoutFolder && existingItem.checkoutFolder !== "" ? existingItem.checkoutFolder : defaultCheckInOutFolder;
|
|
338
|
-
const name = existingItem?.checkoutName ?? getCicoDownloadFileName({ type: 'dcmtInfo', dcmtInfo: firstDoc, originalFileName: fromDTD?.name ?? SDKUI_Localizator.SearchResult }, true, false);
|
|
339
|
-
const textToCopy = folder ? `${folder}\\${name}` : name;
|
|
340
|
-
navigator.clipboard.writeText(textToCopy)
|
|
341
|
-
.then(() => {
|
|
342
|
-
ShowAlert({ message: SDKUI_Localizator.OperationSuccess, mode: 'success', duration: 5000, title: SDKUI_Localizator.CopyToClipboard });
|
|
343
|
-
})
|
|
344
|
-
.catch(err => {
|
|
345
|
-
ShowAlert({ message: err, mode: 'error', duration: 5000, title: SDKUI_Localizator.OperationResult });
|
|
346
|
-
});
|
|
302
|
+
copyCheckoutPathToClipboardCallback(firstDoc, fromDTD?.name ?? SDKUI_Localizator.SearchResult);
|
|
347
303
|
};
|
|
348
304
|
const getTitleHeader = () => {
|
|
349
305
|
let counters = (showSelector && disableAccordionIfSingleCategory && searchResults.length > 1) ? getSearchResultCountersSingleCategory(searchResults) : "";
|
|
@@ -405,168 +361,31 @@ const TMSearchResult = ({ allTasks = [], getAllTasks, deleteTaskByIdsCallback, a
|
|
|
405
361
|
const customButtonMenuItems = () => {
|
|
406
362
|
const customButtonsItems = customButtonsLayout?.customButtons?.filter((customButton) => customButton.isForSearchResult && customButton.isForSearchResult > 0)
|
|
407
363
|
.map((customButton) => ({
|
|
408
|
-
icon:
|
|
409
|
-
|
|
364
|
+
icon: TMImageLibrary({ imageID: customButton.glyphID }),
|
|
365
|
+
name: customButton.title || 'Bottone personalizzato',
|
|
410
366
|
onClick: () => setCustomButton(customButton)
|
|
411
367
|
}));
|
|
412
|
-
return {
|
|
413
|
-
icon:
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
};
|
|
417
|
-
};
|
|
418
|
-
const onContextMenuPreparing = (e) => {
|
|
419
|
-
if (e === undefined)
|
|
420
|
-
return;
|
|
421
|
-
if (e.target === 'content') {
|
|
422
|
-
e.items = e.items || [];
|
|
423
|
-
const menuItems = getCommandsMenuItems(isMobile, fromDTD, allUsers, selectedItems, focusedItem, context, showFloatingBar, workingGroupContext, showSearch, setShowFloatingBar, openFormHandler, openSharedArchiveHandler, showSharedDcmtsHandler, downloadDcmtsAsync, runOperationAsync, onRefreshSearchAsync, refreshSelectionDataRowsAsync, onRefreshAfterAddDcmtToFavs, confirmFormat, openConfirmAttachmentsDialog, openTaskFormHandler, openDetailDcmtsFormHandler, openMasterDcmtsFormHandler, openBatchUpdateFormHandler, openExportForm, handleToggleSearch, handleSignApprove, openSignSettingsForm, handleCheckOutOperationCallback, handleCheckInOperationCallback, showCheckoutInformationFormCallback, viewHistoryCallback, infoCheckCopyToClipboard, openWGsCopyMoveForm, openCommentFormCallback, openEditPdf, openAddDocumentForm, passToArchiveCallback, archiveMasterDocuments, archiveDetailDocuments, currentTIDHasMasterRelations, currentTIDHasDetailRelations, canArchiveMasterRelation, canArchiveDetailRelation, pairManyToMany, hasManyToManyRelation);
|
|
424
|
-
e.items.push(...menuItems);
|
|
425
|
-
e.items.push(customButtonMenuItems());
|
|
426
|
-
}
|
|
368
|
+
return customButtonsItems && customButtonsItems.length > 0 ? {
|
|
369
|
+
icon: _jsx(IconCustom, {}),
|
|
370
|
+
name: SDKUI_Localizator.CustomButtons,
|
|
371
|
+
submenu: customButtonsItems
|
|
372
|
+
} : {};
|
|
427
373
|
};
|
|
428
374
|
const handleCheckOutOperationCallback = async (checkout) => {
|
|
429
375
|
const selectedDocs = getSelectedDcmtsOrFocused(selectedItems, focusedItem);
|
|
430
376
|
const firstDoc = selectedDocs?.[0];
|
|
431
377
|
if (!firstDoc)
|
|
432
378
|
return;
|
|
433
|
-
|
|
434
|
-
const msg = checkout ? SDKUI_Localizator.ExecuteCheckOutQuestion : SDKUI_Localizator.ExecuteCancelCheckOutQuestion;
|
|
435
|
-
TMMessageBoxManager.show({
|
|
436
|
-
title: title,
|
|
437
|
-
message: msg,
|
|
438
|
-
buttons: [ButtonNames.YES, ButtonNames.NO],
|
|
439
|
-
onButtonClick: async (e) => {
|
|
440
|
-
if (e !== ButtonNames.YES)
|
|
441
|
-
return;
|
|
442
|
-
let result = [];
|
|
443
|
-
try {
|
|
444
|
-
setLocalWaitPanelTitle(title);
|
|
445
|
-
setShowLocalWaitPanel(true);
|
|
446
|
-
setLocalShowPrimary(true);
|
|
447
|
-
abortControllerLocal = new AbortController();
|
|
448
|
-
let i = 0;
|
|
449
|
-
const ue = SDK_Globals.tmSession?.NewUpdateEngineByID();
|
|
450
|
-
if (ue) {
|
|
451
|
-
ue.TID = firstDoc.TID;
|
|
452
|
-
ue.DID = firstDoc.DID;
|
|
453
|
-
if (checkout) {
|
|
454
|
-
await ue.CheckOutAsync()
|
|
455
|
-
.then(async () => {
|
|
456
|
-
const filename = fromDTD?.nameLoc || SDKUI_Localizator.SearchResult;
|
|
457
|
-
await cicoDownloadFilesCallback([{ type: 'dcmtInfo', dcmtInfo: firstDoc, originalFileName: filename }], true, downloadDcmtsAsync);
|
|
458
|
-
result.push({ rowIndex: i, id1: firstDoc.TID, id2: firstDoc.DID, description: SDKUI_Localizator.UpdateCompletedSuccessfully, resultType: ResultTypes.SUCCESS });
|
|
459
|
-
await refreshFocusedDataRowAsync(firstDoc.TID, firstDoc.DID, true);
|
|
460
|
-
})
|
|
461
|
-
.catch((error) => {
|
|
462
|
-
result.push({ rowIndex: i, id1: firstDoc.TID, id2: firstDoc.DID, resultType: ResultTypes.ERROR, description: getExceptionMessage(error) });
|
|
463
|
-
throw error;
|
|
464
|
-
});
|
|
465
|
-
}
|
|
466
|
-
else {
|
|
467
|
-
await ue.UndoCheckOutAsync()
|
|
468
|
-
.then(async () => {
|
|
469
|
-
result.push({ rowIndex: i, id1: firstDoc.TID, id2: firstDoc.DID, description: SDKUI_Localizator.UpdateCompletedSuccessfully, resultType: ResultTypes.SUCCESS });
|
|
470
|
-
// Remove the corresponding draft checkout item
|
|
471
|
-
updateCicoCheckoutStorageItem({ TID: firstDoc.TID.toString(), DID: firstDoc.DID.toString(), checkoutFolder: "", checkoutName: "" }, "dcmtInfo", "remove");
|
|
472
|
-
await refreshFocusedDataRowAsync(firstDoc.TID, firstDoc.DID, true);
|
|
473
|
-
})
|
|
474
|
-
.catch((error) => {
|
|
475
|
-
result.push({ rowIndex: 0, id1: firstDoc.TID, id2: firstDoc.DID, resultType: ResultTypes.ERROR, description: getExceptionMessage(error) });
|
|
476
|
-
throw error;
|
|
477
|
-
});
|
|
478
|
-
}
|
|
479
|
-
}
|
|
480
|
-
}
|
|
481
|
-
catch (error) {
|
|
482
|
-
result.push({ rowIndex: 0, id1: firstDoc.TID, id2: firstDoc.DID, resultType: ResultTypes.ERROR, description: getExceptionMessage(error) });
|
|
483
|
-
}
|
|
484
|
-
finally {
|
|
485
|
-
setLocalWaitPanelTextPrimary('');
|
|
486
|
-
setLocalWaitPanelMaxValuePrimary(0);
|
|
487
|
-
setLocalWaitPanelValuePrimary(0);
|
|
488
|
-
setShowLocalWaitPanel(false);
|
|
489
|
-
TMResultManager.show(result, title, "ID", undefined);
|
|
490
|
-
}
|
|
491
|
-
}
|
|
492
|
-
});
|
|
493
|
-
};
|
|
494
|
-
const triggerCommentOnFileAdd = (addedFiles) => {
|
|
495
|
-
if (addedFiles.length > 0) {
|
|
496
|
-
showCommentFormCallback();
|
|
497
|
-
setIsCommentRequired(true);
|
|
498
|
-
setRemoveAndEditAttachmentCommentForm(false);
|
|
499
|
-
}
|
|
379
|
+
await handleCheckOutCallback(firstDoc, checkout, fromDTD?.name ?? SDKUI_Localizator.SearchResult, downloadDcmtsAsync, undefined, refreshFocusedDataRowAsync);
|
|
500
380
|
};
|
|
501
|
-
const handleCheckInOperationCallback =
|
|
381
|
+
const handleCheckInOperationCallback = async () => {
|
|
502
382
|
const selectedDocs = getSelectedDcmtsOrFocused(selectedItems, focusedItem);
|
|
503
383
|
const firstDoc = selectedDocs?.[0];
|
|
504
384
|
if (!firstDoc)
|
|
505
385
|
return;
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
input.type = "file";
|
|
510
|
-
// Set the accepted file types (e.g., images, PDFs, etc.)
|
|
511
|
-
input.accept = "*/*";
|
|
512
|
-
// Enable the input to accept one file at once
|
|
513
|
-
input.multiple = false;
|
|
514
|
-
// Add an event listener for when the file selection changes
|
|
515
|
-
input.addEventListener('change', async (event) => {
|
|
516
|
-
const fileInput = event.target;
|
|
517
|
-
if (!fileInput.files || fileInput.files.length === 0)
|
|
518
|
-
return;
|
|
519
|
-
const file = fileInput.files[0];
|
|
520
|
-
firstDoc.fileName = fromDTD?.name ?? SDKUI_Localizator.SearchResult;
|
|
521
|
-
const validateFileName = validateCicoFileName({ type: 'dcmtInfo', dcmtInfo: firstDoc, originalFileName: firstDoc.fileName }, file.name);
|
|
522
|
-
TMMessageBoxManager.show({
|
|
523
|
-
resizable: true,
|
|
524
|
-
buttons: [ButtonNames.YES, ButtonNames.NO],
|
|
525
|
-
message: renderCicoCheckInContent({ type: 'dcmtInfo', dcmtInfo: firstDoc, originalFileName: firstDoc.fileName }, file, validateFileName.isValid, validateFileName.validationResults),
|
|
526
|
-
title: "Check in",
|
|
527
|
-
onButtonClick: async (e) => {
|
|
528
|
-
if (e !== ButtonNames.YES)
|
|
529
|
-
return;
|
|
530
|
-
setLocalWaitPanelTitle('Check in');
|
|
531
|
-
setShowLocalWaitPanel(true);
|
|
532
|
-
setLocalShowPrimary(true);
|
|
533
|
-
abortControllerLocal = new AbortController();
|
|
534
|
-
let result = [];
|
|
535
|
-
let i = 0;
|
|
536
|
-
if (firstDoc.TID && firstDoc.DID) {
|
|
537
|
-
try {
|
|
538
|
-
const ue = SDK_Globals.tmSession?.NewUpdateEngineByID();
|
|
539
|
-
if (ue) {
|
|
540
|
-
ue.TID = firstDoc.TID;
|
|
541
|
-
ue.DID = firstDoc.DID;
|
|
542
|
-
await ue.CheckInAsync(file, "", abortControllerLocal.signal);
|
|
543
|
-
// Remove the corresponding draft checkout item
|
|
544
|
-
updateCicoCheckoutStorageItem({ TID: firstDoc.TID.toString(), DID: firstDoc.DID.toString(), checkoutFolder: "", checkoutName: "" }, "dcmtInfo", "remove");
|
|
545
|
-
result.push({ rowIndex: i, id1: firstDoc.DID, id2: firstDoc.DID, description: SDKUI_Localizator.UpdateCompletedSuccessfully, resultType: ResultTypes.SUCCESS });
|
|
546
|
-
await refreshFocusedDataRowAsync(firstDoc.TID, firstDoc.DID, true);
|
|
547
|
-
const cacheKey = `${firstDoc.TID}-${firstDoc.DID}`;
|
|
548
|
-
if (dcmtsFileCachePreview.has(cacheKey))
|
|
549
|
-
removeDcmtsFileCache(cacheKey);
|
|
550
|
-
triggerPreviewRefresh();
|
|
551
|
-
triggerCommentOnFileAdd([firstDoc.DID]);
|
|
552
|
-
}
|
|
553
|
-
}
|
|
554
|
-
catch (err) {
|
|
555
|
-
result.push({ rowIndex: i, id1: i, id2: i, resultType: ResultTypes.ERROR, description: getExceptionMessage(err) });
|
|
556
|
-
}
|
|
557
|
-
finally {
|
|
558
|
-
setLocalWaitPanelTextPrimary('');
|
|
559
|
-
setLocalWaitPanelMaxValuePrimary(0);
|
|
560
|
-
setLocalWaitPanelValuePrimary(0);
|
|
561
|
-
setShowLocalWaitPanel(false);
|
|
562
|
-
TMResultManager.show(result, 'Check in', "ID", undefined, SDKUI_Localizator.CheckInSuccessMessage, 6000);
|
|
563
|
-
}
|
|
564
|
-
}
|
|
565
|
-
},
|
|
566
|
-
});
|
|
567
|
-
});
|
|
568
|
-
input.click();
|
|
569
|
-
}, [selectedItems, focusedItem, getSelectedDcmtsOrFocused]);
|
|
386
|
+
firstDoc.fileName = fromDTD?.name ?? SDKUI_Localizator.SearchResult;
|
|
387
|
+
await handleCheckInCallback(firstDoc, undefined, refreshFocusedDataRowAsync);
|
|
388
|
+
};
|
|
570
389
|
const refreshDataGridAfterRemoveAsync = async () => {
|
|
571
390
|
let index = selectedSearchResult?.dtdResult?.columns?.findIndex(col => col.caption === 'DID');
|
|
572
391
|
let selectedRows = [];
|
|
@@ -744,8 +563,6 @@ const TMSearchResult = ({ allTasks = [], getAllTasks, deleteTaskByIdsCallback, a
|
|
|
744
563
|
break;
|
|
745
564
|
}
|
|
746
565
|
};
|
|
747
|
-
const searchResutlToolbar = _jsxs(_Fragment, { children: [(dcmtsReturned != dcmtsFound) && _jsx("p", { style: { backgroundColor: `white`, color: TMColors.primaryColor, textAlign: 'center', padding: '1px 4px', borderRadius: '3px', display: 'flex' }, children: `${dcmtsReturned}/${dcmtsFound} restituiti` }), context === SearchResultContext.FAVORITES_AND_RECENTS &&
|
|
748
|
-
_jsx("div", { style: { display: 'flex', alignItems: 'center', gap: '5px' }, children: _jsx(TMButton, { btnStyle: 'icon', icon: _jsx(IconDelete, { color: 'white' }), caption: "Rimuovi da " + (selectedSearchResult?.category === "Favorites" ? '"Preferiti"' : '"Recenti"'), disabled: getSelectedDcmtsOrFocused(selectedItems, focusedItem).length <= 0, onClick: removeDcmtFromFavsOrRecents }) }), _jsx(TMButton, { btnStyle: 'icon', icon: _jsx(IconRefresh, { color: 'white' }), caption: SDKUI_Localizator.Refresh, onClick: onRefreshSearchAsync }), _jsx(IconMenuVertical, { id: `commands-header-${id}`, color: 'white', cursor: 'pointer' }), _jsx(TMCommandsContextMenu, { target: `#commands-header-${id}`, showEvent: "click", menuItems: getCommandsMenuItems(isMobile, fromDTD, allUsers, selectedItems, focusedItem, context, showFloatingBar, workingGroupContext, showSearch, setShowFloatingBar, openFormHandler, openSharedArchiveHandler, showSharedDcmtsHandler, downloadDcmtsAsync, runOperationAsync, onRefreshSearchAsync, refreshSelectionDataRowsAsync, onRefreshAfterAddDcmtToFavs, confirmFormat, openConfirmAttachmentsDialog, openTaskFormHandler, openDetailDcmtsFormHandler, openMasterDcmtsFormHandler, openBatchUpdateFormHandler, openExportForm, handleToggleSearch, handleSignApprove, openSignSettingsForm, handleCheckOutOperationCallback, handleCheckInOperationCallback, showCheckoutInformationFormCallback, viewHistoryCallback, infoCheckCopyToClipboard, openWGsCopyMoveForm, openCommentFormCallback, openEditPdf, openAddDocumentForm, passToArchiveCallback, archiveMasterDocuments, archiveDetailDocuments, currentTIDHasMasterRelations, currentTIDHasDetailRelations, canArchiveMasterRelation, canArchiveDetailRelation, pairManyToMany, hasManyToManyRelation).concat([customButtonMenuItems()]) })] });
|
|
749
566
|
const handleAddItem = (tid, did) => {
|
|
750
567
|
let newItem = { TID: tid ?? 0, DID: did ?? 0 };
|
|
751
568
|
setSecondaryMasterDcmts((prevItems) => [...prevItems, newItem]);
|
|
@@ -755,22 +572,53 @@ const TMSearchResult = ({ allTasks = [], getAllTasks, deleteTaskByIdsCallback, a
|
|
|
755
572
|
};
|
|
756
573
|
const handleSavedAsyncCallback = useCallback(async (tid, did, metadataResult) => {
|
|
757
574
|
await refreshFocusedDataRowAsync(tid, did, true, metadataResult);
|
|
758
|
-
}, []);
|
|
759
|
-
const showToppyForApprove = (
|
|
575
|
+
}, [refreshFocusedDataRowAsync]);
|
|
576
|
+
const showToppyForApprove = useMemo(() => {
|
|
577
|
+
return Boolean(isVisible && fromDTD && isApprovalWorkflowView(fromDTD) && !isOpenDcmtForm && !isOpenDetails && !isOpenMaster);
|
|
578
|
+
}, [isVisible, fromDTD, isOpenDcmtForm, isOpenDetails, isOpenMaster]);
|
|
579
|
+
/**
|
|
580
|
+
* TMToppyDraggableHelpCenter viene nascosto quando è aperto qualsiasi altro popup o modale che potrebbe
|
|
581
|
+
* interferire con l'interazione dell'utente (approvazione, rifiuto, riassegnazione, info aggiuntive,
|
|
582
|
+
* modifica PDF, visualizzatore S4T, form todo documento).
|
|
583
|
+
*/
|
|
584
|
+
const isToppyHelpCenterVisible = useMemo(() => {
|
|
585
|
+
return Boolean(showToppyForApprove
|
|
586
|
+
&& showToppyDraggableHelpCenter
|
|
587
|
+
&& selectedDocs.length > 0
|
|
588
|
+
&& !showApprovePopup
|
|
589
|
+
&& !showRejectPopup
|
|
590
|
+
&& !showReAssignPopup
|
|
591
|
+
&& !showMoreInfoPopup
|
|
592
|
+
&& !editPdfForm
|
|
593
|
+
&& !openS4TViewer
|
|
594
|
+
&& !showTodoDcmtForm);
|
|
595
|
+
}, [showToppyForApprove, showToppyDraggableHelpCenter, selectedDocs, showApprovePopup, showRejectPopup, showReAssignPopup, showMoreInfoPopup, editPdfForm, openS4TViewer, showTodoDcmtForm]);
|
|
596
|
+
const floatingMenuItems = useMemo(() => {
|
|
597
|
+
const baseMenuItems = getCommandsMenuItems(isMobile, fromDTD, allUsers, selectedItems, focusedItem, context, showFloatingBar, workingGroupContext, showSearch, setShowFloatingBar, openFormHandler, openSharedArchiveHandler, showSharedDcmtsHandler, downloadDcmtsAsync, runOperationAsync, onRefreshSearchAsync, refreshSelectionDataRowsAsync, onRefreshAfterAddDcmtToFavs, confirmFormat, openConfirmAttachmentsDialog, openTaskFormHandler, openDetailDcmtsFormHandler, openMasterDcmtsFormHandler, openBatchUpdateFormHandler, openExportForm, handleToggleSearch, handleSignApprove, openSignSettingsForm, handleCheckOutOperationCallback, handleCheckInOperationCallback, showCheckoutInformationFormCallback, showHistoryCallback, copyCheckoutPathToClipboardOperationCallback, openWGsCopyMoveForm, openCommentFormCallback, openEditPdf, openAddDocumentForm, passToArchiveCallback, archiveMasterDocuments, archiveDetailDocuments, currentTIDHasMasterRelations, currentTIDHasDetailRelations, canArchiveMasterRelation, canArchiveDetailRelation, pairManyToMany, hasManyToManyRelation);
|
|
598
|
+
const customButtons = customButtonMenuItems();
|
|
599
|
+
return customButtons.name ? baseMenuItems.concat([customButtons]) : baseMenuItems;
|
|
600
|
+
}, [
|
|
601
|
+
isMobile, fromDTD, allUsers, selectedItems, focusedItem, context,
|
|
602
|
+
showFloatingBar, workingGroupContext, showSearch, currentTIDHasMasterRelations,
|
|
603
|
+
currentTIDHasDetailRelations, canArchiveMasterRelation, canArchiveDetailRelation,
|
|
604
|
+
hasManyToManyRelation, customButtonsLayout
|
|
605
|
+
]);
|
|
606
|
+
const searchResutlToolbar = _jsxs(_Fragment, { children: [(dcmtsReturned != dcmtsFound) && _jsx("p", { style: { textAlign: 'center', padding: '1px 4px', borderRadius: '3px', display: 'flex' }, children: `${dcmtsReturned}/${dcmtsFound} restituiti` }), context === SearchResultContext.FAVORITES_AND_RECENTS &&
|
|
607
|
+
_jsx("div", { style: { display: 'flex', alignItems: 'center', gap: '5px' }, children: _jsx(TMButton, { btnStyle: 'icon', icon: _jsx(IconDelete, { color: 'white' }), caption: "Rimuovi da " + (selectedSearchResult?.category === "Favorites" ? '"Preferiti"' : '"Recenti"'), disabled: getSelectedDcmtsOrFocused(selectedItems, focusedItem).length <= 0, onClick: removeDcmtFromFavsOrRecents }) }), _jsx(TMButton, { btnStyle: 'icon', icon: _jsx(IconRefresh, { color: 'white' }), caption: SDKUI_Localizator.Refresh, onClick: onRefreshSearchAsync }), _jsx(TMContextMenu, { items: floatingMenuItems, trigger: "left", children: _jsx(IconMenuVertical, { color: 'white', cursor: 'pointer' }) })] });
|
|
760
608
|
const tmSearchResult = useMemo(() => (!searchResults || searchResults.length <= 0)
|
|
761
609
|
? _jsxs("div", { style: { display: 'flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', height: '100%', width: '100%' }, children: [_jsx(IconBoard, { fontSize: 96 }), _jsx("div", { style: { fontSize: "15px", marginTop: "10px" }, children: SDKUI_Localizator.NoDcmtFound }), openAddDocumentForm && _jsx("div", { style: { marginTop: "10px" }, children: _jsx(TMButton, { fontSize: "15px", icon: _jsx("i", { className: 'dx-icon-share' }), caption: SDKUI_Localizator.Share, onClick: openAddDocumentForm }) })] })
|
|
762
610
|
:
|
|
763
|
-
_jsxs(_Fragment, { children: [_jsxs(TMLayoutItem, { height: '100%', children: [_jsxs(TMSplitterLayout, { direction: 'horizontal', overflow: 'visible', separatorSize: Gutters.getGutters(), separatorActiveColor: 'transparent', separatorColor: 'transparent', min: ['0', '0'], showSeparator: showSelector && deviceType !== DeviceType.MOBILE, start: showSelector ? deviceType !== DeviceType.MOBILE ? ['30%', '70%'] : splitterSize : ['0%', '100%'], children: [showSelector ?
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
611
|
+
_jsxs(_Fragment, { children: [_jsxs(TMLayoutItem, { height: '100%', children: [_jsxs("div", { ref: floatingBarContainerRef, style: { position: 'relative', height: '100%', width: '100%' }, children: [_jsxs(TMSplitterLayout, { direction: 'horizontal', overflow: 'visible', separatorSize: Gutters.getGutters(), separatorActiveColor: 'transparent', separatorColor: 'transparent', min: ['0', '0'], showSeparator: showSelector && deviceType !== DeviceType.MOBILE, start: showSelector ? deviceType !== DeviceType.MOBILE ? ['30%', '70%'] : splitterSize : ['0%', '100%'], children: [showSelector ?
|
|
612
|
+
_jsx(TMLayoutItem, { children: _jsx(TMSearchResultSelector, { searchResults: currentSearchResults, disableAccordionIfSingleCategory: disableAccordionIfSingleCategory, selectedTID: selectedSearchResultTID, selectedSearchResult: selectedSearchResult, autoSelectFirst: !isMobile || currentSearchResults.length === 1, onSelectionChanged: onSearchResultSelectionChanged }) })
|
|
613
|
+
:
|
|
614
|
+
_jsx(_Fragment, {}), _jsx(TMLayoutItem, { children: _jsx(TMSearchResultGrid, { showSearch: showSearch, fromDTD: fromDTD, allUsers: allUsers, inputFocusedItem: focusedItem, inputSelectedItems: selectedItems, searchResult: searchResults.length > 1 ? selectedSearchResult : searchResults[0], lastUpdateSearchTime: lastUpdateSearchTime, openInOffice: openInOffice, onDblClick: () => openFormHandler(LayoutModes.Update), floatingMenuItems: floatingMenuItems, onSelectionChanged: (items) => { setSelectedItems(items); }, onVisibleItemChanged: setVisibleItems, onFocusedItemChanged: setFocusedItem, onDownloadDcmtsAsync: async (inputDcmts, downloadType, downloadMode, _y, confirmAttachments) => await downloadDcmtsAsync(inputDcmts, downloadType, downloadMode, onFileOpened, confirmAttachments), showExportForm: showExportForm, onCloseExportForm: onCloseExportForm }) })] }), allowFloatingBar && showFloatingBar && deviceType !== DeviceType.MOBILE &&
|
|
615
|
+
_jsx(TMFloatingMenuBar, { containerRef: floatingBarContainerRef, contextMenuItems: floatingMenuItems, isConstrained: true, defaultPosition: { x: 1, y: 88 }, contextMenuDefaultPinnedIds: ['rel-det', 'rel-mst', 'dl'], defaultOrientation: 'horizontal' })] }), showApprovePopup && _jsx(WorkFlowApproveRejectPopUp, { deviceType: deviceType, onCompleted: onWFOperationCompleted, selectedItems: getSelectedDcmtsOrFocused(selectedItems, focusedItem), isReject: 0, onClose: () => setShowApprovePopup(false) }), showRejectPopup && _jsx(WorkFlowApproveRejectPopUp, { deviceType: deviceType, onCompleted: onWFOperationCompleted, selectedItems: getSelectedDcmtsOrFocused(selectedItems, focusedItem), isReject: 1, onClose: () => setShowRejectPopup(false) }), showReAssignPopup && _jsx(WorkFlowReAssignPopUp, { deviceType: deviceType, onCompleted: onWFOperationCompleted, selectedItems: getSelectedDcmtsOrFocused(selectedItems, focusedItem), onClose: () => setShowReAssignPopup(false) }), showMoreInfoPopup && _jsx(WorkFlowMoreInfoPopUp, { TID: focusedItem?.TID, DID: focusedItem?.DID, deviceType: deviceType, onCompleted: onWFOperationCompleted, onClose: () => setShowMoreInfoPopup(false) }), isOpenBatchUpdate && _jsx(TMBatchUpdateForm, { isModal: true, titleModal: `${SDKUI_Localizator.BatchUpdate} (${getSelectionDcmtInfo().length} documenti selezionati)`, inputDcmts: getSelectionDcmtInfo(), TID: focusedItem ? focusedItem?.TID : selectedItems[0]?.TID, DID: focusedItem ? focusedItem?.DID : selectedItems[0]?.DID, onBack: () => {
|
|
768
616
|
setIsOpenBatchUpdate(false);
|
|
769
617
|
}, onSavedCallbackAsync: async () => {
|
|
770
618
|
setIsOpenBatchUpdate(false);
|
|
771
619
|
setIsModifiedBatchUpdate(false);
|
|
772
620
|
await refreshSelectionDataRowsAsync();
|
|
773
|
-
}, onStatusChanged: (isModified) => { setIsModifiedBatchUpdate(isModified); } }), _jsx(
|
|
621
|
+
}, onStatusChanged: (isModified) => { setIsModifiedBatchUpdate(isModified); } }), _jsx(TMToppyDraggableHelpCenter, { usePortal: toppyHelpCenterUsePortal, isVisible: isToppyHelpCenterVisible, content: _jsx("div", { style: { display: 'flex', flexDirection: 'column', gap: '10px' }, children: _jsx(WorkFlowOperationButtons, { deviceType: deviceType, onApprove: () => {
|
|
774
622
|
setShowApprovePopup(true);
|
|
775
623
|
}, onSignApprove: () => {
|
|
776
624
|
handleSignApprove();
|
|
@@ -813,7 +661,7 @@ const TMSearchResult = ({ allTasks = [], getAllTasks, deleteTaskByIdsCallback, a
|
|
|
813
661
|
TMSpinner.hide();
|
|
814
662
|
}
|
|
815
663
|
}, onClose: () => setShowManyToManyChooser(false), manageUseLocalizedName: false }), showPairDcmtsModal &&
|
|
816
|
-
_jsx(TMModal, { title: (isPairingManyToMany ? "Abbina" : "Disabbina") + " documenti", onClose: () => setShowPairDcmtsModal(false), width: isMobile ? '90%' : '50%', height: isMobile ? '90%' : '70%', children: _jsx(TMSearchResult, { searchResults: pairedSearchResults, onRefreshAfterAddDcmtToFavs: onRefreshAfterAddDcmtToFavs, onRefreshSearchAsync: onRefreshSearchAsync, onFileOpened: onFileOpened, onTaskCreateRequest: onTaskCreateRequest, openWGsCopyMoveForm: openWGsCopyMoveForm, openEditPdf: openEditPdf, openS4TViewer: openS4TViewer, onOpenS4TViewerRequest: onOpenS4TViewerRequest, passToArchiveCallback: passToArchiveCallback, showTodoDcmtForm: showTodoDcmtForm, allowFloatingBar: false, floatingActionConfig: pairFloatingActionConfig, showBackButton: false, allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers }) }), showPairSearchModal &&
|
|
664
|
+
_jsx(TMModal, { title: (isPairingManyToMany ? "Abbina" : "Disabbina") + " documenti", onClose: () => setShowPairDcmtsModal(false), width: isMobile ? '90%' : '50%', height: isMobile ? '90%' : '70%', children: _jsx(TMSearchResult, { searchResults: pairedSearchResults, onRefreshAfterAddDcmtToFavs: onRefreshAfterAddDcmtToFavs, onRefreshSearchAsync: onRefreshSearchAsync, onFileOpened: onFileOpened, onTaskCreateRequest: onTaskCreateRequest, openWGsCopyMoveForm: openWGsCopyMoveForm, editPdfForm: editPdfForm, openEditPdf: openEditPdf, openS4TViewer: openS4TViewer, onOpenS4TViewerRequest: onOpenS4TViewerRequest, passToArchiveCallback: passToArchiveCallback, showTodoDcmtForm: showTodoDcmtForm, allowFloatingBar: false, floatingActionConfig: pairFloatingActionConfig, showBackButton: false, allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers, toppyHelpCenterUsePortal: toppyHelpCenterUsePortal, showToppyDraggableHelpCenter: showToppyDraggableHelpCenter }) }), showPairSearchModal &&
|
|
817
665
|
_jsx(TMModal, { title: "Ricerca documenti", onClose: () => setShowPairSearchModal(false), width: isMobile ? '90%' : '50%', height: isMobile ? '90%' : '70%', children: _jsx(TMSearch, { onlyShowSearchQueryPanel: true, inputTID: pairSearchModalTargetTID, inputMids: pairSearchModalInputMids, floatingActionConfig: pairSearchModalFloatingActionConfig, allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers }) }), isOpenSharedArchive && _jsx(TMModal, { title: "Archiviazione condivisa", onClose: () => {
|
|
818
666
|
setIsOpenSharedArchive(false);
|
|
819
667
|
}, width: isMobile ? '90%' : '60%', height: isMobile ? '90%' : '80%', children: _jsx(TMArchive, { inputDID: focusedItem?.DID, inputTID: focusedItem?.TID, inputMids: currentMetadataValues.filter(md => md.mid && md.mid > 100).map(md => ({ mid: md.mid, value: md.value ?? '' })), isSharedArchive: true, inputFile: sharedDcmtFile, onSavedAsyncCallback: async (tid, did) => {
|
|
@@ -823,7 +671,7 @@ const TMSearchResult = ({ allTasks = [], getAllTasks, deleteTaskByIdsCallback, a
|
|
|
823
671
|
_jsx(TMModal, { title: "Documenti condivisi", onClose: () => {
|
|
824
672
|
setSharedDcmtSearchResults([]);
|
|
825
673
|
}, width: isMobile ? '90%' : '60%', height: isMobile ? '90%' : '80%', children: _jsx(TMSearchResult, { searchResults: sharedDcmtSearchResults, allowFloatingBar: false, showSelector: true, disableAccordionIfSingleCategory: true, showBackButton: isMobile, allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers }) }), (showCheckoutInformationForm && fromDTD && getSelectedDcmtsOrFocused(selectedItems, focusedItem).length > 0) &&
|
|
826
|
-
_jsx(
|
|
674
|
+
_jsx(TMDcmtCheckoutInfoForm, { dtdName: fromDTD.name ?? SDKUI_Localizator.SearchResult, selectedDcmtOrFocused: getSelectedDcmtsOrFocused(selectedItems, focusedItem)[0], onClose: hideCheckoutInformationFormCallback }), (floatingActionConfig && floatingActionConfig.isVisible) && _jsx(TMSearchResultFloatingActionButton, { selectedDcmtsOrFocused: getSelectedDcmtsOrFocused(selectedItems, focusedItem), config: floatingActionConfig })] }), [
|
|
827
675
|
searchResults,
|
|
828
676
|
selectedSearchResult,
|
|
829
677
|
lastUpdateSearchTime,
|
|
@@ -874,9 +722,12 @@ const TMSearchResult = ({ allTasks = [], getAllTasks, deleteTaskByIdsCallback, a
|
|
|
874
722
|
isMobile,
|
|
875
723
|
currentMetadataValues,
|
|
876
724
|
sharedDcmtFile,
|
|
877
|
-
onRefreshSearchAsync
|
|
725
|
+
onRefreshSearchAsync,
|
|
726
|
+
handleNavigateToWGs,
|
|
727
|
+
handleNavigateToDossiers,
|
|
728
|
+
editPdfForm
|
|
878
729
|
]);
|
|
879
|
-
const tmBlog = useMemo(() => _jsx(TMDcmtBlog, { tid: focusedItem?.TID, did: focusedItem?.DID, fetchBlogDataTrigger: refreshBlogTrigger, allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers }), [focusedItem, allTasks, refreshBlogTrigger]);
|
|
730
|
+
const tmBlog = useMemo(() => _jsx(TMDcmtBlog, { tid: focusedItem?.TID, did: focusedItem?.DID, fetchBlogDataTrigger: refreshBlogTrigger, allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers }), [focusedItem, allTasks, refreshBlogTrigger, handleNavigateToWGs, handleNavigateToDossiers]);
|
|
880
731
|
const tmSysMetadata = useMemo(() => _jsx(TMMetadataValues, { layoutMode: LayoutModes.Update, openChooserBySingleClick: true, TID: focusedItem?.TID, isReadOnly: true, deviceType: deviceType, metadataValues: currentMetadataValues.filter(o => (o.mid != undefined && o.mid <= 100)), metadataValuesOrig: currentMetadataValues.filter(o => (o.mid != undefined && o.mid <= 100)), validationItems: [] }), [focusedItem, currentMetadataValues, deviceType]);
|
|
881
732
|
const tmDcmtPreview = useMemo(() => _jsx(TMDcmtPreviewWrapper, { currentDcmt: currentDcmt }, refreshPreviewTrigger), [currentDcmt, refreshPreviewTrigger]);
|
|
882
733
|
const allInitialPanelVisibility = {
|
|
@@ -936,12 +787,12 @@ const TMSearchResult = ({ allTasks = [], getAllTasks, deleteTaskByIdsCallback, a
|
|
|
936
787
|
gap: Gutters.getGutters(),
|
|
937
788
|
width: '100%',
|
|
938
789
|
height: '100%',
|
|
939
|
-
}, children: _jsx(TMLayoutWaitingContainer, { direction: 'vertical', showWaitPanel: showWaitPanel, showWaitPanelPrimary: showPrimary, showWaitPanelSecondary: showSecondary, waitPanelTitle: waitPanelTitle, waitPanelTextPrimary: waitPanelTextPrimary, waitPanelValuePrimary: waitPanelValuePrimary, waitPanelMaxValuePrimary: waitPanelMaxValuePrimary, waitPanelTextSecondary: waitPanelTextSecondary, waitPanelValueSecondary: waitPanelValueSecondary, waitPanelMaxValueSecondary: waitPanelMaxValueSecondary, isCancelable: true, abortController: abortController, children: _jsx(TMLayoutWaitingContainer, { direction: 'vertical', showWaitPanel:
|
|
790
|
+
}, children: _jsx(TMLayoutWaitingContainer, { direction: 'vertical', showWaitPanel: showWaitPanel, showWaitPanelPrimary: showPrimary, showWaitPanelSecondary: showSecondary, waitPanelTitle: waitPanelTitle, waitPanelTextPrimary: waitPanelTextPrimary, waitPanelValuePrimary: waitPanelValuePrimary, waitPanelMaxValuePrimary: waitPanelMaxValuePrimary, waitPanelTextSecondary: waitPanelTextSecondary, waitPanelValueSecondary: waitPanelValueSecondary, waitPanelMaxValueSecondary: waitPanelMaxValueSecondary, isCancelable: true, abortController: abortController, children: _jsx(TMLayoutWaitingContainer, { direction: 'vertical', showWaitPanel: showCicoWaitPanel, showWaitPanelPrimary: showCicoPrimaryProgress, waitPanelTitle: cicoWaitPanelTitle, waitPanelTextPrimary: cicoPrimaryProgressText, waitPanelValuePrimary: cicoPrimaryProgressValue, waitPanelMaxValuePrimary: cicoPrimaryProgressMax, isCancelable: true, abortController: abortControllerLocal, children: (groupId && groupId.length > 0) ?
|
|
940
791
|
_jsx(TMPanelManagerContainer, { panels: initialPanels, direction: "horizontal", parentId: groupId, showToolbar: showSearchResultSidebar })
|
|
941
792
|
:
|
|
942
793
|
_jsx(TMPanelManagerProvider, { panels: initialPanels, initialVisibility: allInitialPanelVisibility, defaultDimensions: initialPanelDimensions, initialDimensions: initialPanelDimensions, initialMobilePanelId: 'tmSearchResult', children: _jsx(TMPanelManagerContainer, { panels: initialPanels, direction: "horizontal", parentId: groupId, showToolbar: showSearchResultSidebar }) }) }) }) }), _jsx(StyledMultiViewPanel, { "$isVisible": isOpenDetails, children: isOpenDetails && _jsx(TMMasterDetailDcmts, { deviceType: deviceType, isForMaster: false, inputDcmts: getSelectionDcmtInfo(), allowNavigation: focusedItem && selectedItems.length <= 0, canNext: canNavigateHandler('next'), canPrev: canNavigateHandler('prev'), onNext: () => onNavigateHandler('next'), onPrev: () => onNavigateHandler('prev'), onBack: () => setIsOpenDetails(false), allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers }) }), _jsxs(StyledMultiViewPanel, { "$isVisible": isOpenMaster, children: [isOpenMaster && _jsx(TMMasterDetailDcmts, { deviceType: deviceType, inputDcmts: getSelectionDcmtInfo(), isForMaster: true, allowNavigation: focusedItem && selectedItems.length <= 0, canNext: canNavigateHandler('next'), canPrev: canNavigateHandler('prev'), onNext: () => onNavigateHandler('next'), onPrev: () => onNavigateHandler('prev'), onBack: () => setIsOpenMaster(false), appendMasterDcmts: handleAddItem, allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers }), secondaryMasterDcmts.length > 0 && secondaryMasterDcmts.map((dcmt, index) => {
|
|
943
794
|
return (_jsx(StyledModalContainer, { style: { backgroundColor: 'white' }, children: _jsx(TMMasterDetailDcmts, { deviceType: deviceType, inputDcmts: [dcmt], isForMaster: true, allowNavigation: false, onBack: () => handleRemoveItem(dcmt.TID, dcmt.DID), appendMasterDcmts: handleAddItem, allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers }) }, `${index}-${dcmt.DID}`));
|
|
944
|
-
})] }), _jsx(StyledMultiViewPanel, { "$isVisible": isOpenDcmtForm, children: isOpenDcmtForm && focusedItem?.TID !== undefined && focusedItem?.DID !== undefined && _jsx(TMDcmtForm, { isModal: openDcmtFormAsModal || (dcmtFormLayoutMode === LayoutModes.Ark && focusedItem?.DID), titleModal: fromDTD?.name ?? '', TID: focusedItem.TID, DID: focusedItem.DID, allowButtonsRefs: true, layoutMode: dcmtFormLayoutMode, count: visibleItems.length, itemIndex: visibleItems.findIndex(o => o.rowIndex === focusedItem?.rowIndex) + 1, canNext: canNavigateHandler('next'), canPrev: canNavigateHandler('prev'), onNext: () => onNavigateHandler('next'), onPrev: () => onNavigateHandler('prev'), onClose: () => { setIsOpenDcmtForm(false); }, onWFOperationCompleted: onWFOperationCompleted, onTaskCreateRequest: onTaskCreateRequest, onSavedAsyncCallback: handleSavedAsyncCallback, openS4TViewer: openS4TViewer, onOpenS4TViewerRequest: onOpenS4TViewerRequest, onReferenceClick: onReferenceClick, allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers }) }), isOpenArchiveRelationForm && _jsx(TMDcmtForm, { isModal: true, titleModal: SDKUI_Localizator.Archive + ' - ' + (archiveType === 'detail' ? SDKUI_Localizator.DcmtsDetail : SDKUI_Localizator.DcmtsMaster), TID: archiveRelatedDcmtFormTID, layoutMode: LayoutModes.Ark, inputMids: archiveRelatedDcmtFormMids, showBackButton: false, allowButtonsRefs: false, onClose: () => {
|
|
795
|
+
})] }), _jsx(StyledMultiViewPanel, { "$isVisible": isOpenDcmtForm, children: isOpenDcmtForm && focusedItem?.TID !== undefined && focusedItem?.DID !== undefined && _jsx(TMDcmtForm, { isModal: openDcmtFormAsModal || (dcmtFormLayoutMode === LayoutModes.Ark && focusedItem?.DID), titleModal: fromDTD?.name ?? '', TID: focusedItem.TID, DID: focusedItem.DID, allowButtonsRefs: true, layoutMode: dcmtFormLayoutMode, count: visibleItems.length, itemIndex: visibleItems.findIndex(o => o.rowIndex === focusedItem?.rowIndex) + 1, canNext: canNavigateHandler('next'), canPrev: canNavigateHandler('prev'), onNext: () => onNavigateHandler('next'), onPrev: () => onNavigateHandler('prev'), onClose: () => { setIsOpenDcmtForm(false); }, onWFOperationCompleted: onWFOperationCompleted, onTaskCreateRequest: onTaskCreateRequest, onSavedAsyncCallback: handleSavedAsyncCallback, openS4TViewer: openS4TViewer, onOpenS4TViewerRequest: onOpenS4TViewerRequest, onReferenceClick: onReferenceClick, allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers, moreInfoTasks: getMoreInfoTasksForDocument(allTasks, focusedItem?.TID, focusedItem?.DID) }) }), isOpenArchiveRelationForm && _jsx(TMDcmtForm, { isModal: true, titleModal: SDKUI_Localizator.Archive + ' - ' + (archiveType === 'detail' ? SDKUI_Localizator.DcmtsDetail : SDKUI_Localizator.DcmtsMaster), TID: archiveRelatedDcmtFormTID, layoutMode: LayoutModes.Ark, inputMids: archiveRelatedDcmtFormMids, showBackButton: false, allowButtonsRefs: false, onClose: () => {
|
|
945
796
|
setIsOpenArchiveRelationForm(false);
|
|
946
797
|
setArchiveType(undefined);
|
|
947
798
|
setArchiveRelatedDcmtFormTID(undefined);
|
|
@@ -952,19 +803,20 @@ const TMSearchResult = ({ allTasks = [], getAllTasks, deleteTaskByIdsCallback, a
|
|
|
952
803
|
setArchiveRelatedDcmtFormTID(undefined);
|
|
953
804
|
setArchiveRelatedDcmtFormMids([]);
|
|
954
805
|
await onRefreshSearchAsync?.();
|
|
955
|
-
}, allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers }), (showSignSettingsForm && fromDTD) && _jsx(TMSignSettingsForm, { fromDTD: fromDTD, inputDcmts: allFieldSelectedDocs, onCloseSignSettingsForm: closeSignSettingsForm, onSavedAsyncCallback: handleSavedAsyncCallback }), (showHistory && fromDTD && getSelectedDcmtsOrFocused(selectedItems, focusedItem).length > 0) && _jsx(TMViewHistoryDcmt, { fromDTD: fromDTD, deviceType: deviceType, inputDcmt: getSelectedDcmtsOrFocused(selectedItems, focusedItem)[0], onClose:
|
|
806
|
+
}, allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers }), (showSignSettingsForm && fromDTD) && _jsx(TMSignSettingsForm, { fromDTD: fromDTD, inputDcmts: allFieldSelectedDocs, onCloseSignSettingsForm: closeSignSettingsForm, onSavedAsyncCallback: handleSavedAsyncCallback }), (showHistory && fromDTD && getSelectedDcmtsOrFocused(selectedItems, focusedItem).length > 0) && _jsx(TMViewHistoryDcmt, { fromDTD: fromDTD, deviceType: deviceType, inputDcmt: getSelectedDcmtsOrFocused(selectedItems, focusedItem)[0], onClose: hideHistoryCallback, allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers }), (commentFormState.show && getSelectedDcmtsOrFocused(selectedItems, focusedItem).length > 0) && _jsx(TMBlogCommentForm, { context: { engine: 'SearchEngine', object: { tid: getSelectedDcmtsOrFocused(selectedItems, focusedItem)[0].TID, did: getSelectedDcmtsOrFocused(selectedItems, focusedItem)[0].DID } }, onClose: hideCommentFormCallback, refreshCallback: triggerBlogRefresh, participants: [], showAttachmentsSection: true, allArchivedDocumentsFileItems: convertSearchResultDescriptorToFileItems(currentSearchResults ?? []), isCommentRequired: commentFormState.isRequired, removeAndEditAttachment: commentFormState.removeAndEditAttachment, selectedAttachmentDid: [Number(getSelectedDcmtsOrFocused(selectedItems, focusedItem)[0].DID)] })] }));
|
|
956
807
|
};
|
|
957
808
|
export default TMSearchResult;
|
|
958
|
-
const
|
|
959
|
-
return _jsx(TMDcmtIcon, { tid: cellData.data.TID, did: cellData.data.DID, fileExtension: cellData.data.FILEEXT, fileCount: cellData.data.FILECOUNT, isLexProt: cellData.data.IsLexProt, isMail: cellData.data.ISMAIL, isShared: cellData.data.ISSHARED, isSigned: cellData.data.ISSIGNED, downloadMode: 'openInNewWindow', onDownloadDcmtsAsync: onDownloadDcmtsAsync, openInOffice: openInOffice });
|
|
960
|
-
};
|
|
961
|
-
const TMSearchResultGrid = ({ openInOffice, fromDTD, allUsers, inputFocusedItem, showSearch, allowMultipleSelection = true, showExportForm = false, onCloseExportForm, onFocusedItemChanged, onDownloadDcmtsAsync, onVisibleItemChanged, inputSelectedItems = [], lastUpdateSearchTime, searchResult, onContextMenuPreparing, onSelectionChanged, onDblClick }) => {
|
|
809
|
+
const TMSearchResultGrid = ({ openInOffice, fromDTD, allUsers, inputFocusedItem, showSearch, allowMultipleSelection = true, showExportForm = false, onCloseExportForm, onFocusedItemChanged, onDownloadDcmtsAsync, onVisibleItemChanged, inputSelectedItems = [], lastUpdateSearchTime, searchResult, floatingMenuItems, onSelectionChanged, onDblClick }) => {
|
|
962
810
|
const [dataSource, setDataSource] = useState();
|
|
963
811
|
const [columns, setColumns] = useState([]);
|
|
964
812
|
// State to store selected row keys
|
|
965
813
|
const [selectedRowKeys, setSelectedRowKeys] = useState([]);
|
|
966
814
|
const [focusedItem, setFocusedItem] = useState();
|
|
967
815
|
const [visibleItems, setVisibleItems] = useState([]);
|
|
816
|
+
const [pageSize, setPageSize] = useState(SDKUI_Globals.userSettings.searchSettings?.pageSize ?? TMDataGridPageSize.Large);
|
|
817
|
+
const [isDataGridReady, setIsDataGridReady] = useState(false);
|
|
818
|
+
const { loadDataListsAsync, renderDataListCell, dataListsCache } = useDataListItem();
|
|
819
|
+
const { loadUsersAsync, renderUserIdViewer, usersCache } = useDataUserIdItem();
|
|
968
820
|
useEffect(() => {
|
|
969
821
|
if (deepCompare(inputFocusedItem, focusedItem))
|
|
970
822
|
return;
|
|
@@ -976,6 +828,12 @@ const TMSearchResultGrid = ({ openInOffice, fromDTD, allUsers, inputFocusedItem,
|
|
|
976
828
|
return;
|
|
977
829
|
setSelectedRowKeys(inputSelectedItemsRowIndex);
|
|
978
830
|
}, [inputSelectedItems]);
|
|
831
|
+
useEffect(() => {
|
|
832
|
+
const newPageSize = SDKUI_Globals.userSettings.searchSettings?.pageSize ?? TMDataGridPageSize.Large;
|
|
833
|
+
if (newPageSize !== pageSize) {
|
|
834
|
+
setPageSize(newPageSize);
|
|
835
|
+
}
|
|
836
|
+
}, [SDKUI_Globals.userSettings.searchSettings?.pageSize]);
|
|
979
837
|
const onKeyDown = useCallback((e) => {
|
|
980
838
|
// Check if the pressed key is the "Delete" key.
|
|
981
839
|
if (e.event?.key === 'Delete' && !showExportForm) {
|
|
@@ -1033,6 +891,9 @@ const TMSearchResultGrid = ({ openInOffice, fromDTD, allUsers, inputFocusedItem,
|
|
|
1033
891
|
}
|
|
1034
892
|
}
|
|
1035
893
|
}, [inputSelectedItems, inputFocusedItem, dataSource]);
|
|
894
|
+
const cellRenderDcmtIcon = useCallback((cellData, onDownloadDcmtsAsync, openInOffice) => {
|
|
895
|
+
return _jsx(TMDcmtIcon, { tid: cellData.data.TID, did: cellData.data.DID, fileExtension: cellData.data.FILEEXT, fileCount: cellData.data.FILECOUNT, isLexProt: cellData.data.IsLexProt, isMail: cellData.data.ISMAIL, isShared: cellData.data.ISSHARED, isSigned: cellData.data.ISSIGNED, downloadMode: 'openInNewWindow', onDownloadDcmtsAsync: onDownloadDcmtsAsync, openInOffice: openInOffice });
|
|
896
|
+
}, []);
|
|
1036
897
|
const cellRender = useCallback((cellData, dataDomain, dataListID, dataListViewMode) => {
|
|
1037
898
|
if (!cellData || cellData.value === undefined)
|
|
1038
899
|
return null;
|
|
@@ -1054,10 +915,10 @@ const TMSearchResultGrid = ({ openInOffice, fromDTD, allUsers, inputFocusedItem,
|
|
|
1054
915
|
}
|
|
1055
916
|
let child = _jsx("div", { children: cellData.text });
|
|
1056
917
|
if (dataDomain === MetadataDataDomains.DataList) {
|
|
1057
|
-
child =
|
|
918
|
+
child = renderDataListCell(cellData.value, dataListID, dataListViewMode);
|
|
1058
919
|
}
|
|
1059
920
|
if (dataDomain === MetadataDataDomains.UserID) {
|
|
1060
|
-
child =
|
|
921
|
+
child = renderUserIdViewer(cellData.value, true);
|
|
1061
922
|
}
|
|
1062
923
|
return (_jsxs("div", { style: style, children: [shouldShowCheckoutIcon && checkoutStatus.icon, child] }));
|
|
1063
924
|
}, [fromDTD, allUsers]);
|
|
@@ -1110,32 +971,128 @@ const TMSearchResultGrid = ({ openInOffice, fromDTD, allUsers, inputFocusedItem,
|
|
|
1110
971
|
return { type: 'currency', currency: "JPY" };
|
|
1111
972
|
return undefined;
|
|
1112
973
|
}, []);
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
974
|
+
/**
|
|
975
|
+
* Genera la configurazione delle colonne della griglia con i relativi headerFilter.
|
|
976
|
+
* Per le colonne di tipo DataList e UserID, crea headerFilter con valori leggibili (nomi/descrizioni)
|
|
977
|
+
* invece delle chiavi numeriche, migliorando l'esperienza utente durante il filtraggio.
|
|
978
|
+
*/
|
|
979
|
+
const generateColumns = useCallback(() => {
|
|
980
|
+
// Verifica che esistano colonne da processare
|
|
981
|
+
if (!searchResult?.dtdResult?.columns)
|
|
982
|
+
return [];
|
|
983
|
+
// Genera chiavi univoche per ogni colonna basate sul TID del risultato
|
|
1119
984
|
const uniqueKeys = generateUniqueColumnKeys(searchResult?.dtdResult?.columns, searchResult?.fromTID);
|
|
1120
|
-
|
|
985
|
+
const cols = [];
|
|
986
|
+
// Itera su ogni colonna del risultato di ricerca
|
|
987
|
+
searchResult.dtdResult.columns.map((col, index) => {
|
|
988
|
+
// Determina se la colonna è visibile (non nascosta)
|
|
1121
989
|
const isVisible = col.extendedProperties?.["Visibility"] != "Hidden";
|
|
990
|
+
// Estrae il dominio dati della colonna (es. DataList, UserID, None)
|
|
1122
991
|
const dataDomain = MetadataDataDomains[(col.extendedProperties?.["DataDomain"] ?? "None")];
|
|
992
|
+
// Estrae l'ID della DataList associata (se presente)
|
|
1123
993
|
const dataListID = Number(col.extendedProperties?.["DataListID"]);
|
|
994
|
+
// Estrae la modalità di visualizzazione della DataList
|
|
1124
995
|
const dataListViewMode = DataListViewModes[(col.extendedProperties?.["DataListViewMode"] ?? "None")];
|
|
996
|
+
// Inizializza la configurazione del filtro header
|
|
997
|
+
let headerFilterConfig = undefined;
|
|
998
|
+
// Configurazione headerFilter per colonne DataList
|
|
999
|
+
if (dataDomain === MetadataDataDomains.DataList && dataListID) {
|
|
1000
|
+
// Recupera gli elementi della DataList dalla cache
|
|
1001
|
+
const dataListItems = dataListsCache.current.get(dataListID);
|
|
1002
|
+
if (dataListItems && dataListItems.length > 0) {
|
|
1003
|
+
// Crea il datasource per l'headerFilter mostrando il nome (text) ma filtrando per valore (value)
|
|
1004
|
+
headerFilterConfig = {
|
|
1005
|
+
dataSource: dataListItems
|
|
1006
|
+
.filter(item => item.name != null && item.value != null)
|
|
1007
|
+
.map(item => ({
|
|
1008
|
+
text: item.name,
|
|
1009
|
+
value: item.value
|
|
1010
|
+
}))
|
|
1011
|
+
};
|
|
1012
|
+
}
|
|
1013
|
+
}
|
|
1014
|
+
// Configurazione headerFilter per colonne UserID
|
|
1015
|
+
if (dataDomain === MetadataDataDomains.UserID) {
|
|
1016
|
+
// Recupera tutti gli utenti dalla cache
|
|
1017
|
+
const users = Array.from(usersCache.current.values());
|
|
1018
|
+
if (users.length > 0) {
|
|
1019
|
+
// Crea il datasource per l'headerFilter mostrando nome utente completo (dominio\nome)
|
|
1020
|
+
headerFilterConfig = {
|
|
1021
|
+
dataSource: users
|
|
1022
|
+
.filter(user => user.name != null && user.id != null)
|
|
1023
|
+
.map(user => ({
|
|
1024
|
+
text: user.domain ? `${user.domain}\\${user.name}` : user.name,
|
|
1025
|
+
value: user.id
|
|
1026
|
+
}))
|
|
1027
|
+
};
|
|
1028
|
+
}
|
|
1029
|
+
}
|
|
1030
|
+
// Aggiunge la configurazione della colonna all'array
|
|
1125
1031
|
cols.push({
|
|
1126
1032
|
dataField: uniqueKeys[index],
|
|
1127
1033
|
dataType: dataType(col),
|
|
1128
1034
|
visible: isVisible,
|
|
1129
1035
|
cellRender: (cellData) => cellRender(cellData, dataDomain, dataListID, dataListViewMode),
|
|
1036
|
+
headerFilter: headerFilterConfig,
|
|
1130
1037
|
caption: col.caption,
|
|
1131
1038
|
format: getDisplayFormat(col),
|
|
1132
1039
|
});
|
|
1133
1040
|
});
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1041
|
+
return cols;
|
|
1042
|
+
}, [searchResult, dataType, cellRender, getDisplayFormat, dataListsCache, usersCache]);
|
|
1043
|
+
/**
|
|
1044
|
+
* Effect che carica i dati necessari e genera le colonne della griglia.
|
|
1045
|
+
* Esegue il caricamento delle cache (DataList e UserID) in parallelo prima di generare le colonne,
|
|
1046
|
+
* garantendo che gli headerFilter abbiano tutti i dati disponibili.
|
|
1047
|
+
*/
|
|
1048
|
+
useEffect(() => {
|
|
1049
|
+
// Verifica che siano disponibili il tipo documento e i risultati di ricerca
|
|
1050
|
+
if (fromDTD === undefined || searchResult === undefined)
|
|
1051
|
+
return;
|
|
1052
|
+
const loadColumnsAndData = async () => {
|
|
1053
|
+
// Resetta l'elemento focalizzato quando si caricano nuovi dati
|
|
1054
|
+
setFocusedItem(undefined);
|
|
1055
|
+
setIsDataGridReady(false);
|
|
1056
|
+
// Set per raccogliere gli ID univoci da precaricare
|
|
1057
|
+
const dataListIDs = new Set();
|
|
1058
|
+
const userIDs = new Set();
|
|
1059
|
+
// Itera sulle colonne per identificare quali DataList devono essere caricate
|
|
1060
|
+
searchResult?.dtdResult?.columns?.forEach((col) => {
|
|
1061
|
+
const dataDomain = MetadataDataDomains[(col.extendedProperties?.["DataDomain"] ?? "None")];
|
|
1062
|
+
const dataListID = Number(col.extendedProperties?.["DataListID"]);
|
|
1063
|
+
// Se la colonna è di tipo DataList, aggiunge l'ID al set per il caricamento
|
|
1064
|
+
if (dataDomain === MetadataDataDomains.DataList && dataListID) {
|
|
1065
|
+
dataListIDs.add(dataListID);
|
|
1066
|
+
}
|
|
1067
|
+
});
|
|
1068
|
+
// Itera sulle righe per identificare quali UserID devono essere caricati
|
|
1069
|
+
searchResult?.dtdResult?.rows?.forEach((row) => {
|
|
1070
|
+
searchResult?.dtdResult?.columns?.forEach((col, colIndex) => {
|
|
1071
|
+
const dataDomain = MetadataDataDomains[(col.extendedProperties?.["DataDomain"] ?? "None")];
|
|
1072
|
+
// Se la colonna è di tipo UserID, estrae l'ID dalla riga e lo aggiunge al set
|
|
1073
|
+
if (dataDomain === MetadataDataDomains.UserID) {
|
|
1074
|
+
const userId = Number(row[colIndex]);
|
|
1075
|
+
if (userId && userId > 0) {
|
|
1076
|
+
userIDs.add(userId);
|
|
1077
|
+
}
|
|
1078
|
+
}
|
|
1079
|
+
});
|
|
1080
|
+
});
|
|
1081
|
+
// Carica in parallelo le cache di DataList e UserID per ottimizzare le prestazioni
|
|
1082
|
+
await Promise.all([
|
|
1083
|
+
loadDataListsAsync(dataListIDs),
|
|
1084
|
+
loadUsersAsync(userIDs)
|
|
1085
|
+
]);
|
|
1086
|
+
// Genera colonne con cache popolate per garantire headerFilter completi
|
|
1087
|
+
const cols = generateColumns();
|
|
1088
|
+
setColumns(cols);
|
|
1089
|
+
// Converte i risultati di ricerca in un array semplice per la griglia
|
|
1090
|
+
let newDataSource = searchResultDescriptorToSimpleArray(searchResult);
|
|
1091
|
+
setDataSource(newDataSource);
|
|
1092
|
+
setIsDataGridReady(true);
|
|
1093
|
+
};
|
|
1094
|
+
loadColumnsAndData();
|
|
1095
|
+
}, [searchResult, fromDTD, allUsers, loadDataListsAsync, loadUsersAsync, generateColumns]);
|
|
1139
1096
|
useEffect(() => {
|
|
1140
1097
|
let newDataSource = searchResultDescriptorToSimpleArray(searchResult);
|
|
1141
1098
|
setDataSource(newDataSource);
|
|
@@ -1190,9 +1147,10 @@ const TMSearchResultGrid = ({ openInOffice, fromDTD, allUsers, inputFocusedItem,
|
|
|
1190
1147
|
caption: '',
|
|
1191
1148
|
visible: true,
|
|
1192
1149
|
width: 50,
|
|
1193
|
-
cellRender: (cellData) =>
|
|
1150
|
+
cellRender: (cellData) => cellRenderDcmtIcon(cellData, onDownloadDcmtsAsync, openInOffice),
|
|
1194
1151
|
allowResizing: false,
|
|
1195
|
-
filterOperations: ['=', "anyof"]
|
|
1152
|
+
filterOperations: ['=', "anyof"],
|
|
1153
|
+
allowHiding: false,
|
|
1196
1154
|
},
|
|
1197
1155
|
...columns.filter(col => col.dataField !== 'FILEEXT')
|
|
1198
1156
|
];
|
|
@@ -1206,7 +1164,7 @@ const TMSearchResultGrid = ({ openInOffice, fromDTD, allUsers, inputFocusedItem,
|
|
|
1206
1164
|
setVisibleItems(visibleRows.map((row) => { return row.data; }));
|
|
1207
1165
|
}, []);
|
|
1208
1166
|
useEffect(() => { onVisibleItemChanged?.(visibleItems); }, [visibleItems]);
|
|
1209
|
-
return _jsxs("div", { style: { width: "100%", height: "100%" }, children: [_jsx(TMDataGrid, { id: "tm-search-result", keyExpr: "rowIndex", dataColumns: dataColumns, dataSource: dataSource, repaintChangesOnly: true, selectedRowKeys: selectedRowKeys, focusedRowKey: Number(focusedItem?.rowIndex ?? 0), showSearchPanel: showSearch, showFilterPanel: true, sorting: { mode: "multiple" }, selection: { mode: allowMultipleSelection ? 'multiple' : 'single' }, pageSize:
|
|
1167
|
+
return _jsxs("div", { style: { width: "100%", height: "100%" }, children: [!isDataGridReady && (_jsxs("div", { style: { display: 'flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', height: '100%', width: '100%', gap: '10px' }, children: [_jsx(LoadIndicator, { height: 60, width: 60 }), _jsx("div", { children: SDKUI_Localizator.Loading })] })), isDataGridReady && _jsx(TMDataGrid, { id: "tm-search-result", keyExpr: "rowIndex", dataColumns: dataColumns, dataSource: dataSource, repaintChangesOnly: true, selectedRowKeys: selectedRowKeys, focusedRowKey: Number(focusedItem?.rowIndex ?? 0), showSearchPanel: showSearch, showFilterPanel: true, sorting: { mode: "multiple" }, selection: { mode: allowMultipleSelection ? 'multiple' : 'single' }, pageSize: pageSize, onSelectionChanged: handleSelectionChange, onFocusedRowChanged: handleFocusedRowChange, onRowDblClick: onRowDblClick, onContentReady: onContentReady, showHeaderColumnChooser: true, onKeyDown: onKeyDown, customContextMenuItems: floatingMenuItems, counterConfig: { show: true } }), (showExportForm && searchResult && onCloseExportForm) && _jsx(TMDataGridExportForm, { dataColumns: dataColumns, dataSource: dataSource, selectedRowKeys: selectedRowKeys, onCloseExportForm: onCloseExportForm, searchResult: searchResult })] });
|
|
1210
1168
|
};
|
|
1211
1169
|
//#region TMSearchResultSelector
|
|
1212
1170
|
const StyledItemTemplate = styled.div `
|