@fctc/widget-logic 3.7.9 → 3.8.0
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 +80 -27
- package/dist/index.mjs +80 -27
- package/dist/widget.d.mts +3 -1
- package/dist/widget.d.ts +3 -1
- package/dist/widget.js +80 -27
- package/dist/widget.mjs +80 -27
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -5320,6 +5320,7 @@ var statusDropdownController = (props) => {
|
|
|
5320
5320
|
|
|
5321
5321
|
// src/widget/basic/many2one-field/controller.ts
|
|
5322
5322
|
var import_react16 = require("react");
|
|
5323
|
+
var MANY2ONE_EXTERNAL = "many2one_external";
|
|
5323
5324
|
var many2oneFieldController = (props) => {
|
|
5324
5325
|
const {
|
|
5325
5326
|
methods,
|
|
@@ -5334,7 +5335,8 @@ var many2oneFieldController = (props) => {
|
|
|
5334
5335
|
showDetail,
|
|
5335
5336
|
service,
|
|
5336
5337
|
xNode,
|
|
5337
|
-
isForm
|
|
5338
|
+
isForm,
|
|
5339
|
+
widget
|
|
5338
5340
|
} = props;
|
|
5339
5341
|
const { env } = (0, provider_exports.useEnv)();
|
|
5340
5342
|
const { action, user } = useAppProvider();
|
|
@@ -5348,39 +5350,47 @@ var many2oneFieldController = (props) => {
|
|
|
5348
5350
|
const [domainObject, setDomainObject] = (0, import_react16.useState)(null);
|
|
5349
5351
|
const dataUser = user?.userProfile?.data;
|
|
5350
5352
|
const initValue = methods?.getValues(name);
|
|
5351
|
-
const optionsObject = (0, utils_exports.evalJSONContext)(fieldOptions) || {};
|
|
5352
5353
|
const contextObject = {
|
|
5353
|
-
...(0, utils_exports.evalJSONContext)(action?.context) || {},
|
|
5354
|
+
...(typeof action?.context === "string" ? (0, utils_exports.evalJSONContext)(action?.context) : action?.context) || {},
|
|
5354
5355
|
...fieldContext,
|
|
5355
5356
|
...env?.context
|
|
5356
5357
|
};
|
|
5358
|
+
const optionsObject = (0, utils_exports.evalJSONContext)(fieldOptions, {
|
|
5359
|
+
...formValues,
|
|
5360
|
+
...contextObject,
|
|
5361
|
+
context: contextObject,
|
|
5362
|
+
parent: { ...formValues }
|
|
5363
|
+
}) || {};
|
|
5357
5364
|
const fetchGetDetail = useGetDetail2();
|
|
5358
5365
|
const data = {
|
|
5359
|
-
model: relation,
|
|
5360
|
-
domain: domainObject,
|
|
5361
|
-
context:
|
|
5362
|
-
|
|
5366
|
+
model: widget === MANY2ONE_EXTERNAL ? optionsObject?.model : relation,
|
|
5367
|
+
domain: widget === MANY2ONE_EXTERNAL ? optionsObject?.domain : domainObject,
|
|
5368
|
+
context: {
|
|
5369
|
+
...contextObject,
|
|
5370
|
+
...optionsObject?.context
|
|
5371
|
+
},
|
|
5372
|
+
specification: widget === MANY2ONE_EXTERNAL ? optionsObject?.specification : {
|
|
5363
5373
|
id: {},
|
|
5364
5374
|
name: {},
|
|
5365
5375
|
display_name: {}
|
|
5366
5376
|
}
|
|
5367
5377
|
};
|
|
5368
|
-
const queryKey = [`data_${relation}`, domainObject];
|
|
5369
5378
|
const {
|
|
5370
5379
|
data: dataOfSelection,
|
|
5371
5380
|
refetch,
|
|
5372
5381
|
isFetching
|
|
5373
5382
|
} = useGetSelection3({
|
|
5374
5383
|
data,
|
|
5375
|
-
queryKey,
|
|
5384
|
+
queryKey: [`data_${relation}`, domainObject],
|
|
5376
5385
|
enabled: false,
|
|
5377
|
-
service,
|
|
5386
|
+
service: widget === MANY2ONE_EXTERNAL ? optionsObject?.service : service,
|
|
5378
5387
|
xNode
|
|
5379
5388
|
});
|
|
5380
5389
|
const selectOptions = (0, import_react16.useMemo)(() => {
|
|
5381
5390
|
return dataOfSelection?.records?.map((val) => ({
|
|
5382
5391
|
value: val?.id,
|
|
5383
|
-
label: val?.display_name || val?.name
|
|
5392
|
+
label: val?.display_name || val?.name,
|
|
5393
|
+
...widget === MANY2ONE_EXTERNAL ? val : {}
|
|
5384
5394
|
})) || [];
|
|
5385
5395
|
}, [dataOfSelection]);
|
|
5386
5396
|
(0, import_react16.useEffect)(() => {
|
|
@@ -5409,13 +5419,13 @@ var many2oneFieldController = (props) => {
|
|
|
5409
5419
|
methods?.setValue(name, null);
|
|
5410
5420
|
setTempSelectedOption(null);
|
|
5411
5421
|
} else if (propValue) {
|
|
5412
|
-
if (isForm && fieldOptions?.includes("service") && fieldOptions?.includes("type") && fieldOptions?.includes("model")) {
|
|
5422
|
+
if (isForm && fieldOptions?.includes("service") && fieldOptions?.includes("type") && fieldOptions?.includes("model") && !propValue?.display_name) {
|
|
5413
5423
|
const optionsMany2OneField = fieldOptions ? (0, utils_exports.evalJSONContext)(fieldOptions) : null;
|
|
5414
5424
|
fetchGetDetail.mutate(
|
|
5415
5425
|
{
|
|
5416
5426
|
model: optionsMany2OneField?.model,
|
|
5417
|
-
ids: propValue,
|
|
5418
|
-
specification: {
|
|
5427
|
+
ids: propValue?.id ?? propValue,
|
|
5428
|
+
specification: widget === MANY2ONE_EXTERNAL ? optionsObject?.specification : {
|
|
5419
5429
|
id: {},
|
|
5420
5430
|
display_name: {}
|
|
5421
5431
|
},
|
|
@@ -5424,11 +5434,23 @@ var many2oneFieldController = (props) => {
|
|
|
5424
5434
|
xNode: service == "wesap" && dataUser.x_node
|
|
5425
5435
|
},
|
|
5426
5436
|
{
|
|
5427
|
-
onSuccess: (
|
|
5437
|
+
onSuccess: (dataResponse) => {
|
|
5438
|
+
const detailData = dataResponse?.[0];
|
|
5428
5439
|
setTempSelectedOption({
|
|
5429
|
-
value: detailData?.
|
|
5430
|
-
label: detailData?.
|
|
5440
|
+
value: detailData?.id,
|
|
5441
|
+
label: detailData?.display_name
|
|
5431
5442
|
});
|
|
5443
|
+
if (widget === MANY2ONE_EXTERNAL && optionsObject?.values_included) {
|
|
5444
|
+
Object.keys(optionsObject?.values_included)?.forEach(
|
|
5445
|
+
(field) => {
|
|
5446
|
+
methods?.setValue(
|
|
5447
|
+
optionsObject?.values_included[field]?.name,
|
|
5448
|
+
detailData?.[field]
|
|
5449
|
+
);
|
|
5450
|
+
}
|
|
5451
|
+
);
|
|
5452
|
+
methods?.setValue(name, detailData);
|
|
5453
|
+
}
|
|
5432
5454
|
},
|
|
5433
5455
|
onError: (error) => {
|
|
5434
5456
|
console.log("error", error);
|
|
@@ -5466,18 +5488,29 @@ var many2oneFieldController = (props) => {
|
|
|
5466
5488
|
const newOption = listOptions?.find(
|
|
5467
5489
|
(option) => option.value === idRecord
|
|
5468
5490
|
);
|
|
5491
|
+
const newValue = widget === MANY2ONE_EXTERNAL && optionsObject?.field_name ? newOption?.[optionsObject?.field_name] : newOption.value;
|
|
5492
|
+
if (widget === MANY2ONE_EXTERNAL && optionsObject?.values_included) {
|
|
5493
|
+
Object.keys(optionsObject?.values_included)?.forEach((field) => {
|
|
5494
|
+
methods?.setValue(
|
|
5495
|
+
optionsObject?.values_included[field]?.name,
|
|
5496
|
+
newOption?.[field]
|
|
5497
|
+
);
|
|
5498
|
+
});
|
|
5499
|
+
}
|
|
5469
5500
|
if (newOption) {
|
|
5470
5501
|
methods.setValue(
|
|
5471
5502
|
name,
|
|
5472
5503
|
{
|
|
5473
|
-
|
|
5504
|
+
...newOption,
|
|
5505
|
+
id: newValue,
|
|
5474
5506
|
display_name: newOption?.label
|
|
5475
5507
|
},
|
|
5476
5508
|
{ shouldDirty: true }
|
|
5477
5509
|
);
|
|
5478
5510
|
setTempSelectedOption(newOption);
|
|
5479
5511
|
onChange && onChange(String(name), {
|
|
5480
|
-
|
|
5512
|
+
...newOption,
|
|
5513
|
+
id: newValue,
|
|
5481
5514
|
display_name: newOption?.label
|
|
5482
5515
|
});
|
|
5483
5516
|
methods.trigger(name);
|
|
@@ -5496,14 +5529,27 @@ var many2oneFieldController = (props) => {
|
|
|
5496
5529
|
methods.trigger(name);
|
|
5497
5530
|
return;
|
|
5498
5531
|
}
|
|
5499
|
-
const newValue = selectedOption.value;
|
|
5500
|
-
|
|
5532
|
+
const newValue = widget === MANY2ONE_EXTERNAL && optionsObject?.field_name ? selectedOption?.[optionsObject?.field_name] : selectedOption.value;
|
|
5533
|
+
if (widget === MANY2ONE_EXTERNAL && optionsObject?.values_included) {
|
|
5534
|
+
Object.keys(optionsObject?.values_included)?.forEach((field) => {
|
|
5535
|
+
methods?.setValue(
|
|
5536
|
+
optionsObject?.values_included[field]?.name,
|
|
5537
|
+
selectedOption?.[field]
|
|
5538
|
+
);
|
|
5539
|
+
});
|
|
5540
|
+
}
|
|
5541
|
+
methods?.setValue(
|
|
5501
5542
|
name,
|
|
5502
|
-
{
|
|
5543
|
+
{
|
|
5544
|
+
...selectedOption,
|
|
5545
|
+
id: newValue,
|
|
5546
|
+
display_name: selectedOption?.label
|
|
5547
|
+
},
|
|
5503
5548
|
{ shouldDirty: true }
|
|
5504
5549
|
);
|
|
5505
5550
|
setTempSelectedOption(selectedOption);
|
|
5506
5551
|
onChange && onChange(String(name), {
|
|
5552
|
+
...selectedOption,
|
|
5507
5553
|
id: newValue,
|
|
5508
5554
|
display_name: selectedOption.label
|
|
5509
5555
|
});
|
|
@@ -5522,14 +5568,19 @@ var many2oneFieldController = (props) => {
|
|
|
5522
5568
|
domainModal,
|
|
5523
5569
|
setInputValue,
|
|
5524
5570
|
allowShowDetail,
|
|
5525
|
-
contextObject
|
|
5571
|
+
contextObject: {
|
|
5572
|
+
...contextObject,
|
|
5573
|
+
...optionsObject?.context
|
|
5574
|
+
},
|
|
5526
5575
|
tempSelectedOption,
|
|
5527
5576
|
listOptions,
|
|
5528
5577
|
fetchMoreOptions,
|
|
5529
|
-
domainObject,
|
|
5578
|
+
domainObject: widget === MANY2ONE_EXTERNAL ? optionsObject?.domain : domainObject,
|
|
5530
5579
|
setIsShowModalMany2Many,
|
|
5531
5580
|
setDomainObject,
|
|
5532
|
-
options:
|
|
5581
|
+
options: optionsObject,
|
|
5582
|
+
relation: widget === MANY2ONE_EXTERNAL ? optionsObject?.model : relation,
|
|
5583
|
+
service: widget === MANY2ONE_EXTERNAL ? optionsObject?.service : service
|
|
5533
5584
|
};
|
|
5534
5585
|
};
|
|
5535
5586
|
|
|
@@ -5588,7 +5639,9 @@ var many2manyFieldController = (props) => {
|
|
|
5588
5639
|
[false, "list"],
|
|
5589
5640
|
[false, "search"]
|
|
5590
5641
|
],
|
|
5591
|
-
context: contextObject
|
|
5642
|
+
context: contextObject,
|
|
5643
|
+
service,
|
|
5644
|
+
xNode: service == "wesap" && dataUser?.x_node
|
|
5592
5645
|
};
|
|
5593
5646
|
const { data: viewResponse } = useGetView2({
|
|
5594
5647
|
viewParams,
|
|
@@ -5611,7 +5664,7 @@ var many2manyFieldController = (props) => {
|
|
|
5611
5664
|
model: relation ?? "",
|
|
5612
5665
|
viewData: viewResponse,
|
|
5613
5666
|
service,
|
|
5614
|
-
xNode: service == "wesap" && dataUser
|
|
5667
|
+
xNode: service == "wesap" && dataUser?.x_node
|
|
5615
5668
|
});
|
|
5616
5669
|
const {
|
|
5617
5670
|
selectedRowKeys,
|
package/dist/index.mjs
CHANGED
|
@@ -5400,6 +5400,7 @@ var statusDropdownController = (props) => {
|
|
|
5400
5400
|
|
|
5401
5401
|
// src/widget/basic/many2one-field/controller.ts
|
|
5402
5402
|
import { useCallback as useCallback4, useEffect as useEffect10, useMemo as useMemo8, useState as useState7 } from "react";
|
|
5403
|
+
var MANY2ONE_EXTERNAL = "many2one_external";
|
|
5403
5404
|
var many2oneFieldController = (props) => {
|
|
5404
5405
|
const {
|
|
5405
5406
|
methods,
|
|
@@ -5414,7 +5415,8 @@ var many2oneFieldController = (props) => {
|
|
|
5414
5415
|
showDetail,
|
|
5415
5416
|
service,
|
|
5416
5417
|
xNode,
|
|
5417
|
-
isForm
|
|
5418
|
+
isForm,
|
|
5419
|
+
widget
|
|
5418
5420
|
} = props;
|
|
5419
5421
|
const { env } = (0, provider_exports.useEnv)();
|
|
5420
5422
|
const { action, user } = useAppProvider();
|
|
@@ -5428,39 +5430,47 @@ var many2oneFieldController = (props) => {
|
|
|
5428
5430
|
const [domainObject, setDomainObject] = useState7(null);
|
|
5429
5431
|
const dataUser = user?.userProfile?.data;
|
|
5430
5432
|
const initValue = methods?.getValues(name);
|
|
5431
|
-
const optionsObject = (0, utils_exports.evalJSONContext)(fieldOptions) || {};
|
|
5432
5433
|
const contextObject = {
|
|
5433
|
-
...(0, utils_exports.evalJSONContext)(action?.context) || {},
|
|
5434
|
+
...(typeof action?.context === "string" ? (0, utils_exports.evalJSONContext)(action?.context) : action?.context) || {},
|
|
5434
5435
|
...fieldContext,
|
|
5435
5436
|
...env?.context
|
|
5436
5437
|
};
|
|
5438
|
+
const optionsObject = (0, utils_exports.evalJSONContext)(fieldOptions, {
|
|
5439
|
+
...formValues,
|
|
5440
|
+
...contextObject,
|
|
5441
|
+
context: contextObject,
|
|
5442
|
+
parent: { ...formValues }
|
|
5443
|
+
}) || {};
|
|
5437
5444
|
const fetchGetDetail = useGetDetail2();
|
|
5438
5445
|
const data = {
|
|
5439
|
-
model: relation,
|
|
5440
|
-
domain: domainObject,
|
|
5441
|
-
context:
|
|
5442
|
-
|
|
5446
|
+
model: widget === MANY2ONE_EXTERNAL ? optionsObject?.model : relation,
|
|
5447
|
+
domain: widget === MANY2ONE_EXTERNAL ? optionsObject?.domain : domainObject,
|
|
5448
|
+
context: {
|
|
5449
|
+
...contextObject,
|
|
5450
|
+
...optionsObject?.context
|
|
5451
|
+
},
|
|
5452
|
+
specification: widget === MANY2ONE_EXTERNAL ? optionsObject?.specification : {
|
|
5443
5453
|
id: {},
|
|
5444
5454
|
name: {},
|
|
5445
5455
|
display_name: {}
|
|
5446
5456
|
}
|
|
5447
5457
|
};
|
|
5448
|
-
const queryKey = [`data_${relation}`, domainObject];
|
|
5449
5458
|
const {
|
|
5450
5459
|
data: dataOfSelection,
|
|
5451
5460
|
refetch,
|
|
5452
5461
|
isFetching
|
|
5453
5462
|
} = useGetSelection3({
|
|
5454
5463
|
data,
|
|
5455
|
-
queryKey,
|
|
5464
|
+
queryKey: [`data_${relation}`, domainObject],
|
|
5456
5465
|
enabled: false,
|
|
5457
|
-
service,
|
|
5466
|
+
service: widget === MANY2ONE_EXTERNAL ? optionsObject?.service : service,
|
|
5458
5467
|
xNode
|
|
5459
5468
|
});
|
|
5460
5469
|
const selectOptions = useMemo8(() => {
|
|
5461
5470
|
return dataOfSelection?.records?.map((val) => ({
|
|
5462
5471
|
value: val?.id,
|
|
5463
|
-
label: val?.display_name || val?.name
|
|
5472
|
+
label: val?.display_name || val?.name,
|
|
5473
|
+
...widget === MANY2ONE_EXTERNAL ? val : {}
|
|
5464
5474
|
})) || [];
|
|
5465
5475
|
}, [dataOfSelection]);
|
|
5466
5476
|
useEffect10(() => {
|
|
@@ -5489,13 +5499,13 @@ var many2oneFieldController = (props) => {
|
|
|
5489
5499
|
methods?.setValue(name, null);
|
|
5490
5500
|
setTempSelectedOption(null);
|
|
5491
5501
|
} else if (propValue) {
|
|
5492
|
-
if (isForm && fieldOptions?.includes("service") && fieldOptions?.includes("type") && fieldOptions?.includes("model")) {
|
|
5502
|
+
if (isForm && fieldOptions?.includes("service") && fieldOptions?.includes("type") && fieldOptions?.includes("model") && !propValue?.display_name) {
|
|
5493
5503
|
const optionsMany2OneField = fieldOptions ? (0, utils_exports.evalJSONContext)(fieldOptions) : null;
|
|
5494
5504
|
fetchGetDetail.mutate(
|
|
5495
5505
|
{
|
|
5496
5506
|
model: optionsMany2OneField?.model,
|
|
5497
|
-
ids: propValue,
|
|
5498
|
-
specification: {
|
|
5507
|
+
ids: propValue?.id ?? propValue,
|
|
5508
|
+
specification: widget === MANY2ONE_EXTERNAL ? optionsObject?.specification : {
|
|
5499
5509
|
id: {},
|
|
5500
5510
|
display_name: {}
|
|
5501
5511
|
},
|
|
@@ -5504,11 +5514,23 @@ var many2oneFieldController = (props) => {
|
|
|
5504
5514
|
xNode: service == "wesap" && dataUser.x_node
|
|
5505
5515
|
},
|
|
5506
5516
|
{
|
|
5507
|
-
onSuccess: (
|
|
5517
|
+
onSuccess: (dataResponse) => {
|
|
5518
|
+
const detailData = dataResponse?.[0];
|
|
5508
5519
|
setTempSelectedOption({
|
|
5509
|
-
value: detailData?.
|
|
5510
|
-
label: detailData?.
|
|
5520
|
+
value: detailData?.id,
|
|
5521
|
+
label: detailData?.display_name
|
|
5511
5522
|
});
|
|
5523
|
+
if (widget === MANY2ONE_EXTERNAL && optionsObject?.values_included) {
|
|
5524
|
+
Object.keys(optionsObject?.values_included)?.forEach(
|
|
5525
|
+
(field) => {
|
|
5526
|
+
methods?.setValue(
|
|
5527
|
+
optionsObject?.values_included[field]?.name,
|
|
5528
|
+
detailData?.[field]
|
|
5529
|
+
);
|
|
5530
|
+
}
|
|
5531
|
+
);
|
|
5532
|
+
methods?.setValue(name, detailData);
|
|
5533
|
+
}
|
|
5512
5534
|
},
|
|
5513
5535
|
onError: (error) => {
|
|
5514
5536
|
console.log("error", error);
|
|
@@ -5546,18 +5568,29 @@ var many2oneFieldController = (props) => {
|
|
|
5546
5568
|
const newOption = listOptions?.find(
|
|
5547
5569
|
(option) => option.value === idRecord
|
|
5548
5570
|
);
|
|
5571
|
+
const newValue = widget === MANY2ONE_EXTERNAL && optionsObject?.field_name ? newOption?.[optionsObject?.field_name] : newOption.value;
|
|
5572
|
+
if (widget === MANY2ONE_EXTERNAL && optionsObject?.values_included) {
|
|
5573
|
+
Object.keys(optionsObject?.values_included)?.forEach((field) => {
|
|
5574
|
+
methods?.setValue(
|
|
5575
|
+
optionsObject?.values_included[field]?.name,
|
|
5576
|
+
newOption?.[field]
|
|
5577
|
+
);
|
|
5578
|
+
});
|
|
5579
|
+
}
|
|
5549
5580
|
if (newOption) {
|
|
5550
5581
|
methods.setValue(
|
|
5551
5582
|
name,
|
|
5552
5583
|
{
|
|
5553
|
-
|
|
5584
|
+
...newOption,
|
|
5585
|
+
id: newValue,
|
|
5554
5586
|
display_name: newOption?.label
|
|
5555
5587
|
},
|
|
5556
5588
|
{ shouldDirty: true }
|
|
5557
5589
|
);
|
|
5558
5590
|
setTempSelectedOption(newOption);
|
|
5559
5591
|
onChange && onChange(String(name), {
|
|
5560
|
-
|
|
5592
|
+
...newOption,
|
|
5593
|
+
id: newValue,
|
|
5561
5594
|
display_name: newOption?.label
|
|
5562
5595
|
});
|
|
5563
5596
|
methods.trigger(name);
|
|
@@ -5576,14 +5609,27 @@ var many2oneFieldController = (props) => {
|
|
|
5576
5609
|
methods.trigger(name);
|
|
5577
5610
|
return;
|
|
5578
5611
|
}
|
|
5579
|
-
const newValue = selectedOption.value;
|
|
5580
|
-
|
|
5612
|
+
const newValue = widget === MANY2ONE_EXTERNAL && optionsObject?.field_name ? selectedOption?.[optionsObject?.field_name] : selectedOption.value;
|
|
5613
|
+
if (widget === MANY2ONE_EXTERNAL && optionsObject?.values_included) {
|
|
5614
|
+
Object.keys(optionsObject?.values_included)?.forEach((field) => {
|
|
5615
|
+
methods?.setValue(
|
|
5616
|
+
optionsObject?.values_included[field]?.name,
|
|
5617
|
+
selectedOption?.[field]
|
|
5618
|
+
);
|
|
5619
|
+
});
|
|
5620
|
+
}
|
|
5621
|
+
methods?.setValue(
|
|
5581
5622
|
name,
|
|
5582
|
-
{
|
|
5623
|
+
{
|
|
5624
|
+
...selectedOption,
|
|
5625
|
+
id: newValue,
|
|
5626
|
+
display_name: selectedOption?.label
|
|
5627
|
+
},
|
|
5583
5628
|
{ shouldDirty: true }
|
|
5584
5629
|
);
|
|
5585
5630
|
setTempSelectedOption(selectedOption);
|
|
5586
5631
|
onChange && onChange(String(name), {
|
|
5632
|
+
...selectedOption,
|
|
5587
5633
|
id: newValue,
|
|
5588
5634
|
display_name: selectedOption.label
|
|
5589
5635
|
});
|
|
@@ -5602,14 +5648,19 @@ var many2oneFieldController = (props) => {
|
|
|
5602
5648
|
domainModal,
|
|
5603
5649
|
setInputValue,
|
|
5604
5650
|
allowShowDetail,
|
|
5605
|
-
contextObject
|
|
5651
|
+
contextObject: {
|
|
5652
|
+
...contextObject,
|
|
5653
|
+
...optionsObject?.context
|
|
5654
|
+
},
|
|
5606
5655
|
tempSelectedOption,
|
|
5607
5656
|
listOptions,
|
|
5608
5657
|
fetchMoreOptions,
|
|
5609
|
-
domainObject,
|
|
5658
|
+
domainObject: widget === MANY2ONE_EXTERNAL ? optionsObject?.domain : domainObject,
|
|
5610
5659
|
setIsShowModalMany2Many,
|
|
5611
5660
|
setDomainObject,
|
|
5612
|
-
options:
|
|
5661
|
+
options: optionsObject,
|
|
5662
|
+
relation: widget === MANY2ONE_EXTERNAL ? optionsObject?.model : relation,
|
|
5663
|
+
service: widget === MANY2ONE_EXTERNAL ? optionsObject?.service : service
|
|
5613
5664
|
};
|
|
5614
5665
|
};
|
|
5615
5666
|
|
|
@@ -5668,7 +5719,9 @@ var many2manyFieldController = (props) => {
|
|
|
5668
5719
|
[false, "list"],
|
|
5669
5720
|
[false, "search"]
|
|
5670
5721
|
],
|
|
5671
|
-
context: contextObject
|
|
5722
|
+
context: contextObject,
|
|
5723
|
+
service,
|
|
5724
|
+
xNode: service == "wesap" && dataUser?.x_node
|
|
5672
5725
|
};
|
|
5673
5726
|
const { data: viewResponse } = useGetView2({
|
|
5674
5727
|
viewParams,
|
|
@@ -5691,7 +5744,7 @@ var many2manyFieldController = (props) => {
|
|
|
5691
5744
|
model: relation ?? "",
|
|
5692
5745
|
viewData: viewResponse,
|
|
5693
5746
|
service,
|
|
5694
|
-
xNode: service == "wesap" && dataUser
|
|
5747
|
+
xNode: service == "wesap" && dataUser?.x_node
|
|
5695
5748
|
});
|
|
5696
5749
|
const {
|
|
5697
5750
|
selectedRowKeys,
|
package/dist/widget.d.mts
CHANGED
|
@@ -46,10 +46,12 @@ declare const many2oneFieldController: (props: IMany2OneProps) => {
|
|
|
46
46
|
tempSelectedOption: any;
|
|
47
47
|
listOptions: never[];
|
|
48
48
|
fetchMoreOptions: () => void;
|
|
49
|
-
domainObject:
|
|
49
|
+
domainObject: any;
|
|
50
50
|
setIsShowModalMany2Many: react.Dispatch<react.SetStateAction<boolean>>;
|
|
51
51
|
setDomainObject: react.Dispatch<react.SetStateAction<null>>;
|
|
52
52
|
options: any;
|
|
53
|
+
relation: any;
|
|
54
|
+
service: any;
|
|
53
55
|
};
|
|
54
56
|
|
|
55
57
|
type Option = {
|
package/dist/widget.d.ts
CHANGED
|
@@ -46,10 +46,12 @@ declare const many2oneFieldController: (props: IMany2OneProps) => {
|
|
|
46
46
|
tempSelectedOption: any;
|
|
47
47
|
listOptions: never[];
|
|
48
48
|
fetchMoreOptions: () => void;
|
|
49
|
-
domainObject:
|
|
49
|
+
domainObject: any;
|
|
50
50
|
setIsShowModalMany2Many: react.Dispatch<react.SetStateAction<boolean>>;
|
|
51
51
|
setDomainObject: react.Dispatch<react.SetStateAction<null>>;
|
|
52
52
|
options: any;
|
|
53
|
+
relation: any;
|
|
54
|
+
service: any;
|
|
53
55
|
};
|
|
54
56
|
|
|
55
57
|
type Option = {
|
package/dist/widget.js
CHANGED
|
@@ -4557,6 +4557,7 @@ var useListData = ({
|
|
|
4557
4557
|
};
|
|
4558
4558
|
|
|
4559
4559
|
// src/widget/basic/many2one-field/controller.ts
|
|
4560
|
+
var MANY2ONE_EXTERNAL = "many2one_external";
|
|
4560
4561
|
var many2oneFieldController = (props) => {
|
|
4561
4562
|
const {
|
|
4562
4563
|
methods,
|
|
@@ -4571,7 +4572,8 @@ var many2oneFieldController = (props) => {
|
|
|
4571
4572
|
showDetail,
|
|
4572
4573
|
service,
|
|
4573
4574
|
xNode,
|
|
4574
|
-
isForm
|
|
4575
|
+
isForm,
|
|
4576
|
+
widget
|
|
4575
4577
|
} = props;
|
|
4576
4578
|
const { env } = (0, provider_exports.useEnv)();
|
|
4577
4579
|
const { action, user } = useAppProvider();
|
|
@@ -4585,39 +4587,47 @@ var many2oneFieldController = (props) => {
|
|
|
4585
4587
|
const [domainObject, setDomainObject] = (0, import_react16.useState)(null);
|
|
4586
4588
|
const dataUser = user?.userProfile?.data;
|
|
4587
4589
|
const initValue = methods?.getValues(name);
|
|
4588
|
-
const optionsObject = (0, utils_exports.evalJSONContext)(fieldOptions) || {};
|
|
4589
4590
|
const contextObject = {
|
|
4590
|
-
...(0, utils_exports.evalJSONContext)(action?.context) || {},
|
|
4591
|
+
...(typeof action?.context === "string" ? (0, utils_exports.evalJSONContext)(action?.context) : action?.context) || {},
|
|
4591
4592
|
...fieldContext,
|
|
4592
4593
|
...env?.context
|
|
4593
4594
|
};
|
|
4595
|
+
const optionsObject = (0, utils_exports.evalJSONContext)(fieldOptions, {
|
|
4596
|
+
...formValues,
|
|
4597
|
+
...contextObject,
|
|
4598
|
+
context: contextObject,
|
|
4599
|
+
parent: { ...formValues }
|
|
4600
|
+
}) || {};
|
|
4594
4601
|
const fetchGetDetail = useGetDetail2();
|
|
4595
4602
|
const data = {
|
|
4596
|
-
model: relation,
|
|
4597
|
-
domain: domainObject,
|
|
4598
|
-
context:
|
|
4599
|
-
|
|
4603
|
+
model: widget === MANY2ONE_EXTERNAL ? optionsObject?.model : relation,
|
|
4604
|
+
domain: widget === MANY2ONE_EXTERNAL ? optionsObject?.domain : domainObject,
|
|
4605
|
+
context: {
|
|
4606
|
+
...contextObject,
|
|
4607
|
+
...optionsObject?.context
|
|
4608
|
+
},
|
|
4609
|
+
specification: widget === MANY2ONE_EXTERNAL ? optionsObject?.specification : {
|
|
4600
4610
|
id: {},
|
|
4601
4611
|
name: {},
|
|
4602
4612
|
display_name: {}
|
|
4603
4613
|
}
|
|
4604
4614
|
};
|
|
4605
|
-
const queryKey = [`data_${relation}`, domainObject];
|
|
4606
4615
|
const {
|
|
4607
4616
|
data: dataOfSelection,
|
|
4608
4617
|
refetch,
|
|
4609
4618
|
isFetching
|
|
4610
4619
|
} = useGetSelection3({
|
|
4611
4620
|
data,
|
|
4612
|
-
queryKey,
|
|
4621
|
+
queryKey: [`data_${relation}`, domainObject],
|
|
4613
4622
|
enabled: false,
|
|
4614
|
-
service,
|
|
4623
|
+
service: widget === MANY2ONE_EXTERNAL ? optionsObject?.service : service,
|
|
4615
4624
|
xNode
|
|
4616
4625
|
});
|
|
4617
4626
|
const selectOptions = (0, import_react16.useMemo)(() => {
|
|
4618
4627
|
return dataOfSelection?.records?.map((val) => ({
|
|
4619
4628
|
value: val?.id,
|
|
4620
|
-
label: val?.display_name || val?.name
|
|
4629
|
+
label: val?.display_name || val?.name,
|
|
4630
|
+
...widget === MANY2ONE_EXTERNAL ? val : {}
|
|
4621
4631
|
})) || [];
|
|
4622
4632
|
}, [dataOfSelection]);
|
|
4623
4633
|
(0, import_react16.useEffect)(() => {
|
|
@@ -4646,13 +4656,13 @@ var many2oneFieldController = (props) => {
|
|
|
4646
4656
|
methods?.setValue(name, null);
|
|
4647
4657
|
setTempSelectedOption(null);
|
|
4648
4658
|
} else if (propValue) {
|
|
4649
|
-
if (isForm && fieldOptions?.includes("service") && fieldOptions?.includes("type") && fieldOptions?.includes("model")) {
|
|
4659
|
+
if (isForm && fieldOptions?.includes("service") && fieldOptions?.includes("type") && fieldOptions?.includes("model") && !propValue?.display_name) {
|
|
4650
4660
|
const optionsMany2OneField = fieldOptions ? (0, utils_exports.evalJSONContext)(fieldOptions) : null;
|
|
4651
4661
|
fetchGetDetail.mutate(
|
|
4652
4662
|
{
|
|
4653
4663
|
model: optionsMany2OneField?.model,
|
|
4654
|
-
ids: propValue,
|
|
4655
|
-
specification: {
|
|
4664
|
+
ids: propValue?.id ?? propValue,
|
|
4665
|
+
specification: widget === MANY2ONE_EXTERNAL ? optionsObject?.specification : {
|
|
4656
4666
|
id: {},
|
|
4657
4667
|
display_name: {}
|
|
4658
4668
|
},
|
|
@@ -4661,11 +4671,23 @@ var many2oneFieldController = (props) => {
|
|
|
4661
4671
|
xNode: service == "wesap" && dataUser.x_node
|
|
4662
4672
|
},
|
|
4663
4673
|
{
|
|
4664
|
-
onSuccess: (
|
|
4674
|
+
onSuccess: (dataResponse) => {
|
|
4675
|
+
const detailData = dataResponse?.[0];
|
|
4665
4676
|
setTempSelectedOption({
|
|
4666
|
-
value: detailData?.
|
|
4667
|
-
label: detailData?.
|
|
4677
|
+
value: detailData?.id,
|
|
4678
|
+
label: detailData?.display_name
|
|
4668
4679
|
});
|
|
4680
|
+
if (widget === MANY2ONE_EXTERNAL && optionsObject?.values_included) {
|
|
4681
|
+
Object.keys(optionsObject?.values_included)?.forEach(
|
|
4682
|
+
(field) => {
|
|
4683
|
+
methods?.setValue(
|
|
4684
|
+
optionsObject?.values_included[field]?.name,
|
|
4685
|
+
detailData?.[field]
|
|
4686
|
+
);
|
|
4687
|
+
}
|
|
4688
|
+
);
|
|
4689
|
+
methods?.setValue(name, detailData);
|
|
4690
|
+
}
|
|
4669
4691
|
},
|
|
4670
4692
|
onError: (error) => {
|
|
4671
4693
|
console.log("error", error);
|
|
@@ -4703,18 +4725,29 @@ var many2oneFieldController = (props) => {
|
|
|
4703
4725
|
const newOption = listOptions?.find(
|
|
4704
4726
|
(option) => option.value === idRecord
|
|
4705
4727
|
);
|
|
4728
|
+
const newValue = widget === MANY2ONE_EXTERNAL && optionsObject?.field_name ? newOption?.[optionsObject?.field_name] : newOption.value;
|
|
4729
|
+
if (widget === MANY2ONE_EXTERNAL && optionsObject?.values_included) {
|
|
4730
|
+
Object.keys(optionsObject?.values_included)?.forEach((field) => {
|
|
4731
|
+
methods?.setValue(
|
|
4732
|
+
optionsObject?.values_included[field]?.name,
|
|
4733
|
+
newOption?.[field]
|
|
4734
|
+
);
|
|
4735
|
+
});
|
|
4736
|
+
}
|
|
4706
4737
|
if (newOption) {
|
|
4707
4738
|
methods.setValue(
|
|
4708
4739
|
name,
|
|
4709
4740
|
{
|
|
4710
|
-
|
|
4741
|
+
...newOption,
|
|
4742
|
+
id: newValue,
|
|
4711
4743
|
display_name: newOption?.label
|
|
4712
4744
|
},
|
|
4713
4745
|
{ shouldDirty: true }
|
|
4714
4746
|
);
|
|
4715
4747
|
setTempSelectedOption(newOption);
|
|
4716
4748
|
onChange && onChange(String(name), {
|
|
4717
|
-
|
|
4749
|
+
...newOption,
|
|
4750
|
+
id: newValue,
|
|
4718
4751
|
display_name: newOption?.label
|
|
4719
4752
|
});
|
|
4720
4753
|
methods.trigger(name);
|
|
@@ -4733,14 +4766,27 @@ var many2oneFieldController = (props) => {
|
|
|
4733
4766
|
methods.trigger(name);
|
|
4734
4767
|
return;
|
|
4735
4768
|
}
|
|
4736
|
-
const newValue = selectedOption.value;
|
|
4737
|
-
|
|
4769
|
+
const newValue = widget === MANY2ONE_EXTERNAL && optionsObject?.field_name ? selectedOption?.[optionsObject?.field_name] : selectedOption.value;
|
|
4770
|
+
if (widget === MANY2ONE_EXTERNAL && optionsObject?.values_included) {
|
|
4771
|
+
Object.keys(optionsObject?.values_included)?.forEach((field) => {
|
|
4772
|
+
methods?.setValue(
|
|
4773
|
+
optionsObject?.values_included[field]?.name,
|
|
4774
|
+
selectedOption?.[field]
|
|
4775
|
+
);
|
|
4776
|
+
});
|
|
4777
|
+
}
|
|
4778
|
+
methods?.setValue(
|
|
4738
4779
|
name,
|
|
4739
|
-
{
|
|
4780
|
+
{
|
|
4781
|
+
...selectedOption,
|
|
4782
|
+
id: newValue,
|
|
4783
|
+
display_name: selectedOption?.label
|
|
4784
|
+
},
|
|
4740
4785
|
{ shouldDirty: true }
|
|
4741
4786
|
);
|
|
4742
4787
|
setTempSelectedOption(selectedOption);
|
|
4743
4788
|
onChange && onChange(String(name), {
|
|
4789
|
+
...selectedOption,
|
|
4744
4790
|
id: newValue,
|
|
4745
4791
|
display_name: selectedOption.label
|
|
4746
4792
|
});
|
|
@@ -4759,14 +4805,19 @@ var many2oneFieldController = (props) => {
|
|
|
4759
4805
|
domainModal,
|
|
4760
4806
|
setInputValue,
|
|
4761
4807
|
allowShowDetail,
|
|
4762
|
-
contextObject
|
|
4808
|
+
contextObject: {
|
|
4809
|
+
...contextObject,
|
|
4810
|
+
...optionsObject?.context
|
|
4811
|
+
},
|
|
4763
4812
|
tempSelectedOption,
|
|
4764
4813
|
listOptions,
|
|
4765
4814
|
fetchMoreOptions,
|
|
4766
|
-
domainObject,
|
|
4815
|
+
domainObject: widget === MANY2ONE_EXTERNAL ? optionsObject?.domain : domainObject,
|
|
4767
4816
|
setIsShowModalMany2Many,
|
|
4768
4817
|
setDomainObject,
|
|
4769
|
-
options:
|
|
4818
|
+
options: optionsObject,
|
|
4819
|
+
relation: widget === MANY2ONE_EXTERNAL ? optionsObject?.model : relation,
|
|
4820
|
+
service: widget === MANY2ONE_EXTERNAL ? optionsObject?.service : service
|
|
4770
4821
|
};
|
|
4771
4822
|
};
|
|
4772
4823
|
|
|
@@ -4825,7 +4876,9 @@ var many2manyFieldController = (props) => {
|
|
|
4825
4876
|
[false, "list"],
|
|
4826
4877
|
[false, "search"]
|
|
4827
4878
|
],
|
|
4828
|
-
context: contextObject
|
|
4879
|
+
context: contextObject,
|
|
4880
|
+
service,
|
|
4881
|
+
xNode: service == "wesap" && dataUser?.x_node
|
|
4829
4882
|
};
|
|
4830
4883
|
const { data: viewResponse } = useGetView2({
|
|
4831
4884
|
viewParams,
|
|
@@ -4848,7 +4901,7 @@ var many2manyFieldController = (props) => {
|
|
|
4848
4901
|
model: relation ?? "",
|
|
4849
4902
|
viewData: viewResponse,
|
|
4850
4903
|
service,
|
|
4851
|
-
xNode: service == "wesap" && dataUser
|
|
4904
|
+
xNode: service == "wesap" && dataUser?.x_node
|
|
4852
4905
|
});
|
|
4853
4906
|
const {
|
|
4854
4907
|
selectedRowKeys,
|
package/dist/widget.mjs
CHANGED
|
@@ -4614,6 +4614,7 @@ var useListData = ({
|
|
|
4614
4614
|
};
|
|
4615
4615
|
|
|
4616
4616
|
// src/widget/basic/many2one-field/controller.ts
|
|
4617
|
+
var MANY2ONE_EXTERNAL = "many2one_external";
|
|
4617
4618
|
var many2oneFieldController = (props) => {
|
|
4618
4619
|
const {
|
|
4619
4620
|
methods,
|
|
@@ -4628,7 +4629,8 @@ var many2oneFieldController = (props) => {
|
|
|
4628
4629
|
showDetail,
|
|
4629
4630
|
service,
|
|
4630
4631
|
xNode,
|
|
4631
|
-
isForm
|
|
4632
|
+
isForm,
|
|
4633
|
+
widget
|
|
4632
4634
|
} = props;
|
|
4633
4635
|
const { env } = (0, provider_exports.useEnv)();
|
|
4634
4636
|
const { action, user } = useAppProvider();
|
|
@@ -4642,39 +4644,47 @@ var many2oneFieldController = (props) => {
|
|
|
4642
4644
|
const [domainObject, setDomainObject] = useState7(null);
|
|
4643
4645
|
const dataUser = user?.userProfile?.data;
|
|
4644
4646
|
const initValue = methods?.getValues(name);
|
|
4645
|
-
const optionsObject = (0, utils_exports.evalJSONContext)(fieldOptions) || {};
|
|
4646
4647
|
const contextObject = {
|
|
4647
|
-
...(0, utils_exports.evalJSONContext)(action?.context) || {},
|
|
4648
|
+
...(typeof action?.context === "string" ? (0, utils_exports.evalJSONContext)(action?.context) : action?.context) || {},
|
|
4648
4649
|
...fieldContext,
|
|
4649
4650
|
...env?.context
|
|
4650
4651
|
};
|
|
4652
|
+
const optionsObject = (0, utils_exports.evalJSONContext)(fieldOptions, {
|
|
4653
|
+
...formValues,
|
|
4654
|
+
...contextObject,
|
|
4655
|
+
context: contextObject,
|
|
4656
|
+
parent: { ...formValues }
|
|
4657
|
+
}) || {};
|
|
4651
4658
|
const fetchGetDetail = useGetDetail2();
|
|
4652
4659
|
const data = {
|
|
4653
|
-
model: relation,
|
|
4654
|
-
domain: domainObject,
|
|
4655
|
-
context:
|
|
4656
|
-
|
|
4660
|
+
model: widget === MANY2ONE_EXTERNAL ? optionsObject?.model : relation,
|
|
4661
|
+
domain: widget === MANY2ONE_EXTERNAL ? optionsObject?.domain : domainObject,
|
|
4662
|
+
context: {
|
|
4663
|
+
...contextObject,
|
|
4664
|
+
...optionsObject?.context
|
|
4665
|
+
},
|
|
4666
|
+
specification: widget === MANY2ONE_EXTERNAL ? optionsObject?.specification : {
|
|
4657
4667
|
id: {},
|
|
4658
4668
|
name: {},
|
|
4659
4669
|
display_name: {}
|
|
4660
4670
|
}
|
|
4661
4671
|
};
|
|
4662
|
-
const queryKey = [`data_${relation}`, domainObject];
|
|
4663
4672
|
const {
|
|
4664
4673
|
data: dataOfSelection,
|
|
4665
4674
|
refetch,
|
|
4666
4675
|
isFetching
|
|
4667
4676
|
} = useGetSelection3({
|
|
4668
4677
|
data,
|
|
4669
|
-
queryKey,
|
|
4678
|
+
queryKey: [`data_${relation}`, domainObject],
|
|
4670
4679
|
enabled: false,
|
|
4671
|
-
service,
|
|
4680
|
+
service: widget === MANY2ONE_EXTERNAL ? optionsObject?.service : service,
|
|
4672
4681
|
xNode
|
|
4673
4682
|
});
|
|
4674
4683
|
const selectOptions = useMemo8(() => {
|
|
4675
4684
|
return dataOfSelection?.records?.map((val) => ({
|
|
4676
4685
|
value: val?.id,
|
|
4677
|
-
label: val?.display_name || val?.name
|
|
4686
|
+
label: val?.display_name || val?.name,
|
|
4687
|
+
...widget === MANY2ONE_EXTERNAL ? val : {}
|
|
4678
4688
|
})) || [];
|
|
4679
4689
|
}, [dataOfSelection]);
|
|
4680
4690
|
useEffect10(() => {
|
|
@@ -4703,13 +4713,13 @@ var many2oneFieldController = (props) => {
|
|
|
4703
4713
|
methods?.setValue(name, null);
|
|
4704
4714
|
setTempSelectedOption(null);
|
|
4705
4715
|
} else if (propValue) {
|
|
4706
|
-
if (isForm && fieldOptions?.includes("service") && fieldOptions?.includes("type") && fieldOptions?.includes("model")) {
|
|
4716
|
+
if (isForm && fieldOptions?.includes("service") && fieldOptions?.includes("type") && fieldOptions?.includes("model") && !propValue?.display_name) {
|
|
4707
4717
|
const optionsMany2OneField = fieldOptions ? (0, utils_exports.evalJSONContext)(fieldOptions) : null;
|
|
4708
4718
|
fetchGetDetail.mutate(
|
|
4709
4719
|
{
|
|
4710
4720
|
model: optionsMany2OneField?.model,
|
|
4711
|
-
ids: propValue,
|
|
4712
|
-
specification: {
|
|
4721
|
+
ids: propValue?.id ?? propValue,
|
|
4722
|
+
specification: widget === MANY2ONE_EXTERNAL ? optionsObject?.specification : {
|
|
4713
4723
|
id: {},
|
|
4714
4724
|
display_name: {}
|
|
4715
4725
|
},
|
|
@@ -4718,11 +4728,23 @@ var many2oneFieldController = (props) => {
|
|
|
4718
4728
|
xNode: service == "wesap" && dataUser.x_node
|
|
4719
4729
|
},
|
|
4720
4730
|
{
|
|
4721
|
-
onSuccess: (
|
|
4731
|
+
onSuccess: (dataResponse) => {
|
|
4732
|
+
const detailData = dataResponse?.[0];
|
|
4722
4733
|
setTempSelectedOption({
|
|
4723
|
-
value: detailData?.
|
|
4724
|
-
label: detailData?.
|
|
4734
|
+
value: detailData?.id,
|
|
4735
|
+
label: detailData?.display_name
|
|
4725
4736
|
});
|
|
4737
|
+
if (widget === MANY2ONE_EXTERNAL && optionsObject?.values_included) {
|
|
4738
|
+
Object.keys(optionsObject?.values_included)?.forEach(
|
|
4739
|
+
(field) => {
|
|
4740
|
+
methods?.setValue(
|
|
4741
|
+
optionsObject?.values_included[field]?.name,
|
|
4742
|
+
detailData?.[field]
|
|
4743
|
+
);
|
|
4744
|
+
}
|
|
4745
|
+
);
|
|
4746
|
+
methods?.setValue(name, detailData);
|
|
4747
|
+
}
|
|
4726
4748
|
},
|
|
4727
4749
|
onError: (error) => {
|
|
4728
4750
|
console.log("error", error);
|
|
@@ -4760,18 +4782,29 @@ var many2oneFieldController = (props) => {
|
|
|
4760
4782
|
const newOption = listOptions?.find(
|
|
4761
4783
|
(option) => option.value === idRecord
|
|
4762
4784
|
);
|
|
4785
|
+
const newValue = widget === MANY2ONE_EXTERNAL && optionsObject?.field_name ? newOption?.[optionsObject?.field_name] : newOption.value;
|
|
4786
|
+
if (widget === MANY2ONE_EXTERNAL && optionsObject?.values_included) {
|
|
4787
|
+
Object.keys(optionsObject?.values_included)?.forEach((field) => {
|
|
4788
|
+
methods?.setValue(
|
|
4789
|
+
optionsObject?.values_included[field]?.name,
|
|
4790
|
+
newOption?.[field]
|
|
4791
|
+
);
|
|
4792
|
+
});
|
|
4793
|
+
}
|
|
4763
4794
|
if (newOption) {
|
|
4764
4795
|
methods.setValue(
|
|
4765
4796
|
name,
|
|
4766
4797
|
{
|
|
4767
|
-
|
|
4798
|
+
...newOption,
|
|
4799
|
+
id: newValue,
|
|
4768
4800
|
display_name: newOption?.label
|
|
4769
4801
|
},
|
|
4770
4802
|
{ shouldDirty: true }
|
|
4771
4803
|
);
|
|
4772
4804
|
setTempSelectedOption(newOption);
|
|
4773
4805
|
onChange && onChange(String(name), {
|
|
4774
|
-
|
|
4806
|
+
...newOption,
|
|
4807
|
+
id: newValue,
|
|
4775
4808
|
display_name: newOption?.label
|
|
4776
4809
|
});
|
|
4777
4810
|
methods.trigger(name);
|
|
@@ -4790,14 +4823,27 @@ var many2oneFieldController = (props) => {
|
|
|
4790
4823
|
methods.trigger(name);
|
|
4791
4824
|
return;
|
|
4792
4825
|
}
|
|
4793
|
-
const newValue = selectedOption.value;
|
|
4794
|
-
|
|
4826
|
+
const newValue = widget === MANY2ONE_EXTERNAL && optionsObject?.field_name ? selectedOption?.[optionsObject?.field_name] : selectedOption.value;
|
|
4827
|
+
if (widget === MANY2ONE_EXTERNAL && optionsObject?.values_included) {
|
|
4828
|
+
Object.keys(optionsObject?.values_included)?.forEach((field) => {
|
|
4829
|
+
methods?.setValue(
|
|
4830
|
+
optionsObject?.values_included[field]?.name,
|
|
4831
|
+
selectedOption?.[field]
|
|
4832
|
+
);
|
|
4833
|
+
});
|
|
4834
|
+
}
|
|
4835
|
+
methods?.setValue(
|
|
4795
4836
|
name,
|
|
4796
|
-
{
|
|
4837
|
+
{
|
|
4838
|
+
...selectedOption,
|
|
4839
|
+
id: newValue,
|
|
4840
|
+
display_name: selectedOption?.label
|
|
4841
|
+
},
|
|
4797
4842
|
{ shouldDirty: true }
|
|
4798
4843
|
);
|
|
4799
4844
|
setTempSelectedOption(selectedOption);
|
|
4800
4845
|
onChange && onChange(String(name), {
|
|
4846
|
+
...selectedOption,
|
|
4801
4847
|
id: newValue,
|
|
4802
4848
|
display_name: selectedOption.label
|
|
4803
4849
|
});
|
|
@@ -4816,14 +4862,19 @@ var many2oneFieldController = (props) => {
|
|
|
4816
4862
|
domainModal,
|
|
4817
4863
|
setInputValue,
|
|
4818
4864
|
allowShowDetail,
|
|
4819
|
-
contextObject
|
|
4865
|
+
contextObject: {
|
|
4866
|
+
...contextObject,
|
|
4867
|
+
...optionsObject?.context
|
|
4868
|
+
},
|
|
4820
4869
|
tempSelectedOption,
|
|
4821
4870
|
listOptions,
|
|
4822
4871
|
fetchMoreOptions,
|
|
4823
|
-
domainObject,
|
|
4872
|
+
domainObject: widget === MANY2ONE_EXTERNAL ? optionsObject?.domain : domainObject,
|
|
4824
4873
|
setIsShowModalMany2Many,
|
|
4825
4874
|
setDomainObject,
|
|
4826
|
-
options:
|
|
4875
|
+
options: optionsObject,
|
|
4876
|
+
relation: widget === MANY2ONE_EXTERNAL ? optionsObject?.model : relation,
|
|
4877
|
+
service: widget === MANY2ONE_EXTERNAL ? optionsObject?.service : service
|
|
4827
4878
|
};
|
|
4828
4879
|
};
|
|
4829
4880
|
|
|
@@ -4882,7 +4933,9 @@ var many2manyFieldController = (props) => {
|
|
|
4882
4933
|
[false, "list"],
|
|
4883
4934
|
[false, "search"]
|
|
4884
4935
|
],
|
|
4885
|
-
context: contextObject
|
|
4936
|
+
context: contextObject,
|
|
4937
|
+
service,
|
|
4938
|
+
xNode: service == "wesap" && dataUser?.x_node
|
|
4886
4939
|
};
|
|
4887
4940
|
const { data: viewResponse } = useGetView2({
|
|
4888
4941
|
viewParams,
|
|
@@ -4905,7 +4958,7 @@ var many2manyFieldController = (props) => {
|
|
|
4905
4958
|
model: relation ?? "",
|
|
4906
4959
|
viewData: viewResponse,
|
|
4907
4960
|
service,
|
|
4908
|
-
xNode: service == "wesap" && dataUser
|
|
4961
|
+
xNode: service == "wesap" && dataUser?.x_node
|
|
4909
4962
|
});
|
|
4910
4963
|
const {
|
|
4911
4964
|
selectedRowKeys,
|