@topconsultnpm/sdkui-react 6.21.0-dev2.44 → 6.21.0-dev2.47
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/base/TMTreeView.js +12 -2
- package/lib/components/base/TMWaitPanel.js +7 -4
- package/lib/components/editors/TMRadioButton.js +5 -4
- package/lib/components/features/documents/TMCopyToFolderForm.js +98 -65
- package/lib/components/features/documents/TMDownloadRelationViewerSection.js +2 -2
- package/lib/components/features/documents/TMMergeToPdfForm.js +81 -48
- package/lib/components/features/documents/TMRelationViewer.js +3 -3
- package/lib/components/features/documents/copyAndMergeDcmtsShared.d.ts +0 -4
- package/lib/components/features/documents/copyAndMergeDcmtsShared.js +0 -7
- package/lib/components/features/search/TMSearchResult.js +24 -1
- package/lib/helper/SDKUI_Localizator.d.ts +5 -2
- package/lib/helper/SDKUI_Localizator.js +58 -34
- package/lib/hooks/useDocumentOperations.js +6 -4
- package/package.json +1 -1
|
@@ -9,23 +9,28 @@ const TMTreeView = ({ dataSource = [], focusedItem, selectedItems = [], allowMul
|
|
|
9
9
|
if (!focusedItem)
|
|
10
10
|
return;
|
|
11
11
|
let newFocusedItem = null;
|
|
12
|
+
let handled = false;
|
|
12
13
|
switch (event.key) {
|
|
13
14
|
case 'ArrowDown':
|
|
14
15
|
newFocusedItem = findNextItem(dataSource, focusedItem);
|
|
16
|
+
handled = true;
|
|
15
17
|
break;
|
|
16
18
|
case 'ArrowUp':
|
|
17
19
|
newFocusedItem = findPreviousItem(dataSource, focusedItem);
|
|
20
|
+
handled = true;
|
|
18
21
|
break;
|
|
19
22
|
case '+':
|
|
20
23
|
if (!focusedItem.expanded) {
|
|
21
24
|
handleNodeToggle(focusedItem.key, false);
|
|
22
25
|
newFocusedItem = { ...focusedItem, expanded: true };
|
|
26
|
+
handled = true;
|
|
23
27
|
}
|
|
24
28
|
break;
|
|
25
29
|
case '-':
|
|
26
30
|
if (focusedItem.expanded) {
|
|
27
31
|
handleNodeToggle(focusedItem.key, false);
|
|
28
32
|
newFocusedItem = { ...focusedItem, expanded: false };
|
|
33
|
+
handled = true;
|
|
29
34
|
}
|
|
30
35
|
break;
|
|
31
36
|
// case ' ':
|
|
@@ -40,12 +45,17 @@ const TMTreeView = ({ dataSource = [], focusedItem, selectedItems = [], allowMul
|
|
|
40
45
|
default:
|
|
41
46
|
break;
|
|
42
47
|
}
|
|
48
|
+
if (handled) {
|
|
49
|
+
event.preventDefault();
|
|
50
|
+
event.stopPropagation();
|
|
51
|
+
}
|
|
43
52
|
if (newFocusedItem)
|
|
44
53
|
onFocusedItemChanged?.(newFocusedItem);
|
|
45
54
|
};
|
|
46
|
-
|
|
55
|
+
// Usa capture: true per intercettare l'evento PRIMA che DevExtreme Popup lo gestisca
|
|
56
|
+
window.addEventListener('keydown', handleKeyDown, true);
|
|
47
57
|
return () => {
|
|
48
|
-
window.removeEventListener('keydown', handleKeyDown);
|
|
58
|
+
window.removeEventListener('keydown', handleKeyDown, true);
|
|
49
59
|
};
|
|
50
60
|
}, [focusedItem, dataSource, onFocusedItemChanged]);
|
|
51
61
|
const findNextItem = (nodes, currentItem) => {
|
|
@@ -18,13 +18,16 @@ const StyledWaitPanel = styled.div `
|
|
|
18
18
|
top: 50%;
|
|
19
19
|
left: 50%;
|
|
20
20
|
transform: translate(-50%, -50%);
|
|
21
|
-
width: 300px;
|
|
22
|
-
|
|
21
|
+
width: 300px;
|
|
22
|
+
max-width: calc(100% - 20px);
|
|
23
|
+
height: auto;
|
|
24
|
+
max-height: calc(100% - 20px);
|
|
23
25
|
background: white;
|
|
24
26
|
border-radius: 8px;
|
|
25
27
|
padding: 10px;
|
|
26
28
|
text-align: center;
|
|
27
|
-
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
|
|
29
|
+
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
|
|
30
|
+
overflow: auto;
|
|
28
31
|
`;
|
|
29
32
|
const StyledTitle = styled.h2 ` margin: 0; font-size: 1.5em; color: #333; `;
|
|
30
33
|
const StyledProgressBarContainer = styled.div ` width: 100%; height: 20px; background: #e0e0e0; border-radius: 10px; overflow: hidden; margin: 20px 0; `;
|
|
@@ -42,7 +45,7 @@ export const TMWaitPanel = (props) => {
|
|
|
42
45
|
};
|
|
43
46
|
let progressValue1 = calculateProgress(valuePrimary, maxValuePrimary);
|
|
44
47
|
let progressValue2 = calculateProgress(valueSecondary, maxValueSecondary);
|
|
45
|
-
return (_jsx(StyledWaitPanelOverlay, { children: _jsxs(StyledWaitPanel, {
|
|
48
|
+
return (_jsx(StyledWaitPanelOverlay, { children: _jsxs(StyledWaitPanel, { children: [_jsx(StyledTitle, { children: title }), showPrimary &&
|
|
46
49
|
_jsxs("div", { style: { width: '100%', height: '100px' }, children: [_jsx(StyledProgressBarContainer, { children: _jsx(StyledProgressBar, { style: { width: `${progressValue1.toFixed(2)}%` } }) }), _jsxs(StyledProgressText, { children: [progressValue1.toFixed(2), "%"] }), _jsx(StyledMessage, { children: textPrimary })] }), showSecondary &&
|
|
47
50
|
_jsxs("div", { style: { width: '100%', height: '100px' }, children: [_jsx(StyledProgressBarContainer, { children: _jsx(StyledProgressBar, { style: { width: `${progressValue2.toFixed(2)}%` } }) }), _jsxs(StyledProgressText, { children: [progressValue2.toFixed(2), "%"] }), _jsx(StyledMessage, { children: textSecondary })] }), isCancelable && _jsx(StyledAbortButton, { onClick: () => onAbortClick?.(abortController), children: SDKUI_Localizator.Abort })] }) }));
|
|
48
51
|
};
|
|
@@ -43,12 +43,13 @@ const StyledradioButtonLabel = styled.label `
|
|
|
43
43
|
-webkit-touch-callout: none;
|
|
44
44
|
-webkit-user-select: none;
|
|
45
45
|
width: 100%;
|
|
46
|
-
cursor: ${props => !props.$disabled
|
|
46
|
+
cursor: ${props => !props.$disabled ? 'pointer' : 'default'};
|
|
47
|
+
pointer-events: ${props => props.$disabled ? 'none' : 'auto'};
|
|
47
48
|
&:focus{
|
|
48
49
|
outline: none;
|
|
49
|
-
background-image: linear-gradient(white, #E4E9F7);
|
|
50
|
-
border-bottom: 2px solid ;
|
|
51
|
-
border-bottom-color: ${props => !props.$isModifiedWhen ? TMColors.primary : TMColors.isModified};
|
|
50
|
+
background-image: ${props => !props.$disabled ? 'linear-gradient(white, #E4E9F7)' : 'none'};
|
|
51
|
+
border-bottom: ${props => !props.$disabled ? '2px solid' : 'none'};
|
|
52
|
+
border-bottom-color: ${props => !props.$disabled ? (!props.$isModifiedWhen ? TMColors.primary : TMColors.isModified) : 'transparent'};
|
|
52
53
|
}
|
|
53
54
|
`;
|
|
54
55
|
const TMRadioButton = ({ isModifiedWhen, flexBase = 1, elementStyle, label, value, fontSize = FontSize.defaultFontSize, dataSource = [], direction = 'row', onValueChanged, disabled = false }) => {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useRef, useState } from 'react';
|
|
2
|
+
import { useMemo, useRef, useState } from 'react';
|
|
3
3
|
import { DownloadTypes } from '../../../ts';
|
|
4
4
|
import { calcResponsiveSizes, DocumentDownloadSettings, IconDelete, IconFolderOpen, IconPlay, IconSave, IconUndo, SDKUI_Globals, SDKUI_Localizator, ZipManager, } from '../../../helper';
|
|
5
5
|
import { DcmtOpers, GeneralRetrieveFormats, ResultTypes, RetrieveFileOptions, ValidationItem, } from '@topconsultnpm/sdk-ts';
|
|
@@ -19,7 +19,7 @@ import TMCheckBox from '../../editors/TMCheckBox';
|
|
|
19
19
|
import ShowAlert from '../../base/TMAlert';
|
|
20
20
|
import { TMColors } from '../../../utils/theme';
|
|
21
21
|
import TMDownloadRelationViewerSection from './TMDownloadRelationViewerSection';
|
|
22
|
-
import { buildInitialDownloadSettings, fileExists, generateTargetFileName, generateUniqueFileName, getDcmtInfosToDownload, getFloatingLabelStyle, isDirectoryPickerSupported,
|
|
22
|
+
import { buildInitialDownloadSettings, fileExists, generateTargetFileName, generateUniqueFileName, getDcmtInfosToDownload, getFloatingLabelStyle, isDirectoryPickerSupported, } from './copyAndMergeDcmtsShared';
|
|
23
23
|
/**
|
|
24
24
|
* Form per la copia/zip dei documenti in una cartella locale.
|
|
25
25
|
* Logica condivisa con TMMergeToPdfForm è esternalizzata in copyAndMergeDcmtsShared
|
|
@@ -27,6 +27,7 @@ import { buildInitialDownloadSettings, fileExists, generateTargetFileName, gener
|
|
|
27
27
|
*/
|
|
28
28
|
const TMCopyToFolderForm = ({ mode, selectedDcmtInfos, onClose, showTMRelationViewer, allTasks, getAllTasks, deleteTaskByIdsCallback, addTaskCallback, editTaskCallback, handleNavigateToWGs, handleNavigateToDossiers }) => {
|
|
29
29
|
const { abortController, showWaitPanel, waitPanelTitle, showPrimary, waitPanelTextPrimary, waitPanelValuePrimary, waitPanelMaxValuePrimary, showSecondary, waitPanelTextSecondary, waitPanelValueSecondary, waitPanelMaxValueSecondary, downloadDcmtsAsync, } = useDcmtOperations();
|
|
30
|
+
// Get the current device type (e.g., mobile, tablet, desktop) using a custom hook.
|
|
30
31
|
const deviceType = useDeviceType();
|
|
31
32
|
// ---- Stato dei settings ----
|
|
32
33
|
const [settings, setSettings] = useState(() => buildInitialDownloadSettings(SDKUI_Globals.userSettings.documentDownloadSettings, SDKUI_Globals.userSettings.searchSettings.invoiceRetrieveFormat, SDKUI_Globals.userSettings.searchSettings.orderRetrieveFormat));
|
|
@@ -54,14 +55,17 @@ const TMCopyToFolderForm = ({ mode, selectedDcmtInfos, onClose, showTMRelationVi
|
|
|
54
55
|
};
|
|
55
56
|
const isUsingDefaultDownloads = settings.destinationFolder === 'Download' && !folderHandleRef.current;
|
|
56
57
|
// ---- Validazione ----
|
|
57
|
-
const folderValidationItems =
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
58
|
+
const { folderValidationItems, zipValidationItems } = useMemo(() => {
|
|
59
|
+
const folderItems = [];
|
|
60
|
+
const zipItems = [];
|
|
61
|
+
if (settings.exportMode === 'copy' && !settings.destinationFolder.trim()) {
|
|
62
|
+
folderItems.push(new ValidationItem(ResultTypes.ERROR, SDKUI_Localizator.FolderName, SDKUI_Localizator.RequiredField));
|
|
63
|
+
}
|
|
64
|
+
if (settings.exportMode === 'zip' && !settings.zipFileName.trim()) {
|
|
65
|
+
zipItems.push(new ValidationItem(ResultTypes.ERROR, SDKUI_Localizator.ZipFileName, SDKUI_Localizator.RequiredField));
|
|
66
|
+
}
|
|
67
|
+
return { folderValidationItems: folderItems, zipValidationItems: zipItems };
|
|
68
|
+
}, [settings.exportMode, settings.destinationFolder, settings.zipFileName]);
|
|
65
69
|
const isFormValid = () => {
|
|
66
70
|
if (settings.exportMode === 'copy')
|
|
67
71
|
return folderValidationItems.length === 0;
|
|
@@ -258,16 +262,59 @@ const TMCopyToFolderForm = ({ mode, selectedDcmtInfos, onClose, showTMRelationVi
|
|
|
258
262
|
}
|
|
259
263
|
return JSON.stringify(settings) === JSON.stringify(saved);
|
|
260
264
|
};
|
|
265
|
+
// ---- Componenti comuni riutilizzati in entrambe le modalità (copy/zip) ----
|
|
266
|
+
const folderSelector = isDirectoryPickerSupported() ? (_jsx("div", { style: { flex: '1 1 280px', minWidth: '280px' }, children: _jsx(TMTextBox, { label: SDKUI_Localizator.FolderName, value: settings.destinationFolder, validationItems: folderValidationItems, onValueChanged: handleFolderValueChange, readOnly: true, placeHolder: "Download", onClick: handleSelectFolder, buttons: [
|
|
267
|
+
{
|
|
268
|
+
icon: _jsx(IconFolderOpen, {}),
|
|
269
|
+
text: SDKUI_Localizator.SelectFolder,
|
|
270
|
+
onClick: handleSelectFolder
|
|
271
|
+
},
|
|
272
|
+
...(!isUsingDefaultDownloads ? [{
|
|
273
|
+
icon: _jsx(IconUndo, {}),
|
|
274
|
+
text: SDKUI_Localizator.RestoreDownload,
|
|
275
|
+
onClick: () => {
|
|
276
|
+
skipSelectFolderRef.current = true;
|
|
277
|
+
updateSettings('destinationFolder', 'Download');
|
|
278
|
+
folderHandleRef.current = null;
|
|
279
|
+
}
|
|
280
|
+
}] : [])
|
|
281
|
+
] }) })) : (_jsx("div", { style: { flex: '1 1 280px', minWidth: '280px' }, children: _jsxs("div", { style: { position: 'relative', marginTop: '16px' }, children: [_jsx("span", { style: {
|
|
282
|
+
position: 'absolute',
|
|
283
|
+
top: '-10px',
|
|
284
|
+
left: '12px',
|
|
285
|
+
fontSize: '0.9rem',
|
|
286
|
+
color: TMColors.label_normal,
|
|
287
|
+
padding: '0 3px',
|
|
288
|
+
userSelect: 'none',
|
|
289
|
+
WebkitTouchCallout: 'none',
|
|
290
|
+
WebkitUserSelect: 'none',
|
|
291
|
+
width: 'max-content',
|
|
292
|
+
backgroundColor: TMColors.default_background,
|
|
293
|
+
zIndex: 1,
|
|
294
|
+
}, children: SDKUI_Localizator.Path }), _jsxs("div", { style: { border: `1px solid ${TMColors.border_normal}`, borderRadius: '5px', padding: '4px 10px 4px 13px', display: 'flex', alignItems: 'center', gap: '8px', backgroundColor: '#fafafa' }, children: [_jsx(IconFolderOpen, {}), _jsx("span", { style: { fontSize: '0.9rem', color: '#333' }, children: "Download" })] }), _jsx("span", { style: { fontSize: '0.8rem', color: '#888', fontStyle: 'italic', marginTop: '4px', display: 'block' }, children: SDKUI_Localizator.BrowserDoesNotSupportFolderSelection })] }) }));
|
|
295
|
+
const fileNamingRow = (_jsxs("div", { style: {
|
|
296
|
+
display: 'flex',
|
|
297
|
+
flexWrap: 'wrap',
|
|
298
|
+
alignItems: 'flex-end',
|
|
299
|
+
gap: '10px',
|
|
300
|
+
width: '100%',
|
|
301
|
+
}, children: [_jsx(TMDropDown, { label: SDKUI_Localizator.UseForFileName, value: settings.fileNamingMode, dataSource: [
|
|
302
|
+
{ value: 'onlyDid', display: SDKUI_Localizator.OnlyDID },
|
|
303
|
+
{ value: 'documentTypeAndDid', display: SDKUI_Localizator.DocumentTypeNameAndDID },
|
|
304
|
+
{ value: 'documentTypeAndCustomMetadata', display: SDKUI_Localizator.DocumentTypeNameAndCustomMetadata },
|
|
305
|
+
{ value: 'onlyCustomMetadata', display: SDKUI_Localizator.OnlyCustomMetadata },
|
|
306
|
+
], onValueChanged: handleFileNamingModeChange, width: '280px' }), _jsx(TMTextBox, { label: SDKUI_Localizator.Separator, value: settings.separatorChar, maxLength: 1, onValueChanged: (e) => handleSeparatorChange(e), width: '100px', elementStyle: { textAlign: 'center' } }), _jsx("div", { style: { paddingBottom: '7px' }, children: _jsx(TMCheckBox, { label: SDKUI_Localizator.RemoveSignatureIfPresent, value: settings.removeSignature, onValueChanged: (value) => updateSettings('removeSignature', value) }) })] }));
|
|
307
|
+
const formatSelectorsRow = (_jsxs("div", { style: { display: 'flex', flexWrap: 'wrap', columnGap: '10px', width: '100%' }, children: [_jsx("div", { style: { flex: '1 1 280px', minWidth: '280px' }, children: _jsx(TMInvoiceRetrieveFormats, { width: '100%', label: SDKUI_Localizator.ElectronicInvoice + ' - ' + SDKUI_Localizator.DisplayFormat, onValueChanged: (newValue) => updateSettings('invoiceFormat', newValue), value: settings.invoiceFormat, valueOrig: settings.invoiceFormat }) }), _jsx("div", { style: { flex: '1 1 280px', minWidth: '280px' }, children: _jsx(TMOrderRetrieveFormats, { width: '100%', label: SDKUI_Localizator.ElectronicOrder + ' - ' + SDKUI_Localizator.DisplayFormat, value: settings.orderFormat, valueOrig: settings.orderFormat, onValueChanged: (newValue) => updateSettings('orderFormat', newValue) }) })] }));
|
|
261
308
|
// ---- Render della sezione configurazione ----
|
|
262
309
|
const configSection = (_jsxs("div", { style: {
|
|
263
310
|
position: 'relative',
|
|
264
311
|
border: `1px solid ${TMColors.border_normal}`,
|
|
265
312
|
borderRadius: '8px',
|
|
266
313
|
padding: '10px 6px 6px 6px',
|
|
267
|
-
height: showTMRelationViewer ? '100%' : undefined,
|
|
314
|
+
height: showTMRelationViewer ? 'calc(100% - 7px)' : undefined,
|
|
315
|
+
marginTop: '7px',
|
|
268
316
|
flex: showTMRelationViewer ? undefined : 1,
|
|
269
317
|
minHeight: 0,
|
|
270
|
-
marginTop: '8px',
|
|
271
318
|
display: 'flex',
|
|
272
319
|
flexDirection: 'column',
|
|
273
320
|
boxSizing: 'border-box'
|
|
@@ -287,60 +334,46 @@ const TMCopyToFolderForm = ({ mode, selectedDcmtInfos, onClose, showTMRelationVi
|
|
|
287
334
|
flex: 1,
|
|
288
335
|
overflowY: 'auto',
|
|
289
336
|
minHeight: 0,
|
|
290
|
-
}, children: [_jsx("div", { style: { display: 'flex', justifyContent: '
|
|
337
|
+
}, children: [_jsx("div", { style: { display: 'flex', justifyContent: 'flex-start', alignItems: 'center', marginTop: "8px" }, children: _jsx(TMRadioButton, { dataSource: [
|
|
291
338
|
{ value: 'copy', display: SDKUI_Localizator.CopyToFolder },
|
|
292
339
|
{ value: 'zip', display: SDKUI_Localizator.CompressToZipFile }
|
|
293
|
-
], value: settings.exportMode, direction: "row", onValueChanged: (value) => updateSettings('exportMode', value) }) }),
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
}
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
padding: '4px',
|
|
332
|
-
border: `1px solid ${TMColors.border_normal}`,
|
|
333
|
-
borderRadius: '5px',
|
|
334
|
-
outline: 'none',
|
|
335
|
-
color: 'black',
|
|
336
|
-
background: 'white',
|
|
337
|
-
}, onFocus: (e) => {
|
|
338
|
-
e.target.style.backgroundImage = 'linear-gradient(white, #E4E9F7)';
|
|
339
|
-
e.target.style.borderBottom = `2px solid ${TMColors.primary}`;
|
|
340
|
-
}, onBlur: (e) => {
|
|
341
|
-
e.target.style.backgroundImage = 'none';
|
|
342
|
-
e.target.style.borderBottom = `1px solid ${TMColors.border_normal}`;
|
|
343
|
-
} })] }), _jsx(TMCheckBox, { label: SDKUI_Localizator.RemoveSignatureIfPresent, value: settings.removeSignature, onValueChanged: (value) => updateSettings('removeSignature', value) })] }), _jsxs("div", { style: { display: 'grid', gridTemplateColumns: 'repeat(auto-fit, minmax(240px, 1fr))', gap: '12px' }, children: [_jsx(TMInvoiceRetrieveFormats, { width: '100%', label: SDKUI_Localizator.ElectronicInvoice + ' - ' + SDKUI_Localizator.DisplayFormat, onValueChanged: (newValue) => updateSettings('invoiceFormat', newValue), value: settings.invoiceFormat, valueOrig: settings.invoiceFormat }), _jsx(TMOrderRetrieveFormats, { width: '100%', label: SDKUI_Localizator.ElectronicOrder + ' - ' + SDKUI_Localizator.DisplayFormat, value: settings.orderFormat, valueOrig: settings.orderFormat, onValueChanged: (newValue) => updateSettings('orderFormat', newValue) })] })] })] }));
|
|
344
|
-
return (_jsx(TMModal, { width: calcResponsiveSizes(deviceType, showTMRelationViewer ? '95%' : '780px', showTMRelationViewer ? '95%' : '780px', '95%'), height: calcResponsiveSizes(deviceType, showTMRelationViewer ? '95%' : '450px', showTMRelationViewer ? '95%' : '450px', '95%'), title: getTitle(), onClose: onClose, showCloseButton: true, 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("div", { onContextMenu: (e) => e.preventDefault(), style: { display: 'flex', flexDirection: 'column', padding: '4px 4px 16px 4px', width: '100%', height: '100%', boxSizing: 'border-box', overflow: 'hidden' }, children: [showTMRelationViewer ? (_jsx("div", { style: { flex: 1, minHeight: 0, display: 'flex', flexDirection: 'column' }, children: _jsxs(TMSplitterLayout, { direction: 'vertical', showSeparator: true, separatorSize: 8, separatorColor: 'transparent', separatorActiveColor: 'transparent', overflow: 'hidden', min: SPLITTER_MIN, start: SPLITTER_START_60_40, children: [_jsx(TMDownloadRelationViewerSection, { selectedDcmtInfos: selectedDcmtInfos, onSelectionChanged: setSelectedItemsRelationViewer, allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers }), configSection] }, "TMCopyToFolder-relation-config") })) : (configSection), _jsx("div", { style: { display: 'flex', justifyContent: 'center', alignItems: 'center', flexShrink: 0, marginTop: '12px' }, children: _jsx(TMButton, { caption: SDKUI_Localizator.Execute, icon: _jsx(IconPlay, {}), color: 'success', showTooltip: false, disabled: !isFormValid() || (showTMRelationViewer && selectedItemsRelationViewer.filter(i => i.isDcmt).length === 0), onClick: run }) })] }) }) }));
|
|
340
|
+
], value: settings.exportMode, direction: "row", onValueChanged: (value) => updateSettings('exportMode', value) }) }), settings.exportMode === 'copy' && (_jsxs("div", { style: { display: 'flex', flexWrap: 'wrap', columnGap: '10px' }, children: [folderSelector, _jsx("div", { style: { flex: '1.5 1 420px', minWidth: '350px', width: '100%' }, children: _jsxs("div", { style: { position: 'relative', marginTop: '16px' }, children: [_jsx("span", { style: {
|
|
341
|
+
position: 'absolute',
|
|
342
|
+
top: '-10px',
|
|
343
|
+
left: '12px',
|
|
344
|
+
fontSize: '0.9rem',
|
|
345
|
+
color: TMColors.label_normal,
|
|
346
|
+
padding: '0 3px',
|
|
347
|
+
userSelect: 'none',
|
|
348
|
+
WebkitTouchCallout: 'none',
|
|
349
|
+
WebkitUserSelect: 'none',
|
|
350
|
+
width: 'max-content',
|
|
351
|
+
backgroundColor: TMColors.default_background,
|
|
352
|
+
zIndex: 1,
|
|
353
|
+
}, children: SDKUI_Localizator.IfFileExists }), _jsx("div", { style: { border: `1px solid ${TMColors.border_normal}`, borderRadius: '5px', padding: '4px 10px 4px 13px' }, children: _jsx(TMRadioButton, { dataSource: [
|
|
354
|
+
{ value: 'overwrite', display: SDKUI_Localizator.CopyAndReplace },
|
|
355
|
+
{ value: 'skip', display: SDKUI_Localizator.DoNotCopy },
|
|
356
|
+
{ value: 'rename', display: SDKUI_Localizator.CopyButRename },
|
|
357
|
+
], value: isUsingDefaultDownloads ? 'rename' : settings.fileExistsMode, direction: "row", disabled: isUsingDefaultDownloads, onValueChanged: (value) => updateSettings('fileExistsMode', value), fontSize: '0.9rem' }) }), isUsingDefaultDownloads && (_jsx("span", { style: { fontSize: '0.8rem', color: '#888', fontStyle: 'italic', marginTop: '4px', display: 'block' }, children: SDKUI_Localizator.BrowserAutoRenamesDuplicateFilesInDownloadsFolder }))] }) }), fileNamingRow, formatSelectorsRow] })), settings.exportMode === 'zip' && (_jsxs("div", { style: { display: 'flex', flexWrap: 'wrap', columnGap: '10px' }, children: [_jsxs("div", { style: { display: 'flex', flexWrap: 'wrap', columnGap: '10px', width: '100%' }, children: [folderSelector, _jsx("div", { style: { flex: '1 1 280px', minWidth: '280px' }, children: _jsx(TMTextBox, { label: SDKUI_Localizator.ZipFileName, value: settings.zipFileName, validationItems: zipValidationItems, autoComplete: "one-time-code", onValueChanged: (e) => updateSettings('zipFileName', e.target.value) }) }), _jsx("div", { style: { flex: '1 1 280px', minWidth: '280px' }, children: _jsx(TMTextBox, { label: SDKUI_Localizator.ProtectWithPasswordOptional, value: settings.zipPassword, type: "password", autoComplete: "one-time-code", onValueChanged: (e) => updateSettings('zipPassword', e.target.value) }) })] }), fileNamingRow, formatSelectorsRow] }))] })] }));
|
|
358
|
+
return (_jsx(TMModal, { width: calcResponsiveSizes(deviceType, showTMRelationViewer ? '95%' : '950px', '95%', '95%'), height: showTMRelationViewer ? '95%' : 'auto', title: getTitle(), onClose: onClose, showCloseButton: true, 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("div", { onContextMenu: (e) => e.preventDefault(), style: { display: 'flex', flexDirection: 'column', padding: '4px 4px 16px 4px', width: '100%', height: '100%', boxSizing: 'border-box', overflow: 'hidden' }, children: [showTMRelationViewer ? (_jsx("div", { style: { flex: 1, minHeight: 0, display: 'flex', flexDirection: 'column' }, children: _jsxs(TMSplitterLayout, { direction: 'vertical', showSeparator: true, separatorSize: 8, separatorColor: 'transparent', separatorActiveColor: 'transparent', overflow: 'hidden', min: ["50", "50"], start: ['65%', '35%'], children: [_jsx(TMDownloadRelationViewerSection, { selectedDcmtInfos: selectedDcmtInfos, onSelectionChanged: setSelectedItemsRelationViewer, allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers }), configSection] }, "TMCopyToFolder-relation-config") })) : (configSection), _jsx("div", { style: { display: 'flex', justifyContent: 'center', alignItems: 'center', flexShrink: 0, marginTop: '12px' }, children: _jsxs("button", { disabled: !isFormValid() || (showTMRelationViewer && selectedItemsRelationViewer.filter(i => i.isDcmt).length === 0), onClick: run, style: {
|
|
359
|
+
display: 'flex',
|
|
360
|
+
alignItems: 'center',
|
|
361
|
+
justifyContent: 'center',
|
|
362
|
+
gap: '6px',
|
|
363
|
+
padding: '8px 20px',
|
|
364
|
+
fontSize: '0.95rem',
|
|
365
|
+
fontWeight: 600,
|
|
366
|
+
color: '#fff',
|
|
367
|
+
background: (!isFormValid() || (showTMRelationViewer && selectedItemsRelationViewer.filter(i => i.isDcmt).length === 0))
|
|
368
|
+
? '#b0b0b0'
|
|
369
|
+
: 'linear-gradient(135deg, #28a745 0%, #218838 100%)',
|
|
370
|
+
border: 'none',
|
|
371
|
+
borderRadius: '6px',
|
|
372
|
+
cursor: (!isFormValid() || (showTMRelationViewer && selectedItemsRelationViewer.filter(i => i.isDcmt).length === 0)) ? 'not-allowed' : 'pointer',
|
|
373
|
+
boxShadow: (!isFormValid() || (showTMRelationViewer && selectedItemsRelationViewer.filter(i => i.isDcmt).length === 0))
|
|
374
|
+
? 'none'
|
|
375
|
+
: '0 2px 8px rgba(40, 167, 69, 0.35)',
|
|
376
|
+
transition: 'all 0.2s ease',
|
|
377
|
+
}, children: [_jsx(IconPlay, {}), _jsx("span", { children: SDKUI_Localizator.Execute })] }) })] }) }) }));
|
|
345
378
|
};
|
|
346
379
|
export default TMCopyToFolderForm;
|
|
@@ -7,7 +7,7 @@ import { TMColors } from '../../../utils/theme';
|
|
|
7
7
|
import { TMSplitterLayout } from '../../base/TMLayout';
|
|
8
8
|
import TMRelationViewer from './TMRelationViewer';
|
|
9
9
|
import TMDcmtForm from './TMDcmtForm';
|
|
10
|
-
import { dedupeByTidDid, getDcmtKey, getFloatingLabelStyle,
|
|
10
|
+
import { dedupeByTidDid, getDcmtKey, getFloatingLabelStyle, } from './copyAndMergeDcmtsShared';
|
|
11
11
|
/**
|
|
12
12
|
* Sezione condivisa tra TMCopyToFolderForm e TMMergeToPdfForm
|
|
13
13
|
* che mostra l'elenco dei documenti correlati e il tree di selezione
|
|
@@ -54,7 +54,7 @@ const TMDownloadRelationViewerSection = ({ selectedDcmtInfos, onSelectionChanged
|
|
|
54
54
|
display: 'flex',
|
|
55
55
|
flexDirection: 'column',
|
|
56
56
|
boxSizing: 'border-box'
|
|
57
|
-
}, children: [_jsx("div", { style: { flex: 1, minHeight: 0, overflow: 'visible', paddingTop: '10px' }, children: _jsxs(TMSplitterLayout, { direction: 'horizontal', showSeparator: true, separatorSize: 8, separatorColor: 'transparent', separatorActiveColor: 'transparent', overflow: 'visible', min:
|
|
57
|
+
}, children: [_jsx("div", { style: { flex: 1, minHeight: 0, overflow: 'visible', paddingTop: '10px' }, children: _jsxs(TMSplitterLayout, { direction: 'horizontal', showSeparator: true, separatorSize: 8, separatorColor: 'transparent', separatorActiveColor: 'transparent', overflow: 'visible', min: ["50", "50"], start: ["75%", "25%"], children: [_jsxs("div", { style: {
|
|
58
58
|
position: 'relative',
|
|
59
59
|
height: '100%',
|
|
60
60
|
minHeight: 0,
|
|
@@ -6,15 +6,15 @@ import { DcmtOpers, FileFormats, GeneralRetrieveFormats, ResultTypes, RetrieveFi
|
|
|
6
6
|
import TMModal from '../../base/TMModal';
|
|
7
7
|
import { useDeviceType } from '../../base/TMDeviceProvider';
|
|
8
8
|
import TMTextBox from '../../editors/TMTextBox';
|
|
9
|
-
import TMButton from '../../base/TMButton';
|
|
10
9
|
import { ButtonNames, TMMessageBoxManager } from '../../base/TMPopUp';
|
|
11
10
|
import { useDcmtOperations } from '../../../hooks/useDcmtOperations';
|
|
12
11
|
import { TMLayoutWaitingContainer } from '../../base/TMWaitPanel';
|
|
13
12
|
import { TMSplitterLayout } from '../../base/TMLayout';
|
|
14
13
|
import { TMColors } from '../../../utils/theme';
|
|
15
14
|
import TMDownloadRelationViewerSection from './TMDownloadRelationViewerSection';
|
|
16
|
-
import { getDcmtInfosToDownload, getFloatingLabelStyle, isDirectoryPickerSupported, isPdfExt, MIN_PDF_FOR_MERGE,
|
|
15
|
+
import { getDcmtInfosToDownload, getFloatingLabelStyle, isDirectoryPickerSupported, isPdfExt, MIN_PDF_FOR_MERGE, } from './copyAndMergeDcmtsShared';
|
|
17
16
|
import ShowAlert from '../../base/TMAlert';
|
|
17
|
+
import TMTooltip from '../../base/TMTooltip';
|
|
18
18
|
/**
|
|
19
19
|
* Form per l'unione di più documenti PDF in un singolo file.
|
|
20
20
|
* Condivide TMDownloadRelationViewerSection e gli helper in copyAndMergeDcmtsShared
|
|
@@ -201,74 +201,107 @@ const TMMergeToPdfForm = ({ mode, selectedDcmtInfos, onClose, showTMRelationView
|
|
|
201
201
|
border: `1px solid ${TMColors.border_normal}`,
|
|
202
202
|
borderRadius: '8px',
|
|
203
203
|
padding: '8px',
|
|
204
|
-
height: showTMRelationViewer ? '100%' : undefined,
|
|
204
|
+
height: showTMRelationViewer ? 'calc(100% - 7px)' : undefined,
|
|
205
|
+
marginTop: '7px',
|
|
205
206
|
flex: showTMRelationViewer ? undefined : 1,
|
|
206
207
|
minHeight: 0,
|
|
207
|
-
marginTop: showTMRelationViewer ? '10px' : undefined,
|
|
208
208
|
display: 'flex',
|
|
209
209
|
flexDirection: 'column',
|
|
210
210
|
boxSizing: 'border-box'
|
|
211
211
|
}, children: [_jsx("span", { style: getFloatingLabelStyle(), title: `${SDKUI_Localizator.ConfigurationParameters} (${SDKUI_Localizator.MergeToPdf})`, children: SDKUI_Localizator.ConfigurationParameters }), _jsxs("div", { style: {
|
|
212
212
|
display: 'flex',
|
|
213
213
|
flexDirection: 'column',
|
|
214
|
-
gap: '12px',
|
|
215
214
|
flex: 1,
|
|
216
215
|
overflowY: 'auto',
|
|
217
216
|
minHeight: 0,
|
|
218
|
-
}, children: [_jsxs("div", { style: { display: '
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
217
|
+
}, children: [_jsxs("div", { style: { display: 'flex', flexWrap: 'wrap', columnGap: '10px' }, children: [isDirectoryPickerSupported() ? (_jsx("div", { style: { flex: '1 1 280px', minWidth: '280px' }, children: _jsx(TMTextBox, { label: SDKUI_Localizator.FolderName, value: destinationFolder, onValueChanged: handleFolderValueChange, readOnly: true, placeHolder: "Download", onClick: handleSelectFolder, buttons: [
|
|
218
|
+
{
|
|
219
|
+
icon: _jsx(IconFolderOpen, {}),
|
|
220
|
+
text: SDKUI_Localizator.SelectFolder,
|
|
221
|
+
onClick: handleSelectFolder
|
|
222
|
+
},
|
|
223
|
+
...(!isUsingDefaultDownloads ? [{
|
|
224
|
+
icon: _jsx(IconUndo, {}),
|
|
225
|
+
text: SDKUI_Localizator.RestoreDownload,
|
|
226
|
+
onClick: () => {
|
|
227
|
+
skipSelectFolderRef.current = true;
|
|
228
|
+
setDestinationFolder('Download');
|
|
229
|
+
folderHandleRef.current = null;
|
|
230
|
+
}
|
|
231
|
+
}] : [])
|
|
232
|
+
] }) })) : (_jsx("div", { style: { flex: '1 1 280px', minWidth: '280px' }, children: _jsxs("div", { style: { position: 'relative', marginTop: '16px' }, children: [_jsx("span", { style: {
|
|
233
|
+
position: 'absolute',
|
|
234
|
+
top: '-10px',
|
|
235
|
+
left: '12px',
|
|
236
|
+
fontSize: '0.9rem',
|
|
237
|
+
color: TMColors.label_normal,
|
|
238
|
+
padding: '0 3px',
|
|
239
|
+
userSelect: 'none',
|
|
240
|
+
WebkitTouchCallout: 'none',
|
|
241
|
+
WebkitUserSelect: 'none',
|
|
242
|
+
width: 'max-content',
|
|
243
|
+
backgroundColor: TMColors.default_background,
|
|
244
|
+
zIndex: 1,
|
|
245
|
+
}, children: SDKUI_Localizator.Path }), _jsxs("div", { style: { border: `1px solid ${TMColors.border_normal}`, borderRadius: '5px', padding: '4px 10px 4px 13px', display: 'flex', alignItems: 'center', gap: '8px', backgroundColor: '#fafafa' }, children: [_jsx(IconFolderOpen, {}), _jsx("span", { style: { fontSize: '0.9rem', color: '#333' }, children: "Download" })] }), _jsx("span", { style: { fontSize: '0.8rem', color: '#888', fontStyle: 'italic', marginTop: '4px', display: 'block' }, children: SDKUI_Localizator.BrowserDoesNotSupportFolderSelection })] }) })), _jsx("div", { style: { flex: '1.5 1 420px', minWidth: '350px', width: '100%' }, children: _jsx(TMTextBox, { label: SDKUI_Localizator.PdfFileName, value: pdfFileName, validationItems: pdfValidationItems, autoComplete: "one-time-code", onValueChanged: (e) => setPdfFileName(e.target.value) }) })] }), (hasConvertibleSelected || !hasEnoughPdfForMerge || hasNonPdfSelected) && (_jsxs("div", { style: {
|
|
234
246
|
display: 'flex',
|
|
235
247
|
flexDirection: 'column',
|
|
236
248
|
gap: '6px',
|
|
237
249
|
padding: '8px 12px',
|
|
238
|
-
border: '1px solid #
|
|
250
|
+
border: '1px solid #c0c0c0',
|
|
239
251
|
borderRadius: '5px',
|
|
240
|
-
backgroundColor: '#
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
}, children: [_jsx("
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
252
|
+
backgroundColor: '#f8f8f8',
|
|
253
|
+
fontSize: '0.85rem',
|
|
254
|
+
marginTop: '12px',
|
|
255
|
+
}, children: [_jsx("div", { style: {
|
|
256
|
+
display: 'flex',
|
|
257
|
+
alignItems: 'center',
|
|
258
|
+
gap: '6px',
|
|
259
|
+
fontWeight: 600,
|
|
260
|
+
color: '#555',
|
|
261
|
+
fontSize: '0.9rem',
|
|
262
|
+
borderBottom: '1px solid #e0e0e0',
|
|
263
|
+
paddingBottom: '6px',
|
|
264
|
+
marginBottom: '2px'
|
|
265
|
+
}, children: SDKUI_Localizator.NotesAndWarnings }), _jsxs("ul", { style: { margin: 0, paddingLeft: '18px', display: 'flex', flexDirection: 'column', gap: '4px' }, children: [hasConvertibleSelected && (_jsx("li", { style: { color: '#00527a' }, children: (() => {
|
|
266
|
+
const extSet = Array.from(new Set(convertibleSelectedItems.map(i => (i.ext ?? '').toString().trim().toLowerCase().replace(/^\./, '')).filter(e => e.length > 0)));
|
|
267
|
+
const extLabel = extSet.length > 0
|
|
268
|
+
? ` (${extSet.map(e => '.' + e).join(', ')})`
|
|
269
|
+
: '';
|
|
270
|
+
return convertibleSelectedItems.length === 1
|
|
271
|
+
? SDKUI_Localizator.DocumentWillBeConvertedDuringMerge.replaceParams(extLabel)
|
|
272
|
+
: SDKUI_Localizator.DocumentsWillBeConvertedDuringMerge.replaceParams(convertibleSelectedItems.length.toString(), extLabel);
|
|
273
|
+
})() })), !hasEnoughPdfForMerge && (_jsx("li", { style: { color: '#7a5d00' }, children: mergeableSelectedCount === 0
|
|
262
274
|
? SDKUI_Localizator.NoPdfOrConvertibleFilesSelected_Param.replaceParams(MIN_PDF_FOR_MERGE.toString())
|
|
263
|
-
: SDKUI_Localizator.OnlyOnePdfOrConvertibleFileSelected.replaceParams(MIN_PDF_FOR_MERGE.toString()) })), hasNonPdfSelected && (_jsx("li", { children: (() => {
|
|
275
|
+
: SDKUI_Localizator.OnlyOnePdfOrConvertibleFileSelected.replaceParams(MIN_PDF_FOR_MERGE.toString()) })), hasNonPdfSelected && (_jsx("li", { style: { color: '#7a5d00' }, children: (() => {
|
|
264
276
|
const extSet = Array.from(new Set(nonPdfSelectedItems.map(i => (i.ext ?? '').toString().trim().toLowerCase().replace(/^\./, '')).filter(e => e.length > 0)));
|
|
265
277
|
const extLabel = extSet.length > 0 ? ` (${extSet.map(e => '.' + e).join(', ')})` : '';
|
|
266
278
|
return nonPdfSelectedItems.length === 1
|
|
267
279
|
? SDKUI_Localizator.FileNotPdfWillBeExcluded.replaceParams(extLabel)
|
|
268
280
|
: SDKUI_Localizator.FilesNotPdfWillBeExcluded.replaceParams(nonPdfSelectedItems.length.toString(), extLabel);
|
|
269
281
|
})() }))] })] }))] })] }));
|
|
270
|
-
return (_jsx(TMModal, { width: calcResponsiveSizes(deviceType, showTMRelationViewer ? '90%' : '500px', showTMRelationViewer ? '90%' : '500px', '95%'), height:
|
|
271
|
-
|
|
272
|
-
|
|
282
|
+
return (_jsx(TMModal, { width: calcResponsiveSizes(deviceType, showTMRelationViewer ? '90%' : '500px', showTMRelationViewer ? '90%' : '500px', '95%'), height: showTMRelationViewer ? '95%' : 'auto', title: getTitle(), onClose: onClose, showCloseButton: true, 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("div", { onContextMenu: (e) => e.preventDefault(), style: { display: 'flex', flexDirection: 'column', gap: '16px', padding: '16px', width: '100%', height: '100%', boxSizing: 'border-box', overflow: 'hidden' }, children: [showTMRelationViewer ? (_jsx("div", { style: { flex: 1, minHeight: 0, display: 'flex', flexDirection: 'column' }, children: _jsxs(TMSplitterLayout, { direction: 'vertical', showSeparator: true, separatorSize: 8, separatorColor: 'transparent', separatorActiveColor: 'transparent', overflow: 'hidden', min: ["50", "50"], start: ["70%", "30%"], children: [_jsx(TMDownloadRelationViewerSection, { selectedDcmtInfos: selectedDcmtInfos, onSelectionChanged: setSelectedItemsRelationViewer, allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers }), configSection] }, "TMMergeToPdf-relation-config") })) : (configSection), _jsx("div", { style: { display: 'flex', justifyContent: 'center', alignItems: 'center', flexShrink: 0, marginTop: '12px' }, children: _jsxs("button", { disabled: !isFormValid() || (showTMRelationViewer && selectedItemsRelationViewer.filter(i => i.isDcmt).length === 0) || !hasEnoughPdfForMerge, onClick: run, style: {
|
|
283
|
+
display: 'flex',
|
|
284
|
+
alignItems: 'center',
|
|
285
|
+
justifyContent: 'center',
|
|
286
|
+
gap: '6px',
|
|
287
|
+
padding: '8px 20px',
|
|
288
|
+
fontSize: '0.95rem',
|
|
289
|
+
fontWeight: 600,
|
|
290
|
+
color: '#fff',
|
|
291
|
+
background: (!isFormValid() || (showTMRelationViewer && selectedItemsRelationViewer.filter(i => i.isDcmt).length === 0) || !hasEnoughPdfForMerge)
|
|
292
|
+
? '#b0b0b0'
|
|
293
|
+
: 'linear-gradient(135deg, #28a745 0%, #218838 100%)',
|
|
294
|
+
border: 'none',
|
|
295
|
+
borderRadius: '6px',
|
|
296
|
+
cursor: (!isFormValid() || (showTMRelationViewer && selectedItemsRelationViewer.filter(i => i.isDcmt).length === 0) || !hasEnoughPdfForMerge) ? 'not-allowed' : 'pointer',
|
|
297
|
+
boxShadow: (!isFormValid() || (showTMRelationViewer && selectedItemsRelationViewer.filter(i => i.isDcmt).length === 0) || !hasEnoughPdfForMerge)
|
|
298
|
+
? 'none'
|
|
299
|
+
: '0 2px 8px rgba(40, 167, 69, 0.35)',
|
|
300
|
+
transition: 'all 0.2s ease',
|
|
301
|
+
}, children: [_jsx(IconPlay, {}), _jsx("span", { children: mergeableSelectedCount === 0
|
|
302
|
+
? SDKUI_Localizator.MergeToPdf
|
|
303
|
+
: mergeableSelectedCount > 999
|
|
304
|
+
? _jsx(TMTooltip, { content: mergeableSelectedCount.toString(), children: SDKUI_Localizator.MergeFilesToPdf.replaceParams('999+') })
|
|
305
|
+
: SDKUI_Localizator.MergeFilesToPdf.replaceParams(mergeableSelectedCount.toString()) })] }) })] }) }) }));
|
|
273
306
|
};
|
|
274
307
|
export default TMMergeToPdfForm;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import React, { useCallback, useEffect, useMemo, useState } from 'react';
|
|
3
3
|
import { DcmtTypeListCacheService, SDK_Globals, DataColumnTypes, MetadataFormats, SystemMIDs, MetadataDataDomains, RelationCacheService, RelationTypes, UserListCacheService } from "@topconsultnpm/sdk-ts";
|
|
4
|
-
import { genUniqueId, IconFolder, IconBackhandIndexPointingRight, IconCircleInfo, getDcmtCicoStatus, IconChevronDown, IconChevronRight } from '../../../helper';
|
|
4
|
+
import { genUniqueId, IconFolder, IconBackhandIndexPointingRight, IconCircleInfo, getDcmtCicoStatus, IconChevronDown, IconChevronRight, SDKUI_Localizator } from '../../../helper';
|
|
5
5
|
import { TMColors } from '../../../utils/theme';
|
|
6
6
|
import { StyledDivHorizontal, StyledBadge, StyledToolbarForm } from '../../base/Styled';
|
|
7
7
|
import TMTreeView from '../../base/TMTreeView';
|
|
@@ -1225,7 +1225,7 @@ const TMRelationViewer = ({ inputDcmts, isForMaster = false, showCurrentDcmtIndi
|
|
|
1225
1225
|
return null;
|
|
1226
1226
|
return _jsx("div", { style: { padding: '20px', textAlign: 'center', color: '#666' }, children: "Nessuna relazione disponibile." });
|
|
1227
1227
|
}
|
|
1228
|
-
return (_jsxs("div", { style: { display: 'flex', flexDirection: 'column', height: '100%', minHeight: 0, width: '100%' }, children: [showExpandAllButton && (_jsx(StyledToolbarForm, { style: { flexShrink: 0 }, children: _jsxs("button", { type: "button", onClick: handleToggleExpandAll, title: allExpanded ?
|
|
1228
|
+
return (_jsxs("div", { style: { display: 'flex', flexDirection: 'column', height: '100%', minHeight: 0, width: '100%' }, children: [showExpandAllButton && (_jsx(StyledToolbarForm, { style: { flexShrink: 0 }, children: _jsxs("button", { type: "button", onClick: handleToggleExpandAll, title: allExpanded ? SDKUI_Localizator.CollapseAll : SDKUI_Localizator.ExpandAll, style: {
|
|
1229
1229
|
display: 'inline-flex',
|
|
1230
1230
|
alignItems: 'center',
|
|
1231
1231
|
gap: '4px',
|
|
@@ -1238,7 +1238,7 @@ const TMRelationViewer = ({ inputDcmts, isForMaster = false, showCurrentDcmtIndi
|
|
|
1238
1238
|
cursor: 'pointer',
|
|
1239
1239
|
lineHeight: 1,
|
|
1240
1240
|
whiteSpace: 'nowrap'
|
|
1241
|
-
}, children: [allExpanded ? _jsx(IconChevronRight, { fontSize: 14 }) : _jsx(IconChevronDown, { fontSize: 14 }), _jsx("span", { children: allExpanded ?
|
|
1241
|
+
}, children: [allExpanded ? _jsx(IconChevronRight, { fontSize: 14 }) : _jsx(IconChevronDown, { fontSize: 14 }), _jsx("span", { children: allExpanded ? SDKUI_Localizator.CollapseAll : SDKUI_Localizator.ExpandAll })] }) })), _jsx("div", { style: { flex: 1, minHeight: 0, overflow: 'auto' }, children: _jsx(TMTreeView, { dataSource: mergedTreeData, itemRender: finalItemRender, calculateItemsForNode: calculateItemsForNode, onDataChanged: handleDataChanged, focusedItem: focusedItem, onFocusedItemChanged: handleFocusedItemChanged, allowMultipleSelection: allowMultipleSelection, selectedItems: selectedItems, itemsPerPage: 100, onSelectionChanged: handleSelectedItemsChanged, onItemContextMenu: onItemContextMenu }) }), showExpansionWaitPanel && (_jsx(TMWaitPanel, { title: isForMaster ? 'Caricamento documenti master' : 'Caricamento documenti dettaglio', showPrimary: true, textPrimary: expansionWaitPanelText, valuePrimary: expansionWaitPanelValue, maxValuePrimary: expansionWaitPanelMaxValue, isCancelable: true, abortController: expansionAbortController, onAbortClick: (abortController) => {
|
|
1242
1242
|
setTimeout(() => {
|
|
1243
1243
|
abortController?.abort();
|
|
1244
1244
|
}, 100);
|
|
@@ -2,10 +2,6 @@ import React from 'react';
|
|
|
2
2
|
import { DcmtInfo } from '../../../ts';
|
|
3
3
|
import { DocumentDownloadSettings, FileNamingMode } from '../../../helper';
|
|
4
4
|
import { IRelatedDcmt } from './TMMasterDetailDcmts';
|
|
5
|
-
export declare const SPLITTER_MIN: string[];
|
|
6
|
-
export declare const SPLITTER_START_60_40: string[];
|
|
7
|
-
export declare const SPLITTER_START_70_30: string[];
|
|
8
|
-
export declare const SPLITTER_START_75_25: string[];
|
|
9
5
|
/** Numero minimo di file PDF necessari per poterli unire in un unico documento. */
|
|
10
6
|
export declare const MIN_PDF_FOR_MERGE = 2;
|
|
11
7
|
/** Stile per le etichette "floating" posizionate sopra i bordi dei container */
|
|
@@ -1,13 +1,6 @@
|
|
|
1
1
|
import { DcmtTypeListCacheService, LayoutModes, SDK_Globals } from '@topconsultnpm/sdk-ts';
|
|
2
2
|
import { searchResultToMetadataValues, DocumentDownloadSettings } from '../../../helper';
|
|
3
3
|
import { TMColors } from '../../../utils/theme';
|
|
4
|
-
// ============================================================
|
|
5
|
-
// Costanti condivise tra TMCopyToFolderForm e TMMergeToPdfForm
|
|
6
|
-
// ============================================================
|
|
7
|
-
export const SPLITTER_MIN = ['50', '50'];
|
|
8
|
-
export const SPLITTER_START_60_40 = ['60%', '40%'];
|
|
9
|
-
export const SPLITTER_START_70_30 = ['70%', '30%'];
|
|
10
|
-
export const SPLITTER_START_75_25 = ['75%', '25%'];
|
|
11
4
|
/** Numero minimo di file PDF necessari per poterli unire in un unico documento. */
|
|
12
5
|
export const MIN_PDF_FOR_MERGE = 2;
|
|
13
6
|
// ============================================================
|
|
@@ -3,7 +3,7 @@ import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'
|
|
|
3
3
|
import styled from 'styled-components';
|
|
4
4
|
import { LoadIndicator } from 'devextreme-react';
|
|
5
5
|
import { AppModules, DataColumnTypes, DataListViewModes, DcmtTypeListCacheService, LayoutCacheService, LayoutModes, MetadataDataDomains, MetadataFormats, SDK_Globals, SystemMIDsAsNumber, UserListCacheService, } from '@topconsultnpm/sdk-ts';
|
|
6
|
-
import { deepCompare, generateUniqueColumnKeys, genUniqueId, getSearchToolbarVisibility, IconBoard, IconDcmtTypeSys, IconDelete, IconMenuVertical, IconPlatform, IconRefresh, IconSearchCheck, IconShow, isApprovalWorkflowView, searchResultDescriptorToSimpleArray, searchResultToMetadataValues, SDKUI_Globals, SDKUI_Localizator, } from '../../../helper';
|
|
6
|
+
import { deepCompare, generateUniqueColumnKeys, genUniqueId, getSearchToolbarVisibility, IconBoard, IconDcmtTypeSys, IconDelete, IconMenuVertical, IconPlatform, IconRefresh, IconSearchCheck, IconShow, isApprovalWorkflowView, isSign4TopEnabled, searchResultDescriptorToSimpleArray, searchResultToMetadataValues, SDKUI_Globals, SDKUI_Localizator, } from '../../../helper';
|
|
7
7
|
import { getDcmtCicoStatus } from '../../../helper/checkinCheckoutManager';
|
|
8
8
|
import { DcmtOperationTypes, SearchResultContext, } from '../../../ts';
|
|
9
9
|
import { Gutters } from '../../../utils/theme';
|
|
@@ -444,6 +444,29 @@ handleNavigateToWGs, handleNavigateToDossiers, }) => {
|
|
|
444
444
|
return;
|
|
445
445
|
openFormHandler(LayoutModes.Update);
|
|
446
446
|
}, [inputDID, formAutoOpen, focusedItem]);
|
|
447
|
+
// Quando openS4TViewer è true, apri automaticamente il viewer S4T
|
|
448
|
+
useEffect(() => {
|
|
449
|
+
if (!openS4TViewer)
|
|
450
|
+
return;
|
|
451
|
+
if (!inputDID)
|
|
452
|
+
return;
|
|
453
|
+
if (!focusedItem)
|
|
454
|
+
return;
|
|
455
|
+
if (focusedItem.DID != inputDID)
|
|
456
|
+
return;
|
|
457
|
+
if (!fromDTD || !isApprovalWorkflowView(fromDTD))
|
|
458
|
+
return;
|
|
459
|
+
if (!focusedItem.FILEEXT || !fromDTD.widgets || !isSign4TopEnabled(fromDTD.widgets)) {
|
|
460
|
+
ShowAlert({
|
|
461
|
+
message: "Il documento non ha l'estensione valida per la firma.",
|
|
462
|
+
mode: "warning",
|
|
463
|
+
title: 'External link',
|
|
464
|
+
duration: 5000
|
|
465
|
+
});
|
|
466
|
+
return;
|
|
467
|
+
}
|
|
468
|
+
onOpenS4TViewerRequest?.([{ TID: focusedItem.TID, DID: focusedItem.DID }]);
|
|
469
|
+
}, [openS4TViewer, inputDID, focusedItem, fromDTD]);
|
|
447
470
|
useEffect(() => {
|
|
448
471
|
if (!focusedItem)
|
|
449
472
|
return;
|
|
@@ -109,6 +109,7 @@ export declare class SDKUI_Localizator {
|
|
|
109
109
|
static get Close(): "Ausgang" | "Close" | "Salida" | "Sortie" | "Saída" | "Chiudi";
|
|
110
110
|
static get Closed(): "Geschlossen" | "Closed" | "Cerrada" | "Fermée" | "Fechada" | "Chiusa";
|
|
111
111
|
static get CloseTask(): string;
|
|
112
|
+
static get CollapseAll(): "Alle reduzieren" | "Collapse all" | "Contraer todo" | "Tout réduire" | "Recolher tudo" | "Comprimi tutto";
|
|
112
113
|
static get Columns_All_Hide(): "Alle Spalten ausblenden" | "Hide all columns" | "Ocultar todas las columnas" | "Masquer toutes les colonnes" | "Ocultar todas as colunas" | "Nascondi tutte le colonne";
|
|
113
114
|
static get Columns_All_Show(): "Alle Spalten anzeigen" | "Show all columns" | "Mostrar todas las columnas" | "Afficher toutes les colonnes" | "Mostrar todas as colunas" | "Visualizza tutte le colonne";
|
|
114
115
|
static get Comment(): string;
|
|
@@ -263,6 +264,7 @@ export declare class SDKUI_Localizator {
|
|
|
263
264
|
static get ExtractedFromOtherUser(): string;
|
|
264
265
|
static get ExtractedOn(): "Ausgezogen am" | "Extracted on" | "Extraído el" | "Extrait le" | "Extraído em" | "Estratto il";
|
|
265
266
|
static get EvaluateResult(): "Bewerten Sie das Ergebnis" | "Evaluate result" | "Valorar el resultado" | "Évalue les résultats" | "Avalia os resultados" | "Valuta il risultato";
|
|
267
|
+
static get ExpandAll(): "Alle erweitern" | "Expand all" | "Expandir todo" | "Tout développer" | "Expandir tudo" | "Espandi tutto";
|
|
266
268
|
static get Expected(): "Erwartet" | "Expected" | "Esperado" | "Attendu" | "Atteso";
|
|
267
269
|
static get Expiration(): "Ablaufdatum" | "Expiration" | "Fecha de expiración" | "Date d'expiration" | "Data de expiração" | "Scadenza";
|
|
268
270
|
static get ExpirationDate(): "Ablaufdatum" | "Expiration date" | "Fecha de vencimiento" | "Date d'échéance" | "Data de validade" | "Data di scadenza";
|
|
@@ -290,6 +292,7 @@ export declare class SDKUI_Localizator {
|
|
|
290
292
|
static get FilesNotPdfWillBeExcluded(): string;
|
|
291
293
|
static get FileUpload(): "Datei hochladen" | "File upload" | "Carga de archivo" | "Téléchargement de fichier" | "Carregamento de arquivo" | "Caricamento File";
|
|
292
294
|
static get Folder(): string;
|
|
295
|
+
static get FolderName(): string;
|
|
293
296
|
static get FolderExist(): "Ordner existiert bereits. Bitte versuchen Sie einen anderen Namen" | "Folder already exists. Please try another name" | "La carpeta ya existe. Intente con otro nombre." | "Le dossier existe déjà. Veuillez essayer un autre nom" | "A pasta já existe. Por favor tente outro nome" | "La cartella esiste già. Prova un altro nome";
|
|
294
297
|
static get FolderIsEmpty(): string;
|
|
295
298
|
static get ForgetPassword(): "Passwort vergessen" | "Forgot password" | "Has olvidado tu contraseña" | "Mot de passe oublié" | "Esqueceu sua senha" | "Password dimenticata";
|
|
@@ -510,6 +513,7 @@ export declare class SDKUI_Localizator {
|
|
|
510
513
|
static get NoneSelection(): "Keine Auswahl" | "No selection" | "Ninguna selección" | "Pas de sélections" | "Nenhuma seleção" | "Nessuna selezione";
|
|
511
514
|
static get NotAvailable(): string;
|
|
512
515
|
static get Note(): string;
|
|
516
|
+
static get NotesAndWarnings(): string;
|
|
513
517
|
static get MaximumNumberOfResults(): string;
|
|
514
518
|
static get OfSystem(): "Des Systems" | "Of system" | "Del sistema" | "Du système" | "Do sistema" | "Di sistema";
|
|
515
519
|
static get OldPassword(): "Altes Kennwort" | "Old password" | "Contraseña anterior" | "Ancien mot de passe" | "Senha Antiga" | "Password vecchia";
|
|
@@ -656,7 +660,6 @@ export declare class SDKUI_Localizator {
|
|
|
656
660
|
static get SavingInProgress(): string;
|
|
657
661
|
static get SaveQuestion(): "Ihre Änderungen speichern?" | "Save modifications?" | "¿Guardar modificaciones aportadas?" | "Enregistrez les modifications?" | "Salve as alterações?" | "Salvare le modifiche apportate?";
|
|
658
662
|
static get FormErrorsProceedQuestion(): "Es gibt Fehler im Formular. Wenn Sie fortfahren, werden die Daten nicht gespeichert. Möchten Sie trotzdem fortfahren?" | "There are errors in the form. If you continue, the data will not be saved. Do you want to proceed anyway?" | "Hay errores en el formulario. Si continúas, los datos no se guardarán. ¿Quieres proceder de todos modos?" | "Il y a des erreurs dans le formulaire. Si vous continuez, les données ne seront pas enregistrées. Voulez-vous continuer quand même?" | "Há erros no formulário. Se continuar, os dados não serão salvos. Deseja prosseguir mesmo assim?" | "Ci sono errori nel form. Se continui, i dati non saranno salvati. Vuoi comunque procedere?";
|
|
659
|
-
static get SavedDestination(): string;
|
|
660
663
|
static get SavedQueryNew(): "Neue Suche speichern" | "Save new search" | "Guardar nueva búsqueda" | "Enregistrer la nouvelle recherche" | "Guardar nova pesquisa" | "Salva nuova ricerca";
|
|
661
664
|
static get SavedQueryUpdate(): "Suche bearbeiten" | "Modify query" | "Modificar búsqueda" | "Modifie la recherche" | "Mudar pesquisa" | "Modifica ricerca";
|
|
662
665
|
static get ScanFeatureUnavailableInThisContext(): "Scanfunktionen sind in diesem Kontext nicht verfugbar." | "Scanning features are not available in this context." | "Las funciones de escaneo no estan disponibles en este contexto." | "Les fonctionnalites de numerisation ne sont pas disponibles dans ce contexte." | "Os recursos de digitalizacao nao estao disponiveis neste contexto." | "Funzionalita di scansione non disponibili in questo contesto.";
|
|
@@ -692,7 +695,7 @@ export declare class SDKUI_Localizator {
|
|
|
692
695
|
static get SetAsDefault2(): "Standard setzen" | "Set default" | "Configurar predeterminado" | "Place le défaut" | "Definir padrão" | "Imposta default";
|
|
693
696
|
static get SetAsFavorite(): "Als Favorit festlegen" | "Set as favorite" | "Establecer como favorito" | "Définir comme favori" | "Definir como favorito" | "Imposta come preferito";
|
|
694
697
|
static get SetNamedCredentialsAsPreferred(): "Möchten Sie die Anmeldedaten '{{0}}' als bevorzugt festlegen?" | "Do you want to set the '{{0}}' credentials as preferred?" | "¿Quieres configurar las credenciales '{{0}}' como preferidas?" | "Voulez-vous définir les identifiants '{{0}}' comme préférés ?" | "Deseja definir as credenciais '{{0}}' como preferidas?" | "Vuoi impostare le credenziali '{{0}}' come preferite?";
|
|
695
|
-
static get
|
|
698
|
+
static get Separator(): string;
|
|
696
699
|
static get Settings(): "Einstellungen" | "Settings" | "Ajustes" | "Réglages" | "Definições" | "Impostazioni";
|
|
697
700
|
static get SettingSavedSuccessfully(): string;
|
|
698
701
|
static get Severity(): "Schweregrad" | "Severity" | "Gravedad" | "Gravité" | "Gravidade" | "Gravità";
|
|
@@ -777,28 +777,22 @@ export class SDKUI_Localizator {
|
|
|
777
777
|
}
|
|
778
778
|
static get BrowserDoesNotSupportFolderSelection() {
|
|
779
779
|
switch (this._cultureID) {
|
|
780
|
-
case CultureIDs.De_DE:
|
|
781
|
-
|
|
782
|
-
case CultureIDs.
|
|
783
|
-
|
|
784
|
-
case CultureIDs.
|
|
785
|
-
|
|
786
|
-
case CultureIDs.Fr_FR:
|
|
787
|
-
return "Le navigateur utilisé ne prend pas en charge la sélection de dossier. Les fichiers seront téléchargés dans le dossier Téléchargements";
|
|
788
|
-
case CultureIDs.Pt_PT:
|
|
789
|
-
return "O navegador utilizado não suporta a seleção de pastas. Os ficheiros serão transferidos para a pasta Downloads";
|
|
790
|
-
default:
|
|
791
|
-
return "Il browser in uso non supporta la selezione della cartella. I file verranno scaricati nella cartella Download";
|
|
780
|
+
case CultureIDs.De_DE: return "Der verwendete Browser unterstützt die Ordnerauswahl nicht";
|
|
781
|
+
case CultureIDs.En_US: return "The browser in use does not support folder selection";
|
|
782
|
+
case CultureIDs.Es_ES: return "El navegador en uso no admite la selección de carpetas";
|
|
783
|
+
case CultureIDs.Fr_FR: return "Le navigateur utilisé ne prend pas en charge la sélection de dossier";
|
|
784
|
+
case CultureIDs.Pt_PT: return "O navegador utilizado não suporta a seleção de pastas";
|
|
785
|
+
default: return "Il browser in uso non supporta la selezione della cartella";
|
|
792
786
|
}
|
|
793
787
|
}
|
|
794
788
|
static get BrowserAutoRenamesDuplicateFilesInDownloadsFolder() {
|
|
795
789
|
switch (this._cultureID) {
|
|
796
|
-
case CultureIDs.De_DE: return "
|
|
797
|
-
case CultureIDs.En_US: return "
|
|
798
|
-
case CultureIDs.Es_ES: return "
|
|
799
|
-
case CultureIDs.Fr_FR: return "
|
|
800
|
-
case CultureIDs.Pt_PT: return "
|
|
801
|
-
default: return "
|
|
790
|
+
case CultureIDs.De_DE: return "Browser benennt Duplikate automatisch um";
|
|
791
|
+
case CultureIDs.En_US: return "Browser auto-renames duplicate files";
|
|
792
|
+
case CultureIDs.Es_ES: return "El navegador renombra archivos duplicados";
|
|
793
|
+
case CultureIDs.Fr_FR: return "Le navigateur renomme les fichiers en double";
|
|
794
|
+
case CultureIDs.Pt_PT: return "O navegador renomeia ficheiros duplicados";
|
|
795
|
+
default: return "Il browser rinomina automaticamente i file duplicati";
|
|
802
796
|
}
|
|
803
797
|
}
|
|
804
798
|
static get ByDate() {
|
|
@@ -1076,6 +1070,16 @@ export class SDKUI_Localizator {
|
|
|
1076
1070
|
default: return "Chiudi attività";
|
|
1077
1071
|
}
|
|
1078
1072
|
}
|
|
1073
|
+
static get CollapseAll() {
|
|
1074
|
+
switch (this._cultureID) {
|
|
1075
|
+
case CultureIDs.De_DE: return "Alle reduzieren";
|
|
1076
|
+
case CultureIDs.En_US: return "Collapse all";
|
|
1077
|
+
case CultureIDs.Es_ES: return "Contraer todo";
|
|
1078
|
+
case CultureIDs.Fr_FR: return "Tout réduire";
|
|
1079
|
+
case CultureIDs.Pt_PT: return "Recolher tudo";
|
|
1080
|
+
default: return "Comprimi tutto";
|
|
1081
|
+
}
|
|
1082
|
+
}
|
|
1079
1083
|
static get Columns_All_Hide() {
|
|
1080
1084
|
switch (this._cultureID) {
|
|
1081
1085
|
case CultureIDs.De_DE: return "Alle Spalten ausblenden";
|
|
@@ -2603,6 +2607,16 @@ export class SDKUI_Localizator {
|
|
|
2603
2607
|
default: return "Valuta il risultato";
|
|
2604
2608
|
}
|
|
2605
2609
|
}
|
|
2610
|
+
static get ExpandAll() {
|
|
2611
|
+
switch (this._cultureID) {
|
|
2612
|
+
case CultureIDs.De_DE: return "Alle erweitern";
|
|
2613
|
+
case CultureIDs.En_US: return "Expand all";
|
|
2614
|
+
case CultureIDs.Es_ES: return "Expandir todo";
|
|
2615
|
+
case CultureIDs.Fr_FR: return "Tout développer";
|
|
2616
|
+
case CultureIDs.Pt_PT: return "Expandir tudo";
|
|
2617
|
+
default: return "Espandi tutto";
|
|
2618
|
+
}
|
|
2619
|
+
}
|
|
2606
2620
|
static get Expected() {
|
|
2607
2621
|
switch (this._cultureID) {
|
|
2608
2622
|
case CultureIDs.De_DE: return "Erwartet";
|
|
@@ -2873,6 +2887,16 @@ export class SDKUI_Localizator {
|
|
|
2873
2887
|
default: return "Cartella";
|
|
2874
2888
|
}
|
|
2875
2889
|
}
|
|
2890
|
+
static get FolderName() {
|
|
2891
|
+
switch (this._cultureID) {
|
|
2892
|
+
case CultureIDs.De_DE: return "Ordnername";
|
|
2893
|
+
case CultureIDs.En_US: return "Folder name";
|
|
2894
|
+
case CultureIDs.Es_ES: return "Nombre de carpeta";
|
|
2895
|
+
case CultureIDs.Fr_FR: return "Nom du dossier";
|
|
2896
|
+
case CultureIDs.Pt_PT: return "Nome da pasta";
|
|
2897
|
+
default: return "Nome cartella";
|
|
2898
|
+
}
|
|
2899
|
+
}
|
|
2876
2900
|
static get FolderExist() {
|
|
2877
2901
|
switch (this._cultureID) {
|
|
2878
2902
|
case CultureIDs.De_DE: return "Ordner existiert bereits. Bitte versuchen Sie einen anderen Namen";
|
|
@@ -5066,6 +5090,16 @@ export class SDKUI_Localizator {
|
|
|
5066
5090
|
default: return "Nota";
|
|
5067
5091
|
}
|
|
5068
5092
|
}
|
|
5093
|
+
static get NotesAndWarnings() {
|
|
5094
|
+
switch (this._cultureID) {
|
|
5095
|
+
case CultureIDs.De_DE: return "Hinweise und Warnungen";
|
|
5096
|
+
case CultureIDs.En_US: return "Notes and Warnings";
|
|
5097
|
+
case CultureIDs.Es_ES: return "Notas y advertencias";
|
|
5098
|
+
case CultureIDs.Fr_FR: return "Notes et avertissements";
|
|
5099
|
+
case CultureIDs.Pt_PT: return "Notas e avisos";
|
|
5100
|
+
default: return "Note e avvisi";
|
|
5101
|
+
}
|
|
5102
|
+
}
|
|
5069
5103
|
static get MaximumNumberOfResults() {
|
|
5070
5104
|
switch (this._cultureID) {
|
|
5071
5105
|
case CultureIDs.De_DE: return "Maximale Anzahl von Ergebnissen";
|
|
@@ -6545,16 +6579,6 @@ export class SDKUI_Localizator {
|
|
|
6545
6579
|
default: return "Ci sono errori nel form. Se continui, i dati non saranno salvati. Vuoi comunque procedere?";
|
|
6546
6580
|
}
|
|
6547
6581
|
}
|
|
6548
|
-
static get SavedDestination() {
|
|
6549
|
-
switch (this._cultureID) {
|
|
6550
|
-
case CultureIDs.De_DE: return "Gespeichertes Ziel";
|
|
6551
|
-
case CultureIDs.En_US: return "Saved destination";
|
|
6552
|
-
case CultureIDs.Es_ES: return "Destino guardado";
|
|
6553
|
-
case CultureIDs.Fr_FR: return "Destination enregistrée";
|
|
6554
|
-
case CultureIDs.Pt_PT: return "Destino guardado";
|
|
6555
|
-
default: return "Destinazione salvata";
|
|
6556
|
-
}
|
|
6557
|
-
}
|
|
6558
6582
|
static get SavedQueryNew() {
|
|
6559
6583
|
switch (this._cultureID) {
|
|
6560
6584
|
case CultureIDs.De_DE: return "Neue Suche speichern";
|
|
@@ -6906,14 +6930,14 @@ export class SDKUI_Localizator {
|
|
|
6906
6930
|
default: return "Vuoi impostare le credenziali '{{0}}' come preferite?";
|
|
6907
6931
|
}
|
|
6908
6932
|
}
|
|
6909
|
-
static get
|
|
6933
|
+
static get Separator() {
|
|
6910
6934
|
switch (this._cultureID) {
|
|
6911
6935
|
case CultureIDs.De_DE: return "Trennzeichen";
|
|
6912
|
-
case CultureIDs.En_US: return "Separator
|
|
6913
|
-
case CultureIDs.Es_ES: return "
|
|
6914
|
-
case CultureIDs.Fr_FR: return "
|
|
6915
|
-
case CultureIDs.Pt_PT: return "
|
|
6916
|
-
default: return "
|
|
6936
|
+
case CultureIDs.En_US: return "Separator";
|
|
6937
|
+
case CultureIDs.Es_ES: return "Separador";
|
|
6938
|
+
case CultureIDs.Fr_FR: return "Séparateur";
|
|
6939
|
+
case CultureIDs.Pt_PT: return "Separador";
|
|
6940
|
+
default: return "Separatore";
|
|
6917
6941
|
}
|
|
6918
6942
|
}
|
|
6919
6943
|
static get Settings() {
|
|
@@ -1107,7 +1107,7 @@ export const useDocumentOperations = (props) => {
|
|
|
1107
1107
|
];
|
|
1108
1108
|
};
|
|
1109
1109
|
const getArchivedWorkgroupMenuItems = () => {
|
|
1110
|
-
const
|
|
1110
|
+
const sortedItems = [
|
|
1111
1111
|
addReplaceFileOperation(),
|
|
1112
1112
|
openFormOperation(),
|
|
1113
1113
|
deletetionMenuItem(),
|
|
@@ -1118,11 +1118,13 @@ export const useDocumentOperations = (props) => {
|
|
|
1118
1118
|
copyFromWgMenuItem(),
|
|
1119
1119
|
movetofolderFromWgMenuItem(),
|
|
1120
1120
|
commentFromWgMenuItem(false),
|
|
1121
|
-
copyToFolderMenuItem(),
|
|
1122
|
-
mergeToPdfMenuItem(),
|
|
1123
1121
|
removeFromWgMenuItem(SDKUI_Localizator.RemoveFromWorkgroup),
|
|
1122
|
+
].sort((a, b) => a.name.localeCompare(b.name));
|
|
1123
|
+
return [
|
|
1124
|
+
...sortedItems,
|
|
1125
|
+
{ ...copyToFolderMenuItem(), beginGroup: true },
|
|
1126
|
+
mergeToPdfMenuItem(),
|
|
1124
1127
|
];
|
|
1125
|
-
return items.sort((a, b) => a.name.localeCompare(b.name));
|
|
1126
1128
|
};
|
|
1127
1129
|
const getDcmtFormMenuItems = () => {
|
|
1128
1130
|
return [
|