@topconsultnpm/sdkui-react-beta 6.9.44 → 6.9.45
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.
|
@@ -25,7 +25,7 @@ export declare const colorX = "rgb(246, 245, 242)";
|
|
|
25
25
|
export declare enum Descriptors {
|
|
26
26
|
Query = 3
|
|
27
27
|
}
|
|
28
|
-
export declare function
|
|
28
|
+
export declare function useQueryApplyForm<T>(d: Descriptors, formMode: FormModes, inputData: T | undefined, onApplied?: (newDescriptor: T) => void, parameters?: any[]): {
|
|
29
29
|
formData: T;
|
|
30
30
|
setFormData: React.Dispatch<React.SetStateAction<T>>;
|
|
31
31
|
formDataOrig: T;
|
|
@@ -35,7 +35,6 @@ export declare function useOrchApplyForm<T>(d: Descriptors, formMode: FormModes,
|
|
|
35
35
|
applyData: () => void;
|
|
36
36
|
};
|
|
37
37
|
interface ITMQueryEditor extends ITMApplyFormProps<QueryDescriptor> {
|
|
38
|
-
runQdImmediately?: boolean;
|
|
39
38
|
validateSelect?: boolean;
|
|
40
39
|
validateOrderBy?: boolean;
|
|
41
40
|
showDistinct?: boolean;
|
|
@@ -51,7 +51,7 @@ export var Descriptors;
|
|
|
51
51
|
(function (Descriptors) {
|
|
52
52
|
Descriptors[Descriptors["Query"] = 3] = "Query";
|
|
53
53
|
})(Descriptors || (Descriptors = {}));
|
|
54
|
-
export function
|
|
54
|
+
export function useQueryApplyForm(d, formMode, inputData, onApplied, parameters) {
|
|
55
55
|
const newData = () => {
|
|
56
56
|
switch (d) {
|
|
57
57
|
case Descriptors.Query: return SearchEngine.NewQueryDescriptor();
|
|
@@ -62,9 +62,9 @@ export function useOrchApplyForm(d, formMode, inputData, onApplied, parameters)
|
|
|
62
62
|
const [validationItems, setValidationItems] = useState([]);
|
|
63
63
|
return { formData, setFormData, formDataOrig, validationItems, setValidationItems, exception, applyData };
|
|
64
64
|
}
|
|
65
|
-
const TMQueryEditor = ({ formMode, inputData, onQDChanged,
|
|
65
|
+
const TMQueryEditor = ({ formMode, inputData, onQDChanged, isModal, showDistinct = false, showToolbar = true, validateSelect = true, validateOrderBy = true, raiseWarningForOnlyMetadataDcmtTypes = false, onApplied, onClose, height = 'auto', borderRadius = '4px', searchText, showApply, showUndo, showBack, onFromTIDChanged }) => {
|
|
66
66
|
const [confirmQueryParams, ConfirmQueryParamsDialog] = useQueryParametersDialog();
|
|
67
|
-
const { formData, setFormData, formDataOrig, validationItems, setValidationItems, exception, applyData } =
|
|
67
|
+
const { formData, setFormData, formDataOrig, validationItems, setValidationItems, exception, applyData } = useQueryApplyForm(Descriptors.Query, formMode, inputData, onApplied);
|
|
68
68
|
const [dcmtTypesList, setDcmtTypesList] = useState([]);
|
|
69
69
|
const [lastQdParams, setLastQdParams] = useState([]);
|
|
70
70
|
const [resultSearch, setResultSearch] = useState();
|
|
@@ -74,7 +74,7 @@ const TMQueryEditor = ({ formMode, inputData, onQDChanged, runQdImmediately = fa
|
|
|
74
74
|
const [showCompleteMetadataName, setShowCompleteMetadataName] = useState(false);
|
|
75
75
|
const [showResultSearch, setShowResultSearch] = useState(false);
|
|
76
76
|
const [fromCount, setFromCount] = useState(0);
|
|
77
|
-
useEffect(() => { setShowResultSearch(false); }, [inputData]);
|
|
77
|
+
useEffect(() => { setShowResultSearch(false); }, [JSON.stringify(inputData)]);
|
|
78
78
|
useEffect(() => {
|
|
79
79
|
if (!formData)
|
|
80
80
|
return;
|
|
@@ -85,9 +85,7 @@ const TMQueryEditor = ({ formMode, inputData, onQDChanged, runQdImmediately = fa
|
|
|
85
85
|
useEffect(() => { validateQd(); }, [formData.select, formData.where, formData.orderBy, formData.maxDcmtsToBeReturned]);
|
|
86
86
|
//Se non c'è la toolbar significa che il qd deve essere gestito dall'esterno
|
|
87
87
|
useEffect(() => { if (!showToolbar)
|
|
88
|
-
onQDChanged?.(formData); }, [formData]);
|
|
89
|
-
useEffect(() => { if (runQdImmediately)
|
|
90
|
-
onSearchAsync().catch((err) => { TMExceptionBoxManager.show({ exception: err }); }); }, [runQdImmediately]);
|
|
88
|
+
onQDChanged?.(formData); }, [JSON.stringify(formData)]);
|
|
91
89
|
const validateQd = () => {
|
|
92
90
|
let vil = [];
|
|
93
91
|
let qvo = new QueryValidatorOptions();
|
|
@@ -573,28 +571,28 @@ const TMQueryEditor = ({ formMode, inputData, onQDChanged, runQdImmediately = fa
|
|
|
573
571
|
// #endregion
|
|
574
572
|
// #region Ricerca
|
|
575
573
|
const renderResultSearchForm = _jsx(TMQueryResultForm, { context: SearchResultContext.METADATA_SEARCH, onClose: () => { setShowResultSearch(false); }, isModal: isModal, result1: resultSearch, elapsedTime: elapsedTime, searchText: searchText });
|
|
576
|
-
const onSearchAsync = async () => {
|
|
574
|
+
const onSearchAsync = async (qdInput) => {
|
|
577
575
|
try {
|
|
578
576
|
const startTime = new Date().getTime();
|
|
579
|
-
let
|
|
580
|
-
if (IsParametricQuery(
|
|
581
|
-
const qdParams = await confirmQueryParams(
|
|
577
|
+
let qdSearch = await prepareQdForSearchAsync(qdInput);
|
|
578
|
+
if (IsParametricQuery(qdSearch)) {
|
|
579
|
+
const qdParams = await confirmQueryParams(qdSearch, lastQdParams);
|
|
582
580
|
setLastQdParams(qdParams);
|
|
583
581
|
if (!qdParams || qdParams.length <= 0)
|
|
584
582
|
return;
|
|
585
583
|
for (const qpd of qdParams) {
|
|
586
|
-
let wi =
|
|
584
|
+
let wi = qdSearch.where?.find(o => o.value1 == qpd.name);
|
|
587
585
|
if (wi)
|
|
588
586
|
wi.value1 = wi.value1?.replace(wi.value1, !qpd.value ? '' : qpd.value.toString());
|
|
589
587
|
else {
|
|
590
|
-
wi =
|
|
588
|
+
wi = qdSearch.where?.find(o => o.value2 == qpd.name);
|
|
591
589
|
if (wi)
|
|
592
590
|
wi.value2 = wi.value2?.replace(wi.value2, !qpd.value ? '' : qpd.value.toString());
|
|
593
591
|
}
|
|
594
592
|
}
|
|
595
593
|
}
|
|
596
594
|
TMSpinner.show({ description: `${SDKUI_Localizator.Search} ...`, backgroundColor: 'transparent' });
|
|
597
|
-
let result = await SDK_Globals.tmSession?.NewSearchEngine().SearchByIDAsync(
|
|
595
|
+
let result = await SDK_Globals.tmSession?.NewSearchEngine().SearchByIDAsync(qdSearch);
|
|
598
596
|
let dcmtsFound = result?.dcmtsFound ?? 0;
|
|
599
597
|
if (dcmtsFound <= 0)
|
|
600
598
|
ShowAlert({ message: SDKUI_Localizator.NoDcmtFound, mode: 'info', title: SDKUI_Localizator.SearchResult, duration: 3000 });
|
|
@@ -679,7 +677,7 @@ const TMQueryEditor = ({ formMode, inputData, onQDChanged, runQdImmediately = fa
|
|
|
679
677
|
}
|
|
680
678
|
};
|
|
681
679
|
// #endregion
|
|
682
|
-
return (_jsxs(_Fragment, { children: [_jsxs(TMApplyForm, { isModal: false, formMode: formMode, isModified: calcIsModified(formData, formDataOrig), exception: exception, validationItems: validationItems, hasNavigation: false, customToolbarElements: _jsxs(_Fragment, { children: [_jsx(TMButton, { btnStyle: 'toolbar', caption: SDKUI_Localizator.Search, color: 'tertiary', icon: _jsx(IconSearch, {}), disabled: errorsCount > 0, onClick: onSearchAsync }), _jsx(TMButton, { btnStyle: 'toolbar', caption: SDKUI_Localizator.Count, icon: _jsx(IconCount, {}), disabled: errorsCount > 0, onClick: () => getQueryCountAsync(formData, true) }), SDK_Globals.tmSession?.SessionDescr?.appModuleID == AppModules.SURFER && _jsx(TMButton, { caption: "Passa ad archiviazione", icon: _jsx(IconArchiveDoc, {}), btnStyle: 'toolbar', fontSize: '1.3rem', onClick: () => { ShowAlert({ message: "TODO Passa ad archiviazione", mode: 'info', title: `${"TODO"}`, duration: 3000 }); } }), SDK_Globals.tmSession?.SessionDescr?.appModuleID == AppModules.SURFER && _jsx(TMButton, { caption: "Vai a risultato", icon: _jsx(IconArrowRight, {}), btnStyle: 'toolbar', fontSize: '1.3rem', onClick: () => { ShowAlert({ message: "TODO Vai a risultato", mode: 'info', title: `${"TODO"}`, duration: 3000 }); } })] }), showToolbar: showToolbar, showApply: showApply, showUndo: showUndo, showBack: showBack, onApply: () => applyData(), onClose: () => onClose?.(), onUndo: () => setFormData(formDataOrig), children: [_jsxs(Accordion, { elementAttr: { class: 'tm-query-dx-accordion' }, height: height, multiple: true, collapsible: true, repaintChangesOnly: true, deferRendering: false, animationDuration: 0, onContentReady: (e) => {
|
|
680
|
+
return (_jsxs(_Fragment, { children: [_jsxs(TMApplyForm, { isModal: false, formMode: formMode, isModified: calcIsModified(formData, formDataOrig), exception: exception, validationItems: validationItems, hasNavigation: false, customToolbarElements: _jsxs(_Fragment, { children: [_jsx(TMButton, { btnStyle: 'toolbar', caption: SDKUI_Localizator.Search, color: 'tertiary', icon: _jsx(IconSearch, {}), disabled: errorsCount > 0, onClick: async () => await onSearchAsync(formData) }), _jsx(TMButton, { btnStyle: 'toolbar', caption: SDKUI_Localizator.Count, icon: _jsx(IconCount, {}), disabled: errorsCount > 0, onClick: () => getQueryCountAsync(formData, true) }), SDK_Globals.tmSession?.SessionDescr?.appModuleID == AppModules.SURFER && _jsx(TMButton, { caption: "Passa ad archiviazione", icon: _jsx(IconArchiveDoc, {}), btnStyle: 'toolbar', fontSize: '1.3rem', onClick: () => { ShowAlert({ message: "TODO Passa ad archiviazione", mode: 'info', title: `${"TODO"}`, duration: 3000 }); } }), SDK_Globals.tmSession?.SessionDescr?.appModuleID == AppModules.SURFER && _jsx(TMButton, { caption: "Vai a risultato", icon: _jsx(IconArrowRight, {}), btnStyle: 'toolbar', fontSize: '1.3rem', onClick: () => { ShowAlert({ message: "TODO Vai a risultato", mode: 'info', title: `${"TODO"}`, duration: 3000 }); } })] }), showToolbar: showToolbar, showApply: showApply, showUndo: showUndo, showBack: showBack, onApply: () => applyData(), onClose: () => onClose?.(), onUndo: () => setFormData(formDataOrig), children: [_jsxs(Accordion, { elementAttr: { class: 'tm-query-dx-accordion' }, height: height, multiple: true, collapsible: true, repaintChangesOnly: true, deferRendering: false, animationDuration: 0, onContentReady: (e) => {
|
|
683
681
|
let items = e.component.option("items");
|
|
684
682
|
if (items && items.length > 0) {
|
|
685
683
|
for (let i = 0; i < items.length; i++) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { useState } from "react";
|
|
2
|
+
import { useEffect, useState } from "react";
|
|
3
3
|
import { QueryParameterDescriptor } from '@topconsultnpm/sdk-ts-beta';
|
|
4
4
|
import { TMModal, TMTextBox, TMButton } from "../components";
|
|
5
5
|
import { IconApply, IconCloseOutline, SDKUI_Localizator } from "../helper";
|
|
@@ -10,6 +10,11 @@ export const useQueryParametersDialog = () => {
|
|
|
10
10
|
const [open, setOpen] = useState(false);
|
|
11
11
|
const [qdParams, setQdParams] = useState([]);
|
|
12
12
|
let qdParamsOut = [];
|
|
13
|
+
useEffect(() => {
|
|
14
|
+
for (const qdp of qdParams) {
|
|
15
|
+
qdParamsOut.push(qdp);
|
|
16
|
+
}
|
|
17
|
+
}, [qdParams]);
|
|
13
18
|
const confirmQueryParams = (inputQd, lastQdParams) => new Promise((resolve, reject) => {
|
|
14
19
|
if (inputQd.where) {
|
|
15
20
|
let newQueryParams = [];
|