@topconsultnpm/sdkui-react-beta 6.17.28 → 6.17.29
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/choosers/TMMetadataChooser.js +77 -60
- package/lib/components/features/documents/TMDcmtForm.d.ts +2 -2
- package/lib/components/features/documents/TMDcmtForm.js +50 -7
- package/lib/components/features/search/TMSearchResult.js +44 -4
- package/lib/components/query/TMQueryEditor.js +3 -3
- package/lib/helper/SDKUI_Localizator.d.ts +1 -0
- package/lib/helper/SDKUI_Localizator.js +10 -0
- package/lib/helper/queryHelper.js +1 -1
- package/package.json +1 -1
|
@@ -13,16 +13,22 @@ import TMChooserForm from '../forms/TMChooserForm';
|
|
|
13
13
|
import TMSpinner from '../base/TMSpinner';
|
|
14
14
|
const TMMetadataChooser = ({ tmSession, dataSource, showEditButton = true, buttons = [], disabled, validationItems, getColorIndex, showCompleteMetadataName, qdShowOnlySelectItems, borderRadius = '4px', fontSize = FontSize.defaultFontSize, backgroundColor, openEditorOnSummaryClick, showBorder = true, showId = false, elementStyle, allowMultipleSelection, allowSysMetadata, showSysMetadataDirectly, value, values, isModifiedWhen, tids, label, width, height, showClearButton, qd, placeHolder, filterMetadata, onValueChanged }) => {
|
|
15
15
|
const [showChooser, setShowChooser] = useState(false);
|
|
16
|
-
const renderTemplate = () => {
|
|
16
|
+
const renderTemplate = useMemo(() => {
|
|
17
17
|
return (_jsxs(StyledDivHorizontal, { style: { width: 'max-content', height: '100%' }, children: [values && _jsx(TMMidViewer, { tmSession: tmSession, tid_mid: values[0], showIcon: true, showId: showId, showCompleteName: showCompleteMetadataName }), values && values.length > 1 && _jsx("p", { style: { marginLeft: '10px' }, children: `(+${values.length - 1} ${values.length == 2 ? 'altro' : 'altri'})` }), (values == undefined || values.length == 0) && _jsx("p", { children: placeHolder })] }));
|
|
18
|
-
};
|
|
19
|
-
return (_jsxs(_Fragment, { children: [_jsx(TMSummary, { label: label, width: width, height: height, disabled: disabled, validationItems: validationItems, backgroundColor: backgroundColor, buttons: buttons, placeHolder: placeHolder, fontSize: fontSize, showBorder: showBorder, borderRadius: borderRadius, hasValue: values && values.length > 0, showClearButton: showClearButton, showEditButton: showEditButton, iconEditButton: _jsx(IconSearch, { fontSize: 16 }), openEditorOnSummaryClick: openEditorOnSummaryClick, onEditorClick: () => !disabled && setShowChooser(true), elementStyle: elementStyle, isModifiedWhen: isModifiedWhen, template: renderTemplate
|
|
18
|
+
}, [values, tmSession, showId, showCompleteMetadataName, placeHolder]);
|
|
19
|
+
return (_jsxs(_Fragment, { children: [_jsx(TMSummary, { label: label, width: width, height: height, disabled: disabled, validationItems: validationItems, backgroundColor: backgroundColor, buttons: buttons, placeHolder: placeHolder, fontSize: fontSize, showBorder: showBorder, borderRadius: borderRadius, hasValue: values && values.length > 0, showClearButton: showClearButton, showEditButton: showEditButton, iconEditButton: _jsx(IconSearch, { fontSize: 16 }), openEditorOnSummaryClick: openEditorOnSummaryClick, onEditorClick: () => !disabled && setShowChooser(true), elementStyle: elementStyle, isModifiedWhen: isModifiedWhen, template: renderTemplate, onClearClick: showClearButton ? () => { onValueChanged?.([]); } : undefined }), showChooser &&
|
|
20
20
|
_jsx(TMMetadataChooserForm, { tmSession: tmSession, allowMultipleSelection: allowMultipleSelection, height: '500px', width: '600px', allowSysMetadata: allowSysMetadata, showSysMetadataDirectly: showSysMetadataDirectly, getColorIndex: getColorIndex, dataSource: dataSource, tids: tids, qd: qd, qdShowOnlySelectItems: qdShowOnlySelectItems, filterMetadata: filterMetadata, selectedIDs: values, onClose: () => setShowChooser(false), onChoose: (tid_mids) => { onValueChanged?.(tid_mids); } })] }));
|
|
21
21
|
};
|
|
22
22
|
export default TMMetadataChooser;
|
|
23
23
|
export const TMMetadataChooserForm = ({ tmSession, tids, qd, filterMetadata, qdShowOnlySelectItems, selectedIDs, dataSource, allowMultipleSelection, allowSysMetadata = true, showSysMetadataDirectly, width, height, getColorIndex, onClose, onChoose }) => {
|
|
24
|
-
const
|
|
25
|
-
(showSysMetadataDirectly
|
|
24
|
+
const getInitialShowSysMetadata = () => {
|
|
25
|
+
if (showSysMetadataDirectly)
|
|
26
|
+
return true;
|
|
27
|
+
if (!allowSysMetadata || !selectedIDs)
|
|
28
|
+
return false;
|
|
29
|
+
return selectedIDs.some(o => o.mid < 150);
|
|
30
|
+
};
|
|
31
|
+
const [showSysMetadata, setShowSysMetadata] = useState(getInitialShowSysMetadata());
|
|
26
32
|
const [hasSysMetadata, setHasSysMetadata] = useState(false);
|
|
27
33
|
const [dcmtTypes, setDcmtTypes] = useState([]);
|
|
28
34
|
const getItems = useCallback(async (refreshCache) => {
|
|
@@ -31,71 +37,77 @@ export const TMMetadataChooserForm = ({ tmSession, tids, qd, filterMetadata, qdS
|
|
|
31
37
|
let checkProps = qd != undefined ? dataSource != undefined || tids != undefined : dataSource != undefined && tids != undefined;
|
|
32
38
|
if (checkProps)
|
|
33
39
|
throw Error('Le props qd | tids | dataSource devono essere in alternativa');
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
40
|
+
try {
|
|
41
|
+
if (qd) {
|
|
42
|
+
let tids = getTIDsByQd(qd);
|
|
43
|
+
let inputTIDs = tids.map((item) => item.tid);
|
|
44
|
+
TMSpinner.show({ description: `${SDKUI_Localizator.Loading} - ${SDK_Localizator.DcmtType} ...` });
|
|
45
|
+
let dtds = await DcmtTypeListCacheService.GetFromTIDsAsync(inputTIDs, true, tmSession, false, refreshCache);
|
|
46
|
+
for (let i = 0; i < dtds.length; i++) {
|
|
47
|
+
const dtd = new DcmtTypeDescriptor();
|
|
48
|
+
dtd.init({ ...dtds[i] });
|
|
49
|
+
const alias = tids?.[i].alias ?? '';
|
|
50
|
+
dtd.customData2 = alias;
|
|
51
|
+
if (!qdShowOnlySelectItems) {
|
|
52
|
+
dtd.metadata?.forEach((md) => {
|
|
53
|
+
md.customData1 = dtd.id;
|
|
54
|
+
md.customData2 = alias;
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
let newMetadata = dtd.metadata?.filter(o => qd.select?.some(s => s.tid == dtd.id && s.mid == o.id && ((s.alias ?? '') == alias)));
|
|
59
|
+
newMetadata?.forEach((md) => {
|
|
60
|
+
md.customData1 = dtd.id;
|
|
61
|
+
md.customData2 = alias;
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
let mds = filterMetadata ? dtd.metadata?.filter(filterMetadata) : dtd.metadata;
|
|
65
|
+
dtdList.push({ ...dtd, metadata: mds });
|
|
50
66
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
});
|
|
57
|
-
|
|
67
|
+
}
|
|
68
|
+
else if (tids) {
|
|
69
|
+
if (tids.length <= 0)
|
|
70
|
+
return [];
|
|
71
|
+
if (refreshCache)
|
|
72
|
+
TMSpinner.show({ description: `${SDKUI_Localizator.Loading} - ${SDK_Localizator.DcmtType} ...` });
|
|
73
|
+
// Chiamate parallele mantenendo l'ordine
|
|
74
|
+
const promises = tids.map(tid => tid ? DcmtTypeListCacheService.GetAsync(tid, true, tmSession, true, refreshCache) : Promise.resolve(null));
|
|
75
|
+
const dtds = await Promise.all(promises);
|
|
76
|
+
for (let i = 0; i < dtds.length; i++) {
|
|
77
|
+
const dtd = dtds[i];
|
|
78
|
+
if (!dtd) {
|
|
79
|
+
if (tids[i])
|
|
80
|
+
throw new Error(`TID sconosciuto (${tids[i]})`);
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
let mds = filterMetadata ? dtd.metadata?.filter(filterMetadata) : dtd.metadata;
|
|
84
|
+
mds?.forEach((md) => { md.customData1 = dtd?.id; });
|
|
85
|
+
dtdList.push({ ...dtd, metadata: mds });
|
|
58
86
|
}
|
|
59
|
-
dtdList.push(dtd);
|
|
60
87
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
if (tids.length <= 0)
|
|
64
|
-
return [];
|
|
65
|
-
if (refreshCache)
|
|
66
|
-
TMSpinner.show({ description: `${SDKUI_Localizator.Loading} - ${SDK_Localizator.DcmtType} ...` });
|
|
67
|
-
for (const tid of tids) {
|
|
68
|
-
if (!tid)
|
|
88
|
+
for (const dtd of dtdList) {
|
|
89
|
+
if (!dtd.metadata)
|
|
69
90
|
continue;
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
throw new Error(`TID sconosciuto (${tid})`);
|
|
73
|
-
let mds = filterMetadata ? dtd.metadata?.filter(filterMetadata) : dtd.metadata;
|
|
74
|
-
mds?.forEach((md) => { md.customData1 = dtd?.id; });
|
|
75
|
-
dtdList.push({ ...dtd, metadata: mds });
|
|
91
|
+
for (const md of dtd.metadata)
|
|
92
|
+
metadata.push(md);
|
|
76
93
|
}
|
|
77
|
-
|
|
78
|
-
|
|
94
|
+
setDcmtTypes(dtdList);
|
|
95
|
+
setHasSysMetadata(allowSysMetadata && metadata.findIndex(md => md.isSystem == 1) >= 0);
|
|
96
|
+
return showSysMetadata ? metadata : metadata.filter(o => o.isSystem != 1);
|
|
79
97
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
continue;
|
|
83
|
-
for (const md of dtd.metadata)
|
|
84
|
-
metadata.push(md);
|
|
98
|
+
finally {
|
|
99
|
+
TMSpinner.hide();
|
|
85
100
|
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
return showSysMetadata ? metadata : metadata.filter(o => o.isSystem != 1);
|
|
89
|
-
}, [showSysMetadata]);
|
|
90
|
-
const cellRenderIcon = (data) => {
|
|
101
|
+
}, [showSysMetadata, qd, tids, dataSource, filterMetadata, qdShowOnlySelectItems, allowSysMetadata, tmSession]);
|
|
102
|
+
const cellRenderIcon = useCallback((data) => {
|
|
91
103
|
let md = data.data;
|
|
92
104
|
return (_jsx(TMMetadataIcon, { tid: md.customData1 ?? 0, md: md }));
|
|
93
|
-
};
|
|
94
|
-
const groupCellRender = (data) => {
|
|
105
|
+
}, []);
|
|
106
|
+
const groupCellRender = useCallback((data) => {
|
|
95
107
|
let tid_alias = JSON.parse(data.value);
|
|
96
108
|
let dtd = dcmtTypes?.find(o => o.id == tid_alias.tid);
|
|
97
109
|
return _jsxs(StyledDxGridGroupHeader, { "$backgroundColor": getColorIndex?.(tid_alias), children: [_jsx(TMDcmtTypeIcon, { dtd: dtd }), _jsx("p", { children: getDisplayAlias(SDK_Globals.useLocalizedName ? dtd?.nameLoc : dtd?.name, tid_alias.alias) }), data.summaryItems && data.summaryItems.length > 0 && _jsx(StyledBadge, { "$backgroundColor": TMColors.info, children: data.summaryItems[0].value })] });
|
|
98
|
-
};
|
|
110
|
+
}, [dcmtTypes, getColorIndex]);
|
|
99
111
|
const dataColumns = useMemo(() => {
|
|
100
112
|
return [
|
|
101
113
|
{ dataField: 'isSystem', visible: false },
|
|
@@ -108,10 +120,15 @@ export const TMMetadataChooserForm = ({ tmSession, tids, qd, filterMetadata, qdS
|
|
|
108
120
|
}
|
|
109
121
|
];
|
|
110
122
|
}, [dcmtTypes, groupCellRender]);
|
|
111
|
-
const renderSummaryItems =
|
|
123
|
+
const renderSummaryItems = useMemo(() => ({
|
|
124
|
+
groupItems: [{ column: 'id', summaryType: 'count' }]
|
|
125
|
+
}), []);
|
|
112
126
|
const renderCustomButtons = useCallback(() => {
|
|
113
127
|
return (_jsx(StyledDivHorizontal, { children: hasSysMetadata && _jsx(TMButton, { caption: SDKUI_Localizator.ShowHideMetadataSystemDesc, icon: _jsx(IconSettings, {}), btnStyle: 'toolbar', fontSize: '1.3rem', onClick: () => setShowSysMetadata(!showSysMetadata) }) }));
|
|
114
128
|
}, [hasSysMetadata, showSysMetadata]);
|
|
115
129
|
const convertID = useCallback((md) => { return { tid: md.customData1, mid: md.id, aliasTID: md.customData2 }; }, []);
|
|
116
|
-
|
|
130
|
+
const cellRenderNameAndDesc = useCallback((data) => {
|
|
131
|
+
return _jsx("p", { style: { textAlign: 'left', color: data.data.isRequired == 1 ? 'red' : '' }, children: data.value });
|
|
132
|
+
}, []);
|
|
133
|
+
return (_jsx(TMChooserForm, { title: SDK_Localizator.Metadatas, allowMultipleSelection: allowMultipleSelection, allowSorting: false, allowGrouping: dcmtTypes.length > 1, width: width, height: height, selectedIDs: selectedIDs?.map((item) => item.mid), convertID: convertID, cellRenderIcon: cellRenderIcon, cellRenderNameAndDesc: cellRenderNameAndDesc, dataSource: dataSource, getItems: getItems, customButtons: renderCustomButtons(), columns: dataColumns, summaryItems: renderSummaryItems, onClose: onClose, onChoose: (IDs) => { onChoose?.(IDs); } }));
|
|
117
134
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { LayoutModes, TaskDescriptor } from '@topconsultnpm/sdk-ts-beta';
|
|
2
|
+
import { LayoutModes, SearchResultDescriptor, TaskDescriptor } from '@topconsultnpm/sdk-ts-beta';
|
|
3
3
|
import { DcmtInfo, FormModes, TaskContext } from '../../../ts';
|
|
4
4
|
interface ITMDcmtFormProps {
|
|
5
5
|
TID?: number;
|
|
@@ -23,7 +23,7 @@ interface ITMDcmtFormProps {
|
|
|
23
23
|
onNext?: () => void;
|
|
24
24
|
onPrev?: () => void;
|
|
25
25
|
onClose?: () => void;
|
|
26
|
-
onSavedAsyncCallback?: (tid: number | undefined, did: number | undefined) => Promise<void>;
|
|
26
|
+
onSavedAsyncCallback?: (tid: number | undefined, did: number | undefined, metadataResult?: SearchResultDescriptor | null) => Promise<void>;
|
|
27
27
|
onSaveRecents?: (TIDs: number[]) => void;
|
|
28
28
|
onWFOperationCompleted?: () => Promise<void>;
|
|
29
29
|
onTaskCompleted?: (task: TaskDescriptor) => void;
|
|
@@ -92,7 +92,7 @@ const TMDcmtForm = ({ showHeader = true, onSaveRecents, layoutMode = LayoutModes
|
|
|
92
92
|
TMSpinner.show({ description: 'Loading Metadata...' });
|
|
93
93
|
let getMetadataResult;
|
|
94
94
|
if (layoutMode === LayoutModes.Update)
|
|
95
|
-
await SDK_Globals.tmSession?.NewSearchEngine().GetMetadataAsync(TID, DID, true);
|
|
95
|
+
getMetadataResult = await SDK_Globals.tmSession?.NewSearchEngine().GetMetadataAsync(TID, DID, true);
|
|
96
96
|
let dtd = await DcmtTypeListCacheService.GetWithNotGrantedAsync(TID, DID, getMetadataResult);
|
|
97
97
|
setFromDTD(dtd);
|
|
98
98
|
if (layoutMode === LayoutModes.Update || (layoutMode === LayoutModes.Ark && DID)) {
|
|
@@ -412,9 +412,52 @@ const TMDcmtForm = ({ showHeader = true, onSaveRecents, layoutMode = LayoutModes
|
|
|
412
412
|
}
|
|
413
413
|
}
|
|
414
414
|
await ue.UpdateAsync();
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
415
|
+
// Aggiorna lo stato locale immediatamente dopo il salvataggio riuscito
|
|
416
|
+
// Questo garantisce che isModified diventi false anche se il reload fallisce
|
|
417
|
+
setFormDataOrig(structuredClone(formData));
|
|
418
|
+
// Tenta di ottenere i metadati aggiornati
|
|
419
|
+
let metadataResult = undefined;
|
|
420
|
+
let hasGetMetadataError = false;
|
|
421
|
+
try {
|
|
422
|
+
metadataResult = await SDK_Globals.tmSession?.NewSearchEngine().GetMetadataAsync(TID, DID, true);
|
|
423
|
+
}
|
|
424
|
+
catch (metadataError) {
|
|
425
|
+
hasGetMetadataError = true;
|
|
426
|
+
// Estrai ErrorCode dal campo detail se disponibile
|
|
427
|
+
let errorCode = undefined;
|
|
428
|
+
if (metadataError?.isApiException && metadataError?.response?.detail) {
|
|
429
|
+
try {
|
|
430
|
+
const detailObj = JSON.parse(metadataError.response.detail);
|
|
431
|
+
errorCode = detailObj?.ErrorCode;
|
|
432
|
+
}
|
|
433
|
+
catch (parseError) {
|
|
434
|
+
console.log("Impossibile parsare il detail dell'eccezione:", parseError);
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
// Se ErrorCode è -5, mostra messaggio personalizzato, altrimenti mostra l'eccezione originale
|
|
438
|
+
if (errorCode === -5) {
|
|
439
|
+
TMMessageBoxManager.show({
|
|
440
|
+
message: SDKUI_Localizator.DcmtOutOfView,
|
|
441
|
+
buttons: [ButtonNames.OK],
|
|
442
|
+
});
|
|
443
|
+
}
|
|
444
|
+
else {
|
|
445
|
+
TMExceptionBoxManager.show({ exception: metadataError });
|
|
446
|
+
}
|
|
447
|
+
// Usa null per indicare al callback che c'è stato un errore e non deve ritentare
|
|
448
|
+
metadataResult = null;
|
|
449
|
+
}
|
|
450
|
+
// Esegui sempre il callback:
|
|
451
|
+
// - Se metadataResult è un oggetto: refresh normale
|
|
452
|
+
// - Se metadataResult è null: GetMetadataAsync fallito, rimuove il documento dalla griglia senza ritentare
|
|
453
|
+
// - Se metadataResult è undefined: nessun parametro passato, il callback può decidere cosa fare
|
|
454
|
+
await onSavedAsyncCallback?.(TID, DID, metadataResult === null ? null : metadataResult);
|
|
455
|
+
// Mostra messaggio di successo solo se non ci sono stati errori critici
|
|
456
|
+
if (!hasGetMetadataError) {
|
|
457
|
+
if (metadataResult && metadataResult !== null)
|
|
458
|
+
await setMetadataListAsync(fromDTD?.metadata ?? [], metadataResult);
|
|
459
|
+
ShowAlert({ mode: 'success', title: 'Form di documento', message: 'Le modifiche sono state salvate con successo', duration: 3000 });
|
|
460
|
+
}
|
|
418
461
|
}
|
|
419
462
|
catch (e) {
|
|
420
463
|
TMExceptionBoxManager.show({ exception: e });
|
|
@@ -463,7 +506,7 @@ const TMDcmtForm = ({ showHeader = true, onSaveRecents, layoutMode = LayoutModes
|
|
|
463
506
|
else {
|
|
464
507
|
ae.ArchivingFile = dcmtFile;
|
|
465
508
|
}
|
|
466
|
-
let
|
|
509
|
+
let newDID = await ae.ArchiveAsync(abortControllerLocal.signal, (pd) => {
|
|
467
510
|
if (firstBlock) {
|
|
468
511
|
maxFileSize = pd.ProgressBarMaximum ?? 0;
|
|
469
512
|
setWaitPanelMaxValueSecondaryLocal(maxFileSize);
|
|
@@ -478,8 +521,8 @@ const TMDcmtForm = ({ showHeader = true, onSaveRecents, layoutMode = LayoutModes
|
|
|
478
521
|
firstBlock = true;
|
|
479
522
|
}
|
|
480
523
|
});
|
|
481
|
-
await onSavedAsyncCallback?.(ae.TID,
|
|
482
|
-
await setMetadataListAsync(fromDTD?.metadata ?? [], undefined, true,
|
|
524
|
+
await onSavedAsyncCallback?.(ae.TID, newDID);
|
|
525
|
+
await setMetadataListAsync(fromDTD?.metadata ?? [], undefined, true, newDID);
|
|
483
526
|
resetHandler();
|
|
484
527
|
let newMruTIDS = updateMruTids(SDKUI_Globals.userSettings.archivingSettings.mruTIDs, TID);
|
|
485
528
|
SDKUI_Globals.userSettings.archivingSettings.mruTIDs = newMruTIDS;
|
|
@@ -297,7 +297,7 @@ const TMSearchResult = ({ context = SearchResultContext.METADATA_SEARCH, isVisib
|
|
|
297
297
|
}
|
|
298
298
|
onSelectedTIDChanged?.(e.fromTID);
|
|
299
299
|
};
|
|
300
|
-
const refreshFocusedDataRowAsync = async (tid, did, refreshUI) => {
|
|
300
|
+
const refreshFocusedDataRowAsync = async (tid, did, refreshUI, metadataResult) => {
|
|
301
301
|
if (!tid || !did)
|
|
302
302
|
return;
|
|
303
303
|
let currentResult = searchResults.length > 1 ? selectedSearchResult : searchResults[0];
|
|
@@ -307,8 +307,46 @@ const TMSearchResult = ({ context = SearchResultContext.METADATA_SEARCH, isVisib
|
|
|
307
307
|
let currentResultColIndexDID = currentResult?.dtdResult?.columns?.findIndex(o => o.caption == "DID");
|
|
308
308
|
if (currentResultColIndexDID == undefined)
|
|
309
309
|
return;
|
|
310
|
-
let newDcmt
|
|
311
|
-
|
|
310
|
+
let newDcmt;
|
|
311
|
+
// Se metadataResult è null (non undefined!), significa che GetMetadataAsync è già fallito
|
|
312
|
+
// nel form e l'errore è già stato mostrato all'utente, quindi non ritentiamo
|
|
313
|
+
if (metadataResult === null) {
|
|
314
|
+
newDcmt = undefined;
|
|
315
|
+
}
|
|
316
|
+
// Se metadataResult è un oggetto valido, usiamolo
|
|
317
|
+
else if (metadataResult !== undefined) {
|
|
318
|
+
newDcmt = metadataResult;
|
|
319
|
+
}
|
|
320
|
+
// Altrimenti (metadataResult === undefined), tentiamo di ottenerlo
|
|
321
|
+
else {
|
|
322
|
+
try {
|
|
323
|
+
newDcmt = await SDK_Globals.tmSession?.NewSearchEngine().GetMetadataAsync(tid, did, true);
|
|
324
|
+
}
|
|
325
|
+
catch (error) {
|
|
326
|
+
newDcmt = undefined;
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
// Se newDcmt è undefined o non ha righe, significa che il documento non esiste più
|
|
330
|
+
// o non è più accessibile. Rimuovi la riga dal risultato della ricerca
|
|
331
|
+
if (!newDcmt || !newDcmt.dtdResult?.rows?.[0]) {
|
|
332
|
+
if (currentResult?.dtdResult?.rows) {
|
|
333
|
+
// IMPORTANTE: Modifica direttamente l'oggetto originale per mantenere la sincronizzazione
|
|
334
|
+
currentResult.dtdResult.rows = currentResult.dtdResult.rows.filter((row) => !(row[currentResultColIndexTID] == tid?.toString() && row[currentResultColIndexDID] == did?.toString()));
|
|
335
|
+
currentResult.dcmtsReturned = currentResult.dtdResult.rows.length;
|
|
336
|
+
currentResult.dcmtsFound = Math.max(0, (currentResult.dcmtsFound ?? 0) - 1);
|
|
337
|
+
// Se il documento rimosso era quello focalizzato, resetta il focus
|
|
338
|
+
if (focusedItem?.TID === tid && focusedItem?.DID === did) {
|
|
339
|
+
setFocusedItem(undefined);
|
|
340
|
+
setSelectedItems([]);
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
// IMPORTANTE: forza l'aggiornamento della griglia
|
|
344
|
+
if (refreshUI)
|
|
345
|
+
setLastUpdateSearchTime(new Date(Date.now()));
|
|
346
|
+
return;
|
|
347
|
+
}
|
|
348
|
+
// Se il documento esiste, aggiorna i valori come prima
|
|
349
|
+
let newDcmtRow = newDcmt.dtdResult.rows[0];
|
|
312
350
|
let currentDcmtRow = currentResult?.dtdResult?.rows?.filter((row) => row[currentResultColIndexTID] == tid?.toString() && row[currentResultColIndexDID] == did?.toString()) ?? [];
|
|
313
351
|
for (const row of currentDcmtRow) {
|
|
314
352
|
let mids = currentResult?.selectMIDs ?? [];
|
|
@@ -478,7 +516,9 @@ const TMSearchResult = ({ context = SearchResultContext.METADATA_SEARCH, isVisib
|
|
|
478
516
|
:
|
|
479
517
|
_jsx(TMPanelManagerProvider, { panels: initialPanels, initialVisibility: allInitialPanelVisibility, defaultDimensions: initialPanelDimensions, initialDimensions: initialPanelDimensions, initialMobilePanelId: 'tmSearchResult', children: _jsx(TMPanelManagerContainer, { panels: initialPanels, direction: "horizontal", parentId: groupId, showToolbar: showSearchResultSidebar }) }) }) }), _jsx(StyledMultiViewPanel, { "$isVisible": isOpenDetails, children: isOpenDetails && _jsx(TMMasterDetailDcmts, { deviceType: deviceType, isForMaster: false, inputDcmts: getSelectionDcmtInfo(), allowNavigation: focusedItem && selectedItems.length <= 0, canNext: canNavigateHandler('next'), canPrev: canNavigateHandler('prev'), onNext: () => onNavigateHandler('next'), onPrev: () => onNavigateHandler('prev'), onBack: () => setIsOpenDetails(false) }) }), _jsxs(StyledMultiViewPanel, { "$isVisible": isOpenMaster, children: [isOpenMaster && _jsx(TMMasterDetailDcmts, { deviceType: deviceType, inputDcmts: getSelectionDcmtInfo(), isForMaster: true, allowNavigation: focusedItem && selectedItems.length <= 0, canNext: canNavigateHandler('next'), canPrev: canNavigateHandler('prev'), onNext: () => onNavigateHandler('next'), onPrev: () => onNavigateHandler('prev'), onBack: () => setIsOpenMaster(false), appendMasterDcmts: handleAddItem }), secondaryMasterDcmts.length > 0 && secondaryMasterDcmts.map((dcmt, index) => {
|
|
480
518
|
return (_jsx(StyledModalContainer, { style: { backgroundColor: 'white' }, children: _jsx(TMMasterDetailDcmts, { deviceType: deviceType, inputDcmts: [dcmt], isForMaster: true, allowNavigation: false, onBack: () => handleRemoveItem(dcmt.TID, dcmt.DID), appendMasterDcmts: handleAddItem }) }, `${index}-${dcmt.DID}`));
|
|
481
|
-
})] }), _jsx(StyledMultiViewPanel, { "$isVisible": isOpenDcmtForm, children: isOpenDcmtForm && _jsx(TMDcmtForm, { isModal: openDcmtFormAsModal || (dcmtFormLayoutMode === LayoutModes.Ark && focusedItem?.DID), titleModal: fromDTD?.name ?? '', TID: focusedItem?.TID, DID: focusedItem?.DID, layoutMode: dcmtFormLayoutMode, count: visibleItems.length, itemIndex: visibleItems.findIndex(o => o.rowIndex === focusedItem?.rowIndex) + 1, canNext: canNavigateHandler('next'), canPrev: canNavigateHandler('prev'), onNext: () => onNavigateHandler('next'), onPrev: () => onNavigateHandler('prev'), onClose: () => { setIsOpenDcmtForm(false); }, onWFOperationCompleted: onWFOperationCompleted, onTaskCreateRequest: onTaskCreateRequest, onSavedAsyncCallback: async (tid, did) => {
|
|
519
|
+
})] }), _jsx(StyledMultiViewPanel, { "$isVisible": isOpenDcmtForm, children: isOpenDcmtForm && _jsx(TMDcmtForm, { isModal: openDcmtFormAsModal || (dcmtFormLayoutMode === LayoutModes.Ark && focusedItem?.DID), titleModal: fromDTD?.name ?? '', TID: focusedItem?.TID, DID: focusedItem?.DID, layoutMode: dcmtFormLayoutMode, count: visibleItems.length, itemIndex: visibleItems.findIndex(o => o.rowIndex === focusedItem?.rowIndex) + 1, canNext: canNavigateHandler('next'), canPrev: canNavigateHandler('prev'), onNext: () => onNavigateHandler('next'), onPrev: () => onNavigateHandler('prev'), onClose: () => { setIsOpenDcmtForm(false); }, onWFOperationCompleted: onWFOperationCompleted, onTaskCreateRequest: onTaskCreateRequest, onSavedAsyncCallback: async (tid, did, metadataResult) => {
|
|
520
|
+
await refreshFocusedDataRowAsync(tid, did, true, metadataResult);
|
|
521
|
+
}, onOpenS4TViewerRequest: onOpenS4TViewerRequest }) })] }));
|
|
482
522
|
};
|
|
483
523
|
export default TMSearchResult;
|
|
484
524
|
const renderDcmtIcon = (cellData, onDownloadDcmtsAsync, openInOffice) => _jsx(TMDcmtIcon, { tid: cellData.data.TID, did: cellData.data.DID, fileExtension: cellData.data.FILEEXT, fileCount: cellData.data.FILECOUNT, isLexProt: cellData.data.IsLexProt, isMail: cellData.data.ISMAIL, isShared: cellData.data.ISSHARED, isSigned: cellData.data.ISSIGNED, downloadMode: 'openInNewWindow', onDownloadDcmtsAsync: onDownloadDcmtsAsync, openInOffice: openInOffice });
|
|
@@ -743,7 +743,7 @@ const TMQueryEditor = ({ formMode, inputData, onQDChanged, isExpertMode, showDis
|
|
|
743
743
|
_jsxs(StyledRowItem, { children: [_jsx(TMButton, { btnStyle: 'normal', disabled: !formData?.from?.tid, caption: SDKUI_Localizator.Add, onClick: onAdd_SelectItem }), dcmtTypesList.length == 1
|
|
744
744
|
? _jsx(TMButton, { btnStyle: 'normal', disabled: !formData?.from?.tid, caption: SDKUI_Localizator.AddAlls, onClick: () => { onAddAll_SelectItem(qdTIDs[0]); } })
|
|
745
745
|
: _jsx(TMQdDropDownMenu, { backgroundColor: 'white', borderRadius: '3px', content: _jsx(TMButton, { btnStyle: 'normal', disabled: !formData?.from?.tid, caption: SDKUI_Localizator.AddAlls }), items: qdTIDs.map((tid_alias) => ({ text: `${getDisplayAlias(getDcmtTypeName(tid_alias.tid), tid_alias.alias)}`, onClick: () => { onAddAll_SelectItem(tid_alias); } })) })] }), formData?.select?.map((si, index) => {
|
|
746
|
-
return (_jsxs(StyledRowItem, { onDragEnd: dragEnd, onDragOver: dragOver, onDrop: (e) => dropSelect(e, si), children: [!isReadOnly && _jsx(StyledDraggableDiv, { draggable: true, onDragStart: (e) => dragStart(e, si), children: _jsx(IconDraggabledots, { fontSize: 15, color: TMColors.button_icon }) }), !isReadOnly && _jsx(TMButton, { btnStyle: 'icon', padding: '3px 0px', icon: _jsx(IconClear, { color: TMColors.button_icon }), caption: SDKUI_Localizator.Remove, onClick: () => onRemove_SelectItem(index) }), !isReadOnly && _jsx(TMButton, { btnStyle: 'icon', padding: '3px 0px', icon: _jsx(IconAddCircleOutline, { color: TMColors.button_icon }), caption: SDKUI_Localizator.AddBelow, onClick: () => onAdd_SelectItem(index + 1) }), !isReadOnly && _jsx(TMQdDropDownMenu, { content: _jsx(TMTooltip, { content: SDK_Localizator.toCaseWord(SDKUI_Localizator.OneMore), children: _jsx(IconDotsVerticalCircleOutline, { color: TMColors.button_icon }) }), items: getSelectMenuItems(index) }), (!isReadOnly || (si.function && si.function != QueryFunctions.None)) && _jsx(TMQdDropDownMenu, { backgroundColor: colorOperator, color: 'green', borderRadius: borderRadius, content: _jsx(StyledItemWrapper, { children: si.function === QueryFunctions.None ? "..." : LocalizeQueryFunctions(si.function) }), items: getQueryFunctionsMenuItems(si, index) }), _jsx(TMMetadataChooser, { disabled: isReadOnly, showEditButton: false, getColorIndex: getColorIndex, showCompleteMetadataName: showCompleteMetadataName, openEditorOnSummaryClick: true, showBorder: false, borderRadius: borderRadius, showId: showId, backgroundColor: getColorIndex({ tid: si.tid, alias: si.alias }), qd: formData, values: [{ tid: si.tid, mid: si.mid, aliasTID: si.alias }], onValueChanged: (values) => { values.length > 0 && onChange_SelectItem_MID(values[0], index); } }), (!isReadOnly || si.as) && _jsx(TMQdEditableItem, { value: si.as, backgroundColor: colorValue, placeHolder: `<${SDKUI_Localizator.Query_EnterAlias}...>`, width: '100%', onValueChanged: (value) => { onChange_SelectItem_As(value, index); } })] }, `${si.tid}_${si.mid}_${index}`));
|
|
746
|
+
return (_jsxs(StyledRowItem, { onDragEnd: dragEnd, onDragOver: dragOver, onDrop: (e) => dropSelect(e, si), children: [!isReadOnly && _jsx(StyledDraggableDiv, { draggable: true, onDragStart: (e) => dragStart(e, si), children: _jsx(IconDraggabledots, { fontSize: 15, color: TMColors.button_icon }) }), !isReadOnly && _jsx(TMButton, { btnStyle: 'icon', padding: '3px 0px', icon: _jsx(IconClear, { color: TMColors.button_icon }), caption: SDKUI_Localizator.Remove, onClick: () => onRemove_SelectItem(index) }), !isReadOnly && _jsx(TMButton, { btnStyle: 'icon', padding: '3px 0px', icon: _jsx(IconAddCircleOutline, { color: TMColors.button_icon }), caption: SDKUI_Localizator.AddBelow, onClick: () => onAdd_SelectItem(index + 1) }), !isReadOnly && _jsx(TMQdDropDownMenu, { content: _jsx(TMTooltip, { content: SDK_Localizator.toCaseWord(SDKUI_Localizator.OneMore), children: _jsx(IconDotsVerticalCircleOutline, { color: TMColors.button_icon }) }), items: getSelectMenuItems(index) }), (!isReadOnly || (si.function && si.function != QueryFunctions.None)) && _jsx(TMQdDropDownMenu, { backgroundColor: colorOperator, color: 'green', borderRadius: borderRadius, content: _jsx(StyledItemWrapper, { children: si.function === QueryFunctions.None ? "..." : LocalizeQueryFunctions(si.function) }), items: getQueryFunctionsMenuItems(si, index) }), _jsx(TMMetadataChooser, { disabled: isReadOnly, filterMetadata: (o => o.perm?.canView === AccessLevels.Yes || o.perm?.canUpdate === AccessLevels.Yes), showEditButton: false, getColorIndex: getColorIndex, showCompleteMetadataName: showCompleteMetadataName, openEditorOnSummaryClick: true, showBorder: false, borderRadius: borderRadius, showId: showId, backgroundColor: getColorIndex({ tid: si.tid, alias: si.alias }), qd: formData, values: [{ tid: si.tid, mid: si.mid, aliasTID: si.alias }], onValueChanged: (values) => { values.length > 0 && onChange_SelectItem_MID(values[0], index); } }), (!isReadOnly || si.as) && _jsx(TMQdEditableItem, { value: si.as, backgroundColor: colorValue, placeHolder: `<${SDKUI_Localizator.Query_EnterAlias}...>`, width: '100%', onValueChanged: (value) => { onChange_SelectItem_As(value, index); } })] }, `${si.tid}_${si.mid}_${index}`));
|
|
747
747
|
})] }) }) }), fromCount > 0 && (!isReadOnly || whereCount > 0) && _jsx(Item, { title: SDK_Localizator.QueryWhere, titleRender: (tabItemProps) => renderAccordionTitle(tabItemProps, whereCount, validationItems.filter((o) => o.PropertyName == TMPropertyNames.where)), children: _jsx(StyledAccordionItemContainer, { children: _jsxs(StyledAccordionItemContent, { "$disabled": isReadOnly, children: [_jsx(TMVilViewer, { vil: validationItems.filter((o) => o.PropertyName === TMPropertyNames.where) }), (!formData?.where || formData?.where.length <= 0) && !isReadOnly &&
|
|
748
748
|
_jsx(StyledRowItem, { children: _jsx(TMButton, { btnStyle: 'normal', disabled: !formData?.from?.tid, caption: SDKUI_Localizator.Add, onClick: onAdd_WhereItem }) }), formData?.where?.map((wi, index) => {
|
|
749
749
|
return (_jsxs(StyledRowItem, { onDragEnd: dragEnd, onDragOver: dragOver, onDrop: (e) => dropWhere(e, wi), children: [!isReadOnly && _jsx(StyledDraggableDiv, { draggable: true, onDragStart: (e) => dragStart(e, wi), children: _jsx(IconDraggabledots, { fontSize: 15, color: TMColors.button_icon }) }), !isReadOnly && _jsx(TMButton, { btnStyle: 'icon', padding: '3px 0px', icon: _jsx(IconClear, { color: TMColors.button_icon }), caption: SDKUI_Localizator.Remove, onClick: () => onRemove_WhereItem(index) }), !isReadOnly && _jsx(TMButton, { btnStyle: 'icon', padding: '3px 0px', icon: _jsx(IconAddCircleOutline, { color: TMColors.button_icon }), caption: SDKUI_Localizator.AddBelow, onClick: () => onAdd_WhereItem(index + 1) }), !isReadOnly && _jsx(TMQdDropDownMenu, { content: _jsx(TMTooltip, { content: SDK_Localizator.toCaseWord(SDKUI_Localizator.OneMore), children: _jsx(IconDotsVerticalCircleOutline, { color: TMColors.button_icon }) }), items: [
|
|
@@ -761,7 +761,7 @@ const TMQueryEditor = ({ formMode, inputData, onQDChanged, isExpertMode, showDis
|
|
|
761
761
|
] }), _jsx(TMQdDropDownMenu, { disabled: index == 0, color: 'green', content: _jsx("div", { style: { fontSize: '1rem' }, children: wi.or ? 'OR' : 'AND' }), items: [
|
|
762
762
|
{ text: 'AND', onClick: () => onChange_WhereItem_Or(false, index) },
|
|
763
763
|
{ text: 'OR', onClick: () => onChange_WhereItem_Or(true, index) }
|
|
764
|
-
] }), _jsx(TMQdEditableItem, { value: wi.leftBrackets, allowedPattern: /\(/g, backgroundColor: colorBrackets, onValueChanged: (value) => { onChange_WhereItem_Brackets(value, true, index); } }), _jsx(TMMetadataChooser, { disabled: isReadOnly, showEditButton: false, getColorIndex: getColorIndex, showCompleteMetadataName: showCompleteMetadataName, openEditorOnSummaryClick: true, showBorder: false, borderRadius: borderRadius, showId: showId, backgroundColor: getColorIndex({ tid: wi.tid, alias: wi.alias }), qd: formData, values: [{ tid: wi.tid, mid: wi.mid, aliasTID: wi.alias }], onValueChanged: (values) => { values.length > 0 && onChange_WhereItem_Metadato(values[0], index); } }), _jsx(TMQdDropDownMenu, { backgroundColor: colorOperator, color: 'green', borderRadius: borderRadius, content: _jsx(StyledDivHorizontal, { children: _jsx(StyledItemWrapper, { children: LocalizeQueryOperators(wi.operator) }) }), items: getQueryOperatorsMenuItems(wi, index) }), _jsx(TMQdWhereItemValue, { whereItem: wi, index: index, onValueChanged: (values) => { onChange_WhereItem_Values(values[0], values[1], index); } }), _jsx(TMQdEditableItem, { value: wi.rightBrackets, allowedPattern: /\)/g, backgroundColor: colorBrackets, onValueChanged: (value) => { onChange_WhereItem_Brackets(value, false, index); } })] }, `${wi.tid}_${wi.mid}_${index}`));
|
|
764
|
+
] }), _jsx(TMQdEditableItem, { value: wi.leftBrackets, allowedPattern: /\(/g, backgroundColor: colorBrackets, onValueChanged: (value) => { onChange_WhereItem_Brackets(value, true, index); } }), _jsx(TMMetadataChooser, { disabled: isReadOnly, filterMetadata: (o => o.perm?.canSearch === AccessLevels.Yes), showEditButton: false, getColorIndex: getColorIndex, showCompleteMetadataName: showCompleteMetadataName, openEditorOnSummaryClick: true, showBorder: false, borderRadius: borderRadius, showId: showId, backgroundColor: getColorIndex({ tid: wi.tid, alias: wi.alias }), qd: formData, values: [{ tid: wi.tid, mid: wi.mid, aliasTID: wi.alias }], onValueChanged: (values) => { values.length > 0 && onChange_WhereItem_Metadato(values[0], index); } }), _jsx(TMQdDropDownMenu, { backgroundColor: colorOperator, color: 'green', borderRadius: borderRadius, content: _jsx(StyledDivHorizontal, { children: _jsx(StyledItemWrapper, { children: LocalizeQueryOperators(wi.operator) }) }), items: getQueryOperatorsMenuItems(wi, index) }), _jsx(TMQdWhereItemValue, { whereItem: wi, index: index, onValueChanged: (values) => { onChange_WhereItem_Values(values[0], values[1], index); } }), _jsx(TMQdEditableItem, { value: wi.rightBrackets, allowedPattern: /\)/g, backgroundColor: colorBrackets, onValueChanged: (value) => { onChange_WhereItem_Brackets(value, false, index); } })] }, `${wi.tid}_${wi.mid}_${index}`));
|
|
765
765
|
})] }) }) }), fromCount > 0 && (!isReadOnly || orderByCount > 0) && _jsx(Item, { title: SDK_Localizator.QueryOrderBy, titleRender: (tabItemProps) => renderAccordionTitle(tabItemProps, orderByCount, validationItems.filter((o) => o.PropertyName == TMPropertyNames.orderBy)), children: _jsx(StyledAccordionItemContainer, { children: _jsxs(StyledAccordionItemContent, { "$disabled": isReadOnly, children: [(!formData?.orderBy || formData?.orderBy.length <= 0) && !isReadOnly &&
|
|
766
766
|
_jsx(StyledRowItem, { children: _jsx(TMButton, { btnStyle: 'normal', disabled: !formData?.from?.tid, caption: SDKUI_Localizator.Add, onClick: onAdd_OrderByItem }) }), formData?.orderBy?.map((oi, index) => {
|
|
767
767
|
return (_jsxs(StyledRowItem, { onDragEnd: dragEnd, onDragOver: dragOver, onDrop: (e) => dropOrderBy(e, oi), children: [!isReadOnly && _jsx(StyledDraggableDiv, { draggable: true, onDragStart: (e) => dragStart(e, oi), children: _jsx(IconDraggabledots, { fontSize: 15, color: TMColors.button_icon }) }), !isReadOnly && _jsx(TMButton, { btnStyle: 'icon', padding: '3px 0px', icon: _jsx(IconClear, { color: TMColors.button_icon }), caption: SDKUI_Localizator.Remove, onClick: () => onRemove_OrderByItem(index) }), !isReadOnly && _jsx(TMButton, { btnStyle: 'icon', padding: '3px 0px', icon: _jsx(IconAddCircleOutline, { color: TMColors.button_icon }), caption: SDKUI_Localizator.AddBelow, onClick: () => onAdd_OrderByItem(index + 1) }), !isReadOnly && _jsx(TMQdDropDownMenu, { content: _jsx(TMTooltip, { content: SDK_Localizator.toCaseWord(SDKUI_Localizator.OneMore), children: _jsx(IconDotsVerticalCircleOutline, { color: TMColors.button_icon }) }), items: [
|
|
@@ -769,7 +769,7 @@ const TMQueryEditor = ({ formMode, inputData, onQDChanged, isExpertMode, showDis
|
|
|
769
769
|
{ text: SDKUI_Localizator.AddBelow, onClick: () => onAdd_OrderByItem(index + 1) },
|
|
770
770
|
{ text: SDKUI_Localizator.Remove, onClick: () => onRemove_OrderByItem(index) },
|
|
771
771
|
{ text: SDKUI_Localizator.RemoveAll, onClick: () => setFormData({ ...formData, orderBy: undefined }) },
|
|
772
|
-
] }), _jsx(TMMetadataChooser, { disabled: isReadOnly, showEditButton: false, getColorIndex: getColorIndex, showCompleteMetadataName: showCompleteMetadataName, openEditorOnSummaryClick: true, showBorder: false, showId: showId, borderRadius: borderRadius, backgroundColor: getColorIndex({ tid: oi.tid, alias: oi.alias }), qd: formData, values: [{ tid: oi.tid, mid: oi.mid, aliasTID: oi.alias }], onValueChanged: (values) => onChange_OrderByItem_MID(values[0], index) }), _jsx(TMQdDropDownMenu, { backgroundColor: colorOperator, borderRadius: borderRadius, content: _jsx(StyledItemWrapper, { children: oi.asc ? 'ASC' : 'DESC' }), items: [
|
|
772
|
+
] }), _jsx(TMMetadataChooser, { disabled: isReadOnly, filterMetadata: (o => o.perm?.canView === AccessLevels.Yes || o.perm?.canUpdate === AccessLevels.Yes), showEditButton: false, getColorIndex: getColorIndex, showCompleteMetadataName: showCompleteMetadataName, openEditorOnSummaryClick: true, showBorder: false, showId: showId, borderRadius: borderRadius, backgroundColor: getColorIndex({ tid: oi.tid, alias: oi.alias }), qd: formData, values: [{ tid: oi.tid, mid: oi.mid, aliasTID: oi.alias }], onValueChanged: (values) => onChange_OrderByItem_MID(values[0], index) }), _jsx(TMQdDropDownMenu, { backgroundColor: colorOperator, borderRadius: borderRadius, content: _jsx(StyledItemWrapper, { children: oi.asc ? 'ASC' : 'DESC' }), items: [
|
|
773
773
|
{ text: 'ASC', onClick: () => onChange_OrderByItem_Asc(true, oi, index) },
|
|
774
774
|
{ text: 'DESC', onClick: () => onChange_OrderByItem_Asc(false, oi, index) }
|
|
775
775
|
] })] }, `${oi.tid}_${oi.mid}_${index}`));
|
|
@@ -113,6 +113,7 @@ export declare class SDKUI_Localizator {
|
|
|
113
113
|
static get DcmtCount(): "Anzahl der Dokumente" | "Number of documents" | "Número de documentos" | "Nombre de documents" | "Numero documenti";
|
|
114
114
|
static get DcmtsDetail(): "Detail-Dokumente" | "Detail documents" | "Documentos detail" | "Documents detail" | "Documenti dettaglio";
|
|
115
115
|
static get DcmtsMaster(): "Master-Dokumente" | "Master documents" | "Documentos master" | "Documents master" | "Documenti master";
|
|
116
|
+
static get DcmtOutOfView(): "Das Dokument wurde erfolgreich bearbeitet, aber die Änderung hat es aus der Sicht entfernt und Sie können nicht mehr darauf zugreifen." | "The document has been successfully updated, but the update has removed it from view and you can no longer access it." | "El documento se ha modificado correctamente, pero la modificación lo ha quitado de la vista y ya no se puede acceder al mismo." | "Le document a été modifié avec succès, mais le changement l' a supprimé de la vue et vous ne pouvez plus y accéder." | "O documento foi alterado com sucesso, mas a mudança foi removido de vista e você não pode mais acessá-lo." | "Il documento è stato modificato con successo, ma la modifica lo ha rimosso dalla vista e non è più possibile accedervi.";
|
|
116
117
|
static get DcmtType(): "Dokumententyp" | "Document type" | "Tipo de documento" | "Type de document" | "Tipo documento";
|
|
117
118
|
static get DcmtTypesSelected(): "Ausgewählte Dokumenttypen" | "Selected document types" | "Tipos de documentos seleccionados" | "Types de documents sélectionnés" | "Tipos de documentos selecionados" | "Tipi documento selezionati";
|
|
118
119
|
static get DcmtTypeSelect(): "Wählen Sie einen Dokumenttyp aus" | "Select a document type" | "Seleccione un tipo de documento" | "Sélectionnez un type de document" | "Selecione um tipo de documento" | "Selezionare un tipo documento";
|
|
@@ -1085,6 +1085,16 @@ export class SDKUI_Localizator {
|
|
|
1085
1085
|
default: return "Documenti master";
|
|
1086
1086
|
}
|
|
1087
1087
|
}
|
|
1088
|
+
static get DcmtOutOfView() {
|
|
1089
|
+
switch (this._cultureID) {
|
|
1090
|
+
case CultureIDs.De_DE: return "Das Dokument wurde erfolgreich bearbeitet, aber die Änderung hat es aus der Sicht entfernt und Sie können nicht mehr darauf zugreifen.";
|
|
1091
|
+
case CultureIDs.En_US: return "The document has been successfully updated, but the update has removed it from view and you can no longer access it.";
|
|
1092
|
+
case CultureIDs.Es_ES: return "El documento se ha modificado correctamente, pero la modificación lo ha quitado de la vista y ya no se puede acceder al mismo.";
|
|
1093
|
+
case CultureIDs.Fr_FR: return "Le document a été modifié avec succès, mais le changement l' a supprimé de la vue et vous ne pouvez plus y accéder.";
|
|
1094
|
+
case CultureIDs.Pt_PT: return "O documento foi alterado com sucesso, mas a mudança foi removido de vista e você não pode mais acessá-lo.";
|
|
1095
|
+
default: return "Il documento è stato modificato con successo, ma la modifica lo ha rimosso dalla vista e non è più possibile accedervi.";
|
|
1096
|
+
}
|
|
1097
|
+
}
|
|
1088
1098
|
static get DcmtType() {
|
|
1089
1099
|
switch (this._cultureID) {
|
|
1090
1100
|
case CultureIDs.De_DE: return "Dokumententyp";
|
|
@@ -188,7 +188,7 @@ export const getQD = async (tid, easyOr) => {
|
|
|
188
188
|
}
|
|
189
189
|
qd.where = [];
|
|
190
190
|
for (const md of dtd.metadata) {
|
|
191
|
-
if (
|
|
191
|
+
if (md?.perm?.canSearch == AccessLevels.No)
|
|
192
192
|
continue;
|
|
193
193
|
if (md.isSystem == 1)
|
|
194
194
|
continue;
|