foreman-tasks 4.1.3 → 4.1.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/foreman_tasks/version.rb +1 -1
- data/webpack/ForemanTasks/Components/TasksTable/TasksTable.js +8 -0
- data/webpack/ForemanTasks/Components/TasksTable/TasksTablePage.js +21 -10
- data/webpack/ForemanTasks/Components/TasksTable/TasksTableReducer.js +10 -2
- data/webpack/ForemanTasks/Components/TasksTable/TasksTableSelectors.js +3 -0
- data/webpack/ForemanTasks/Components/TasksTable/__tests__/__snapshots__/TasksTablePage.test.js.snap +10 -0
- data/webpack/ForemanTasks/Components/TasksTable/__tests__/__snapshots__/TasksTableReducer.test.js.snap +3 -0
- data/webpack/ForemanTasks/Components/TasksTable/formatters/__test__/__snapshots__/selectionHeaderCellFormatter.test.js.snap +1 -0
- data/webpack/ForemanTasks/Components/TasksTable/formatters/__test__/selectionHeaderCellFormatter.test.js +1 -1
- data/webpack/ForemanTasks/Components/TasksTable/formatters/selectionHeaderCellFormatter.js +1 -0
- data/webpack/ForemanTasks/Components/TasksTable/index.js +2 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3152af7ac771946d9090d5a1b867c6843ff6657ab2434c4daba986c60c83579e
|
4
|
+
data.tar.gz: 4d3cd7b0d58af7f59a5d7745e1b75444dc43066089c60854344c49dc1d58ed43
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 528a33eb7ef2128cdc476411c705762b3b63ba22d8a3ff3ca70755a42247c5a538494b1b248eee547a2a7ffa49821612f05f0f53e42ef026a70e107e064246f1
|
7
|
+
data.tar.gz: 85033e3dd3c84eb6aa8dd99e837ad024acd42639c1351f518883ef431b9b95c9ddb833f11e6708bda488113c1a33faf7959ac4a11bbeb4ea16e29a32c955e670
|
@@ -27,6 +27,7 @@ const TasksTable = ({
|
|
27
27
|
openClickedModal,
|
28
28
|
openModal,
|
29
29
|
allRowsSelected,
|
30
|
+
permissions,
|
30
31
|
}) => {
|
31
32
|
const { search, pathname } = history.location;
|
32
33
|
const url = pathname + search;
|
@@ -59,6 +60,7 @@ const TasksTable = ({
|
|
59
60
|
},
|
60
61
|
isSelected: ({ rowData }) =>
|
61
62
|
allRowsSelected || selectedRows.includes(rowData.id),
|
63
|
+
permissions,
|
62
64
|
};
|
63
65
|
};
|
64
66
|
|
@@ -162,6 +164,9 @@ TasksTable.propTypes = {
|
|
162
164
|
unselectRow: PropTypes.func.isRequired,
|
163
165
|
openModal: PropTypes.func.isRequired,
|
164
166
|
allRowsSelected: PropTypes.bool,
|
167
|
+
permissions: PropTypes.shape({
|
168
|
+
edit: PropTypes.bool,
|
169
|
+
}),
|
165
170
|
};
|
166
171
|
|
167
172
|
TasksTable.defaultProps = {
|
@@ -173,6 +178,9 @@ TasksTable.defaultProps = {
|
|
173
178
|
},
|
174
179
|
selectedRows: [],
|
175
180
|
allRowsSelected: false,
|
181
|
+
permissions: {
|
182
|
+
edit: false,
|
183
|
+
},
|
176
184
|
};
|
177
185
|
|
178
186
|
export default TasksTable;
|
@@ -81,7 +81,10 @@ const TasksTablePage = ({
|
|
81
81
|
title={__('Export All')}
|
82
82
|
/>
|
83
83
|
<ActionSelectButton
|
84
|
-
disabled={
|
84
|
+
disabled={
|
85
|
+
!props.permissions.edit ||
|
86
|
+
!(props.selectedRows.length || props.allRowsSelected)
|
87
|
+
}
|
85
88
|
onCancel={() => openModal(CANCEL_SELECTED_MODAL)}
|
86
89
|
onResume={() => openModal(RESUME_SELECTED_MODAL)}
|
87
90
|
onForceCancel={() => openModal(FORCE_UNLOCK_SELECTED_MODAL)}
|
@@ -94,15 +97,17 @@ const TasksTablePage = ({
|
|
94
97
|
}
|
95
98
|
>
|
96
99
|
<React.Fragment>
|
97
|
-
{
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
100
|
+
{props.permissions.edit &&
|
101
|
+
showSelectAll &&
|
102
|
+
props.itemCount >= props.pagination.perPage && (
|
103
|
+
<SelectAllAlert
|
104
|
+
itemCount={props.itemCount}
|
105
|
+
perPage={props.pagination.perPage}
|
106
|
+
selectAllRows={selectAllRows}
|
107
|
+
unselectAllRows={props.unselectAllRows}
|
108
|
+
allRowsSelected={props.allRowsSelected}
|
109
|
+
/>
|
110
|
+
)}
|
106
111
|
<TasksTable history={history} {...props} openModal={openModal} />
|
107
112
|
</React.Fragment>
|
108
113
|
</PageLayout>
|
@@ -131,6 +136,9 @@ TasksTablePage.propTypes = {
|
|
131
136
|
showSelectAll: PropTypes.bool,
|
132
137
|
unselectAllRows: PropTypes.func.isRequired,
|
133
138
|
reloadPage: PropTypes.func.isRequired,
|
139
|
+
permissions: PropTypes.shape({
|
140
|
+
edit: PropTypes.bool,
|
141
|
+
}),
|
134
142
|
};
|
135
143
|
|
136
144
|
TasksTablePage.defaultProps = {
|
@@ -146,6 +154,9 @@ TasksTablePage.defaultProps = {
|
|
146
154
|
createHeader: () => __('Tasks'),
|
147
155
|
showSelectAll: false,
|
148
156
|
modalID: '',
|
157
|
+
permissions: {
|
158
|
+
edit: false,
|
159
|
+
},
|
149
160
|
};
|
150
161
|
|
151
162
|
export default TasksTablePage;
|
@@ -19,8 +19,13 @@ const initialState = Immutable({
|
|
19
19
|
|
20
20
|
export const TasksTableQueryReducer = (state = initialState, action) => {
|
21
21
|
const { type, payload, response } = action;
|
22
|
-
const {
|
23
|
-
|
22
|
+
const {
|
23
|
+
subtotal,
|
24
|
+
page,
|
25
|
+
per_page: perPageString,
|
26
|
+
action_name: actionName,
|
27
|
+
can_edit: canEdit,
|
28
|
+
} = response || {};
|
24
29
|
const ACTION_TYPES = createTableActionTypes(TASKS_TABLE_ID);
|
25
30
|
switch (type) {
|
26
31
|
case SELECT_ALL_ROWS:
|
@@ -34,6 +39,9 @@ export const TasksTableQueryReducer = (state = initialState, action) => {
|
|
34
39
|
perPage: Number(perPageString),
|
35
40
|
},
|
36
41
|
selectedRows: [],
|
42
|
+
permissions: {
|
43
|
+
edit: canEdit,
|
44
|
+
},
|
37
45
|
});
|
38
46
|
case SELECT_ROWS:
|
39
47
|
return state.set('selectedRows', union(payload, state.selectedRows));
|
@@ -24,6 +24,9 @@ export const selectActionName = state =>
|
|
24
24
|
export const selectSelectedRows = state =>
|
25
25
|
selectTasksTableQuery(state).selectedRows || [];
|
26
26
|
|
27
|
+
export const selectPermissions = state =>
|
28
|
+
selectTasksTableQuery(state).permissions || { edit: false };
|
29
|
+
|
27
30
|
export const selectResults = createSelector(
|
28
31
|
selectTasksTableContent,
|
29
32
|
({ results }) =>
|
data/webpack/ForemanTasks/Components/TasksTable/__tests__/__snapshots__/TasksTablePage.test.js.snap
CHANGED
@@ -126,6 +126,11 @@ exports[`TasksTablePage rendering render with Breadcrubs and edit permissions 1`
|
|
126
126
|
}
|
127
127
|
}
|
128
128
|
parentTaskID={null}
|
129
|
+
permissions={
|
130
|
+
Object {
|
131
|
+
"edit": false,
|
132
|
+
}
|
133
|
+
}
|
129
134
|
reloadPage={[MockFunction]}
|
130
135
|
results={
|
131
136
|
Array [
|
@@ -261,6 +266,11 @@ exports[`TasksTablePage rendering render with minimal props 1`] = `
|
|
261
266
|
}
|
262
267
|
}
|
263
268
|
parentTaskID={null}
|
269
|
+
permissions={
|
270
|
+
Object {
|
271
|
+
"edit": false,
|
272
|
+
}
|
273
|
+
}
|
264
274
|
reloadPage={[MockFunction]}
|
265
275
|
results={
|
266
276
|
Array [
|
@@ -16,6 +16,7 @@ import {
|
|
16
16
|
selectAllRowsSelected,
|
17
17
|
selectShowSelectAll,
|
18
18
|
selectModalID,
|
19
|
+
selectPermissions,
|
19
20
|
} from './TasksTableSelectors';
|
20
21
|
|
21
22
|
const mapStateToProps = state => ({
|
@@ -30,6 +31,7 @@ const mapStateToProps = state => ({
|
|
30
31
|
allRowsSelected: selectAllRowsSelected(state),
|
31
32
|
showSelectAll: selectShowSelectAll(state),
|
32
33
|
modalID: selectModalID(state),
|
34
|
+
permissions: selectPermissions(state),
|
33
35
|
});
|
34
36
|
|
35
37
|
const mapDispatchToProps = dispatch =>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: foreman-tasks
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.1.
|
4
|
+
version: 4.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ivan Nečas
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-08-
|
11
|
+
date: 2021-08-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: dynflow
|