foreman-tasks 0.17.6 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (198) hide show
  1. checksums.yaml +4 -4
  2. data/.eslintrc +2 -22
  3. data/.rubocop.yml +12 -12
  4. data/.rubocop_todo.yml +34 -116
  5. data/.travis.yml +2 -2
  6. data/app/controllers/foreman_tasks/api/recurring_logics_controller.rb +20 -1
  7. data/app/controllers/foreman_tasks/api/tasks_controller.rb +66 -11
  8. data/app/controllers/foreman_tasks/concerns/hosts_controller_extension.rb +1 -1
  9. data/app/controllers/foreman_tasks/recurring_logics_controller.rb +19 -0
  10. data/app/controllers/foreman_tasks/tasks_controller.rb +3 -11
  11. data/app/helpers/foreman_tasks/foreman_tasks_helper.rb +0 -2
  12. data/app/lib/actions/helpers/humanizer.rb +1 -3
  13. data/app/lib/actions/proxy_action.rb +33 -12
  14. data/app/lib/foreman_tasks/concerns/polling_action_extensions.rb +12 -0
  15. data/app/models/foreman_tasks/concerns/action_triggering.rb +1 -1
  16. data/app/models/foreman_tasks/recurring_logic.rb +1 -0
  17. data/app/models/foreman_tasks/remote_task.rb +1 -0
  18. data/app/models/foreman_tasks/task.rb +8 -0
  19. data/app/models/foreman_tasks/task/dynflow_task.rb +1 -1
  20. data/app/models/foreman_tasks/task/search.rb +11 -1
  21. data/app/models/setting/foreman_tasks.rb +7 -2
  22. data/app/services/ui_notifications/tasks/task_bulk_cancel.rb +36 -0
  23. data/app/services/ui_notifications/tasks/task_bulk_resume.rb +38 -0
  24. data/app/services/ui_notifications/tasks/task_bulk_stop.rb +36 -0
  25. data/app/views/foreman_tasks/api/recurring_logics/base.json.rabl +2 -1
  26. data/app/views/foreman_tasks/api/tasks/details.json.rabl +1 -1
  27. data/app/views/foreman_tasks/api/tasks/show.json.rabl +1 -1
  28. data/app/views/foreman_tasks/recurring_logics/index.html.erb +30 -0
  29. data/app/views/foreman_tasks/tasks/show.html.erb +3 -0
  30. data/babel.config.js +3 -0
  31. data/config/routes.rb +8 -0
  32. data/db/migrate/20200517215015_rename_bookmarks_controller.rb +35 -0
  33. data/db/migrate/20200519093217_drop_dynflow_allow_dangerous_actions_setting.foreman_tasks.rb +5 -0
  34. data/db/seeds.d/30-notification_blueprints.rb +21 -0
  35. data/foreman-tasks.gemspec +5 -6
  36. data/gemfile.d/foreman-tasks.rb +1 -0
  37. data/lib/foreman_tasks/dynflow/console_authorizer.rb +2 -2
  38. data/lib/foreman_tasks/engine.rb +17 -14
  39. data/lib/foreman_tasks/tasks/cleanup.rake +1 -1
  40. data/lib/foreman_tasks/tasks/export_tasks.rake +2 -2
  41. data/lib/foreman_tasks/test_extensions.rb +1 -1
  42. data/lib/foreman_tasks/version.rb +1 -1
  43. data/locale/action_names.rb +2 -2
  44. data/locale/en/foreman_tasks.po +227 -41
  45. data/locale/foreman_tasks.pot +579 -288
  46. data/package.json +19 -79
  47. data/script/rails +2 -2
  48. data/script/travis_run_js_tests.sh +2 -2
  49. data/test/controllers/api/tasks_controller_test.rb +9 -0
  50. data/test/factories/task_factory.rb +34 -2
  51. data/test/foreman_tasks_test_helper.rb +4 -0
  52. data/test/lib/concerns/polling_action_extensions_test.rb +34 -0
  53. data/test/unit/actions/action_with_sub_plans_test.rb +1 -1
  54. data/test/unit/task_test.rb +160 -74
  55. data/webpack/ForemanTasks/Components/TaskActions/TaskAction.test.js +60 -0
  56. data/webpack/ForemanTasks/Components/TaskActions/TaskActionHelpers.js +67 -0
  57. data/webpack/ForemanTasks/Components/TaskActions/TaskActionHelpers.test.js +46 -0
  58. data/webpack/ForemanTasks/Components/TaskActions/TaskActionsConstants.js +16 -0
  59. data/webpack/ForemanTasks/Components/TaskActions/UnlockModals.js +60 -0
  60. data/webpack/ForemanTasks/Components/TaskActions/UnlockModals.test.js +14 -0
  61. data/webpack/ForemanTasks/Components/TaskActions/__snapshots__/TaskAction.test.js.snap +233 -0
  62. data/webpack/ForemanTasks/Components/TaskActions/__snapshots__/UnlockModals.test.js.snap +25 -0
  63. data/webpack/ForemanTasks/Components/TaskActions/index.js +115 -0
  64. data/webpack/ForemanTasks/Components/TaskDetails/Components/Task.js +132 -150
  65. data/webpack/ForemanTasks/Components/TaskDetails/Components/TaskInfo.js +1 -4
  66. data/webpack/ForemanTasks/Components/TaskDetails/Components/__tests__/Errors.test.js +1 -1
  67. data/webpack/ForemanTasks/Components/TaskDetails/Components/__tests__/Locks.test.js +1 -1
  68. data/webpack/ForemanTasks/Components/TaskDetails/Components/__tests__/Raw.test.js +1 -1
  69. data/webpack/ForemanTasks/Components/TaskDetails/Components/__tests__/RunningSteps.test.js +1 -1
  70. data/webpack/ForemanTasks/Components/TaskDetails/Components/__tests__/Task.test.js +68 -3
  71. data/webpack/ForemanTasks/Components/TaskDetails/Components/__tests__/TaskInfo.test.js +1 -2
  72. data/webpack/ForemanTasks/Components/TaskDetails/Components/__tests__/__snapshots__/Task.test.js.snap +104 -71
  73. data/webpack/ForemanTasks/Components/TaskDetails/Components/__tests__/__snapshots__/TaskInfo.test.js.snap +9 -15
  74. data/webpack/ForemanTasks/Components/TaskDetails/TaskDetails.stories.js +6 -2
  75. data/webpack/ForemanTasks/Components/TaskDetails/TaskDetailsActions.js +2 -17
  76. data/webpack/ForemanTasks/Components/TaskDetails/TaskDetailsConstants.js +0 -5
  77. data/webpack/ForemanTasks/Components/TaskDetails/TaskDetailsReducer.js +0 -6
  78. data/webpack/ForemanTasks/Components/TaskDetails/TaskDetailsSelectors.js +3 -9
  79. data/webpack/ForemanTasks/Components/TaskDetails/TasksDetailsHelper.js +6 -1
  80. data/webpack/ForemanTasks/Components/TaskDetails/__tests__/TaskDetails.test.js +6 -1
  81. data/webpack/ForemanTasks/Components/TaskDetails/__tests__/TaskDetailsActions.test.js +1 -1
  82. data/webpack/ForemanTasks/Components/TaskDetails/__tests__/TaskDetailsReducer.test.js +1 -1
  83. data/webpack/ForemanTasks/Components/TaskDetails/__tests__/__snapshots__/TaskDetails.test.js.snap +3 -7
  84. data/webpack/ForemanTasks/Components/TaskDetails/__tests__/integration.test.js +5 -1
  85. data/webpack/ForemanTasks/Components/TaskDetails/index.js +6 -8
  86. data/webpack/ForemanTasks/Components/TasksDashboard/Components/TasksCardsGrid/Components/PausedTasksCard/PausedTasksCard.stories.js +44 -40
  87. data/webpack/ForemanTasks/Components/TasksDashboard/Components/TasksCardsGrid/Components/PausedTasksCard/PausedTasksCard.test.js +1 -1
  88. data/webpack/ForemanTasks/Components/TasksDashboard/Components/TasksCardsGrid/Components/RunningTasksCard/RunningTasksCard.stories.js +45 -40
  89. data/webpack/ForemanTasks/Components/TasksDashboard/Components/TasksCardsGrid/Components/RunningTasksCard/RunningTasksCard.test.js +1 -1
  90. data/webpack/ForemanTasks/Components/TasksDashboard/Components/TasksCardsGrid/Components/ScheduledTasksCard/ScheduledTasksCard.stories.js +27 -22
  91. data/webpack/ForemanTasks/Components/TasksDashboard/Components/TasksCardsGrid/Components/ScheduledTasksCard/ScheduledTasksCard.test.js +1 -1
  92. data/webpack/ForemanTasks/Components/TasksDashboard/Components/TasksCardsGrid/Components/StoppedTasksCard/StoppedTasksCard.stories.js +61 -56
  93. data/webpack/ForemanTasks/Components/TasksDashboard/Components/TasksCardsGrid/Components/StoppedTasksCard/StoppedTasksCard.test.js +1 -1
  94. data/webpack/ForemanTasks/Components/TasksDashboard/Components/TasksCardsGrid/Components/TasksDonutCard/TasksDonutCard.stories.js +40 -35
  95. data/webpack/ForemanTasks/Components/TasksDashboard/Components/TasksCardsGrid/Components/TasksDonutCard/TasksDonutCard.test.js +1 -1
  96. data/webpack/ForemanTasks/Components/TasksDashboard/Components/TasksCardsGrid/Components/TasksDonutChart/TasksDonutChart.stories.js +21 -20
  97. data/webpack/ForemanTasks/Components/TasksDashboard/Components/TasksCardsGrid/Components/TasksDonutChart/TasksDonutChart.test.js +1 -1
  98. data/webpack/ForemanTasks/Components/TasksDashboard/Components/TasksCardsGrid/TasksCardsGrid.stories.js +40 -39
  99. data/webpack/ForemanTasks/Components/TasksDashboard/Components/TasksCardsGrid/TasksCardsGrid.test.js +1 -1
  100. data/webpack/ForemanTasks/Components/TasksDashboard/Components/TasksLabelsRow/TasksLabelsRow.stories.js +16 -17
  101. data/webpack/ForemanTasks/Components/TasksDashboard/Components/TasksLabelsRow/TasksLabelsRow.test.js +1 -2
  102. data/webpack/ForemanTasks/Components/TasksDashboard/Components/TasksTimeRow/Components/TimeDropDown/TimeDropDown.stories.mdx +57 -0
  103. data/webpack/ForemanTasks/Components/TasksDashboard/Components/TasksTimeRow/Components/TimeDropDown/TimeDropDown.test.js +1 -1
  104. data/webpack/ForemanTasks/Components/TasksDashboard/Components/TasksTimeRow/TasksTimeRow.stories.js +36 -18
  105. data/webpack/ForemanTasks/Components/TasksDashboard/Components/TasksTimeRow/TasksTimeRow.test.js +1 -1
  106. data/webpack/ForemanTasks/Components/TasksDashboard/TasksDashboardConstants.js +5 -0
  107. data/webpack/ForemanTasks/Components/TasksDashboard/TasksDashboardHelper.js +3 -2
  108. data/webpack/ForemanTasks/Components/TasksDashboard/__tests__/TasksDashboard.test.js +1 -1
  109. data/webpack/ForemanTasks/Components/TasksDashboard/__tests__/TasksDashboardActions.test.js +1 -1
  110. data/webpack/ForemanTasks/Components/TasksDashboard/__tests__/TasksDashboardReducer.test.js +1 -1
  111. data/webpack/ForemanTasks/Components/TasksDashboard/__tests__/TasksDashboardSelectors.test.js +1 -1
  112. data/webpack/ForemanTasks/Components/TasksTable/Components/ActionSelectButton.js +14 -1
  113. data/webpack/ForemanTasks/Components/TasksTable/Components/ConfirmModal/ConfirmModal.js +83 -0
  114. data/webpack/ForemanTasks/Components/TasksTable/Components/ConfirmModal/ConfirmModalActions.js +106 -0
  115. data/webpack/ForemanTasks/Components/TasksTable/Components/ConfirmModal/ConfirmModalReducer.js +38 -0
  116. data/webpack/ForemanTasks/Components/TasksTable/Components/ConfirmModal/ConfirmModalSelectors.js +45 -0
  117. data/webpack/ForemanTasks/Components/TasksTable/Components/ConfirmModal/__test__/ConfirmModal.test.js +36 -0
  118. data/webpack/ForemanTasks/Components/TasksTable/Components/ConfirmModal/__test__/ConfirmModalActions.test.js +205 -0
  119. data/webpack/ForemanTasks/Components/TasksTable/Components/ConfirmModal/__test__/ConfirmModalReducer.test.js +27 -0
  120. data/webpack/ForemanTasks/Components/TasksTable/Components/ConfirmModal/__test__/ConfirmModalSelectors.test.js +54 -0
  121. data/webpack/ForemanTasks/Components/TasksTable/Components/ConfirmModal/__test__/__snapshots__/ConfirmModal.test.js.snap +41 -0
  122. data/webpack/ForemanTasks/Components/TasksTable/Components/ConfirmModal/__test__/__snapshots__/ConfirmModalReducer.test.js.snap +19 -0
  123. data/webpack/ForemanTasks/Components/TasksTable/Components/ConfirmModal/__test__/__snapshots__/ConfirmModalSelectors.test.js.snap +30 -0
  124. data/webpack/ForemanTasks/Components/TasksTable/Components/ConfirmModal/index.js +29 -0
  125. data/webpack/ForemanTasks/Components/TasksTable/Components/SelectAllAlert.js +43 -0
  126. data/webpack/ForemanTasks/Components/TasksTable/Components/__test__/ActionSelectButton.test.js +2 -1
  127. data/webpack/ForemanTasks/Components/TasksTable/Components/__test__/SelectAllAlert.test.js +29 -0
  128. data/webpack/ForemanTasks/Components/TasksTable/Components/__test__/TableSelectionCell.test.js +1 -1
  129. data/webpack/ForemanTasks/Components/TasksTable/Components/__test__/TableSelectionHeaderCell.test.js +1 -1
  130. data/webpack/ForemanTasks/Components/TasksTable/Components/__test__/__snapshots__/ActionSelectButton.test.js.snap +11 -0
  131. data/webpack/ForemanTasks/Components/TasksTable/Components/__test__/__snapshots__/SelectAllAlert.test.js.snap +75 -0
  132. data/webpack/ForemanTasks/Components/TasksTable/SubTasksPage.js +4 -1
  133. data/webpack/ForemanTasks/Components/TasksTable/TasksBulkActions.js +247 -0
  134. data/webpack/ForemanTasks/Components/TasksTable/TasksTable.js +50 -22
  135. data/webpack/ForemanTasks/Components/TasksTable/TasksTableActions.js +62 -101
  136. data/webpack/ForemanTasks/Components/TasksTable/TasksTableConstants.js +18 -5
  137. data/webpack/ForemanTasks/Components/TasksTable/TasksTableHelpers.js +4 -3
  138. data/webpack/ForemanTasks/Components/TasksTable/TasksTablePage.js +65 -38
  139. data/webpack/ForemanTasks/Components/TasksTable/TasksTableReducer.js +26 -9
  140. data/webpack/ForemanTasks/Components/TasksTable/TasksTableSchema.js +2 -2
  141. data/webpack/ForemanTasks/Components/TasksTable/TasksTableSelectors.js +27 -16
  142. data/webpack/ForemanTasks/Components/TasksTable/__tests__/SubTasksPage.test.js +1 -1
  143. data/webpack/ForemanTasks/Components/TasksTable/__tests__/TasksBulkActions.test.js +147 -0
  144. data/webpack/ForemanTasks/Components/TasksTable/__tests__/TasksIndexPage.test.js +1 -1
  145. data/webpack/ForemanTasks/Components/TasksTable/__tests__/TasksTable.fixtures.js +4 -7
  146. data/webpack/ForemanTasks/Components/TasksTable/__tests__/TasksTable.test.js +1 -1
  147. data/webpack/ForemanTasks/Components/TasksTable/__tests__/TasksTableActions.test.js +46 -74
  148. data/webpack/ForemanTasks/Components/TasksTable/__tests__/TasksTableHelpers.test.js +17 -1
  149. data/webpack/ForemanTasks/Components/TasksTable/__tests__/TasksTablePage.test.js +10 -2
  150. data/webpack/ForemanTasks/Components/TasksTable/__tests__/TasksTableReducer.test.js +28 -8
  151. data/webpack/ForemanTasks/Components/TasksTable/__tests__/__snapshots__/SubTasksPage.test.js.snap +5 -7
  152. data/webpack/ForemanTasks/Components/TasksTable/__tests__/__snapshots__/TasksBulkActions.test.js.snap +336 -0
  153. data/webpack/ForemanTasks/Components/TasksTable/__tests__/__snapshots__/TasksIndexPage.test.js.snap +4 -7
  154. data/webpack/ForemanTasks/Components/TasksTable/__tests__/__snapshots__/TasksTableActions.test.js.snap +22 -158
  155. data/webpack/ForemanTasks/Components/TasksTable/__tests__/__snapshots__/TasksTablePage.test.js.snap +66 -44
  156. data/webpack/ForemanTasks/Components/TasksTable/__tests__/__snapshots__/TasksTableReducer.test.js.snap +43 -16
  157. data/webpack/ForemanTasks/Components/TasksTable/formatters/__test__/selectionHeaderCellFormatter.test.js +1 -1
  158. data/webpack/ForemanTasks/Components/TasksTable/formatters/selectionHeaderCellFormatter.js +2 -2
  159. data/webpack/ForemanTasks/Components/TasksTable/index.js +11 -4
  160. data/webpack/ForemanTasks/Components/common/ActionButtons/ActionButton.js +49 -21
  161. data/webpack/ForemanTasks/Components/common/ActionButtons/ActionButton.test.js +61 -14
  162. data/webpack/ForemanTasks/Components/common/ActionButtons/__snapshots__/ActionButton.test.js.snap +80 -21
  163. data/webpack/ForemanTasks/Components/common/ClickConfirmation/ClickConfirmation.scss +9 -0
  164. data/webpack/ForemanTasks/Components/common/ClickConfirmation/ClickConfirmation.test.js +44 -0
  165. data/webpack/ForemanTasks/Components/common/ClickConfirmation/__snapshots__/ClickConfirmation.test.js.snap +52 -0
  166. data/webpack/ForemanTasks/Components/common/ClickConfirmation/index.js +59 -66
  167. data/webpack/ForemanTasks/Components/common/ToastsHelpers/ToastTypesConstants.js +11 -0
  168. data/webpack/ForemanTasks/Components/common/ToastsHelpers/index.js +15 -0
  169. data/webpack/ForemanTasks/ForemanTasks.test.js +1 -1
  170. data/webpack/ForemanTasks/ForemanTasksReducers.js +2 -0
  171. data/webpack/ForemanTasks/Routes/ForemanTasksRouter.test.js +1 -1
  172. data/webpack/ForemanTasks/Routes/ForemanTasksRoutes.test.js +4 -4
  173. data/webpack/ForemanTasks/Routes/ShowTask/__tests__/ShowTask.test.js +1 -1
  174. data/webpack/__mocks__/foremanReact/components/ForemanModal/ForemanModalActions.js +2 -0
  175. data/webpack/__mocks__/foremanReact/components/ForemanModal/ForemanModalHooks.js +10 -0
  176. data/webpack/__mocks__/foremanReact/components/ForemanModal/index.js +18 -0
  177. data/webpack/__mocks__/foremanReact/components/common/ActionButtons/ActionButtons.js +3 -0
  178. metadata +71 -30
  179. data/.babelrc +0 -35
  180. data/.storybook/addons.js +0 -2
  181. data/.storybook/config.js +0 -7
  182. data/.storybook/webpack.config.js +0 -63
  183. data/webpack/ForemanTasks/Components/TasksDashboard/Components/TasksTimeRow/Components/TimeDropDown/TimeDropDown.stories.js +0 -23
  184. data/webpack/ForemanTasks/Components/TasksTable/Components/ActionConfirmation.js +0 -49
  185. data/webpack/ForemanTasks/Components/TasksTable/Components/CancelResumeConfirm.js +0 -51
  186. data/webpack/ForemanTasks/Components/TasksTable/Components/__test__/ActionConfirmation.test.js +0 -18
  187. data/webpack/ForemanTasks/Components/TasksTable/Components/__test__/CancelResumeConfirm.test.js +0 -28
  188. data/webpack/ForemanTasks/Components/TasksTable/Components/__test__/__snapshots__/ActionConfirmation.test.js.snap +0 -89
  189. data/webpack/ForemanTasks/Components/TasksTable/Components/__test__/__snapshots__/CancelResumeConfirm.test.js.snap +0 -37
  190. data/webpack/ForemanTasks/Components/common/ActionButtons/CancelButton.js +0 -23
  191. data/webpack/ForemanTasks/Components/common/ActionButtons/CancelButton.test.js +0 -27
  192. data/webpack/ForemanTasks/Components/common/ActionButtons/ResumeButton.js +0 -23
  193. data/webpack/ForemanTasks/Components/common/ActionButtons/ResumeButton.test.js +0 -27
  194. data/webpack/ForemanTasks/Components/common/ActionButtons/__snapshots__/CancelButton.test.js.snap +0 -15
  195. data/webpack/ForemanTasks/Components/common/ActionButtons/__snapshots__/ResumeButton.test.js.snap +0 -15
  196. data/webpack/stories/index.js +0 -10
  197. data/webpack/stories/index.scss +0 -7
  198. data/webpack/test_setup.js +0 -6
data/.babelrc DELETED
@@ -1,35 +0,0 @@
1
- {
2
- "presets": [
3
- "env",
4
- "react"
5
- ],
6
- "plugins": [
7
- ["module-resolver", {
8
- "alias": {
9
- "root": ["./"],
10
- "foremanReact": "../foreman/webpack/assets/javascripts/react_app"
11
- }
12
- }],
13
- "transform-class-properties",
14
- "transform-object-rest-spread",
15
- "transform-object-assign",
16
- "syntax-dynamic-import"
17
- ],
18
- "env": {
19
- "test": {
20
- "presets": ["@theforeman/vendor-dev/babel.preset.js"],
21
- "plugins": [
22
- ["module-resolver", {
23
- "alias": {
24
- "root": ["./"],
25
- "foremanReact": "./webpack/__mocks__/foremanReact"
26
- }
27
- }],
28
- "dynamic-import-node"
29
- ]
30
- },
31
- "storybook": {
32
- "presets": ["@theforeman/vendor-dev/babel.preset.js"]
33
- }
34
- }
35
- }
@@ -1,2 +0,0 @@
1
- import '@storybook/addon-actions/register';
2
- import '@storybook/addon-knobs/register';
@@ -1,7 +0,0 @@
1
- import { configure } from '@storybook/react';
2
-
3
- function loadStories() {
4
- require('../webpack/stories');
5
- }
6
-
7
- configure(loadStories, module);
@@ -1,63 +0,0 @@
1
- let path = require('path');
2
-
3
- module.exports = {
4
- module: {
5
- rules: [
6
- {
7
- test: /\.js$/,
8
- exclude: /node_modules/,
9
- loader: 'babel-loader',
10
- options: {
11
- presets: [
12
- path.join(__dirname, '..', 'node_modules/babel-preset-react'),
13
- path.join(__dirname, '..', 'node_modules/babel-preset-env')
14
- ],
15
- plugins: [
16
- path.join(__dirname, '..', 'node_modules/babel-plugin-transform-class-properties'),
17
- path.join(__dirname, '..', 'node_modules/babel-plugin-transform-object-rest-spread'),
18
- path.join(__dirname, '..', 'node_modules/babel-plugin-transform-object-assign'),
19
- path.join(__dirname, '..', 'node_modules/babel-plugin-syntax-dynamic-import')
20
- ]
21
- }
22
- },
23
- {
24
- test: /(\.png|\.gif)$/,
25
- loader: 'url-loader?limit=32767'
26
- },
27
- {
28
- test: /\.css$/,
29
- loaders: ['style-loader', 'css-loader'],
30
- },
31
- {
32
- test: /\.scss$/,
33
- loaders: ['style-loader', 'css-loader', {
34
- loader: 'sass-loader',
35
- options: {
36
- includePaths: [
37
- // teach webpack to resolve patternfly dependencies
38
- path.resolve(__dirname, '..', 'node_modules', 'patternfly', 'dist', 'sass'),
39
- path.resolve(__dirname, '..', 'node_modules', 'bootstrap-sass', 'assets', 'stylesheets'),
40
- path.resolve(__dirname, '..', 'node_modules', 'font-awesome-sass', 'assets', 'stylesheets')
41
- ]
42
- }
43
- }]
44
- },
45
- {
46
- test: /\.md$/,
47
- loaders: ['raw-loader']
48
- },
49
- {
50
- test: /(\.ttf|\.woff|\.woff2|\.eot|\.svg|\.jpg)$/,
51
- loaders: ['url-loader']
52
- },
53
- ],
54
- },
55
-
56
- resolve: {
57
- modules: [
58
- path.join(__dirname, '..', 'webpack'),
59
- path.join(__dirname, '..', 'node_modules'),
60
- 'node_modules/',
61
- ],
62
- },
63
- };
@@ -1,23 +0,0 @@
1
- import React from 'react';
2
- import { storiesOf } from '@storybook/react';
3
- import { withKnobs, select } from '@storybook/addon-knobs';
4
- import { action } from '@storybook/addon-actions';
5
- import { withCardsDecorator } from '../../../../../../../stories/decorators';
6
-
7
- import { TASKS_DASHBOARD_AVAILABLE_TIMES } from '../../../../TasksDashboardConstants';
8
- import TimeDropDown from './TimeDropDown';
9
-
10
- storiesOf('TasksDashboard/TasksTimeRow', module)
11
- .addDecorator(withKnobs)
12
- .addDecorator(withCardsDecorator)
13
- .add('TimeDropDown', () => (
14
- <TimeDropDown
15
- id="time-period-dropdown"
16
- selectedTime={select(
17
- 'selectedTime',
18
- TASKS_DASHBOARD_AVAILABLE_TIMES,
19
- TASKS_DASHBOARD_AVAILABLE_TIMES.H24
20
- )}
21
- onChange={action('onChange')}
22
- />
23
- ));
@@ -1,49 +0,0 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import { Modal, Button } from 'patternfly-react';
4
-
5
- export const ActionConfirmation = ({
6
- showModal,
7
- closeModal,
8
- title,
9
- message,
10
- onClick,
11
- confirmAction,
12
- abortAction,
13
- }) => (
14
- <Modal show={showModal} onHide={closeModal}>
15
- <Modal.Header>
16
- <Button
17
- className="close"
18
- onClick={closeModal}
19
- aria-hidden="true"
20
- aria-label="Close"
21
- >
22
- &times;
23
- </Button>
24
- <Modal.Title>
25
- <span className="glyphicon glyphicon-warning-sign" />
26
- {` ${title}`}
27
- </Modal.Title>
28
- </Modal.Header>
29
- <Modal.Body>{message}</Modal.Body>
30
- <Modal.Footer>
31
- <Button onClick={closeModal}>{abortAction}</Button>
32
- <Button bsStyle="primary" onClick={onClick}>
33
- {confirmAction}
34
- </Button>
35
- </Modal.Footer>
36
- </Modal>
37
- );
38
-
39
- ActionConfirmation.propTypes = {
40
- showModal: PropTypes.bool.isRequired,
41
- title: PropTypes.string.isRequired,
42
- message: PropTypes.string.isRequired,
43
- confirmAction: PropTypes.string.isRequired,
44
- abortAction: PropTypes.string.isRequired,
45
- closeModal: PropTypes.func.isRequired,
46
- onClick: PropTypes.func.isRequired,
47
- };
48
-
49
- export default ActionConfirmation;
@@ -1,51 +0,0 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import { sprintf, translate as __ } from 'foremanReact/common/I18n';
4
- import { ActionConfirmation } from './ActionConfirmation';
5
- import { CANCEL, RESUME, CLOSED } from '../TasksTableConstants';
6
-
7
- export const CancelResumeConfirm = ({
8
- closeModal,
9
- modalStatus,
10
- action,
11
- selected,
12
- selectedRowsLen,
13
- }) => (
14
- <ActionConfirmation
15
- showModal={modalStatus !== CLOSED}
16
- closeModal={closeModal}
17
- title={`${modalStatus === CANCEL ? __('Cancel') : __('Resume')} ${__(
18
- 'Selected Tasks'
19
- )}`}
20
- message={sprintf(
21
- __(
22
- `This will ${
23
- modalStatus === CANCEL ? 'stop' : 'resume'
24
- } %s tasks, putting them in the ${
25
- modalStatus === CANCEL ? 'canceled' : 'running'
26
- } state. Are you sure?`
27
- ),
28
- selectedRowsLen
29
- )}
30
- onClick={() => {
31
- if (modalStatus === CANCEL) {
32
- action(CANCEL, selected);
33
- } else if (modalStatus === RESUME) {
34
- action(RESUME, selected);
35
- }
36
- closeModal();
37
- }}
38
- confirmAction={__('Yes')}
39
- abortAction={__('No')}
40
- />
41
- );
42
-
43
- CancelResumeConfirm.propTypes = {
44
- closeModal: PropTypes.func.isRequired,
45
- modalStatus: PropTypes.oneOf([CANCEL, RESUME, CLOSED]).isRequired,
46
- selectedRowsLen: PropTypes.number.isRequired,
47
- action: PropTypes.func.isRequired,
48
- selected: PropTypes.array.isRequired,
49
- };
50
-
51
- export default CancelResumeConfirm;
@@ -1,18 +0,0 @@
1
- import { testComponentSnapshotsWithFixtures } from 'react-redux-test-utils';
2
-
3
- import { ActionConfirmation } from '../ActionConfirmation';
4
-
5
- const fixtures = {
6
- 'renders ActionConfirmation': {
7
- showModal: true,
8
- title: 'title',
9
- message: 'message',
10
- confirmAction: 'confirmAction',
11
- abortAction: 'abortAction',
12
- closeModal: () => null,
13
- onClick: () => null,
14
- },
15
- };
16
-
17
- describe('ActionConfirmation', () =>
18
- testComponentSnapshotsWithFixtures(ActionConfirmation, fixtures));
@@ -1,28 +0,0 @@
1
- import { testComponentSnapshotsWithFixtures } from 'react-redux-test-utils';
2
-
3
- import { CancelResumeConfirm } from '../CancelResumeConfirm';
4
- import { CANCEL, RESUME, CLOSED } from '../../TasksTableConstants';
5
-
6
- const baseProps = {
7
- closeModal: () => null,
8
- selectedRowsLen: 3,
9
- action: () => null,
10
- selected: [1, 2, 3],
11
- };
12
- const fixtures = {
13
- 'renders CANCEL modal': {
14
- ...baseProps,
15
- modalStatus: CANCEL,
16
- },
17
- 'renders RESUME modal': {
18
- ...baseProps,
19
- modalStatus: RESUME,
20
- },
21
- 'renders CLOSED modal': {
22
- ...baseProps,
23
- modalStatus: CLOSED,
24
- },
25
- };
26
-
27
- describe('CancelResumeConfirm', () =>
28
- testComponentSnapshotsWithFixtures(CancelResumeConfirm, fixtures));
@@ -1,89 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`ActionConfirmation renders ActionConfirmation 1`] = `
4
- <Modal
5
- animation={true}
6
- autoFocus={true}
7
- backdrop={true}
8
- bsClass="modal"
9
- dialogComponentClass={[Function]}
10
- enforceFocus={true}
11
- keyboard={true}
12
- manager={
13
- ModalManager {
14
- "add": [Function],
15
- "containers": Array [],
16
- "data": Array [],
17
- "handleContainerOverflow": true,
18
- "hideSiblingNodes": true,
19
- "isTopModal": [Function],
20
- "modals": Array [],
21
- "remove": [Function],
22
- }
23
- }
24
- onHide={[Function]}
25
- renderBackdrop={[Function]}
26
- restoreFocus={true}
27
- show={true}
28
- >
29
- <ModalHeader
30
- bsClass="modal-header"
31
- closeButton={false}
32
- closeLabel="Close"
33
- >
34
- <Button
35
- active={false}
36
- aria-hidden="true"
37
- aria-label="Close"
38
- block={false}
39
- bsClass="btn"
40
- bsStyle="default"
41
- className="close"
42
- disabled={false}
43
- onClick={[Function]}
44
- >
45
- ×
46
- </Button>
47
- <ModalTitle
48
- bsClass="modal-title"
49
- componentClass="h4"
50
- >
51
- <span
52
- className="glyphicon glyphicon-warning-sign"
53
- />
54
- title
55
- </ModalTitle>
56
- </ModalHeader>
57
- <ModalBody
58
- bsClass="modal-body"
59
- componentClass="div"
60
- >
61
- message
62
- </ModalBody>
63
- <ModalFooter
64
- bsClass="modal-footer"
65
- componentClass="div"
66
- >
67
- <Button
68
- active={false}
69
- block={false}
70
- bsClass="btn"
71
- bsStyle="default"
72
- disabled={false}
73
- onClick={[Function]}
74
- >
75
- abortAction
76
- </Button>
77
- <Button
78
- active={false}
79
- block={false}
80
- bsClass="btn"
81
- bsStyle="primary"
82
- disabled={false}
83
- onClick={[Function]}
84
- >
85
- confirmAction
86
- </Button>
87
- </ModalFooter>
88
- </Modal>
89
- `;
@@ -1,37 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`CancelResumeConfirm renders CANCEL modal 1`] = `
4
- <ActionConfirmation
5
- abortAction="No"
6
- closeModal={[Function]}
7
- confirmAction="Yes"
8
- message="This will stop 3 tasks, putting them in the canceled state. Are you sure?"
9
- onClick={[Function]}
10
- showModal={true}
11
- title="Cancel Selected Tasks"
12
- />
13
- `;
14
-
15
- exports[`CancelResumeConfirm renders CLOSED modal 1`] = `
16
- <ActionConfirmation
17
- abortAction="No"
18
- closeModal={[Function]}
19
- confirmAction="Yes"
20
- message="This will resume 3 tasks, putting them in the running state. Are you sure?"
21
- onClick={[Function]}
22
- showModal={false}
23
- title="Resume Selected Tasks"
24
- />
25
- `;
26
-
27
- exports[`CancelResumeConfirm renders RESUME modal 1`] = `
28
- <ActionConfirmation
29
- abortAction="No"
30
- closeModal={[Function]}
31
- confirmAction="Yes"
32
- message="This will resume 3 tasks, putting them in the running state. Are you sure?"
33
- onClick={[Function]}
34
- showModal={true}
35
- title="Resume Selected Tasks"
36
- />
37
- `;
@@ -1,23 +0,0 @@
1
- import React from 'react';
2
- import { Button } from 'patternfly-react';
3
- import PropTypes from 'prop-types';
4
- import { translate as __ } from 'foremanReact/common/I18n';
5
- import { noop } from 'foremanReact/common/helpers';
6
-
7
- export const CancelButton = ({ id, name, disabled, onClick }) => (
8
- <Button bsSize="small" onClick={() => onClick(id, name)} disabled={disabled}>
9
- {__('Cancel')}
10
- </Button>
11
- );
12
-
13
- CancelButton.propTypes = {
14
- id: PropTypes.string.isRequired,
15
- name: PropTypes.string.isRequired,
16
- disabled: PropTypes.bool,
17
- onClick: PropTypes.func,
18
- };
19
-
20
- CancelButton.defaultProps = {
21
- disabled: false,
22
- onClick: noop,
23
- };
@@ -1,27 +0,0 @@
1
- import React from 'react';
2
- import { testComponentSnapshotsWithFixtures } from 'react-redux-test-utils';
3
- import { shallow } from 'enzyme';
4
- import { CancelButton } from './CancelButton';
5
-
6
- const fixtures = {
7
- 'render with minimal props': {
8
- id: 'some-id',
9
- name: 'some-name',
10
- },
11
- };
12
-
13
- describe('CancelButton', () => {
14
- describe('rendering', () =>
15
- testComponentSnapshotsWithFixtures(CancelButton, fixtures));
16
- describe('should use id and name on click', () => {
17
- const onClick = jest.fn();
18
- const id = 'some-id';
19
- const name = 'some-name';
20
- const component = shallow(
21
- <CancelButton id={id} name={name} onClick={onClick} />
22
- );
23
- component.find('Button').simulate('click');
24
-
25
- expect(onClick).toHaveBeenCalledWith(id, name);
26
- });
27
- });