@next-libs/cmdb-instances 7.4.0 → 7.6.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.
Files changed (35) hide show
  1. package/dist/cjs/i18n/constants.js +2 -0
  2. package/dist/cjs/i18n/constants.js.map +1 -1
  3. package/dist/cjs/i18n/locales/en.js +3 -1
  4. package/dist/cjs/i18n/locales/en.js.map +1 -1
  5. package/dist/cjs/i18n/locales/zh.js +3 -1
  6. package/dist/cjs/i18n/locales/zh.js.map +1 -1
  7. package/dist/cjs/instance-list/FilterInstanceSource.js +144 -0
  8. package/dist/cjs/instance-list/FilterInstanceSource.js.map +1 -0
  9. package/dist/cjs/instance-list/IconButton.js +10 -0
  10. package/dist/cjs/instance-list/IconButton.js.map +1 -1
  11. package/dist/cjs/instance-list/InstanceList.js +54 -0
  12. package/dist/cjs/instance-list/InstanceList.js.map +1 -1
  13. package/dist/cjs/instance-list-modal/InstanceListModal.js +6 -1
  14. package/dist/cjs/instance-list-modal/InstanceListModal.js.map +1 -1
  15. package/dist/esm/i18n/constants.js +2 -0
  16. package/dist/esm/i18n/constants.js.map +1 -1
  17. package/dist/esm/i18n/locales/en.js +3 -1
  18. package/dist/esm/i18n/locales/en.js.map +1 -1
  19. package/dist/esm/i18n/locales/zh.js +3 -1
  20. package/dist/esm/i18n/locales/zh.js.map +1 -1
  21. package/dist/esm/instance-list/FilterInstanceSource.js +138 -0
  22. package/dist/esm/instance-list/FilterInstanceSource.js.map +1 -0
  23. package/dist/esm/instance-list/FilterInstanceSource.module.css +13 -0
  24. package/dist/esm/instance-list/IconButton.js +10 -0
  25. package/dist/esm/instance-list/IconButton.js.map +1 -1
  26. package/dist/esm/instance-list/InstanceList.js +58 -4
  27. package/dist/esm/instance-list/InstanceList.js.map +1 -1
  28. package/dist/esm/instance-list-modal/InstanceListModal.js +6 -1
  29. package/dist/esm/instance-list-modal/InstanceListModal.js.map +1 -1
  30. package/dist/types/i18n/constants.d.ts +3 -1
  31. package/dist/types/instance-list/FilterInstanceSource.d.ts +15 -0
  32. package/dist/types/instance-list/FilterInstanceSource.spec.d.ts +1 -0
  33. package/dist/types/instance-list/InstanceList.d.ts +11 -0
  34. package/dist/types/instance-list-modal/InstanceListModal.d.ts +6 -0
  35. package/package.json +2 -2
@@ -17,6 +17,7 @@ import { extraFieldAttrs, CMDB_MODAL_FIELDS_SETTINGS, CMDB_RESOURCE_FIELDS_SETTI
17
17
  import { ModelAttributeValueType } from "../model-attribute-form-control/ModelAttributeFormControl";
18
18
  import { IconButton } from "./IconButton";
19
19
  import { changeQueryWithCustomRules } from "../processors";
20
+ import FilterInstanceSource from "./FilterInstanceSource";
20
21
  export function joinRelationFieldAndShowkey(fields, modelData, objectList) {
21
22
  var attrIdMap = keyBy(modelData.attrList, "id");
22
23
  return fields.map(field => {
@@ -140,10 +141,10 @@ export function translateConditions(aq, idObjectMap, modelData, t) {
140
141
  });
141
142
  var attrAndRelationList = [...modelData.attrList, ...relations];
142
143
  if (!isEmpty(aq)) {
143
- for (var query of aq) {
144
- var _queries = [query];
145
- if (Object.keys(query)[0] === "$or" || Object.keys(query)[0] === "$and") {
146
- _queries = query[Object.keys(query)[0]];
144
+ for (var _query of aq) {
145
+ var _queries = [_query];
146
+ if (Object.keys(_query)[0] === "$or" || Object.keys(_query)[0] === "$and") {
147
+ _queries = _query[Object.keys(_query)[0]];
147
148
  }
148
149
  _queries.forEach(query => {
149
150
  var _attr;
@@ -302,6 +303,11 @@ export function LegacyInstanceList(props) {
302
303
  idNameMap = yield CmdbObjectApi_getIdMapName({
303
304
  parentObjectId: modelData.objectId
304
305
  });
306
+ props.showFilterInstanceSource && jsonLocalStorage.setItem("instances-sources-objectId-name-map", {
307
+ parentObjectId: modelData.objectId,
308
+ query: props.presetConfigs.query,
309
+ idNameMap
310
+ });
305
311
  }
306
312
  setInheritanceModelIdNameMap(idNameMap);
307
313
  });
@@ -382,6 +388,9 @@ export function LegacyInstanceList(props) {
382
388
  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,
383
389
  aliveHosts: props.aliveHosts,
384
390
  relatedToMe: props.relatedToMe,
391
+ objectIdQuery: props.objectIdQuery,
392
+ filterInstanceSource: props.filterInstanceSource,
393
+ instanceSourcePopoverVisible: false,
385
394
  inited: false,
386
395
  loading: false,
387
396
  failed: false,
@@ -601,6 +610,12 @@ export function LegacyInstanceList(props) {
601
610
  }
602
611
  refreshInstanceList(state.sort, state.asc, 1);
603
612
  }, [state.q, state.aq, state.instanceSourceQuery, state.pageSize, state.aliveHosts, state.relatedToMe, props.objectId, props.permission, props.defaultQuery]);
613
+ useEffect(() => {
614
+ setQ(props.q);
615
+ setState({
616
+ q: props.q
617
+ });
618
+ }, [props.q]);
604
619
 
605
620
  // on other condition change
606
621
  useEffect(() => {
@@ -909,7 +924,36 @@ export function LegacyInstanceList(props) {
909
924
  (_props$onAdvancedSear2 = props.onAdvancedSearch) === null || _props$onAdvancedSear2 === void 0 ? void 0 : _props$onAdvancedSear2.call(props, queries);
910
925
  };
911
926
  };
927
+ var onFilterInstanceSourceChange = checked => {
928
+ var _props$onFilterInstan;
929
+ setState({
930
+ filterInstanceSource: checked
931
+ });
932
+ (_props$onFilterInstan = props.onFilterInstanceSourceChange) === null || _props$onFilterInstan === void 0 ? void 0 : _props$onFilterInstan.call(props, checked);
933
+ };
934
+ var onFilterObjectIdChange = objectIdQuery => {
935
+ var _props$onFilterObject;
936
+ setState({
937
+ objectIdQuery: objectIdQuery
938
+ });
939
+ (_props$onFilterObject = props.onFilterObjectIdChange) === null || _props$onFilterObject === void 0 ? void 0 : _props$onFilterObject.call(props, objectIdQuery);
940
+ };
941
+ var onPopoverVisibleChange = visible => {
942
+ setState({
943
+ instanceSourcePopoverVisible: visible
944
+ });
945
+ };
912
946
  var conditions = translateConditions(state.aqToShow, idObjectMap, modelData);
947
+ useEffect(() => {
948
+ if (props.showFilterInstanceSource) {
949
+ var aq = initAqToShow(props.aq, modelData, false);
950
+ var aqToShow = props.aqToShow || initAqToShow(props.aq, modelData);
951
+ setState({
952
+ aq,
953
+ aqToShow
954
+ });
955
+ }
956
+ }, [props.aq, props.aqToShow, props.showFilterInstanceSource]);
913
957
  return /*#__PURE__*/React.createElement(Spin, {
914
958
  spinning: state.loading
915
959
  }, state.inited && !state.failed ? /*#__PURE__*/React.createElement(React.Fragment, null, (!props.searchDisabled || !props.advancedSearchDisabled || !props.relatedToMeDisabled || !props.aliveHostsDisabled || !props.moreButtonsDisabled) && /*#__PURE__*/React.createElement("div", {
@@ -974,6 +1018,16 @@ export function LegacyInstanceList(props) {
974
1018
  })
975
1019
  }, " ", i18n.t("".concat(NS_LIBS_CMDB_INSTANCES, ":").concat(K.CLEAR)))), ((_props$extraOperateBr = props.extraOperateBricks) === null || _props$extraOperateBr === void 0 ? void 0 : _props$extraOperateBr.useBrick) && /*#__PURE__*/React.createElement(BrickAsComponent, {
976
1020
  useBrick: props.extraOperateBricks.useBrick
1021
+ }), props.showFilterInstanceSource && /*#__PURE__*/React.createElement(FilterInstanceSource, {
1022
+ visible: state.instanceSourcePopoverVisible,
1023
+ checked: state.filterInstanceSource,
1024
+ onPopoverVisibleChange: onPopoverVisibleChange,
1025
+ onIconClicKChange: onFilterInstanceSourceChange,
1026
+ onChange: onFilterObjectIdChange,
1027
+ inheritanceModelIdNameMap: inheritanceModelIdNameMap,
1028
+ value: state.objectIdQuery,
1029
+ jsonLocalStorage: jsonLocalStorage,
1030
+ isAbstract: modelData.isAbstract
977
1031
  }), props.objectId === "HOST" && props.enableSearchByApp && /*#__PURE__*/React.createElement(Button, {
978
1032
  type: "link",
979
1033
  onClick: toggleSearchMode