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