forked from theforeman/foreman-tasks
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTaskDetailsSelectors.js
More file actions
117 lines (81 loc) · 3.77 KB
/
TaskDetailsSelectors.js
File metadata and controls
117 lines (81 loc) · 3.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
/* eslint-disable camelcase */
import {
selectAPIResponse,
selectAPIByKey,
} from 'foremanReact/redux/API/APISelectors';
import { selectDoesIntervalExist } from 'foremanReact/redux/middlewares/IntervalMiddleware/IntervalSelectors';
import { STATUS } from 'foremanReact/constants';
import { selectForemanTasks } from '../../ForemanTasksSelectors';
import { FOREMAN_TASK_DETAILS } from './TaskDetailsConstants';
export const selectTaskDetails = state =>
selectForemanTasks(state).taskDetails || {};
export const selectTaskDetailsResponse = state =>
selectAPIResponse(state, FOREMAN_TASK_DETAILS);
export const selectStartAt = state =>
selectTaskDetailsResponse(state)?.start_at;
export const selectStartBefore = state =>
selectTaskDetailsResponse(state)?.start_before;
export const selectStartedAt = state =>
selectTaskDetailsResponse(state)?.started_at;
export const selectEndedAt = state =>
selectTaskDetailsResponse(state)?.ended_at;
export const selectInput = state =>
selectTaskDetailsResponse(state).input || [];
export const selectOutput = state =>
selectTaskDetailsResponse(state).output || {};
export const selectResumable = state =>
selectTaskDetailsResponse(state).resumable || false;
export const selectCancellable = state =>
selectTaskDetailsResponse(state).cancellable || false;
export const selectErrors = state => {
const { humanized } = selectTaskDetailsResponse(state);
return humanized ? humanized.errors : [];
};
export const selectProgress = state =>
selectTaskDetailsResponse(state).progress
? Math.trunc(selectTaskDetailsResponse(state).progress * 100)
: 0;
export const selectUsername = state =>
selectTaskDetailsResponse(state)?.username;
export const selectLabel = state => selectTaskDetailsResponse(state)?.label;
export const selectExecutionPlan = state =>
selectTaskDetailsResponse(state).execution_plan || {};
export const selectFailedSteps = state =>
selectTaskDetailsResponse(state).failed_steps || [];
export const selectRunningSteps = state =>
selectTaskDetailsResponse(state).running_steps || [];
export const selectHelp = state => selectTaskDetailsResponse(state)?.help;
export const selectHasSubTasks = state =>
selectTaskDetailsResponse(state).has_sub_tasks || false;
export const selectLocks = state =>
selectTaskDetailsResponse(state).locks || [];
export const selectLinks = state =>
selectTaskDetailsResponse(state).links || [];
export const selectUsernamePath = state =>
selectTaskDetailsResponse(state)?.username_path;
export const selectAction = state =>
selectTaskDetailsResponse(state).action || '';
export const selectState = state => selectTaskDetailsResponse(state)?.state;
export const selectResult = state => selectTaskDetailsResponse(state)?.result;
export const selectTimeoutId = state =>
selectTaskDetailsResponse(state)?.timeoutId;
export const selectTaskReload = state =>
!!selectDoesIntervalExist(state, FOREMAN_TASK_DETAILS);
export const selectParentTask = state =>
selectTaskDetailsResponse(state).parent_task_id || '';
export const selectExternalId = state =>
selectTaskDetailsResponse(state)?.external_id;
export const selectDynflowEnableConsole = state =>
selectTaskDetailsResponse(state).dynflow_enable_console || false;
export const selectCanEdit = state =>
selectTaskDetailsResponse(state).can_edit || false;
export const selectStatus = state => selectTaskDetailsResponse(state).status;
export const selectAPIError = state =>
selectTaskDetailsResponse(state)?.APIerror;
export const selectIsLoading = state =>
!!selectAPIByKey(state, FOREMAN_TASK_DETAILS).response &&
selectStatus(state) === STATUS.PENDING;
export const selectDependsOn = state =>
selectTaskDetailsResponse(state).depends_on || [];
export const selectBlocks = state =>
selectTaskDetailsResponse(state).blocks || [];