@fctc/widget-logic 2.0.7 → 2.0.8
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/dist/index.js +159 -149
- package/dist/index.mjs +161 -142
- package/dist/types.d.mts +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/widget.d.mts +19 -58
- package/dist/widget.d.ts +19 -58
- package/dist/widget.js +159 -149
- package/dist/widget.mjs +161 -142
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -5276,7 +5276,6 @@ var many2oneFieldController = (props) => {
|
|
|
5276
5276
|
options: fieldOptions,
|
|
5277
5277
|
showDetail
|
|
5278
5278
|
} = props;
|
|
5279
|
-
const { env } = (0, provider_exports.useEnv)();
|
|
5280
5279
|
const [options, setOptions] = useState7([]);
|
|
5281
5280
|
const [inputValue, setInputValue] = useState7("");
|
|
5282
5281
|
const [debouncedInputValue] = useDebounce(inputValue, 1e3);
|
|
@@ -5286,14 +5285,15 @@ var many2oneFieldController = (props) => {
|
|
|
5286
5285
|
const [domainObject, setDomainObject] = useState7(null);
|
|
5287
5286
|
const actionData = sessionStorageUtils.getActionData();
|
|
5288
5287
|
const { menuList } = (0, store_exports.useAppSelector)(store_exports.selectNavbar);
|
|
5288
|
+
const { context } = (0, store_exports.useAppSelector)(store_exports.selectEnv);
|
|
5289
5289
|
const initValue = methods?.getValues(name);
|
|
5290
5290
|
const optionsObject = (0, utils_exports.evalJSONContext)(fieldOptions) || {};
|
|
5291
5291
|
const contextObject = {
|
|
5292
5292
|
...(0, utils_exports.evalJSONContext)(actionData?.context) || {},
|
|
5293
5293
|
...fieldContext,
|
|
5294
|
-
...
|
|
5294
|
+
...context
|
|
5295
5295
|
};
|
|
5296
|
-
const { useGetSelection:
|
|
5296
|
+
const { useGetSelection: useGetSelection2 } = (0, provider_exports.useService)();
|
|
5297
5297
|
const data = {
|
|
5298
5298
|
model: relation,
|
|
5299
5299
|
domain: domainObject,
|
|
@@ -5309,7 +5309,7 @@ var many2oneFieldController = (props) => {
|
|
|
5309
5309
|
data: dataOfSelection,
|
|
5310
5310
|
refetch,
|
|
5311
5311
|
isFetching
|
|
5312
|
-
} =
|
|
5312
|
+
} = useGetSelection2({
|
|
5313
5313
|
data,
|
|
5314
5314
|
queryKey,
|
|
5315
5315
|
enabled: false
|
|
@@ -5463,9 +5463,15 @@ var many2oneButtonController = (props) => {
|
|
|
5463
5463
|
|
|
5464
5464
|
// src/widget/basic/many2many-field/controller.ts
|
|
5465
5465
|
import { useEffect as useEffect11, useMemo as useMemo10, useState as useState8 } from "react";
|
|
5466
|
+
import {
|
|
5467
|
+
useAppDispatch as useAppDispatch5,
|
|
5468
|
+
setFirstDomain,
|
|
5469
|
+
setViewDataStore,
|
|
5470
|
+
setPage,
|
|
5471
|
+
setGroupByDomain
|
|
5472
|
+
} from "@fctc/interface-logic/store";
|
|
5466
5473
|
import {
|
|
5467
5474
|
evalJSONContext as evalJSONContext4,
|
|
5468
|
-
evalJSONDomain as evalJSONDomain4,
|
|
5469
5475
|
formatSortingString as formatSortingString2
|
|
5470
5476
|
} from "@fctc/interface-logic/utils";
|
|
5471
5477
|
var many2manyFieldController = (props) => {
|
|
@@ -5473,43 +5479,45 @@ var many2manyFieldController = (props) => {
|
|
|
5473
5479
|
relation,
|
|
5474
5480
|
domain,
|
|
5475
5481
|
context,
|
|
5476
|
-
options,
|
|
5477
5482
|
tab,
|
|
5483
|
+
model,
|
|
5484
|
+
aid,
|
|
5478
5485
|
setSelectedRowKeys: setSelectedRowKeys4,
|
|
5486
|
+
fields,
|
|
5487
|
+
setFields,
|
|
5479
5488
|
groupByDomain,
|
|
5480
|
-
|
|
5481
|
-
|
|
5489
|
+
page,
|
|
5490
|
+
options,
|
|
5491
|
+
sessionStorageUtils
|
|
5482
5492
|
} = props;
|
|
5493
|
+
const appDispatch = useAppDispatch5();
|
|
5494
|
+
const actionData = sessionStorageUtils.getActionData();
|
|
5495
|
+
const [debouncedPage] = useDebounce(page, 500);
|
|
5496
|
+
const [order, setOrder] = useState8();
|
|
5497
|
+
const [isLoadedData, setIsLoadedData] = useState8(false);
|
|
5498
|
+
const [domainMany2Many, setDomainMany2Many] = useState8(domain);
|
|
5483
5499
|
const { env } = (0, provider_exports.useEnv)();
|
|
5484
5500
|
const { useGetView: useGetView2, useGetListData: useGetListData3, useGetFormView } = (0, provider_exports.useService)();
|
|
5485
|
-
const [order, setOrder] = useState8();
|
|
5486
|
-
const [page, setPage] = useState8(0);
|
|
5487
|
-
const [domainMany2Many, setDomainMany2Many] = useState8(null);
|
|
5488
|
-
const [debouncedPage] = useDebounce(page, 500);
|
|
5489
|
-
const contextObject = {
|
|
5490
|
-
...env.context,
|
|
5491
|
-
...context || {}
|
|
5492
|
-
};
|
|
5493
5501
|
const viewParams = {
|
|
5494
5502
|
model: relation,
|
|
5495
5503
|
views: [
|
|
5496
5504
|
[false, "list"],
|
|
5497
5505
|
[false, "search"]
|
|
5498
5506
|
],
|
|
5499
|
-
context
|
|
5507
|
+
context
|
|
5500
5508
|
};
|
|
5501
|
-
const { data: viewResponse } = useGetView2(viewParams,
|
|
5509
|
+
const { data: viewResponse } = useGetView2(viewParams, actionData);
|
|
5502
5510
|
const baseModel = useMemo10(
|
|
5503
5511
|
() => ({
|
|
5504
5512
|
name: String(relation),
|
|
5505
5513
|
view: viewResponse || {},
|
|
5506
|
-
actContext:
|
|
5514
|
+
actContext: context,
|
|
5507
5515
|
fields: [
|
|
5508
5516
|
...Object.values(viewResponse?.views?.list?.fields ?? {}),
|
|
5509
5517
|
...tab?.fields ? tab.fields : []
|
|
5510
5518
|
]
|
|
5511
5519
|
}),
|
|
5512
|
-
[
|
|
5520
|
+
[model, viewResponse]
|
|
5513
5521
|
);
|
|
5514
5522
|
const initModel = (0, hooks_exports.useModel)();
|
|
5515
5523
|
const modelInstance = useMemo10(() => {
|
|
@@ -5528,15 +5536,26 @@ var many2manyFieldController = (props) => {
|
|
|
5528
5536
|
const optionsObject = tab?.options ? evalJSONContext4(tab?.options) : (options ? evalJSONContext4(options) : {}) || {};
|
|
5529
5537
|
const fetchData = async () => {
|
|
5530
5538
|
try {
|
|
5531
|
-
|
|
5532
|
-
|
|
5533
|
-
|
|
5539
|
+
setDomainMany2Many(domain);
|
|
5540
|
+
appDispatch(setFirstDomain(domain));
|
|
5541
|
+
appDispatch(setViewDataStore(viewResponse));
|
|
5542
|
+
const modalData = viewResponse?.views?.list?.fields.map((field) => ({
|
|
5543
|
+
...viewResponse?.models?.[String(model)]?.[field?.name],
|
|
5544
|
+
...field
|
|
5545
|
+
}));
|
|
5546
|
+
if (!fields?.[`${aid}_${relation}_popupmany2many`] && modalData) {
|
|
5547
|
+
setFields({
|
|
5548
|
+
...fields,
|
|
5549
|
+
[`${aid}_${relation}_popupmany2many`]: modalData
|
|
5550
|
+
});
|
|
5551
|
+
}
|
|
5552
|
+
appDispatch(setPage(0));
|
|
5534
5553
|
} catch (err) {
|
|
5535
5554
|
console.log(err);
|
|
5536
5555
|
}
|
|
5537
5556
|
};
|
|
5538
5557
|
const queryKey = [
|
|
5539
|
-
`view-${relation}`,
|
|
5558
|
+
`view-${relation}-${aid}`,
|
|
5540
5559
|
specification,
|
|
5541
5560
|
domainMany2Many,
|
|
5542
5561
|
debouncedPage,
|
|
@@ -5549,16 +5568,16 @@ var many2manyFieldController = (props) => {
|
|
|
5549
5568
|
domain: domainMany2Many,
|
|
5550
5569
|
offset: debouncedPage * 10,
|
|
5551
5570
|
limit: 10,
|
|
5552
|
-
context
|
|
5571
|
+
context,
|
|
5553
5572
|
fields: groupByDomain?.fields,
|
|
5554
5573
|
groupby: [groupByDomain?.contexts[0]?.group_by],
|
|
5555
5574
|
sort: order ? order : default_order ? formatSortingString2(default_order) : ""
|
|
5556
5575
|
};
|
|
5557
|
-
const enabled =
|
|
5576
|
+
const enabled = isLoadedData && !!specification && !!relation && !!domainMany2Many && !!viewResponse;
|
|
5558
5577
|
const {
|
|
5559
5578
|
data: dataResponse,
|
|
5560
|
-
isLoading,
|
|
5561
|
-
isFetched,
|
|
5579
|
+
isLoading: isDataLoading,
|
|
5580
|
+
isFetched: isDataResponseFetched,
|
|
5562
5581
|
isPlaceholderData
|
|
5563
5582
|
} = useGetListData3(data, queryKey, enabled);
|
|
5564
5583
|
useEffect11(() => {
|
|
@@ -5566,59 +5585,74 @@ var many2manyFieldController = (props) => {
|
|
|
5566
5585
|
fetchData();
|
|
5567
5586
|
}
|
|
5568
5587
|
return () => {
|
|
5569
|
-
|
|
5588
|
+
appDispatch(setGroupByDomain(null));
|
|
5589
|
+
setFields((prevFields) => ({
|
|
5590
|
+
...prevFields,
|
|
5591
|
+
[`${aid}_${relation}_popupmany2many`]: null
|
|
5592
|
+
}));
|
|
5593
|
+
appDispatch(setPage(0));
|
|
5570
5594
|
setSelectedRowKeys4([]);
|
|
5571
5595
|
setDomainMany2Many(null);
|
|
5596
|
+
setIsLoadedData(false);
|
|
5572
5597
|
};
|
|
5573
5598
|
}, [viewResponse]);
|
|
5574
|
-
const { rows, columns, typeTable
|
|
5599
|
+
const { rows, columns, typeTable } = tableController({
|
|
5575
5600
|
data: {
|
|
5576
|
-
fields: viewResponse?.views?.list?.fields,
|
|
5601
|
+
fields: fields?.[`${aid}_${relation}_popupmany2many`] || viewResponse?.views?.list?.fields,
|
|
5577
5602
|
records: dataResponse?.records ?? dataResponse?.groups,
|
|
5578
5603
|
dataModel: viewResponse?.models?.[String(relation)],
|
|
5579
|
-
context:
|
|
5604
|
+
context: { ...env.context, ...context },
|
|
5580
5605
|
typeTable: dataResponse?.groups ? "group" : "list"
|
|
5581
5606
|
}
|
|
5582
5607
|
});
|
|
5583
|
-
const
|
|
5584
|
-
|
|
5585
|
-
model: relation
|
|
5586
|
-
context
|
|
5587
|
-
|
|
5588
|
-
|
|
5589
|
-
|
|
5590
|
-
|
|
5591
|
-
|
|
5592
|
-
|
|
5608
|
+
const dataFormView = {
|
|
5609
|
+
id: null,
|
|
5610
|
+
model: relation,
|
|
5611
|
+
context
|
|
5612
|
+
};
|
|
5613
|
+
const {
|
|
5614
|
+
refetch,
|
|
5615
|
+
data: dataFormViewResponse,
|
|
5616
|
+
isSuccess
|
|
5617
|
+
} = useGetFormView({
|
|
5618
|
+
data: dataFormView,
|
|
5619
|
+
queryKey: [`form-view-action-${relation}`],
|
|
5620
|
+
enabled: false
|
|
5593
5621
|
});
|
|
5622
|
+
useEffect11(() => {
|
|
5623
|
+
if (isSuccess && dataFormViewResponse) {
|
|
5624
|
+
sessionStorage.setItem("actionData", JSON.stringify(dataFormViewResponse));
|
|
5625
|
+
window.location.href = `/form/menu?model=${relation}`;
|
|
5626
|
+
}
|
|
5627
|
+
}, [isSuccess]);
|
|
5628
|
+
useEffect11(() => {
|
|
5629
|
+
if (domainMany2Many && !isLoadedData) {
|
|
5630
|
+
setIsLoadedData(true);
|
|
5631
|
+
}
|
|
5632
|
+
}, [domainMany2Many]);
|
|
5594
5633
|
const handleCreateNewOnPage = async () => {
|
|
5634
|
+
try {
|
|
5635
|
+
refetch();
|
|
5636
|
+
} catch (error) {
|
|
5637
|
+
console.log(error);
|
|
5638
|
+
}
|
|
5595
5639
|
};
|
|
5596
5640
|
return {
|
|
5597
5641
|
handleCreateNewOnPage,
|
|
5598
5642
|
optionsObject,
|
|
5599
|
-
totalRows: dataResponse?.length ?? 0,
|
|
5600
5643
|
rows,
|
|
5601
5644
|
columns,
|
|
5602
|
-
onToggleColumnOptional,
|
|
5603
5645
|
typeTable,
|
|
5604
|
-
|
|
5605
|
-
|
|
5606
|
-
isPlaceholderData
|
|
5607
|
-
setPage,
|
|
5608
|
-
page,
|
|
5609
|
-
viewData: viewResponse,
|
|
5610
|
-
domain: domainMany2Many,
|
|
5611
|
-
setDomain: setDomainMany2Many,
|
|
5612
|
-
searchController: searchControllers
|
|
5646
|
+
isDataLoading,
|
|
5647
|
+
isDataResponseFetched,
|
|
5648
|
+
isPlaceholderData
|
|
5613
5649
|
};
|
|
5614
5650
|
};
|
|
5615
5651
|
|
|
5616
5652
|
// src/widget/basic/many2many-tags-field/controller.ts
|
|
5617
5653
|
import { useMemo as useMemo11 } from "react";
|
|
5618
5654
|
import { WIDGETAVATAR, WIDGETCOLOR } from "@fctc/interface-logic/constants";
|
|
5619
|
-
import {
|
|
5620
|
-
import { useGetSelection as useGetSelection2 } from "@fctc/interface-logic/hooks";
|
|
5621
|
-
import { evalJSONContext as evalJSONContext5, evalJSONDomain as evalJSONDomain5 } from "@fctc/interface-logic/utils";
|
|
5655
|
+
import { evalJSONContext as evalJSONContext5, evalJSONDomain as evalJSONDomain4 } from "@fctc/interface-logic/utils";
|
|
5622
5656
|
var many2manyTagsController = (props) => {
|
|
5623
5657
|
const {
|
|
5624
5658
|
relation,
|
|
@@ -5629,10 +5663,11 @@ var many2manyTagsController = (props) => {
|
|
|
5629
5663
|
placeholderNoOption
|
|
5630
5664
|
} = props;
|
|
5631
5665
|
const isUser = relation === "res.users" || relation === "res.partner";
|
|
5632
|
-
const env =
|
|
5666
|
+
const { env } = (0, provider_exports.useEnv)();
|
|
5667
|
+
const { useGetSelection: useGetSelection2 } = (0, provider_exports.useService)();
|
|
5633
5668
|
const addtionalFields = optionsFields ? evalJSONContext5(optionsFields) : null;
|
|
5634
5669
|
const domainObject = useMemo11(
|
|
5635
|
-
() =>
|
|
5670
|
+
() => evalJSONDomain4(domain, JSON.parse(JSON.stringify(formValues || {}))),
|
|
5636
5671
|
[domain, formValues]
|
|
5637
5672
|
);
|
|
5638
5673
|
const data = {
|
|
@@ -5668,16 +5703,15 @@ var many2manyTagsController = (props) => {
|
|
|
5668
5703
|
options,
|
|
5669
5704
|
customNoOptionsMessage,
|
|
5670
5705
|
tranfer,
|
|
5671
|
-
dataOfSelection,
|
|
5672
5706
|
isUser
|
|
5673
5707
|
};
|
|
5674
5708
|
};
|
|
5675
5709
|
|
|
5676
5710
|
// src/widget/basic/status-bar-field/controller.ts
|
|
5677
5711
|
import { useState as useState9 } from "react";
|
|
5678
|
-
import { evalJSONDomain as
|
|
5712
|
+
import { evalJSONDomain as evalJSONDomain5 } from "@fctc/interface-logic/utils";
|
|
5679
5713
|
var durationController = (props) => {
|
|
5680
|
-
const { relation, domain, formValues, name, id, model, onRefetch } = props;
|
|
5714
|
+
const { relation, domain, formValues, name, id, model, onRefetch, enabled } = props;
|
|
5681
5715
|
const specification = {
|
|
5682
5716
|
id: 0,
|
|
5683
5717
|
name: "",
|
|
@@ -5691,7 +5725,7 @@ var durationController = (props) => {
|
|
|
5691
5725
|
const listDataProps = {
|
|
5692
5726
|
model: relation,
|
|
5693
5727
|
specification,
|
|
5694
|
-
domain:
|
|
5728
|
+
domain: evalJSONDomain5(domain, JSON.parse(JSON.stringify(formValues))),
|
|
5695
5729
|
limit: 10,
|
|
5696
5730
|
offset: 0,
|
|
5697
5731
|
fields: "",
|
|
@@ -5701,7 +5735,11 @@ var durationController = (props) => {
|
|
|
5701
5735
|
},
|
|
5702
5736
|
sort: ""
|
|
5703
5737
|
};
|
|
5704
|
-
const { data: dataResponse } = useGetListData3(
|
|
5738
|
+
const { data: dataResponse } = useGetListData3(
|
|
5739
|
+
listDataProps,
|
|
5740
|
+
queryKey,
|
|
5741
|
+
enabled
|
|
5742
|
+
);
|
|
5705
5743
|
const { mutate: fetchChangeStatus } = useChangeStatus();
|
|
5706
5744
|
const handleClick = async (stage_id) => {
|
|
5707
5745
|
setDisabled(true);
|
|
@@ -5737,32 +5775,18 @@ var durationController = (props) => {
|
|
|
5737
5775
|
};
|
|
5738
5776
|
|
|
5739
5777
|
// src/widget/basic/priority-field/controller.ts
|
|
5740
|
-
import { useSave as useSave2 } from "@fctc/interface-logic/hooks";
|
|
5741
5778
|
import { evalJSONContext as evalJSONContext6 } from "@fctc/interface-logic/utils";
|
|
5742
5779
|
var priorityFieldController = (props) => {
|
|
5743
|
-
const {
|
|
5744
|
-
value,
|
|
5745
|
-
isForm,
|
|
5746
|
-
name,
|
|
5747
|
-
methods,
|
|
5748
|
-
onChange,
|
|
5749
|
-
model,
|
|
5750
|
-
selection,
|
|
5751
|
-
id,
|
|
5752
|
-
actionData,
|
|
5753
|
-
viewData,
|
|
5754
|
-
context
|
|
5755
|
-
} = props;
|
|
5780
|
+
const { name, model, id, actionData, context, onChange } = props;
|
|
5756
5781
|
const _context = { ...evalJSONContext6(actionData?.context) };
|
|
5757
5782
|
const contextObject = { ...context, ..._context };
|
|
5758
|
-
const
|
|
5759
|
-
const label = viewData?.models?.[model]?.[name ?? ""]?.string ?? name;
|
|
5783
|
+
const { useSave: useSave2 } = (0, provider_exports.useService)();
|
|
5760
5784
|
const { mutateAsync: fetchSave } = useSave2();
|
|
5761
5785
|
const savePriorities = async ({
|
|
5762
|
-
value
|
|
5786
|
+
value,
|
|
5763
5787
|
resetPriority
|
|
5764
5788
|
}) => {
|
|
5765
|
-
const priorityValue =
|
|
5789
|
+
const priorityValue = value <= 0 ? 0 : value - 1;
|
|
5766
5790
|
try {
|
|
5767
5791
|
fetchSave({
|
|
5768
5792
|
ids: id ? [id] : [],
|
|
@@ -5780,14 +5804,7 @@ var priorityFieldController = (props) => {
|
|
|
5780
5804
|
}
|
|
5781
5805
|
};
|
|
5782
5806
|
return {
|
|
5783
|
-
|
|
5784
|
-
isForm,
|
|
5785
|
-
methods,
|
|
5786
|
-
defaultPriority,
|
|
5787
|
-
savePriorities,
|
|
5788
|
-
label,
|
|
5789
|
-
id,
|
|
5790
|
-
onChange
|
|
5807
|
+
savePriorities
|
|
5791
5808
|
};
|
|
5792
5809
|
};
|
|
5793
5810
|
|
|
@@ -6750,11 +6767,11 @@ import { evalJSONContext as evalJSONContext7 } from "@fctc/interface-logic/utils
|
|
|
6750
6767
|
var colorFieldController = (props) => {
|
|
6751
6768
|
const { value, isForm, name, formValues, idForm, model, actionData } = props;
|
|
6752
6769
|
const { env } = (0, provider_exports.useEnv)();
|
|
6753
|
-
const { useSave:
|
|
6770
|
+
const { useSave: useSave2 } = (0, provider_exports.useService)();
|
|
6754
6771
|
const _context = { ...evalJSONContext7(actionData?.context) || {} };
|
|
6755
6772
|
const contextObject = { ...env.context, ..._context };
|
|
6756
6773
|
const idDefault = isForm ? idForm : formValues?.id;
|
|
6757
|
-
const { mutate: onSave } =
|
|
6774
|
+
const { mutate: onSave } = useSave2();
|
|
6758
6775
|
const savePickColor = async (colorObject) => {
|
|
6759
6776
|
const { id } = colorObject;
|
|
6760
6777
|
if (value === id) return;
|
|
@@ -6877,20 +6894,25 @@ var binaryFieldController = (props) => {
|
|
|
6877
6894
|
};
|
|
6878
6895
|
|
|
6879
6896
|
// src/widget/advance/table/table-body/controller.ts
|
|
6880
|
-
import {
|
|
6897
|
+
import {
|
|
6898
|
+
useAppDispatch as useAppDispatch6,
|
|
6899
|
+
setSelectedRowKeys,
|
|
6900
|
+
useAppSelector as useAppSelector4,
|
|
6901
|
+
selectList as selectList3
|
|
6902
|
+
} from "@fctc/interface-logic/store";
|
|
6881
6903
|
import { useEffect as useEffect13, useMemo as useMemo12 } from "react";
|
|
6882
6904
|
var tableBodyController = (props) => {
|
|
6883
6905
|
const {
|
|
6884
6906
|
checkedAll,
|
|
6885
6907
|
checkboxRef,
|
|
6886
6908
|
setIsAutoSelect,
|
|
6887
|
-
selectedRowKeys,
|
|
6888
6909
|
row,
|
|
6889
6910
|
isAutoSelect,
|
|
6890
6911
|
selectedRowKeysRef,
|
|
6891
6912
|
onClickRow
|
|
6892
6913
|
} = props;
|
|
6893
|
-
const appDispatch =
|
|
6914
|
+
const appDispatch = useAppDispatch6();
|
|
6915
|
+
const { selectedRowKeys } = useAppSelector4(selectList3);
|
|
6894
6916
|
const checked = useMemo12(() => {
|
|
6895
6917
|
if (!row?.id) return false;
|
|
6896
6918
|
if (selectedRowKeys?.includes(row.id)) {
|
|
@@ -6906,7 +6928,6 @@ var tableBodyController = (props) => {
|
|
|
6906
6928
|
return;
|
|
6907
6929
|
}
|
|
6908
6930
|
const newSelectedRowKeys = selectedRowKeys?.includes(row.id) ? selectedRowKeys?.filter((key) => key !== row.id) : [...selectedRowKeys, row.id];
|
|
6909
|
-
console.log("newSelectedRowKeys", newSelectedRowKeys);
|
|
6910
6931
|
appDispatch(setSelectedRowKeys(newSelectedRowKeys));
|
|
6911
6932
|
};
|
|
6912
6933
|
const handleClickRow = (col, row2) => {
|
|
@@ -6945,15 +6966,15 @@ var tableBodyController = (props) => {
|
|
|
6945
6966
|
|
|
6946
6967
|
// src/widget/advance/table/table-head/controller.ts
|
|
6947
6968
|
import {
|
|
6948
|
-
useAppDispatch as
|
|
6949
|
-
useAppSelector as
|
|
6969
|
+
useAppDispatch as useAppDispatch7,
|
|
6970
|
+
useAppSelector as useAppSelector5,
|
|
6950
6971
|
selectSearch as selectSearch3,
|
|
6951
6972
|
setSelectedRowKeys as setSelectedRowKeys2
|
|
6952
6973
|
} from "@fctc/interface-logic/store";
|
|
6953
6974
|
var tableHeadController = (props) => {
|
|
6954
6975
|
const { typeTable, rows, selectedRowKeysRef } = props;
|
|
6955
|
-
const appDispatch =
|
|
6956
|
-
const { groupByDomain } =
|
|
6976
|
+
const appDispatch = useAppDispatch7();
|
|
6977
|
+
const { groupByDomain } = useAppSelector5(selectSearch3);
|
|
6957
6978
|
const handleCheckBoxAll = (event) => {
|
|
6958
6979
|
if (event?.target?.checked && typeTable === "list") {
|
|
6959
6980
|
const allRowKeys = Array.isArray(rows) ? rows.map((record) => record?.id) : [];
|
|
@@ -6988,9 +7009,9 @@ var tableHeadController = (props) => {
|
|
|
6988
7009
|
// src/widget/advance/table/table-view/controller.ts
|
|
6989
7010
|
import { useEffect as useEffect14, useMemo as useMemo13, useRef as useRef5, useState as useState13 } from "react";
|
|
6990
7011
|
import {
|
|
6991
|
-
useAppSelector as
|
|
7012
|
+
useAppSelector as useAppSelector6,
|
|
6992
7013
|
selectSearch as selectSearch4,
|
|
6993
|
-
selectList as
|
|
7014
|
+
selectList as selectList4
|
|
6994
7015
|
} from "@fctc/interface-logic/store";
|
|
6995
7016
|
import { domainHelper } from "@fctc/interface-logic/utils";
|
|
6996
7017
|
var tableController = ({ data }) => {
|
|
@@ -7075,10 +7096,10 @@ import {
|
|
|
7075
7096
|
useGetListData as useGetListData2
|
|
7076
7097
|
} from "@fctc/interface-logic/hooks";
|
|
7077
7098
|
import {
|
|
7078
|
-
useAppSelector as
|
|
7099
|
+
useAppSelector as useAppSelector7,
|
|
7079
7100
|
selectSearch as selectSearch5,
|
|
7080
|
-
selectList as
|
|
7081
|
-
useAppDispatch as
|
|
7101
|
+
selectList as selectList5,
|
|
7102
|
+
useAppDispatch as useAppDispatch8,
|
|
7082
7103
|
setSelectedRowKeys as setSelectedRowKeys3
|
|
7083
7104
|
} from "@fctc/interface-logic/store";
|
|
7084
7105
|
|
|
@@ -7109,9 +7130,9 @@ var tableGroupController = (props) => {
|
|
|
7109
7130
|
selectedRowKeysRef
|
|
7110
7131
|
} = props;
|
|
7111
7132
|
const [pageGroup, setPageGroup] = useState14(0);
|
|
7112
|
-
const { groupByDomain, selectedTags } =
|
|
7113
|
-
const { selectedRowKeys } =
|
|
7114
|
-
const appDispatch =
|
|
7133
|
+
const { groupByDomain, selectedTags } = useAppSelector7(selectSearch5);
|
|
7134
|
+
const { selectedRowKeys } = useAppSelector7(selectList5);
|
|
7135
|
+
const appDispatch = useAppDispatch8();
|
|
7115
7136
|
const { toDataJS } = useOdooDataTransform();
|
|
7116
7137
|
const initVal = toDataJS(row, viewData, model);
|
|
7117
7138
|
const [isShowGroup, setIsShowGroup] = useState14(false);
|
|
@@ -7252,28 +7273,26 @@ var import_moment2 = __toESM(require_moment());
|
|
|
7252
7273
|
import { SearchType } from "@fctc/interface-logic/constants";
|
|
7253
7274
|
import {
|
|
7254
7275
|
domainHelper as domainHelper2,
|
|
7255
|
-
|
|
7256
|
-
evalJSONDomain as evalJSONDomain7,
|
|
7276
|
+
evalJSONDomain as evalJSONDomain6,
|
|
7257
7277
|
validateAndParseDate
|
|
7258
7278
|
} from "@fctc/interface-logic/utils";
|
|
7259
7279
|
import { useCallback as useCallback3, useEffect as useEffect16, useState as useState15 } from "react";
|
|
7260
7280
|
var searchController = ({
|
|
7261
7281
|
viewData,
|
|
7262
|
-
|
|
7263
|
-
|
|
7264
|
-
|
|
7265
|
-
|
|
7282
|
+
actionData,
|
|
7283
|
+
fieldsList,
|
|
7284
|
+
contextSearch,
|
|
7285
|
+
setSearchMap,
|
|
7286
|
+
searchMap
|
|
7266
7287
|
}) => {
|
|
7267
|
-
const { env } = (0, provider_exports.useEnv)();
|
|
7268
7288
|
const [filterBy, setFilterBy] = useState15(null);
|
|
7269
7289
|
const [searchBy, setSearchBy] = useState15(null);
|
|
7270
7290
|
const [groupBy, setGroupBy] = useState15(null);
|
|
7271
7291
|
const [selectedTags, setSelectedTags] = useState15(null);
|
|
7272
7292
|
const [searchString, setSearchString] = useState15("");
|
|
7273
|
-
const [
|
|
7274
|
-
const
|
|
7275
|
-
const
|
|
7276
|
-
const domainAction = domain ? Array.isArray(domain) ? [...domain] : evalJSONDomain7(domain, contextSearch) : [];
|
|
7293
|
+
const domainAction = actionData?.domain ? Array.isArray(actionData?.domain) ? [...actionData?.domain] : evalJSONDomain6(actionData?.domain, contextSearch) : [];
|
|
7294
|
+
const aid = actionData?.id;
|
|
7295
|
+
const model = actionData?.res_model;
|
|
7277
7296
|
const clearSearch = () => {
|
|
7278
7297
|
setFilterBy([]);
|
|
7279
7298
|
setGroupBy([]);
|
|
@@ -7318,8 +7337,9 @@ var searchController = ({
|
|
|
7318
7337
|
}
|
|
7319
7338
|
};
|
|
7320
7339
|
useEffect16(() => {
|
|
7340
|
+
clearSearch();
|
|
7321
7341
|
fetchData();
|
|
7322
|
-
}, [model, viewData]);
|
|
7342
|
+
}, [aid, model, viewData]);
|
|
7323
7343
|
const onChangeSearchInput = (search_string) => {
|
|
7324
7344
|
setSearchString(search_string);
|
|
7325
7345
|
};
|
|
@@ -7356,28 +7376,27 @@ var searchController = ({
|
|
|
7356
7376
|
};
|
|
7357
7377
|
const formatDomain = () => {
|
|
7358
7378
|
if (domainAction) {
|
|
7359
|
-
|
|
7360
|
-
const domain2 = [];
|
|
7379
|
+
const domain = [];
|
|
7361
7380
|
if (domainAction?.length > 0) {
|
|
7362
7381
|
if (Object.keys(searchMap).length > 0) {
|
|
7363
|
-
|
|
7382
|
+
domain.push("&");
|
|
7364
7383
|
}
|
|
7365
7384
|
domainAction.forEach((domainItem) => {
|
|
7366
|
-
|
|
7385
|
+
domain.push(domainItem);
|
|
7367
7386
|
});
|
|
7368
7387
|
}
|
|
7369
7388
|
Object.keys(searchMap).forEach((key, keyIndex, keys) => {
|
|
7370
7389
|
if (!key?.includes(SearchType.GROUP)) {
|
|
7371
7390
|
if (keys.length > 1 && keyIndex < keys.length - 1) {
|
|
7372
|
-
|
|
7391
|
+
domain.push("&");
|
|
7373
7392
|
}
|
|
7374
7393
|
const valuesOfKey = searchMap[key];
|
|
7375
7394
|
valuesOfKey.forEach((value, index) => {
|
|
7376
7395
|
if (index < valuesOfKey.length - 1) {
|
|
7377
|
-
|
|
7396
|
+
domain.push("|");
|
|
7378
7397
|
}
|
|
7379
7398
|
if (value.domain) {
|
|
7380
|
-
|
|
7399
|
+
domain.push(...value.domain);
|
|
7381
7400
|
return;
|
|
7382
7401
|
}
|
|
7383
7402
|
let valueDomainItem = value?.value;
|
|
@@ -7393,11 +7412,11 @@ var searchController = ({
|
|
|
7393
7412
|
}
|
|
7394
7413
|
}
|
|
7395
7414
|
const operator = value?.modelType === "date" || value?.modelType === "datetime" || value?.modelType === "boolean" || value?.modelType === "integer" ? value?.operator ?? "=" : value.operator ?? "ilike";
|
|
7396
|
-
|
|
7415
|
+
domain.push([value.name, operator, valueDomainItem]);
|
|
7397
7416
|
});
|
|
7398
7417
|
}
|
|
7399
7418
|
});
|
|
7400
|
-
return [...
|
|
7419
|
+
return [...domain];
|
|
7401
7420
|
}
|
|
7402
7421
|
};
|
|
7403
7422
|
const setTagSearch = useCallback3(
|
|
@@ -7428,16 +7447,16 @@ var searchController = ({
|
|
|
7428
7447
|
const contexts = [];
|
|
7429
7448
|
let groupValues = [];
|
|
7430
7449
|
objValues?.forEach((objValue) => {
|
|
7431
|
-
const { context
|
|
7450
|
+
const { context, value, active, groupIndex: groupIndex2, isDefault } = objValue;
|
|
7432
7451
|
const indexAppend = groupIndex2 != null ? groupIndex2 : viewData?.views?.search?.filters_by?.length ?? 0;
|
|
7433
7452
|
contexts.push(
|
|
7434
|
-
...Array.isArray(
|
|
7453
|
+
...Array.isArray(context?.group_by) ? context.group_by.map((item) => ({ group_by: item })) : [context]
|
|
7435
7454
|
);
|
|
7436
7455
|
groupValues[indexAppend] = {
|
|
7437
7456
|
contexts: [
|
|
7438
|
-
...Array.isArray(
|
|
7457
|
+
...Array.isArray(context?.group_by) ? context.group_by.map((item) => ({
|
|
7439
7458
|
group_by: item
|
|
7440
|
-
})) : [
|
|
7459
|
+
})) : [context]
|
|
7441
7460
|
],
|
|
7442
7461
|
strings: isDefault ? [value] : [...groupValues[indexAppend]?.strings ?? [], value]
|
|
7443
7462
|
};
|
|
@@ -7464,38 +7483,39 @@ var searchController = ({
|
|
|
7464
7483
|
[searchMap]
|
|
7465
7484
|
);
|
|
7466
7485
|
useEffect16(() => {
|
|
7486
|
+
setSelectedTags(null);
|
|
7467
7487
|
setTagSearch(searchMap);
|
|
7468
7488
|
}, [searchMap]);
|
|
7469
7489
|
const handleAddTagSearch = (tag) => {
|
|
7470
7490
|
const {
|
|
7471
|
-
domain
|
|
7491
|
+
domain,
|
|
7472
7492
|
groupIndex,
|
|
7473
7493
|
value,
|
|
7474
7494
|
type,
|
|
7475
7495
|
title,
|
|
7476
|
-
context
|
|
7496
|
+
context,
|
|
7477
7497
|
active,
|
|
7478
7498
|
dataIndex
|
|
7479
7499
|
} = tag;
|
|
7480
|
-
const domainFormat = new domainHelper2.Domain(
|
|
7500
|
+
const domainFormat = new domainHelper2.Domain(domain);
|
|
7481
7501
|
if (type === SearchType.FILTER) {
|
|
7482
7502
|
addSearchItems(`${SearchType.FILTER}_${groupIndex}`, {
|
|
7483
7503
|
...tag,
|
|
7484
|
-
domain:
|
|
7504
|
+
domain: domain ? domainFormat.toList(context) : null
|
|
7485
7505
|
});
|
|
7486
7506
|
} else if (type === SearchType.SEARCH) {
|
|
7487
7507
|
addSearchItems(`${SearchType.SEARCH}_${String(dataIndex)}`, {
|
|
7488
7508
|
...tag,
|
|
7489
|
-
domain:
|
|
7490
|
-
...
|
|
7509
|
+
domain: domain ? domainFormat.toList({
|
|
7510
|
+
...context,
|
|
7491
7511
|
self: value
|
|
7492
7512
|
}) : null
|
|
7493
7513
|
});
|
|
7494
7514
|
} else if (type === SearchType.GROUP) {
|
|
7495
7515
|
addSearchItems(`${SearchType.GROUP}`, {
|
|
7496
7516
|
...tag,
|
|
7497
|
-
domain:
|
|
7498
|
-
context
|
|
7517
|
+
domain: domain ? domainFormat.toList({
|
|
7518
|
+
context,
|
|
7499
7519
|
self: value
|
|
7500
7520
|
}) : null
|
|
7501
7521
|
});
|
|
@@ -7515,8 +7535,7 @@ var searchController = ({
|
|
|
7515
7535
|
removeSearchItems,
|
|
7516
7536
|
onSearchString: onChangeSearchInput,
|
|
7517
7537
|
handleAddTagSearch,
|
|
7518
|
-
domain: formatDomain()
|
|
7519
|
-
context: contextSearch
|
|
7538
|
+
domain: formatDomain()
|
|
7520
7539
|
};
|
|
7521
7540
|
};
|
|
7522
7541
|
|
package/dist/types.d.mts
CHANGED