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