@fctc/widget-logic 1.9.3 → 1.9.4
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 +53 -95
- package/dist/index.mjs +43 -90
- package/dist/widget.d.mts +6 -2
- package/dist/widget.d.ts +6 -2
- package/dist/widget.js +53 -95
- package/dist/widget.mjs +43 -90
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -5246,6 +5246,7 @@ var many2oneFieldController = (props) => {
|
|
|
5246
5246
|
options: fieldOptions,
|
|
5247
5247
|
showDetail
|
|
5248
5248
|
} = props;
|
|
5249
|
+
const { env } = (0, provider_exports.useEnv)();
|
|
5249
5250
|
const [options, setOptions] = (0, import_react14.useState)([]);
|
|
5250
5251
|
const [inputValue, setInputValue] = (0, import_react14.useState)("");
|
|
5251
5252
|
const [debouncedInputValue] = useDebounce(inputValue, 1e3);
|
|
@@ -5255,13 +5256,12 @@ var many2oneFieldController = (props) => {
|
|
|
5255
5256
|
const [domainObject, setDomainObject] = (0, import_react14.useState)(null);
|
|
5256
5257
|
const actionData = sessionStorageUtils.getActionData();
|
|
5257
5258
|
const { menuList } = (0, store_exports.useAppSelector)(store_exports.selectNavbar);
|
|
5258
|
-
const { context } = (0, store_exports.useAppSelector)(store_exports.selectEnv);
|
|
5259
5259
|
const initValue = methods?.getValues(name);
|
|
5260
5260
|
const optionsObject = (0, utils_exports.evalJSONContext)(fieldOptions) || {};
|
|
5261
5261
|
const contextObject = {
|
|
5262
5262
|
...(0, utils_exports.evalJSONContext)(actionData?.context) || {},
|
|
5263
5263
|
...fieldContext,
|
|
5264
|
-
...context
|
|
5264
|
+
...env?.context
|
|
5265
5265
|
};
|
|
5266
5266
|
const { useGetSelection: useGetSelection3 } = (0, provider_exports.useService)();
|
|
5267
5267
|
const data = {
|
|
@@ -5433,52 +5433,47 @@ var many2oneButtonController = (props) => {
|
|
|
5433
5433
|
|
|
5434
5434
|
// src/widget/basic/many2many-field/controller.ts
|
|
5435
5435
|
var import_react15 = require("react");
|
|
5436
|
-
var import_store8 = require("@fctc/interface-logic/store");
|
|
5437
5436
|
var import_utils6 = require("@fctc/interface-logic/utils");
|
|
5438
5437
|
var many2manyFieldController = (props) => {
|
|
5439
5438
|
const {
|
|
5440
5439
|
relation,
|
|
5441
5440
|
domain,
|
|
5442
5441
|
context,
|
|
5442
|
+
options,
|
|
5443
5443
|
tab,
|
|
5444
|
-
model,
|
|
5445
|
-
aid,
|
|
5446
5444
|
setSelectedRowKeys: setSelectedRowKeys4,
|
|
5447
|
-
fields,
|
|
5448
|
-
setFields,
|
|
5449
5445
|
groupByDomain,
|
|
5450
|
-
page,
|
|
5451
|
-
options,
|
|
5452
5446
|
sessionStorageUtils
|
|
5453
5447
|
} = props;
|
|
5454
|
-
const appDispatch = (0, import_store8.useAppDispatch)();
|
|
5455
|
-
const actionData = sessionStorageUtils.getActionData();
|
|
5456
|
-
const [debouncedPage] = useDebounce(page, 500);
|
|
5457
|
-
const [order, setOrder] = (0, import_react15.useState)();
|
|
5458
|
-
const [isLoadedData, setIsLoadedData] = (0, import_react15.useState)(false);
|
|
5459
|
-
const [domainMany2Many, setDomainMany2Many] = (0, import_react15.useState)(domain);
|
|
5460
5448
|
const { env } = (0, provider_exports.useEnv)();
|
|
5461
5449
|
const { useGetView: useGetView2, useGetListData: useGetListData3, useGetFormView } = (0, provider_exports.useService)();
|
|
5450
|
+
const [order, setOrder] = (0, import_react15.useState)();
|
|
5451
|
+
const [isLoadedData, setIsLoadedData] = (0, import_react15.useState)(false);
|
|
5452
|
+
const [page, setPage] = (0, import_react15.useState)(0);
|
|
5453
|
+
const [domainMany2Many, setDomainMany2Many] = (0, import_react15.useState)(null);
|
|
5454
|
+
const [debouncedPage] = useDebounce(page, 500);
|
|
5455
|
+
const actionData = sessionStorageUtils.getActionData();
|
|
5456
|
+
const contextObject = { ...env.context, ...context };
|
|
5462
5457
|
const viewParams = {
|
|
5463
5458
|
model: relation,
|
|
5464
5459
|
views: [
|
|
5465
5460
|
[false, "list"],
|
|
5466
5461
|
[false, "search"]
|
|
5467
5462
|
],
|
|
5468
|
-
context
|
|
5463
|
+
context: contextObject
|
|
5469
5464
|
};
|
|
5470
5465
|
const { data: viewResponse } = useGetView2(viewParams, actionData);
|
|
5471
5466
|
const baseModel = (0, import_react15.useMemo)(
|
|
5472
5467
|
() => ({
|
|
5473
5468
|
name: String(relation),
|
|
5474
5469
|
view: viewResponse || {},
|
|
5475
|
-
actContext:
|
|
5470
|
+
actContext: contextObject,
|
|
5476
5471
|
fields: [
|
|
5477
5472
|
...Object.values(viewResponse?.views?.list?.fields ?? {}),
|
|
5478
5473
|
...tab?.fields ? tab.fields : []
|
|
5479
5474
|
]
|
|
5480
5475
|
}),
|
|
5481
|
-
[
|
|
5476
|
+
[relation, viewResponse]
|
|
5482
5477
|
);
|
|
5483
5478
|
const initModel = (0, hooks_exports.useModel)();
|
|
5484
5479
|
const modelInstance = (0, import_react15.useMemo)(() => {
|
|
@@ -5497,26 +5492,15 @@ var many2manyFieldController = (props) => {
|
|
|
5497
5492
|
const optionsObject = tab?.options ? (0, import_utils6.evalJSONContext)(tab?.options) : (options ? (0, import_utils6.evalJSONContext)(options) : {}) || {};
|
|
5498
5493
|
const fetchData = async () => {
|
|
5499
5494
|
try {
|
|
5500
|
-
|
|
5501
|
-
|
|
5502
|
-
|
|
5503
|
-
const modalData = viewResponse?.views?.list?.fields.map((field) => ({
|
|
5504
|
-
...viewResponse?.models?.[String(model)]?.[field?.name],
|
|
5505
|
-
...field
|
|
5506
|
-
}));
|
|
5507
|
-
if (!fields?.[`${aid}_${relation}_popupmany2many`] && modalData) {
|
|
5508
|
-
setFields({
|
|
5509
|
-
...fields,
|
|
5510
|
-
[`${aid}_${relation}_popupmany2many`]: modalData
|
|
5511
|
-
});
|
|
5512
|
-
}
|
|
5513
|
-
appDispatch((0, import_store8.setPage)(0));
|
|
5495
|
+
const domainParse = typeof domain === "string" ? (0, import_utils6.evalJSONDomain)(domain, contextObject) : Array.isArray(domain) ? domain : [];
|
|
5496
|
+
setDomainMany2Many(domainParse);
|
|
5497
|
+
setPage(0);
|
|
5514
5498
|
} catch (err) {
|
|
5515
5499
|
console.log(err);
|
|
5516
5500
|
}
|
|
5517
5501
|
};
|
|
5518
5502
|
const queryKey = [
|
|
5519
|
-
`view-${relation}
|
|
5503
|
+
`view-${relation}`,
|
|
5520
5504
|
specification,
|
|
5521
5505
|
domainMany2Many,
|
|
5522
5506
|
debouncedPage,
|
|
@@ -5529,7 +5513,7 @@ var many2manyFieldController = (props) => {
|
|
|
5529
5513
|
domain: domainMany2Many,
|
|
5530
5514
|
offset: debouncedPage * 10,
|
|
5531
5515
|
limit: 10,
|
|
5532
|
-
context,
|
|
5516
|
+
context: contextObject,
|
|
5533
5517
|
fields: groupByDomain?.fields,
|
|
5534
5518
|
groupby: [groupByDomain?.contexts[0]?.group_by],
|
|
5535
5519
|
sort: order ? order : default_order ? (0, import_utils6.formatSortingString)(default_order) : ""
|
|
@@ -5537,8 +5521,8 @@ var many2manyFieldController = (props) => {
|
|
|
5537
5521
|
const enabled = isLoadedData && !!specification && !!relation && !!domainMany2Many && !!viewResponse;
|
|
5538
5522
|
const {
|
|
5539
5523
|
data: dataResponse,
|
|
5540
|
-
isLoading
|
|
5541
|
-
isFetched
|
|
5524
|
+
isLoading,
|
|
5525
|
+
isFetched,
|
|
5542
5526
|
isPlaceholderData
|
|
5543
5527
|
} = useGetListData3(data, queryKey, enabled);
|
|
5544
5528
|
(0, import_react15.useEffect)(() => {
|
|
@@ -5546,12 +5530,7 @@ var many2manyFieldController = (props) => {
|
|
|
5546
5530
|
fetchData();
|
|
5547
5531
|
}
|
|
5548
5532
|
return () => {
|
|
5549
|
-
|
|
5550
|
-
setFields((prevFields) => ({
|
|
5551
|
-
...prevFields,
|
|
5552
|
-
[`${aid}_${relation}_popupmany2many`]: null
|
|
5553
|
-
}));
|
|
5554
|
-
appDispatch((0, import_store8.setPage)(0));
|
|
5533
|
+
setPage(0);
|
|
5555
5534
|
setSelectedRowKeys4([]);
|
|
5556
5535
|
setDomainMany2Many(null);
|
|
5557
5536
|
setIsLoadedData(false);
|
|
@@ -5559,44 +5538,19 @@ var many2manyFieldController = (props) => {
|
|
|
5559
5538
|
}, [viewResponse]);
|
|
5560
5539
|
const { rows, columns, typeTable } = tableController({
|
|
5561
5540
|
data: {
|
|
5562
|
-
fields:
|
|
5541
|
+
fields: viewResponse?.views?.list?.fields,
|
|
5563
5542
|
records: dataResponse?.records ?? dataResponse?.groups,
|
|
5564
5543
|
dataModel: viewResponse?.models?.[String(relation)],
|
|
5565
|
-
context:
|
|
5544
|
+
context: contextObject,
|
|
5566
5545
|
typeTable: dataResponse?.groups ? "group" : "list"
|
|
5567
5546
|
}
|
|
5568
5547
|
});
|
|
5569
|
-
const dataFormView = {
|
|
5570
|
-
id: null,
|
|
5571
|
-
model: relation,
|
|
5572
|
-
context
|
|
5573
|
-
};
|
|
5574
|
-
const {
|
|
5575
|
-
refetch,
|
|
5576
|
-
data: dataFormViewResponse,
|
|
5577
|
-
isSuccess
|
|
5578
|
-
} = useGetFormView({
|
|
5579
|
-
data: dataFormView,
|
|
5580
|
-
queryKey: [`form-view-action-${relation}`],
|
|
5581
|
-
enabled: false
|
|
5582
|
-
});
|
|
5583
|
-
(0, import_react15.useEffect)(() => {
|
|
5584
|
-
if (isSuccess && dataFormViewResponse) {
|
|
5585
|
-
sessionStorage.setItem("actionData", JSON.stringify(dataFormViewResponse));
|
|
5586
|
-
window.location.href = `/form/menu?model=${relation}`;
|
|
5587
|
-
}
|
|
5588
|
-
}, [isSuccess]);
|
|
5589
5548
|
(0, import_react15.useEffect)(() => {
|
|
5590
5549
|
if (domainMany2Many && !isLoadedData) {
|
|
5591
5550
|
setIsLoadedData(true);
|
|
5592
5551
|
}
|
|
5593
5552
|
}, [domainMany2Many]);
|
|
5594
5553
|
const handleCreateNewOnPage = async () => {
|
|
5595
|
-
try {
|
|
5596
|
-
refetch();
|
|
5597
|
-
} catch (error) {
|
|
5598
|
-
console.log(error);
|
|
5599
|
-
}
|
|
5600
5554
|
};
|
|
5601
5555
|
return {
|
|
5602
5556
|
handleCreateNewOnPage,
|
|
@@ -5604,9 +5558,13 @@ var many2manyFieldController = (props) => {
|
|
|
5604
5558
|
rows,
|
|
5605
5559
|
columns,
|
|
5606
5560
|
typeTable,
|
|
5607
|
-
|
|
5608
|
-
|
|
5609
|
-
isPlaceholderData
|
|
5561
|
+
isLoading,
|
|
5562
|
+
isFetched,
|
|
5563
|
+
isPlaceholderData,
|
|
5564
|
+
setPage,
|
|
5565
|
+
page,
|
|
5566
|
+
domain: domainMany2Many,
|
|
5567
|
+
setDomain: setDomainMany2Many
|
|
5610
5568
|
};
|
|
5611
5569
|
};
|
|
5612
5570
|
|
|
@@ -6874,7 +6832,7 @@ var binaryFieldController = (props) => {
|
|
|
6874
6832
|
};
|
|
6875
6833
|
|
|
6876
6834
|
// src/widget/advance/table/table-body/controller.ts
|
|
6877
|
-
var
|
|
6835
|
+
var import_store8 = require("@fctc/interface-logic/store");
|
|
6878
6836
|
var import_react21 = require("react");
|
|
6879
6837
|
var tableBodyController = (props) => {
|
|
6880
6838
|
const {
|
|
@@ -6887,7 +6845,7 @@ var tableBodyController = (props) => {
|
|
|
6887
6845
|
selectedRowKeysRef,
|
|
6888
6846
|
onClickRow
|
|
6889
6847
|
} = props;
|
|
6890
|
-
const appDispatch = (0,
|
|
6848
|
+
const appDispatch = (0, import_store8.useAppDispatch)();
|
|
6891
6849
|
const checked = (0, import_react21.useMemo)(() => {
|
|
6892
6850
|
if (!row?.id) return false;
|
|
6893
6851
|
if (selectedRowKeys?.includes(row.id)) {
|
|
@@ -6904,7 +6862,7 @@ var tableBodyController = (props) => {
|
|
|
6904
6862
|
}
|
|
6905
6863
|
const newSelectedRowKeys = selectedRowKeys?.includes(row.id) ? selectedRowKeys?.filter((key) => key !== row.id) : [...selectedRowKeys, row.id];
|
|
6906
6864
|
console.log("newSelectedRowKeys", newSelectedRowKeys);
|
|
6907
|
-
appDispatch((0,
|
|
6865
|
+
appDispatch((0, import_store8.setSelectedRowKeys)(newSelectedRowKeys));
|
|
6908
6866
|
};
|
|
6909
6867
|
const handleClickRow = (col, row2) => {
|
|
6910
6868
|
onClickRow(col, row2);
|
|
@@ -6917,13 +6875,13 @@ var tableBodyController = (props) => {
|
|
|
6917
6875
|
(id) => id !== row.id
|
|
6918
6876
|
);
|
|
6919
6877
|
selectedRowKeysRef.current = filtered;
|
|
6920
|
-
appDispatch((0,
|
|
6878
|
+
appDispatch((0, import_store8.setSelectedRowKeys)(filtered));
|
|
6921
6879
|
} else {
|
|
6922
6880
|
const unique = Array.from(
|
|
6923
6881
|
/* @__PURE__ */ new Set([...selectedRowKeysRef?.current, row?.id])
|
|
6924
6882
|
);
|
|
6925
6883
|
selectedRowKeysRef.current = unique;
|
|
6926
|
-
appDispatch((0,
|
|
6884
|
+
appDispatch((0, import_store8.setSelectedRowKeys)(unique));
|
|
6927
6885
|
}
|
|
6928
6886
|
}
|
|
6929
6887
|
}, [isAutoSelect]);
|
|
@@ -6941,35 +6899,35 @@ var tableBodyController = (props) => {
|
|
|
6941
6899
|
};
|
|
6942
6900
|
|
|
6943
6901
|
// src/widget/advance/table/table-head/controller.ts
|
|
6944
|
-
var
|
|
6902
|
+
var import_store9 = require("@fctc/interface-logic/store");
|
|
6945
6903
|
var tableHeadController = (props) => {
|
|
6946
6904
|
const { typeTable, rows, selectedRowKeysRef } = props;
|
|
6947
|
-
const appDispatch = (0,
|
|
6948
|
-
const { groupByDomain } = (0,
|
|
6905
|
+
const appDispatch = (0, import_store9.useAppDispatch)();
|
|
6906
|
+
const { groupByDomain } = (0, import_store9.useAppSelector)(import_store9.selectSearch);
|
|
6949
6907
|
const handleCheckBoxAll = (event) => {
|
|
6950
6908
|
if (event?.target?.checked && typeTable === "list") {
|
|
6951
6909
|
const allRowKeys = Array.isArray(rows) ? rows.map((record) => record?.id) : [];
|
|
6952
|
-
appDispatch((0,
|
|
6910
|
+
appDispatch((0, import_store9.setSelectedRowKeys)(allRowKeys));
|
|
6953
6911
|
} else if (event?.target?.checked && typeTable === "group") {
|
|
6954
6912
|
const rowsIDs = document.querySelectorAll("tr[data-row-id]");
|
|
6955
6913
|
const ids = Array.from(rowsIDs)?.map(
|
|
6956
6914
|
(row) => Number(row?.getAttribute("data-row-id"))
|
|
6957
6915
|
);
|
|
6958
6916
|
if (ids?.length > 0) {
|
|
6959
|
-
appDispatch((0,
|
|
6917
|
+
appDispatch((0, import_store9.setSelectedRowKeys)(ids));
|
|
6960
6918
|
} else {
|
|
6961
6919
|
const sum = countSum(
|
|
6962
6920
|
rows,
|
|
6963
6921
|
typeof groupByDomain === "object" ? groupByDomain?.contexts?.[0]?.group_by : void 0
|
|
6964
6922
|
);
|
|
6965
6923
|
const keys = Array.from({ length: sum }, (_) => void 0);
|
|
6966
|
-
appDispatch((0,
|
|
6924
|
+
appDispatch((0, import_store9.setSelectedRowKeys)(keys));
|
|
6967
6925
|
}
|
|
6968
6926
|
if (selectedRowKeysRef) {
|
|
6969
6927
|
selectedRowKeysRef.current = [];
|
|
6970
6928
|
}
|
|
6971
6929
|
} else {
|
|
6972
|
-
appDispatch((0,
|
|
6930
|
+
appDispatch((0, import_store9.setSelectedRowKeys)([]));
|
|
6973
6931
|
}
|
|
6974
6932
|
};
|
|
6975
6933
|
return {
|
|
@@ -6979,7 +6937,7 @@ var tableHeadController = (props) => {
|
|
|
6979
6937
|
|
|
6980
6938
|
// src/widget/advance/table/table-view/controller.ts
|
|
6981
6939
|
var import_react22 = require("react");
|
|
6982
|
-
var
|
|
6940
|
+
var import_store10 = require("@fctc/interface-logic/store");
|
|
6983
6941
|
var import_utils13 = require("@fctc/interface-logic/utils");
|
|
6984
6942
|
var tableController = ({ data }) => {
|
|
6985
6943
|
const [rows, setRows] = (0, import_react22.useState)(data.records || []);
|
|
@@ -7059,7 +7017,7 @@ var tableController = ({ data }) => {
|
|
|
7059
7017
|
// src/widget/advance/table/table-group/controller.ts
|
|
7060
7018
|
var import_react23 = require("react");
|
|
7061
7019
|
var import_hooks16 = require("@fctc/interface-logic/hooks");
|
|
7062
|
-
var
|
|
7020
|
+
var import_store11 = require("@fctc/interface-logic/store");
|
|
7063
7021
|
|
|
7064
7022
|
// src/environment.ts
|
|
7065
7023
|
var environment_exports = {};
|
|
@@ -7087,9 +7045,9 @@ var tableGroupController = (props) => {
|
|
|
7087
7045
|
selectedRowKeysRef
|
|
7088
7046
|
} = props;
|
|
7089
7047
|
const [pageGroup, setPageGroup] = (0, import_react23.useState)(0);
|
|
7090
|
-
const { groupByDomain, selectedTags } = (0,
|
|
7091
|
-
const { selectedRowKeys } = (0,
|
|
7092
|
-
const appDispatch = (0,
|
|
7048
|
+
const { groupByDomain, selectedTags } = (0, import_store11.useAppSelector)(import_store11.selectSearch);
|
|
7049
|
+
const { selectedRowKeys } = (0, import_store11.useAppSelector)(import_store11.selectList);
|
|
7050
|
+
const appDispatch = (0, import_store11.useAppDispatch)();
|
|
7093
7051
|
const { toDataJS } = (0, import_hooks16.useOdooDataTransform)();
|
|
7094
7052
|
const initVal = toDataJS(row, viewData, model);
|
|
7095
7053
|
const [isShowGroup, setIsShowGroup] = (0, import_react23.useState)(false);
|
|
@@ -7175,14 +7133,14 @@ var tableGroupController = (props) => {
|
|
|
7175
7133
|
const filteredIds = selectedRowKeys.filter(
|
|
7176
7134
|
(id) => !ids.includes(id)
|
|
7177
7135
|
);
|
|
7178
|
-
appDispatch((0,
|
|
7136
|
+
appDispatch((0, import_store11.setSelectedRowKeys)(filteredIds));
|
|
7179
7137
|
} else if (!isShowGroup && selectedRowKeys?.length > 0 && typeTableGroup === "list" && checkedAll && !allIdsNull && isQueryFetched) {
|
|
7180
7138
|
const clonedKeys = [...selectedRowKeys];
|
|
7181
|
-
appDispatch((0,
|
|
7182
|
-
setTimeout(() => appDispatch((0,
|
|
7139
|
+
appDispatch((0, import_store11.setSelectedRowKeys)([...clonedKeys, -1]));
|
|
7140
|
+
setTimeout(() => appDispatch((0, import_store11.setSelectedRowKeys)(clonedKeys)), 500);
|
|
7183
7141
|
} else if (isShowGroup && selectedRowKeys?.length > 0 && typeTableGroup === "list" && !checkedAll && !allIdsNull) {
|
|
7184
7142
|
const filteredKeys = selectedRowKeys.filter((id) => id > -1);
|
|
7185
|
-
appDispatch((0,
|
|
7143
|
+
appDispatch((0, import_store11.setSelectedRowKeys)(filteredKeys));
|
|
7186
7144
|
}
|
|
7187
7145
|
toggleShowGroup();
|
|
7188
7146
|
};
|
|
@@ -7191,8 +7149,8 @@ var tableGroupController = (props) => {
|
|
|
7191
7149
|
return;
|
|
7192
7150
|
}
|
|
7193
7151
|
const clonedKeys = [...selectedRowKeys];
|
|
7194
|
-
(0,
|
|
7195
|
-
setTimeout(() => (0,
|
|
7152
|
+
(0, import_store11.setSelectedRowKeys)([...clonedKeys, -1]);
|
|
7153
|
+
setTimeout(() => (0, import_store11.setSelectedRowKeys)(clonedKeys), 500);
|
|
7196
7154
|
}, [isQueryFetched]);
|
|
7197
7155
|
return {
|
|
7198
7156
|
handleExpandChildGroup,
|
package/dist/index.mjs
CHANGED
|
@@ -5276,6 +5276,7 @@ var many2oneFieldController = (props) => {
|
|
|
5276
5276
|
options: fieldOptions,
|
|
5277
5277
|
showDetail
|
|
5278
5278
|
} = props;
|
|
5279
|
+
const { env } = (0, provider_exports.useEnv)();
|
|
5279
5280
|
const [options, setOptions] = useState7([]);
|
|
5280
5281
|
const [inputValue, setInputValue] = useState7("");
|
|
5281
5282
|
const [debouncedInputValue] = useDebounce(inputValue, 1e3);
|
|
@@ -5285,13 +5286,12 @@ var many2oneFieldController = (props) => {
|
|
|
5285
5286
|
const [domainObject, setDomainObject] = useState7(null);
|
|
5286
5287
|
const actionData = sessionStorageUtils.getActionData();
|
|
5287
5288
|
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
|
-
...context
|
|
5294
|
+
...env?.context
|
|
5295
5295
|
};
|
|
5296
5296
|
const { useGetSelection: useGetSelection3 } = (0, provider_exports.useService)();
|
|
5297
5297
|
const data = {
|
|
@@ -5463,15 +5463,9 @@ 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";
|
|
5473
5466
|
import {
|
|
5474
5467
|
evalJSONContext as evalJSONContext4,
|
|
5468
|
+
evalJSONDomain as evalJSONDomain4,
|
|
5475
5469
|
formatSortingString as formatSortingString2
|
|
5476
5470
|
} from "@fctc/interface-logic/utils";
|
|
5477
5471
|
var many2manyFieldController = (props) => {
|
|
@@ -5479,45 +5473,41 @@ var many2manyFieldController = (props) => {
|
|
|
5479
5473
|
relation,
|
|
5480
5474
|
domain,
|
|
5481
5475
|
context,
|
|
5476
|
+
options,
|
|
5482
5477
|
tab,
|
|
5483
|
-
model,
|
|
5484
|
-
aid,
|
|
5485
5478
|
setSelectedRowKeys: setSelectedRowKeys4,
|
|
5486
|
-
fields,
|
|
5487
|
-
setFields,
|
|
5488
5479
|
groupByDomain,
|
|
5489
|
-
page,
|
|
5490
|
-
options,
|
|
5491
5480
|
sessionStorageUtils
|
|
5492
5481
|
} = 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);
|
|
5499
5482
|
const { env } = (0, provider_exports.useEnv)();
|
|
5500
5483
|
const { useGetView: useGetView2, useGetListData: useGetListData3, useGetFormView } = (0, provider_exports.useService)();
|
|
5484
|
+
const [order, setOrder] = useState8();
|
|
5485
|
+
const [isLoadedData, setIsLoadedData] = useState8(false);
|
|
5486
|
+
const [page, setPage] = useState8(0);
|
|
5487
|
+
const [domainMany2Many, setDomainMany2Many] = useState8(null);
|
|
5488
|
+
const [debouncedPage] = useDebounce(page, 500);
|
|
5489
|
+
const actionData = sessionStorageUtils.getActionData();
|
|
5490
|
+
const contextObject = { ...env.context, ...context };
|
|
5501
5491
|
const viewParams = {
|
|
5502
5492
|
model: relation,
|
|
5503
5493
|
views: [
|
|
5504
5494
|
[false, "list"],
|
|
5505
5495
|
[false, "search"]
|
|
5506
5496
|
],
|
|
5507
|
-
context
|
|
5497
|
+
context: contextObject
|
|
5508
5498
|
};
|
|
5509
5499
|
const { data: viewResponse } = useGetView2(viewParams, actionData);
|
|
5510
5500
|
const baseModel = useMemo10(
|
|
5511
5501
|
() => ({
|
|
5512
5502
|
name: String(relation),
|
|
5513
5503
|
view: viewResponse || {},
|
|
5514
|
-
actContext:
|
|
5504
|
+
actContext: contextObject,
|
|
5515
5505
|
fields: [
|
|
5516
5506
|
...Object.values(viewResponse?.views?.list?.fields ?? {}),
|
|
5517
5507
|
...tab?.fields ? tab.fields : []
|
|
5518
5508
|
]
|
|
5519
5509
|
}),
|
|
5520
|
-
[
|
|
5510
|
+
[relation, viewResponse]
|
|
5521
5511
|
);
|
|
5522
5512
|
const initModel = (0, hooks_exports.useModel)();
|
|
5523
5513
|
const modelInstance = useMemo10(() => {
|
|
@@ -5536,26 +5526,15 @@ var many2manyFieldController = (props) => {
|
|
|
5536
5526
|
const optionsObject = tab?.options ? evalJSONContext4(tab?.options) : (options ? evalJSONContext4(options) : {}) || {};
|
|
5537
5527
|
const fetchData = async () => {
|
|
5538
5528
|
try {
|
|
5539
|
-
|
|
5540
|
-
|
|
5541
|
-
|
|
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));
|
|
5529
|
+
const domainParse = typeof domain === "string" ? evalJSONDomain4(domain, contextObject) : Array.isArray(domain) ? domain : [];
|
|
5530
|
+
setDomainMany2Many(domainParse);
|
|
5531
|
+
setPage(0);
|
|
5553
5532
|
} catch (err) {
|
|
5554
5533
|
console.log(err);
|
|
5555
5534
|
}
|
|
5556
5535
|
};
|
|
5557
5536
|
const queryKey = [
|
|
5558
|
-
`view-${relation}
|
|
5537
|
+
`view-${relation}`,
|
|
5559
5538
|
specification,
|
|
5560
5539
|
domainMany2Many,
|
|
5561
5540
|
debouncedPage,
|
|
@@ -5568,7 +5547,7 @@ var many2manyFieldController = (props) => {
|
|
|
5568
5547
|
domain: domainMany2Many,
|
|
5569
5548
|
offset: debouncedPage * 10,
|
|
5570
5549
|
limit: 10,
|
|
5571
|
-
context,
|
|
5550
|
+
context: contextObject,
|
|
5572
5551
|
fields: groupByDomain?.fields,
|
|
5573
5552
|
groupby: [groupByDomain?.contexts[0]?.group_by],
|
|
5574
5553
|
sort: order ? order : default_order ? formatSortingString2(default_order) : ""
|
|
@@ -5576,8 +5555,8 @@ var many2manyFieldController = (props) => {
|
|
|
5576
5555
|
const enabled = isLoadedData && !!specification && !!relation && !!domainMany2Many && !!viewResponse;
|
|
5577
5556
|
const {
|
|
5578
5557
|
data: dataResponse,
|
|
5579
|
-
isLoading
|
|
5580
|
-
isFetched
|
|
5558
|
+
isLoading,
|
|
5559
|
+
isFetched,
|
|
5581
5560
|
isPlaceholderData
|
|
5582
5561
|
} = useGetListData3(data, queryKey, enabled);
|
|
5583
5562
|
useEffect11(() => {
|
|
@@ -5585,12 +5564,7 @@ var many2manyFieldController = (props) => {
|
|
|
5585
5564
|
fetchData();
|
|
5586
5565
|
}
|
|
5587
5566
|
return () => {
|
|
5588
|
-
|
|
5589
|
-
setFields((prevFields) => ({
|
|
5590
|
-
...prevFields,
|
|
5591
|
-
[`${aid}_${relation}_popupmany2many`]: null
|
|
5592
|
-
}));
|
|
5593
|
-
appDispatch(setPage(0));
|
|
5567
|
+
setPage(0);
|
|
5594
5568
|
setSelectedRowKeys4([]);
|
|
5595
5569
|
setDomainMany2Many(null);
|
|
5596
5570
|
setIsLoadedData(false);
|
|
@@ -5598,44 +5572,19 @@ var many2manyFieldController = (props) => {
|
|
|
5598
5572
|
}, [viewResponse]);
|
|
5599
5573
|
const { rows, columns, typeTable } = tableController({
|
|
5600
5574
|
data: {
|
|
5601
|
-
fields:
|
|
5575
|
+
fields: viewResponse?.views?.list?.fields,
|
|
5602
5576
|
records: dataResponse?.records ?? dataResponse?.groups,
|
|
5603
5577
|
dataModel: viewResponse?.models?.[String(relation)],
|
|
5604
|
-
context:
|
|
5578
|
+
context: contextObject,
|
|
5605
5579
|
typeTable: dataResponse?.groups ? "group" : "list"
|
|
5606
5580
|
}
|
|
5607
5581
|
});
|
|
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
|
|
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
5582
|
useEffect11(() => {
|
|
5629
5583
|
if (domainMany2Many && !isLoadedData) {
|
|
5630
5584
|
setIsLoadedData(true);
|
|
5631
5585
|
}
|
|
5632
5586
|
}, [domainMany2Many]);
|
|
5633
5587
|
const handleCreateNewOnPage = async () => {
|
|
5634
|
-
try {
|
|
5635
|
-
refetch();
|
|
5636
|
-
} catch (error) {
|
|
5637
|
-
console.log(error);
|
|
5638
|
-
}
|
|
5639
5588
|
};
|
|
5640
5589
|
return {
|
|
5641
5590
|
handleCreateNewOnPage,
|
|
@@ -5643,9 +5592,13 @@ var many2manyFieldController = (props) => {
|
|
|
5643
5592
|
rows,
|
|
5644
5593
|
columns,
|
|
5645
5594
|
typeTable,
|
|
5646
|
-
|
|
5647
|
-
|
|
5648
|
-
isPlaceholderData
|
|
5595
|
+
isLoading,
|
|
5596
|
+
isFetched,
|
|
5597
|
+
isPlaceholderData,
|
|
5598
|
+
setPage,
|
|
5599
|
+
page,
|
|
5600
|
+
domain: domainMany2Many,
|
|
5601
|
+
setDomain: setDomainMany2Many
|
|
5649
5602
|
};
|
|
5650
5603
|
};
|
|
5651
5604
|
|
|
@@ -5654,7 +5607,7 @@ import { useMemo as useMemo11 } from "react";
|
|
|
5654
5607
|
import { WIDGETAVATAR, WIDGETCOLOR } from "@fctc/interface-logic/constants";
|
|
5655
5608
|
import { getEnv as getEnv7 } from "@fctc/interface-logic/environment";
|
|
5656
5609
|
import { useGetSelection as useGetSelection2 } from "@fctc/interface-logic/hooks";
|
|
5657
|
-
import { evalJSONContext as evalJSONContext5, evalJSONDomain as
|
|
5610
|
+
import { evalJSONContext as evalJSONContext5, evalJSONDomain as evalJSONDomain5 } from "@fctc/interface-logic/utils";
|
|
5658
5611
|
var many2manyTagsController = (props) => {
|
|
5659
5612
|
const {
|
|
5660
5613
|
relation,
|
|
@@ -5668,7 +5621,7 @@ var many2manyTagsController = (props) => {
|
|
|
5668
5621
|
const env = getEnv7();
|
|
5669
5622
|
const addtionalFields = optionsFields ? evalJSONContext5(optionsFields) : null;
|
|
5670
5623
|
const domainObject = useMemo11(
|
|
5671
|
-
() =>
|
|
5624
|
+
() => evalJSONDomain5(domain, JSON.parse(JSON.stringify(formValues || {}))),
|
|
5672
5625
|
[domain, formValues]
|
|
5673
5626
|
);
|
|
5674
5627
|
const data = {
|
|
@@ -5711,7 +5664,7 @@ var many2manyTagsController = (props) => {
|
|
|
5711
5664
|
|
|
5712
5665
|
// src/widget/basic/status-bar-field/controller.ts
|
|
5713
5666
|
import { useState as useState9 } from "react";
|
|
5714
|
-
import { evalJSONDomain as
|
|
5667
|
+
import { evalJSONDomain as evalJSONDomain6 } from "@fctc/interface-logic/utils";
|
|
5715
5668
|
var durationController = (props) => {
|
|
5716
5669
|
const { relation, domain, formValues, name, id, model, onRefetch } = props;
|
|
5717
5670
|
const specification = {
|
|
@@ -5727,7 +5680,7 @@ var durationController = (props) => {
|
|
|
5727
5680
|
const listDataProps = {
|
|
5728
5681
|
model: relation,
|
|
5729
5682
|
specification,
|
|
5730
|
-
domain:
|
|
5683
|
+
domain: evalJSONDomain6(domain, JSON.parse(JSON.stringify(formValues))),
|
|
5731
5684
|
limit: 10,
|
|
5732
5685
|
offset: 0,
|
|
5733
5686
|
fields: "",
|
|
@@ -6913,7 +6866,7 @@ var binaryFieldController = (props) => {
|
|
|
6913
6866
|
};
|
|
6914
6867
|
|
|
6915
6868
|
// src/widget/advance/table/table-body/controller.ts
|
|
6916
|
-
import { useAppDispatch as
|
|
6869
|
+
import { useAppDispatch as useAppDispatch5, setSelectedRowKeys } from "@fctc/interface-logic/store";
|
|
6917
6870
|
import { useEffect as useEffect13, useMemo as useMemo12 } from "react";
|
|
6918
6871
|
var tableBodyController = (props) => {
|
|
6919
6872
|
const {
|
|
@@ -6926,7 +6879,7 @@ var tableBodyController = (props) => {
|
|
|
6926
6879
|
selectedRowKeysRef,
|
|
6927
6880
|
onClickRow
|
|
6928
6881
|
} = props;
|
|
6929
|
-
const appDispatch =
|
|
6882
|
+
const appDispatch = useAppDispatch5();
|
|
6930
6883
|
const checked = useMemo12(() => {
|
|
6931
6884
|
if (!row?.id) return false;
|
|
6932
6885
|
if (selectedRowKeys?.includes(row.id)) {
|
|
@@ -6981,14 +6934,14 @@ var tableBodyController = (props) => {
|
|
|
6981
6934
|
|
|
6982
6935
|
// src/widget/advance/table/table-head/controller.ts
|
|
6983
6936
|
import {
|
|
6984
|
-
useAppDispatch as
|
|
6937
|
+
useAppDispatch as useAppDispatch6,
|
|
6985
6938
|
useAppSelector as useAppSelector4,
|
|
6986
6939
|
selectSearch as selectSearch3,
|
|
6987
6940
|
setSelectedRowKeys as setSelectedRowKeys2
|
|
6988
6941
|
} from "@fctc/interface-logic/store";
|
|
6989
6942
|
var tableHeadController = (props) => {
|
|
6990
6943
|
const { typeTable, rows, selectedRowKeysRef } = props;
|
|
6991
|
-
const appDispatch =
|
|
6944
|
+
const appDispatch = useAppDispatch6();
|
|
6992
6945
|
const { groupByDomain } = useAppSelector4(selectSearch3);
|
|
6993
6946
|
const handleCheckBoxAll = (event) => {
|
|
6994
6947
|
if (event?.target?.checked && typeTable === "list") {
|
|
@@ -7114,7 +7067,7 @@ import {
|
|
|
7114
7067
|
useAppSelector as useAppSelector6,
|
|
7115
7068
|
selectSearch as selectSearch5,
|
|
7116
7069
|
selectList as selectList4,
|
|
7117
|
-
useAppDispatch as
|
|
7070
|
+
useAppDispatch as useAppDispatch7,
|
|
7118
7071
|
setSelectedRowKeys as setSelectedRowKeys3
|
|
7119
7072
|
} from "@fctc/interface-logic/store";
|
|
7120
7073
|
|
|
@@ -7147,7 +7100,7 @@ var tableGroupController = (props) => {
|
|
|
7147
7100
|
const [pageGroup, setPageGroup] = useState14(0);
|
|
7148
7101
|
const { groupByDomain, selectedTags } = useAppSelector6(selectSearch5);
|
|
7149
7102
|
const { selectedRowKeys } = useAppSelector6(selectList4);
|
|
7150
|
-
const appDispatch =
|
|
7103
|
+
const appDispatch = useAppDispatch7();
|
|
7151
7104
|
const { toDataJS } = useOdooDataTransform();
|
|
7152
7105
|
const initVal = toDataJS(row, viewData, model);
|
|
7153
7106
|
const [isShowGroup, setIsShowGroup] = useState14(false);
|
|
@@ -7288,7 +7241,7 @@ var import_moment2 = __toESM(require_moment());
|
|
|
7288
7241
|
import { SearchType } from "@fctc/interface-logic/constants";
|
|
7289
7242
|
import {
|
|
7290
7243
|
domainHelper as domainHelper2,
|
|
7291
|
-
evalJSONDomain as
|
|
7244
|
+
evalJSONDomain as evalJSONDomain7,
|
|
7292
7245
|
validateAndParseDate
|
|
7293
7246
|
} from "@fctc/interface-logic/utils";
|
|
7294
7247
|
import { useCallback as useCallback3, useEffect as useEffect16, useState as useState15 } from "react";
|
|
@@ -7305,7 +7258,7 @@ var searchController = ({
|
|
|
7305
7258
|
const [groupBy, setGroupBy] = useState15(null);
|
|
7306
7259
|
const [selectedTags, setSelectedTags] = useState15(null);
|
|
7307
7260
|
const [searchString, setSearchString] = useState15("");
|
|
7308
|
-
const domainAction = actionData?.domain ? Array.isArray(actionData?.domain) ? [...actionData?.domain] :
|
|
7261
|
+
const domainAction = actionData?.domain ? Array.isArray(actionData?.domain) ? [...actionData?.domain] : evalJSONDomain7(actionData?.domain, contextSearch) : [];
|
|
7309
7262
|
const aid = actionData?.id;
|
|
7310
7263
|
const model = actionData?.res_model;
|
|
7311
7264
|
const clearSearch = () => {
|