@flightctl/ui-components 0.10.0-rc1 → 0.10.0-rc3

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.
@@ -1,4 +1,4 @@
1
1
  import * as React from 'react';
2
- declare const PageNavigation: ({ children }: React.PropsWithChildren) => React.JSX.Element | null;
2
+ declare const PageNavigation: () => React.JSX.Element | null;
3
3
  export default PageNavigation;
4
4
  //# sourceMappingURL=PageNavigation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PageNavigation.d.ts","sourceRoot":"","sources":["../../../../src/components/common/PageNavigation.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAsD/B,QAAA,MAAM,cAAc,iBAAkB,MAAM,iBAAiB,6BA8C5D,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"PageNavigation.d.ts","sourceRoot":"","sources":["../../../../src/components/common/PageNavigation.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAyD/B,QAAA,MAAM,cAAc,gCA+CnB,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -12,29 +12,28 @@ const OrganizationDropdown = ({ organizationName, onSwitchOrganization }) => {
12
12
  const onDropdownToggle = () => {
13
13
  setIsDropdownOpen(!isDropdownOpen);
14
14
  };
15
- return (React.createElement(react_core_1.Dropdown, { isOpen: isDropdownOpen, onSelect: onDropdownToggle, onOpenChange: setIsDropdownOpen, toggle: (toggleRef) => (React.createElement(react_core_1.MenuToggle, { ref: toggleRef, onClick: onDropdownToggle, id: "organizationMenu", isFullHeight: true, isExpanded: isDropdownOpen, variant: "plainText" }, organizationName)) },
15
+ return (React.createElement(react_core_1.Dropdown, { isOpen: isDropdownOpen, onSelect: onDropdownToggle, onOpenChange: setIsDropdownOpen, toggle: (toggleRef) => (React.createElement(react_core_1.MenuToggle, { ref: toggleRef, onClick: onDropdownToggle, id: "organizationMenu", isFullHeight: true, isExpanded: isDropdownOpen, variant: "plainText" }, organizationName)), popperProps: { position: 'right' } },
16
16
  React.createElement(react_core_1.DropdownList, null,
17
17
  React.createElement(react_core_1.DropdownItem, { onClick: onSwitchOrganization }, t('Change Organization')))));
18
18
  };
19
- const PageNavigation = ({ children }) => {
19
+ const PageNavigation = () => {
20
20
  var _a, _b;
21
21
  const { currentOrganization, availableOrganizations } = (0, OrganizationGuard_1.useOrganizationGuardContext)();
22
22
  const [showOrganizationModal, setShowOrganizationModal] = React.useState(false);
23
23
  const showOrganizationSelection = availableOrganizations.length > 1;
24
- const hasChildren = React.Children.count(children) > 0;
25
- if (!showOrganizationSelection && !hasChildren) {
24
+ if (!showOrganizationSelection) {
26
25
  return null;
27
26
  }
28
27
  const currentOrgDisplayName = ((_a = currentOrganization === null || currentOrganization === void 0 ? void 0 : currentOrganization.spec) === null || _a === void 0 ? void 0 : _a.displayName) || ((_b = currentOrganization === null || currentOrganization === void 0 ? void 0 : currentOrganization.metadata) === null || _b === void 0 ? void 0 : _b.name) || '';
29
28
  return (React.createElement(React.Fragment, null,
30
29
  React.createElement(react_core_1.PageSection, { variant: "light", padding: { default: 'noPadding' } },
31
- React.createElement(react_core_1.Toolbar, { isFullHeight: true, isStatic: true, className: "fctl-app_toolbar" },
32
- React.createElement(react_core_1.ToolbarContent, null,
33
- hasChildren && React.createElement(react_core_1.ToolbarItem, null, children),
34
- showOrganizationSelection && (React.createElement(react_core_1.ToolbarItem, null,
35
- React.createElement(OrganizationDropdown, { organizationName: currentOrgDisplayName, onSwitchOrganization: () => {
36
- setShowOrganizationModal(true);
37
- } })))))),
30
+ React.createElement(react_core_1.Masthead, { id: "global-actions-masthead" },
31
+ React.createElement(react_core_1.MastheadContent, null,
32
+ React.createElement(react_core_1.Toolbar, { isFullHeight: true, isStatic: true, className: "fctl-subnav_toolbar" },
33
+ React.createElement(react_core_1.ToolbarContent, null, showOrganizationSelection && (React.createElement(react_core_1.ToolbarItem, null,
34
+ React.createElement(OrganizationDropdown, { organizationName: currentOrgDisplayName, onSwitchOrganization: () => {
35
+ setShowOrganizationModal(true);
36
+ } })))))))),
38
37
  showOrganizationModal && (React.createElement(OrganizationSelector_1.default, { isFirstLogin: false, onClose: (isChanged) => {
39
38
  setShowOrganizationModal(false);
40
39
  if (isChanged) {
@@ -1 +1 @@
1
- {"version":3,"file":"PageNavigation.js","sourceRoot":"","sources":["../../../../src/components/common/PageNavigation.tsx"],"names":[],"mappings":";;;AAAA,qDAA+B;AAC/B,uDAUgC;AAChC,+DAA4D;AAC5D,2DAAkE;AAClE,0FAA0D;AAO1D,MAAM,oBAAoB,GAAG,CAAC,EAAE,gBAAgB,EAAE,oBAAoB,EAA6B,EAAE,EAAE;IACrG,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,+BAAc,GAAE,CAAC;IAC/B,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAElE,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC5B,iBAAiB,CAAC,CAAC,cAAc,CAAC,CAAC;IACrC,CAAC,CAAC;IAEF,OAAO,CACL,oBAAC,qBAAQ,IACP,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,gBAAgB,EAC1B,YAAY,EAAE,iBAAiB,EAC/B,MAAM,EAAE,CAAC,SAAuC,EAAE,EAAE,CAAC,CACnD,oBAAC,uBAAU,IACT,GAAG,EAAE,SAAS,EACd,OAAO,EAAE,gBAAgB,EACzB,EAAE,EAAC,kBAAkB,EACrB,YAAY,QACZ,UAAU,EAAE,cAAc,EAC1B,OAAO,EAAC,WAAW,IAElB,gBAAgB,CACN,CACd;QAED,oBAAC,yBAAY;YACX,oBAAC,yBAAY,IAAC,OAAO,EAAE,oBAAoB,IAAG,CAAC,CAAC,qBAAqB,CAAC,CAAgB,CACzE,CACN,CACZ,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,EAAE,QAAQ,EAA2B,EAAE,EAAE;;IAC/D,MAAM,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,GAAG,IAAA,+CAA2B,GAAE,CAAC;IACtF,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEhF,MAAM,yBAAyB,GAAG,sBAAsB,CAAC,MAAM,GAAG,CAAC,CAAC;IACpE,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAEvD,IAAI,CAAC,yBAAyB,IAAI,CAAC,WAAW,EAAE,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,qBAAqB,GAAG,CAAA,MAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,IAAI,0CAAE,WAAW,MAAI,MAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,QAAQ,0CAAE,IAAI,CAAA,IAAI,EAAE,CAAC;IAElH,OAAO,CACL;QACE,oBAAC,wBAAW,IAAC,OAAO,EAAC,OAAO,EAAC,OAAO,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;YAC5D,oBAAC,oBAAO,IAAC,YAAY,QAAC,QAAQ,QAAC,SAAS,EAAC,kBAAkB;gBACzD,oBAAC,2BAAc;oBACZ,WAAW,IAAI,oBAAC,wBAAW,QAAE,QAAQ,CAAe;oBACpD,yBAAyB,IAAI,CAC5B,oBAAC,wBAAW;wBACV,oBAAC,oBAAoB,IACnB,gBAAgB,EAAE,qBAAqB,EACvC,oBAAoB,EAAE,GAAG,EAAE;gCACzB,wBAAwB,CAAC,IAAI,CAAC,CAAC;4BACjC,CAAC,GACD,CACU,CACf,CACc,CACT,CACE;QAEb,qBAAqB,IAAI,CACxB,oBAAC,8BAAoB,IACnB,YAAY,EAAE,KAAK,EACnB,OAAO,EAAE,CAAC,SAAS,EAAE,EAAE;gBACrB,wBAAwB,CAAC,KAAK,CAAC,CAAC;gBAChC,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;gBAC3B,CAAC;YACH,CAAC,GACD,CACH,CACA,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"PageNavigation.js","sourceRoot":"","sources":["../../../../src/components/common/PageNavigation.tsx"],"names":[],"mappings":";;;AAAA,qDAA+B;AAC/B,uDAYgC;AAChC,+DAA4D;AAC5D,2DAAkE;AAClE,0FAA0D;AAO1D,MAAM,oBAAoB,GAAG,CAAC,EAAE,gBAAgB,EAAE,oBAAoB,EAA6B,EAAE,EAAE;IACrG,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,+BAAc,GAAE,CAAC;IAC/B,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAElE,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC5B,iBAAiB,CAAC,CAAC,cAAc,CAAC,CAAC;IACrC,CAAC,CAAC;IAEF,OAAO,CACL,oBAAC,qBAAQ,IACP,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,gBAAgB,EAC1B,YAAY,EAAE,iBAAiB,EAC/B,MAAM,EAAE,CAAC,SAAuC,EAAE,EAAE,CAAC,CACnD,oBAAC,uBAAU,IACT,GAAG,EAAE,SAAS,EACd,OAAO,EAAE,gBAAgB,EACzB,EAAE,EAAC,kBAAkB,EACrB,YAAY,QACZ,UAAU,EAAE,cAAc,EAC1B,OAAO,EAAC,WAAW,IAElB,gBAAgB,CACN,CACd,EACD,WAAW,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE;QAElC,oBAAC,yBAAY;YACX,oBAAC,yBAAY,IAAC,OAAO,EAAE,oBAAoB,IAAG,CAAC,CAAC,qBAAqB,CAAC,CAAgB,CACzE,CACN,CACZ,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,GAAG,EAAE;;IAC1B,MAAM,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,GAAG,IAAA,+CAA2B,GAAE,CAAC;IACtF,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEhF,MAAM,yBAAyB,GAAG,sBAAsB,CAAC,MAAM,GAAG,CAAC,CAAC;IACpE,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,qBAAqB,GAAG,CAAA,MAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,IAAI,0CAAE,WAAW,MAAI,MAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,QAAQ,0CAAE,IAAI,CAAA,IAAI,EAAE,CAAC;IAElH,OAAO,CACL;QACE,oBAAC,wBAAW,IAAC,OAAO,EAAC,OAAO,EAAC,OAAO,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;YAC5D,oBAAC,qBAAQ,IAAC,EAAE,EAAC,yBAAyB;gBACpC,oBAAC,4BAAe;oBACd,oBAAC,oBAAO,IAAC,YAAY,QAAC,QAAQ,QAAC,SAAS,EAAC,qBAAqB;wBAC5D,oBAAC,2BAAc,QACZ,yBAAyB,IAAI,CAC5B,oBAAC,wBAAW;4BACV,oBAAC,oBAAoB,IACnB,gBAAgB,EAAE,qBAAqB,EACvC,oBAAoB,EAAE,GAAG,EAAE;oCACzB,wBAAwB,CAAC,IAAI,CAAC,CAAC;gCACjC,CAAC,GACD,CACU,CACf,CACc,CACT,CACM,CACT,CACC;QAEb,qBAAqB,IAAI,CACxB,oBAAC,8BAAoB,IACnB,YAAY,EAAE,KAAK,EACnB,OAAO,EAAE,CAAC,SAAS,EAAE,EAAE;gBACrB,wBAAwB,CAAC,KAAK,CAAC,CAAC;gBAChC,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;gBAC3B,CAAC;YACH,CAAC,GACD,CACH,CACA,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,cAAc,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"MassResumeDevicesModal.d.ts","sourceRoot":"","sources":["../../../../../../src/components/modals/massModals/ResumeDevicesModal/MassResumeDevicesModal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA8C/B,UAAU,2BAA2B;IACnC,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACzC;AA4YD,QAAA,MAAM,sBAAsB,gBAAiB,2BAA2B,sBAkBvE,CAAC;AAEF,eAAe,sBAAsB,CAAC"}
1
+ {"version":3,"file":"MassResumeDevicesModal.d.ts","sourceRoot":"","sources":["../../../../../../src/components/modals/massModals/ResumeDevicesModal/MassResumeDevicesModal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA8C/B,UAAU,2BAA2B;IACnC,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACzC;AAwYD,QAAA,MAAM,sBAAsB,gBAAiB,2BAA2B,sBAkBvE,CAAC;AAEF,eAAe,sBAAsB,CAAC"}
@@ -90,23 +90,18 @@ const MassResumeDevicesModalContent = ({ onClose }) => {
90
90
  setIsSubmitting(true);
91
91
  setSubmitError(undefined);
92
92
  try {
93
- let labels;
94
- if (values.mode === SelectionMode.ALL) {
95
- labels = [];
93
+ let labels = [];
94
+ if (values.mode === SelectionMode.FLEET) {
95
+ labels = getSelectedFleetLabels(fleets, values.fleetId);
96
96
  }
97
- else {
98
- if (values.mode === SelectionMode.FLEET) {
99
- labels = getSelectedFleetLabels(fleets, values.fleetId);
100
- }
101
- else {
102
- labels = values.labels;
103
- }
104
- // This shouldn't happen due to validations, but since an empty label selector would target all existing devices,
105
- // wake sure the UI does't accidentally submit a request with an empty selector
106
- const emptySelection = labels.every((label) => label.key === '');
107
- if (labels.length === 0 || emptySelection) {
108
- throw new Error('The current selection would target all devices.');
109
- }
97
+ else if (values.mode === SelectionMode.LABELS) {
98
+ labels = values.labels;
99
+ }
100
+ // This shouldn't happen due to validations, but since an empty label selector would target all existing devices,
101
+ // wake sure the UI does't accidentally submit a request with an empty selector
102
+ const emptySelection = labels.every((label) => label.key === '');
103
+ if (labels.length === 0 || emptySelection) {
104
+ throw new Error('The current selection would target all devices.');
110
105
  }
111
106
  const resumeRequest = {
112
107
  labelSelector: labels.map((label) => (0, labels_1.labelToExactApiMatchString)(label)).join(','),
@@ -237,17 +232,17 @@ const MassResumeDevicesModalContent = ({ onClose }) => {
237
232
  submitError && (React.createElement(react_core_1.StackItem, null,
238
233
  React.createElement(react_core_1.Alert, { isInline: true, variant: "danger", title: t('Resume devices failed') }, submitError))),
239
234
  resumedCount !== undefined && hasResumedAllExpected && (React.createElement(react_core_1.StackItem, null,
240
- React.createElement(react_core_1.Alert, { isInline: true, variant: "success", title: t('Resume successful') }, t('{{ resumedCount }} devices were resumed', { resumedCount })))),
235
+ React.createElement(react_core_1.Alert, { isInline: true, variant: "success", title: t('Resume successful') }, t('{{ count }} devices were resumed', { count: resumedCount })))),
241
236
  resumedCount !== undefined && !hasResumedAllExpected && (React.createElement(react_core_1.StackItem, null,
242
237
  React.createElement(react_core_1.Alert, { isInline: true, variant: "warning", title: t('Resumed with warnings') }, t('{{ expectedCount }} devices to resume, and {{ resumedCount }} resumed successfully', {
243
238
  expectedCount: deviceCountNum,
244
239
  resumedCount,
245
240
  }))))),
246
- showResumeAllConfirmation && (React.createElement(ResumeAllDevicesConfirmationDialog_1.default, { deviceCountNum: deviceCountNum, onClose: (doConfirm) => {
241
+ showResumeAllConfirmation && (React.createElement(ResumeAllDevicesConfirmationDialog_1.default, { devicesToResume: deviceCountNum, onClose: (resumedCount) => {
242
+ setResumedCount(resumedCount);
243
+ setIsCountLoading(false);
244
+ setCountError(null);
247
245
  setShowResumeAllConfirmation(false);
248
- if (doConfirm) {
249
- performResume();
250
- }
251
246
  } }))));
252
247
  };
253
248
  const MassResumeDevicesModal = ({ onClose }) => {
@@ -1 +1 @@
1
- {"version":3,"file":"MassResumeDevicesModal.js","sourceRoot":"","sources":["../../../../../../src/components/modals/massModals/ResumeDevicesModal/MassResumeDevicesModal.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MassResumeDevicesModal.js","sourceRoot":"","sources":["../../../../../../src/components/modals/massModals/ResumeDevicesModal/MassResumeDevicesModal.tsx"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import * as React from 'react';
2
2
  interface ResumeAllDevicesConfirmationModalProps {
3
- deviceCountNum: number;
4
- onClose: (doConfirm: boolean) => void;
3
+ devicesToResume: number;
4
+ onClose: (resumedCount: number | undefined) => void;
5
5
  isSubmitting?: boolean;
6
6
  }
7
- declare const ResumeAllDevicesConfirmationModal: ({ deviceCountNum, onClose }: ResumeAllDevicesConfirmationModalProps) => React.JSX.Element;
7
+ declare const ResumeAllDevicesConfirmationModal: ({ devicesToResume, onClose }: ResumeAllDevicesConfirmationModalProps) => React.JSX.Element;
8
8
  export default ResumeAllDevicesConfirmationModal;
9
9
  //# sourceMappingURL=ResumeAllDevicesConfirmationDialog.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ResumeAllDevicesConfirmationDialog.d.ts","sourceRoot":"","sources":["../../../../../../src/components/modals/massModals/ResumeDevicesModal/ResumeAllDevicesConfirmationDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,UAAU,sCAAsC;IAC9C,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,QAAA,MAAM,iCAAiC,gCAAiC,sCAAsC,sBAwC7G,CAAC;AAEF,eAAe,iCAAiC,CAAC"}
1
+ {"version":3,"file":"ResumeAllDevicesConfirmationDialog.d.ts","sourceRoot":"","sources":["../../../../../../src/components/modals/massModals/ResumeDevicesModal/ResumeAllDevicesConfirmationDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,UAAU,sCAAsC;IAC9C,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IACpD,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAuDD,QAAA,MAAM,iCAAiC,iCAAkC,sCAAsC,sBA+D9G,CAAC;AAEF,eAAe,iCAAiC,CAAC"}
@@ -2,26 +2,69 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  const React = tslib_1.__importStar(require("react"));
5
- const react_core_1 = require("@patternfly/react-core");
6
5
  const react_i18next_1 = require("react-i18next");
6
+ const react_core_1 = require("@patternfly/react-core");
7
7
  const useTranslation_1 = require("../../../../hooks/useTranslation");
8
- const ResumeAllDevicesConfirmationModal = ({ deviceCountNum, onClose }) => {
8
+ const useFetch_1 = require("../../../../hooks/useFetch");
9
+ const error_1 = require("../../../../utils/error");
10
+ const ModalContentBeforeResume = ({ devicesToResume }) => {
11
+ const { t } = (0, useTranslation_1.useTranslation)();
12
+ const deviceCount = devicesToResume.toString();
13
+ return (React.createElement(react_core_1.Stack, { hasGutter: true },
14
+ React.createElement(react_core_1.StackItem, null,
15
+ React.createElement(react_core_1.TextContent, null,
16
+ React.createElement(react_core_1.Text, null,
17
+ React.createElement(react_i18next_1.Trans, { t: t, count: devicesToResume },
18
+ "You are about to resume all ",
19
+ React.createElement("strong", null, deviceCount),
20
+ " suspended devices."))),
21
+ React.createElement(react_core_1.TextContent, null,
22
+ React.createElement(react_core_1.Text, null, t('This action is irreversible and will allow all affected devices to receive new configuration updates from the server.'))))));
23
+ };
24
+ const ModalContentAfterResume = ({ hasResumedAll, resumedCount, submitError, }) => {
25
+ const { t } = (0, useTranslation_1.useTranslation)();
26
+ if (submitError) {
27
+ return (React.createElement(react_core_1.Alert, { isInline: true, variant: "danger", title: t('Resume devices failed') }, submitError));
28
+ }
29
+ const alertType = hasResumedAll ? 'success' : 'warning';
30
+ const title = hasResumedAll ? t('Resume successful') : t('Resumed with warnings');
31
+ return (React.createElement(react_core_1.Alert, { isInline: true, variant: alertType, title: title }, t('{{ count }} devices were resumed', { count: resumedCount })));
32
+ };
33
+ const ResumeAllDevicesConfirmationModal = ({ devicesToResume, onClose }) => {
9
34
  const { t } = (0, useTranslation_1.useTranslation)();
10
- const deviceCount = deviceCountNum.toString();
11
- return (React.createElement(react_core_1.Modal, { variant: react_core_1.ModalVariant.small, title: t('Resume all {{ deviceCount }} devices?', { deviceCount }), isOpen: true, onClose: () => onClose(false), actions: [
12
- React.createElement(react_core_1.Button, { key: "confirm", variant: "primary", onClick: () => onClose(true) }, t('Resume all devices')),
13
- React.createElement(react_core_1.Button, { key: "cancel", variant: "link", onClick: () => onClose(false) }, t('Cancel')),
14
- ] },
15
- React.createElement(react_core_1.Stack, { hasGutter: true },
16
- React.createElement(react_core_1.StackItem, null,
17
- React.createElement(react_core_1.TextContent, null,
18
- React.createElement(react_core_1.Text, null,
19
- React.createElement(react_i18next_1.Trans, { t: t, count: deviceCountNum },
20
- "You are about to resume all ",
21
- React.createElement("strong", null, deviceCount),
22
- " suspended devices."))),
23
- React.createElement(react_core_1.TextContent, null,
24
- React.createElement(react_core_1.Text, null, t('This action is irreversible and will allow all affected devices to receive new configuration updates from the server.')))))));
35
+ const { post } = (0, useFetch_1.useFetch)();
36
+ const [resumedCount, setResumedCount] = React.useState(undefined);
37
+ const [isSubmitting, setIsSubmitting] = React.useState(false);
38
+ const [submitError, setSubmitError] = React.useState(undefined);
39
+ const isBeforeResume = resumedCount === undefined;
40
+ const title = isBeforeResume
41
+ ? t('Resume all {{ count }} devices?', { count: devicesToResume })
42
+ : t('Resume devices result');
43
+ const buttons = isBeforeResume
44
+ ? [
45
+ React.createElement(react_core_1.Button, { key: "confirm", variant: "primary", isDisabled: isSubmitting, onClick: () => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
46
+ setIsSubmitting(true);
47
+ try {
48
+ const resumeRequest = {
49
+ labelSelector: '', // All devices
50
+ };
51
+ const resumeResponse = yield post('deviceactions/resume', resumeRequest);
52
+ setResumedCount(resumeResponse.resumedDevices || 0);
53
+ }
54
+ catch (error) {
55
+ setResumedCount(0);
56
+ setSubmitError((0, error_1.getErrorMessage)(error));
57
+ }
58
+ finally {
59
+ setIsSubmitting(false);
60
+ }
61
+ }) }, t('Resume all devices')),
62
+ React.createElement(react_core_1.Button, { key: "cancel", variant: "link", isDisabled: isSubmitting, onClick: () => onClose(undefined) }, t('Cancel')),
63
+ ]
64
+ : [
65
+ React.createElement(react_core_1.Button, { key: "close", variant: "primary", onClick: () => onClose(resumedCount) }, t('Close')),
66
+ ];
67
+ return (React.createElement(react_core_1.Modal, { variant: react_core_1.ModalVariant.small, title: title, isOpen: true, onClose: () => onClose(undefined), actions: buttons }, isBeforeResume ? (React.createElement(ModalContentBeforeResume, { devicesToResume: devicesToResume })) : (React.createElement(ModalContentAfterResume, { resumedCount: resumedCount, hasResumedAll: resumedCount === devicesToResume, submitError: submitError }))));
25
68
  };
26
69
  exports.default = ResumeAllDevicesConfirmationModal;
27
70
  //# sourceMappingURL=ResumeAllDevicesConfirmationDialog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ResumeAllDevicesConfirmationDialog.js","sourceRoot":"","sources":["../../../../../../src/components/modals/massModals/ResumeDevicesModal/ResumeAllDevicesConfirmationDialog.tsx"],"names":[],"mappings":";;;AAAA,qDAA+B;AAC/B,uDAA0G;AAC1G,iDAAsC;AAEtC,qEAAkE;AAQlE,MAAM,iCAAiC,GAAG,CAAC,EAAE,cAAc,EAAE,OAAO,EAA0C,EAAE,EAAE;IAChH,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,+BAAc,GAAE,CAAC;IAE/B,MAAM,WAAW,GAAG,cAAc,CAAC,QAAQ,EAAE,CAAC;IAE9C,OAAO,CACL,oBAAC,kBAAK,IACJ,OAAO,EAAE,yBAAY,CAAC,KAAK,EAC3B,KAAK,EAAE,CAAC,CAAC,uCAAuC,EAAE,EAAE,WAAW,EAAE,CAAC,EAClE,MAAM,QACN,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAC7B,OAAO,EAAE;YACP,oBAAC,mBAAM,IAAC,GAAG,EAAC,SAAS,EAAC,OAAO,EAAC,SAAS,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IACjE,CAAC,CAAC,oBAAoB,CAAC,CACjB;YACT,oBAAC,mBAAM,IAAC,GAAG,EAAC,QAAQ,EAAC,OAAO,EAAC,MAAM,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAC9D,CAAC,CAAC,QAAQ,CAAC,CACL;SACV;QAED,oBAAC,kBAAK,IAAC,SAAS;YACd,oBAAC,sBAAS;gBACR,oBAAC,wBAAW;oBACV,oBAAC,iBAAI;wBACH,oBAAC,qBAAK,IAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,cAAc;;4BACJ,oCAAS,WAAW,CAAU;kDACpD,CACH,CACK;gBACd,oBAAC,wBAAW;oBACV,oBAAC,iBAAI,QACF,CAAC,CACA,uHAAuH,CACxH,CACI,CACK,CACJ,CACN,CACF,CACT,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,iCAAiC,CAAC"}
1
+ {"version":3,"file":"ResumeAllDevicesConfirmationDialog.js","sourceRoot":"","sources":["../../../../../../src/components/modals/massModals/ResumeDevicesModal/ResumeAllDevicesConfirmationDialog.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flightctl/ui-components",
3
- "version": "0.10.0-rc1",
3
+ "version": "0.10.0-rc3",
4
4
  "description": "Components for Flightctl UI",
5
5
  "repository": "https://github.com/flightctl/flightctl-ui.git",
6
6
  "homepage": "https://github.com/flightctl/flightctl-ui.git",
@@ -3,6 +3,8 @@ import {
3
3
  Dropdown,
4
4
  DropdownItem,
5
5
  DropdownList,
6
+ Masthead,
7
+ MastheadContent,
6
8
  MenuToggle,
7
9
  MenuToggleElement,
8
10
  PageSection,
@@ -44,6 +46,7 @@ const OrganizationDropdown = ({ organizationName, onSwitchOrganization }: Organi
44
46
  {organizationName}
45
47
  </MenuToggle>
46
48
  )}
49
+ popperProps={{ position: 'right' }}
47
50
  >
48
51
  <DropdownList>
49
52
  <DropdownItem onClick={onSwitchOrganization}>{t('Change Organization')}</DropdownItem>
@@ -52,14 +55,12 @@ const OrganizationDropdown = ({ organizationName, onSwitchOrganization }: Organi
52
55
  );
53
56
  };
54
57
 
55
- const PageNavigation = ({ children }: React.PropsWithChildren) => {
58
+ const PageNavigation = () => {
56
59
  const { currentOrganization, availableOrganizations } = useOrganizationGuardContext();
57
60
  const [showOrganizationModal, setShowOrganizationModal] = React.useState(false);
58
61
 
59
62
  const showOrganizationSelection = availableOrganizations.length > 1;
60
- const hasChildren = React.Children.count(children) > 0;
61
-
62
- if (!showOrganizationSelection && !hasChildren) {
63
+ if (!showOrganizationSelection) {
63
64
  return null;
64
65
  }
65
66
 
@@ -68,21 +69,24 @@ const PageNavigation = ({ children }: React.PropsWithChildren) => {
68
69
  return (
69
70
  <>
70
71
  <PageSection variant="light" padding={{ default: 'noPadding' }}>
71
- <Toolbar isFullHeight isStatic className="fctl-app_toolbar">
72
- <ToolbarContent>
73
- {hasChildren && <ToolbarItem>{children}</ToolbarItem>}
74
- {showOrganizationSelection && (
75
- <ToolbarItem>
76
- <OrganizationDropdown
77
- organizationName={currentOrgDisplayName}
78
- onSwitchOrganization={() => {
79
- setShowOrganizationModal(true);
80
- }}
81
- />
82
- </ToolbarItem>
83
- )}
84
- </ToolbarContent>
85
- </Toolbar>
72
+ <Masthead id="global-actions-masthead">
73
+ <MastheadContent>
74
+ <Toolbar isFullHeight isStatic className="fctl-subnav_toolbar">
75
+ <ToolbarContent>
76
+ {showOrganizationSelection && (
77
+ <ToolbarItem>
78
+ <OrganizationDropdown
79
+ organizationName={currentOrgDisplayName}
80
+ onSwitchOrganization={() => {
81
+ setShowOrganizationModal(true);
82
+ }}
83
+ />
84
+ </ToolbarItem>
85
+ )}
86
+ </ToolbarContent>
87
+ </Toolbar>
88
+ </MastheadContent>
89
+ </Masthead>
86
90
  </PageSection>
87
91
 
88
92
  {showOrganizationModal && (
@@ -130,22 +130,18 @@ const MassResumeDevicesModalContent = ({ onClose }: MassResumeDevicesModalProps)
130
130
  setSubmitError(undefined);
131
131
 
132
132
  try {
133
- let labels: FlightCtlLabel[];
133
+ let labels: FlightCtlLabel[] = [];
134
134
 
135
- if (values.mode === SelectionMode.ALL) {
136
- labels = [];
137
- } else {
138
- if (values.mode === SelectionMode.FLEET) {
139
- labels = getSelectedFleetLabels(fleets, values.fleetId);
140
- } else {
141
- labels = values.labels;
142
- }
143
- // This shouldn't happen due to validations, but since an empty label selector would target all existing devices,
144
- // wake sure the UI does't accidentally submit a request with an empty selector
145
- const emptySelection = labels.every((label) => label.key === '');
146
- if (labels.length === 0 || emptySelection) {
147
- throw new Error('The current selection would target all devices.');
148
- }
135
+ if (values.mode === SelectionMode.FLEET) {
136
+ labels = getSelectedFleetLabels(fleets, values.fleetId);
137
+ } else if (values.mode === SelectionMode.LABELS) {
138
+ labels = values.labels;
139
+ }
140
+ // This shouldn't happen due to validations, but since an empty label selector would target all existing devices,
141
+ // wake sure the UI does't accidentally submit a request with an empty selector
142
+ const emptySelection = labels.every((label) => label.key === '');
143
+ if (labels.length === 0 || emptySelection) {
144
+ throw new Error('The current selection would target all devices.');
149
145
  }
150
146
 
151
147
  const resumeRequest: DeviceResumeRequest = {
@@ -411,7 +407,7 @@ const MassResumeDevicesModalContent = ({ onClose }: MassResumeDevicesModalProps)
411
407
  {resumedCount !== undefined && hasResumedAllExpected && (
412
408
  <StackItem>
413
409
  <Alert isInline variant="success" title={t('Resume successful')}>
414
- {t('{{ resumedCount }} devices were resumed', { resumedCount })}
410
+ {t('{{ count }} devices were resumed', { count: resumedCount })}
415
411
  </Alert>
416
412
  </StackItem>
417
413
  )}
@@ -429,12 +425,12 @@ const MassResumeDevicesModalContent = ({ onClose }: MassResumeDevicesModalProps)
429
425
  </Stack>
430
426
  {showResumeAllConfirmation && (
431
427
  <ResumeAllDevicesConfirmationDialog
432
- deviceCountNum={deviceCountNum}
433
- onClose={(doConfirm) => {
428
+ devicesToResume={deviceCountNum}
429
+ onClose={(resumedCount) => {
430
+ setResumedCount(resumedCount);
431
+ setIsCountLoading(false);
432
+ setCountError(null);
434
433
  setShowResumeAllConfirmation(false);
435
- if (doConfirm) {
436
- performResume();
437
- }
438
434
  }}
439
435
  />
440
436
  )}
@@ -1,53 +1,132 @@
1
1
  import * as React from 'react';
2
- import { Button, Modal, ModalVariant, Stack, StackItem, Text, TextContent } from '@patternfly/react-core';
3
2
  import { Trans } from 'react-i18next';
3
+ import { Alert, Button, Modal, ModalVariant, Stack, StackItem, Text, TextContent } from '@patternfly/react-core';
4
+ import { DeviceResumeRequest, DeviceResumeResponse } from '@flightctl/types';
4
5
 
5
6
  import { useTranslation } from '../../../../hooks/useTranslation';
7
+ import { useFetch } from '../../../../hooks/useFetch';
8
+ import { getErrorMessage } from '../../../../utils/error';
6
9
 
7
10
  interface ResumeAllDevicesConfirmationModalProps {
8
- deviceCountNum: number;
9
- onClose: (doConfirm: boolean) => void;
11
+ devicesToResume: number;
12
+ onClose: (resumedCount: number | undefined) => void;
10
13
  isSubmitting?: boolean;
11
14
  }
12
15
 
13
- const ResumeAllDevicesConfirmationModal = ({ deviceCountNum, onClose }: ResumeAllDevicesConfirmationModalProps) => {
16
+ const ModalContentBeforeResume = ({ devicesToResume }: { devicesToResume: number }) => {
14
17
  const { t } = useTranslation();
15
18
 
16
- const deviceCount = deviceCountNum.toString();
19
+ const deviceCount = devicesToResume.toString();
20
+ return (
21
+ <Stack hasGutter>
22
+ <StackItem>
23
+ <TextContent>
24
+ <Text>
25
+ <Trans t={t} count={devicesToResume}>
26
+ You are about to resume all <strong>{deviceCount}</strong> suspended devices.
27
+ </Trans>
28
+ </Text>
29
+ </TextContent>
30
+ <TextContent>
31
+ <Text>
32
+ {t(
33
+ 'This action is irreversible and will allow all affected devices to receive new configuration updates from the server.',
34
+ )}
35
+ </Text>
36
+ </TextContent>
37
+ </StackItem>
38
+ </Stack>
39
+ );
40
+ };
41
+
42
+ const ModalContentAfterResume = ({
43
+ hasResumedAll,
44
+ resumedCount,
45
+ submitError,
46
+ }: {
47
+ hasResumedAll: boolean;
48
+ resumedCount: number;
49
+ submitError: string | undefined;
50
+ }) => {
51
+ const { t } = useTranslation();
52
+ if (submitError) {
53
+ return (
54
+ <Alert isInline variant="danger" title={t('Resume devices failed')}>
55
+ {submitError}
56
+ </Alert>
57
+ );
58
+ }
17
59
 
60
+ const alertType = hasResumedAll ? 'success' : 'warning';
61
+ const title = hasResumedAll ? t('Resume successful') : t('Resumed with warnings');
18
62
  return (
19
- <Modal
20
- variant={ModalVariant.small}
21
- title={t('Resume all {{ deviceCount }} devices?', { deviceCount })}
22
- isOpen
23
- onClose={() => onClose(false)}
24
- actions={[
25
- <Button key="confirm" variant="primary" onClick={() => onClose(true)}>
63
+ <Alert isInline variant={alertType} title={title}>
64
+ {t('{{ count }} devices were resumed', { count: resumedCount })}
65
+ </Alert>
66
+ );
67
+ };
68
+
69
+ const ResumeAllDevicesConfirmationModal = ({ devicesToResume, onClose }: ResumeAllDevicesConfirmationModalProps) => {
70
+ const { t } = useTranslation();
71
+ const { post } = useFetch();
72
+
73
+ const [resumedCount, setResumedCount] = React.useState<number | undefined>(undefined);
74
+ const [isSubmitting, setIsSubmitting] = React.useState(false);
75
+ const [submitError, setSubmitError] = React.useState<string | undefined>(undefined);
76
+
77
+ const isBeforeResume = resumedCount === undefined;
78
+ const title = isBeforeResume
79
+ ? t('Resume all {{ count }} devices?', { count: devicesToResume })
80
+ : t('Resume devices result');
81
+
82
+ const buttons = isBeforeResume
83
+ ? [
84
+ <Button
85
+ key="confirm"
86
+ variant="primary"
87
+ isDisabled={isSubmitting}
88
+ onClick={async () => {
89
+ setIsSubmitting(true);
90
+ try {
91
+ const resumeRequest: DeviceResumeRequest = {
92
+ labelSelector: '', // All devices
93
+ };
94
+ const resumeResponse = await post<DeviceResumeRequest, DeviceResumeResponse>(
95
+ 'deviceactions/resume',
96
+ resumeRequest,
97
+ );
98
+ setResumedCount(resumeResponse.resumedDevices || 0);
99
+ } catch (error) {
100
+ setResumedCount(0);
101
+ setSubmitError(getErrorMessage(error));
102
+ } finally {
103
+ setIsSubmitting(false);
104
+ }
105
+ }}
106
+ >
26
107
  {t('Resume all devices')}
27
108
  </Button>,
28
- <Button key="cancel" variant="link" onClick={() => onClose(false)}>
109
+ <Button key="cancel" variant="link" isDisabled={isSubmitting} onClick={() => onClose(undefined)}>
29
110
  {t('Cancel')}
30
111
  </Button>,
31
- ]}
32
- >
33
- <Stack hasGutter>
34
- <StackItem>
35
- <TextContent>
36
- <Text>
37
- <Trans t={t} count={deviceCountNum}>
38
- You are about to resume all <strong>{deviceCount}</strong> suspended devices.
39
- </Trans>
40
- </Text>
41
- </TextContent>
42
- <TextContent>
43
- <Text>
44
- {t(
45
- 'This action is irreversible and will allow all affected devices to receive new configuration updates from the server.',
46
- )}
47
- </Text>
48
- </TextContent>
49
- </StackItem>
50
- </Stack>
112
+ ]
113
+ : [
114
+ <Button key="close" variant="primary" onClick={() => onClose(resumedCount)}>
115
+ {t('Close')}
116
+ </Button>,
117
+ ];
118
+
119
+ return (
120
+ <Modal variant={ModalVariant.small} title={title} isOpen onClose={() => onClose(undefined)} actions={buttons}>
121
+ {isBeforeResume ? (
122
+ <ModalContentBeforeResume devicesToResume={devicesToResume} />
123
+ ) : (
124
+ <ModalContentAfterResume
125
+ resumedCount={resumedCount}
126
+ hasResumedAll={resumedCount === devicesToResume}
127
+ submitError={submitError}
128
+ />
129
+ )}
51
130
  </Modal>
52
131
  );
53
132
  };