|
@@ -123,67 +123,78 @@ class IssueWidgetQueries extends React.Component<Props, State> {
|
|
|
const {tableResults} = this.state;
|
|
|
GroupStore.add(tableResults);
|
|
|
const transformedTableResults: TableDataRow[] = [];
|
|
|
- tableResults.forEach(group => {
|
|
|
- const {id, shortId, title, lifetime, filtered, count, userCount, ...resultProps} =
|
|
|
- group;
|
|
|
- const transformedResultProps: Omit<TableDataRow, 'id'> = {};
|
|
|
- Object.keys(resultProps)
|
|
|
- .filter(key => ['number', 'string'].includes(typeof resultProps[key]))
|
|
|
- .forEach(key => {
|
|
|
- transformedResultProps[key] = resultProps[key];
|
|
|
- });
|
|
|
-
|
|
|
- const transformedTableResult: TableDataRow = {
|
|
|
- ...transformedResultProps,
|
|
|
- events: count,
|
|
|
- users: userCount,
|
|
|
+ tableResults.forEach(
|
|
|
+ ({
|
|
|
id,
|
|
|
- 'issue.id': id,
|
|
|
- issue: shortId,
|
|
|
+ shortId,
|
|
|
title,
|
|
|
- };
|
|
|
+ lifetime,
|
|
|
+ filtered,
|
|
|
+ count,
|
|
|
+ userCount,
|
|
|
+ project,
|
|
|
+ ...resultProps
|
|
|
+ }) => {
|
|
|
+ const transformedResultProps: Omit<TableDataRow, 'id'> = {};
|
|
|
+ Object.keys(resultProps)
|
|
|
+ .filter(key => ['number', 'string'].includes(typeof resultProps[key]))
|
|
|
+ .forEach(key => {
|
|
|
+ transformedResultProps[key] = resultProps[key];
|
|
|
+ });
|
|
|
|
|
|
- // Get lifetime stats
|
|
|
- if (lifetime) {
|
|
|
- transformedTableResult.lifetimeEvents = lifetime?.count;
|
|
|
- transformedTableResult.lifetimeUsers = lifetime?.userCount;
|
|
|
- }
|
|
|
- // Get filtered stats
|
|
|
- if (filtered) {
|
|
|
- transformedTableResult.filteredEvents = filtered?.count;
|
|
|
- transformedTableResult.filteredUsers = filtered?.userCount;
|
|
|
- }
|
|
|
+ const transformedTableResult: TableDataRow = {
|
|
|
+ ...transformedResultProps,
|
|
|
+ events: count,
|
|
|
+ users: userCount,
|
|
|
+ id,
|
|
|
+ 'issue.id': id,
|
|
|
+ issue: shortId,
|
|
|
+ title,
|
|
|
+ project: project.slug,
|
|
|
+ };
|
|
|
|
|
|
- // Discover Url properties
|
|
|
- const query = widget.queries[0].conditions;
|
|
|
- const queryTerms: string[] = [];
|
|
|
- if (typeof query === 'string') {
|
|
|
- const queryObj = queryToObj(query);
|
|
|
- for (const queryTag in queryObj) {
|
|
|
- if (!DISCOVER_EXCLUSION_FIELDS.includes(queryTag)) {
|
|
|
- const queryVal = queryObj[queryTag].includes(' ')
|
|
|
- ? `"${queryObj[queryTag]}"`
|
|
|
- : queryObj[queryTag];
|
|
|
- queryTerms.push(`${queryTag}:${queryVal}`);
|
|
|
- }
|
|
|
+ // Get lifetime stats
|
|
|
+ if (lifetime) {
|
|
|
+ transformedTableResult.lifetimeEvents = lifetime?.count;
|
|
|
+ transformedTableResult.lifetimeUsers = lifetime?.userCount;
|
|
|
+ }
|
|
|
+ // Get filtered stats
|
|
|
+ if (filtered) {
|
|
|
+ transformedTableResult.filteredEvents = filtered?.count;
|
|
|
+ transformedTableResult.filteredUsers = filtered?.userCount;
|
|
|
}
|
|
|
|
|
|
- if (queryObj.__text) {
|
|
|
- queryTerms.push(queryObj.__text);
|
|
|
+ // Discover Url properties
|
|
|
+ const query = widget.queries[0].conditions;
|
|
|
+ const queryTerms: string[] = [];
|
|
|
+ if (typeof query === 'string') {
|
|
|
+ const queryObj = queryToObj(query);
|
|
|
+ for (const queryTag in queryObj) {
|
|
|
+ if (!DISCOVER_EXCLUSION_FIELDS.includes(queryTag)) {
|
|
|
+ const queryVal = queryObj[queryTag].includes(' ')
|
|
|
+ ? `"${queryObj[queryTag]}"`
|
|
|
+ : queryObj[queryTag];
|
|
|
+ queryTerms.push(`${queryTag}:${queryVal}`);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (queryObj.__text) {
|
|
|
+ queryTerms.push(queryObj.__text);
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- transformedTableResult.discoverSearchQuery =
|
|
|
- (queryTerms.length ? ' ' : '') + queryTerms.join(' ');
|
|
|
- transformedTableResult.projectId = group.project.id;
|
|
|
+ transformedTableResult.discoverSearchQuery =
|
|
|
+ (queryTerms.length ? ' ' : '') + queryTerms.join(' ');
|
|
|
+ transformedTableResult.projectId = project.id;
|
|
|
|
|
|
- const {period, start, end} = selection.datetime || {};
|
|
|
- if (start && end) {
|
|
|
- transformedTableResult.start = getUtcDateString(start);
|
|
|
- transformedTableResult.end = getUtcDateString(end);
|
|
|
+ const {period, start, end} = selection.datetime || {};
|
|
|
+ if (start && end) {
|
|
|
+ transformedTableResult.start = getUtcDateString(start);
|
|
|
+ transformedTableResult.end = getUtcDateString(end);
|
|
|
+ }
|
|
|
+ transformedTableResult.period = period ?? '';
|
|
|
+ transformedTableResults.push(transformedTableResult);
|
|
|
}
|
|
|
- transformedTableResult.period = period ?? '';
|
|
|
- transformedTableResults.push(transformedTableResult);
|
|
|
- });
|
|
|
+ );
|
|
|
return transformedTableResults;
|
|
|
}
|
|
|
|