@topconsultnpm/sdkui-react 6.20.0-dev2.9 → 6.20.0-dev3.10
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/styles.d.ts +3 -1
- package/lib/components/NewComponents/ContextMenu/styles.js +7 -5
- package/lib/components/base/Styled.d.ts +4 -1
- package/lib/components/base/Styled.js +11 -3
- package/lib/components/base/TMTreeView.d.ts +3 -1
- package/lib/components/base/TMTreeView.js +64 -21
- package/lib/components/choosers/TMDataListItemEditor.d.ts +11 -0
- package/lib/components/choosers/TMDataListItemEditor.js +130 -0
- package/lib/components/choosers/TMDataListItemFields.d.ts +11 -0
- package/lib/components/choosers/TMDataListItemFields.js +61 -0
- package/lib/components/choosers/TMDataListItemPicker.d.ts +1 -0
- package/lib/components/choosers/TMDataListItemPicker.js +178 -18
- package/lib/components/choosers/TMImageIDChooser.d.ts +16 -0
- package/lib/components/choosers/TMImageIDChooser.js +53 -0
- package/lib/components/choosers/TMMetadataChooser.js +1 -1
- package/lib/components/editors/TMDateBox.js +1 -1
- package/lib/components/editors/TMHtmlEditor.js +1 -1
- package/lib/components/editors/TMLocalizedTextBox.d.ts +1 -0
- package/lib/components/editors/TMLocalizedTextBox.js +3 -3
- package/lib/components/editors/TMTextBox.js +9 -10
- package/lib/components/features/archive/TMArchive.d.ts +3 -1
- package/lib/components/features/archive/TMArchive.js +31 -44
- package/lib/components/features/blog/TMBlogCommentForm.d.ts +3 -0
- package/lib/components/features/blog/TMBlogCommentForm.js +42 -36
- package/lib/components/features/documents/TMDcmtForm.d.ts +3 -1
- package/lib/components/features/documents/TMDcmtForm.js +197 -53
- package/lib/components/features/documents/TMDcmtTasks.d.ts +3 -1
- package/lib/components/features/documents/TMDcmtTasks.js +2 -2
- package/lib/components/features/documents/TMFileUploader.d.ts +5 -0
- package/lib/components/features/documents/TMFileUploader.js +28 -6
- package/lib/components/features/documents/TMMasterDetailDcmts.js +68 -84
- package/lib/components/features/documents/TMRelationViewer.d.ts +7 -1
- package/lib/components/features/documents/TMRelationViewer.js +395 -78
- package/lib/components/features/search/TMSearchResult.d.ts +2 -0
- package/lib/components/features/search/TMSearchResult.js +86 -91
- package/lib/components/features/search/TMSearchResultsMenuItems.d.ts +1 -1
- package/lib/components/features/search/TMSearchResultsMenuItems.js +6 -18
- package/lib/components/features/search/TMTreeSelector.js +1 -1
- package/lib/components/features/tasks/TMTaskForm.d.ts +1 -0
- package/lib/components/features/tasks/TMTaskForm.js +61 -193
- package/lib/components/features/tasks/TMTaskFormUtils.d.ts +80 -0
- package/lib/components/features/tasks/TMTaskFormUtils.js +559 -0
- package/lib/components/features/tasks/TMTasksUtils.d.ts +3 -1
- package/lib/components/features/tasks/TMTasksUtils.js +46 -16
- package/lib/components/features/tasks/TMTasksUtilsView.d.ts +0 -7
- package/lib/components/features/tasks/TMTasksUtilsView.js +7 -14
- package/lib/components/features/tasks/TMTasksView.js +5 -3
- package/lib/components/features/workflow/TMWorkflowPopup.d.ts +20 -3
- package/lib/components/features/workflow/TMWorkflowPopup.js +14 -92
- package/lib/components/features/workflow/diagram/ConnectionComponent.d.ts +1 -0
- package/lib/components/features/workflow/diagram/ConnectionComponent.js +6 -2
- package/lib/components/features/workflow/diagram/DiagramItemForm.js +1 -1
- package/lib/components/features/workflow/diagram/WFDiagram.js +75 -5
- package/lib/components/forms/Login/TMLoginForm.js +1 -1
- package/lib/components/forms/TMSaveForm.js +61 -13
- package/lib/components/grids/TMBlogsPost.js +8 -8
- package/lib/components/grids/TMBlogsPostUtils.js +2 -2
- package/lib/components/grids/TMRecentsManager.js +1 -1
- package/lib/components/index.d.ts +2 -0
- package/lib/components/index.js +2 -0
- package/lib/components/pages/TMPage.js +4 -0
- package/lib/components/query/TMQueryEditor.d.ts +1 -0
- package/lib/components/query/TMQueryEditor.js +2 -2
- package/lib/helper/Enum_Localizator.js +5 -0
- package/lib/helper/GlobalStyles.js +3 -0
- package/lib/helper/SDKUI_Globals.d.ts +8 -0
- package/lib/helper/SDKUI_Globals.js +12 -0
- package/lib/helper/SDKUI_Localizator.d.ts +19 -3
- package/lib/helper/SDKUI_Localizator.js +182 -22
- package/lib/helper/TMIcons.d.ts +2 -1
- package/lib/helper/TMIcons.js +4 -1
- package/lib/helper/TMUtils.d.ts +13 -41
- package/lib/helper/TMUtils.js +86 -170
- package/lib/helper/helpers.d.ts +6 -2
- package/lib/helper/helpers.js +24 -8
- package/lib/helper/index.d.ts +1 -0
- package/lib/helper/index.js +1 -0
- package/lib/helper/queryHelper.js +1 -1
- package/lib/hooks/useBetaFeatures.d.ts +1 -0
- package/lib/hooks/useBetaFeatures.js +41 -0
- package/lib/hooks/useDcmtOperations.js +14 -2
- package/lib/hooks/useRelatedDocuments.js +34 -11
- package/lib/index.d.ts +1 -0
- package/lib/index.js +1 -0
- package/lib/services/platform_services.d.ts +1 -1
- package/lib/services/platform_services.js +4 -0
- package/package.json +2 -2
- package/lib/components/features/search/TMSignSettingsForm.d.ts +0 -9
- package/lib/components/features/search/TMSignSettingsForm.js +0 -621
|
@@ -8,13 +8,15 @@ import ConnectionComponent from './ConnectionComponent';
|
|
|
8
8
|
import DiagramItemComponent from './DiagramItemComponent';
|
|
9
9
|
import DiagramItemSvgContent from './DiagramItemSvgContent';
|
|
10
10
|
import { calculateArrowAngle, downloadFile, getConnectionPoint, getNewWfDiagram, isConnectionNonLinear, validateDiagram } from './workflowHelpers';
|
|
11
|
-
import { IconFlowChart, IconUndo, IconRestore, IconAdjust, IconCopy, IconCut, IconPaste, IconPin, IconUnpin, IconChevronRight, IconCloseOutline, IconNew, SDKUI_Localizator, generateUUID, IconExport, IconImport, IconWindowMaximize, IconZoomIn, IconZoomOut, IconPencil, IconLock, LocalizeDiagramItemType, IconWindowMinimize, IconZoomAuto } from '../../../../helper';
|
|
11
|
+
import { IconFlowChart, IconUndo, IconRestore, IconAdjust, IconCopy, IconCut, IconPaste, IconPin, IconUnpin, IconChevronRight, IconCloseOutline, IconNew, SDKUI_Localizator, generateUUID, IconExport, IconImport, IconWindowMaximize, IconZoomIn, IconZoomOut, IconPencil, IconLock, LocalizeDiagramItemType, IconWindowMinimize, IconZoomAuto, IconCloseCircle, IconSuccess } from '../../../../helper';
|
|
12
12
|
import { ButtonNames, TMExceptionBoxManager, TMMessageBoxManager } from '../../../base/TMPopUp';
|
|
13
13
|
import { StyledLoadingContainer, StyledSpinner } from '../../../base/Styled';
|
|
14
14
|
import DiagramItemForm from './DiagramItemForm';
|
|
15
15
|
import ReactDOM from 'react-dom';
|
|
16
16
|
import ConnectionForm from './ConnectionForm';
|
|
17
17
|
import TMFloatingMenuBar from '../../../NewComponents/FloatingMenuBar';
|
|
18
|
+
import TMContextMenu from '../../../NewComponents/ContextMenu/TMContextMenu';
|
|
19
|
+
import { TMColors } from '../../../../utils/theme';
|
|
18
20
|
const ZoomLevelText = styled.span `
|
|
19
21
|
font-size: 0.9em;
|
|
20
22
|
color: #555;
|
|
@@ -331,6 +333,9 @@ const WFDiagram = ({ xmlDiagramString, currentSetID, allowEdit = true, onDiagram
|
|
|
331
333
|
const [wfDiagram, setWfDiagram] = useState(null);
|
|
332
334
|
const [selectedItems, setSelectedItems] = useState(new Set());
|
|
333
335
|
const [selectedConnections, setSelectedConnections] = useState(new Set());
|
|
336
|
+
// Context menu per le connections
|
|
337
|
+
const [connectionContextMenuPosition, setConnectionContextMenuPosition] = useState({ x: 0, y: 0 });
|
|
338
|
+
const [contextMenuConnectionId, setContextMenuConnectionId] = useState(null);
|
|
334
339
|
const [wfDiagramHistory, setWfDiagramHistory] = useState([]);
|
|
335
340
|
const [historyIndex, setHistoryIndex] = useState(-1);
|
|
336
341
|
const isUndoingRedoing = useRef(false);
|
|
@@ -1311,6 +1316,62 @@ const WFDiagram = ({ xmlDiagramString, currentSetID, allowEdit = true, onDiagram
|
|
|
1311
1316
|
if (!isCtrlPressed)
|
|
1312
1317
|
setSelectedItems(new Set());
|
|
1313
1318
|
}, [isReadOnly]);
|
|
1319
|
+
const handleConnectionContextMenu = useCallback((id, event) => {
|
|
1320
|
+
if (isReadOnly)
|
|
1321
|
+
return;
|
|
1322
|
+
event.preventDefault();
|
|
1323
|
+
event.stopPropagation();
|
|
1324
|
+
// Trova la connection
|
|
1325
|
+
const connection = wfDiagram?.Connections.find(conn => conn.ID === id);
|
|
1326
|
+
if (!connection)
|
|
1327
|
+
return;
|
|
1328
|
+
// Verifica se esce da un DiagramItemTypes.Condition o Approval
|
|
1329
|
+
const sourceItem = wfDiagram?.DiagramItems.find(item => item.ID === connection.Source.ParentDiagramItem.ID);
|
|
1330
|
+
if (!sourceItem || ![DiagramItemTypes.Condition, DiagramItemTypes.Approval].includes(sourceItem.Type))
|
|
1331
|
+
return;
|
|
1332
|
+
// Mostra il context menu
|
|
1333
|
+
setContextMenuConnectionId(id);
|
|
1334
|
+
setConnectionContextMenuPosition({ x: event.clientX, y: event.clientY });
|
|
1335
|
+
}, [isReadOnly, wfDiagram]);
|
|
1336
|
+
const handleChangeConnectionOutputStatus = useCallback((connectionId) => {
|
|
1337
|
+
if (isReadOnly || !wfDiagram)
|
|
1338
|
+
return;
|
|
1339
|
+
const connection = wfDiagram.Connections.find(conn => conn.ID === connectionId);
|
|
1340
|
+
if (!connection)
|
|
1341
|
+
return;
|
|
1342
|
+
// Cambia l'OutputStatus da Completed a Rejected e viceversa
|
|
1343
|
+
const newStatus = connection.OutputStatus === WorkItemStatus.Completed
|
|
1344
|
+
? WorkItemStatus.Rejected
|
|
1345
|
+
: WorkItemStatus.Completed;
|
|
1346
|
+
const updatedDiagram = {
|
|
1347
|
+
...wfDiagram,
|
|
1348
|
+
Connections: wfDiagram.Connections.map(conn => conn.ID === connectionId ? { ...conn, OutputStatus: newStatus } : conn)
|
|
1349
|
+
};
|
|
1350
|
+
updateDiagram(updatedDiagram);
|
|
1351
|
+
setWfDiagram(updatedDiagram);
|
|
1352
|
+
setContextMenuConnectionId(null);
|
|
1353
|
+
}, [isReadOnly, wfDiagram, updateDiagram]);
|
|
1354
|
+
const closeConnectionContextMenu = useCallback(() => {
|
|
1355
|
+
setContextMenuConnectionId(null);
|
|
1356
|
+
}, []);
|
|
1357
|
+
// Menu items per il context menu delle connections
|
|
1358
|
+
const connectionContextMenuItems = useMemo(() => {
|
|
1359
|
+
if (!contextMenuConnectionId || !wfDiagram)
|
|
1360
|
+
return [];
|
|
1361
|
+
const connection = wfDiagram.Connections.find(conn => conn.ID === contextMenuConnectionId);
|
|
1362
|
+
if (!connection)
|
|
1363
|
+
return [];
|
|
1364
|
+
const targetStatus = connection.OutputStatus === WorkItemStatus.Completed
|
|
1365
|
+
? SDKUI_Localizator.WorkItemStatus_Rejected
|
|
1366
|
+
: SDKUI_Localizator.WorkItemStatus_Completed;
|
|
1367
|
+
return [{
|
|
1368
|
+
icon: connection.OutputStatus === WorkItemStatus.Completed
|
|
1369
|
+
? _jsx(IconCloseCircle, { color: TMColors.error, fontSize: 16 })
|
|
1370
|
+
: _jsx(IconSuccess, { color: TMColors.success, fontSize: 16 }),
|
|
1371
|
+
name: SDKUI_Localizator.ChangeStatusTo.replaceParams(targetStatus),
|
|
1372
|
+
onClick: () => handleChangeConnectionOutputStatus(contextMenuConnectionId)
|
|
1373
|
+
}];
|
|
1374
|
+
}, [contextMenuConnectionId, wfDiagram, handleChangeConnectionOutputStatus]);
|
|
1314
1375
|
const handleDrag = useCallback((id, newX, newY) => {
|
|
1315
1376
|
if (isReadOnly)
|
|
1316
1377
|
return;
|
|
@@ -1393,10 +1454,15 @@ const WFDiagram = ({ xmlDiagramString, currentSetID, allowEdit = true, onDiagram
|
|
|
1393
1454
|
if (sourceItem.Type === DiagramItemTypes.Condition || sourceItem.Type === DiagramItemTypes.Approval) {
|
|
1394
1455
|
const existingConnectionsFromSource = wfDiagram.Connections.filter(conn => conn.Source.ParentDiagramItem.ID === sourceItem.ID);
|
|
1395
1456
|
if (existingConnectionsFromSource.length === 0) {
|
|
1457
|
+
// Prima connessione → Completed
|
|
1396
1458
|
outputStatus = WorkItemStatus.Completed;
|
|
1397
1459
|
}
|
|
1398
1460
|
else if (existingConnectionsFromSource.length === 1) {
|
|
1399
|
-
|
|
1461
|
+
// Seconda connessione → contrario della prima
|
|
1462
|
+
const firstConnection = existingConnectionsFromSource[0];
|
|
1463
|
+
outputStatus = firstConnection.OutputStatus === WorkItemStatus.Completed
|
|
1464
|
+
? WorkItemStatus.Rejected
|
|
1465
|
+
: WorkItemStatus.Completed;
|
|
1400
1466
|
}
|
|
1401
1467
|
}
|
|
1402
1468
|
const newConnection = {
|
|
@@ -1820,7 +1886,7 @@ const WFDiagram = ({ xmlDiagramString, currentSetID, allowEdit = true, onDiagram
|
|
|
1820
1886
|
fullScreenRef.current.focus();
|
|
1821
1887
|
}
|
|
1822
1888
|
}, [isFullScreen]);
|
|
1823
|
-
const diagramContent = (_jsxs(CanvasContainer, { onDoubleClick: handleCanvasDoubleClick, children: [_jsx("input", { ref: fileInputRef, type: "file", accept: ".xml" // Filtra per file XML
|
|
1889
|
+
const diagramContent = (_jsxs(CanvasContainer, { onDoubleClick: handleCanvasDoubleClick, onContextMenu: (e) => e.preventDefault(), children: [_jsx("input", { ref: fileInputRef, type: "file", accept: ".xml" // Filtra per file XML
|
|
1824
1890
|
, onChange: handleFileChange, style: { display: 'none' } }), SDK_Globals.tmSession?.SessionDescr?.appModuleID === AppModules.SURFER ?
|
|
1825
1891
|
_jsx(TMFloatingMenuBar, { containerRef: diagramRef, defaultPosition: { x: 45, y: 85 }, enableConfigMode: false, fixedItems: [
|
|
1826
1892
|
{ icon: _jsx(IconZoomIn, {}), name: SDKUI_Localizator.ZoomIn, disabled: isAutoZoomEnabled, onClick: () => { handleZoomIn(); }, id: 'zoom-in', isPinned: true },
|
|
@@ -1842,8 +1908,12 @@ const WFDiagram = ({ xmlDiagramString, currentSetID, allowEdit = true, onDiagram
|
|
|
1842
1908
|
const sinkPoint = getConnectionPoint(sinkItem, connection.Sink.ConnectorName);
|
|
1843
1909
|
// Determina se questa è la connessione che stiamo trascinando
|
|
1844
1910
|
const isThisConnectionBeingDragged = isDraggingExistingConnectionEndpoint && draggingConnectionId === connection.ID;
|
|
1845
|
-
return (_jsx(ConnectionComponent, { connection: connection, isSelected: selectedConnections.has(connection.ID), sourcePoint: sourcePoint, sinkPoint: sinkPoint, isTemporary: isThisConnectionBeingDragged, onClick: handleConnectionClick, onDoubleClick: handleDoubleClickConnection, onConnectionEndpointMouseDown: handleConnectionEndpointMouseDown }, connection.ID));
|
|
1846
|
-
}), isDrawingConnection && tempConnectionPathData && (_jsx(TempConnectionPath, { d: tempConnectionPathData })), isDraggingExistingConnectionEndpoint && tempConnectionPathData && (_jsx(TempConnectionPath, { d: tempConnectionPathData })), isDrawingSelectionRect && currentSelectionRect && (_jsx(SelectionRect, { x: currentSelectionRect.x, y: currentSelectionRect.y, width: currentSelectionRect.width, height: currentSelectionRect.height }))] }) })) : (_jsx(DiagramMessage, { children: `${SDKUI_Localizator.WorkflowDiagramMissingOrInvalid} ...` })) }), isModalOpen && itemToEdit && (_jsx(DiagramItemForm, { itemToEdit: itemToEdit, wf: wfDiagram?.Info, onClose: handleCloseModal, onApply: handleUpdateDiagramItem })), isConnectionModalOpen && connectionToEdit && (_jsx(ConnectionForm, { connectionToEdit: connectionToEdit, onClose: () => setIsConnectionModalOpen(false), onApply: handleUpdateConnection }))
|
|
1911
|
+
return (_jsx(ConnectionComponent, { connection: connection, isSelected: selectedConnections.has(connection.ID), sourcePoint: sourcePoint, sinkPoint: sinkPoint, isTemporary: isThisConnectionBeingDragged, onClick: handleConnectionClick, onDoubleClick: handleDoubleClickConnection, onConnectionEndpointMouseDown: handleConnectionEndpointMouseDown, onContextMenu: handleConnectionContextMenu }, connection.ID));
|
|
1912
|
+
}), isDrawingConnection && tempConnectionPathData && (_jsx(TempConnectionPath, { d: tempConnectionPathData })), isDraggingExistingConnectionEndpoint && tempConnectionPathData && (_jsx(TempConnectionPath, { d: tempConnectionPathData })), isDrawingSelectionRect && currentSelectionRect && (_jsx(SelectionRect, { x: currentSelectionRect.x, y: currentSelectionRect.y, width: currentSelectionRect.width, height: currentSelectionRect.height }))] }) })) : (_jsx(DiagramMessage, { children: `${SDKUI_Localizator.WorkflowDiagramMissingOrInvalid} ...` })) }), isModalOpen && itemToEdit && (_jsx(DiagramItemForm, { itemToEdit: itemToEdit, wf: wfDiagram?.Info, onClose: handleCloseModal, onApply: handleUpdateDiagramItem })), isConnectionModalOpen && connectionToEdit && (_jsx(ConnectionForm, { connectionToEdit: connectionToEdit, onClose: () => setIsConnectionModalOpen(false), onApply: handleUpdateConnection })), _jsx(TMContextMenu, { items: connectionContextMenuItems, externalControl: {
|
|
1913
|
+
visible: contextMenuConnectionId !== null,
|
|
1914
|
+
position: connectionContextMenuPosition,
|
|
1915
|
+
onClose: closeConnectionContextMenu
|
|
1916
|
+
} })] }));
|
|
1847
1917
|
return (_jsxs(_Fragment, { children: [!isFullScreen && (_jsx(DiagramWrapper, { ref: diagramRef, children: diagramContent })), isFullScreen && ReactDOM.createPortal(_jsx(FullScreenContainer, { ref: fullScreenRef, tabIndex: 0, onKeyDown: handleFullScreenKeyDown, children: diagramContent }), document.body)] }));
|
|
1848
1918
|
};
|
|
1849
1919
|
export default WFDiagram;
|
|
@@ -115,7 +115,7 @@ const TMLoginForm = (props) => {
|
|
|
115
115
|
const [dcmtArchive, setDcmtArchive] = useState();
|
|
116
116
|
const [manualArchiveID, setManualArchiveID] = useState('');
|
|
117
117
|
const [authMode, setAuthMode] = useState(AuthenticationModes.TopMedia);
|
|
118
|
-
const [username, setUsername] = useState('
|
|
118
|
+
const [username, setUsername] = useState('');
|
|
119
119
|
const [password, setPassword] = useState('');
|
|
120
120
|
const [authDomain, setAuthDomain] = useState('');
|
|
121
121
|
const [usernameOnBehalf, setUsernameOnBehalf] = useState('');
|
|
@@ -11,7 +11,7 @@ import { TMColors } from '../../utils/theme';
|
|
|
11
11
|
import TMValidationItemsList from '../grids/TMValidationItemsList';
|
|
12
12
|
import TMModal from '../base/TMModal';
|
|
13
13
|
import { DeviceType, useDeviceType } from '../base/TMDeviceProvider';
|
|
14
|
-
const TMSaveForm = ({ id, formMode = FormModes.Update, showToolbar = true, skipIsModifiedCheck = false, title, children, isModal, exception, customToolbarElements, hasNavigation, showSaveButton = true, customSaveButton, customTooltipSaveButton, showBackButton, showWarningsCount = true, showErrorCount = true, showUndoButton = true, onClose, onSaveAsync, onNext, onPrev, canNext, canPrev, isModified, onShowList, validationItems = [], onUndo, onCancel, width, height, askClosingConfirm = false, showTitleFormMode = true, showCloseButton = true }) => {
|
|
14
|
+
const TMSaveForm = ({ id, formMode = FormModes.Update, showToolbar = true, skipIsModifiedCheck = false, title, children, isModal, exception, customToolbarElements, hasNavigation, showSaveButton = true, customSaveButton, customTooltipSaveButton, showBackButton, showWarningsCount = true, showErrorCount = true, showUndoButton = true, onClose, onSaveAsync, onNext, onPrev, canNext, canPrev, isModified, onShowList, validationItems = [], onUndo, onCancel, width, height, askClosingConfirm = false, showTitleFormMode = true, showCloseButton = true, resizable = true }) => {
|
|
15
15
|
const [showList, setShowList] = useState(true);
|
|
16
16
|
const [showErrorGrid, setShowErrorGrid] = useState(false);
|
|
17
17
|
const deviceType = useDeviceType();
|
|
@@ -65,26 +65,74 @@ const TMSaveForm = ({ id, formMode = FormModes.Update, showToolbar = true, skipI
|
|
|
65
65
|
}
|
|
66
66
|
});
|
|
67
67
|
};
|
|
68
|
-
const doClose = () => {
|
|
68
|
+
const doClose = async () => {
|
|
69
|
+
// Se non ci sono modifiche o vogliamo ignorare il controllo delle modifiche
|
|
69
70
|
if (!isModified || skipIsModifiedCheck) {
|
|
70
71
|
onClose?.();
|
|
71
|
-
|
|
72
|
+
// Se il dispositivo è mobile, mostra di nuovo la lista
|
|
73
|
+
if (deviceType === DeviceType.MOBILE) {
|
|
74
|
+
setShowList(true);
|
|
75
|
+
onShowList?.(true);
|
|
76
|
+
}
|
|
72
77
|
return;
|
|
73
78
|
}
|
|
79
|
+
// Determina il messaggio e i pulsanti da mostrare in base alla presenza di errori
|
|
80
|
+
const hasValidationErrors = validationItems.length > 0;
|
|
81
|
+
const message = (isModified && hasValidationErrors) ? SDKUI_Localizator.FormErrorsProceedQuestion : SDKUI_Localizator.SaveQuestion;
|
|
82
|
+
const buttons = hasValidationErrors
|
|
83
|
+
? [ButtonNames.YES, ButtonNames.NO]
|
|
84
|
+
: [ButtonNames.YES, ButtonNames.NO, ButtonNames.CANCEL];
|
|
85
|
+
// Mostra il messaggio di conferma
|
|
74
86
|
TMMessageBoxManager.show({
|
|
75
|
-
parentId: isModal ?
|
|
76
|
-
message
|
|
77
|
-
|
|
87
|
+
parentId: isModal ? `TMSaveFormShowConfirmForClose-${id}` : undefined,
|
|
88
|
+
message,
|
|
89
|
+
buttons,
|
|
90
|
+
onButtonClick: async (buttonClicked) => {
|
|
78
91
|
try {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
92
|
+
// Caso con errori di validazione
|
|
93
|
+
if (hasValidationErrors) {
|
|
94
|
+
if (buttonClicked === ButtonNames.NO)
|
|
95
|
+
return; // Non fare nulla
|
|
96
|
+
if (buttonClicked === ButtonNames.YES) {
|
|
97
|
+
if (deviceType === DeviceType.MOBILE) {
|
|
98
|
+
onUndo();
|
|
99
|
+
setShowList(true);
|
|
100
|
+
onShowList?.(true);
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
onUndo();
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
// Caso senza errori
|
|
109
|
+
switch (buttonClicked) {
|
|
110
|
+
case ButtonNames.CANCEL:
|
|
111
|
+
return; // Non fare nulla
|
|
112
|
+
case ButtonNames.NO:
|
|
113
|
+
if (deviceType === DeviceType.MOBILE) {
|
|
114
|
+
onUndo();
|
|
115
|
+
setShowList(true);
|
|
116
|
+
onShowList?.(true);
|
|
117
|
+
}
|
|
118
|
+
break;
|
|
119
|
+
case ButtonNames.YES:
|
|
120
|
+
if (deviceType === DeviceType.MOBILE) {
|
|
121
|
+
await onSaveAsync?.();
|
|
122
|
+
setShowList(true);
|
|
123
|
+
onShowList?.(true);
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
await onSaveAsync?.();
|
|
127
|
+
}
|
|
128
|
+
break;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
// Chiude il form/modal
|
|
85
132
|
onClose?.();
|
|
86
133
|
}
|
|
87
134
|
catch (ex) {
|
|
135
|
+
// Mostra eventuali eccezioni
|
|
88
136
|
TMExceptionBoxManager.show({ exception: ex });
|
|
89
137
|
}
|
|
90
138
|
}
|
|
@@ -102,7 +150,7 @@ const TMSaveForm = ({ id, formMode = FormModes.Update, showToolbar = true, skipI
|
|
|
102
150
|
_jsx("div", { style: { width: '100%', height: '100%', marginTop: '50px', display: 'flex', alignItems: 'center', justifyContent: 'center', flexDirection: 'column', color: getColor('error') }, children: 'Si è verificato un errore' })
|
|
103
151
|
: _jsx(_Fragment, { children: children }) }), showErrorGrid && validationItems.length > 0 ? _jsx(TMCard, { scrollY: true, padding: false, showBorder: false, children: _jsx(TMValidationItemsList, { validationItems: validationItems }) }) : _jsx(_Fragment, {})] }) }), (isModal && onClose) && _jsx("div", { id: "TMSaveFormShowConfirmForClose-" + id })] }));
|
|
104
152
|
};
|
|
105
|
-
return (_jsx(_Fragment, { children: (isModal && onClose) ? _jsx(_Fragment, { children: _jsx(TMModal, { title: `${title}${showTitleFormMode ? ` - ${LocalizeFormModes(formMode)}` : ''}`, onClose: doClose, width: width ?? '100%', height: height ?? '100%', hidePopup: false, askClosingConfirm: askClosingConfirm, showCloseButton: showCloseButton, children: _jsx("div", { style: { width: "100%", height: "100%", display: 'block' }, children: renderSaveForm() }) }) })
|
|
153
|
+
return (_jsx(_Fragment, { children: (isModal && onClose) ? _jsx(_Fragment, { children: _jsx(TMModal, { title: `${title}${showTitleFormMode ? ` - ${LocalizeFormModes(formMode)}` : ''}`, onClose: doClose, width: width ?? '100%', height: height ?? '100%', hidePopup: false, askClosingConfirm: askClosingConfirm, showCloseButton: showCloseButton, resizable: resizable, children: _jsx("div", { style: { width: "100%", height: "100%", display: 'block' }, children: renderSaveForm() }) }) })
|
|
106
154
|
: renderSaveForm() }));
|
|
107
155
|
};
|
|
108
156
|
export default TMSaveForm;
|
|
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import React, { useCallback, useEffect, useRef, useState } from "react";
|
|
3
3
|
import { DossierEngine, LayoutModes, ObjectClasses, ResultTypes, SDK_Globals, TaskDescriptor, WorkingGroupEngine } from "@topconsultnpm/sdk-ts";
|
|
4
4
|
import { ContextMenu as TMContextMenu } from "../NewComponents/ContextMenu";
|
|
5
|
-
import { SDKUI_Localizator, Globalization, getExceptionMessage, TMConditionalWrapper,
|
|
5
|
+
import { SDKUI_Localizator, Globalization, getExceptionMessage, TMConditionalWrapper, getMoreInfoTasksForDocument, taskModalSizes } from "../../helper";
|
|
6
6
|
import TMToppyMessage from "../../helper/TMToppyMessage";
|
|
7
7
|
import { useDcmtOperations } from "../../hooks/useDcmtOperations";
|
|
8
8
|
import { DownloadTypes, FormModes } from "../../ts";
|
|
@@ -629,10 +629,10 @@ const TMBlogsPost = (props) => {
|
|
|
629
629
|
console.warn(`Unhandled object type: ${ref.objClass}`);
|
|
630
630
|
}
|
|
631
631
|
};
|
|
632
|
-
return _jsx("div", { ref: containerRef, style: { height: height, width: width }, 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: _jsxs(TMLayoutWaitingContainer, { direction: 'vertical', showWaitPanel: localShowWaitPanel, showWaitPanelPrimary: localShowPrimary, waitPanelTitle: localWaitPanelTitle, waitPanelTextPrimary: localWaitPanelTextPrimary, waitPanelValuePrimary: localWaitPanelValuePrimary, waitPanelMaxValuePrimary: localWaitPanelMaxValuePrimary, isCancelable: true, abortController: localAbortController, children: [_jsx(TMBlogHeader, { isVisible: currentHeader !== undefined && !isHeaderHidden, layoutMode: layoutMode, height: layoutMode === 'extended' ? "40px" : "70px", width: "100%", allPosts: posts, postsToShow: postsToShow, onPostsToShowChange: handlePostsToShowChange, categoryIdDataSource: categoryIdDataSource, appliedCategoryIdFilters: appliedCategoryIdFilters, setAppliedCategoryIdFilters: setAppliedCategoryIdFilters, searchText: searchText, onSearchChange: handleSearchChange }), _jsxs("div", { style: {
|
|
632
|
+
return _jsx("div", { ref: containerRef, style: { height: height, width: width }, 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: _jsxs(TMLayoutWaitingContainer, { direction: 'vertical', showWaitPanel: localShowWaitPanel, showWaitPanelPrimary: localShowPrimary, waitPanelTitle: localWaitPanelTitle, waitPanelTextPrimary: localWaitPanelTextPrimary, waitPanelValuePrimary: localWaitPanelValuePrimary, waitPanelMaxValuePrimary: localWaitPanelMaxValuePrimary, isCancelable: true, abortController: localAbortController, children: [_jsx(TMBlogHeader, { isVisible: currentHeader !== undefined && !isHeaderHidden, layoutMode: layoutMode, height: layoutMode === 'extended' ? "40px" : "70px", width: "100%", allPosts: posts, postsToShow: postsToShow, onPostsToShowChange: handlePostsToShowChange, categoryIdDataSource: categoryIdDataSource, appliedCategoryIdFilters: appliedCategoryIdFilters, setAppliedCategoryIdFilters: setAppliedCategoryIdFilters, searchText: searchText, onSearchChange: handleSearchChange }), _jsxs("div", { id: `${id}-blogs-wrapper`, onContextMenu: onContextMenu, style: {
|
|
633
633
|
width: "100%",
|
|
634
634
|
height: currentHeader !== undefined && !isHeaderHidden ? `calc(100% - ${layoutMode === 'extended' ? "40px" : "70px"})` : "100%",
|
|
635
|
-
}, children: [blogPosts.length === 0 && _jsx(TMToppyMessage, { message: searchText.length > 0 ? SDKUI_Localizator.NoMessagesFound : SDKUI_Localizator.NoMessages }), blogPosts.length > 0 && _jsxs("div", { id: `${id}-blogs-container`, tabIndex: 0, onKeyDown: handleKeyDown,
|
|
635
|
+
}, children: [blogPosts.length === 0 && _jsx(TMToppyMessage, { message: searchText.length > 0 ? SDKUI_Localizator.NoMessagesFound : SDKUI_Localizator.NoMessages }), blogPosts.length > 0 && _jsxs("div", { id: `${id}-blogs-container`, tabIndex: 0, onKeyDown: handleKeyDown, style: {
|
|
636
636
|
height: '100%',
|
|
637
637
|
width: '100%',
|
|
638
638
|
outline: "none",
|
|
@@ -680,11 +680,11 @@ const TMBlogsPost = (props) => {
|
|
|
680
680
|
boxShadow: isFocused ? "0 4px 12px rgba(19, 85, 150, 0.6)" : "none",
|
|
681
681
|
cursor: 'pointer',
|
|
682
682
|
}, children: [_jsx(BlogPostTitle, { displayMode: displayMode, layoutMode: layoutMode, blogPost: blogPost, isSelected: isSelected, isOwnComment: isOwnComment, searchText: searchText, isSys: isSys, isHomeBlogPost: isHomeBlogPost, showId: localShowId, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers }), isNew && _jsx(NewBadge, { layoutMode: layoutMode }), _jsx("div", { style: { fontSize: '1rem', color: "#000", marginTop: "10px", overflow: "hidden" }, children: _jsx(TMHtmlContentDisplay, { markup: blogPost.description ?? '-', searchText: searchText, isSelected: isSelected }) }), showExtendedAttachments && blogPost.attachments && blogPost.attachments.length > 0 && (_jsx(TMBlogAttachments, { attachments: blogPost.attachments, layoutMode: layoutMode, isSelected: isSelected, searchText: searchText, dcmtTypeDescriptors: dcmtTypeDescriptors, treeFs: treeFs, draftLatestInfoMap: draftLatestInfoMap, archivedDocumentMap: archivedDocumentMap, handleAttachmentFocus: handleFocusedAttachment, openDcmtForm: openDcmtForm }))] }, `${id}-blogpost-${blogPost.id}`) })] }, "blog-post-wrapper-" + id + "-" + blogPost.id);
|
|
683
|
-
}), _jsx("div", { ref: bottomRef }), _jsx(TMContextMenu, { items: menuItems, target: `#${id}-blogs-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
683
|
+
}), _jsx("div", { ref: bottomRef })] }), _jsx(TMContextMenu, { items: menuItems, target: `#${id}-blogs-wrapper`, externalControl: {
|
|
684
|
+
visible: menuVisible,
|
|
685
|
+
position: menuPosition,
|
|
686
|
+
onClose: closeContextMenu,
|
|
687
|
+
} }), (showTaskForm && handleNavigateToWGs && handleNavigateToDossiers && getAllTasks && deleteTaskByIdsCallback && addTaskCallback && editTaskCallback) && _jsx("div", { style: { height: "100%", width: "100%" }, children: _jsx(TMTaskForm, { id: -1, title: SDKUI_Localizator.ContextualTask, isModal: true, width: taskModalSizes(deviceType, FormModes.Create).width, height: taskModalSizes(deviceType, FormModes.Create).height, formMode: FormModes.Create, visualizedTasks: [], currentTask: currentTask, setCurrentTask: () => { }, selectedRowKeys: [], handleFocusedRowKeyChange: () => { }, onStatusChanged: () => { }, onSaved: onSavedTaskFormCallback, onClose: () => closeTaskFormCallback(), onCancel: () => closeTaskFormCallback(), usersList: participants, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers, isContextualCreate: true, taskContext: taskContext, allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback }) }), (dcmtForm.dcmt && dcmtForm.dcmt.TID && dcmtForm.dcmt.DID) && _jsx(TMDcmtForm, { TID: Number(dcmtForm.dcmt.TID), DID: Number(dcmtForm.dcmt.DID), layoutMode: LayoutModes.Update, onClose: closeDcmtForm, isClosable: true, titleModal: SDKUI_Localizator.Attachment + ": " + dcmtForm.dcmt.fileName, isModal: true, widthModal: "95%", heightModal: "95%", allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers, onReferenceClick: handleNavigateToReference, moreInfoTasks: getMoreInfoTasksForDocument(allTasks, Number(dcmtForm.dcmt.TID), Number(dcmtForm.dcmt.DID)) }), (showFloatingCommentButton && showCommentFormCallback && !(context?.engine === 'WorkingGroupEngine' && context?.object?.customData1 === 1)) && _jsx("button", { style: {
|
|
688
688
|
position: 'absolute',
|
|
689
689
|
bottom: '18px',
|
|
690
690
|
right: '20px',
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { DcmtTypeListCacheService } from "@topconsultnpm/sdk-ts";
|
|
3
|
-
import { getAvatarColor, extractInitialsFromName, SDKUI_Localizator, formatBytes, IconMenuCAWorkingGroups, IconCADossier, Globalization } from "../../helper";
|
|
3
|
+
import { getAvatarColor, extractInitialsFromName, SDKUI_Localizator, formatBytes, IconMenuCAWorkingGroups, IconCADossier, Globalization, PDGS_COLORS } from "../../helper";
|
|
4
4
|
import { TMColors } from "../../utils/theme";
|
|
5
5
|
import TMTooltip from "../base/TMTooltip";
|
|
6
6
|
export const DRAFT_TYPE_TID = 6;
|
|
@@ -167,7 +167,7 @@ export const getDcmtTypeDescriptor = async (blogPosts) => {
|
|
|
167
167
|
};
|
|
168
168
|
export const BlogPostHomeHeader = (header, classId, isSelected, searchText, headerClickCallback) => {
|
|
169
169
|
const isWorkGroup = classId === 'WG';
|
|
170
|
-
const iconColor = isSelected ? '#ffffff' : isWorkGroup ?
|
|
170
|
+
const iconColor = isSelected ? '#ffffff' : isWorkGroup ? PDGS_COLORS.WORKING_GROUP : PDGS_COLORS.DOSSIER;
|
|
171
171
|
return (_jsxs("div", { style: {
|
|
172
172
|
display: "flex",
|
|
173
173
|
alignItems: "center",
|
|
@@ -130,7 +130,7 @@ const TMRecentsManager = ({ deviceType, mruTIDs, currentMruTID, accessFilter = '
|
|
|
130
130
|
alignItems: 'center',
|
|
131
131
|
justifyContent: 'center',
|
|
132
132
|
minWidth: 0
|
|
133
|
-
}, children: _jsx(TMTidViewer, { tid: dtd.id,
|
|
133
|
+
}, children: _jsx(TMTidViewer, { tid: dtd.id, showIcon: false }) }), _jsx("span", { style: {
|
|
134
134
|
width: 24,
|
|
135
135
|
height: 24,
|
|
136
136
|
borderRadius: 24,
|
|
@@ -43,6 +43,8 @@ export { editorColorManager } from './editors/TMEditorStyled';
|
|
|
43
43
|
export { default as TMLocalizedTextBox } from './editors/TMLocalizedTextBox';
|
|
44
44
|
export * from './choosers/TMCultureIDPicker';
|
|
45
45
|
export * from './choosers/TMDataListItemChooser';
|
|
46
|
+
export * from './choosers/TMDataListItemFields';
|
|
47
|
+
export * from './choosers/TMImageIDChooser';
|
|
46
48
|
export * from './choosers/TMDistinctValues';
|
|
47
49
|
export * from './choosers/TMDiskChooser';
|
|
48
50
|
export * from './choosers/TMDynDataListItemChooser';
|
package/lib/components/index.js
CHANGED
|
@@ -46,6 +46,8 @@ export { default as TMLocalizedTextBox } from './editors/TMLocalizedTextBox';
|
|
|
46
46
|
// chooserss
|
|
47
47
|
export * from './choosers/TMCultureIDPicker';
|
|
48
48
|
export * from './choosers/TMDataListItemChooser';
|
|
49
|
+
export * from './choosers/TMDataListItemFields';
|
|
50
|
+
export * from './choosers/TMImageIDChooser';
|
|
49
51
|
export * from './choosers/TMDistinctValues';
|
|
50
52
|
export * from './choosers/TMDiskChooser';
|
|
51
53
|
export * from './choosers/TMDynDataListItemChooser';
|
|
@@ -41,6 +41,8 @@ const TMPage = ({ id, objClass = ObjectClasses.None, listDisabled = false, lastR
|
|
|
41
41
|
let itemsCount = gridInstance?.instance().getDataSource().items().length;
|
|
42
42
|
if (itemsCount && itemsCount > 0) {
|
|
43
43
|
gridInstance?.instance().selectRows(selectedItems?.map((item) => item.id) ?? [], false);
|
|
44
|
+
if (selectedItems && selectedItems.length > 0 && (selectedItems?.[0]).id)
|
|
45
|
+
gridInstance?.instance()?.navigateToRow((selectedItems?.[0]).id);
|
|
44
46
|
}
|
|
45
47
|
}, [selectedItems]);
|
|
46
48
|
useEffect(() => {
|
|
@@ -52,6 +54,8 @@ const TMPage = ({ id, objClass = ObjectClasses.None, listDisabled = false, lastR
|
|
|
52
54
|
useEffect(() => {
|
|
53
55
|
if (lastRefreshTime) {
|
|
54
56
|
loadDataAsync(id);
|
|
57
|
+
if (id)
|
|
58
|
+
gridInstance?.instance()?.navigateToRow(id);
|
|
55
59
|
}
|
|
56
60
|
}, [lastRefreshTime]);
|
|
57
61
|
useEffect(() => {
|
|
@@ -48,6 +48,7 @@ interface ITMQueryEditor extends ITMApplyFormProps<QueryDescriptor> {
|
|
|
48
48
|
ShowOnlySAP?: boolean;
|
|
49
49
|
updateIsModalOpen?: (isOpen: boolean) => void;
|
|
50
50
|
showSearchResultSidebar?: boolean;
|
|
51
|
+
showDcmtFormSidebar?: boolean;
|
|
51
52
|
showToppyDraggableHelpCenter?: boolean;
|
|
52
53
|
toppyHelpCenterUsePortal?: boolean;
|
|
53
54
|
}
|
|
@@ -62,7 +62,7 @@ export function useQueryApplyForm(d, formMode, inputData, onApplied, parameters)
|
|
|
62
62
|
const [validationItems, setValidationItems] = useState([]);
|
|
63
63
|
return { formData, setFormData, formDataOrig, validationItems, setValidationItems, exception, applyData };
|
|
64
64
|
}
|
|
65
|
-
const TMQueryEditor = ({ formMode, inputData, onQDChanged, isExpertMode, showDistinct = false, showToolbar = true, validateSelect = true, validateOrderBy = true, raiseWarningForOnlyMetadataDcmtTypes = false, onApplied, onClose, height = 'auto', borderRadius = '4px', searchText, showApply, showUndo, showBack, onFromTIDChanged, ShowOnlySAP, updateIsModalOpen, showSearchResultSidebar = true, showToppyDraggableHelpCenter = true, toppyHelpCenterUsePortal = false }) => {
|
|
65
|
+
const TMQueryEditor = ({ formMode, inputData, onQDChanged, isExpertMode, showDistinct = false, showToolbar = true, validateSelect = true, validateOrderBy = true, raiseWarningForOnlyMetadataDcmtTypes = false, onApplied, onClose, height = 'auto', borderRadius = '4px', searchText, showApply, showUndo, showBack, onFromTIDChanged, ShowOnlySAP, updateIsModalOpen, showSearchResultSidebar = true, showDcmtFormSidebar = true, showToppyDraggableHelpCenter = true, toppyHelpCenterUsePortal = false }) => {
|
|
66
66
|
const [confirmQueryParams, ConfirmQueryParamsDialog] = useQueryParametersDialog();
|
|
67
67
|
const { formData, setFormData, formDataOrig, validationItems, setValidationItems, exception, applyData } = useQueryApplyForm(Descriptors.Query, formMode, inputData, onApplied);
|
|
68
68
|
const [dcmtTypesList, setDcmtTypesList] = useState([]);
|
|
@@ -598,7 +598,7 @@ const TMQueryEditor = ({ formMode, inputData, onQDChanged, isExpertMode, showDis
|
|
|
598
598
|
// #region Ricerca
|
|
599
599
|
const renderResultSearchForm = (_jsx(TMSearchResult, { context: SearchResultContext.METADATA_SEARCH, allowFloatingBar: false, onClose: () => {
|
|
600
600
|
setShowResultSearch(false);
|
|
601
|
-
}, searchResults: resultSearch, showSearchResultSidebar: showSearchResultSidebar, showToppyDraggableHelpCenter: showToppyDraggableHelpCenter, toppyHelpCenterUsePortal: toppyHelpCenterUsePortal }));
|
|
601
|
+
}, searchResults: resultSearch, showSearchResultSidebar: showSearchResultSidebar, showDcmtFormSidebar: showDcmtFormSidebar, showToppyDraggableHelpCenter: showToppyDraggableHelpCenter, toppyHelpCenterUsePortal: toppyHelpCenterUsePortal }));
|
|
602
602
|
const onSearchAsync = async (qdInput) => {
|
|
603
603
|
try {
|
|
604
604
|
let qdSearch = await prepareQdForSearchAsync(qdInput);
|
|
@@ -101,6 +101,11 @@ export function LocalizeJobTypes(value) {
|
|
|
101
101
|
case CultureIDs.It_IT: return value?.toString();
|
|
102
102
|
default: return "CustomsDrawerPlus";
|
|
103
103
|
}
|
|
104
|
+
// case JobTypes.CassettoDoganaleDistiller:
|
|
105
|
+
// switch (cultureID) {
|
|
106
|
+
// case CultureIDs.It_IT: return value?.toString();
|
|
107
|
+
// default: return "CustomsDrawerDistiller";
|
|
108
|
+
// }
|
|
104
109
|
default: return value?.toString() ?? '';
|
|
105
110
|
}
|
|
106
111
|
}
|
|
@@ -16,6 +16,8 @@ export declare class UserSettings {
|
|
|
16
16
|
fullTextSettings: FullTextSettings;
|
|
17
17
|
searchSettings: SearchSettings;
|
|
18
18
|
themeSettings: ThemeSettings;
|
|
19
|
+
devSettings: DevSettings;
|
|
20
|
+
ctrlWfSettings: CtrlWfSettings;
|
|
19
21
|
dcmtFormSettings: DcmtFormSettings[];
|
|
20
22
|
wgDraftCheckoutInfo: CheckoutInfo[];
|
|
21
23
|
dcmtCheckoutInfo: CheckoutInfo[];
|
|
@@ -84,6 +86,9 @@ export declare class ArchivingSettings {
|
|
|
84
86
|
export declare class FullTextSettings {
|
|
85
87
|
mruTerms: string[];
|
|
86
88
|
}
|
|
89
|
+
export declare class DevSettings {
|
|
90
|
+
betaFeatures: number;
|
|
91
|
+
}
|
|
87
92
|
export declare class AdvancedSettings {
|
|
88
93
|
private _expertMode;
|
|
89
94
|
get expertMode(): number;
|
|
@@ -92,6 +97,9 @@ export declare class AdvancedSettings {
|
|
|
92
97
|
expertMode: number;
|
|
93
98
|
};
|
|
94
99
|
}
|
|
100
|
+
export declare class CtrlWfSettings {
|
|
101
|
+
detailWIFormWidth: string;
|
|
102
|
+
}
|
|
95
103
|
export declare class DcmtFormSettings {
|
|
96
104
|
TID: number | undefined;
|
|
97
105
|
layout: {
|
|
@@ -18,6 +18,8 @@ export class UserSettings {
|
|
|
18
18
|
this.fullTextSettings = new FullTextSettings();
|
|
19
19
|
this.searchSettings = new SearchSettings();
|
|
20
20
|
this.themeSettings = new ThemeSettings(true);
|
|
21
|
+
this.devSettings = new DevSettings();
|
|
22
|
+
this.ctrlWfSettings = new CtrlWfSettings();
|
|
21
23
|
this.dcmtFormSettings = [];
|
|
22
24
|
this.wgDraftCheckoutInfo = [];
|
|
23
25
|
this.dcmtCheckoutInfo = [];
|
|
@@ -120,6 +122,11 @@ export class FullTextSettings {
|
|
|
120
122
|
this.mruTerms = [];
|
|
121
123
|
}
|
|
122
124
|
}
|
|
125
|
+
export class DevSettings {
|
|
126
|
+
constructor() {
|
|
127
|
+
this.betaFeatures = 0;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
123
130
|
export class AdvancedSettings {
|
|
124
131
|
constructor() {
|
|
125
132
|
this._expertMode = 0;
|
|
@@ -142,6 +149,11 @@ export class AdvancedSettings {
|
|
|
142
149
|
};
|
|
143
150
|
}
|
|
144
151
|
}
|
|
152
|
+
export class CtrlWfSettings {
|
|
153
|
+
constructor() {
|
|
154
|
+
this.detailWIFormWidth = '30';
|
|
155
|
+
}
|
|
156
|
+
}
|
|
145
157
|
export class DcmtFormSettings {
|
|
146
158
|
constructor() {
|
|
147
159
|
this.layout = {};
|