2020-12-18 11:24:52 +01:00
|
|
|
'use strict';
|
|
|
|
|
|
|
|
const { intersection, prop } = require('lodash/fp');
|
2021-04-29 13:51:12 +02:00
|
|
|
const { getRelationalFields } = require('@strapi/utils').relations;
|
2020-12-18 11:24:52 +01:00
|
|
|
|
2021-08-20 15:23:02 +02:00
|
|
|
module.exports = ({ strapi }) => {
|
2022-09-29 11:24:11 +03:00
|
|
|
const sendDidConfigureListView = async (contentType, configuration) => {
|
2021-08-20 15:23:02 +02:00
|
|
|
const displayedFields = prop('length', configuration.layouts.list);
|
|
|
|
const relationalFields = getRelationalFields(contentType);
|
2022-08-08 23:33:39 +02:00
|
|
|
const displayedRelationalFields = intersection(
|
|
|
|
relationalFields,
|
|
|
|
configuration.layouts.list
|
|
|
|
).length;
|
2020-12-18 11:24:52 +01:00
|
|
|
|
2021-08-20 15:23:02 +02:00
|
|
|
const data = {
|
2022-09-02 14:43:51 +03:00
|
|
|
eventProperties: { containsRelationalFields: !!displayedRelationalFields },
|
2021-08-20 15:23:02 +02:00
|
|
|
};
|
2020-12-18 11:24:52 +01:00
|
|
|
|
2022-09-02 14:43:51 +03:00
|
|
|
if (data.eventProperties.containsRelationalFields) {
|
|
|
|
Object.assign(data.eventProperties, {
|
2021-08-20 15:23:02 +02:00
|
|
|
displayedFields,
|
|
|
|
displayedRelationalFields,
|
|
|
|
});
|
|
|
|
}
|
2020-12-18 11:24:52 +01:00
|
|
|
|
2021-08-20 15:23:02 +02:00
|
|
|
try {
|
2022-09-02 14:43:51 +03:00
|
|
|
await strapi.telemetry.send('didConfigureListView', data);
|
2021-08-20 15:23:02 +02:00
|
|
|
} catch (e) {
|
|
|
|
// silence
|
|
|
|
}
|
|
|
|
};
|
2020-12-18 11:24:52 +01:00
|
|
|
|
2021-08-20 15:23:02 +02:00
|
|
|
return {
|
|
|
|
sendDidConfigureListView,
|
|
|
|
};
|
|
|
|
};
|