@topconsultnpm/sdkui-react 6.19.0-dev1.33 → 6.19.0-dev1.35

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.
@@ -10,7 +10,7 @@ import TMTooltip from "../base/TMTooltip";
10
10
  import TMCheckBox from "./TMCheckBox";
11
11
  import TMMetadataEditor, { useMetadataEditableList } from "./TMMetadataEditor";
12
12
  import { FormulaHelper } from "./TMFormulaEditor";
13
- import { DraftsMIDs } from "../../ts";
13
+ import { DraftsMIDs, DSAttachsMIDs } from "../../ts";
14
14
  import { TMNothingToShow } from "../features/documents/TMDcmtPreview";
15
15
  import TMAccordion from "../base/TMAccordion";
16
16
  export var ShowCheckBoxesMode;
@@ -384,7 +384,22 @@ const TMMetadataValues = ({ showCheckBoxes = ShowCheckBoxesMode.Never, checkPerm
384
384
  checkOutData.push(tempCICODataMap[id]);
385
385
  }
386
386
  });
387
- return (_jsxs("div", { style: { width: '100%' }, children: [draftData.length > 0 && _jsx(TMAccordion, { title: SDKUI_Localizator.Draft, children: draftData.map(item => renderMetadataItem(item)) }), checkOutData.length > 0 && _jsx(TMAccordion, { title: `${SDKUI_Localizator.CheckIn}/${SDKUI_Localizator.CheckOut}`, children: checkOutData.map(item => renderMetadataItem(item, true)) })] }));
387
+ return (_jsxs("div", { style: { width: '100%' }, children: [draftData.length > 0 && _jsx(TMAccordion, { title: SDKUI_Localizator.Draft, children: draftData.map(item => renderMetadataItem(item, isReadOnly)) }), checkOutData.length > 0 && _jsx(TMAccordion, { title: `${SDKUI_Localizator.CheckIn}/${SDKUI_Localizator.CheckOut}`, children: checkOutData.map(item => renderMetadataItem(item, true)) })] }));
388
+ };
389
+ const layoutDsAttachs = () => {
390
+ const dsAttachsData = [];
391
+ metadataValues.forEach(item => {
392
+ switch (item.md?.id) {
393
+ // case DSAttachsMIDs.DSID:
394
+ case DSAttachsMIDs.Name:
395
+ case DSAttachsMIDs.Description:
396
+ dsAttachsData.push(item);
397
+ break;
398
+ default:
399
+ break;
400
+ }
401
+ });
402
+ return (_jsx("div", { style: { width: '100%' }, children: dsAttachsData.length > 0 && _jsx(TMAccordion, { title: SDKUI_Localizator.Attachment, children: dsAttachsData.map(item => renderMetadataItem(item, isReadOnly)) }) }));
388
403
  };
389
404
  const layoutCustom = () => {
390
405
  if (!layout || !layout.items || layout.items.length === 0) {
@@ -437,13 +452,18 @@ const TMMetadataValues = ({ showCheckBoxes = ShowCheckBoxesMode.Never, checkPerm
437
452
  return (_jsx("div", { style: { width: '100%' }, children: rootItems.map(item => renderLayoutItem(item, 0)) }));
438
453
  };
439
454
  const renderForm = () => {
455
+ // Se tutti i metadata sono di sistema, renderizziamo tutti in sola lettura senza layout
456
+ const allSystem = metadataValues.length > 0 && metadataValues.every(item => item.md?.isSystem === 1);
457
+ if (allSystem) {
458
+ return metadataValues.map((item) => renderMetadataItem(item, true));
459
+ }
440
460
  if (currentDTD?.templateTID === TemplateTIDs.WF_WIApprView && !isReadOnly) {
441
461
  return layoutWorkItem();
442
462
  }
443
463
  switch (currentDTD?.id) {
444
- case SystemTIDs.Drafts: return !isReadOnly ? layoutDraft() : metadataValues.map((item) => renderMetadataItem(item));
464
+ case SystemTIDs.Drafts: return layoutDraft();
445
465
  // case SystemTIDs.Chronology: break;
446
- // case SystemTIDs.DSAttachs: break;
466
+ case SystemTIDs.DSAttachs: return layoutDsAttachs();
447
467
  default:
448
468
  // Se è presente un layout personalizzato, usalo, altrimenti usa il rendering standard
449
469
  if (layout && layout.items && layout.items.length > 0) {
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
3
3
  import TMDcmtPreview from './TMDcmtPreview';
4
- import { AccessLevels, ArchiveConstraints, ArchiveEngineByID, DcmtTypeListCacheService, LayoutModes, MetadataDataTypes, ResultTypes, SDK_Globals, SDK_Localizator, SystemMIDsAsNumber, SystemTIDs, Task_States, TemplateTIDs, UpdateEngineByID, ValidationItem, WorkflowCacheService, WorkItemMetadataNames } from '@topconsultnpm/sdk-ts';
4
+ import { AccessLevels, ArchiveConstraints, ArchiveEngineByID, DcmtTypeListCacheService, LayoutCacheService, LayoutModes, MetadataDataTypes, ResultTypes, SDK_Globals, SDK_Localizator, SystemMIDsAsNumber, SystemTIDs, Task_States, TemplateTIDs, UpdateEngineByID, ValidationItem, WorkflowCacheService, WorkItemMetadataNames } from '@topconsultnpm/sdk-ts';
5
5
  import { ContextMenu } from 'devextreme-react';
6
6
  import { WorkFlowApproveRejectPopUp, WorkFlowMoreInfoPopUp, WorkFlowOperationButtons, WorkFlowReAssignPopUp } from '../workflow/TMWorkflowPopup';
7
7
  import { DownloadTypes, FormModes } from '../../../ts';
@@ -154,8 +154,9 @@ const TMDcmtForm = ({ showHeader = true, onSaveRecents, layoutMode = LayoutModes
154
154
  if (!DID && layoutMode === LayoutModes.Update)
155
155
  return;
156
156
  let getMetadataResult;
157
- if (layoutMode === LayoutModes.Update)
157
+ if (layoutMode === LayoutModes.Update) {
158
158
  getMetadataResult = await SDK_Globals.tmSession?.NewSearchEngine().GetMetadataAsync(TID, DID, true);
159
+ }
159
160
  let dtd = await DcmtTypeListCacheService.GetWithNotGrantedAsync(TID, DID, getMetadataResult);
160
161
  setFromDTD(dtd);
161
162
  if (layoutMode === LayoutModes.Update || (layoutMode === LayoutModes.Ark && DID)) {
@@ -168,7 +169,7 @@ const TMDcmtForm = ({ showHeader = true, onSaveRecents, layoutMode = LayoutModes
168
169
  setFormData(structuredClone(metadataList));
169
170
  formDataOrigRef.current = structuredClone(metadataList);
170
171
  }
171
- let resLayout = await SDK_Globals.tmSession?.NewDcmtTypeEngine().LayoutRetrieveAsync(TID, layoutMode);
172
+ let resLayout = await LayoutCacheService.GetAsync(TID, layoutMode);
172
173
  setLayout(resLayout);
173
174
  (layoutMode === LayoutModes.Ark && !inputFile) && handleReset();
174
175
  }
@@ -283,9 +284,11 @@ const TMDcmtForm = ({ showHeader = true, onSaveRecents, layoutMode = LayoutModes
283
284
  return;
284
285
  if (!formData || formData.length === 0)
285
286
  return;
287
+ // Check if formData has actual user metadata (mid > 99), not just system metadata
288
+ if (!formData.some(md => md.mid && md.mid > 99))
289
+ return;
286
290
  if (appliedInputMidsRef.current && deepCompare(appliedInputMidsRef.current, inputMids))
287
291
  return;
288
- appliedInputMidsRef.current = inputMids;
289
292
  let data = structuredClone(formData);
290
293
  for (let md of data) {
291
294
  if (!md.mid)
@@ -316,6 +319,7 @@ const TMDcmtForm = ({ showHeader = true, onSaveRecents, layoutMode = LayoutModes
316
319
  }
317
320
  });
318
321
  setFormData(data);
322
+ appliedInputMidsRef.current = inputMids;
319
323
  }, [inputMids, layoutMode, formData, formDataOrig]);
320
324
  // Memoizza solo il valore WI_SetID per evitare re-render quando altri metadata cambiano
321
325
  const workItemSetIDValue = useMemo(() => formData.find(o => o.md?.name === WorkItemMetadataNames.WI_SetID)?.value, [formData]);
package/lib/ts/types.d.ts CHANGED
@@ -61,6 +61,19 @@ export declare enum DraftsMIDs {
61
61
  Ver = 6008,// N° di versione della bozza
62
62
  LastVer = 6009
63
63
  }
64
+ export declare enum DSAttachsMIDs {
65
+ DSID = 7001,
66
+ Name = 7002,
67
+ Description = 7003
68
+ }
69
+ export declare enum ChronologyMIDs {
70
+ RefRootTID = 15001,
71
+ RefDID = 15002,
72
+ Ver = 15003,
73
+ AuthorID = 15004,
74
+ CheckInTime = 15005,
75
+ Note = 15006
76
+ }
64
77
  export type DownloadModes = "none" | "download" | "openInNewWindow";
65
78
  export type TID_MID = {
66
79
  tid: number | undefined;
package/lib/ts/types.js CHANGED
@@ -66,6 +66,21 @@ export var DraftsMIDs;
66
66
  DraftsMIDs[DraftsMIDs["Ver"] = 6008] = "Ver";
67
67
  DraftsMIDs[DraftsMIDs["LastVer"] = 6009] = "LastVer"; // Ultima versione? (0 | 1)
68
68
  })(DraftsMIDs || (DraftsMIDs = {}));
69
+ export var DSAttachsMIDs;
70
+ (function (DSAttachsMIDs) {
71
+ DSAttachsMIDs[DSAttachsMIDs["DSID"] = 7001] = "DSID";
72
+ DSAttachsMIDs[DSAttachsMIDs["Name"] = 7002] = "Name";
73
+ DSAttachsMIDs[DSAttachsMIDs["Description"] = 7003] = "Description";
74
+ })(DSAttachsMIDs || (DSAttachsMIDs = {}));
75
+ export var ChronologyMIDs;
76
+ (function (ChronologyMIDs) {
77
+ ChronologyMIDs[ChronologyMIDs["RefRootTID"] = 15001] = "RefRootTID";
78
+ ChronologyMIDs[ChronologyMIDs["RefDID"] = 15002] = "RefDID";
79
+ ChronologyMIDs[ChronologyMIDs["Ver"] = 15003] = "Ver";
80
+ ChronologyMIDs[ChronologyMIDs["AuthorID"] = 15004] = "AuthorID";
81
+ ChronologyMIDs[ChronologyMIDs["CheckInTime"] = 15005] = "CheckInTime";
82
+ ChronologyMIDs[ChronologyMIDs["Note"] = 15006] = "Note";
83
+ })(ChronologyMIDs || (ChronologyMIDs = {}));
69
84
  export class MetadataValueDescriptorEx extends MetadataValueDescriptor {
70
85
  }
71
86
  export var moduleTypes;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@topconsultnpm/sdkui-react",
3
- "version": "6.19.0-dev1.33",
3
+ "version": "6.19.0-dev1.35",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\" && exit 1",
@@ -39,7 +39,7 @@
39
39
  "lib"
40
40
  ],
41
41
  "dependencies": {
42
- "@topconsultnpm/sdk-ts": "6.19.0-dev1.5",
42
+ "@topconsultnpm/sdk-ts": "6.19.0-dev1.6",
43
43
  "buffer": "^6.0.3",
44
44
  "devextreme": "25.1.4",
45
45
  "devextreme-react": "25.1.4",