foreman_rh_cloud 2.0.4 → 2.0.9

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 (176) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +8 -0
  3. data/app/controllers/foreman_inventory_upload/accounts_controller.rb +4 -6
  4. data/app/controllers/foreman_inventory_upload/uploads_controller.rb +33 -7
  5. data/app/controllers/foreman_rh_cloud/react_controller.rb +11 -0
  6. data/app/controllers/insights_cloud/tasks_controller.rb +8 -0
  7. data/app/helpers/foreman_inventory_upload_host_helper.rb +11 -0
  8. data/app/models/insights_facet.rb +3 -0
  9. data/app/models/insights_hit.rb +6 -0
  10. data/app/models/setting/rh_cloud.rb +15 -0
  11. data/app/overrides/hosts_list.rb +13 -0
  12. data/app/views/foreman_rh_cloud/react/insights_cloud.html.erb +6 -0
  13. data/app/views/foreman_rh_cloud/react/inventory_upload.html.erb +1 -0
  14. data/app/views/{foreman_inventory_upload/layouts/react.html.erb → layouts/foreman_rh_cloud/application.html.erb} +2 -2
  15. data/config/routes.rb +12 -1
  16. data/db/migrate/20191215104806_create_insights_hits.foreman_inventory_upload.rb +14 -0
  17. data/db/migrate/20191216062008_create_insights_facets.foreman_inventory_upload.rb +7 -0
  18. data/lib/foreman_inventory_upload.rb +12 -0
  19. data/lib/foreman_inventory_upload/async/async_helpers.rb +13 -0
  20. data/lib/foreman_inventory_upload/async/generate_all_reports_job.rb +8 -0
  21. data/lib/foreman_inventory_upload/async/shell_process.rb +9 -1
  22. data/lib/foreman_inventory_upload/async/upload_report_job.rb +1 -1
  23. data/lib/foreman_inventory_upload/generators/archived_report.rb +6 -3
  24. data/lib/foreman_inventory_upload/generators/fact_helpers.rb +56 -0
  25. data/lib/foreman_inventory_upload/generators/json_stream.rb +10 -0
  26. data/lib/foreman_inventory_upload/generators/queries.rb +7 -0
  27. data/lib/foreman_inventory_upload/generators/slice.rb +48 -22
  28. data/lib/foreman_inventory_upload/notifications/manifest_import_success_notification_override.rb +19 -0
  29. data/lib/foreman_inventory_upload/scripts/uploader.sh.erb +1 -1
  30. data/lib/foreman_rh_cloud/engine.rb +33 -5
  31. data/lib/foreman_rh_cloud/version.rb +1 -1
  32. data/lib/insights_cloud.rb +15 -0
  33. data/lib/insights_cloud/async/insights_full_sync.rb +96 -0
  34. data/test/controllers/accounts_controller_test.rb +8 -3
  35. data/test/controllers/uploads_controller_test.rb +13 -0
  36. data/test/factories/inventory_upload_factories.rb +13 -13
  37. data/test/jobs/insights_full_sync_test.rb +92 -0
  38. data/test/unit/archived_report_generator_test.rb +1 -0
  39. data/test/unit/fact_helpers_test.rb +29 -0
  40. data/test/unit/slice_generator_test.rb +277 -15
  41. data/webpack/ForemanInventoryUpload/Components/AccountList/AccountList.fixtures.js +14 -2
  42. data/webpack/ForemanInventoryUpload/Components/AccountList/AccountList.js +13 -10
  43. data/webpack/ForemanInventoryUpload/Components/AccountList/AccountListActions.js +6 -3
  44. data/webpack/ForemanInventoryUpload/Components/AccountList/AccountListHelper.js +10 -0
  45. data/webpack/ForemanInventoryUpload/Components/AccountList/AccountListReducer.js +16 -0
  46. data/webpack/ForemanInventoryUpload/Components/AccountList/AccountListSelectors.js +10 -1
  47. data/webpack/ForemanInventoryUpload/Components/AccountList/Components/EmptyResults/EmptyResults.js +15 -0
  48. data/webpack/ForemanInventoryUpload/Components/AccountList/Components/EmptyResults/__tests__/EmptyResults.test.js +13 -0
  49. data/webpack/ForemanInventoryUpload/Components/AccountList/Components/EmptyResults/__tests__/__snapshots__/EmptyResults.test.js.snap +18 -0
  50. data/webpack/ForemanInventoryUpload/Components/AccountList/Components/EmptyResults/emptyResults.scss +7 -0
  51. data/webpack/ForemanInventoryUpload/Components/AccountList/Components/EmptyResults/index.js +1 -0
  52. data/webpack/ForemanInventoryUpload/Components/AccountList/Components/ListItem/ListItem.js +1 -4
  53. data/webpack/ForemanInventoryUpload/Components/AccountList/__tests__/AccountList.test.js +1 -0
  54. data/webpack/ForemanInventoryUpload/Components/AccountList/__tests__/AccountListActions.test.js +8 -1
  55. data/webpack/ForemanInventoryUpload/Components/AccountList/__tests__/AccountListHelper.test.js +12 -0
  56. data/webpack/ForemanInventoryUpload/Components/AccountList/__tests__/AccountListIntegration.test.js +1 -1
  57. data/webpack/ForemanInventoryUpload/Components/AccountList/__tests__/AccountListReducer.test.js +22 -0
  58. data/webpack/ForemanInventoryUpload/Components/AccountList/__tests__/AccountListSelectors.test.js +20 -8
  59. data/webpack/ForemanInventoryUpload/Components/AccountList/__tests__/__snapshots__/AccountList.test.js.snap +2 -3
  60. data/webpack/ForemanInventoryUpload/Components/AccountList/__tests__/__snapshots__/AccountListActions.test.js.snap +20 -2
  61. data/webpack/ForemanInventoryUpload/Components/AccountList/__tests__/__snapshots__/AccountListReducer.test.js.snap +20 -0
  62. data/webpack/ForemanInventoryUpload/Components/AccountList/__tests__/__snapshots__/AccountListSelectors.test.js.snap +8 -2
  63. data/webpack/ForemanInventoryUpload/Components/AccountList/index.js +2 -0
  64. data/webpack/ForemanInventoryUpload/Components/AutoUploadSwitcher/AutoUploadSwitcher.fixtures.js +1 -0
  65. data/webpack/ForemanInventoryUpload/Components/AutoUploadSwitcher/AutoUploadSwitcher.js +32 -0
  66. data/webpack/ForemanInventoryUpload/Components/AutoUploadSwitcher/AutoUploadSwitcherActions.js +30 -0
  67. data/webpack/ForemanInventoryUpload/Components/AutoUploadSwitcher/AutoUploadSwitcherConstants.js +2 -0
  68. data/webpack/ForemanInventoryUpload/Components/AutoUploadSwitcher/__tests__/AutoUploadSwitcher.test.js +14 -0
  69. data/webpack/ForemanInventoryUpload/Components/AutoUploadSwitcher/__tests__/AutoUploadSwitcherActions.test.js +14 -0
  70. data/webpack/ForemanInventoryUpload/Components/AutoUploadSwitcher/__tests__/__snapshots__/AutoUploadSwitcher.test.js.snap +38 -0
  71. data/webpack/ForemanInventoryUpload/Components/AutoUploadSwitcher/__tests__/__snapshots__/AutoUploadSwitcherActions.test.js.snap +14 -0
  72. data/webpack/ForemanInventoryUpload/Components/AutoUploadSwitcher/autoUploadSwitcher.scss +3 -0
  73. data/webpack/ForemanInventoryUpload/Components/AutoUploadSwitcher/index.js +17 -0
  74. data/webpack/ForemanInventoryUpload/Components/Dashboard/DashboardActions.js +4 -3
  75. data/webpack/ForemanInventoryUpload/Components/Dashboard/DashboardSelectors.js +1 -1
  76. data/webpack/ForemanInventoryUpload/Components/Dashboard/__tests__/DashboardActions.test.js +2 -3
  77. data/webpack/ForemanInventoryUpload/Components/Dashboard/__tests__/DashboardIntegration.test.js +2 -1
  78. data/webpack/ForemanInventoryUpload/Components/Dashboard/__tests__/DashboardSelectors.test.js +3 -2
  79. data/webpack/ForemanInventoryUpload/Components/HostObfuscationSwitcher/HostObfuscationSwitcher.fixtures.js +1 -0
  80. data/webpack/ForemanInventoryUpload/Components/HostObfuscationSwitcher/HostObfuscationSwitcher.js +29 -0
  81. data/webpack/ForemanInventoryUpload/Components/HostObfuscationSwitcher/HostObfuscationSwitcherActions.js +30 -0
  82. data/webpack/ForemanInventoryUpload/Components/HostObfuscationSwitcher/HostObfuscationSwitcherConstants.js +3 -0
  83. data/webpack/ForemanInventoryUpload/Components/HostObfuscationSwitcher/__tests__/HostObfuscationSwitcher.test.js +14 -0
  84. data/webpack/ForemanInventoryUpload/Components/HostObfuscationSwitcher/__tests__/HostObfuscationSwitcherActions.test.js +14 -0
  85. data/webpack/ForemanInventoryUpload/Components/HostObfuscationSwitcher/__tests__/__snapshots__/HostObfuscationSwitcher.test.js.snap +38 -0
  86. data/webpack/ForemanInventoryUpload/Components/HostObfuscationSwitcher/__tests__/__snapshots__/HostObfuscationSwitcherActions.test.js.snap +14 -0
  87. data/webpack/ForemanInventoryUpload/Components/HostObfuscationSwitcher/hostObfuscationSwitcher.scss +0 -0
  88. data/webpack/ForemanInventoryUpload/Components/HostObfuscationSwitcher/index.js +20 -0
  89. data/webpack/ForemanInventoryUpload/Components/InventoryFilter/Components/ClearButton/ClearButton.js +26 -0
  90. data/webpack/ForemanInventoryUpload/Components/InventoryFilter/Components/ClearButton/index.js +1 -0
  91. data/webpack/ForemanInventoryUpload/Components/InventoryFilter/InventoryFilter.fixtures.js +2 -0
  92. data/webpack/ForemanInventoryUpload/Components/InventoryFilter/InventoryFilter.js +39 -0
  93. data/webpack/ForemanInventoryUpload/Components/InventoryFilter/InventoryFilterActions.js +16 -0
  94. data/webpack/ForemanInventoryUpload/Components/InventoryFilter/InventoryFilterConstants.js +3 -0
  95. data/webpack/ForemanInventoryUpload/Components/InventoryFilter/InventoryFilterReducer.js +36 -0
  96. data/webpack/ForemanInventoryUpload/Components/InventoryFilter/InventoryFilterSelectors.js +7 -0
  97. data/webpack/ForemanInventoryUpload/Components/InventoryFilter/__tests__/InventoryFilter.test.js +14 -0
  98. data/webpack/ForemanInventoryUpload/Components/InventoryFilter/__tests__/InventoryFilterActions.test.js +14 -0
  99. data/webpack/ForemanInventoryUpload/Components/InventoryFilter/__tests__/InventoryFilterReducer.test.js +35 -0
  100. data/webpack/ForemanInventoryUpload/Components/InventoryFilter/__tests__/InventoryFilterSelectors.test.js +21 -0
  101. data/webpack/ForemanInventoryUpload/Components/InventoryFilter/__tests__/__snapshots__/InventoryFilter.test.js.snap +25 -0
  102. data/webpack/ForemanInventoryUpload/Components/InventoryFilter/__tests__/__snapshots__/InventoryFilterActions.test.js.snap +17 -0
  103. data/webpack/ForemanInventoryUpload/Components/InventoryFilter/__tests__/__snapshots__/InventoryFilterReducer.test.js.snap +25 -0
  104. data/webpack/ForemanInventoryUpload/Components/InventoryFilter/__tests__/__snapshots__/InventoryFilterSelectors.test.js.snap +9 -0
  105. data/webpack/ForemanInventoryUpload/Components/InventoryFilter/__tests__/__snapshots__/integration.test.js.snap +31 -0
  106. data/webpack/ForemanInventoryUpload/Components/InventoryFilter/__tests__/integration.test.js +18 -0
  107. data/webpack/ForemanInventoryUpload/Components/InventoryFilter/index.js +17 -0
  108. data/webpack/ForemanInventoryUpload/Components/InventoryFilter/inventoryFilter.scss +28 -0
  109. data/webpack/ForemanInventoryUpload/Components/InventorySettings/InventorySettings.js +15 -0
  110. data/webpack/ForemanInventoryUpload/Components/InventorySettings/__tests__/InventorySettings.test.js +13 -0
  111. data/webpack/ForemanInventoryUpload/Components/InventorySettings/__tests__/__snapshots__/InventorySettings.test.js.snap +13 -0
  112. data/webpack/ForemanInventoryUpload/Components/InventorySettings/index.js +1 -0
  113. data/webpack/ForemanInventoryUpload/Components/InventorySettings/inventorySettings.scss +15 -0
  114. data/webpack/ForemanInventoryUpload/Components/PageHeader/PageHeader.js +40 -0
  115. data/webpack/ForemanInventoryUpload/Components/PageHeader/__tests__/PageHeader.test.js +13 -0
  116. data/webpack/ForemanInventoryUpload/Components/PageHeader/__tests__/__snapshots__/PageHeader.test.js.snap +61 -0
  117. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/DocsButton/DocsButton.js +17 -0
  118. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/DocsButton/__tests__/DocsButton.test.js +12 -0
  119. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/DocsButton/__tests__/__snapshots__/DocsButton.test.js.snap +20 -0
  120. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/DocsButton/index.js +1 -0
  121. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/HistoryButton/HistoryButton.js +18 -0
  122. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/HistoryButton/__tests__/HistoryButton.test.js +12 -0
  123. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/HistoryButton/__tests__/__snapshots__/HistoryButton.test.js.snap +21 -0
  124. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/HistoryButton/index.js +1 -0
  125. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/PageDescription/PageDescription.js +24 -0
  126. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/PageDescription/__tests__/PageDescription.test.js +11 -0
  127. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/PageDescription/__tests__/__snapshots__/PageDescription.test.js.snap +17 -0
  128. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/PageDescription/index.js +1 -0
  129. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/ToolbarButtons/ToolbarButtons.js +13 -0
  130. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/ToolbarButtons/__tests__/ToolbarButtons.test.js +12 -0
  131. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/ToolbarButtons/__tests__/__snapshots__/ToolbarButtons.test.js.snap +10 -0
  132. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/ToolbarButtons/index.js +1 -0
  133. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/ToolbarButtons/toolbarButtons.scss +7 -0
  134. data/webpack/ForemanInventoryUpload/Components/PageHeader/index.js +1 -0
  135. data/webpack/ForemanInventoryUpload/Components/PageHeader/pageHeader.scss +3 -0
  136. data/webpack/ForemanInventoryUpload/Components/ScheduledRun/ScheduledRun.fixtures.js +1 -0
  137. data/webpack/ForemanInventoryUpload/Components/ScheduledRun/ScheduledRun.js +4 -2
  138. data/webpack/ForemanInventoryUpload/Components/ScheduledRun/__tests__/ScheduledRun.test.js +0 -1
  139. data/webpack/ForemanInventoryUpload/Components/ScheduledRun/__tests__/__snapshots__/ScheduledRun.test.js.snap +0 -2
  140. data/webpack/ForemanInventoryUpload/Components/ScheduledRun/index.js +12 -1
  141. data/webpack/ForemanInventoryUpload/Components/TabBody/__tests__/__snapshots__/TabBody.test.js.snap +1 -1
  142. data/webpack/ForemanInventoryUpload/ForemanInventoryConstants.js +7 -0
  143. data/webpack/ForemanInventoryUpload/ForemanInventoryHelpers.js +17 -0
  144. data/webpack/ForemanInventoryUpload/ForemanInventoryUpload.js +18 -9
  145. data/webpack/ForemanInventoryUpload/ForemanInventoryUploadReducers.js +4 -4
  146. data/webpack/ForemanInventoryUpload/SubscriptionsPageExtension/SubscriptionsPageExtensionActions.js +34 -0
  147. data/webpack/ForemanInventoryUpload/__tests__/ForemanInventoryHelpers.test.js +10 -0
  148. data/webpack/ForemanInventoryUpload/{ForemanInventoryUpload.test.js → __tests__/ForemanInventoryUpload.test.js} +1 -1
  149. data/webpack/ForemanInventoryUpload/__tests__/__snapshots__/ForemanInventoryHelpers.test.js.snap +5 -0
  150. data/webpack/ForemanInventoryUpload/{__snapshots__ → __tests__/__snapshots__}/ForemanInventoryUpload.test.js.snap +6 -5
  151. data/webpack/ForemanRhCloudHelpers.js +6 -0
  152. data/webpack/ForemanRhCloudReducers.js +10 -0
  153. data/webpack/ForemanRhCloudSelectors.js +5 -0
  154. data/webpack/ForemanRhCloudTestHelpers.js +6 -0
  155. data/webpack/InsightsCloudSync/InsightsCloudSync.js +55 -0
  156. data/webpack/InsightsCloudSync/InsightsCloudSync.test.js +16 -0
  157. data/webpack/InsightsCloudSync/InsightsCloudSyncActions.js +23 -0
  158. data/webpack/InsightsCloudSync/InsightsCloudSyncConstants.js +6 -0
  159. data/webpack/InsightsCloudSync/InsightsCloudSyncHelpers.js +3 -0
  160. data/webpack/InsightsCloudSync/InsightsCloudSyncReducers.js +3 -0
  161. data/webpack/InsightsCloudSync/__snapshots__/InsightsCloudSync.test.js.snap +62 -0
  162. data/webpack/InsightsCloudSync/__tests__/InsightsCloudSyncHelpers.test.js +9 -0
  163. data/webpack/InsightsCloudSync/__tests__/__snapshots__/InsightsCloudSyncHelpers.test.js.snap +3 -0
  164. data/webpack/InsightsCloudSync/index.js +17 -0
  165. data/webpack/__mocks__/foremanReact/components/Layout/LayoutConstants.js +1 -0
  166. data/webpack/__tests__/ForemanRhCloudHelpers.test.js +11 -0
  167. data/webpack/__tests__/ForemanRhCloudSelectors.test.js +19 -0
  168. data/webpack/__tests__/ForemanRhCloudTestHelpers.test.js +10 -0
  169. data/webpack/__tests__/__snapshots__/ForemanRhCloudHelpers.test.js.snap +3 -0
  170. data/webpack/__tests__/__snapshots__/ForemanRhCloudSelectors.test.js.snap +24 -0
  171. data/webpack/__tests__/__snapshots__/ForemanRhCloudTestHelpers.test.js.snap +14 -0
  172. data/webpack/index.js +8 -1
  173. data/webpack/subscriptions_extension_index.js +8 -0
  174. metadata +124 -7
  175. data/app/controllers/foreman_inventory_upload/react_controller.rb +0 -7
  176. data/webpack/ForemanInventoryUpload/ForemanInventoryUploadSelectors.js +0 -4
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ import { IntegrationTestHelper } from '@theforeman/test';
3
+ import InventoryFilter from '../index';
4
+ import reducers from '../../../../ForemanRhCloudReducers';
5
+
6
+ describe('InventoryFilter integration test', () => {
7
+ it('should flow', async () => {
8
+ const integrationTestHelper = new IntegrationTestHelper(reducers);
9
+ const wrapper = integrationTestHelper.mount(<InventoryFilter />);
10
+ const input = wrapper.find('#inventory_filter_input');
11
+ input.simulate('change', { target: { value: 'some_new_filter' } });
12
+ await IntegrationTestHelper.flushAllPromises();
13
+ wrapper.update();
14
+ integrationTestHelper.takeStoreAndLastActionSnapshot(
15
+ 'filter have been updated'
16
+ );
17
+ });
18
+ });
@@ -0,0 +1,17 @@
1
+ import { bindActionCreators } from 'redux';
2
+ import { connect } from 'react-redux';
3
+ import reducer from './InventoryFilterReducer';
4
+ import * as actions from './InventoryFilterActions';
5
+ import InventoryFilter from './InventoryFilter';
6
+ import { selectFilterTerm } from './InventoryFilterSelectors';
7
+
8
+ export const reducers = { inventoryFilter: reducer };
9
+
10
+ const mapStateToProps = state => ({
11
+ filterTerm: selectFilterTerm(state),
12
+ });
13
+ // map action dispatchers to props
14
+ const mapDispatchToProps = dispatch => bindActionCreators(actions, dispatch);
15
+
16
+ // export connected component
17
+ export default connect(mapStateToProps, mapDispatchToProps)(InventoryFilter);
@@ -0,0 +1,28 @@
1
+ #inventory_filter_form {
2
+ .form-group {
3
+ display: -ms-flexbox;
4
+ display: -webkit-flex;
5
+ display: flex;
6
+ -webkit-flex-direction: row;
7
+ -ms-flex-direction: row;
8
+ flex-direction: row;
9
+ -webkit-flex-wrap: nowrap;
10
+ -ms-flex-wrap: nowrap;
11
+ flex-wrap: nowrap;
12
+ -webkit-justify-content: flex-end;
13
+ -ms-flex-pack: end;
14
+ justify-content: flex-end;
15
+ -webkit-align-content: center;
16
+ -ms-flex-line-pack: center;
17
+ align-content: center;
18
+ -webkit-align-items: center;
19
+ -ms-flex-align: center;
20
+ align-items: center;
21
+ margin-bottom: 0;
22
+
23
+ .inventory-clear-button {
24
+ position: absolute;
25
+ right: 27px;
26
+ }
27
+ }
28
+ }
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ import { translate as __ } from 'foremanReact/common/I18n';
3
+ import AutoUploadSwitcher from '../AutoUploadSwitcher';
4
+ import HostObfuscationSwitcher from '../HostObfuscationSwitcher';
5
+ import './inventorySettings.scss';
6
+
7
+ const InventorySettings = () => (
8
+ <div className="inventory_settings">
9
+ <h3>{__('Settings')}</h3>
10
+ <AutoUploadSwitcher />
11
+ <HostObfuscationSwitcher />
12
+ </div>
13
+ );
14
+
15
+ export default InventorySettings;
@@ -0,0 +1,13 @@
1
+ import { testComponentSnapshotsWithFixtures } from '@theforeman/test';
2
+
3
+ import InventorySettings from '../InventorySettings';
4
+
5
+ const fixtures = {
6
+ 'render without Props': {},
7
+ /** fixtures, props for the component */
8
+ };
9
+
10
+ describe('InventorySettings', () => {
11
+ describe('rendering', () =>
12
+ testComponentSnapshotsWithFixtures(InventorySettings, fixtures));
13
+ });
@@ -0,0 +1,13 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`InventorySettings rendering render without Props 1`] = `
4
+ <div
5
+ className="inventory_settings"
6
+ >
7
+ <h3>
8
+ Settings
9
+ </h3>
10
+ <Connect(AutoUploadSwitcher) />
11
+ <Connect(HostObfuscationSwitcher) />
12
+ </div>
13
+ `;
@@ -0,0 +1 @@
1
+ export { default } from './InventorySettings';
@@ -0,0 +1,15 @@
1
+ .inventory_settings {
2
+ border: 1px solid #ededed;
3
+ border-radius: 4px;
4
+ padding: 10px;
5
+ margin-bottom: 15px;
6
+
7
+ h3 {
8
+ margin-top: 0;
9
+ font-weight: 600;
10
+ }
11
+
12
+ .bootstrap-switch {
13
+ float: right;
14
+ }
15
+ }
@@ -0,0 +1,40 @@
1
+ import React from 'react';
2
+ import { Grid } from 'patternfly-react';
3
+ import InventorySettings from '../InventorySettings';
4
+ import PageDescription from './components/PageDescription';
5
+ import InventoryFilter from '../InventoryFilter';
6
+ import ToolbarButtons from './components/ToolbarButtons';
7
+ import { INVENTORY_PAGE_TITLE } from '../../ForemanInventoryConstants';
8
+ import './pageHeader.scss';
9
+
10
+ const PageHeader = () => (
11
+ <React.Fragment>
12
+ <Grid.Row>
13
+ <Grid.Col xs={6}>
14
+ <h1 className="inventory_title">{INVENTORY_PAGE_TITLE}</h1>
15
+ </Grid.Col>
16
+ </Grid.Row>
17
+ <Grid.Row>
18
+ <Grid.Col xs={9}>
19
+ <PageDescription />
20
+ </Grid.Col>
21
+ <Grid.Col xs={3}>
22
+ <InventorySettings />
23
+ </Grid.Col>
24
+ </Grid.Row>
25
+ <Grid.Row>
26
+ <Grid.Col xs={4}>
27
+ <InventoryFilter />
28
+ </Grid.Col>
29
+ <Grid.Col xs={4} xsOffset={4}>
30
+ <ToolbarButtons />
31
+ </Grid.Col>
32
+ </Grid.Row>
33
+ </React.Fragment>
34
+ );
35
+
36
+ PageHeader.propTypes = {};
37
+
38
+ PageHeader.defaultProps = {};
39
+
40
+ export default PageHeader;
@@ -0,0 +1,13 @@
1
+ import { testComponentSnapshotsWithFixtures } from '@theforeman/test';
2
+
3
+ import PageHeader from '../PageHeader';
4
+
5
+ const fixtures = {
6
+ 'render without Props': {},
7
+ /** fixtures, props for the component */
8
+ };
9
+
10
+ describe('PageHeader', () => {
11
+ describe('rendering', () =>
12
+ testComponentSnapshotsWithFixtures(PageHeader, fixtures));
13
+ });
@@ -0,0 +1,61 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`PageHeader rendering render without Props 1`] = `
4
+ <Fragment>
5
+ <Row
6
+ bsClass="row"
7
+ componentClass="div"
8
+ >
9
+ <Col
10
+ bsClass="col"
11
+ componentClass="div"
12
+ xs={6}
13
+ >
14
+ <h1
15
+ className="inventory_title"
16
+ >
17
+ Red Hat Inventory Uploads
18
+ </h1>
19
+ </Col>
20
+ </Row>
21
+ <Row
22
+ bsClass="row"
23
+ componentClass="div"
24
+ >
25
+ <Col
26
+ bsClass="col"
27
+ componentClass="div"
28
+ xs={9}
29
+ >
30
+ <PageDescription />
31
+ </Col>
32
+ <Col
33
+ bsClass="col"
34
+ componentClass="div"
35
+ xs={3}
36
+ >
37
+ <InventorySettings />
38
+ </Col>
39
+ </Row>
40
+ <Row
41
+ bsClass="row"
42
+ componentClass="div"
43
+ >
44
+ <Col
45
+ bsClass="col"
46
+ componentClass="div"
47
+ xs={4}
48
+ >
49
+ <Connect(InventoryFilter) />
50
+ </Col>
51
+ <Col
52
+ bsClass="col"
53
+ componentClass="div"
54
+ xs={4}
55
+ xsOffset={4}
56
+ >
57
+ <ToolbarButtons />
58
+ </Col>
59
+ </Row>
60
+ </Fragment>
61
+ `;
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ import { Button, Icon } from 'patternfly-react';
3
+ import { DOCS_BUTTON_TEXT } from '../../../../ForemanInventoryConstants';
4
+ import { getInventoryDocsUrl } from '../../../../ForemanInventoryHelpers';
5
+
6
+ const DocsButton = () => (
7
+ <Button
8
+ href={getInventoryDocsUrl()}
9
+ target="_blank"
10
+ rel="noopener noreferrer"
11
+ >
12
+ <Icon type="pf" name="help" />
13
+ {DOCS_BUTTON_TEXT}
14
+ </Button>
15
+ );
16
+
17
+ export default DocsButton;
@@ -0,0 +1,12 @@
1
+ import { testComponentSnapshotsWithFixtures } from '@theforeman/test';
2
+
3
+ import DocsButton from '../DocsButton';
4
+
5
+ const fixtures = {
6
+ 'render without Props': {},
7
+ };
8
+
9
+ describe('DocsButton', () => {
10
+ describe('rendering', () =>
11
+ testComponentSnapshotsWithFixtures(DocsButton, fixtures));
12
+ });
@@ -0,0 +1,20 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`DocsButton rendering render without Props 1`] = `
4
+ <Button
5
+ active={false}
6
+ block={false}
7
+ bsClass="btn"
8
+ bsStyle="default"
9
+ disabled={false}
10
+ href="/links/manual/+?root_url=https%3A%2F%2Faccess.redhat.com%2Fproducts%2Fsubscription-central"
11
+ rel="noopener noreferrer"
12
+ target="_blank"
13
+ >
14
+ <Icon
15
+ name="help"
16
+ type="pf"
17
+ />
18
+ Documentation
19
+ </Button>
20
+ `;
@@ -0,0 +1 @@
1
+ export { default } from './DocsButton';
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ import { Button, Icon } from 'patternfly-react';
3
+ import { ACTIONS_HISTORY_BUTTON_TEXT } from '../../../../ForemanInventoryConstants';
4
+ import { getActionsHistoryUrl } from '../../../../ForemanInventoryHelpers';
5
+
6
+ const HistoryButton = () => (
7
+ <Button
8
+ className="tasks_history_button"
9
+ href={getActionsHistoryUrl()}
10
+ target="_blank"
11
+ rel="noopener noreferrer"
12
+ >
13
+ <Icon name="history" />
14
+ {ACTIONS_HISTORY_BUTTON_TEXT}
15
+ </Button>
16
+ );
17
+
18
+ export default HistoryButton;
@@ -0,0 +1,12 @@
1
+ import { testComponentSnapshotsWithFixtures } from '@theforeman/test';
2
+
3
+ import HistoryButton from '../HistoryButton';
4
+
5
+ const fixtures = {
6
+ 'render without Props': {},
7
+ };
8
+
9
+ describe('HistoryButton', () => {
10
+ describe('rendering', () =>
11
+ testComponentSnapshotsWithFixtures(HistoryButton, fixtures));
12
+ });
@@ -0,0 +1,21 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`HistoryButton rendering render without Props 1`] = `
4
+ <Button
5
+ active={false}
6
+ block={false}
7
+ bsClass="btn"
8
+ bsStyle="default"
9
+ className="tasks_history_button"
10
+ disabled={false}
11
+ href="/foreman_tasks/tasks?search=action++%3D++ForemanInventoryUpload%3A%3AAsync%3A%3AGenerateReportJob+or+action++%3D++ForemanInventoryUpload%3A%3AAsync%3A%3AGenerateAllReportsJob&page=1"
12
+ rel="noopener noreferrer"
13
+ target="_blank"
14
+ >
15
+ <Icon
16
+ name="history"
17
+ type="fa"
18
+ />
19
+ Actions history
20
+ </Button>
21
+ `;
@@ -0,0 +1 @@
1
+ export { default } from './HistoryButton';
@@ -0,0 +1,24 @@
1
+ import React from 'react';
2
+ import { translate as __ } from 'foremanReact/common/I18n';
3
+
4
+ export const PageDescription = () => (
5
+ <div id="inventory_page_description">
6
+ <p>
7
+ {__(
8
+ 'Red Hat Insights is a set of cloud services which provide unified subscription reporting, predictive analysis and remediation of issues through this Satellite instance.'
9
+ )}
10
+ </p>
11
+ <p>
12
+ {__(
13
+ 'In order to utilize these services, you can set the auto upload in the settings to "ON".'
14
+ )}
15
+ </p>
16
+ <p>
17
+ {__(
18
+ 'You can also trigger the upload manually by opening the relevant organization card, and clicking on the "Restart" button'
19
+ )}
20
+ </p>
21
+ </div>
22
+ );
23
+
24
+ export default PageDescription;
@@ -0,0 +1,11 @@
1
+ import { testComponentSnapshotsWithFixtures } from '@theforeman/test';
2
+ import { PageDescription } from '../PageDescription';
3
+
4
+ const fixtures = {
5
+ 'render without Props': {},
6
+ };
7
+
8
+ describe('PageDescription', () => {
9
+ describe('rendering', () =>
10
+ testComponentSnapshotsWithFixtures(PageDescription, fixtures));
11
+ });
@@ -0,0 +1,17 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`PageDescription rendering render without Props 1`] = `
4
+ <div
5
+ id="inventory_page_description"
6
+ >
7
+ <p>
8
+ Red Hat Insights is a set of cloud services which provide unified subscription reporting, predictive analysis and remediation of issues through this Satellite instance.
9
+ </p>
10
+ <p>
11
+ In order to utilize these services, you can set the auto upload in the settings to "ON".
12
+ </p>
13
+ <p>
14
+ You can also trigger the upload manually by opening the relevant organization card, and clicking on the "Restart" button
15
+ </p>
16
+ </div>
17
+ `;
@@ -0,0 +1 @@
1
+ export { default } from './PageDescription';
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import DocsButton from '../DocsButton';
3
+ import HistoryButton from '../HistoryButton';
4
+ import './toolbarButtons.scss';
5
+
6
+ const ToolbarButtons = () => (
7
+ <div className="inventory_toolbar_buttons">
8
+ <HistoryButton />
9
+ <DocsButton />
10
+ </div>
11
+ );
12
+
13
+ export default ToolbarButtons;
@@ -0,0 +1,12 @@
1
+ import { testComponentSnapshotsWithFixtures } from '@theforeman/test';
2
+
3
+ import ToolbarButtons from '../ToolbarButtons';
4
+
5
+ const fixtures = {
6
+ 'render without Props': {},
7
+ };
8
+
9
+ describe('ToolbarButtons', () => {
10
+ describe('rendering', () =>
11
+ testComponentSnapshotsWithFixtures(ToolbarButtons, fixtures));
12
+ });