@panneau/app 1.0.1-alpha.0 → 1.0.3-alpha.2
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 +7 -0
- package/es/index.js +1810 -5
- package/lib/index.js +1841 -15
- package/package.json +66 -54
- package/scss/styles.scss +3 -0
- package/es/Panneau.js +0 -318
- package/es/actions/AuthActions.js +0 -16
- package/es/actions/LayoutActions.js +0 -14
- package/es/components/App.js +0 -129
- package/es/components/Layout.js +0 -68
- package/es/components/Panneau.js +0 -79
- package/es/components/index.js +0 -3
- package/es/components/pages/Account.js +0 -38
- package/es/components/pages/Home.js +0 -12
- package/es/components/pages/ResourceCreate.js +0 -44
- package/es/components/pages/ResourceDelete.js +0 -11
- package/es/components/pages/ResourceEdit.js +0 -28
- package/es/components/pages/ResourceForm.js +0 -343
- package/es/components/pages/ResourceIndex.js +0 -261
- package/es/components/pages/ResourceShow.js +0 -15
- package/es/components/partials/ResourceFormHeader.js +0 -111
- package/es/components/partials/ResourceIndexHeader.js +0 -71
- package/es/defaults/routes.json +0 -10
- package/es/lib/createStore.js +0 -30
- package/es/reducers/AuthReducer.js +0 -32
- package/es/reducers/index.js +0 -4
- package/lib/Panneau.js +0 -340
- package/lib/actions/AuthActions.js +0 -25
- package/lib/actions/LayoutActions.js +0 -25
- package/lib/components/App.js +0 -159
- package/lib/components/Layout.js +0 -87
- package/lib/components/Panneau.js +0 -103
- package/lib/components/index.js +0 -23
- package/lib/components/pages/Account.js +0 -54
- package/lib/components/pages/Home.js +0 -23
- package/lib/components/pages/ResourceCreate.js +0 -65
- package/lib/components/pages/ResourceDelete.js +0 -22
- package/lib/components/pages/ResourceEdit.js +0 -44
- package/lib/components/pages/ResourceForm.js +0 -376
- package/lib/components/pages/ResourceIndex.js +0 -289
- package/lib/components/pages/ResourceShow.js +0 -28
- package/lib/components/partials/ResourceFormHeader.js +0 -137
- package/lib/components/partials/ResourceIndexHeader.js +0 -87
- package/lib/defaults/routes.json +0 -10
- package/lib/lib/createStore.js +0 -46
- package/lib/reducers/AuthReducer.js +0 -43
- package/lib/reducers/index.js +0 -15
- package/src/Panneau.js +0 -274
- package/src/actions/AuthActions.js +0 -17
- package/src/actions/LayoutActions.js +0 -12
- package/src/components/App.jsx +0 -121
- package/src/components/Layout.jsx +0 -51
- package/src/components/Panneau.jsx +0 -95
- package/src/components/index.js +0 -7
- package/src/components/pages/Account.jsx +0 -34
- package/src/components/pages/Home.jsx +0 -19
- package/src/components/pages/ResourceCreate.jsx +0 -50
- package/src/components/pages/ResourceDelete.jsx +0 -18
- package/src/components/pages/ResourceEdit.jsx +0 -39
- package/src/components/pages/ResourceForm.jsx +0 -361
- package/src/components/pages/ResourceIndex.jsx +0 -256
- package/src/components/pages/ResourceShow.jsx +0 -23
- package/src/components/partials/ResourceFormHeader.jsx +0 -137
- package/src/components/partials/ResourceIndexHeader.jsx +0 -84
- package/src/defaults/routes.json +0 -10
- package/src/index.js +0 -9
- package/src/lib/createStore.js +0 -21
- package/src/reducers/AuthReducer.js +0 -23
- package/src/reducers/index.js +0 -5
- package/src/styles/layout.scss +0 -5
- package/src/styles/pages/resource-form.scss +0 -42
- package/src/styles/pages/resource-index.scss +0 -43
- package/src/styles/partials/resource-form-header.scss +0 -7
- package/src/styles/partials/resource-index-header.scss +0 -13
- package/src/styles/vendor.global.scss +0 -5
@@ -1,376 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
4
|
-
|
5
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
6
|
-
|
7
|
-
Object.defineProperty(exports, "__esModule", {
|
8
|
-
value: true
|
9
|
-
});
|
10
|
-
exports["default"] = exports.messages = void 0;
|
11
|
-
|
12
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
13
|
-
|
14
|
-
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
15
|
-
|
16
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
17
|
-
|
18
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
19
|
-
|
20
|
-
var _react = _interopRequireWildcard(require("react"));
|
21
|
-
|
22
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
23
|
-
|
24
|
-
var _isObject = _interopRequireDefault(require("lodash/isObject"));
|
25
|
-
|
26
|
-
var _classnames = _interopRequireDefault(require("classnames"));
|
27
|
-
|
28
|
-
var _reactIntl = require("react-intl");
|
29
|
-
|
30
|
-
var _core = require("@panneau/core");
|
31
|
-
|
32
|
-
var _requests = require("@panneau/core/requests");
|
33
|
-
|
34
|
-
var _components = require("@panneau/core/components");
|
35
|
-
|
36
|
-
var _contexts = require("@panneau/core/contexts");
|
37
|
-
|
38
|
-
var _ResourceFormHeader = _interopRequireDefault(require("../partials/ResourceFormHeader"));
|
39
|
-
|
40
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
41
|
-
|
42
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
43
|
-
|
44
|
-
var styles = {
|
45
|
-
"container": "panneau-app-resource-form-container",
|
46
|
-
"isFullscreen": "panneau-app-resource-form-isFullscreen",
|
47
|
-
"noticeIcon": "panneau-app-resource-form-noticeIcon",
|
48
|
-
"loading": "panneau-app-resource-form-loading",
|
49
|
-
"inner": "panneau-app-resource-form-inner",
|
50
|
-
"content": "panneau-app-resource-form-content",
|
51
|
-
"form": "panneau-app-resource-form-form"
|
52
|
-
};
|
53
|
-
var messages = (0, _reactIntl.defineMessages)({
|
54
|
-
cancel: {
|
55
|
-
id: 'app.buttons.resources.cancel',
|
56
|
-
description: 'The label of the "cancel" button',
|
57
|
-
defaultMessage: 'Cancel'
|
58
|
-
},
|
59
|
-
save: {
|
60
|
-
id: 'app.buttons.resources.save',
|
61
|
-
description: 'The label of the "save" button',
|
62
|
-
defaultMessage: 'Save'
|
63
|
-
},
|
64
|
-
title: {
|
65
|
-
id: 'app.titles.resources.default',
|
66
|
-
description: 'The title of the resource form',
|
67
|
-
defaultMessage: '{name}'
|
68
|
-
},
|
69
|
-
titleTyped: {
|
70
|
-
id: 'app.titles.resources.typed',
|
71
|
-
description: 'The title of the typed resource form',
|
72
|
-
defaultMessage: '{name} <small class="text-muted">({type})</small>'
|
73
|
-
},
|
74
|
-
successNotice: {
|
75
|
-
id: 'app.notices.resources.success',
|
76
|
-
description: 'The text of the "success" form notice',
|
77
|
-
defaultMessage: 'Success!'
|
78
|
-
},
|
79
|
-
errorNotice: {
|
80
|
-
id: 'app.notices.resources.error',
|
81
|
-
description: 'The text of the "error" form notice',
|
82
|
-
defaultMessage: 'Failed. The form contains errors.'
|
83
|
-
}
|
84
|
-
});
|
85
|
-
exports.messages = messages;
|
86
|
-
var propTypes = {
|
87
|
-
action: _propTypes["default"].string,
|
88
|
-
resource: _core.PropTypes.resource.isRequired,
|
89
|
-
resourceApi: _core.PropTypes.resourceApi.isRequired,
|
90
|
-
itemId: _propTypes["default"].oneOfType([_propTypes["default"].number, _propTypes["default"].string]),
|
91
|
-
item: _propTypes["default"].shape({
|
92
|
-
id: _propTypes["default"].number,
|
93
|
-
type: _propTypes["default"].string
|
94
|
-
}),
|
95
|
-
query: _propTypes["default"].shape({
|
96
|
-
type: _propTypes["default"].string
|
97
|
-
}),
|
98
|
-
successNoticeLabel: _core.PropTypes.label,
|
99
|
-
errorNoticeLabel: _core.PropTypes.label,
|
100
|
-
buttons: _core.PropTypes.buttons,
|
101
|
-
saveButtonLabel: _core.PropTypes.message,
|
102
|
-
confirmSwitchTypeMessage: _core.PropTypes.message,
|
103
|
-
errors: _propTypes["default"].arrayOf(_propTypes["default"].string),
|
104
|
-
formValue: _propTypes["default"].shape({}),
|
105
|
-
formErrors: _propTypes["default"].objectOf(_propTypes["default"].array),
|
106
|
-
readOnly: _propTypes["default"].bool,
|
107
|
-
title: _core.PropTypes.label,
|
108
|
-
titleTyped: _core.PropTypes.label,
|
109
|
-
gotoResourceAction: _propTypes["default"].func.isRequired,
|
110
|
-
onFormComplete: _propTypes["default"].func
|
111
|
-
};
|
112
|
-
var defaultProps = {
|
113
|
-
action: 'create',
|
114
|
-
title: messages.title,
|
115
|
-
titleTyped: messages.titleTyped,
|
116
|
-
query: null,
|
117
|
-
itemId: null,
|
118
|
-
item: null,
|
119
|
-
errors: null,
|
120
|
-
formValue: null,
|
121
|
-
formErrors: null,
|
122
|
-
readOnly: false,
|
123
|
-
successNoticeLabel: messages.successNotice,
|
124
|
-
errorNoticeLabel: messages.errorNotice,
|
125
|
-
confirmSwitchTypeMessage: messages.confirmSwitchType,
|
126
|
-
buttons: [{
|
127
|
-
id: 'cancel',
|
128
|
-
type: 'button',
|
129
|
-
label: messages.cancel,
|
130
|
-
className: 'btn-link btn-lg'
|
131
|
-
}, {
|
132
|
-
id: 'submit',
|
133
|
-
type: 'submit',
|
134
|
-
label: messages.save,
|
135
|
-
className: 'btn-primary btn-lg'
|
136
|
-
}],
|
137
|
-
saveButtonLabel: null,
|
138
|
-
onFormComplete: null
|
139
|
-
};
|
140
|
-
|
141
|
-
var ResourceForm = function ResourceForm(_ref) {
|
142
|
-
var resource = _ref.resource,
|
143
|
-
currentItem = _ref.item,
|
144
|
-
itemId = _ref.itemId,
|
145
|
-
query = _ref.query,
|
146
|
-
action = _ref.action,
|
147
|
-
readOnly = _ref.readOnly,
|
148
|
-
currentErrors = _ref.errors,
|
149
|
-
initialFormValue = _ref.formValue,
|
150
|
-
initialFormErrors = _ref.formErrors,
|
151
|
-
title = _ref.title,
|
152
|
-
titleTyped = _ref.titleTyped,
|
153
|
-
buttons = _ref.buttons,
|
154
|
-
saveButtonLabel = _ref.saveButtonLabel,
|
155
|
-
successNoticeLabel = _ref.successNoticeLabel,
|
156
|
-
errorNoticeLabel = _ref.errorNoticeLabel,
|
157
|
-
customOnFormComplete = _ref.onFormComplete,
|
158
|
-
gotoResourceAction = _ref.gotoResourceAction;
|
159
|
-
|
160
|
-
var _useState = (0, _react.useState)(currentItem),
|
161
|
-
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
162
|
-
item = _useState2[0],
|
163
|
-
setItem = _useState2[1];
|
164
|
-
|
165
|
-
var _useState3 = (0, _react.useState)(false),
|
166
|
-
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
167
|
-
isLoading = _useState4[0],
|
168
|
-
setIsLoading = _useState4[1];
|
169
|
-
|
170
|
-
var _useState5 = (0, _react.useState)(currentErrors || item),
|
171
|
-
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
172
|
-
errors = _useState6[0],
|
173
|
-
setErrors = _useState6[1];
|
174
|
-
|
175
|
-
var _useState7 = (0, _react.useState)(initialFormValue || item),
|
176
|
-
_useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
|
177
|
-
formValue = _useState8[0],
|
178
|
-
setFormValue = _useState8[1];
|
179
|
-
|
180
|
-
var _useState9 = (0, _react.useState)(initialFormErrors || item),
|
181
|
-
_useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
|
182
|
-
formErrors = _useState10[0],
|
183
|
-
setFormErrors = _useState10[1];
|
184
|
-
|
185
|
-
var _useState11 = (0, _react.useState)(initialFormErrors !== null ? false : null),
|
186
|
-
_useState12 = (0, _slicedToArray2["default"])(_useState11, 2),
|
187
|
-
formSuccess = _useState12[0],
|
188
|
-
setFormSuccess = _useState12[1];
|
189
|
-
|
190
|
-
var resourceApi = (0, _core.useResourceApi)(resource);
|
191
|
-
var isTyped = resource.type() === 'typed';
|
192
|
-
var waitingItem = action === 'edit' && item === null; // Load item if needed
|
193
|
-
|
194
|
-
(0, _react.useEffect)(function () {
|
195
|
-
if (isLoading) {
|
196
|
-
return;
|
197
|
-
}
|
198
|
-
|
199
|
-
var onItemLoaded = function onItemLoaded(newItem) {
|
200
|
-
setItem(newItem);
|
201
|
-
};
|
202
|
-
|
203
|
-
var onItemLoadError = function onItemLoadError(newErrors) {
|
204
|
-
setErrors(newErrors);
|
205
|
-
};
|
206
|
-
|
207
|
-
var itemChanged = item !== null && "".concat(item.id) !== "".concat(itemId);
|
208
|
-
var itemShouldReload = item === null || itemChanged;
|
209
|
-
|
210
|
-
if ((action === 'edit' || action === 'show') && itemShouldReload) {
|
211
|
-
setIsLoading(true);
|
212
|
-
resourceApi.show(itemId).then(onItemLoaded)["catch"](onItemLoadError).then(function () {
|
213
|
-
setIsLoading(false);
|
214
|
-
});
|
215
|
-
}
|
216
|
-
}, [action, item, itemId, isLoading]); // Get current type
|
217
|
-
|
218
|
-
var currentType = (0, _react.useMemo)(function () {
|
219
|
-
if (!isTyped || waitingItem) {
|
220
|
-
return null;
|
221
|
-
}
|
222
|
-
|
223
|
-
var types = resource.types();
|
224
|
-
var itemTypeId = item !== null ? item.type || null : null;
|
225
|
-
|
226
|
-
var _ref2 = query || {},
|
227
|
-
_ref2$type = _ref2.type,
|
228
|
-
queryTypeId = _ref2$type === void 0 ? null : _ref2$type;
|
229
|
-
|
230
|
-
var typeId = itemTypeId || queryTypeId;
|
231
|
-
var definedType = typeId !== null ? types.find(function (it) {
|
232
|
-
return it.id === typeId;
|
233
|
-
}) || null : null;
|
234
|
-
|
235
|
-
if (definedType !== null) {
|
236
|
-
return definedType;
|
237
|
-
}
|
238
|
-
|
239
|
-
return types.length > 0 ? types.find(function (_ref3) {
|
240
|
-
var _ref3$default = _ref3["default"],
|
241
|
-
isDefault = _ref3$default === void 0 ? false : _ref3$default;
|
242
|
-
return isDefault;
|
243
|
-
}) || types[0] || null : null;
|
244
|
-
}, [item, query, resource]);
|
245
|
-
var onClickCancel = (0, _react.useCallback)(function (e) {
|
246
|
-
e.preventDefault();
|
247
|
-
gotoResourceAction('index');
|
248
|
-
}, [gotoResourceAction]);
|
249
|
-
var formButtons = (0, _react.useMemo)(function () {
|
250
|
-
return readOnly ? [] : buttons.map(function (button) {
|
251
|
-
if (button.id === 'save' && saveButtonLabel !== null) {
|
252
|
-
return _objectSpread({}, button, {
|
253
|
-
label: saveButtonLabel
|
254
|
-
});
|
255
|
-
}
|
256
|
-
|
257
|
-
if (button.id === 'cancel' && typeof button.onClick === 'undefined') {
|
258
|
-
return _objectSpread({}, button, {
|
259
|
-
onClick: onClickCancel
|
260
|
-
});
|
261
|
-
}
|
262
|
-
|
263
|
-
return button;
|
264
|
-
});
|
265
|
-
}, [buttons, readOnly]);
|
266
|
-
var submitForm = (0, _react.useCallback)(function () {
|
267
|
-
var data = isTyped ? _objectSpread({
|
268
|
-
type: currentType !== null ? currentType.id : null
|
269
|
-
}, formValue || item) : formValue;
|
270
|
-
setFormSuccess(null);
|
271
|
-
return action === 'create' ? resourceApi.store(data) : resourceApi.update(item.id, data || item);
|
272
|
-
}, [resourceApi, action, isTyped, currentType]);
|
273
|
-
var onFormChange = (0, _react.useCallback)(function (value) {
|
274
|
-
setFormValue(value);
|
275
|
-
setFormSuccess(null);
|
276
|
-
}, []);
|
277
|
-
var onFormComplete = (0, _react.useCallback)(function (newItem) {
|
278
|
-
setItem(newItem);
|
279
|
-
setFormValue(null);
|
280
|
-
setFormErrors(null);
|
281
|
-
setFormSuccess(true);
|
282
|
-
|
283
|
-
if (customOnFormComplete !== null) {
|
284
|
-
customOnFormComplete(item);
|
285
|
-
}
|
286
|
-
}, [customOnFormComplete]);
|
287
|
-
var onFormErrors = (0, _react.useCallback)(function (error) {
|
288
|
-
var newErrors = (0, _requests.getErrorsFromResponseError)(error);
|
289
|
-
setFormErrors(newErrors);
|
290
|
-
setFormSuccess(false);
|
291
|
-
}, []); // Get form definition
|
292
|
-
|
293
|
-
var _useMemo = (0, _react.useMemo)(function () {
|
294
|
-
var _resource$form = resource.form(action),
|
295
|
-
_resource$form$fields = _resource$form.fields,
|
296
|
-
fields = _resource$form$fields === void 0 ? [] : _resource$form$fields,
|
297
|
-
form = (0, _objectWithoutProperties2["default"])(_resource$form, ["fields"]);
|
298
|
-
|
299
|
-
var finalFields;
|
300
|
-
|
301
|
-
if (waitingItem) {
|
302
|
-
finalFields = null;
|
303
|
-
} else if (currentType !== null && (0, _isObject["default"])(fields)) {
|
304
|
-
finalFields = fields[currentType.id] || fields["default"] || fields;
|
305
|
-
} else {
|
306
|
-
finalFields = fields;
|
307
|
-
}
|
308
|
-
|
309
|
-
return _objectSpread({
|
310
|
-
type: 'normal',
|
311
|
-
fullscreen: false,
|
312
|
-
fields: finalFields
|
313
|
-
}, form);
|
314
|
-
}, [waitingItem, resource, currentType]),
|
315
|
-
_useMemo$type = _useMemo.type,
|
316
|
-
formType = _useMemo$type === void 0 ? null : _useMemo$type,
|
317
|
-
fullscreen = _useMemo.fullscreen,
|
318
|
-
_useMemo$className = _useMemo.className,
|
319
|
-
className = _useMemo$className === void 0 ? null : _useMemo$className,
|
320
|
-
formProps = (0, _objectWithoutProperties2["default"])(_useMemo, ["type", "fullscreen", "className"]);
|
321
|
-
|
322
|
-
var FormComponent = (0, _contexts.useComponent)(formType, 'forms');
|
323
|
-
var form = !waitingItem && FormComponent !== null ? _react["default"].createElement(FormComponent, (0, _extends2["default"])({}, formProps, {
|
324
|
-
className: (0, _classnames["default"])([styles.form, (0, _defineProperty2["default"])({}, className, className !== null)]),
|
325
|
-
readOnly: readOnly,
|
326
|
-
buttons: formButtons,
|
327
|
-
value: formValue || item,
|
328
|
-
errors: formErrors,
|
329
|
-
notice: formSuccess !== null ? {
|
330
|
-
type: formSuccess ? 'success' : 'error',
|
331
|
-
label: formSuccess ? successNoticeLabel : errorNoticeLabel
|
332
|
-
} : null,
|
333
|
-
submitForm: submitForm,
|
334
|
-
onChange: onFormChange,
|
335
|
-
onComplete: onFormComplete,
|
336
|
-
onErrors: onFormErrors
|
337
|
-
})) : null;
|
338
|
-
|
339
|
-
var header = _react["default"].createElement(_ResourceFormHeader["default"], {
|
340
|
-
resource: resource,
|
341
|
-
type: currentType,
|
342
|
-
action: action,
|
343
|
-
fullscreen: fullscreen,
|
344
|
-
valueHasChanged: formValue !== null,
|
345
|
-
title: title,
|
346
|
-
titleTyped: titleTyped
|
347
|
-
});
|
348
|
-
|
349
|
-
var errorsMessages = errors !== null && errors.length > 0 ? _react["default"].createElement(_components.Errors, {
|
350
|
-
errors: errors,
|
351
|
-
className: styles.errors
|
352
|
-
}) : null;
|
353
|
-
var content = isLoading && item === null ? _react["default"].createElement("div", {
|
354
|
-
className: (0, _classnames["default"])(['py-4', styles.loading])
|
355
|
-
}, _react["default"].createElement(_components.Loading, {
|
356
|
-
loading: true
|
357
|
-
})) : form;
|
358
|
-
return _react["default"].createElement("div", {
|
359
|
-
className: (0, _classnames["default"])([styles.container, (0, _defineProperty2["default"])({}, styles.isFullscreen, fullscreen)])
|
360
|
-
}, fullscreen ? _react["default"].createElement("div", {
|
361
|
-
className: (0, _classnames["default"])([styles.inner])
|
362
|
-
}, header, _react["default"].createElement("div", {
|
363
|
-
className: (0, _classnames["default"])([styles.content])
|
364
|
-
}, errorsMessages, content)) : _react["default"].createElement("div", {
|
365
|
-
className: "container"
|
366
|
-
}, _react["default"].createElement("div", {
|
367
|
-
className: "row justify-content-md-center"
|
368
|
-
}, _react["default"].createElement("div", {
|
369
|
-
className: "col-lg-9"
|
370
|
-
}, header, errorsMessages, content))));
|
371
|
-
};
|
372
|
-
|
373
|
-
ResourceForm.propTypes = propTypes;
|
374
|
-
ResourceForm.defaultProps = defaultProps;
|
375
|
-
var _default = ResourceForm;
|
376
|
-
exports["default"] = _default;
|
@@ -1,289 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
4
|
-
|
5
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
6
|
-
|
7
|
-
Object.defineProperty(exports, "__esModule", {
|
8
|
-
value: true
|
9
|
-
});
|
10
|
-
exports["default"] = void 0;
|
11
|
-
|
12
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
13
|
-
|
14
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
15
|
-
|
16
|
-
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
17
|
-
|
18
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
19
|
-
|
20
|
-
var _react = _interopRequireWildcard(require("react"));
|
21
|
-
|
22
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
23
|
-
|
24
|
-
var _get = _interopRequireDefault(require("lodash/get"));
|
25
|
-
|
26
|
-
var _classnames = _interopRequireDefault(require("classnames"));
|
27
|
-
|
28
|
-
var _reactIntl = require("react-intl");
|
29
|
-
|
30
|
-
var _core = require("@panneau/core");
|
31
|
-
|
32
|
-
var _utils = require("@panneau/core/utils");
|
33
|
-
|
34
|
-
var _contexts = require("@panneau/core/contexts");
|
35
|
-
|
36
|
-
var _components = require("@panneau/core/components");
|
37
|
-
|
38
|
-
var _ResourceIndexHeader = _interopRequireDefault(require("../partials/ResourceIndexHeader"));
|
39
|
-
|
40
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
41
|
-
|
42
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
43
|
-
|
44
|
-
var styles = {
|
45
|
-
"container": "panneau-app-resource-index-container",
|
46
|
-
"listContainer": "panneau-app-resource-index-listContainer",
|
47
|
-
"list": "panneau-app-resource-index-list",
|
48
|
-
"loading": "panneau-app-resource-index-loading",
|
49
|
-
"inner": "panneau-app-resource-index-inner",
|
50
|
-
"middle": "panneau-app-resource-index-middle",
|
51
|
-
"alone": "panneau-app-resource-index-alone"
|
52
|
-
};
|
53
|
-
var messages = (0, _reactIntl.defineMessages)({
|
54
|
-
add: {
|
55
|
-
id: 'core.buttons.resources.add',
|
56
|
-
description: 'The label of the "add" index button',
|
57
|
-
defaultMessage: 'Add {name}'
|
58
|
-
},
|
59
|
-
title: {
|
60
|
-
id: 'core.titles.resources.index',
|
61
|
-
description: 'The title of the resource index page',
|
62
|
-
defaultMessage: '{name}'
|
63
|
-
},
|
64
|
-
confirmDelete: {
|
65
|
-
id: 'core.resources.index.confirm_delete',
|
66
|
-
description: 'The confirm message when deleting on the resource index page',
|
67
|
-
defaultMessage: 'Are you sure you want to delete this item from {name}?'
|
68
|
-
}
|
69
|
-
});
|
70
|
-
var propTypes = {
|
71
|
-
intl: _core.PropTypes.intl.isRequired,
|
72
|
-
resource: _core.PropTypes.resource.isRequired,
|
73
|
-
query: _propTypes["default"].shape({
|
74
|
-
page: _propTypes["default"].string
|
75
|
-
}),
|
76
|
-
title: _core.PropTypes.message,
|
77
|
-
showAddButton: _propTypes["default"].bool,
|
78
|
-
addButtonLabel: _core.PropTypes.message,
|
79
|
-
confirmDeleteMessage: _core.PropTypes.message,
|
80
|
-
getResourceActionUrl: _propTypes["default"].func.isRequired,
|
81
|
-
gotoResourceAction: _propTypes["default"].func.isRequired
|
82
|
-
};
|
83
|
-
var defaultProps = {
|
84
|
-
query: null,
|
85
|
-
title: messages.title,
|
86
|
-
showAddButton: true,
|
87
|
-
addButtonLabel: messages.add,
|
88
|
-
confirmDeleteMessage: messages.confirmDelete
|
89
|
-
};
|
90
|
-
|
91
|
-
var ResourceIndex = function ResourceIndex(_ref) {
|
92
|
-
var _classNames;
|
93
|
-
|
94
|
-
var intl = _ref.intl,
|
95
|
-
resource = _ref.resource,
|
96
|
-
query = _ref.query,
|
97
|
-
title = _ref.title,
|
98
|
-
addButtonLabel = _ref.addButtonLabel,
|
99
|
-
confirmDeleteMessage = _ref.confirmDeleteMessage,
|
100
|
-
getResourceActionUrl = _ref.getResourceActionUrl,
|
101
|
-
gotoResourceAction = _ref.gotoResourceAction,
|
102
|
-
showAddButton = _ref.showAddButton;
|
103
|
-
|
104
|
-
var _useState = (0, _react.useState)({
|
105
|
-
isLoading: false,
|
106
|
-
query: null,
|
107
|
-
items: null,
|
108
|
-
errors: null,
|
109
|
-
pagination: null
|
110
|
-
}),
|
111
|
-
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
112
|
-
request = _useState2[0],
|
113
|
-
setRequest = _useState2[1];
|
114
|
-
|
115
|
-
var resourceApi = (0, _core.useResourceApi)(resource);
|
116
|
-
var isLoading = request.isLoading,
|
117
|
-
items = request.items,
|
118
|
-
pagination = request.pagination,
|
119
|
-
errors = request.errors;
|
120
|
-
|
121
|
-
var _resource$list = resource.list('index'),
|
122
|
-
listType = _resource$list.type,
|
123
|
-
_resource$list$pagina = _resource$list.pagination,
|
124
|
-
hasPagination = _resource$list$pagina === void 0 ? false : _resource$list$pagina,
|
125
|
-
listProps = (0, _objectWithoutProperties2["default"])(_resource$list, ["type", "pagination"]);
|
126
|
-
|
127
|
-
(0, _react.useEffect)(function () {
|
128
|
-
if (isLoading) {
|
129
|
-
return null;
|
130
|
-
}
|
131
|
-
|
132
|
-
var canceled = false;
|
133
|
-
|
134
|
-
var onItemsLoaded = function onItemsLoaded(data) {
|
135
|
-
if (canceled) {
|
136
|
-
return;
|
137
|
-
}
|
138
|
-
|
139
|
-
if (hasPagination) {
|
140
|
-
var newItems = data.data,
|
141
|
-
newPagination = (0, _objectWithoutProperties2["default"])(data, ["data"]);
|
142
|
-
setRequest(_objectSpread({}, request, {
|
143
|
-
items: newItems,
|
144
|
-
pagination: newPagination,
|
145
|
-
isLoading: false
|
146
|
-
}));
|
147
|
-
return;
|
148
|
-
}
|
149
|
-
|
150
|
-
setRequest(_objectSpread({}, request, {
|
151
|
-
items: data,
|
152
|
-
isLoading: false
|
153
|
-
}));
|
154
|
-
};
|
155
|
-
|
156
|
-
var onItemsLoadError = function onItemsLoadError(newErrors) {
|
157
|
-
if (canceled) {
|
158
|
-
return;
|
159
|
-
}
|
160
|
-
|
161
|
-
setRequest(_objectSpread({}, request, {
|
162
|
-
errors: newErrors,
|
163
|
-
isLoading: false
|
164
|
-
}));
|
165
|
-
};
|
166
|
-
|
167
|
-
var _ref2 = query || {},
|
168
|
-
_ref2$page = _ref2.page,
|
169
|
-
page = _ref2$page === void 0 ? null : _ref2$page;
|
170
|
-
|
171
|
-
var params = {};
|
172
|
-
|
173
|
-
if (hasPagination && page !== null) {
|
174
|
-
params.page = page;
|
175
|
-
}
|
176
|
-
|
177
|
-
resourceApi.index(params).then(onItemsLoaded)["catch"](onItemsLoadError);
|
178
|
-
setRequest(_objectSpread({}, request, {
|
179
|
-
isLoading: true
|
180
|
-
}));
|
181
|
-
return function () {
|
182
|
-
canceled = true;
|
183
|
-
};
|
184
|
-
}, [query, hasPagination]);
|
185
|
-
var deleteItem = (0, _react.useCallback)(function (id) {
|
186
|
-
var onItemDeleted = function onItemDeleted(_ref3) {
|
187
|
-
var itemId = _ref3.id;
|
188
|
-
setRequest(_objectSpread({}, request, {
|
189
|
-
items: items.filter(function (it) {
|
190
|
-
return it.id !== itemId;
|
191
|
-
})
|
192
|
-
}));
|
193
|
-
};
|
194
|
-
|
195
|
-
var name = resource.name;
|
196
|
-
var confirmMessage = resource.message('confirm_delete', confirmDeleteMessage);
|
197
|
-
var message = (0, _utils.isMessage)(confirmMessage) ? intl.formatMessage(confirmMessage, {
|
198
|
-
name: name,
|
199
|
-
id: id
|
200
|
-
}) : confirmMessage; // eslint-disable-next-line no-alert
|
201
|
-
|
202
|
-
if (window.confirm(message)) {
|
203
|
-
resourceApi.destroy(id).then(onItemDeleted);
|
204
|
-
}
|
205
|
-
}, [resource, request]);
|
206
|
-
var onClickAction = (0, _react.useCallback)(function (e, action, it) {
|
207
|
-
var useRouter = (0, _get["default"])(action, 'useRouter', true);
|
208
|
-
|
209
|
-
switch (action.id) {
|
210
|
-
case 'edit':
|
211
|
-
case 'show':
|
212
|
-
if (useRouter) {
|
213
|
-
gotoResourceAction(action.id, it.id);
|
214
|
-
} else {
|
215
|
-
window.location.href = getResourceActionUrl(action.id);
|
216
|
-
}
|
217
|
-
|
218
|
-
break;
|
219
|
-
|
220
|
-
case 'delete':
|
221
|
-
{
|
222
|
-
var hasPage = (0, _get["default"])(action, 'hasPage', false);
|
223
|
-
|
224
|
-
if (!hasPage) {
|
225
|
-
deleteItem(it.id);
|
226
|
-
} else if (useRouter) {
|
227
|
-
gotoResourceAction(action.id, it.id);
|
228
|
-
} else {
|
229
|
-
window.location.href = getResourceActionUrl(action.id);
|
230
|
-
}
|
231
|
-
|
232
|
-
break;
|
233
|
-
}
|
234
|
-
|
235
|
-
default:
|
236
|
-
break;
|
237
|
-
}
|
238
|
-
}, [deleteItem, gotoResourceAction, getResourceActionUrl]); // Components
|
239
|
-
|
240
|
-
var ListComponent = (0, _contexts.useComponent)(listType || 'table', 'lists');
|
241
|
-
var Pagination = (0, _contexts.useComponent)('pagination', 'lists');
|
242
|
-
return _react["default"].createElement("div", {
|
243
|
-
className: (0, _classnames["default"])([styles.container])
|
244
|
-
}, _react["default"].createElement("div", {
|
245
|
-
className: "container"
|
246
|
-
}, _react["default"].createElement("div", {
|
247
|
-
className: "row justify-content-md-center"
|
248
|
-
}, _react["default"].createElement("div", {
|
249
|
-
className: "col-lg-8"
|
250
|
-
}, _react["default"].createElement(_ResourceIndexHeader["default"], {
|
251
|
-
resource: resource,
|
252
|
-
title: title,
|
253
|
-
addButtonLabel: addButtonLabel,
|
254
|
-
showAddButton: showAddButton,
|
255
|
-
getResourceActionUrl: getResourceActionUrl
|
256
|
-
}), _react["default"].createElement("div", {
|
257
|
-
className: styles.listContainer
|
258
|
-
}, _react["default"].createElement(_components.Errors, {
|
259
|
-
errors: errors
|
260
|
-
}), _react["default"].createElement("div", {
|
261
|
-
className: styles.list
|
262
|
-
}, items !== null && ListComponent !== null ? _react["default"].createElement("div", {
|
263
|
-
className: styles.list
|
264
|
-
}, _react["default"].createElement(ListComponent, (0, _extends2["default"])({}, listProps, {
|
265
|
-
items: items || [],
|
266
|
-
onClickAction: onClickAction
|
267
|
-
}))) : null), isLoading ? _react["default"].createElement("div", {
|
268
|
-
className: (0, _classnames["default"])((_classNames = {}, (0, _defineProperty2["default"])(_classNames, styles.loading, true), (0, _defineProperty2["default"])(_classNames, styles.alone, items === null), _classNames))
|
269
|
-
}, _react["default"].createElement("div", {
|
270
|
-
className: styles.inner
|
271
|
-
}, _react["default"].createElement("div", {
|
272
|
-
className: styles.middle
|
273
|
-
}, _react["default"].createElement(_components.Loading, {
|
274
|
-
loading: true
|
275
|
-
})))) : null), pagination !== null && pagination.last_page > 1 ? _react["default"].createElement(Pagination, {
|
276
|
-
total: pagination.total,
|
277
|
-
perPage: pagination.per_page,
|
278
|
-
currentPage: pagination.current_page,
|
279
|
-
lastPage: pagination.last_page,
|
280
|
-
url: getResourceActionUrl('index')
|
281
|
-
}) : null))));
|
282
|
-
};
|
283
|
-
|
284
|
-
ResourceIndex.propTypes = propTypes;
|
285
|
-
ResourceIndex.defaultProps = defaultProps;
|
286
|
-
|
287
|
-
var _default = (0, _reactIntl.injectIntl)(ResourceIndex);
|
288
|
-
|
289
|
-
exports["default"] = _default;
|
@@ -1,28 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
-
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
6
|
-
value: true
|
7
|
-
});
|
8
|
-
exports["default"] = void 0;
|
9
|
-
|
10
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
11
|
-
|
12
|
-
var _react = _interopRequireDefault(require("react"));
|
13
|
-
|
14
|
-
var _ResourceForm = _interopRequireDefault(require("./ResourceForm"));
|
15
|
-
|
16
|
-
var propTypes = {};
|
17
|
-
var defaultProps = {};
|
18
|
-
|
19
|
-
var ResourceShow = function ResourceShow(props) {
|
20
|
-
return _react["default"].createElement(_ResourceForm["default"], (0, _extends2["default"])({
|
21
|
-
readOnly: true
|
22
|
-
}, props));
|
23
|
-
};
|
24
|
-
|
25
|
-
ResourceShow.propTypes = propTypes;
|
26
|
-
ResourceShow.defaultProps = defaultProps;
|
27
|
-
var _default = ResourceShow;
|
28
|
-
exports["default"] = _default;
|