@strapi/content-manager 5.60.0 → 5.61.1
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/dist/admin/constants/customOrder.js +14 -0
- package/dist/admin/constants/customOrder.js.map +1 -0
- package/dist/admin/constants/customOrder.mjs +10 -0
- package/dist/admin/constants/customOrder.mjs.map +1 -0
- package/dist/admin/hooks/useDocument.js +22 -11
- package/dist/admin/hooks/useDocument.js.map +1 -1
- package/dist/admin/hooks/useDocument.mjs +22 -11
- package/dist/admin/hooks/useDocument.mjs.map +1 -1
- package/dist/admin/hooks/useDocumentLayout.js.map +1 -1
- package/dist/admin/hooks/useDocumentLayout.mjs.map +1 -1
- package/dist/admin/hooks/useHasBeenNearViewport.js +70 -0
- package/dist/admin/hooks/useHasBeenNearViewport.js.map +1 -0
- package/dist/admin/hooks/useHasBeenNearViewport.mjs +46 -0
- package/dist/admin/hooks/useHasBeenNearViewport.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Image.js +102 -32
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Image.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Image.mjs +104 -35
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Image.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/List.js +20 -17
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/List.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/List.mjs +20 -17
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/List.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js +15 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs +17 -3
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/plugins/withStrapiSchema.js +21 -0
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/plugins/withStrapiSchema.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/plugins/withStrapiSchema.mjs +22 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/plugins/withStrapiSchema.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js +4 -7
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs +4 -7
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js +46 -10
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs +47 -11
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormLayout.js +201 -51
- package/dist/admin/pages/EditView/components/FormLayout.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormLayout.mjs +202 -53
- package/dist/admin/pages/EditView/components/FormLayout.mjs.map +1 -1
- package/dist/admin/pages/ListConfiguration/components/Settings.js +31 -2
- package/dist/admin/pages/ListConfiguration/components/Settings.js.map +1 -1
- package/dist/admin/pages/ListConfiguration/components/Settings.mjs +31 -2
- package/dist/admin/pages/ListConfiguration/components/Settings.mjs.map +1 -1
- package/dist/admin/pages/ListView/ListViewPage.js +196 -132
- package/dist/admin/pages/ListView/ListViewPage.js.map +1 -1
- package/dist/admin/pages/ListView/ListViewPage.mjs +196 -132
- package/dist/admin/pages/ListView/ListViewPage.mjs.map +1 -1
- package/dist/admin/pages/ListView/components/CustomOrder.js +571 -0
- package/dist/admin/pages/ListView/components/CustomOrder.js.map +1 -0
- package/dist/admin/pages/ListView/components/CustomOrder.mjs +546 -0
- package/dist/admin/pages/ListView/components/CustomOrder.mjs.map +1 -0
- package/dist/admin/pages/ListView/components/TableActions.js +4 -1
- package/dist/admin/pages/ListView/components/TableActions.js.map +1 -1
- package/dist/admin/pages/ListView/components/TableActions.mjs +4 -1
- package/dist/admin/pages/ListView/components/TableActions.mjs.map +1 -1
- package/dist/admin/services/documents.js +22 -1
- package/dist/admin/services/documents.js.map +1 -1
- package/dist/admin/services/documents.mjs +21 -2
- package/dist/admin/services/documents.mjs.map +1 -1
- package/dist/admin/src/constants/customOrder.d.ts +8 -0
- package/dist/admin/src/exports.d.ts +1 -1
- package/dist/admin/src/hooks/useDocument.d.ts +4 -0
- package/dist/admin/src/hooks/useDocumentLayout.d.ts +6 -2
- package/dist/admin/src/hooks/useHasBeenNearViewport.d.ts +13 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/Blocks/Image.d.ts +13 -1
- package/dist/admin/src/pages/EditView/components/FormLayout.d.ts +11 -1
- package/dist/admin/src/pages/ListView/components/CustomOrder.d.ts +72 -0
- package/dist/admin/src/services/documents.d.ts +10 -2
- package/dist/admin/translations/en.json.js +9 -0
- package/dist/admin/translations/en.json.js.map +1 -1
- package/dist/admin/translations/en.json.mjs +9 -0
- package/dist/admin/translations/en.json.mjs.map +1 -1
- package/dist/server/audit-logs.js +36 -0
- package/dist/server/audit-logs.js.map +1 -0
- package/dist/server/audit-logs.mjs +33 -0
- package/dist/server/audit-logs.mjs.map +1 -0
- package/dist/server/bootstrap.js +8 -0
- package/dist/server/bootstrap.js.map +1 -1
- package/dist/server/bootstrap.mjs +8 -0
- package/dist/server/bootstrap.mjs.map +1 -1
- package/dist/server/controllers/collection-types.js +8 -0
- package/dist/server/controllers/collection-types.js.map +1 -1
- package/dist/server/controllers/collection-types.mjs +8 -0
- package/dist/server/controllers/collection-types.mjs.map +1 -1
- package/dist/server/controllers/content-types.js +15 -0
- package/dist/server/controllers/content-types.js.map +1 -1
- package/dist/server/controllers/content-types.mjs +16 -1
- package/dist/server/controllers/content-types.mjs.map +1 -1
- package/dist/server/controllers/index.js +3 -1
- package/dist/server/controllers/index.js.map +1 -1
- package/dist/server/controllers/index.mjs +2 -0
- package/dist/server/controllers/index.mjs.map +1 -1
- package/dist/server/controllers/relations.js +5 -1
- package/dist/server/controllers/relations.js.map +1 -1
- package/dist/server/controllers/relations.mjs +5 -1
- package/dist/server/controllers/relations.mjs.map +1 -1
- package/dist/server/controllers/single-types.js +10 -1
- package/dist/server/controllers/single-types.js.map +1 -1
- package/dist/server/controllers/single-types.mjs +10 -1
- package/dist/server/controllers/single-types.mjs.map +1 -1
- package/dist/server/controllers/validation/model-configuration.js +2 -1
- package/dist/server/controllers/validation/model-configuration.js.map +1 -1
- package/dist/server/controllers/validation/model-configuration.mjs +2 -1
- package/dist/server/controllers/validation/model-configuration.mjs.map +1 -1
- package/dist/server/custom-order/constants.js +21 -0
- package/dist/server/custom-order/constants.js.map +1 -0
- package/dist/server/custom-order/constants.mjs +17 -0
- package/dist/server/custom-order/constants.mjs.map +1 -0
- package/dist/server/custom-order/controllers/custom-order.js +77 -0
- package/dist/server/custom-order/controllers/custom-order.js.map +1 -0
- package/dist/server/custom-order/controllers/custom-order.mjs +75 -0
- package/dist/server/custom-order/controllers/custom-order.mjs.map +1 -0
- package/dist/server/custom-order/controllers/index.js +10 -0
- package/dist/server/custom-order/controllers/index.js.map +1 -0
- package/dist/server/custom-order/controllers/index.mjs +8 -0
- package/dist/server/custom-order/controllers/index.mjs.map +1 -0
- package/dist/server/custom-order/index.js +71 -0
- package/dist/server/custom-order/index.js.map +1 -0
- package/dist/server/custom-order/index.mjs +69 -0
- package/dist/server/custom-order/index.mjs.map +1 -0
- package/dist/server/custom-order/routes/custom-order.js +38 -0
- package/dist/server/custom-order/routes/custom-order.js.map +1 -0
- package/dist/server/custom-order/routes/custom-order.mjs +36 -0
- package/dist/server/custom-order/routes/custom-order.mjs.map +1 -0
- package/dist/server/custom-order/routes/index.js +13 -0
- package/dist/server/custom-order/routes/index.js.map +1 -0
- package/dist/server/custom-order/routes/index.mjs +11 -0
- package/dist/server/custom-order/routes/index.mjs.map +1 -0
- package/dist/server/custom-order/services/custom-order.js +286 -0
- package/dist/server/custom-order/services/custom-order.js.map +1 -0
- package/dist/server/custom-order/services/custom-order.mjs +284 -0
- package/dist/server/custom-order/services/custom-order.mjs.map +1 -0
- package/dist/server/custom-order/services/document-middleware.js +83 -0
- package/dist/server/custom-order/services/document-middleware.js.map +1 -0
- package/dist/server/custom-order/services/document-middleware.mjs +81 -0
- package/dist/server/custom-order/services/document-middleware.mjs.map +1 -0
- package/dist/server/custom-order/services/index.js +10 -0
- package/dist/server/custom-order/services/index.js.map +1 -0
- package/dist/server/custom-order/services/index.mjs +8 -0
- package/dist/server/custom-order/services/index.mjs.map +1 -0
- package/dist/server/custom-order/services/utils.js +152 -0
- package/dist/server/custom-order/services/utils.js.map +1 -0
- package/dist/server/custom-order/services/utils.mjs +148 -0
- package/dist/server/custom-order/services/utils.mjs.map +1 -0
- package/dist/server/custom-order/utils.js +13 -0
- package/dist/server/custom-order/utils.js.map +1 -0
- package/dist/server/custom-order/utils.mjs +10 -0
- package/dist/server/custom-order/utils.mjs.map +1 -0
- package/dist/server/history/constants.js +2 -1
- package/dist/server/history/constants.js.map +1 -1
- package/dist/server/history/constants.mjs +2 -1
- package/dist/server/history/constants.mjs.map +1 -1
- package/dist/server/history/controllers/history-version.js +6 -2
- package/dist/server/history/controllers/history-version.js.map +1 -1
- package/dist/server/history/controllers/history-version.mjs +6 -2
- package/dist/server/history/controllers/history-version.mjs.map +1 -1
- package/dist/server/history/services/history.js +23 -6
- package/dist/server/history/services/history.js.map +1 -1
- package/dist/server/history/services/history.mjs +24 -7
- package/dist/server/history/services/history.mjs.map +1 -1
- package/dist/server/history/services/lifecycles.js +2 -16
- package/dist/server/history/services/lifecycles.js.map +1 -1
- package/dist/server/history/services/lifecycles.mjs +2 -16
- package/dist/server/history/services/lifecycles.mjs.map +1 -1
- package/dist/server/register.js +4 -0
- package/dist/server/register.js.map +1 -1
- package/dist/server/register.mjs +4 -0
- package/dist/server/register.mjs.map +1 -1
- package/dist/server/routes/index.js +3 -1
- package/dist/server/routes/index.js.map +1 -1
- package/dist/server/routes/index.mjs +2 -0
- package/dist/server/routes/index.mjs.map +1 -1
- package/dist/server/services/content-types.js +2 -2
- package/dist/server/services/content-types.js.map +1 -1
- package/dist/server/services/content-types.mjs +2 -2
- package/dist/server/services/content-types.mjs.map +1 -1
- package/dist/server/services/document-manager.js +13 -0
- package/dist/server/services/document-manager.js.map +1 -1
- package/dist/server/services/document-manager.mjs +14 -1
- package/dist/server/services/document-manager.mjs.map +1 -1
- package/dist/server/services/index.js +3 -1
- package/dist/server/services/index.js.map +1 -1
- package/dist/server/services/index.mjs +2 -0
- package/dist/server/services/index.mjs.map +1 -1
- package/dist/server/services/utils/configuration/settings.js +2 -1
- package/dist/server/services/utils/configuration/settings.js.map +1 -1
- package/dist/server/services/utils/configuration/settings.mjs +2 -1
- package/dist/server/services/utils/configuration/settings.mjs.map +1 -1
- package/dist/server/src/audit-logs.d.ts +40 -0
- package/dist/server/src/audit-logs.d.ts.map +1 -0
- package/dist/server/src/bootstrap.d.ts.map +1 -1
- package/dist/server/src/controllers/collection-types.d.ts +1 -1
- package/dist/server/src/controllers/collection-types.d.ts.map +1 -1
- package/dist/server/src/controllers/content-types.d.ts.map +1 -1
- package/dist/server/src/controllers/index.d.ts +21 -3
- package/dist/server/src/controllers/index.d.ts.map +1 -1
- package/dist/server/src/controllers/relations.d.ts +19 -1
- package/dist/server/src/controllers/relations.d.ts.map +1 -1
- package/dist/server/src/controllers/single-types.d.ts +1 -1
- package/dist/server/src/controllers/single-types.d.ts.map +1 -1
- package/dist/server/src/custom-order/constants.d.ts +18 -0
- package/dist/server/src/custom-order/constants.d.ts.map +1 -0
- package/dist/server/src/custom-order/controllers/custom-order.d.ts +8 -0
- package/dist/server/src/custom-order/controllers/custom-order.d.ts.map +1 -0
- package/dist/server/src/custom-order/controllers/index.d.ts +3 -0
- package/dist/server/src/custom-order/controllers/index.d.ts.map +1 -0
- package/dist/server/src/custom-order/index.d.ts +8 -0
- package/dist/server/src/custom-order/index.d.ts.map +1 -0
- package/dist/server/src/custom-order/routes/custom-order.d.ts +4 -0
- package/dist/server/src/custom-order/routes/custom-order.d.ts.map +1 -0
- package/dist/server/src/custom-order/routes/index.d.ts +10 -0
- package/dist/server/src/custom-order/routes/index.d.ts.map +1 -0
- package/dist/server/src/custom-order/services/custom-order.d.ts +43 -0
- package/dist/server/src/custom-order/services/custom-order.d.ts.map +1 -0
- package/dist/server/src/custom-order/services/document-middleware.d.ts +16 -0
- package/dist/server/src/custom-order/services/document-middleware.d.ts.map +1 -0
- package/dist/server/src/custom-order/services/index.d.ts +24 -0
- package/dist/server/src/custom-order/services/index.d.ts.map +1 -0
- package/dist/server/src/custom-order/services/utils.d.ts +34 -0
- package/dist/server/src/custom-order/services/utils.d.ts.map +1 -0
- package/dist/server/src/custom-order/utils.d.ts +6 -0
- package/dist/server/src/custom-order/utils.d.ts.map +1 -0
- package/dist/server/src/history/constants.d.ts.map +1 -1
- package/dist/server/src/history/controllers/history-version.d.ts.map +1 -1
- package/dist/server/src/history/services/history.d.ts.map +1 -1
- package/dist/server/src/history/services/lifecycles.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +22 -6
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/register.d.ts.map +1 -1
- package/dist/server/src/routes/index.d.ts.map +1 -1
- package/dist/server/src/services/content-types.d.ts +1 -3
- package/dist/server/src/services/content-types.d.ts.map +1 -1
- package/dist/server/src/services/document-manager.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +1 -3
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/server/src/services/utils/configuration/settings.d.ts.map +1 -1
- package/dist/shared/contracts/content-types.d.ts +5 -0
- package/dist/shared/contracts/content-types.d.ts.map +1 -1
- package/dist/shared/contracts/custom-order.d.ts +33 -0
- package/dist/shared/contracts/custom-order.d.ts.map +1 -0
- package/dist/shared/contracts/custom-order.js +3 -0
- package/dist/shared/contracts/custom-order.js.map +1 -0
- package/dist/shared/contracts/custom-order.mjs +2 -0
- package/dist/shared/contracts/custom-order.mjs.map +1 -0
- package/dist/shared/contracts/history-versions.d.ts +0 -1
- package/dist/shared/contracts/history-versions.d.ts.map +1 -1
- package/dist/shared/contracts/index.d.ts +1 -0
- package/dist/shared/contracts/index.d.ts.map +1 -1
- package/dist/shared/contracts/index.js +2 -0
- package/dist/shared/contracts/index.js.map +1 -1
- package/dist/shared/contracts/index.mjs +2 -0
- package/dist/shared/contracts/index.mjs.map +1 -1
- package/package.json +8 -8
|
@@ -11,6 +11,8 @@ var reactIntl = require('react-intl');
|
|
|
11
11
|
var reactRouterDom = require('react-router-dom');
|
|
12
12
|
var styledComponents = require('styled-components');
|
|
13
13
|
var InjectionZone = require('../../components/InjectionZone.js');
|
|
14
|
+
var collections = require('../../constants/collections.js');
|
|
15
|
+
var customOrder = require('../../constants/customOrder.js');
|
|
14
16
|
var hooks = require('../../constants/hooks.js');
|
|
15
17
|
var plugin = require('../../constants/plugin.js');
|
|
16
18
|
var DocumentRBAC = require('../../features/DocumentRBAC.js');
|
|
@@ -25,6 +27,7 @@ var translations = require('../../utils/translations.js');
|
|
|
25
27
|
var users = require('../../utils/users.js');
|
|
26
28
|
var DocumentStatus = require('../EditView/components/DocumentStatus.js');
|
|
27
29
|
var Actions = require('./components/BulkActions/Actions.js');
|
|
30
|
+
var CustomOrder = require('./components/CustomOrder.js');
|
|
28
31
|
var Filters = require('./components/Filters.js');
|
|
29
32
|
var TableActions = require('./components/TableActions.js');
|
|
30
33
|
var CellContent = require('./components/TableCells/CellContent.js');
|
|
@@ -63,6 +66,16 @@ const NON_LINKABLE_TYPES = new Set([
|
|
|
63
66
|
* -----------------------------------------------------------------------------------------------*/ const LayoutsHeaderCustom = styledComponents.styled(strapiAdmin.Layouts.Header)`
|
|
64
67
|
overflow-wrap: anywhere;
|
|
65
68
|
`;
|
|
69
|
+
/**
|
|
70
|
+
* When the entries of the collection type follow a custom order, that order is
|
|
71
|
+
* what the list shows unless the user sorts on a column.
|
|
72
|
+
*/ const hasCustomOrderEnabled = (collectionType, settings)=>collectionType === collections.COLLECTION_TYPES && settings.customOrder === true && customOrder.isCustomOrderFeatureEnabled();
|
|
73
|
+
const getDefaultSort = (settings, hasCustomOrder)=>{
|
|
74
|
+
if (hasCustomOrder) {
|
|
75
|
+
return customOrder.CUSTOM_ORDER_SORT;
|
|
76
|
+
}
|
|
77
|
+
return settings.defaultSortBy ? `${settings.defaultSortBy}:${settings.defaultSortOrder}` : '';
|
|
78
|
+
};
|
|
66
79
|
const ListViewPage = ()=>{
|
|
67
80
|
const { trackUsage } = strapiAdmin.useTracking();
|
|
68
81
|
const navigate = reactRouterDom.useNavigate();
|
|
@@ -178,11 +191,26 @@ const ListViewPage = ()=>{
|
|
|
178
191
|
schema?.attributes,
|
|
179
192
|
schema?.uid
|
|
180
193
|
]);
|
|
194
|
+
const hasCustomOrder = hasCustomOrderEnabled(collectionType, list.settings);
|
|
181
195
|
const [{ query }, setQuery] = strapiAdmin.useQueryParams({
|
|
182
196
|
page: '1',
|
|
183
197
|
pageSize: list.settings.pageSize.toString(),
|
|
184
|
-
sort: list.settings
|
|
198
|
+
sort: getDefaultSort(list.settings, hasCustomOrder)
|
|
185
199
|
});
|
|
200
|
+
// A sort on the custom order can be left over in the URL or in the saved view
|
|
201
|
+
// after the setting has been turned off.
|
|
202
|
+
React__namespace.useEffect(()=>{
|
|
203
|
+
if (!isLoadingLayout && !hasCustomOrder && typeof query.sort === 'string' && query.sort.startsWith(`${customOrder.CUSTOM_ORDER_FIELD}:`)) {
|
|
204
|
+
setQuery(strapiAdmin.withEncodedUserParams(query, {
|
|
205
|
+
sort: undefined
|
|
206
|
+
}), 'push', true);
|
|
207
|
+
}
|
|
208
|
+
}, [
|
|
209
|
+
hasCustomOrder,
|
|
210
|
+
isLoadingLayout,
|
|
211
|
+
query,
|
|
212
|
+
setQuery
|
|
213
|
+
]);
|
|
186
214
|
React__namespace.useEffect(()=>{
|
|
187
215
|
if (!configurationReady || !schema?.attributes || schema.uid !== model) {
|
|
188
216
|
return;
|
|
@@ -247,7 +275,7 @@ const ListViewPage = ()=>{
|
|
|
247
275
|
query,
|
|
248
276
|
setQuery
|
|
249
277
|
]);
|
|
250
|
-
const { data, error, isLoading, isFetching } = documents.useGetAllDocumentsQuery({
|
|
278
|
+
const { data, error, isLoading, isFetching, fulfilledTimeStamp } = documents.useGetAllDocumentsQuery({
|
|
251
279
|
model,
|
|
252
280
|
params
|
|
253
281
|
}, {
|
|
@@ -285,10 +313,19 @@ const ListViewPage = ()=>{
|
|
|
285
313
|
query,
|
|
286
314
|
navigate
|
|
287
315
|
]);
|
|
288
|
-
const { canCreate, isLoadingActionsRBAC } = DocumentRBAC.useDocumentRBAC('ListViewPage', ({ canCreate, isLoading })=>({
|
|
316
|
+
const { canCreate, canUpdate, isLoadingActionsRBAC } = DocumentRBAC.useDocumentRBAC('ListViewPage', ({ canCreate, canUpdate, isLoading })=>({
|
|
289
317
|
canCreate,
|
|
318
|
+
canUpdate,
|
|
290
319
|
isLoadingActionsRBAC: isLoading
|
|
291
320
|
}));
|
|
321
|
+
const customOrder$1 = CustomOrder.useCustomOrder({
|
|
322
|
+
model,
|
|
323
|
+
isAvailable: hasCustomOrder,
|
|
324
|
+
canUpdate: canUpdate === true,
|
|
325
|
+
sort: query.sort,
|
|
326
|
+
params,
|
|
327
|
+
results,
|
|
328
|
+
pagination});
|
|
292
329
|
const runHookWaterfall = strapiAdmin.useStrapiApp('ListViewPage', ({ runHookWaterfall })=>runHookWaterfall);
|
|
293
330
|
/**
|
|
294
331
|
* Run the waterfall and then inject our additional table headers.
|
|
@@ -327,10 +364,26 @@ const ListViewPage = ()=>{
|
|
|
327
364
|
sortable: !hasStatusFilter
|
|
328
365
|
});
|
|
329
366
|
}
|
|
367
|
+
if (hasCustomOrder) {
|
|
368
|
+
// Sorting on this column is how the user comes back to the custom order
|
|
369
|
+
formattedHeaders.unshift({
|
|
370
|
+
attribute: {
|
|
371
|
+
type: 'custom'
|
|
372
|
+
},
|
|
373
|
+
name: customOrder.CUSTOM_ORDER_FIELD,
|
|
374
|
+
label: formatMessage({
|
|
375
|
+
id: translations.getTranslation('containers.list.table-headers.order'),
|
|
376
|
+
defaultMessage: 'order'
|
|
377
|
+
}),
|
|
378
|
+
searchable: false,
|
|
379
|
+
sortable: true
|
|
380
|
+
});
|
|
381
|
+
}
|
|
330
382
|
return formattedHeaders;
|
|
331
383
|
}, [
|
|
332
384
|
displayedHeaders,
|
|
333
385
|
formatMessage,
|
|
386
|
+
hasCustomOrder,
|
|
334
387
|
hasStatusFilter,
|
|
335
388
|
list,
|
|
336
389
|
runHookWaterfall,
|
|
@@ -368,7 +421,7 @@ const ListViewPage = ()=>{
|
|
|
368
421
|
* Only genuinely interactive cells are skipped: relations, media, components,
|
|
369
422
|
* dynamic zones (they embed their own links/menus), plugin-formatted columns
|
|
370
423
|
* (`cellFormatter`), and the synthetic `status` column.
|
|
371
|
-
*/ const linkCandidates = tableHeaders.filter(({ name, attribute, cellFormatter })=>name !== 'status' && typeof cellFormatter !== 'function' && attribute && !NON_LINKABLE_TYPES.has(attribute.type));
|
|
424
|
+
*/ const linkCandidates = tableHeaders.filter(({ name, attribute, cellFormatter })=>name !== 'status' && name !== customOrder.CUSTOM_ORDER_FIELD && typeof cellFormatter !== 'function' && attribute && !NON_LINKABLE_TYPES.has(attribute.type));
|
|
372
425
|
// The link column for a given row: the first candidate that actually has a
|
|
373
426
|
// value (uses CellContent's own hasContent so it matches the "-" the cell
|
|
374
427
|
// would otherwise render). documentId is checked directly (its own cell).
|
|
@@ -483,141 +536,152 @@ const ListViewPage = ()=>{
|
|
|
483
536
|
direction: "column",
|
|
484
537
|
alignItems: "stretch",
|
|
485
538
|
children: [
|
|
486
|
-
/*#__PURE__*/ jsxRuntime.
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
'
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
539
|
+
/*#__PURE__*/ jsxRuntime.jsx(CustomOrder.CustomOrder.Root, {
|
|
540
|
+
state: customOrder$1,
|
|
541
|
+
children: /*#__PURE__*/ jsxRuntime.jsxs(strapiAdmin.Table.Root, {
|
|
542
|
+
rows: customOrder$1.rows,
|
|
543
|
+
headers: tableHeaders,
|
|
544
|
+
isLoading: isFetching && !customOrder$1.isMoving,
|
|
545
|
+
children: [
|
|
546
|
+
/*#__PURE__*/ jsxRuntime.jsx(TableActionsBar, {}),
|
|
547
|
+
/*#__PURE__*/ jsxRuntime.jsxs(strapiAdmin.Table.Content, {
|
|
548
|
+
children: [
|
|
549
|
+
/*#__PURE__*/ jsxRuntime.jsxs(strapiAdmin.Table.Head, {
|
|
550
|
+
children: [
|
|
551
|
+
/*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Table.HeaderCheckboxCell, {}),
|
|
552
|
+
tableHeaders.map((header)=>/*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Table.HeaderCell, {
|
|
553
|
+
...header
|
|
554
|
+
}, header.name))
|
|
555
|
+
]
|
|
556
|
+
}),
|
|
557
|
+
/*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Table.Loading, {}),
|
|
558
|
+
/*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Table.Empty, {
|
|
559
|
+
action: canCreate ? /*#__PURE__*/ jsxRuntime.jsx(CreateButton, {
|
|
560
|
+
variant: "secondary"
|
|
561
|
+
}) : null
|
|
562
|
+
}),
|
|
563
|
+
/*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Table.Body, {
|
|
564
|
+
children: customOrder$1.rows.map((row, index)=>{
|
|
565
|
+
const rowLinkField = getRowLinkField(row);
|
|
566
|
+
return /*#__PURE__*/ jsxRuntime.jsxs(CustomOrder.CustomOrder.Row, {
|
|
567
|
+
cursor: "pointer",
|
|
568
|
+
documentId: row.documentId,
|
|
569
|
+
onClick: handleRowClick(row.documentId),
|
|
570
|
+
children: [
|
|
571
|
+
/*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Table.CheckboxCell, {
|
|
572
|
+
id: row.id
|
|
573
|
+
}),
|
|
574
|
+
tableHeaders.map(({ cellFormatter, ...header })=>{
|
|
575
|
+
if (header.name === customOrder.CUSTOM_ORDER_FIELD) {
|
|
576
|
+
return /*#__PURE__*/ jsxRuntime.jsx(CustomOrder.CustomOrder.PositionCell, {
|
|
577
|
+
documentId: row.documentId,
|
|
578
|
+
position: ((pagination?.page ?? 1) - 1) * (pagination?.pageSize ?? 0) + index + 1,
|
|
579
|
+
total: pagination?.total ?? customOrder$1.rows.length
|
|
580
|
+
}, header.name);
|
|
581
|
+
}
|
|
582
|
+
if (header.name === 'status') {
|
|
583
|
+
const { status } = row;
|
|
584
|
+
return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Table.Cell, {
|
|
585
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(DocumentStatus.DocumentStatus, {
|
|
586
|
+
status: status,
|
|
587
|
+
maxWidth: 'min-content'
|
|
588
|
+
})
|
|
589
|
+
}, header.name);
|
|
590
|
+
}
|
|
591
|
+
if ([
|
|
592
|
+
'createdBy',
|
|
593
|
+
'updatedBy'
|
|
594
|
+
].includes(header.name.split('.')[0])) {
|
|
595
|
+
// Display the users full name
|
|
596
|
+
// Some entries doesn't have a user assigned as creator/updater (ex: entries created through content API)
|
|
597
|
+
// In this case, we display a dash
|
|
598
|
+
return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Table.Cell, {
|
|
599
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
|
|
600
|
+
textColor: "neutral800",
|
|
601
|
+
children: row[header.name.split('.')[0]] ? users.getDisplayName(row[header.name.split('.')[0]]) : '-'
|
|
602
|
+
})
|
|
603
|
+
}, header.name);
|
|
604
|
+
}
|
|
605
|
+
if (header.name === 'documentId') {
|
|
606
|
+
// When documentId is the primary link column, only its
|
|
607
|
+
// id text becomes the link; the copy button stays outside.
|
|
608
|
+
const isDocumentIdLink = header.name === rowLinkField && Boolean(row.documentId);
|
|
609
|
+
return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Table.Cell, {
|
|
610
|
+
children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
|
|
611
|
+
gap: 2,
|
|
612
|
+
alignItems: "center",
|
|
613
|
+
width: "100%",
|
|
614
|
+
minWidth: 0,
|
|
615
|
+
children: [
|
|
616
|
+
isDocumentIdLink ? /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
|
|
617
|
+
tag: reactRouterDom.Link,
|
|
618
|
+
to: {
|
|
619
|
+
pathname: row.documentId,
|
|
620
|
+
search: qs.stringify({
|
|
621
|
+
plugins: query.plugins
|
|
622
|
+
})
|
|
623
|
+
},
|
|
624
|
+
onClick: (e)=>e.stopPropagation(),
|
|
625
|
+
textColor: "neutral800",
|
|
626
|
+
maxWidth: "30rem",
|
|
627
|
+
ellipsis: true,
|
|
628
|
+
children: row.documentId
|
|
629
|
+
}) : /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
|
|
630
|
+
textColor: "neutral800",
|
|
631
|
+
maxWidth: "30rem",
|
|
632
|
+
ellipsis: true,
|
|
633
|
+
children: row.documentId || '-'
|
|
578
634
|
}),
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
635
|
+
row.documentId && /*#__PURE__*/ jsxRuntime.jsx(designSystem.IconButton, {
|
|
636
|
+
variant: "ghost",
|
|
637
|
+
size: "S",
|
|
638
|
+
label: formatMessage({
|
|
639
|
+
id: 'content-manager.actions.copy-documentId.label',
|
|
640
|
+
defaultMessage: 'Copy'
|
|
641
|
+
}),
|
|
642
|
+
onClick: (e)=>handleCopyDocumentId(e, row.documentId),
|
|
643
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(Icons.Duplicate, {})
|
|
644
|
+
})
|
|
645
|
+
]
|
|
646
|
+
})
|
|
647
|
+
}, header.name);
|
|
648
|
+
}
|
|
649
|
+
if (typeof cellFormatter === 'function') {
|
|
650
|
+
return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Table.Cell, {
|
|
651
|
+
children: cellFormatter(row, header, {
|
|
652
|
+
collectionType,
|
|
653
|
+
model
|
|
654
|
+
})
|
|
655
|
+
}, header.name);
|
|
656
|
+
}
|
|
587
657
|
return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Table.Cell, {
|
|
588
|
-
children:
|
|
589
|
-
|
|
590
|
-
|
|
658
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(CellContent.CellContent, {
|
|
659
|
+
content: row[header.name.split('.')[0]],
|
|
660
|
+
rowId: row.documentId,
|
|
661
|
+
...header,
|
|
662
|
+
linkTo: header.name === rowLinkField ? {
|
|
663
|
+
pathname: row.documentId,
|
|
664
|
+
search: qs.stringify({
|
|
665
|
+
plugins: query.plugins
|
|
666
|
+
})
|
|
667
|
+
} : undefined
|
|
591
668
|
})
|
|
592
669
|
}, header.name);
|
|
593
|
-
}
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
...header,
|
|
599
|
-
linkTo: header.name === rowLinkField ? {
|
|
600
|
-
pathname: row.documentId,
|
|
601
|
-
search: qs.stringify({
|
|
602
|
-
plugins: query.plugins
|
|
603
|
-
})
|
|
604
|
-
} : undefined
|
|
670
|
+
}),
|
|
671
|
+
/*#__PURE__*/ jsxRuntime.jsx(ActionsCell, {
|
|
672
|
+
onClick: (e)=>e.stopPropagation(),
|
|
673
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(TableActions.TableActions, {
|
|
674
|
+
document: row
|
|
605
675
|
})
|
|
606
|
-
}, header.name);
|
|
607
|
-
}),
|
|
608
|
-
/*#__PURE__*/ jsxRuntime.jsx(ActionsCell, {
|
|
609
|
-
onClick: (e)=>e.stopPropagation(),
|
|
610
|
-
children: /*#__PURE__*/ jsxRuntime.jsx(TableActions.TableActions, {
|
|
611
|
-
document: row
|
|
612
676
|
})
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
}
|
|
677
|
+
]
|
|
678
|
+
}, row.id);
|
|
679
|
+
})
|
|
616
680
|
})
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
681
|
+
]
|
|
682
|
+
})
|
|
683
|
+
]
|
|
684
|
+
})
|
|
621
685
|
}),
|
|
622
686
|
/*#__PURE__*/ jsxRuntime.jsxs(strapiAdmin.Pagination.Root, {
|
|
623
687
|
...pagination,
|