@next-libs/cmdb-instances 7.7.1 → 7.9.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.
@@ -95,6 +95,31 @@ export var isValueEqualFn = (query, attrId, valuesStr) => {
95
95
  return query[attrId] ? valuesStr && Object.values(query[attrId]).join(" ") !== valuesStr // 当条件是为空和不为空时,需要判断valuesStr是否存在
96
96
  : false;
97
97
  };
98
+ export function mergeFields(oldFields, newFieldIds) {
99
+ return newFieldIds.map(field => {
100
+ var existField = oldFields.find(f => f.field === field);
101
+ var order = existField ? existField.order : 0;
102
+ return {
103
+ field,
104
+ order
105
+ };
106
+ });
107
+ }
108
+ export function updateSortFields(oldFields, sortInfo, sortType) {
109
+ var {
110
+ asc,
111
+ sort
112
+ } = sortInfo;
113
+ var order = ["series-number", "auto-increment-id"].includes(sortType) ? asc ? 2 : -2 : asc ? 1 : -1;
114
+ return oldFields.map(item => {
115
+ if (item.field === sort) {
116
+ item.order = order;
117
+ } else {
118
+ item.order = 0;
119
+ }
120
+ return item;
121
+ });
122
+ }
98
123
  export function translateConditions(aq, idObjectMap, modelData, t) {
99
124
  var conditions = [];
100
125
  var relations = [];
@@ -276,6 +301,17 @@ export function LegacyInstanceList(props) {
276
301
  var instanceArchiveListProvider = useProvider("providers-of-cmdb.instance-archive-api-list-archive-instance", {
277
302
  cache: false
278
303
  });
304
+ var ignorePermissionProvider = useProvider("easyops.api.cmdb.instance@PostSearchV3WithAdmin:1.0.0", {
305
+ cache: false
306
+ });
307
+ // istanbul ignore next
308
+
309
+ var fieldsProvider = useProvider("easyops.api.cmdb.instance@GetListDisplayView:1.0.1", {
310
+ cache: false
311
+ });
312
+ var updateFieldsProvider = useProvider("easyops.api.cmdb.instance@UpdateListDisplayView:1.0.0", {
313
+ cache: false
314
+ });
279
315
  var {
280
316
  modelData,
281
317
  idObjectMap
@@ -354,10 +390,65 @@ export function LegacyInstanceList(props) {
354
390
  });
355
391
  return [...frontFields, ...restFields];
356
392
  };
393
+ // istanbul ignore next
394
+
395
+ var getFieldsAsync = /*#__PURE__*/function () {
396
+ var _ref3 = _asyncToGenerator(function* () {
397
+ var _props$presetConfigs3, _modelData$attrList, _modelData$attrList$f2, _modelData$attrList$f3, _props$extraFixedFiel;
398
+ var sort = props.sort;
399
+ var fieldIds = (_props$presetConfigs3 = props.presetConfigs) === null || _props$presetConfigs3 === void 0 ? void 0 : _props$presetConfigs3.fieldIds;
400
+ var sortType = modelData === null || modelData === void 0 ? void 0 : (_modelData$attrList = modelData.attrList) === null || _modelData$attrList === void 0 ? void 0 : (_modelData$attrList$f2 = _modelData$attrList.find(attr => attr.id === sort)) === null || _modelData$attrList$f2 === void 0 ? void 0 : (_modelData$attrList$f3 = _modelData$attrList$f2.value) === null || _modelData$attrList$f3 === void 0 ? void 0 : _modelData$attrList$f3.default_type;
401
+ var asc;
402
+ if (props.asc === true) {
403
+ asc = ["series-number", "auto-increment-id"].includes(sortType) ? 2 : 1;
404
+ } else {
405
+ asc = ["series-number", "auto-increment-id"].includes(sortType) ? -2 : -1;
406
+ }
407
+ var sortFields;
408
+ if (props.saveFieldsBackend) {
409
+ sortFields = (yield fieldsProvider.query([props.objectId])).sortFields;
410
+ }
411
+ var extraFixedFieldIds = (_props$extraFixedFiel = props.extraFixedFields) !== null && _props$extraFixedFiel !== void 0 ? _props$extraFixedFiel : [];
412
+ if (isEmpty(fieldIds)) {
413
+ if (props.saveFieldsBackend) {
414
+ fieldIds = sortFields.map(item => item.field);
415
+ if (isEmpty(sort) || isEmpty(asc)) {
416
+ var orderField = sortFields.find(item => item.order !== 0);
417
+ if (orderField) {
418
+ sort = orderField.field;
419
+ asc = orderField.order;
420
+ }
421
+ }
422
+ } else {
423
+ fieldIds = jsonLocalStorage.getItem("".concat(modelData.objectId, "-selectAttrIds"));
424
+ }
425
+ }
426
+ if (isEmpty(fieldIds)) {
427
+ fieldIds = computeDefaultFields().fieldIds;
428
+ }
429
+ if (!isEmpty(extraFixedFieldIds)) {
430
+ fieldIds = uniq([...fieldIds, ...extraFixedFieldIds]);
431
+ }
432
+ fieldIds = props.extraDisabledField ? uniq([...fieldIds, props.extraDisabledField]) : fieldIds;
433
+ fieldIds = _sortFieldIds(fieldIds);
434
+ var hideModelData = modelData.view.hide_columns || [];
435
+ fieldIds = fieldIds.filter(field => !hideModelData.includes(field));
436
+ modelData.isAbstract && fieldIds.push("_object_id");
437
+ return {
438
+ fieldIds,
439
+ sort,
440
+ asc,
441
+ sortFields
442
+ };
443
+ });
444
+ return function getFieldsAsync() {
445
+ return _ref3.apply(this, arguments);
446
+ };
447
+ }();
357
448
  var getFields = () => {
358
- var _props$presetConfigs3, _props$extraFixedFiel;
359
- var fieldIds = (_props$presetConfigs3 = props.presetConfigs) === null || _props$presetConfigs3 === void 0 ? void 0 : _props$presetConfigs3.fieldIds;
360
- var extraFixedFieldIds = (_props$extraFixedFiel = props.extraFixedFields) !== null && _props$extraFixedFiel !== void 0 ? _props$extraFixedFiel : [];
449
+ var _props$presetConfigs4, _props$extraFixedFiel2;
450
+ var fieldIds = (_props$presetConfigs4 = props.presetConfigs) === null || _props$presetConfigs4 === void 0 ? void 0 : _props$presetConfigs4.fieldIds;
451
+ var extraFixedFieldIds = (_props$extraFixedFiel2 = props.extraFixedFields) !== null && _props$extraFixedFiel2 !== void 0 ? _props$extraFixedFiel2 : [];
361
452
  if (isEmpty(fieldIds)) {
362
453
  fieldIds = jsonLocalStorage.getItem("".concat(modelData.objectId, "-selectAttrIds"));
363
454
  }
@@ -376,17 +467,18 @@ export function LegacyInstanceList(props) {
376
467
  };
377
468
  var [q, setQ] = useState(props.q);
378
469
  var [state, setState] = useReducer(reducer, undefined, () => {
379
- var _ref3, _props$dataSource$pag, _props$dataSource, _ref4, _props$dataSource$pag2, _props$dataSource2, _props$presetConfigs4;
470
+ var _ref4, _props$dataSource$pag, _props$dataSource, _ref5, _props$dataSource$pag2, _props$dataSource2, _props$presetConfigs5;
380
471
  return {
381
472
  objectId: props.objectId,
382
473
  q: props.q,
383
474
  aq: initAqToShow(props.aq, modelData, false),
475
+ sortFields: [],
384
476
  aqToShow: props.aqToShow || initAqToShow(props.aq, modelData),
385
477
  instanceSourceQuery: props.instanceSourceQuery,
386
478
  asc: props.asc,
387
479
  sort: props.sort,
388
- page: (_ref3 = (_props$dataSource$pag = (_props$dataSource = props.dataSource) === null || _props$dataSource === void 0 ? void 0 : _props$dataSource.page) !== null && _props$dataSource$pag !== void 0 ? _props$dataSource$pag : props.page) !== null && _ref3 !== void 0 ? _ref3 : 1,
389
- pageSize: (_ref4 = (_props$dataSource$pag2 = (_props$dataSource2 = props.dataSource) === null || _props$dataSource2 === void 0 ? void 0 : _props$dataSource2.pageSize) !== null && _props$dataSource$pag2 !== void 0 ? _props$dataSource$pag2 : props.pageSize) !== null && _ref4 !== void 0 ? _ref4 : 10,
480
+ page: (_ref4 = (_props$dataSource$pag = (_props$dataSource = props.dataSource) === null || _props$dataSource === void 0 ? void 0 : _props$dataSource.page) !== null && _props$dataSource$pag !== void 0 ? _props$dataSource$pag : props.page) !== null && _ref4 !== void 0 ? _ref4 : 1,
481
+ pageSize: (_ref5 = (_props$dataSource$pag2 = (_props$dataSource2 = props.dataSource) === null || _props$dataSource2 === void 0 ? void 0 : _props$dataSource2.pageSize) !== null && _props$dataSource$pag2 !== void 0 ? _props$dataSource$pag2 : props.pageSize) !== null && _ref5 !== void 0 ? _ref5 : 10,
390
482
  aliveHosts: props.aliveHosts,
391
483
  relatedToMe: props.relatedToMe,
392
484
  objectIdQuery: props.objectIdQuery,
@@ -396,8 +488,8 @@ export function LegacyInstanceList(props) {
396
488
  loading: false,
397
489
  failed: false,
398
490
  isAdvancedSearchVisible: false,
399
- fieldIds: getFields(),
400
- presetConfigsQuery: (_props$presetConfigs4 = props.presetConfigs) === null || _props$presetConfigs4 === void 0 ? void 0 : _props$presetConfigs4.query,
491
+ fieldIds: props.saveFieldsBackend ? [] : getFields(),
492
+ presetConfigsQuery: (_props$presetConfigs5 = props.presetConfigs) === null || _props$presetConfigs5 === void 0 ? void 0 : _props$presetConfigs5.query,
401
493
  autoBreakLine: false,
402
494
  appSearchInstanceId: "",
403
495
  currentChangeSelect: "App",
@@ -415,8 +507,8 @@ export function LegacyInstanceList(props) {
415
507
  var cache = useRef(new Map());
416
508
  var isFirstRunRef = useRef(true);
417
509
  var getInstanceListData = /*#__PURE__*/function () {
418
- var _ref5 = _asyncToGenerator(function* (sort, asc, page) {
419
- var _modelData$attrList, _modelData$attrList$f2, _modelData$attrList$f3, _props$onSearchExecut;
510
+ var _ref6 = _asyncToGenerator(function* (sort, asc, page) {
511
+ var _modelData$attrList2, _modelData$attrList2$, _modelData$attrList2$2, _props$onSearchExecut;
420
512
  var data = {};
421
513
  var v3Data = {
422
514
  fields: props !== null && props !== void 0 && props.extraFixedFields ? uniq(["instanceId"].concat(props === null || props === void 0 ? void 0 : props.extraFixedFields)) : ["instanceId"]
@@ -428,7 +520,7 @@ export function LegacyInstanceList(props) {
428
520
  var query = {};
429
521
  v3Data.page = data.page = archiveData.page = page;
430
522
  v3Data["page_size"] = data["page_size"] = archiveData["page_size"] = state.pageSize;
431
- var sortType = modelData === null || modelData === void 0 ? void 0 : (_modelData$attrList = modelData.attrList) === null || _modelData$attrList === void 0 ? void 0 : (_modelData$attrList$f2 = _modelData$attrList.find(attr => attr.id === sort)) === null || _modelData$attrList$f2 === void 0 ? void 0 : (_modelData$attrList$f3 = _modelData$attrList$f2.value) === null || _modelData$attrList$f3 === void 0 ? void 0 : _modelData$attrList$f3.default_type;
523
+ var sortType = modelData === null || modelData === void 0 ? void 0 : (_modelData$attrList2 = modelData.attrList) === null || _modelData$attrList2 === void 0 ? void 0 : (_modelData$attrList2$ = _modelData$attrList2.find(attr => attr.id === sort)) === null || _modelData$attrList2$ === void 0 ? void 0 : (_modelData$attrList2$2 = _modelData$attrList2$.value) === null || _modelData$attrList2$2 === void 0 ? void 0 : _modelData$attrList2$2.default_type;
432
524
  var order = ["series-number", "auto-increment-id"].includes(sortType) ? asc ? 2 : -2 : asc ? 1 : -1;
433
525
  if (sort) {
434
526
  data.sort = {
@@ -497,8 +589,8 @@ export function LegacyInstanceList(props) {
497
589
  //按应用筛选
498
590
  // istanbul ignore next (state is not updated)
499
591
  if (state.searchByApp) {
500
- var _props$presetConfigs5, _props$presetConfigs6, _props$presetConfigs7, _props$presetConfigs8, _props$presetConfigs9;
501
- var hostRange = (_props$presetConfigs5 = props.presetConfigs) === null || _props$presetConfigs5 === void 0 ? void 0 : (_props$presetConfigs6 = _props$presetConfigs5.query) === null || _props$presetConfigs6 === void 0 ? void 0 : (_props$presetConfigs7 = _props$presetConfigs6["$and"]) === null || _props$presetConfigs7 === void 0 ? void 0 : (_props$presetConfigs8 = _props$presetConfigs7.find(i => i.instanceId)) === null || _props$presetConfigs8 === void 0 ? void 0 : (_props$presetConfigs9 = _props$presetConfigs8.instanceId) === null || _props$presetConfigs9 === void 0 ? void 0 : _props$presetConfigs9["$in"];
592
+ var _props$presetConfigs6, _props$presetConfigs7, _props$presetConfigs8, _props$presetConfigs9, _props$presetConfigs10;
593
+ var hostRange = (_props$presetConfigs6 = props.presetConfigs) === null || _props$presetConfigs6 === void 0 ? void 0 : (_props$presetConfigs7 = _props$presetConfigs6.query) === null || _props$presetConfigs7 === void 0 ? void 0 : (_props$presetConfigs8 = _props$presetConfigs7["$and"]) === null || _props$presetConfigs8 === void 0 ? void 0 : (_props$presetConfigs9 = _props$presetConfigs8.find(i => i.instanceId)) === null || _props$presetConfigs9 === void 0 ? void 0 : (_props$presetConfigs10 = _props$presetConfigs9.instanceId) === null || _props$presetConfigs10 === void 0 ? void 0 : _props$presetConfigs10["$in"];
502
594
  v3Data.query = _objectSpread(_objectSpread({
503
595
  [state.currentChangeSelect === "App" || state.currentChangeSelect === "Cluster" && state.clusterValue === "all" ? "_deviceList_CLUSTER.appId.instanceId" : "_deviceList_CLUSTER.instanceId"]: state.appSearchInstanceId
504
596
  }, !isEmpty(hostRange) && props.limitInstanceRange ? {
@@ -514,14 +606,14 @@ export function LegacyInstanceList(props) {
514
606
  }
515
607
  var promise = (_props$onSearchExecut = props.onSearchExecute) === null || _props$onSearchExecut === void 0 ? void 0 : _props$onSearchExecut.call(props, data, v3Data);
516
608
  // useAutoDiscoveryProvider=true, 使用useProvider的接口
517
- return promise ? promise : props.useAutoDiscoveryProvider ? listProvider.query([props.objectId, v3Data]) : InstanceApi_postSearchV3(props.objectId, v3Data);
609
+ return promise ? promise : props.useAutoDiscoveryProvider ? listProvider.query([props.objectId, v3Data]) : props.ignorePermission ? ignorePermissionProvider.query([props.objectId, v3Data]) : InstanceApi_postSearchV3(props.objectId, v3Data);
518
610
  });
519
611
  return function getInstanceListData(_x2, _x3, _x4) {
520
- return _ref5.apply(this, arguments);
612
+ return _ref6.apply(this, arguments);
521
613
  };
522
614
  }();
523
615
  var refreshInstanceList = /*#__PURE__*/function () {
524
- var _ref6 = _asyncToGenerator(function* (sort, asc, page) {
616
+ var _ref7 = _asyncToGenerator(function* (sort, asc, page) {
525
617
  setState({
526
618
  loading: true
527
619
  });
@@ -559,20 +651,50 @@ export function LegacyInstanceList(props) {
559
651
  }
560
652
  });
561
653
  return function refreshInstanceList(_x5, _x6, _x7) {
562
- return _ref6.apply(this, arguments);
654
+ return _ref7.apply(this, arguments);
563
655
  };
564
656
  }();
657
+ // const [fieldIds,setFieldIds] = useState([]);
658
+ // istanbul ignore next
565
659
  useEffect(() => {
566
- var _props$presetConfigs10;
567
- var fieldIds = getFields();
568
- if (
569
- // 当 props.objectId 改变时,总是更新 state.fieldIds
570
- props.objectId !== state.objectId || !isEqual(fieldIds, state.fieldIds) || !isEqual((_props$presetConfigs10 = props.presetConfigs) === null || _props$presetConfigs10 === void 0 ? void 0 : _props$presetConfigs10.query, state.presetConfigsQuery)) {
571
- var _props$presetConfigs11;
572
- setState({
573
- fieldIds,
574
- presetConfigsQuery: (_props$presetConfigs11 = props.presetConfigs) === null || _props$presetConfigs11 === void 0 ? void 0 : _props$presetConfigs11.query
575
- });
660
+ if (props.saveFieldsBackend) {
661
+ var getFieldIds = /*#__PURE__*/function () {
662
+ var _ref8 = _asyncToGenerator(function* () {
663
+ var _props$presetConfigs11, _props$presetConfigs12;
664
+ var fieldConfig = yield getFieldsAsync();
665
+ var {
666
+ fieldIds,
667
+ sort,
668
+ asc,
669
+ sortFields
670
+ } = fieldConfig;
671
+ if (
672
+ // 当 props.objectId 改变时,总是更新 state.fieldIds
673
+ props.objectId !== state.objectId || !isEqual(fieldIds, state.fieldIds) || !isEqual((_props$presetConfigs11 = props.presetConfigs) === null || _props$presetConfigs11 === void 0 ? void 0 : _props$presetConfigs11.query, state.presetConfigsQuery)) setState({
674
+ fieldIds,
675
+ presetConfigsQuery: (_props$presetConfigs12 = props.presetConfigs) === null || _props$presetConfigs12 === void 0 ? void 0 : _props$presetConfigs12.query,
676
+ sort,
677
+ asc: [1, 2].includes(asc) ? true : false,
678
+ sortFields
679
+ });
680
+ });
681
+ return function getFieldIds() {
682
+ return _ref8.apply(this, arguments);
683
+ };
684
+ }();
685
+ getFieldIds();
686
+ } else {
687
+ var _props$presetConfigs13;
688
+ var fieldIds = getFields();
689
+ if (
690
+ // 当 props.objectId 改变时,总是更新 state.fieldIds
691
+ props.objectId !== state.objectId || !isEqual(fieldIds, state.fieldIds) || !isEqual((_props$presetConfigs13 = props.presetConfigs) === null || _props$presetConfigs13 === void 0 ? void 0 : _props$presetConfigs13.query, state.presetConfigsQuery)) {
692
+ var _props$presetConfigs14;
693
+ setState({
694
+ fieldIds,
695
+ presetConfigsQuery: (_props$presetConfigs14 = props.presetConfigs) === null || _props$presetConfigs14 === void 0 ? void 0 : _props$presetConfigs14.query
696
+ });
697
+ }
576
698
  }
577
699
  }, [props.objectId, props.presetConfigs]);
578
700
  useEffect(() => {
@@ -629,7 +751,7 @@ export function LegacyInstanceList(props) {
629
751
 
630
752
  // istanbul ignore next
631
753
  var onSelectionChange = useCallback( /*#__PURE__*/function () {
632
- var _ref7 = _asyncToGenerator(function* (selected) {
754
+ var _ref9 = _asyncToGenerator(function* (selected) {
633
755
  var _props$onSelectionCha;
634
756
  var {
635
757
  selectedItems,
@@ -652,6 +774,8 @@ export function LegacyInstanceList(props) {
652
774
  // useAutoDiscoveryProvider=true, 使用useProvider的接口,虽然这里列表用不到选择功能,但还是加上保持统一
653
775
  if (props.useAutoDiscoveryProvider) {
654
776
  resp = yield listProvider.query([props.objectId, Object.assign(params, props.extraParams)]);
777
+ } else if (props.ignorePermission) {
778
+ resp = yield ignorePermissionProvider.query([props.objectId, Object.assign(params, props.extraParams)]);
655
779
  } else {
656
780
  resp = yield InstanceApi_postSearchV3(props.objectId, params);
657
781
  }
@@ -665,7 +789,7 @@ export function LegacyInstanceList(props) {
665
789
  });
666
790
  });
667
791
  return function (_x8) {
668
- return _ref7.apply(this, arguments);
792
+ return _ref9.apply(this, arguments);
669
793
  };
670
794
  }(), []);
671
795
  var onSearch = value => {
@@ -685,28 +809,51 @@ export function LegacyInstanceList(props) {
685
809
  });
686
810
  (_props$onAdvancedSear = props.onAdvancedSearch) === null || _props$onAdvancedSear === void 0 ? void 0 : _props$onAdvancedSear.call(props, queries);
687
811
  };
688
- var onSortingChange = useCallback(info => {
689
- var _props$onSortingChang;
690
- var asc;
691
- var sort;
692
- if (info.asc === undefined) {
693
- if (!state.sort) {
694
- return;
812
+ var onSortingChange = useCallback( /*#__PURE__*/function () {
813
+ var _ref10 = _asyncToGenerator(function* (info, sortFields) {
814
+ var _props$onSortingChang;
815
+ var asc;
816
+ var sort;
817
+ if (info.asc === undefined) {
818
+ if (!state.sort) {
819
+ return;
820
+ }
821
+ setState({
822
+ asc: undefined,
823
+ sort: undefined
824
+ });
825
+ } else {
826
+ setState({
827
+ asc: info.asc,
828
+ sort: info.sort
829
+ });
830
+ asc = info.asc;
831
+ sort = info.sort;
695
832
  }
696
- setState({
697
- asc: undefined,
698
- sort: undefined
699
- });
700
- } else {
701
- setState({
702
- asc: info.asc,
703
- sort: info.sort
704
- });
705
- asc = info.asc;
706
- sort = info.sort;
707
- }
708
- (_props$onSortingChang = props.onSortingChange) === null || _props$onSortingChang === void 0 ? void 0 : _props$onSortingChang.call(props, info);
709
- }, [state.sort]);
833
+ // istanbul ignore next
834
+ if (props.saveFieldsBackend) {
835
+ try {
836
+ var _modelData$attrList3, _modelData$attrList3$, _modelData$attrList3$2;
837
+ var oldsortFields = sortFields;
838
+ var sortType = modelData === null || modelData === void 0 ? void 0 : (_modelData$attrList3 = modelData.attrList) === null || _modelData$attrList3 === void 0 ? void 0 : (_modelData$attrList3$ = _modelData$attrList3.find(attr => attr.id === sort)) === null || _modelData$attrList3$ === void 0 ? void 0 : (_modelData$attrList3$2 = _modelData$attrList3$.value) === null || _modelData$attrList3$2 === void 0 ? void 0 : _modelData$attrList3$2.default_type;
839
+ var newSortFields = updateSortFields(oldsortFields, info, sortType);
840
+ setState({
841
+ sortFields: newSortFields
842
+ });
843
+ yield updateFieldsProvider.query([props.objectId, {
844
+ sortFields: newSortFields
845
+ }]);
846
+ } catch (e) {
847
+ handleHttpError;
848
+ }
849
+ }
850
+ // istanbul ignore next
851
+ (_props$onSortingChang = props.onSortingChange) === null || _props$onSortingChang === void 0 ? void 0 : _props$onSortingChang.call(props, info);
852
+ });
853
+ return function (_x9, _x10) {
854
+ return _ref10.apply(this, arguments);
855
+ };
856
+ }(), [state.sort]);
710
857
  var onPaginationChange = useCallback(pagination => {
711
858
  var _props$onPaginationCh2;
712
859
  setState({
@@ -789,10 +936,10 @@ export function LegacyInstanceList(props) {
789
936
  });
790
937
  };
791
938
  var defaultFields = useMemo(() => {
792
- var _props$presetConfigs12, _props$extraFixedFiel2;
939
+ var _props$presetConfigs15, _props$extraFixedFiel3;
793
940
  var defaultFields;
794
- var fieldIds = (_props$presetConfigs12 = props.presetConfigs) === null || _props$presetConfigs12 === void 0 ? void 0 : _props$presetConfigs12.fieldIds,
795
- extraFixedFieldIds = (_props$extraFixedFiel2 = props.extraFixedFields) !== null && _props$extraFixedFiel2 !== void 0 ? _props$extraFixedFiel2 : [];
941
+ var fieldIds = (_props$presetConfigs15 = props.presetConfigs) === null || _props$presetConfigs15 === void 0 ? void 0 : _props$presetConfigs15.fieldIds,
942
+ extraFixedFieldIds = (_props$extraFixedFiel3 = props.extraFixedFields) !== null && _props$extraFixedFiel3 !== void 0 ? _props$extraFixedFiel3 : [];
796
943
  if (!isEmpty(fieldIds)) {
797
944
  defaultFields = props.presetConfigs.fieldIds;
798
945
  } else {
@@ -805,27 +952,59 @@ export function LegacyInstanceList(props) {
805
952
  }, [props.presetConfigs, modelData]);
806
953
 
807
954
  // istanbul ignore next
808
- var handleConfirm = _ref9 => {
809
- var {
810
- fields,
811
- isReset
812
- } = _ref9;
813
- if (isReset) {
814
- var fieldIds = defaultFields;
815
- modelData.isAbstract && fieldIds.push("_object_id");
816
- setState({
817
- fieldIds
818
- });
819
- jsonLocalStorage.removeItem("".concat(modelData.objectId, "-selectAttrIds"));
820
- props.onFieldsModalConfirm(fieldIds);
821
- } else {
822
- setState({
823
- fieldIds: _sortFieldIds(fields)
824
- });
825
- jsonLocalStorage.setItem("".concat(modelData.objectId, "-selectAttrIds"), fields);
826
- props.onFieldsModalConfirm(fields);
827
- }
828
- };
955
+ var handleConfirm = /*#__PURE__*/function () {
956
+ var _ref13 = _asyncToGenerator(function* (_ref12) {
957
+ var {
958
+ fields,
959
+ isReset
960
+ } = _ref12;
961
+ if (isReset) {
962
+ var fieldIds = defaultFields;
963
+ modelData.isAbstract && fieldIds.push("_object_id");
964
+ if (props.saveFieldsBackend) {
965
+ var sortFields = mergeFields(state.sortFields, fieldIds);
966
+ yield updateFieldsProvider.query([props.objectId, {
967
+ sortFields
968
+ }]);
969
+ setState({
970
+ fieldIds,
971
+ sortFields
972
+ });
973
+ props.onFieldsModalConfirm(fieldIds);
974
+ } else {
975
+ jsonLocalStorage.removeItem("".concat(modelData.objectId, "-selectAttrIds"));
976
+ setState({
977
+ fieldIds
978
+ });
979
+ props.onFieldsModalConfirm(fieldIds);
980
+ }
981
+ } else {
982
+ if (props.saveFieldsBackend) {
983
+ try {
984
+ var _sortFields = mergeFields(state.sortFields, fields);
985
+ yield updateFieldsProvider.query([props.objectId, {
986
+ sortFields: _sortFields
987
+ }]);
988
+ setState({
989
+ fieldIds: _sortFieldIds(fields),
990
+ sortFields: _sortFields
991
+ });
992
+ } catch (e) {
993
+ handleHttpError(e);
994
+ }
995
+ } else {
996
+ setState({
997
+ fieldIds: _sortFieldIds(fields)
998
+ });
999
+ jsonLocalStorage.setItem("".concat(modelData.objectId, "-selectAttrIds"), fields);
1000
+ }
1001
+ props.onFieldsModalConfirm(fields);
1002
+ }
1003
+ });
1004
+ return function handleConfirm(_x11) {
1005
+ return _ref13.apply(this, arguments);
1006
+ };
1007
+ }();
829
1008
  useEffect(() => {
830
1009
  var _props$notifyCurrentF;
831
1010
  (_props$notifyCurrentF = props.notifyCurrentFields) === null || _props$notifyCurrentF === void 0 ? void 0 : _props$notifyCurrentF.call(props, state.fieldIds);
@@ -1122,7 +1301,9 @@ export function LegacyInstanceList(props) {
1122
1301
  onClickItem: props.onClickItem,
1123
1302
  onClickItemV2: props.onClickItemV2,
1124
1303
  onPaginationChange: onPaginationChange,
1125
- onSortingChange: onSortingChange,
1304
+ onSortingChange: info => {
1305
+ onSortingChange(info, state.sortFields);
1306
+ },
1126
1307
  onSelectionChange: onSelectionChange,
1127
1308
  onInstanceSourceChange: onInstanceSourceChange,
1128
1309
  instanceSourceQuery: state.instanceSourceQuery,