@panneau/app 1.0.0-alpha.25 → 1.0.0-alpha.252
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.
- package/assets/css/styles.css +3 -3
- package/es/index.js +837 -970
- package/lib/index.js +946 -1068
- package/package.json +39 -30
- package/scss/styles.scss +3 -0
package/lib/index.js
CHANGED
@@ -1,506 +1,332 @@
|
|
1
1
|
'use strict';
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
var
|
6
|
-
var
|
7
|
-
var
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
4
|
+
|
5
|
+
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
6
|
+
var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
|
7
|
+
var auth = require('@panneau/auth');
|
8
8
|
var core = require('@panneau/core');
|
9
9
|
var contexts = require('@panneau/core/contexts');
|
10
10
|
var data = require('@panneau/data');
|
11
|
+
var DisplaysProvider = require('@panneau/displays');
|
11
12
|
var FieldsProvider = require('@panneau/fields');
|
13
|
+
var FiltersProvider = require('@panneau/filters');
|
12
14
|
var FormsProvider = require('@panneau/forms');
|
15
|
+
var intl = require('@panneau/intl');
|
13
16
|
var ListsProvider = require('@panneau/lists');
|
14
|
-
var
|
15
|
-
var
|
17
|
+
var PropTypes = require('prop-types');
|
18
|
+
var React = require('react');
|
19
|
+
var reactRouter = require('react-router');
|
20
|
+
var reactRouterDom = require('react-router-dom');
|
16
21
|
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
17
22
|
var utils = require('@panneau/core/utils');
|
18
23
|
var hooks = require('@panneau/core/hooks');
|
19
|
-
var
|
24
|
+
var queryString = require('query-string');
|
25
|
+
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
26
|
+
var Button = require('@panneau/element-button');
|
27
|
+
var Form = require('@panneau/element-form');
|
20
28
|
var classNames = require('classnames');
|
29
|
+
var reactIntl = require('react-intl');
|
21
30
|
var Navbar = require('@panneau/element-navbar');
|
22
31
|
var Menu = require('@panneau/element-menu');
|
23
32
|
var Label = require('@panneau/element-label');
|
24
|
-
var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
|
25
|
-
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
26
|
-
var queryString = require('query-string');
|
27
33
|
var Alert = require('@panneau/element-alert');
|
28
|
-
var
|
34
|
+
var isString = require('lodash/isString');
|
29
35
|
var Dropdown = require('@panneau/element-dropdown');
|
36
|
+
var Pagination = require('@panneau/element-pagination');
|
37
|
+
var freeSolidSvgIcons = require('@fortawesome/free-solid-svg-icons');
|
38
|
+
var reactFontawesome = require('@fortawesome/react-fontawesome');
|
30
39
|
var FormGroup = require('@panneau/element-form-group');
|
31
40
|
|
32
41
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
33
42
|
|
34
|
-
var
|
35
|
-
var
|
43
|
+
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
44
|
+
var _objectSpread__default = /*#__PURE__*/_interopDefaultLegacy(_objectSpread);
|
45
|
+
var DisplaysProvider__default = /*#__PURE__*/_interopDefaultLegacy(DisplaysProvider);
|
36
46
|
var FieldsProvider__default = /*#__PURE__*/_interopDefaultLegacy(FieldsProvider);
|
47
|
+
var FiltersProvider__default = /*#__PURE__*/_interopDefaultLegacy(FiltersProvider);
|
37
48
|
var FormsProvider__default = /*#__PURE__*/_interopDefaultLegacy(FormsProvider);
|
38
49
|
var ListsProvider__default = /*#__PURE__*/_interopDefaultLegacy(ListsProvider);
|
39
|
-
var
|
40
|
-
var
|
50
|
+
var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
|
51
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
41
52
|
var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
|
42
|
-
var
|
53
|
+
var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
|
54
|
+
var Button__default = /*#__PURE__*/_interopDefaultLegacy(Button);
|
55
|
+
var Form__default = /*#__PURE__*/_interopDefaultLegacy(Form);
|
43
56
|
var classNames__default = /*#__PURE__*/_interopDefaultLegacy(classNames);
|
44
57
|
var Navbar__default = /*#__PURE__*/_interopDefaultLegacy(Navbar);
|
45
58
|
var Menu__default = /*#__PURE__*/_interopDefaultLegacy(Menu);
|
46
59
|
var Label__default = /*#__PURE__*/_interopDefaultLegacy(Label);
|
47
|
-
var _objectSpread__default = /*#__PURE__*/_interopDefaultLegacy(_objectSpread);
|
48
|
-
var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
|
49
60
|
var Alert__default = /*#__PURE__*/_interopDefaultLegacy(Alert);
|
50
|
-
var
|
61
|
+
var isString__default = /*#__PURE__*/_interopDefaultLegacy(isString);
|
51
62
|
var Dropdown__default = /*#__PURE__*/_interopDefaultLegacy(Dropdown);
|
63
|
+
var Pagination__default = /*#__PURE__*/_interopDefaultLegacy(Pagination);
|
52
64
|
var FormGroup__default = /*#__PURE__*/_interopDefaultLegacy(FormGroup);
|
53
65
|
|
54
|
-
var
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
throw e;
|
69
|
-
});
|
70
|
-
}, [api, setLoading]);
|
71
|
-
return {
|
72
|
-
check: check,
|
73
|
-
loading: loading
|
74
|
-
};
|
66
|
+
var _excluded$5 = ["resource", "action", "previous", "status", "value", "onSubmit", "errors", "generalError", "className"];
|
67
|
+
var propTypes$n = {
|
68
|
+
resource: core.PropTypes.resource.isRequired,
|
69
|
+
action: PropTypes__default["default"].string,
|
70
|
+
previous: PropTypes__default["default"].string,
|
71
|
+
fields: core.PropTypes.fields.isRequired,
|
72
|
+
value: PropTypes__default["default"].object,
|
73
|
+
// eslint-disable-line react/forbid-prop-types
|
74
|
+
onChange: PropTypes__default["default"].func.isRequired,
|
75
|
+
onSubmit: PropTypes__default["default"].func,
|
76
|
+
status: core.PropTypes.formStatus,
|
77
|
+
generalError: PropTypes__default["default"].string,
|
78
|
+
errors: PropTypes__default["default"].objectOf(PropTypes__default["default"].arrayOf(PropTypes__default["default"].string)),
|
79
|
+
className: PropTypes__default["default"].string
|
75
80
|
};
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
setLoading(true);
|
86
|
-
return api.auth.login(email, password).then(function (response) {
|
87
|
-
setLoading(false);
|
88
|
-
return response;
|
89
|
-
})["catch"](function (e) {
|
90
|
-
setLoading(false);
|
91
|
-
throw e;
|
92
|
-
});
|
93
|
-
}, [api, setLoading]);
|
94
|
-
return {
|
95
|
-
login: login,
|
96
|
-
loading: loading
|
97
|
-
};
|
81
|
+
var defaultProps$n = {
|
82
|
+
action: null,
|
83
|
+
previous: null,
|
84
|
+
status: null,
|
85
|
+
value: null,
|
86
|
+
onSubmit: null,
|
87
|
+
generalError: null,
|
88
|
+
errors: null,
|
89
|
+
className: null
|
98
90
|
};
|
99
91
|
|
100
|
-
var
|
101
|
-
var
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
return response;
|
112
|
-
})["catch"](function (e) {
|
113
|
-
setLoading(false);
|
114
|
-
throw e;
|
115
|
-
});
|
116
|
-
}, [api, setLoading]);
|
117
|
-
return {
|
118
|
-
logout: logout,
|
119
|
-
loading: loading
|
120
|
-
};
|
121
|
-
};
|
92
|
+
var DeleteForm = function DeleteForm(_ref) {
|
93
|
+
var resource = _ref.resource,
|
94
|
+
action = _ref.action,
|
95
|
+
previous = _ref.previous;
|
96
|
+
_ref.status;
|
97
|
+
var value = _ref.value,
|
98
|
+
onSubmit = _ref.onSubmit;
|
99
|
+
_ref.errors;
|
100
|
+
var generalError = _ref.generalError,
|
101
|
+
className = _ref.className,
|
102
|
+
props = _objectWithoutProperties__default["default"](_ref, _excluded$5);
|
122
103
|
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
}
|
104
|
+
return /*#__PURE__*/React__default["default"].createElement(Form__default["default"], Object.assign({
|
105
|
+
className: classNames__default["default"](['form', _defineProperty__default["default"]({
|
106
|
+
'invalid-feedback': generalError !== null
|
107
|
+
}, className, className !== null)]),
|
108
|
+
action: action,
|
109
|
+
onSubmit: onSubmit,
|
110
|
+
withoutActions: true,
|
111
|
+
withoutErrors: true
|
112
|
+
}, props), /*#__PURE__*/React__default["default"].createElement("div", {
|
113
|
+
className: "card"
|
114
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
115
|
+
className: "card-body"
|
116
|
+
}, /*#__PURE__*/React__default["default"].createElement(intl.ResourceMessage, {
|
117
|
+
resource: resource,
|
118
|
+
values: value,
|
119
|
+
id: "resources.confirm_delete",
|
120
|
+
defaultMessage: "Are you sure you want to delete {the_singular} #{id}?",
|
121
|
+
description: "Confirmation message"
|
122
|
+
}), generalError ? /*#__PURE__*/React__default["default"].createElement("p", {
|
123
|
+
className: "text-danger"
|
124
|
+
}, /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
|
125
|
+
id: "y9zauY",
|
126
|
+
defaultMessage: [{
|
127
|
+
"type": 0,
|
128
|
+
"value": "An error occured and we could not delete this item successfully."
|
129
|
+
}]
|
130
|
+
})) : null), /*#__PURE__*/React__default["default"].createElement("div", {
|
131
|
+
className: "card-body d-flex"
|
132
|
+
}, previous !== null ? /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
|
133
|
+
href: previous,
|
134
|
+
className: "me-2",
|
135
|
+
theme: "secondary",
|
136
|
+
outline: true
|
137
|
+
}, /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
|
138
|
+
id: "PyxZY2",
|
139
|
+
defaultMessage: [{
|
140
|
+
"type": 0,
|
141
|
+
"value": "Cancel"
|
142
|
+
}]
|
143
|
+
})) : null, /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
|
144
|
+
type: "submit",
|
145
|
+
className: "ms-auto",
|
146
|
+
theme: "danger"
|
147
|
+
}, /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
|
148
|
+
id: "Bhu3B2",
|
149
|
+
defaultMessage: [{
|
150
|
+
"type": 0,
|
151
|
+
"value": "Delete"
|
152
|
+
}]
|
153
|
+
})))));
|
144
154
|
};
|
145
155
|
|
146
|
-
|
147
|
-
|
148
|
-
_useState2 = _slicedToArray__default['default'](_useState, 2),
|
149
|
-
loading = _useState2[0],
|
150
|
-
setLoading = _useState2[1];
|
151
|
-
|
152
|
-
var api = data.useApi();
|
153
|
-
var request = React.useCallback(function (email) {
|
154
|
-
setLoading(true);
|
155
|
-
return api.auth.requestPassword(email).then(function (response) {
|
156
|
-
setLoading(false);
|
157
|
-
return response;
|
158
|
-
})["catch"](function (e) {
|
159
|
-
setLoading(false);
|
160
|
-
throw e;
|
161
|
-
});
|
162
|
-
}, [api, setLoading]);
|
163
|
-
return {
|
164
|
-
request: request,
|
165
|
-
loading: loading
|
166
|
-
};
|
167
|
-
};
|
156
|
+
DeleteForm.propTypes = propTypes$n;
|
157
|
+
DeleteForm.defaultProps = defaultProps$n;
|
168
158
|
|
169
|
-
var
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
return api.auth.resetPassword(data).then(function (response) {
|
179
|
-
setLoading(false);
|
180
|
-
return response;
|
181
|
-
})["catch"](function (e) {
|
182
|
-
setLoading(false);
|
183
|
-
throw e;
|
184
|
-
});
|
185
|
-
}, [api, setLoading]);
|
186
|
-
return {
|
187
|
-
reset: reset,
|
188
|
-
loading: loading
|
189
|
-
};
|
159
|
+
var _excluded$4 = ["component", "resource", "onSuccess", "item", "type", "isDelete"];
|
160
|
+
var propTypes$m = {
|
161
|
+
component: PropTypes__default["default"].string,
|
162
|
+
resource: core.PropTypes.resource.isRequired,
|
163
|
+
item: PropTypes__default["default"].object,
|
164
|
+
// eslint-disable-line react/forbid-prop-types
|
165
|
+
type: PropTypes__default["default"].string,
|
166
|
+
onSuccess: PropTypes__default["default"].func,
|
167
|
+
isDelete: PropTypes__default["default"].bool
|
190
168
|
};
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
169
|
+
var defaultProps$m = {
|
170
|
+
component: null,
|
171
|
+
item: null,
|
172
|
+
type: null,
|
173
|
+
onSuccess: null,
|
174
|
+
isDelete: false
|
195
175
|
};
|
196
|
-
var useUser = function useUser() {
|
197
|
-
var _useAuth = useAuth(),
|
198
|
-
user = _useAuth.user;
|
199
176
|
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
177
|
+
var ResourceForm = function ResourceForm(_ref) {
|
178
|
+
var component = _ref.component,
|
179
|
+
resource = _ref.resource,
|
180
|
+
onSuccess = _ref.onSuccess,
|
181
|
+
item = _ref.item,
|
182
|
+
type = _ref.type,
|
183
|
+
isDelete = _ref.isDelete,
|
184
|
+
props = _objectWithoutProperties__default["default"](_ref, _excluded$4);
|
205
185
|
|
206
|
-
|
207
|
-
|
208
|
-
var
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
var
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
var
|
218
|
-
|
219
|
-
|
220
|
-
children = _ref.children;
|
186
|
+
var locales = contexts.useLocales();
|
187
|
+
var FormComponents = contexts.useFormsComponents();
|
188
|
+
var _resource$fields = resource.fields,
|
189
|
+
resourceFields = _resource$fields === void 0 ? [] : _resource$fields,
|
190
|
+
_resource$types = resource.types,
|
191
|
+
resourceTypes = _resource$types === void 0 ? [] : _resource$types,
|
192
|
+
forms = resource.forms;
|
193
|
+
var resourceType = type !== null ? resourceTypes.find(function (it) {
|
194
|
+
return it.id === type;
|
195
|
+
}) || null : null;
|
196
|
+
|
197
|
+
var _ref2 = resourceType || {},
|
198
|
+
_ref2$fields = _ref2.fields,
|
199
|
+
resourceTypeFields = _ref2$fields === void 0 ? null : _ref2$fields;
|
221
200
|
|
222
|
-
var
|
223
|
-
_useState2 = _slicedToArray__default['default'](_useState, 2),
|
224
|
-
user = _useState2[0],
|
225
|
-
setUser = _useState2[1];
|
201
|
+
var isCreate = item === null || !item.id; // Pick fields from resource root or form
|
226
202
|
|
227
|
-
var
|
228
|
-
|
203
|
+
var _ref3 = forms || {},
|
204
|
+
_ref3$default = _ref3["default"],
|
205
|
+
defaultForm = _ref3$default === void 0 ? null : _ref3$default,
|
206
|
+
_ref3$create = _ref3.create,
|
207
|
+
createForm = _ref3$create === void 0 ? null : _ref3$create,
|
208
|
+
_ref3$edit = _ref3.edit,
|
209
|
+
editForm = _ref3$edit === void 0 ? null : _ref3$edit,
|
210
|
+
_ref3$delete = _ref3["delete"],
|
211
|
+
deleteForm = _ref3$delete === void 0 ? null : _ref3$delete;
|
229
212
|
|
230
|
-
var
|
231
|
-
|
213
|
+
var _ref4 = defaultForm || {},
|
214
|
+
_ref4$fields = _ref4.fields,
|
215
|
+
defaultFields = _ref4$fields === void 0 ? null : _ref4$fields,
|
216
|
+
defaultComponent = _ref4.component;
|
232
217
|
|
233
|
-
var
|
234
|
-
authCheck = _useAuthCheck.check;
|
218
|
+
var createOrEditSource = isCreate ? createForm || {} : editForm || {};
|
235
219
|
|
236
|
-
var
|
237
|
-
|
220
|
+
var _ref5 = isDelete ? deleteForm || {} : createOrEditSource || {},
|
221
|
+
_ref5$fields = _ref5.fields,
|
222
|
+
formFields = _ref5$fields === void 0 ? null : _ref5$fields,
|
223
|
+
_ref5$component = _ref5.component,
|
224
|
+
formComponent = _ref5$component === void 0 ? null : _ref5$component;
|
238
225
|
|
239
|
-
var
|
240
|
-
|
226
|
+
var finalFields = React.useMemo(function () {
|
227
|
+
return (formFields || defaultFields || resourceTypeFields || resourceFields).filter(function (_ref6) {
|
228
|
+
var _ref6$settings = _ref6.settings;
|
229
|
+
_ref6$settings = _ref6$settings === void 0 ? {} : _ref6$settings;
|
230
|
+
var _ref6$settings$hidden = _ref6$settings.hiddenInForm,
|
231
|
+
hiddenInForm = _ref6$settings$hidden === void 0 ? false : _ref6$settings$hidden;
|
232
|
+
return !hiddenInForm;
|
233
|
+
});
|
234
|
+
}, [formFields, defaultFields, resourceTypeFields, resourceFields]); // Form routes
|
241
235
|
|
242
|
-
var
|
243
|
-
authResetPassword = _useAuthResetPassword.reset;
|
236
|
+
var resourceRoute = hooks.useResourceUrlGenerator(resource);
|
244
237
|
|
245
|
-
var
|
246
|
-
|
247
|
-
setUser(newUser);
|
248
|
-
return newUser;
|
249
|
-
});
|
250
|
-
}, [authLogin, setUser]);
|
251
|
-
var logout = React.useCallback(function () {
|
252
|
-
return authLogout().then(function () {
|
253
|
-
setUser(null);
|
254
|
-
});
|
255
|
-
}, [authLogout, setUser]);
|
256
|
-
var register = React.useCallback(function (data) {
|
257
|
-
return authRegister(data).then(function (newUser) {
|
258
|
-
setUser(newUser);
|
259
|
-
return newUser;
|
260
|
-
});
|
261
|
-
}, [authRegister, setUser]);
|
262
|
-
var requestPassword = React.useCallback(function (email) {
|
263
|
-
return authRequestPassword(email);
|
264
|
-
}, [authRequestPassword]);
|
265
|
-
var resetPassword = React.useCallback(function (data) {
|
266
|
-
return authResetPassword(data);
|
267
|
-
}, [authResetPassword]);
|
268
|
-
React.useEffect(function () {
|
269
|
-
if (checkOnMount) {
|
270
|
-
authCheck().then(function () {
|
271
|
-
var newUser = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
272
|
-
setUser(newUser);
|
273
|
-
})["catch"](function () {
|
274
|
-
setUser(null);
|
275
|
-
});
|
276
|
-
}
|
277
|
-
}, [authCheck, setUser, checkOnMount]);
|
278
|
-
return /*#__PURE__*/React__default['default'].createElement(AuthContext.Provider, {
|
279
|
-
value: {
|
280
|
-
user: user,
|
281
|
-
setUser: setUser,
|
282
|
-
loggedIn: user !== null,
|
283
|
-
logout: logout,
|
284
|
-
login: login,
|
285
|
-
register: register,
|
286
|
-
requestPassword: requestPassword,
|
287
|
-
resetPassword: resetPassword
|
288
|
-
}
|
289
|
-
}, children);
|
290
|
-
};
|
291
|
-
AuthProvider.propTypes = propTypes$o;
|
292
|
-
AuthProvider.defaultProps = defaultProps$o;
|
238
|
+
var _useResourceStore = data.useResourceStore(resource),
|
239
|
+
store = _useResourceStore.store;
|
293
240
|
|
294
|
-
var
|
295
|
-
|
296
|
-
itemClassName: PropTypes__default['default'].string,
|
297
|
-
linkClassName: PropTypes__default['default'].string
|
298
|
-
};
|
299
|
-
var defaultProps$n = {
|
300
|
-
className: null,
|
301
|
-
itemClassName: null,
|
302
|
-
linkClassName: null
|
303
|
-
};
|
241
|
+
var _useResourceUpdate = data.useResourceUpdate(resource, item != null ? item.id : null),
|
242
|
+
update = _useResourceUpdate.update;
|
304
243
|
|
305
|
-
var
|
306
|
-
|
307
|
-
itemClassName = _ref.itemClassName,
|
308
|
-
linkClassName = _ref.linkClassName;
|
244
|
+
var _useResourceDestroy = data.useResourceDestroy(resource, item != null ? item.id : null),
|
245
|
+
destroy = _useResourceDestroy.destroy; // Post actions
|
309
246
|
|
310
|
-
var _useLocation = reactRouter.useLocation(),
|
311
|
-
pathname = _useLocation.pathname;
|
312
247
|
|
313
|
-
var
|
314
|
-
var
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
248
|
+
var postAction = isCreate ? store : update;
|
249
|
+
var postForm = React.useCallback(function (action, data) {
|
250
|
+
return isDelete ? destroy() : postAction(data);
|
251
|
+
}, [postAction, isDelete, destroy, store, update]); // Form state
|
252
|
+
|
253
|
+
var getInitialValue = React.useCallback(function () {
|
254
|
+
return item !== null ? item : finalFields.reduce(function (defaultValues, _ref7) {
|
255
|
+
var name = _ref7.name,
|
256
|
+
_ref7$defaultValue = _ref7.defaultValue,
|
257
|
+
defaultValue = _ref7$defaultValue === void 0 ? null : _ref7$defaultValue;
|
258
|
+
return defaultValue !== null ? _objectSpread__default["default"](_objectSpread__default["default"]({}, defaultValues), {}, _defineProperty__default["default"]({}, name, defaultValue)) : defaultValues;
|
259
|
+
}, type !== null ? {
|
260
|
+
type: type
|
261
|
+
} : null);
|
262
|
+
}, [item, type, finalFields]);
|
263
|
+
|
264
|
+
var _useState = React.useState(getInitialValue()),
|
265
|
+
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
266
|
+
value = _useState2[0],
|
267
|
+
setValueState = _useState2[1];
|
268
|
+
|
269
|
+
var setValue = React.useCallback(function (newValue) {
|
270
|
+
// console.log('new value in resource form', newValue); // eslint-disable-line
|
271
|
+
setValueState(newValue);
|
272
|
+
}, [setValueState]);
|
273
|
+
|
274
|
+
var _useForm = hooks.useForm({
|
275
|
+
fields: finalFields,
|
276
|
+
value: value,
|
277
|
+
postForm: postForm,
|
278
|
+
setValue: setValue,
|
279
|
+
onComplete: onSuccess,
|
280
|
+
locales: locales
|
281
|
+
}),
|
282
|
+
fields = _useForm.fields,
|
283
|
+
onSubmit = _useForm.onSubmit,
|
284
|
+
status = _useForm.status,
|
285
|
+
generalError = _useForm.generalError,
|
286
|
+
errors = _useForm.errors; // Form action
|
287
|
+
|
288
|
+
|
289
|
+
var modifyAction = isCreate ? resourceRoute('store') : resourceRoute('update', {
|
290
|
+
id: item.id
|
337
291
|
});
|
338
|
-
|
292
|
+
var action = isDelete ? resourceRoute('destroy', {
|
293
|
+
id: item.id
|
294
|
+
}) : modifyAction;
|
295
|
+
var defaultFormName = isDelete ? component || formComponent || null : component || formComponent || defaultComponent || 'normal'; // Form component
|
339
296
|
|
340
|
-
|
341
|
-
ResourcesMenu.defaultProps = defaultProps$n;
|
297
|
+
var FormComponent = utils.getComponentFromName(defaultFormName, FormComponents, isDelete ? DeleteForm : component); // Lisen to item value change - this is important
|
342
298
|
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
},
|
365
|
-
edit: {
|
366
|
-
"id": "resources.edit",
|
367
|
-
"defaultMessage": [{
|
368
|
-
"type": 0,
|
369
|
-
"value": "Edit "
|
370
|
-
}, {
|
371
|
-
"type": 1,
|
372
|
-
"value": "a_singular"
|
373
|
-
}]
|
374
|
-
},
|
375
|
-
"delete": {
|
376
|
-
"id": "resources.delete",
|
377
|
-
"defaultMessage": [{
|
378
|
-
"type": 0,
|
379
|
-
"value": "Delete "
|
380
|
-
}, {
|
381
|
-
"type": 1,
|
382
|
-
"value": "a_singular"
|
383
|
-
}]
|
384
|
-
},
|
385
|
-
created: {
|
386
|
-
"id": "resources.created",
|
387
|
-
"defaultMessage": [{
|
388
|
-
"type": 1,
|
389
|
-
"value": "the_singular"
|
390
|
-
}, {
|
391
|
-
"type": 0,
|
392
|
-
"value": " has been created."
|
393
|
-
}]
|
394
|
-
},
|
395
|
-
deleted: {
|
396
|
-
"id": "resources.deleted",
|
397
|
-
"defaultMessage": [{
|
398
|
-
"type": 1,
|
399
|
-
"value": "the_singular"
|
400
|
-
}, {
|
401
|
-
"type": 0,
|
402
|
-
"value": " has been deleted."
|
403
|
-
}]
|
404
|
-
},
|
405
|
-
loading: {
|
406
|
-
"id": "resources.loading",
|
407
|
-
"defaultMessage": [{
|
408
|
-
"type": 0,
|
409
|
-
"value": "Loading "
|
410
|
-
}, {
|
411
|
-
"type": 1,
|
412
|
-
"value": "plural"
|
413
|
-
}, {
|
414
|
-
"type": 0,
|
415
|
-
"value": "..."
|
416
|
-
}]
|
417
|
-
},
|
418
|
-
// Forms
|
419
|
-
confirm_delete: {
|
420
|
-
"id": "form.confirm_delete",
|
421
|
-
"defaultMessage": [{
|
422
|
-
"type": 0,
|
423
|
-
"value": "Are you sure you want to delete item #"
|
424
|
-
}, {
|
425
|
-
"type": 1,
|
426
|
-
"value": "id"
|
427
|
-
}, {
|
428
|
-
"type": 0,
|
429
|
-
"value": "?"
|
430
|
-
}]
|
431
|
-
},
|
432
|
-
show_button: {
|
433
|
-
"id": "form.show_button",
|
434
|
-
"defaultMessage": [{
|
435
|
-
"type": 0,
|
436
|
-
"value": "Cancel"
|
437
|
-
}]
|
438
|
-
},
|
439
|
-
edit_button: {
|
440
|
-
"id": "form.edit_button",
|
441
|
-
"defaultMessage": [{
|
442
|
-
"type": 0,
|
443
|
-
"value": "Edit"
|
444
|
-
}]
|
445
|
-
},
|
446
|
-
cancel_button: {
|
447
|
-
"id": "form.cancel_button",
|
448
|
-
"defaultMessage": [{
|
449
|
-
"type": 0,
|
450
|
-
"value": "Cancel"
|
451
|
-
}]
|
452
|
-
},
|
453
|
-
delete_button: {
|
454
|
-
"id": "form.delete_button",
|
455
|
-
"defaultMessage": [{
|
456
|
-
"type": 0,
|
457
|
-
"value": "Delete"
|
458
|
-
}]
|
459
|
-
},
|
460
|
-
// Auth
|
461
|
-
login_title: {
|
462
|
-
"id": "auth.login.title",
|
463
|
-
"defaultMessage": [{
|
464
|
-
"type": 0,
|
465
|
-
"value": "Login"
|
466
|
-
}]
|
467
|
-
},
|
468
|
-
login: {
|
469
|
-
"id": "auth.login",
|
470
|
-
"defaultMessage": [{
|
471
|
-
"type": 0,
|
472
|
-
"value": "Login"
|
473
|
-
}]
|
474
|
-
},
|
475
|
-
logout: {
|
476
|
-
"id": "auth.logout",
|
477
|
-
"defaultMessage": [{
|
478
|
-
"type": 0,
|
479
|
-
"value": "Logout"
|
480
|
-
}]
|
481
|
-
},
|
482
|
-
account: {
|
483
|
-
"id": "auth.account",
|
484
|
-
"defaultMessage": [{
|
485
|
-
"type": 0,
|
486
|
-
"value": "Account"
|
487
|
-
}]
|
488
|
-
},
|
489
|
-
updateAccount: {
|
490
|
-
"id": "auth.update_account",
|
491
|
-
"defaultMessage": [{
|
492
|
-
"type": 0,
|
493
|
-
"value": "Update account"
|
494
|
-
}]
|
495
|
-
}
|
496
|
-
});
|
299
|
+
React.useEffect(function () {
|
300
|
+
// console.log('get initial value from the top'); // eslint-disable-line
|
301
|
+
setValue(getInitialValue());
|
302
|
+
}, [getInitialValue, setValue]);
|
303
|
+
return /*#__PURE__*/React__default["default"].createElement(contexts.FormProvider, {
|
304
|
+
value: value,
|
305
|
+
setValue: setValue
|
306
|
+
}, /*#__PURE__*/React__default["default"].createElement(FormComponent, Object.assign({}, props, {
|
307
|
+
status: status,
|
308
|
+
resource: resource,
|
309
|
+
item: item,
|
310
|
+
fields: fields,
|
311
|
+
generalError: generalError,
|
312
|
+
errors: errors,
|
313
|
+
action: action,
|
314
|
+
onSubmit: onSubmit,
|
315
|
+
isCreate: isCreate,
|
316
|
+
value: value,
|
317
|
+
onChange: setValue
|
318
|
+
})));
|
319
|
+
};
|
497
320
|
|
498
|
-
|
499
|
-
|
500
|
-
|
501
|
-
|
321
|
+
ResourceForm.propTypes = propTypes$m;
|
322
|
+
ResourceForm.defaultProps = defaultProps$m;
|
323
|
+
|
324
|
+
var propTypes$l = {
|
325
|
+
className: PropTypes__default["default"].string,
|
326
|
+
itemClassName: PropTypes__default["default"].string,
|
327
|
+
linkClassName: PropTypes__default["default"].string
|
502
328
|
};
|
503
|
-
var defaultProps$
|
329
|
+
var defaultProps$l = {
|
504
330
|
className: null,
|
505
331
|
itemClassName: null,
|
506
332
|
linkClassName: null
|
@@ -511,45 +337,118 @@ var AccountMenu = function AccountMenu(_ref) {
|
|
511
337
|
itemClassName = _ref.itemClassName,
|
512
338
|
linkClassName = _ref.linkClassName;
|
513
339
|
var route = contexts.useUrlGenerator();
|
514
|
-
var user = useUser();
|
515
|
-
var logout = useLogout();
|
340
|
+
var user = auth.useUser();
|
341
|
+
var logout = auth.useLogout();
|
516
342
|
var onClickLogout = React.useCallback(function (e) {
|
517
343
|
e.preventDefault();
|
518
344
|
logout();
|
519
|
-
}, [logout]);
|
345
|
+
}, [logout, route]);
|
520
346
|
var items = React.useMemo(function () {
|
521
347
|
return user !== null ? [{
|
522
348
|
id: 'account',
|
523
|
-
label:
|
524
|
-
|
525
|
-
|
526
|
-
|
527
|
-
|
528
|
-
|
529
|
-
|
349
|
+
label: /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
|
350
|
+
id: "IuqEHB",
|
351
|
+
defaultMessage: [{
|
352
|
+
"type": 0,
|
353
|
+
"value": "Account"
|
354
|
+
}]
|
355
|
+
}),
|
356
|
+
href: route('panneau.account'),
|
357
|
+
dropdown: [// {
|
358
|
+
// label: (
|
359
|
+
// <FormattedMessage
|
360
|
+
// defaultMessage="Update account"
|
361
|
+
// description="Menu label"
|
362
|
+
// />
|
363
|
+
// ),
|
364
|
+
// href: route('panneau.account'),
|
365
|
+
// },
|
366
|
+
{
|
367
|
+
label: /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
|
368
|
+
id: "REIcPg",
|
369
|
+
defaultMessage: [{
|
370
|
+
"type": 0,
|
371
|
+
"value": "Logout"
|
372
|
+
}]
|
373
|
+
}),
|
530
374
|
href: route('auth.logout'),
|
531
375
|
onClick: onClickLogout
|
532
376
|
}]
|
533
377
|
}] : [{
|
534
|
-
label:
|
378
|
+
label: /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
|
379
|
+
id: "d0g58T",
|
380
|
+
defaultMessage: [{
|
381
|
+
"type": 0,
|
382
|
+
"value": "Login"
|
383
|
+
}]
|
384
|
+
}),
|
535
385
|
href: route('login')
|
536
386
|
}];
|
537
387
|
}, [user, route, onClickLogout]);
|
538
|
-
return items !== null ? /*#__PURE__*/React__default[
|
388
|
+
return items !== null ? /*#__PURE__*/React__default["default"].createElement(Menu__default["default"], {
|
389
|
+
className: className,
|
390
|
+
itemClassName: itemClassName,
|
391
|
+
linkClassName: linkClassName,
|
392
|
+
items: items,
|
393
|
+
dropdownAlign: "end"
|
394
|
+
}) : null;
|
395
|
+
};
|
396
|
+
|
397
|
+
AccountMenu.propTypes = propTypes$l;
|
398
|
+
AccountMenu.defaultProps = defaultProps$l;
|
399
|
+
|
400
|
+
var propTypes$k = {
|
401
|
+
className: PropTypes__default["default"].string,
|
402
|
+
itemClassName: PropTypes__default["default"].string,
|
403
|
+
linkClassName: PropTypes__default["default"].string
|
404
|
+
};
|
405
|
+
var defaultProps$k = {
|
406
|
+
className: null,
|
407
|
+
itemClassName: null,
|
408
|
+
linkClassName: null
|
409
|
+
};
|
410
|
+
|
411
|
+
var ResourcesMenu = function ResourcesMenu(_ref) {
|
412
|
+
var className = _ref.className,
|
413
|
+
itemClassName = _ref.itemClassName,
|
414
|
+
linkClassName = _ref.linkClassName;
|
415
|
+
|
416
|
+
var _useLocation = reactRouter.useLocation(),
|
417
|
+
pathname = _useLocation.pathname;
|
418
|
+
|
419
|
+
var resources = contexts.usePanneauResources();
|
420
|
+
var resourceRoute = hooks.useResourceUrlGenerator();
|
421
|
+
var items = React.useMemo(function () {
|
422
|
+
return resources.filter(function (_ref2) {
|
423
|
+
var _ref2$settings = _ref2.settings;
|
424
|
+
_ref2$settings = _ref2$settings === void 0 ? {} : _ref2$settings;
|
425
|
+
var _ref2$settings$hideIn = _ref2$settings.hideInNavbar,
|
426
|
+
hideInNavbar = _ref2$settings$hideIn === void 0 ? false : _ref2$settings$hideIn;
|
427
|
+
return !hideInNavbar;
|
428
|
+
}).map(function (it) {
|
429
|
+
var url = resourceRoute(it, 'index');
|
430
|
+
return {
|
431
|
+
id: it.id,
|
432
|
+
label: it.name,
|
433
|
+
href: url,
|
434
|
+
active: pathname.substr(0, url.length) === url
|
435
|
+
};
|
436
|
+
});
|
437
|
+
}, [resources, pathname, resourceRoute]);
|
438
|
+
return /*#__PURE__*/React__default["default"].createElement(Menu__default["default"], {
|
439
|
+
items: items,
|
539
440
|
className: className,
|
540
441
|
itemClassName: itemClassName,
|
541
|
-
linkClassName: linkClassName
|
542
|
-
|
543
|
-
dropdownAlign: "end"
|
544
|
-
}) : null;
|
442
|
+
linkClassName: linkClassName
|
443
|
+
});
|
545
444
|
};
|
546
445
|
|
547
|
-
|
548
|
-
|
446
|
+
ResourcesMenu.propTypes = propTypes$k;
|
447
|
+
ResourcesMenu.defaultProps = defaultProps$k;
|
549
448
|
|
550
449
|
/* eslint-disable react/jsx-props-no-spreading */
|
551
|
-
var propTypes$
|
552
|
-
var defaultProps$
|
450
|
+
var propTypes$j = {};
|
451
|
+
var defaultProps$j = {};
|
553
452
|
|
554
453
|
var MainNavbar = function MainNavbar(props) {
|
555
454
|
var _usePanneau = contexts.usePanneau(),
|
@@ -559,36 +458,36 @@ var MainNavbar = function MainNavbar(props) {
|
|
559
458
|
background = _usePanneauColorSchem.background;
|
560
459
|
|
561
460
|
var route = contexts.useUrlGenerator();
|
562
|
-
var user = useUser();
|
563
|
-
return /*#__PURE__*/React__default[
|
461
|
+
var user = auth.useUser();
|
462
|
+
return /*#__PURE__*/React__default["default"].createElement(Navbar__default["default"], Object.assign({
|
564
463
|
theme: background
|
565
|
-
}, props), name !== null ? /*#__PURE__*/React__default[
|
464
|
+
}, props), name !== null ? /*#__PURE__*/React__default["default"].createElement(reactRouterDom.Link, {
|
566
465
|
to: route('home'),
|
567
466
|
className: "navbar-brand"
|
568
|
-
}, name) : null, user !== null ? /*#__PURE__*/React__default[
|
467
|
+
}, name) : null, user !== null ? /*#__PURE__*/React__default["default"].createElement(ResourcesMenu, {
|
569
468
|
className: "navbar-nav ml-4",
|
570
469
|
itemClassName: "nav-item",
|
571
470
|
linkClassName: "nav-link"
|
572
|
-
}) : null, /*#__PURE__*/React__default[
|
471
|
+
}) : null, /*#__PURE__*/React__default["default"].createElement(AccountMenu, {
|
573
472
|
className: "navbar-nav ms-auto",
|
574
473
|
itemClassName: "nav-item",
|
575
474
|
linkClassName: "nav-link"
|
576
475
|
}));
|
577
476
|
};
|
578
477
|
|
579
|
-
MainNavbar.propTypes = propTypes$
|
580
|
-
MainNavbar.defaultProps = defaultProps$
|
478
|
+
MainNavbar.propTypes = propTypes$j;
|
479
|
+
MainNavbar.defaultProps = defaultProps$j;
|
581
480
|
|
582
|
-
var propTypes$
|
583
|
-
children: PropTypes__default[
|
584
|
-
fullscreen: PropTypes__default[
|
481
|
+
var propTypes$i = {
|
482
|
+
children: PropTypes__default["default"].node.isRequired,
|
483
|
+
fullscreen: PropTypes__default["default"].bool
|
585
484
|
};
|
586
|
-
var defaultProps$
|
485
|
+
var defaultProps$i = {
|
587
486
|
fullscreen: false
|
588
487
|
};
|
589
488
|
|
590
489
|
var MainLayout = function MainLayout(_ref) {
|
591
|
-
var
|
490
|
+
var _ref2;
|
592
491
|
|
593
492
|
var children = _ref.children,
|
594
493
|
fullscreen = _ref.fullscreen;
|
@@ -597,30 +496,28 @@ var MainLayout = function MainLayout(_ref) {
|
|
597
496
|
background = _usePanneauColorSchem.background,
|
598
497
|
text = _usePanneauColorSchem.text;
|
599
498
|
|
600
|
-
return /*#__PURE__*/React__default[
|
601
|
-
className: classNames__default[
|
602
|
-
|
603
|
-
|
604
|
-
}, /*#__PURE__*/React__default[
|
605
|
-
className: classNames__default[
|
606
|
-
|
607
|
-
|
608
|
-
'd-flex flex-column flex-grow-1': fullscreen
|
609
|
-
}, _defineProperty__default['default'](_classNames, "bg-".concat(background), background !== null), _defineProperty__default['default'](_classNames, "text-".concat(text), text !== null), _classNames))
|
499
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
500
|
+
className: classNames__default["default"](['d-flex', 'flex-column', 'min-vh-100'])
|
501
|
+
}, /*#__PURE__*/React__default["default"].createElement(MainNavbar, {
|
502
|
+
className: classNames__default["default"](['border-bottom', 'sticky-top', 'px-3'])
|
503
|
+
}), /*#__PURE__*/React__default["default"].createElement("div", {
|
504
|
+
className: classNames__default["default"](['flex-grow-1', (_ref2 = {
|
505
|
+
'd-flex flex-column': fullscreen
|
506
|
+
}, _defineProperty__default["default"](_ref2, "bg-".concat(background), background !== null), _defineProperty__default["default"](_ref2, "text-".concat(text), text !== null), _ref2)])
|
610
507
|
}, children));
|
611
508
|
};
|
612
509
|
|
613
|
-
MainLayout.propTypes = propTypes$
|
614
|
-
MainLayout.defaultProps = defaultProps$
|
510
|
+
MainLayout.propTypes = propTypes$i;
|
511
|
+
MainLayout.defaultProps = defaultProps$i;
|
615
512
|
|
616
|
-
var propTypes$
|
513
|
+
var propTypes$h = {
|
617
514
|
title: core.PropTypes.label,
|
618
|
-
actions: PropTypes__default[
|
619
|
-
small: PropTypes__default[
|
620
|
-
className: PropTypes__default[
|
621
|
-
children: PropTypes__default[
|
515
|
+
actions: PropTypes__default["default"].node,
|
516
|
+
small: PropTypes__default["default"].bool,
|
517
|
+
className: PropTypes__default["default"].string,
|
518
|
+
children: PropTypes__default["default"].node
|
622
519
|
};
|
623
|
-
var defaultProps$
|
520
|
+
var defaultProps$h = {
|
624
521
|
title: null,
|
625
522
|
actions: null,
|
626
523
|
small: false,
|
@@ -637,198 +534,33 @@ var PageHeader = function PageHeader(_ref) {
|
|
637
534
|
className = _ref.className,
|
638
535
|
children = _ref.children;
|
639
536
|
|
640
|
-
|
641
|
-
|
642
|
-
|
537
|
+
// TODO: fix page header components
|
538
|
+
// const { components } = usePanneau();
|
643
539
|
var _usePanneauColorSchem = contexts.usePanneauColorScheme(),
|
644
540
|
text = _usePanneauColorSchem.text,
|
645
|
-
background = _usePanneauColorSchem.background;
|
541
|
+
background = _usePanneauColorSchem.background; // console.log('page-header', components); // eslint-disable-line
|
542
|
+
|
646
543
|
|
647
|
-
|
648
|
-
var inner = /*#__PURE__*/React__default['default'].createElement("div", {
|
544
|
+
var inner = /*#__PURE__*/React__default["default"].createElement("div", {
|
649
545
|
className: "d-flex align-items-center flex-wrap"
|
650
|
-
}, title !== null ? /*#__PURE__*/React__default[
|
546
|
+
}, title !== null ? /*#__PURE__*/React__default["default"].createElement("h1", {
|
651
547
|
className: "mb-0"
|
652
|
-
}, /*#__PURE__*/React__default[
|
548
|
+
}, /*#__PURE__*/React__default["default"].createElement(Label__default["default"], null, title)) : null, actions !== null ? /*#__PURE__*/React__default["default"].createElement("div", {
|
653
549
|
className: "ms-auto"
|
654
550
|
}, actions) : null);
|
655
|
-
return /*#__PURE__*/React__default[
|
656
|
-
className: classNames__default[
|
657
|
-
}, /*#__PURE__*/React__default[
|
551
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
552
|
+
className: classNames__default["default"](['py-4', (_ref2 = {}, _defineProperty__default["default"](_ref2, "bg-".concat(background), background !== null), _defineProperty__default["default"](_ref2, "text-".concat(text), text !== null), _defineProperty__default["default"](_ref2, "border-bottom", background || text !== null), _defineProperty__default["default"](_ref2, className, className !== null), _ref2)])
|
553
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
658
554
|
className: "container-sm"
|
659
|
-
}, small ? /*#__PURE__*/React__default[
|
555
|
+
}, small ? /*#__PURE__*/React__default["default"].createElement("div", {
|
660
556
|
className: "row justify-content-center"
|
661
|
-
}, /*#__PURE__*/React__default[
|
557
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
662
558
|
className: "col-12 col-md-8 col-lg-7"
|
663
559
|
}, inner)) : inner), children);
|
664
560
|
};
|
665
561
|
|
666
|
-
PageHeader.propTypes = propTypes$
|
667
|
-
PageHeader.defaultProps = defaultProps$
|
668
|
-
|
669
|
-
var propTypes$i = {
|
670
|
-
resource: core.PropTypes.resource.isRequired,
|
671
|
-
values: PropTypes__default['default'].object,
|
672
|
-
// eslint-disable-line react/forbid-prop-types,
|
673
|
-
message: core.PropTypes.message.isRequired
|
674
|
-
};
|
675
|
-
var defaultProps$i = {
|
676
|
-
values: null
|
677
|
-
};
|
678
|
-
|
679
|
-
var ResourceLabel = function ResourceLabel(_ref) {
|
680
|
-
var resource = _ref.resource,
|
681
|
-
values = _ref.values,
|
682
|
-
message = _ref.message;
|
683
|
-
var _resource$label = resource.label,
|
684
|
-
label = _resource$label === void 0 ? null : _resource$label,
|
685
|
-
_resource$intl = resource.intl,
|
686
|
-
intl = _resource$intl === void 0 ? null : _resource$intl,
|
687
|
-
_resource$localizatio = resource.localization,
|
688
|
-
localization = _resource$localizatio === void 0 ? null : _resource$localizatio;
|
689
|
-
|
690
|
-
var _ref2 = intl || localization || {},
|
691
|
-
resourceValues = _ref2.values;
|
692
|
-
|
693
|
-
return /*#__PURE__*/React__default['default'].createElement(reactIntl.FormattedMessage, Object.assign({
|
694
|
-
values: _objectSpread__default['default'](_objectSpread__default['default']({
|
695
|
-
label: label
|
696
|
-
}, resourceValues), values)
|
697
|
-
}, message));
|
698
|
-
};
|
699
|
-
|
700
|
-
ResourceLabel.propTypes = propTypes$i;
|
701
|
-
ResourceLabel.defaultProps = defaultProps$i;
|
702
|
-
|
703
|
-
var propTypes$h = {
|
704
|
-
component: PropTypes__default['default'].string,
|
705
|
-
resource: core.PropTypes.resource.isRequired,
|
706
|
-
messages: PropTypes__default['default'].object,
|
707
|
-
// eslint-disable-line react/forbid-prop-types
|
708
|
-
item: PropTypes__default['default'].object,
|
709
|
-
// eslint-disable-line react/forbid-prop-types
|
710
|
-
onSuccess: PropTypes__default['default'].func,
|
711
|
-
isDelete: PropTypes__default['default'].bool
|
712
|
-
};
|
713
|
-
var defaultProps$h = {
|
714
|
-
component: null,
|
715
|
-
item: null,
|
716
|
-
messages: null,
|
717
|
-
onSuccess: null,
|
718
|
-
isDelete: false
|
719
|
-
};
|
720
|
-
|
721
|
-
var ResourceForm = function ResourceForm(_ref) {
|
722
|
-
var component = _ref.component,
|
723
|
-
resource = _ref.resource,
|
724
|
-
messages = _ref.messages,
|
725
|
-
onSuccess = _ref.onSuccess,
|
726
|
-
item = _ref.item,
|
727
|
-
isDelete = _ref.isDelete,
|
728
|
-
props = _objectWithoutProperties__default['default'](_ref, ["component", "resource", "messages", "onSuccess", "item", "isDelete"]);
|
729
|
-
|
730
|
-
var FormComponents = contexts.useFormsComponents();
|
731
|
-
|
732
|
-
var _ref2 = resource || {},
|
733
|
-
baseFields = _ref2.fields,
|
734
|
-
_ref2$forms = _ref2.forms,
|
735
|
-
forms = _ref2$forms === void 0 ? {} : _ref2$forms;
|
736
|
-
|
737
|
-
var isCreate = item === null || !item.id; // Pick fields from resource root or form
|
738
|
-
|
739
|
-
var _ref3 = forms || {},
|
740
|
-
_ref3$default = _ref3["default"],
|
741
|
-
defaultForm = _ref3$default === void 0 ? null : _ref3$default,
|
742
|
-
_ref3$create = _ref3.create,
|
743
|
-
createForm = _ref3$create === void 0 ? null : _ref3$create,
|
744
|
-
_ref3$edit = _ref3.edit,
|
745
|
-
editForm = _ref3$edit === void 0 ? null : _ref3$edit;
|
746
|
-
|
747
|
-
var _ref4 = defaultForm || {},
|
748
|
-
defaultFields = _ref4.fields,
|
749
|
-
defaultComponent = _ref4.component;
|
750
|
-
|
751
|
-
var _ref5 = isCreate ? createForm || {} : editForm || {},
|
752
|
-
_ref5$fields = _ref5.fields,
|
753
|
-
formFields = _ref5$fields === void 0 ? null : _ref5$fields,
|
754
|
-
_ref5$component = _ref5.component,
|
755
|
-
formComponent = _ref5$component === void 0 ? null : _ref5$component;
|
756
|
-
|
757
|
-
var resourceFields = formFields || defaultFields || baseFields; // Form routes
|
758
|
-
|
759
|
-
var resourceRoute = hooks.useResourceUrlGenerator(resource);
|
760
|
-
|
761
|
-
var _useResourceStore = data.useResourceStore(resource),
|
762
|
-
store = _useResourceStore.store;
|
763
|
-
|
764
|
-
var _useResourceUpdate = data.useResourceUpdate(resource, item != null ? item.id : null),
|
765
|
-
update = _useResourceUpdate.update;
|
766
|
-
|
767
|
-
var postForm = React.useCallback(function (action, data) {
|
768
|
-
return isCreate ? store(data) : update(data);
|
769
|
-
}, [isCreate, store, update]); // Form state
|
770
|
-
|
771
|
-
var getInitialValue = React.useCallback(function () {
|
772
|
-
return item !== null ? item : resourceFields.reduce(function (defaultValues, _ref6) {
|
773
|
-
var name = _ref6.name,
|
774
|
-
_ref6$default_value = _ref6.default_value,
|
775
|
-
defaultValue = _ref6$default_value === void 0 ? null : _ref6$default_value;
|
776
|
-
return defaultValue !== null ? _objectSpread__default['default'](_objectSpread__default['default']({}, defaultValues), {}, _defineProperty__default['default']({}, name, defaultValue)) : defaultValues;
|
777
|
-
}, null);
|
778
|
-
}, [item, resourceFields]);
|
779
|
-
|
780
|
-
var _useState = React.useState(getInitialValue()),
|
781
|
-
_useState2 = _slicedToArray__default['default'](_useState, 2),
|
782
|
-
value = _useState2[0],
|
783
|
-
setValue = _useState2[1];
|
784
|
-
|
785
|
-
var _useForm = hooks.useForm({
|
786
|
-
fields: resourceFields,
|
787
|
-
value: value,
|
788
|
-
postForm: postForm,
|
789
|
-
setValue: setValue,
|
790
|
-
onComplete: onSuccess
|
791
|
-
}),
|
792
|
-
fields = _useForm.fields,
|
793
|
-
onSubmit = _useForm.onSubmit,
|
794
|
-
status = _useForm.status,
|
795
|
-
generalError = _useForm.generalError,
|
796
|
-
errors = _useForm.errors; // Form action
|
797
|
-
|
798
|
-
|
799
|
-
var modifyAction = isCreate ? resourceRoute('store') : resourceRoute('update', {
|
800
|
-
id: item.id
|
801
|
-
});
|
802
|
-
var action = isDelete ? resourceRoute('destroy', {
|
803
|
-
id: item.id
|
804
|
-
}) : modifyAction; // Form component
|
805
|
-
|
806
|
-
var FormComponent = utils.getComponentFromName(component || formComponent || defaultComponent || 'normal', FormComponents, component); // Lisen to item value change
|
807
|
-
|
808
|
-
React.useEffect(function () {
|
809
|
-
setValue(getInitialValue());
|
810
|
-
}, [getInitialValue, setValue]);
|
811
|
-
return /*#__PURE__*/React__default['default'].createElement(contexts.FormProvider, {
|
812
|
-
value: value,
|
813
|
-
setValue: setValue
|
814
|
-
}, /*#__PURE__*/React__default['default'].createElement(FormComponent, Object.assign({}, props, {
|
815
|
-
status: status,
|
816
|
-
resource: resource,
|
817
|
-
item: item,
|
818
|
-
fields: fields,
|
819
|
-
generalError: generalError,
|
820
|
-
errors: errors,
|
821
|
-
action: action,
|
822
|
-
onSubmit: onSubmit,
|
823
|
-
isCreate: isCreate,
|
824
|
-
value: value,
|
825
|
-
messages: messages,
|
826
|
-
onChange: setValue
|
827
|
-
})));
|
828
|
-
};
|
829
|
-
|
830
|
-
ResourceForm.propTypes = propTypes$h;
|
831
|
-
ResourceForm.defaultProps = defaultProps$h;
|
562
|
+
PageHeader.propTypes = propTypes$h;
|
563
|
+
PageHeader.defaultProps = defaultProps$h;
|
832
564
|
|
833
565
|
var propTypes$g = {
|
834
566
|
resource: core.PropTypes.resource.isRequired
|
@@ -838,27 +570,40 @@ var defaultProps$g = {};
|
|
838
570
|
var ResourceCreatePage = function ResourceCreatePage(_ref) {
|
839
571
|
var resource = _ref.resource;
|
840
572
|
var history = reactRouter.useHistory();
|
573
|
+
|
574
|
+
var _useLocation = reactRouter.useLocation(),
|
575
|
+
search = _useLocation.search;
|
576
|
+
|
841
577
|
var resourceRoute = hooks.useResourceUrlGenerator(resource);
|
842
578
|
var onSuccess = React.useCallback(function () {
|
843
579
|
history.push("".concat(resourceRoute('index'), "?created=true"));
|
844
580
|
}, [history, resourceRoute]);
|
845
|
-
|
581
|
+
|
582
|
+
var _useMemo = React.useMemo(function () {
|
583
|
+
return queryString.parse(search);
|
584
|
+
}, [search]),
|
585
|
+
_useMemo$type = _useMemo.type,
|
586
|
+
type = _useMemo$type === void 0 ? null : _useMemo$type;
|
587
|
+
|
588
|
+
return /*#__PURE__*/React__default["default"].createElement(contexts.ResourceProvider, {
|
846
589
|
resource: resource
|
847
|
-
}, /*#__PURE__*/React__default[
|
848
|
-
title: /*#__PURE__*/React__default[
|
590
|
+
}, /*#__PURE__*/React__default["default"].createElement(MainLayout, null, /*#__PURE__*/React__default["default"].createElement(PageHeader, {
|
591
|
+
title: /*#__PURE__*/React__default["default"].createElement(intl.ResourceMessage, {
|
849
592
|
resource: resource,
|
850
|
-
|
593
|
+
id: "resources.create",
|
594
|
+
defaultMessage: "Create {a_singular}",
|
595
|
+
description: "Page title"
|
851
596
|
}),
|
852
597
|
small: true
|
853
|
-
}), /*#__PURE__*/React__default[
|
598
|
+
}), /*#__PURE__*/React__default["default"].createElement("div", {
|
854
599
|
className: "container-sm py-4"
|
855
|
-
}, /*#__PURE__*/React__default[
|
600
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
856
601
|
className: "row justify-content-center"
|
857
|
-
}, /*#__PURE__*/React__default[
|
602
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
858
603
|
className: "col-12 col-md-8 col-lg-7"
|
859
|
-
}, /*#__PURE__*/React__default[
|
604
|
+
}, /*#__PURE__*/React__default["default"].createElement(ResourceForm, {
|
860
605
|
resource: resource,
|
861
|
-
|
606
|
+
type: type,
|
862
607
|
onSuccess: onSuccess
|
863
608
|
}))))));
|
864
609
|
};
|
@@ -868,7 +613,7 @@ ResourceCreatePage.defaultProps = defaultProps$g;
|
|
868
613
|
|
869
614
|
var propTypes$f = {
|
870
615
|
resource: core.PropTypes.resource.isRequired,
|
871
|
-
itemId: PropTypes__default[
|
616
|
+
itemId: PropTypes__default["default"].string.isRequired
|
872
617
|
};
|
873
618
|
var defaultProps$f = {};
|
874
619
|
|
@@ -885,30 +630,31 @@ var ResourceDeletePage = function ResourceDeletePage(_ref) {
|
|
885
630
|
return history.push("".concat(resourceRoute('index'), "?deleted=true"));
|
886
631
|
}, [history, resourceRoute]); // Navigate back
|
887
632
|
|
888
|
-
var _ref2 = history ||
|
889
|
-
entries = _ref2.entries,
|
890
|
-
|
633
|
+
var _ref2 = history || {},
|
634
|
+
_ref2$entries = _ref2.entries,
|
635
|
+
entries = _ref2$entries === void 0 ? [] : _ref2$entries;
|
891
636
|
|
892
|
-
var previousEntry = length > 1 ? entries[length - 2] : null;
|
637
|
+
var previousEntry = entries !== null && entries.length > 1 ? entries[entries.length - 2] : null;
|
893
638
|
var previous = (previousEntry === null || previousEntry === void 0 ? void 0 : previousEntry.pathname) || null;
|
894
|
-
return /*#__PURE__*/React__default[
|
639
|
+
return /*#__PURE__*/React__default["default"].createElement(contexts.ResourceProvider, {
|
895
640
|
resource: resource
|
896
|
-
}, /*#__PURE__*/React__default[
|
897
|
-
title: /*#__PURE__*/React__default[
|
641
|
+
}, /*#__PURE__*/React__default["default"].createElement(MainLayout, null, /*#__PURE__*/React__default["default"].createElement(PageHeader, {
|
642
|
+
title: /*#__PURE__*/React__default["default"].createElement(intl.ResourceMessage, {
|
898
643
|
resource: resource,
|
899
|
-
|
644
|
+
id: "resources.delete",
|
645
|
+
defaultMessage: "Delete {a_singular}",
|
646
|
+
description: "Page title"
|
900
647
|
}),
|
901
648
|
small: true
|
902
|
-
}), /*#__PURE__*/React__default[
|
649
|
+
}), /*#__PURE__*/React__default["default"].createElement("div", {
|
903
650
|
className: "container-sm py-4"
|
904
|
-
}, /*#__PURE__*/React__default[
|
651
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
905
652
|
className: "row justify-content-center"
|
906
|
-
}, /*#__PURE__*/React__default[
|
653
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
907
654
|
className: "col-12 col-md-8 col-lg-7"
|
908
|
-
}, item !== null ? /*#__PURE__*/React__default[
|
909
|
-
component: "
|
655
|
+
}, item !== null ? /*#__PURE__*/React__default["default"].createElement(ResourceForm, {
|
656
|
+
component: "",
|
910
657
|
resource: resource,
|
911
|
-
messages: messages$1,
|
912
658
|
item: item,
|
913
659
|
onSuccess: onSuccess,
|
914
660
|
previous: previous,
|
@@ -921,7 +667,7 @@ ResourceDeletePage.defaultProps = defaultProps$f;
|
|
921
667
|
|
922
668
|
var propTypes$e = {
|
923
669
|
resource: core.PropTypes.resource.isRequired,
|
924
|
-
itemId: PropTypes__default[
|
670
|
+
itemId: PropTypes__default["default"].string.isRequired
|
925
671
|
};
|
926
672
|
var defaultProps$e = {};
|
927
673
|
|
@@ -929,13 +675,15 @@ var ResourceEditPage = function ResourceEditPage(_ref) {
|
|
929
675
|
var resource = _ref.resource,
|
930
676
|
itemId = _ref.itemId;
|
931
677
|
|
932
|
-
// console.log(itemId);
|
933
|
-
// const resourceRoute = useResourceUrlGenerator(resource);
|
934
678
|
var _useResourceItem = data.useResourceItem(resource, itemId),
|
935
679
|
item = _useResourceItem.item;
|
936
680
|
|
681
|
+
var _ref2 = item || {},
|
682
|
+
_ref2$type = _ref2.type,
|
683
|
+
type = _ref2$type === void 0 ? null : _ref2$type;
|
684
|
+
|
937
685
|
var _useState = React.useState(item),
|
938
|
-
_useState2 = _slicedToArray__default[
|
686
|
+
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
939
687
|
editItem = _useState2[0],
|
940
688
|
setEditItem = _useState2[1];
|
941
689
|
|
@@ -945,24 +693,26 @@ var ResourceEditPage = function ResourceEditPage(_ref) {
|
|
945
693
|
React.useEffect(function () {
|
946
694
|
setEditItem(item);
|
947
695
|
}, [item, setEditItem]);
|
948
|
-
return /*#__PURE__*/React__default[
|
696
|
+
return /*#__PURE__*/React__default["default"].createElement(contexts.ResourceProvider, {
|
949
697
|
resource: resource
|
950
|
-
}, /*#__PURE__*/React__default[
|
951
|
-
title: /*#__PURE__*/React__default[
|
698
|
+
}, /*#__PURE__*/React__default["default"].createElement(MainLayout, null, /*#__PURE__*/React__default["default"].createElement(PageHeader, {
|
699
|
+
title: /*#__PURE__*/React__default["default"].createElement(intl.ResourceMessage, {
|
952
700
|
resource: resource,
|
953
|
-
|
701
|
+
id: "resources.edit",
|
702
|
+
defaultMessage: "Edit {a_singular}",
|
703
|
+
description: "Page title"
|
954
704
|
}),
|
955
705
|
small: true
|
956
|
-
}), /*#__PURE__*/React__default[
|
706
|
+
}), /*#__PURE__*/React__default["default"].createElement("div", {
|
957
707
|
className: "container-sm py-4"
|
958
|
-
}, /*#__PURE__*/React__default[
|
708
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
959
709
|
className: "row justify-content-center"
|
960
|
-
}, /*#__PURE__*/React__default[
|
710
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
961
711
|
className: "col-12 col-md-8 col-lg-7"
|
962
|
-
}, editItem !== null ? /*#__PURE__*/React__default[
|
712
|
+
}, editItem !== null ? /*#__PURE__*/React__default["default"].createElement(ResourceForm, {
|
963
713
|
resource: resource,
|
964
|
-
messages: messages$1,
|
965
714
|
item: editItem,
|
715
|
+
type: type,
|
966
716
|
onSuccess: onSuccess
|
967
717
|
}) : null)))));
|
968
718
|
};
|
@@ -972,7 +722,7 @@ ResourceEditPage.defaultProps = defaultProps$e;
|
|
972
722
|
|
973
723
|
var propTypes$d = {
|
974
724
|
resource: core.PropTypes.resource.isRequired,
|
975
|
-
className: PropTypes__default[
|
725
|
+
className: PropTypes__default["default"].string
|
976
726
|
};
|
977
727
|
var defaultProps$d = {
|
978
728
|
className: null
|
@@ -986,38 +736,47 @@ var ResourceCreateButtom = function ResourceCreateButtom(_ref) {
|
|
986
736
|
var resourceRoute = hooks.useResourceUrlGenerator(resource);
|
987
737
|
|
988
738
|
var _useState = React.useState(false),
|
989
|
-
_useState2 = _slicedToArray__default[
|
739
|
+
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
990
740
|
dropdownOpened = _useState2[0],
|
991
741
|
setDropdownOpened = _useState2[1];
|
992
742
|
|
993
743
|
var onClickDropdown = React.useCallback(function (e) {
|
994
744
|
e.preventDefault();
|
995
|
-
setDropdownOpened(
|
996
|
-
|
997
|
-
|
998
|
-
|
745
|
+
setDropdownOpened(function (opened) {
|
746
|
+
return !opened;
|
747
|
+
});
|
748
|
+
}, [setDropdownOpened]);
|
749
|
+
var finalTypes = types !== null ? types.filter(function (_ref2) {
|
750
|
+
var _ref2$settings = _ref2.settings;
|
751
|
+
_ref2$settings = _ref2$settings === void 0 ? {} : _ref2$settings;
|
752
|
+
var _ref2$settings$canCre = _ref2$settings.canCreate,
|
753
|
+
canCreate = _ref2$settings$canCre === void 0 ? true : _ref2$settings$canCre;
|
754
|
+
return canCreate;
|
755
|
+
}) : null;
|
756
|
+
var hasMultipleTypes = finalTypes !== null && finalTypes.length > 1;
|
757
|
+
var onDropdownClickOutside = React.useCallback(function () {
|
758
|
+
setDropdownOpened(false);
|
759
|
+
}, [setDropdownOpened]);
|
760
|
+
var button = /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
|
761
|
+
href: !hasMultipleTypes ? "".concat(resourceRoute('create')).concat(finalTypes !== null && finalTypes.length === 1 ? "?type=".concat(finalTypes[0].id) : '') : '#',
|
999
762
|
size: "lg",
|
1000
763
|
theme: "primary",
|
1001
|
-
className: classNames__default[
|
1002
|
-
'dropdown-toggle':
|
764
|
+
className: classNames__default["default"]([_defineProperty__default["default"]({
|
765
|
+
'dropdown-toggle': hasMultipleTypes
|
1003
766
|
}, className, className !== null)]),
|
1004
|
-
onClick:
|
1005
|
-
}, /*#__PURE__*/React__default[
|
767
|
+
onClick: hasMultipleTypes ? onClickDropdown : null
|
768
|
+
}, /*#__PURE__*/React__default["default"].createElement(intl.ResourceMessage, {
|
1006
769
|
resource: resource,
|
1007
|
-
|
770
|
+
id: "resources.create_btn",
|
771
|
+
defaultMessage: "Create {a_singular}",
|
772
|
+
description: "Button label"
|
1008
773
|
}));
|
1009
|
-
return
|
1010
|
-
className: classNames__default[
|
774
|
+
return hasMultipleTypes ? /*#__PURE__*/React__default["default"].createElement("div", {
|
775
|
+
className: classNames__default["default"](['dropdown', {
|
1011
776
|
show: dropdownOpened
|
1012
777
|
}])
|
1013
|
-
}, button, /*#__PURE__*/React__default[
|
1014
|
-
items:
|
1015
|
-
var _ref3$settings = _ref3.settings;
|
1016
|
-
_ref3$settings = _ref3$settings === void 0 ? {} : _ref3$settings;
|
1017
|
-
var _ref3$settings$can_cr = _ref3$settings.can_create,
|
1018
|
-
canCreate = _ref3$settings$can_cr === void 0 ? true : _ref3$settings$can_cr;
|
1019
|
-
return canCreate;
|
1020
|
-
}).map(function (it) {
|
778
|
+
}, button, /*#__PURE__*/React__default["default"].createElement(Dropdown__default["default"], {
|
779
|
+
items: finalTypes.map(function (it) {
|
1021
780
|
return {
|
1022
781
|
id: it.id,
|
1023
782
|
label: it.name,
|
@@ -1025,135 +784,143 @@ var ResourceCreateButtom = function ResourceCreateButtom(_ref) {
|
|
1025
784
|
};
|
1026
785
|
}),
|
1027
786
|
visible: dropdownOpened,
|
1028
|
-
align: "
|
787
|
+
align: "end",
|
788
|
+
onClickOutside: onDropdownClickOutside
|
1029
789
|
})) : button;
|
1030
790
|
};
|
1031
791
|
|
1032
792
|
ResourceCreateButtom.propTypes = propTypes$d;
|
1033
793
|
ResourceCreateButtom.defaultProps = defaultProps$d;
|
1034
794
|
|
1035
|
-
var
|
1036
|
-
return value !== null ? _objectSpread__default['default']({}, Object.keys(value).reduce(function (newValueMap, key) {
|
1037
|
-
return key !== withoutKey ? _objectSpread__default['default'](_objectSpread__default['default']({}, newValueMap), {}, _defineProperty__default['default']({}, key, value[key])) : newValueMap;
|
1038
|
-
}, {})) : null;
|
1039
|
-
};
|
1040
|
-
|
795
|
+
var _excluded$3 = ["component", "name", "groupLabel"];
|
1041
796
|
var propTypes$c = {
|
1042
|
-
filters: PropTypes__default[
|
1043
|
-
|
797
|
+
filters: PropTypes__default["default"].arrayOf(PropTypes__default["default"].shape({
|
798
|
+
id: PropTypes__default["default"].string.isRequired,
|
799
|
+
component: PropTypes__default["default"].string.isRequired
|
800
|
+
})),
|
801
|
+
value: PropTypes__default["default"].object,
|
1044
802
|
// eslint-disable-line react/forbid-prop-types
|
1045
|
-
onChange: PropTypes__default[
|
1046
|
-
|
1047
|
-
withContainer: PropTypes__default[
|
1048
|
-
withReset: PropTypes__default[
|
1049
|
-
className: PropTypes__default[
|
803
|
+
onChange: PropTypes__default["default"].func,
|
804
|
+
onReset: PropTypes__default["default"].func,
|
805
|
+
withContainer: PropTypes__default["default"].bool,
|
806
|
+
withReset: PropTypes__default["default"].bool,
|
807
|
+
className: PropTypes__default["default"].string
|
1050
808
|
};
|
1051
809
|
var defaultProps$c = {
|
1052
810
|
filters: [],
|
1053
811
|
value: null,
|
1054
812
|
onChange: null,
|
1055
|
-
|
813
|
+
onReset: null,
|
1056
814
|
withContainer: false,
|
1057
|
-
withReset:
|
815
|
+
withReset: true,
|
1058
816
|
className: null
|
1059
817
|
};
|
1060
818
|
|
1061
819
|
var ResourceFilters = function ResourceFilters(_ref) {
|
1062
820
|
var filters = _ref.filters,
|
1063
|
-
|
821
|
+
value = _ref.value,
|
1064
822
|
onChange = _ref.onChange,
|
1065
|
-
|
823
|
+
onReset = _ref.onReset,
|
1066
824
|
withContainer = _ref.withContainer,
|
1067
825
|
withReset = _ref.withReset,
|
1068
826
|
className = _ref.className;
|
1069
827
|
var FilterComponents = contexts.useFiltersComponents();
|
1070
828
|
|
1071
|
-
var
|
1072
|
-
|
1073
|
-
value = _useState2[0],
|
1074
|
-
setValue = _useState2[1];
|
1075
|
-
|
1076
|
-
var onFormChange = React.useCallback(function (newFieldValue, key) {
|
1077
|
-
var newValue = newFieldValue !== null ? _objectSpread__default['default'](_objectSpread__default['default']({}, value), {}, _defineProperty__default['default']({}, key, newFieldValue)) : getValueWithout(value, key);
|
1078
|
-
setValue(newValue);
|
829
|
+
var _usePanneauColorSchem = contexts.usePanneauColorScheme(),
|
830
|
+
background = _usePanneauColorSchem.background;
|
1079
831
|
|
1080
|
-
|
1081
|
-
|
832
|
+
var currentFilters = filters || [];
|
833
|
+
var onFiltersReset = React.useCallback(function () {
|
834
|
+
if (onReset !== null) {
|
835
|
+
onReset(null);
|
1082
836
|
}
|
1083
|
-
}, [
|
1084
|
-
var
|
1085
|
-
|
1086
|
-
|
1087
|
-
|
1088
|
-
|
1089
|
-
return
|
1090
|
-
});
|
1091
|
-
return /*#__PURE__*/React__default[
|
1092
|
-
className: classNames__default[
|
837
|
+
}, [onReset]);
|
838
|
+
var hasActiveFilter = (currentFilters || []).reduce(function (isActive, item) {
|
839
|
+
if (value !== null && value[item.name]) {
|
840
|
+
return true;
|
841
|
+
}
|
842
|
+
|
843
|
+
return isActive;
|
844
|
+
}, false);
|
845
|
+
return /*#__PURE__*/React__default["default"].createElement(Navbar__default["default"], {
|
846
|
+
className: classNames__default["default"]([_defineProperty__default["default"]({
|
1093
847
|
'navbar-expand-md': withContainer
|
1094
|
-
}, className, className !== null)]),
|
848
|
+
}, className, className !== null), 'justify-content-start', 'align-items-start', 'flex-column', 'flex-md-row']),
|
849
|
+
theme: background,
|
1095
850
|
withoutCollapse: true
|
1096
|
-
},
|
1097
|
-
var
|
1098
|
-
|
851
|
+
}, currentFilters.map(function (_ref3, index) {
|
852
|
+
var component = _ref3.component,
|
853
|
+
name = _ref3.name,
|
854
|
+
groupLabel = _ref3.groupLabel,
|
855
|
+
filterProps = _objectWithoutProperties__default["default"](_ref3, _excluded$3);
|
856
|
+
|
1099
857
|
var FilterComponent = utils.getComponentFromName(component, FilterComponents, null);
|
1100
|
-
|
1101
|
-
|
1102
|
-
onChange
|
1103
|
-
|
1104
|
-
|
1105
|
-
|
1106
|
-
|
1107
|
-
|
1108
|
-
|
1109
|
-
|
1110
|
-
|
1111
|
-
|
1112
|
-
|
1113
|
-
|
858
|
+
var filterValue = value !== null && value[name] ? value[name] : null;
|
859
|
+
var onFilterChange = React.useCallback(function (newFilterValue) {
|
860
|
+
if (name !== null && onChange !== null) {
|
861
|
+
onChange(_objectSpread__default["default"](_objectSpread__default["default"]({}, value), {}, _defineProperty__default["default"]({}, name, newFilterValue)));
|
862
|
+
}
|
863
|
+
}, [onChange, name]);
|
864
|
+
return FilterComponent !== null ? /*#__PURE__*/React__default["default"].createElement(FormGroup__default["default"], {
|
865
|
+
key: "filter-".concat(name, "-").concat(index + 1),
|
866
|
+
label: groupLabel,
|
867
|
+
className: "me-4"
|
868
|
+
}, /*#__PURE__*/React__default["default"].createElement(FilterComponent, Object.assign({}, filterProps, {
|
869
|
+
value: filterValue,
|
870
|
+
onChange: onFilterChange
|
871
|
+
}))) : null;
|
872
|
+
}), withReset && hasActiveFilter && currentFilters.length > 1 ? /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
|
1114
873
|
theme: "primary",
|
1115
|
-
onClick:
|
1116
|
-
}, /*#__PURE__*/React__default[
|
1117
|
-
|
1118
|
-
defaultMessage: [{
|
1119
|
-
"type": 0,
|
1120
|
-
"value": "Reset"
|
1121
|
-
}]
|
874
|
+
onClick: onFiltersReset
|
875
|
+
}, /*#__PURE__*/React__default["default"].createElement(reactFontawesome.FontAwesomeIcon, {
|
876
|
+
icon: freeSolidSvgIcons.faUndo
|
1122
877
|
})) : null);
|
1123
878
|
};
|
1124
879
|
|
1125
880
|
ResourceFilters.propTypes = propTypes$c;
|
1126
881
|
ResourceFilters.defaultProps = defaultProps$c;
|
1127
882
|
|
883
|
+
var _excluded$2 = ["component", "showPagination", "filters"],
|
884
|
+
_excluded2$1 = ["page"];
|
1128
885
|
var propTypes$b = {
|
1129
886
|
resource: core.PropTypes.resource.isRequired,
|
1130
|
-
query: PropTypes__default[
|
887
|
+
query: PropTypes__default["default"].object,
|
1131
888
|
// eslint-disable-line react/forbid-prop-types
|
1132
|
-
paginated: PropTypes__default[
|
1133
|
-
|
1134
|
-
|
889
|
+
paginated: PropTypes__default["default"].bool,
|
890
|
+
baseUrl: PropTypes__default["default"].string,
|
891
|
+
component: PropTypes__default["default"].oneOfType([PropTypes__default["default"].elementType, PropTypes__default["default"].string]),
|
892
|
+
componentProps: PropTypes__default["default"].object,
|
1135
893
|
// eslint-disable-line react/forbid-prop-types
|
1136
|
-
|
1137
|
-
|
894
|
+
onQueryChange: PropTypes__default["default"].func,
|
895
|
+
onQueryReset: PropTypes__default["default"].func
|
1138
896
|
};
|
1139
897
|
var defaultProps$b = {
|
1140
898
|
query: null,
|
1141
899
|
paginated: true,
|
1142
900
|
component: null,
|
901
|
+
baseUrl: null,
|
1143
902
|
componentProps: null,
|
1144
|
-
|
1145
|
-
|
903
|
+
onQueryChange: null,
|
904
|
+
onQueryReset: null
|
1146
905
|
};
|
1147
906
|
|
1148
907
|
var ResourceItemsList = function ResourceItemsList(_ref) {
|
1149
908
|
var resource = _ref.resource,
|
1150
|
-
component = _ref.component,
|
1151
|
-
componentProps = _ref.componentProps,
|
1152
909
|
query = _ref.query,
|
910
|
+
baseUrl = _ref.baseUrl,
|
1153
911
|
onQueryChange = _ref.onQueryChange,
|
1154
|
-
|
1155
|
-
|
1156
|
-
|
912
|
+
onQueryReset = _ref.onQueryReset,
|
913
|
+
paginated = _ref.paginated;
|
914
|
+
var _resource$index = resource.index;
|
915
|
+
_resource$index = _resource$index === void 0 ? {} : _resource$index;
|
916
|
+
|
917
|
+
var _resource$index$compo = _resource$index.component,
|
918
|
+
listComponent = _resource$index$compo === void 0 ? null : _resource$index$compo,
|
919
|
+
_resource$index$showP = _resource$index.showPagination,
|
920
|
+
showPagination = _resource$index$showP === void 0 ? true : _resource$index$showP,
|
921
|
+
_resource$index$filte = _resource$index.filters,
|
922
|
+
filters = _resource$index$filte === void 0 ? null : _resource$index$filte,
|
923
|
+
listProps = _objectWithoutProperties__default["default"](_resource$index, _excluded$2);
|
1157
924
|
|
1158
925
|
var _usePanneauColorSchem = contexts.usePanneauColorScheme(),
|
1159
926
|
_usePanneauColorSchem2 = _usePanneauColorSchem.background,
|
@@ -1161,48 +928,76 @@ var ResourceItemsList = function ResourceItemsList(_ref) {
|
|
1161
928
|
|
1162
929
|
var ListComponents = contexts.useListsComponents();
|
1163
930
|
|
1164
|
-
var
|
1165
|
-
|
1166
|
-
|
1167
|
-
|
1168
|
-
|
1169
|
-
|
1170
|
-
|
1171
|
-
|
1172
|
-
|
1173
|
-
|
1174
|
-
|
1175
|
-
|
1176
|
-
|
931
|
+
var _useMemo = React.useMemo(function () {
|
932
|
+
var _ref2 = query || {},
|
933
|
+
_ref2$page = _ref2.page,
|
934
|
+
currentPage = _ref2$page === void 0 ? 1 : _ref2$page,
|
935
|
+
rest = _objectWithoutProperties__default["default"](_ref2, _excluded2$1);
|
936
|
+
|
937
|
+
return [currentPage, rest];
|
938
|
+
}, [query]),
|
939
|
+
_useMemo2 = _slicedToArray__default["default"](_useMemo, 2),
|
940
|
+
page = _useMemo2[0],
|
941
|
+
queryWithoutPage = _useMemo2[1];
|
942
|
+
|
943
|
+
var itemsProps = data.useResourceItems(resource, queryWithoutPage, paginated ? parseInt(page, 10) : null);
|
944
|
+
|
945
|
+
var _ref3 = itemsProps || {},
|
946
|
+
_ref3$lastPage = _ref3.lastPage,
|
947
|
+
lastPage = _ref3$lastPage === void 0 ? 0 : _ref3$lastPage,
|
948
|
+
_ref3$total = _ref3.total,
|
949
|
+
total = _ref3$total === void 0 ? 0 : _ref3$total;
|
950
|
+
|
951
|
+
var ListComponent = utils.getComponentFromName(listComponent || 'table', ListComponents);
|
952
|
+
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, filters !== null ? /*#__PURE__*/React__default["default"].createElement(ResourceFilters, {
|
953
|
+
filters: filters,
|
1177
954
|
value: query,
|
1178
|
-
|
1179
|
-
|
1180
|
-
}) : null,
|
1181
|
-
page:
|
955
|
+
onChange: onQueryChange,
|
956
|
+
onReset: onQueryReset
|
957
|
+
}) : null, paginated && showPagination ? /*#__PURE__*/React__default["default"].createElement(Pagination__default["default"], {
|
958
|
+
page: page,
|
959
|
+
lastPage: lastPage,
|
960
|
+
total: total,
|
961
|
+
url: baseUrl,
|
962
|
+
query: query,
|
963
|
+
className: "mt-1 mb-1"
|
964
|
+
}) : null, ListComponent !== null ? /*#__PURE__*/React__default["default"].createElement(ListComponent, Object.assign({}, itemsProps, listProps, {
|
1182
965
|
resource: resource,
|
966
|
+
baseUrl: baseUrl,
|
1183
967
|
query: query,
|
1184
|
-
onQueryChange:
|
968
|
+
onQueryChange: onQueryChange,
|
969
|
+
onQueryReset: onQueryReset,
|
1185
970
|
theme: theme
|
1186
|
-
})) : null
|
971
|
+
})) : null, paginated && showPagination ? /*#__PURE__*/React__default["default"].createElement(Pagination__default["default"], {
|
972
|
+
page: page,
|
973
|
+
lastPage: lastPage,
|
974
|
+
total: total,
|
975
|
+
url: baseUrl,
|
976
|
+
query: query,
|
977
|
+
className: "mt-4 mb-1"
|
978
|
+
}) : null);
|
1187
979
|
};
|
1188
980
|
|
1189
981
|
ResourceItemsList.propTypes = propTypes$b;
|
1190
982
|
ResourceItemsList.defaultProps = defaultProps$b;
|
1191
983
|
|
984
|
+
var _excluded$1 = ["id", "component"];
|
1192
985
|
var propTypes$a = {
|
1193
|
-
resource: core.PropTypes.resource.isRequired
|
986
|
+
resource: core.PropTypes.resource.isRequired,
|
987
|
+
defaultActions: PropTypes__default["default"].arrayOf(PropTypes__default["default"].object)
|
988
|
+
};
|
989
|
+
var defaultProps$a = {
|
990
|
+
defaultActions: ['create']
|
1194
991
|
};
|
1195
|
-
var defaultProps$a = {};
|
1196
992
|
|
1197
993
|
var ResourceIndexPage = function ResourceIndexPage(_ref) {
|
1198
|
-
var resource = _ref.resource
|
994
|
+
var resource = _ref.resource,
|
995
|
+
defaultActions = _ref.defaultActions;
|
1199
996
|
var name = resource.name,
|
1200
997
|
_resource$settings = resource.settings,
|
1201
998
|
settings = _resource$settings === void 0 ? {} : _resource$settings,
|
1202
|
-
_resource$
|
1203
|
-
|
1204
|
-
var _resource$components$ = _resource$components.index,
|
1205
|
-
index = _resource$components$ === void 0 ? {} : _resource$components$;
|
999
|
+
_resource$index = resource.index,
|
1000
|
+
index = _resource$index === void 0 ? {} : _resource$index;
|
1206
1001
|
|
1207
1002
|
var _ref2 = settings || {},
|
1208
1003
|
_ref2$canCreate = _ref2.canCreate,
|
@@ -1211,10 +1006,22 @@ var ResourceIndexPage = function ResourceIndexPage(_ref) {
|
|
1211
1006
|
paginated = _ref2$indexIsPaginate === void 0 ? false : _ref2$indexIsPaginate;
|
1212
1007
|
|
1213
1008
|
var _ref3 = index || {},
|
1214
|
-
_ref3$
|
1215
|
-
|
1216
|
-
|
1217
|
-
|
1009
|
+
_ref3$actions = _ref3.actions,
|
1010
|
+
actions = _ref3$actions === void 0 ? null : _ref3$actions;
|
1011
|
+
|
1012
|
+
var finalActions = React.useMemo(function () {
|
1013
|
+
return (actions || defaultActions.filter(function (it) {
|
1014
|
+
return it !== 'create' || canCreate;
|
1015
|
+
})).map(function (it) {
|
1016
|
+
return it === 'create' ? {
|
1017
|
+
id: 'create',
|
1018
|
+
component: ResourceCreateButtom,
|
1019
|
+
size: 'lg',
|
1020
|
+
theme: 'primary'
|
1021
|
+
} : it;
|
1022
|
+
});
|
1023
|
+
}, [canCreate, actions]);
|
1024
|
+
var componentsManager = contexts.useComponentsManager();
|
1218
1025
|
|
1219
1026
|
var _useLocation = reactRouter.useLocation(),
|
1220
1027
|
search = _useLocation.search;
|
@@ -1236,45 +1043,69 @@ var ResourceIndexPage = function ResourceIndexPage(_ref) {
|
|
1236
1043
|
var resourceRoute = hooks.useResourceUrlGenerator(resource);
|
1237
1044
|
var url = resourceRoute('index');
|
1238
1045
|
var onQueryChange = React.useCallback(function (submitQuery) {
|
1239
|
-
|
1046
|
+
var newQuery = submitQuery !== null ? Object.keys(submitQuery).reduce(function (currentQuery, key) {
|
1047
|
+
var value = submitQuery[key];
|
1048
|
+
return value !== null ? _objectSpread__default["default"](_objectSpread__default["default"]({}, currentQuery), {}, _defineProperty__default["default"]({}, key, value)) : currentQuery;
|
1049
|
+
}, null) : null;
|
1050
|
+
history.push("".concat(url).concat(newQuery !== null ? "?".concat(queryString.stringify(newQuery, {
|
1240
1051
|
arrayFormat: 'bracket'
|
1241
|
-
})));
|
1242
|
-
}, [history, url]);
|
1052
|
+
})) : ''));
|
1053
|
+
}, [history, url, query, paginated]);
|
1054
|
+
var onQueryReset = React.useCallback(function () {
|
1055
|
+
var queryString$1 = queryString.stringify(null, {
|
1056
|
+
arrayFormat: 'bracket'
|
1057
|
+
});
|
1058
|
+
history.push("".concat(url, "?").concat(queryString$1));
|
1059
|
+
}, [history, url, paginated]);
|
1243
1060
|
var onClickCloseAlert = React.useCallback(function () {
|
1244
1061
|
history.replace(url);
|
1245
1062
|
}, [history, url]);
|
1246
|
-
return /*#__PURE__*/React__default[
|
1063
|
+
return /*#__PURE__*/React__default["default"].createElement(contexts.ResourceProvider, {
|
1247
1064
|
resource: resource
|
1248
|
-
}, /*#__PURE__*/React__default[
|
1065
|
+
}, /*#__PURE__*/React__default["default"].createElement(MainLayout, null, /*#__PURE__*/React__default["default"].createElement(PageHeader, {
|
1249
1066
|
title: name,
|
1250
|
-
actions:
|
1251
|
-
|
1252
|
-
|
1253
|
-
|
1254
|
-
|
1255
|
-
|
1256
|
-
|
1257
|
-
|
1067
|
+
actions: finalActions.length > 0 ? /*#__PURE__*/React__default["default"].createElement("div", {
|
1068
|
+
className: "d-flex align-items-center"
|
1069
|
+
}, finalActions.map(function (_ref5) {
|
1070
|
+
var id = _ref5.id,
|
1071
|
+
_ref5$component = _ref5.component,
|
1072
|
+
component = _ref5$component === void 0 ? Button__default["default"] : _ref5$component,
|
1073
|
+
actionProps = _objectWithoutProperties__default["default"](_ref5, _excluded$1);
|
1074
|
+
|
1075
|
+
var ActionComponent = isString__default["default"](component) ? componentsManager.getComponent(component) : component;
|
1076
|
+
return ActionComponent !== null ? /*#__PURE__*/React__default["default"].createElement(ActionComponent, Object.assign({
|
1077
|
+
key: "action-".concat(id)
|
1078
|
+
}, actionProps, ActionComponent !== Button__default["default"] ? {
|
1079
|
+
resource: resource,
|
1080
|
+
query: query,
|
1081
|
+
onQueryChange: onQueryChange
|
1082
|
+
} : {})) : null;
|
1083
|
+
})) : null
|
1084
|
+
}), /*#__PURE__*/React__default["default"].createElement("div", {
|
1085
|
+
className: classNames__default["default"](['container-sm py-4'])
|
1086
|
+
}, created ? /*#__PURE__*/React__default["default"].createElement(Alert__default["default"], {
|
1258
1087
|
className: "mb-4",
|
1259
1088
|
onClose: onClickCloseAlert
|
1260
|
-
}, /*#__PURE__*/React__default[
|
1089
|
+
}, /*#__PURE__*/React__default["default"].createElement(intl.ResourceMessage, {
|
1261
1090
|
resource: resource,
|
1262
|
-
|
1263
|
-
|
1091
|
+
id: "resources.created",
|
1092
|
+
defaultMessage: "{the_singular} has been created.",
|
1093
|
+
description: "Alert message"
|
1094
|
+
})) : null, deleted ? /*#__PURE__*/React__default["default"].createElement(Alert__default["default"], {
|
1264
1095
|
className: "mb-4",
|
1265
1096
|
onClose: onClickCloseAlert
|
1266
|
-
}, /*#__PURE__*/React__default[
|
1097
|
+
}, /*#__PURE__*/React__default["default"].createElement(intl.ResourceMessage, {
|
1267
1098
|
resource: resource,
|
1268
|
-
|
1269
|
-
|
1099
|
+
id: "resources.deleted",
|
1100
|
+
defaultMessage: "{the_singular} has been deleted.",
|
1101
|
+
description: "Alert message"
|
1102
|
+
})) : null, /*#__PURE__*/React__default["default"].createElement(ResourceItemsList, {
|
1270
1103
|
resource: resource,
|
1271
|
-
messages: messages$1,
|
1272
1104
|
baseUrl: url,
|
1273
1105
|
query: listQuery,
|
1274
1106
|
paginated: paginated,
|
1275
|
-
|
1276
|
-
|
1277
|
-
onQueryChange: onQueryChange
|
1107
|
+
onQueryChange: onQueryChange,
|
1108
|
+
onQueryReset: onQueryReset
|
1278
1109
|
}))));
|
1279
1110
|
};
|
1280
1111
|
|
@@ -1288,11 +1119,11 @@ var defaultProps$9 = {};
|
|
1288
1119
|
|
1289
1120
|
var ResourceShowPage = function ResourceShowPage(_ref) {
|
1290
1121
|
var resource = _ref.resource;
|
1291
|
-
return /*#__PURE__*/React__default[
|
1122
|
+
return /*#__PURE__*/React__default["default"].createElement(contexts.ResourceProvider, {
|
1292
1123
|
resource: resource
|
1293
|
-
}, /*#__PURE__*/React__default[
|
1124
|
+
}, /*#__PURE__*/React__default["default"].createElement(MainLayout, null, /*#__PURE__*/React__default["default"].createElement(PageHeader, {
|
1294
1125
|
title: resource === null || resource === void 0 ? void 0 : resource.name
|
1295
|
-
}), /*#__PURE__*/React__default[
|
1126
|
+
}), /*#__PURE__*/React__default["default"].createElement("div", {
|
1296
1127
|
className: "container-sm"
|
1297
1128
|
}, "Show page")));
|
1298
1129
|
};
|
@@ -1307,23 +1138,30 @@ var defaultProps$8 = {};
|
|
1307
1138
|
var HomePage = function HomePage() {
|
1308
1139
|
var route = contexts.useUrlGenerator();
|
1309
1140
|
var resources = contexts.usePanneauResources();
|
1310
|
-
|
1141
|
+
var visibleResources = resources.filter(function (_ref) {
|
1142
|
+
var _ref$settings = _ref.settings;
|
1143
|
+
_ref$settings = _ref$settings === void 0 ? {} : _ref$settings;
|
1144
|
+
var _ref$settings$hideInN = _ref$settings.hideInNavbar,
|
1145
|
+
hideInNavbar = _ref$settings$hideInN === void 0 ? false : _ref$settings$hideInN;
|
1146
|
+
return !hideInNavbar;
|
1147
|
+
});
|
1148
|
+
return /*#__PURE__*/React__default["default"].createElement(MainLayout, null, /*#__PURE__*/React__default["default"].createElement("div", {
|
1311
1149
|
className: "container-sm py-4"
|
1312
|
-
},
|
1313
|
-
var
|
1314
|
-
resourceId =
|
1315
|
-
hasRoutes = _ref.has_routes;
|
1150
|
+
}, visibleResources.map(function (resource) {
|
1151
|
+
var _ref2 = resource || {},
|
1152
|
+
resourceId = _ref2.id;
|
1316
1153
|
|
1317
|
-
|
1318
|
-
return /*#__PURE__*/React__default['default'].createElement(reactRouterDom.Link, {
|
1154
|
+
return /*#__PURE__*/React__default["default"].createElement(reactRouterDom.Link, {
|
1319
1155
|
className: "d-block my-2",
|
1320
1156
|
key: "resource-link-".concat(resourceId),
|
1321
|
-
to: route(
|
1157
|
+
to: route('resources.index', {
|
1322
1158
|
resource: resourceId
|
1323
1159
|
})
|
1324
|
-
}, /*#__PURE__*/React__default[
|
1160
|
+
}, /*#__PURE__*/React__default["default"].createElement(intl.ResourceMessage, {
|
1325
1161
|
resource: resource,
|
1326
|
-
|
1162
|
+
id: "resources.view",
|
1163
|
+
defaultMessage: "View {the_plural}",
|
1164
|
+
description: "Button label"
|
1327
1165
|
}));
|
1328
1166
|
})));
|
1329
1167
|
};
|
@@ -1335,7 +1173,7 @@ var propTypes$7 = {};
|
|
1335
1173
|
var defaultProps$7 = {};
|
1336
1174
|
|
1337
1175
|
var AccountPage = function AccountPage() {
|
1338
|
-
return /*#__PURE__*/React__default[
|
1176
|
+
return /*#__PURE__*/React__default["default"].createElement(MainLayout, null, /*#__PURE__*/React__default["default"].createElement("div", {
|
1339
1177
|
className: "container-sm py-4"
|
1340
1178
|
}, "Account page"));
|
1341
1179
|
};
|
@@ -1344,8 +1182,8 @@ AccountPage.propTypes = propTypes$7;
|
|
1344
1182
|
AccountPage.defaultProps = defaultProps$7;
|
1345
1183
|
|
1346
1184
|
var propTypes$6 = {
|
1347
|
-
children: PropTypes__default[
|
1348
|
-
fullscreen: PropTypes__default[
|
1185
|
+
children: PropTypes__default["default"].node.isRequired,
|
1186
|
+
fullscreen: PropTypes__default["default"].bool
|
1349
1187
|
};
|
1350
1188
|
var defaultProps$6 = {
|
1351
1189
|
fullscreen: false
|
@@ -1361,18 +1199,18 @@ var GuestLayout = function GuestLayout(_ref) {
|
|
1361
1199
|
background = _usePanneauColorSchem.background,
|
1362
1200
|
text = _usePanneauColorSchem.text;
|
1363
1201
|
|
1364
|
-
return /*#__PURE__*/React__default[
|
1365
|
-
className: classNames__default[
|
1202
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
1203
|
+
className: classNames__default["default"]({
|
1366
1204
|
'd-flex flex-column min-vh-100': fullscreen
|
1367
1205
|
})
|
1368
|
-
}, /*#__PURE__*/React__default[
|
1369
|
-
className: classNames__default[
|
1370
|
-
}), /*#__PURE__*/React__default[
|
1371
|
-
className: classNames__default[
|
1206
|
+
}, /*#__PURE__*/React__default["default"].createElement(MainNavbar, {
|
1207
|
+
className: classNames__default["default"](['sticky-top', 'px-3'])
|
1208
|
+
}), /*#__PURE__*/React__default["default"].createElement("div", {
|
1209
|
+
className: classNames__default["default"]((_classNames = {
|
1372
1210
|
'd-flex flex-column flex-grow-1': fullscreen
|
1373
|
-
}, _defineProperty__default[
|
1374
|
-
}, /*#__PURE__*/React__default[
|
1375
|
-
className: classNames__default[
|
1211
|
+
}, _defineProperty__default["default"](_classNames, "bg-".concat(background), background !== null), _defineProperty__default["default"](_classNames, "text-".concat(text), text !== null), _classNames))
|
1212
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
1213
|
+
className: classNames__default["default"]({
|
1376
1214
|
'w-100 my-auto': fullscreen
|
1377
1215
|
})
|
1378
1216
|
}, children)));
|
@@ -1381,104 +1219,88 @@ var GuestLayout = function GuestLayout(_ref) {
|
|
1381
1219
|
GuestLayout.propTypes = propTypes$6;
|
1382
1220
|
GuestLayout.defaultProps = defaultProps$6;
|
1383
1221
|
|
1222
|
+
/* eslint-disable react/jsx-props-no-spreading */
|
1384
1223
|
var propTypes$5 = {
|
1385
|
-
|
1386
|
-
|
1224
|
+
fields: core.PropTypes.fields,
|
1225
|
+
className: PropTypes__default["default"].string,
|
1226
|
+
onSuccess: PropTypes__default["default"].func
|
1387
1227
|
};
|
1388
1228
|
var defaultProps$5 = {
|
1229
|
+
fields: [{
|
1230
|
+
name: 'email',
|
1231
|
+
type: 'email',
|
1232
|
+
size: 'lg',
|
1233
|
+
label: /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
|
1234
|
+
id: "LI0Gz4",
|
1235
|
+
defaultMessage: [{
|
1236
|
+
"type": 0,
|
1237
|
+
"value": "Email"
|
1238
|
+
}]
|
1239
|
+
})
|
1240
|
+
}, {
|
1241
|
+
name: 'password',
|
1242
|
+
type: 'password',
|
1243
|
+
size: 'lg',
|
1244
|
+
label: /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
|
1245
|
+
id: "4yfet+",
|
1246
|
+
defaultMessage: [{
|
1247
|
+
"type": 0,
|
1248
|
+
"value": "Password"
|
1249
|
+
}]
|
1250
|
+
})
|
1251
|
+
}],
|
1389
1252
|
className: null,
|
1390
1253
|
onSuccess: null
|
1391
1254
|
};
|
1392
1255
|
|
1393
1256
|
var LoginForm = function LoginForm(_ref) {
|
1394
|
-
var
|
1257
|
+
var formFields = _ref.fields,
|
1258
|
+
className = _ref.className,
|
1395
1259
|
onSuccess = _ref.onSuccess;
|
1260
|
+
var url = contexts.useUrlGenerator();
|
1396
1261
|
|
1397
|
-
|
1398
|
-
var _useAuth = useAuth(),
|
1262
|
+
var _useAuth = auth.useAuth(),
|
1399
1263
|
login = _useAuth.login;
|
1400
1264
|
|
1401
|
-
var
|
1265
|
+
var postForm = React.useCallback(function (action, _ref2) {
|
1266
|
+
var email = _ref2.email,
|
1267
|
+
password = _ref2.password;
|
1268
|
+
return login(email, password);
|
1269
|
+
}, [login]);
|
1402
1270
|
|
1403
|
-
var
|
1404
|
-
|
1405
|
-
|
1406
|
-
|
1407
|
-
|
1408
|
-
|
1409
|
-
|
1410
|
-
|
1411
|
-
|
1412
|
-
|
1413
|
-
|
1414
|
-
|
1415
|
-
error = _useState6[0],
|
1416
|
-
setError = _useState6[1];
|
1417
|
-
|
1418
|
-
var postForm = React.useCallback(function () {
|
1419
|
-
return login(email, password).then(function () {
|
1420
|
-
return onSuccess();
|
1421
|
-
})["catch"](function (e) {
|
1422
|
-
console.error(e);
|
1271
|
+
var _useForm = hooks.useForm({
|
1272
|
+
fields: formFields,
|
1273
|
+
postForm: postForm,
|
1274
|
+
onComplete: onSuccess
|
1275
|
+
}),
|
1276
|
+
value = _useForm.value,
|
1277
|
+
setValue = _useForm.setValue,
|
1278
|
+
fields = _useForm.fields,
|
1279
|
+
onSubmit = _useForm.onSubmit,
|
1280
|
+
status = _useForm.status,
|
1281
|
+
generalError = _useForm.generalError,
|
1282
|
+
errors = _useForm.errors;
|
1423
1283
|
|
1424
|
-
|
1425
|
-
|
1426
|
-
|
1427
|
-
});
|
1428
|
-
}, [login, email, password, setError]);
|
1429
|
-
var onChangeEmail = React.useCallback(function (value) {
|
1430
|
-
setEmail(value);
|
1431
|
-
}, [setEmail]);
|
1432
|
-
var onChangePassword = React.useCallback(function (value) {
|
1433
|
-
setPassword(value);
|
1434
|
-
}, [setPassword]);
|
1435
|
-
return /*#__PURE__*/React__default['default'].createElement("form", {
|
1284
|
+
var NormalForm = contexts.useFormComponent('normal');
|
1285
|
+
return /*#__PURE__*/React__default["default"].createElement(NormalForm, {
|
1286
|
+
action: url('auth.login'),
|
1436
1287
|
method: "post",
|
1437
|
-
|
1438
|
-
|
1439
|
-
className:
|
1440
|
-
|
1441
|
-
|
1442
|
-
|
1443
|
-
|
1444
|
-
|
1445
|
-
|
1446
|
-
|
1447
|
-
})
|
1448
|
-
}, /*#__PURE__*/React__default['default'].createElement(TextField, {
|
1449
|
-
type: "email",
|
1450
|
-
size: "lg",
|
1451
|
-
value: email,
|
1452
|
-
onChange: onChangeEmail
|
1453
|
-
})), /*#__PURE__*/React__default['default'].createElement(FormGroup__default['default'], {
|
1454
|
-
label: /*#__PURE__*/React__default['default'].createElement(reactIntl.FormattedMessage, {
|
1455
|
-
id: "form.password",
|
1288
|
+
fields: fields,
|
1289
|
+
onSubmit: onSubmit,
|
1290
|
+
className: className,
|
1291
|
+
status: status,
|
1292
|
+
generalError: generalError,
|
1293
|
+
errors: errors,
|
1294
|
+
value: value,
|
1295
|
+
onChange: setValue,
|
1296
|
+
submitButtonLabel: /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
|
1297
|
+
id: "g6qbbX",
|
1456
1298
|
defaultMessage: [{
|
1457
1299
|
"type": 0,
|
1458
|
-
"value": "
|
1300
|
+
"value": "Log in"
|
1459
1301
|
}]
|
1460
1302
|
})
|
1461
|
-
}
|
1462
|
-
type: "password",
|
1463
|
-
size: "lg",
|
1464
|
-
value: password,
|
1465
|
-
onChange: onChangePassword
|
1466
|
-
})), /*#__PURE__*/React__default['default'].createElement("div", {
|
1467
|
-
className: "mt4 d-flex"
|
1468
|
-
}, /*#__PURE__*/React__default['default'].createElement(Button__default['default'], {
|
1469
|
-
onClick: postForm,
|
1470
|
-
type: "button",
|
1471
|
-
theme: "primary",
|
1472
|
-
size: "lg",
|
1473
|
-
className: "ms-auto",
|
1474
|
-
disabled: email === '' || password === ''
|
1475
|
-
}, /*#__PURE__*/React__default['default'].createElement(reactIntl.FormattedMessage, {
|
1476
|
-
id: "login",
|
1477
|
-
defaultMessage: [{
|
1478
|
-
"type": 0,
|
1479
|
-
"value": "Log in"
|
1480
|
-
}]
|
1481
|
-
}))));
|
1303
|
+
});
|
1482
1304
|
};
|
1483
1305
|
|
1484
1306
|
LoginForm.propTypes = propTypes$5;
|
@@ -1489,25 +1311,27 @@ var propTypes$4 = {};
|
|
1489
1311
|
var defaultProps$4 = {};
|
1490
1312
|
|
1491
1313
|
var LoginPage = function LoginPage() {
|
1492
|
-
var _ref = messages$1 || {},
|
1493
|
-
_ref$login_title = _ref.login_title,
|
1494
|
-
loginMessage = _ref$login_title === void 0 ? null : _ref$login_title;
|
1495
|
-
|
1496
1314
|
var route = contexts.useUrlGenerator();
|
1497
1315
|
var onSuccess = React.useCallback(function () {
|
1498
1316
|
window.location.href = route('home');
|
1499
1317
|
}, [route]);
|
1500
|
-
return /*#__PURE__*/React__default[
|
1318
|
+
return /*#__PURE__*/React__default["default"].createElement(GuestLayout, {
|
1501
1319
|
fullscreen: true
|
1502
|
-
}, /*#__PURE__*/React__default[
|
1320
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
1503
1321
|
className: "container-sm py-4"
|
1504
|
-
}, /*#__PURE__*/React__default[
|
1322
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
1505
1323
|
className: "row justify-content-center"
|
1506
|
-
}, /*#__PURE__*/React__default[
|
1324
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
1507
1325
|
className: "col-12 col-sm-8 col-md-6"
|
1508
|
-
}, /*#__PURE__*/React__default[
|
1326
|
+
}, /*#__PURE__*/React__default["default"].createElement("h1", {
|
1509
1327
|
className: "mb-4"
|
1510
|
-
}, /*#__PURE__*/React__default[
|
1328
|
+
}, /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
|
1329
|
+
id: "AeOZq+",
|
1330
|
+
defaultMessage: [{
|
1331
|
+
"type": 0,
|
1332
|
+
"value": "Login"
|
1333
|
+
}]
|
1334
|
+
})), /*#__PURE__*/React__default["default"].createElement(LoginForm, {
|
1511
1335
|
onSuccess: onSuccess
|
1512
1336
|
})))));
|
1513
1337
|
};
|
@@ -1517,91 +1341,91 @@ LoginPage.defaultProps = defaultProps$4;
|
|
1517
1341
|
|
1518
1342
|
var messages = reactIntl.defineMessages({
|
1519
1343
|
metaTitle401: {
|
1520
|
-
"id": "
|
1344
|
+
"id": "HOobY2",
|
1521
1345
|
"defaultMessage": [{
|
1522
1346
|
"type": 0,
|
1523
1347
|
"value": "Error 401"
|
1524
1348
|
}]
|
1525
1349
|
},
|
1526
1350
|
title401: {
|
1527
|
-
"id": "
|
1351
|
+
"id": "6nwWPR",
|
1528
1352
|
"defaultMessage": [{
|
1529
1353
|
"type": 0,
|
1530
1354
|
"value": "Error 401"
|
1531
1355
|
}]
|
1532
1356
|
},
|
1533
1357
|
description401: {
|
1534
|
-
"id": "
|
1358
|
+
"id": "82P2dS",
|
1535
1359
|
"defaultMessage": [{
|
1536
1360
|
"type": 0,
|
1537
1361
|
"value": "You are not authorized to access this page."
|
1538
1362
|
}]
|
1539
1363
|
},
|
1540
1364
|
metaTitle403: {
|
1541
|
-
"id": "
|
1365
|
+
"id": "+6cCPF",
|
1542
1366
|
"defaultMessage": [{
|
1543
1367
|
"type": 0,
|
1544
1368
|
"value": "Error 403"
|
1545
1369
|
}]
|
1546
1370
|
},
|
1547
1371
|
title403: {
|
1548
|
-
"id": "
|
1372
|
+
"id": "Pih2UO",
|
1549
1373
|
"defaultMessage": [{
|
1550
1374
|
"type": 0,
|
1551
1375
|
"value": "Error 403"
|
1552
1376
|
}]
|
1553
1377
|
},
|
1554
1378
|
description403: {
|
1555
|
-
"id": "
|
1379
|
+
"id": "8HFiMs",
|
1556
1380
|
"defaultMessage": [{
|
1557
1381
|
"type": 0,
|
1558
1382
|
"value": "Access to this page is forbidden"
|
1559
1383
|
}]
|
1560
1384
|
},
|
1561
1385
|
metaTitle404: {
|
1562
|
-
"id": "
|
1386
|
+
"id": "US/AMe",
|
1563
1387
|
"defaultMessage": [{
|
1564
1388
|
"type": 0,
|
1565
1389
|
"value": "Error 404"
|
1566
1390
|
}]
|
1567
1391
|
},
|
1568
1392
|
title404: {
|
1569
|
-
"id": "
|
1393
|
+
"id": "6Ie+vL",
|
1570
1394
|
"defaultMessage": [{
|
1571
1395
|
"type": 0,
|
1572
1396
|
"value": "Error 404"
|
1573
1397
|
}]
|
1574
1398
|
},
|
1575
1399
|
description404: {
|
1576
|
-
"id": "
|
1400
|
+
"id": "wKPI1y",
|
1577
1401
|
"defaultMessage": [{
|
1578
1402
|
"type": 0,
|
1579
1403
|
"value": "This page doesn’t exist"
|
1580
1404
|
}]
|
1581
1405
|
},
|
1582
1406
|
metaTitle500: {
|
1583
|
-
"id": "
|
1407
|
+
"id": "ejwBSw",
|
1584
1408
|
"defaultMessage": [{
|
1585
1409
|
"type": 0,
|
1586
1410
|
"value": "Error 500"
|
1587
1411
|
}]
|
1588
1412
|
},
|
1589
1413
|
title500: {
|
1590
|
-
"id": "
|
1414
|
+
"id": "owrRHV",
|
1591
1415
|
"defaultMessage": [{
|
1592
1416
|
"type": 0,
|
1593
1417
|
"value": "Error 500"
|
1594
1418
|
}]
|
1595
1419
|
},
|
1596
1420
|
description500: {
|
1597
|
-
"id": "
|
1421
|
+
"id": "yALN2p",
|
1598
1422
|
"defaultMessage": [{
|
1599
1423
|
"type": 0,
|
1600
1424
|
"value": "There was an error"
|
1601
1425
|
}]
|
1602
1426
|
},
|
1603
1427
|
gotoHome: {
|
1604
|
-
"id": "
|
1428
|
+
"id": "hezcGl",
|
1605
1429
|
"defaultMessage": [{
|
1606
1430
|
"type": 0,
|
1607
1431
|
"value": "Go to home page"
|
@@ -1617,15 +1441,15 @@ var defaultProps$3 = {
|
|
1617
1441
|
|
1618
1442
|
var ErrorPage = function ErrorPage(_ref) {
|
1619
1443
|
var statusCode = _ref.statusCode;
|
1620
|
-
return /*#__PURE__*/React__default[
|
1444
|
+
return /*#__PURE__*/React__default["default"].createElement(GuestLayout, {
|
1621
1445
|
fullscreen: true
|
1622
|
-
}, /*#__PURE__*/React__default[
|
1446
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
1623
1447
|
className: "container-sm py-4"
|
1624
|
-
}, /*#__PURE__*/React__default[
|
1448
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
1625
1449
|
className: "row justify-content-center"
|
1626
|
-
}, /*#__PURE__*/React__default[
|
1450
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
1627
1451
|
className: "col-12 col-sm-8 col-md-6"
|
1628
|
-
}, /*#__PURE__*/React__default[
|
1452
|
+
}, /*#__PURE__*/React__default["default"].createElement("h1", null, /*#__PURE__*/React__default["default"].createElement(Label__default["default"], null, messages["title".concat(statusCode || 404)])), /*#__PURE__*/React__default["default"].createElement("p", null, /*#__PURE__*/React__default["default"].createElement(Label__default["default"], null, messages["description".concat(statusCode || 404)]))))));
|
1629
1453
|
};
|
1630
1454
|
|
1631
1455
|
ErrorPage.propTypes = propTypes$3;
|
@@ -1644,6 +1468,8 @@ var basePages = /*#__PURE__*/Object.freeze({
|
|
1644
1468
|
Error: ErrorPage
|
1645
1469
|
});
|
1646
1470
|
|
1471
|
+
var _excluded = ["path", "component", "exact"],
|
1472
|
+
_excluded2 = ["id"];
|
1647
1473
|
var propTypes$2 = {
|
1648
1474
|
resource: core.PropTypes.resource.isRequired
|
1649
1475
|
};
|
@@ -1652,11 +1478,12 @@ var defaultProps$2 = {};
|
|
1652
1478
|
var ResourceRoutes = function ResourceRoutes(_ref) {
|
1653
1479
|
var resource = _ref.resource;
|
1654
1480
|
var resourceId = resource.id,
|
1655
|
-
hasRoutes = resource.has_routes,
|
1656
1481
|
_resource$pages = resource.pages,
|
1657
|
-
pages = _resource$pages === void 0 ? {} : _resource$pages
|
1482
|
+
pages = _resource$pages === void 0 ? {} : _resource$pages,
|
1483
|
+
_resource$extraRoutes = resource.extraRoutes,
|
1484
|
+
extraRoutes = _resource$extraRoutes === void 0 ? [] : _resource$extraRoutes;
|
1658
1485
|
var route = contexts.useUrlGenerator();
|
1659
|
-
var
|
1486
|
+
var componentsManager = contexts.useComponentsManager(); // Load custom pages from resource
|
1660
1487
|
|
1661
1488
|
var _ref2 = pages || {},
|
1662
1489
|
_ref2$index = _ref2.index,
|
@@ -1670,66 +1497,89 @@ var ResourceRoutes = function ResourceRoutes(_ref) {
|
|
1670
1497
|
_ref2$delete = _ref2["delete"],
|
1671
1498
|
deletePage = _ref2$delete === void 0 ? null : _ref2$delete;
|
1672
1499
|
|
1673
|
-
var ResourceIndexComponent =
|
1674
|
-
var ResourceShowComponent =
|
1675
|
-
var ResourceCreateComponent =
|
1676
|
-
var ResourceEditComponent =
|
1677
|
-
var ResourceDeleteComponent =
|
1678
|
-
return /*#__PURE__*/React__default[
|
1679
|
-
path
|
1500
|
+
var ResourceIndexComponent = indexPage !== null && typeof indexPage.component !== 'undefined' ? componentsManager.getComponent(indexPage.component) : ResourceIndexPage;
|
1501
|
+
var ResourceShowComponent = showPage !== null && typeof showPage.component !== 'undefined' ? componentsManager.getComponent(showPage.component) : ResourceShowPage;
|
1502
|
+
var ResourceCreateComponent = createPage !== null && typeof createPage.component !== 'undefined' ? componentsManager.getComponent(createPage.component) : ResourceCreatePage;
|
1503
|
+
var ResourceEditComponent = editPage !== null && typeof editPage.component !== 'undefined' ? componentsManager.getComponent(editPage.component) : ResourceEditPage;
|
1504
|
+
var ResourceDeleteComponent = deletePage !== null && typeof deletePage.component !== 'undefined' ? componentsManager.getComponent(deletePage.component) : ResourceDeletePage;
|
1505
|
+
return /*#__PURE__*/React__default["default"].createElement(reactRouter.Switch, null, extraRoutes.map(function (_ref3) {
|
1506
|
+
var path = _ref3.path,
|
1507
|
+
component = _ref3.component,
|
1508
|
+
_ref3$exact = _ref3.exact,
|
1509
|
+
exact = _ref3$exact === void 0 ? true : _ref3$exact,
|
1510
|
+
pageProps = _objectWithoutProperties__default["default"](_ref3, _excluded);
|
1511
|
+
|
1512
|
+
var RouteComponent = componentsManager.getComponent(component);
|
1513
|
+
return RouteComponent !== null ? /*#__PURE__*/React__default["default"].createElement(reactRouter.Route, {
|
1514
|
+
key: "route-".concat(path),
|
1515
|
+
path: path,
|
1516
|
+
exact: exact,
|
1517
|
+
render: function render(_ref4) {
|
1518
|
+
var _ref4$match$params = _ref4.match.params,
|
1519
|
+
id = _ref4$match$params.id,
|
1520
|
+
params = _objectWithoutProperties__default["default"](_ref4$match$params, _excluded2);
|
1521
|
+
|
1522
|
+
return /*#__PURE__*/React__default["default"].createElement(RouteComponent, Object.assign({
|
1523
|
+
resource: resource,
|
1524
|
+
itemId: id
|
1525
|
+
}, pageProps, params));
|
1526
|
+
}
|
1527
|
+
}) : null;
|
1528
|
+
}), /*#__PURE__*/React__default["default"].createElement(reactRouter.Route, {
|
1529
|
+
path: route('resources.index', {
|
1680
1530
|
resource: resourceId
|
1681
1531
|
}),
|
1682
1532
|
exact: true,
|
1683
1533
|
render: function render() {
|
1684
|
-
return /*#__PURE__*/React__default[
|
1534
|
+
return /*#__PURE__*/React__default["default"].createElement(ResourceIndexComponent, {
|
1685
1535
|
resource: resource
|
1686
1536
|
});
|
1687
1537
|
}
|
1688
|
-
}), /*#__PURE__*/React__default[
|
1689
|
-
path: route(
|
1538
|
+
}), /*#__PURE__*/React__default["default"].createElement(reactRouter.Route, {
|
1539
|
+
path: route('resources.create', {
|
1690
1540
|
resource: resourceId
|
1691
1541
|
}),
|
1692
1542
|
exact: true,
|
1693
1543
|
render: function render() {
|
1694
|
-
return /*#__PURE__*/React__default[
|
1544
|
+
return /*#__PURE__*/React__default["default"].createElement(ResourceCreateComponent, {
|
1695
1545
|
resource: resource
|
1696
1546
|
});
|
1697
1547
|
}
|
1698
|
-
}), /*#__PURE__*/React__default[
|
1699
|
-
path: route(
|
1548
|
+
}), /*#__PURE__*/React__default["default"].createElement(reactRouter.Route, {
|
1549
|
+
path: route('resources.show', {
|
1700
1550
|
resource: resourceId,
|
1701
1551
|
id: ':id'
|
1702
1552
|
}),
|
1703
1553
|
exact: true,
|
1704
|
-
render: function render(
|
1705
|
-
var id =
|
1706
|
-
return /*#__PURE__*/React__default[
|
1554
|
+
render: function render(_ref5) {
|
1555
|
+
var id = _ref5.match.params.id;
|
1556
|
+
return /*#__PURE__*/React__default["default"].createElement(ResourceShowComponent, {
|
1707
1557
|
resource: resource,
|
1708
1558
|
itemId: id
|
1709
1559
|
});
|
1710
1560
|
}
|
1711
|
-
}), /*#__PURE__*/React__default[
|
1712
|
-
path: route(
|
1561
|
+
}), /*#__PURE__*/React__default["default"].createElement(reactRouter.Route, {
|
1562
|
+
path: route('resources.edit', {
|
1713
1563
|
resource: resourceId,
|
1714
1564
|
id: ':id'
|
1715
1565
|
}),
|
1716
1566
|
exact: true,
|
1717
|
-
render: function render(
|
1718
|
-
var id =
|
1719
|
-
return /*#__PURE__*/React__default[
|
1567
|
+
render: function render(_ref6) {
|
1568
|
+
var id = _ref6.match.params.id;
|
1569
|
+
return /*#__PURE__*/React__default["default"].createElement(ResourceEditComponent, {
|
1720
1570
|
resource: resource,
|
1721
1571
|
itemId: id
|
1722
1572
|
});
|
1723
1573
|
}
|
1724
|
-
}), /*#__PURE__*/React__default[
|
1725
|
-
path: route(
|
1574
|
+
}), /*#__PURE__*/React__default["default"].createElement(reactRouter.Route, {
|
1575
|
+
path: route('resources.delete', {
|
1726
1576
|
resource: resourceId,
|
1727
1577
|
id: ':id'
|
1728
1578
|
}),
|
1729
1579
|
exact: true,
|
1730
|
-
render: function render(
|
1731
|
-
var id =
|
1732
|
-
return /*#__PURE__*/React__default[
|
1580
|
+
render: function render(_ref7) {
|
1581
|
+
var id = _ref7.match.params.id;
|
1582
|
+
return /*#__PURE__*/React__default["default"].createElement(ResourceDeleteComponent, {
|
1733
1583
|
resource: resource,
|
1734
1584
|
itemId: id
|
1735
1585
|
});
|
@@ -1758,20 +1608,19 @@ var PanneauRoutes = function PanneauRoutes(_ref) {
|
|
1758
1608
|
|
1759
1609
|
var _useLocation = reactRouter.useLocation(),
|
1760
1610
|
pathname = _useLocation.pathname; // search
|
1761
|
-
// console.log('PATHNAME', pathname); // eslint-disable-line
|
1762
1611
|
|
1763
1612
|
|
1764
1613
|
var _useState = React.useState({
|
1765
1614
|
statusCode: initialStatusCode,
|
1766
1615
|
pathname: pathname
|
1767
1616
|
}),
|
1768
|
-
_useState2 = _slicedToArray__default[
|
1617
|
+
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
1769
1618
|
_useState2$ = _useState2[0],
|
1770
1619
|
statusCode = _useState2$.statusCode,
|
1771
1620
|
initialPathname = _useState2$.pathname,
|
1772
1621
|
setInitialRequest = _useState2[1];
|
1773
1622
|
|
1774
|
-
var user = useUser();
|
1623
|
+
var user = auth.useUser();
|
1775
1624
|
var route = contexts.useUrlGenerator();
|
1776
1625
|
var resources = contexts.usePanneauResources(); // const nextUrl = useMemo(() => {
|
1777
1626
|
// const query = parseQuery(search);
|
@@ -1801,52 +1650,50 @@ var PanneauRoutes = function PanneauRoutes(_ref) {
|
|
1801
1650
|
var LoginComponent = utils.getComponentFromName((loginPage === null || loginPage === void 0 ? void 0 : loginPage.component) || 'login', basePages, loginPage === null || loginPage === void 0 ? void 0 : loginPage.component);
|
1802
1651
|
var AccountComponent = utils.getComponentFromName((accountPage === null || accountPage === void 0 ? void 0 : accountPage.component) || 'account', basePages, accountPage === null || accountPage === void 0 ? void 0 : accountPage.component);
|
1803
1652
|
var ErrorComponent = utils.getComponentFromName((errorPage === null || errorPage === void 0 ? void 0 : errorPage.component) || 'error', basePages, errorPage === null || errorPage === void 0 ? void 0 : errorPage.component);
|
1804
|
-
return /*#__PURE__*/React__default[
|
1653
|
+
return /*#__PURE__*/React__default["default"].createElement(reactRouter.Switch, null, statusCode !== null ? /*#__PURE__*/React__default["default"].createElement(reactRouter.Route, {
|
1805
1654
|
path: "*",
|
1806
1655
|
render: function render() {
|
1807
|
-
return /*#__PURE__*/React__default[
|
1656
|
+
return /*#__PURE__*/React__default["default"].createElement(ErrorComponent, {
|
1808
1657
|
statusCode: statusCode
|
1809
1658
|
});
|
1810
1659
|
}
|
1811
|
-
}) : null, user === null ? /*#__PURE__*/React__default[
|
1660
|
+
}) : null, user === null ? /*#__PURE__*/React__default["default"].createElement(reactRouter.Route, {
|
1812
1661
|
path: "*",
|
1813
1662
|
exact: true,
|
1814
1663
|
component: LoginComponent
|
1815
|
-
}) : null, user !== null ? /*#__PURE__*/React__default[
|
1664
|
+
}) : null, user !== null ? /*#__PURE__*/React__default["default"].createElement(reactRouter.Route, {
|
1816
1665
|
path: routes.home,
|
1817
1666
|
exact: true,
|
1818
1667
|
component: HomeComponent
|
1819
|
-
}) : /*#__PURE__*/React__default[
|
1668
|
+
}) : /*#__PURE__*/React__default["default"].createElement(reactRouter.Redirect, {
|
1820
1669
|
from: routes.home,
|
1821
1670
|
exact: true,
|
1822
1671
|
to: route('login')
|
1823
1672
|
}), resources.map(function (resource) {
|
1824
1673
|
var _ref3 = resource || {},
|
1825
|
-
resourceId = _ref3.id
|
1826
|
-
hasRoutes = _ref3.has_routes;
|
1674
|
+
resourceId = _ref3.id;
|
1827
1675
|
|
1828
|
-
|
1829
|
-
return user !== null ? /*#__PURE__*/React__default['default'].createElement(reactRouter.Route, {
|
1676
|
+
return user !== null ? /*#__PURE__*/React__default["default"].createElement(reactRouter.Route, {
|
1830
1677
|
key: "resource-".concat(resourceId),
|
1831
|
-
path: route(
|
1678
|
+
path: route('resources.index', {
|
1832
1679
|
resource: resourceId
|
1833
1680
|
}),
|
1834
1681
|
render: function render() {
|
1835
|
-
return /*#__PURE__*/React__default[
|
1682
|
+
return /*#__PURE__*/React__default["default"].createElement(ResourceRoutes, {
|
1836
1683
|
resource: resource
|
1837
1684
|
});
|
1838
1685
|
}
|
1839
|
-
}) : /*#__PURE__*/React__default[
|
1686
|
+
}) : /*#__PURE__*/React__default["default"].createElement(reactRouter.Redirect, {
|
1840
1687
|
key: "resource-".concat(resourceId),
|
1841
|
-
from: route(
|
1688
|
+
from: route('resources.index', {
|
1842
1689
|
resource: resourceId
|
1843
1690
|
}),
|
1844
1691
|
to: "".concat(route('login'), "?next=").concat(encodeURIComponent(pathname))
|
1845
1692
|
});
|
1846
|
-
}), /*#__PURE__*/React__default[
|
1693
|
+
}), /*#__PURE__*/React__default["default"].createElement(reactRouter.Route, {
|
1847
1694
|
path: route('auth.account'),
|
1848
1695
|
component: AccountComponent
|
1849
|
-
}), /*#__PURE__*/React__default[
|
1696
|
+
}), /*#__PURE__*/React__default["default"].createElement(reactRouter.Route, {
|
1850
1697
|
path: "*",
|
1851
1698
|
component: ErrorComponent
|
1852
1699
|
}));
|
@@ -1857,64 +1704,95 @@ PanneauRoutes.defaultProps = defaultProps$1;
|
|
1857
1704
|
|
1858
1705
|
var propTypes = {
|
1859
1706
|
definition: core.PropTypes.panneauDefinition.isRequired,
|
1707
|
+
components: PropTypes__default["default"].oneOfType([PropTypes__default["default"].objectOf(PropTypes__default["default"].elementType), PropTypes__default["default"].objectOf(PropTypes__default["default"].objectOf(PropTypes__default["default"].elementType))]),
|
1860
1708
|
user: core.PropTypes.user,
|
1861
|
-
memoryRouter: PropTypes__default[
|
1862
|
-
baseUrl: PropTypes__default[
|
1709
|
+
memoryRouter: PropTypes__default["default"].bool,
|
1710
|
+
baseUrl: PropTypes__default["default"].string,
|
1711
|
+
uppy: core.PropTypes.uppy,
|
1863
1712
|
statusCode: core.PropTypes.statusCode
|
1864
1713
|
};
|
1865
1714
|
var defaultProps = {
|
1715
|
+
components: null,
|
1866
1716
|
user: null,
|
1867
1717
|
memoryRouter: false,
|
1868
1718
|
baseUrl: null,
|
1719
|
+
uppy: null,
|
1869
1720
|
statusCode: null
|
1870
1721
|
};
|
1871
1722
|
|
1872
1723
|
var Container = function Container(_ref) {
|
1873
1724
|
var definition = _ref.definition,
|
1725
|
+
components = _ref.components,
|
1874
1726
|
user = _ref.user,
|
1875
1727
|
memoryRouter = _ref.memoryRouter,
|
1876
1728
|
baseUrl = _ref.baseUrl,
|
1729
|
+
uppy = _ref.uppy,
|
1877
1730
|
statusCode = _ref.statusCode;
|
1878
1731
|
var _definition$intl = definition.intl;
|
1879
1732
|
_definition$intl = _definition$intl === void 0 ? {} : _definition$intl;
|
1880
1733
|
var _definition$intl$loca = _definition$intl.locale,
|
1881
1734
|
locale = _definition$intl$loca === void 0 ? 'en' : _definition$intl$loca,
|
1882
|
-
|
1883
|
-
_definition$intl$
|
1884
|
-
translations = _definition$intl$mess === void 0 ? {} : _definition$intl$mess,
|
1735
|
+
_definition$intl$loca2 = _definition$intl.locales,
|
1736
|
+
locales = _definition$intl$loca2 === void 0 ? [] : _definition$intl$loca2,
|
1885
1737
|
_definition$routes = definition.routes,
|
1886
1738
|
routes = _definition$routes === void 0 ? {} : _definition$routes,
|
1887
|
-
_definition$settings = definition.settings
|
1888
|
-
|
1889
|
-
|
1890
|
-
|
1891
|
-
|
1892
|
-
|
1893
|
-
|
1894
|
-
|
1895
|
-
|
1896
|
-
|
1897
|
-
|
1898
|
-
|
1899
|
-
|
1900
|
-
|
1901
|
-
|
1902
|
-
|
1903
|
-
|
1739
|
+
_definition$settings = definition.settings;
|
1740
|
+
_definition$settings = _definition$settings === void 0 ? {} : _definition$settings;
|
1741
|
+
var _definition$settings$ = _definition$settings.memoryRouter,
|
1742
|
+
usesMemoryRouter = _definition$settings$ === void 0 ? false : _definition$settings$;
|
1743
|
+
var Router = memoryRouter || usesMemoryRouter ? reactRouter.MemoryRouter : reactRouterDom.BrowserRouter;
|
1744
|
+
var extraMessages = React.useMemo(function () {
|
1745
|
+
var _definition$intl2 = definition.intl;
|
1746
|
+
_definition$intl2 = _definition$intl2 === void 0 ? {} : _definition$intl2;
|
1747
|
+
var _definition$intl2$mes = _definition$intl2.messages,
|
1748
|
+
messages = _definition$intl2$mes === void 0 ? null : _definition$intl2$mes,
|
1749
|
+
_definition$resources = definition.resources,
|
1750
|
+
resources = _definition$resources === void 0 ? [] : _definition$resources;
|
1751
|
+
return _objectSpread__default["default"](_objectSpread__default["default"]({}, messages), resources.reduce(function (allMessages, _ref2) {
|
1752
|
+
var id = _ref2.id,
|
1753
|
+
_ref2$intl = _ref2.intl;
|
1754
|
+
_ref2$intl = _ref2$intl === void 0 ? {} : _ref2$intl;
|
1755
|
+
var _ref2$intl$messages = _ref2$intl.messages,
|
1756
|
+
resourceMessages = _ref2$intl$messages === void 0 ? {} : _ref2$intl$messages;
|
1757
|
+
return _objectSpread__default["default"](_objectSpread__default["default"]({}, allMessages), Object.keys(resourceMessages).reduce(function (allResourceMessages, key) {
|
1758
|
+
return _objectSpread__default["default"](_objectSpread__default["default"]({}, allResourceMessages), {}, _defineProperty__default["default"]({}, "resources.".concat(id, ".").concat(key), resourceMessages[key]));
|
1759
|
+
}, {}));
|
1760
|
+
}, {}));
|
1761
|
+
}, [definition]);
|
1762
|
+
var onUnauthorized = React.useCallback(function () {
|
1763
|
+
window.location.href = baseUrl;
|
1764
|
+
}, [baseUrl]);
|
1765
|
+
var onLogout = React.useCallback(function () {
|
1766
|
+
window.location.reload();
|
1767
|
+
}, [baseUrl]);
|
1768
|
+
return /*#__PURE__*/React__default["default"].createElement(Router, null, /*#__PURE__*/React__default["default"].createElement(intl.IntlProvider, {
|
1904
1769
|
locale: locale,
|
1905
|
-
locales: locales
|
1906
|
-
|
1770
|
+
locales: locales,
|
1771
|
+
extraMessages: extraMessages
|
1772
|
+
}, /*#__PURE__*/React__default["default"].createElement(contexts.PanneauProvider, {
|
1773
|
+
definition: definition
|
1774
|
+
}, /*#__PURE__*/React__default["default"].createElement(contexts.UppyProvider, uppy, /*#__PURE__*/React__default["default"].createElement(contexts.RoutesProvider, {
|
1907
1775
|
routes: routes
|
1908
|
-
}, /*#__PURE__*/React__default[
|
1909
|
-
baseUrl: baseUrl
|
1910
|
-
|
1911
|
-
|
1912
|
-
|
1776
|
+
}, /*#__PURE__*/React__default["default"].createElement(FieldsProvider__default["default"], null, /*#__PURE__*/React__default["default"].createElement(FormsProvider__default["default"], null, /*#__PURE__*/React__default["default"].createElement(ListsProvider__default["default"], null, /*#__PURE__*/React__default["default"].createElement(DisplaysProvider__default["default"], null, /*#__PURE__*/React__default["default"].createElement(FiltersProvider__default["default"], null, /*#__PURE__*/React__default["default"].createElement(data.ApiProvider, {
|
1777
|
+
baseUrl: baseUrl,
|
1778
|
+
onUnauthorized: onUnauthorized
|
1779
|
+
}, /*#__PURE__*/React__default["default"].createElement(auth.AuthProvider, {
|
1780
|
+
user: user,
|
1781
|
+
onLogout: onLogout
|
1782
|
+
}, /*#__PURE__*/React__default["default"].createElement(contexts.ComponentsProvider, {
|
1783
|
+
components: components
|
1784
|
+
}, /*#__PURE__*/React__default["default"].createElement(PanneauRoutes, {
|
1913
1785
|
statusCode: statusCode
|
1914
|
-
})))))))))))));
|
1786
|
+
}))))))))))))));
|
1915
1787
|
};
|
1916
1788
|
|
1917
1789
|
Container.propTypes = propTypes;
|
1918
1790
|
Container.defaultProps = defaultProps;
|
1919
1791
|
|
1920
|
-
|
1792
|
+
exports.GuestLayout = GuestLayout;
|
1793
|
+
exports.MainLayout = MainLayout;
|
1794
|
+
exports.PageHeader = PageHeader;
|
1795
|
+
exports.ResourceFilters = ResourceFilters;
|
1796
|
+
exports.ResourceForm = ResourceForm;
|
1797
|
+
exports.ResourceItemsList = ResourceItemsList;
|
1798
|
+
exports["default"] = Container;
|