@atlaskit/link-datasource 1.19.0 → 1.19.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/CHANGELOG.md +13 -0
- package/dist/cjs/analytics/constants.js +1 -1
- package/dist/cjs/ui/jira-issues-modal/basic-filters/ui/index.js +2 -2
- package/dist/cjs/ui/jira-issues-modal/jira-search-container/buildJQL.js +6 -3
- package/dist/cjs/ui/jira-issues-modal/jira-search-container/index.js +9 -3
- package/dist/cjs/ui/jira-issues-modal/modal/index.js +11 -2
- package/dist/es2019/analytics/constants.js +1 -1
- package/dist/es2019/ui/jira-issues-modal/basic-filters/ui/index.js +1 -1
- package/dist/es2019/ui/jira-issues-modal/jira-search-container/buildJQL.js +4 -3
- package/dist/es2019/ui/jira-issues-modal/jira-search-container/index.js +9 -3
- package/dist/es2019/ui/jira-issues-modal/modal/index.js +18 -2
- package/dist/esm/analytics/constants.js +1 -1
- package/dist/esm/ui/jira-issues-modal/basic-filters/ui/index.js +1 -1
- package/dist/esm/ui/jira-issues-modal/jira-search-container/buildJQL.js +6 -3
- package/dist/esm/ui/jira-issues-modal/jira-search-container/index.js +9 -3
- package/dist/esm/ui/jira-issues-modal/modal/index.js +11 -2
- package/dist/types/analytics/generated/analytics.types.d.ts +5 -1
- package/dist/types/ui/jira-issues-modal/basic-filters/ui/index.d.ts +1 -0
- package/dist/types/ui/jira-issues-modal/jira-search-container/index.d.ts +5 -1
- package/dist/types-ts4.5/analytics/generated/analytics.types.d.ts +5 -1
- package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/ui/index.d.ts +1 -0
- package/dist/types-ts4.5/ui/jira-issues-modal/jira-search-container/index.d.ts +5 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @atlaskit/link-datasource
|
|
2
2
|
|
|
3
|
+
## 1.19.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#43713](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/43713) [`2fa24eb9ab7`](https://bitbucket.org/atlassian/atlassian-frontend/commits/2fa24eb9ab7) - Update JQL generation logic to create query to search for all issues when only filter values are present.
|
|
8
|
+
- Updated dependencies
|
|
9
|
+
|
|
10
|
+
## 1.19.1
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- [#43693](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/43693) [`01533fad7e6`](https://bitbucket.org/atlassian/atlassian-frontend/commits/01533fad7e6) - Add basic filter selection count to insert event.
|
|
15
|
+
|
|
3
16
|
## 1.19.0
|
|
4
17
|
|
|
5
18
|
### Minor Changes
|
|
@@ -4,11 +4,11 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.default = void 0;
|
|
7
|
+
exports.default = exports.availableBasicFilterTypes = void 0;
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
|
9
9
|
var _primitives = require("@atlaskit/primitives");
|
|
10
10
|
var _asyncPopupSelect = _interopRequireDefault(require("./async-popup-select"));
|
|
11
|
-
var availableBasicFilterTypes = ['project', 'issuetype', 'status', 'assignee'];
|
|
11
|
+
var availableBasicFilterTypes = exports.availableBasicFilterTypes = ['project', 'issuetype', 'status', 'assignee'];
|
|
12
12
|
var basicFilterContainerStyles = (0, _primitives.xcss)({
|
|
13
13
|
paddingLeft: "var(--ds-space-100, 8px)"
|
|
14
14
|
});
|
|
@@ -27,6 +27,9 @@ var buildJQL = exports.buildJQL = function buildJQL(input) {
|
|
|
27
27
|
orderKey = _input$orderKey === void 0 ? 'created' : _input$orderKey,
|
|
28
28
|
filterValues = input.filterValues;
|
|
29
29
|
var trimmedRawSearch = rawSearch.trim();
|
|
30
|
+
var hasFilterSelectionValues = filterValues && Object.values(filterValues).some(function (value) {
|
|
31
|
+
return value.length > 0;
|
|
32
|
+
});
|
|
30
33
|
if (!query) {
|
|
31
34
|
return '';
|
|
32
35
|
}
|
|
@@ -43,12 +46,12 @@ var buildJQL = exports.buildJQL = function buildJQL(input) {
|
|
|
43
46
|
var orClause = _jqlAst.creators.compoundClause(_jqlAst.creators.compoundOperator(_jqlAst.COMPOUND_OPERATOR_OR), orClauseFields);
|
|
44
47
|
query.appendClause(orClause, _jqlAst.COMPOUND_OPERATOR_AND);
|
|
45
48
|
}
|
|
46
|
-
if (
|
|
49
|
+
if (hasFilterSelectionValues) {
|
|
47
50
|
Object.entries(filterValues).forEach(function (_ref) {
|
|
48
51
|
var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
|
|
49
52
|
key = _ref2[0],
|
|
50
53
|
filterFieldValues = _ref2[1];
|
|
51
|
-
if (
|
|
54
|
+
if (filterFieldValues.length === 0) {
|
|
52
55
|
return;
|
|
53
56
|
}
|
|
54
57
|
var filterInClause = _jqlAst.creators.terminalClause(_jqlAst.creators.field(key), _jqlAst.creators.operator(_jqlAst.OPERATOR_IN), _jqlAst.creators.listOperand(filterFieldValues.map(function (filterFieldValue) {
|
|
@@ -57,7 +60,7 @@ var buildJQL = exports.buildJQL = function buildJQL(input) {
|
|
|
57
60
|
query.appendClause(filterInClause, _jqlAst.COMPOUND_OPERATOR_AND);
|
|
58
61
|
});
|
|
59
62
|
}
|
|
60
|
-
if (!trimmedRawSearch) {
|
|
63
|
+
if (!trimmedRawSearch && !hasFilterSelectionValues) {
|
|
61
64
|
var created = constructTerminalClause('created', _jqlAst.OPERATOR_GT_EQUALS, '-30d');
|
|
62
65
|
query.appendClause(created, _jqlAst.COMPOUND_OPERATOR_AND);
|
|
63
66
|
}
|
|
@@ -124,7 +124,10 @@ var JiraSearchContainer = exports.JiraSearchContainer = function JiraSearchConta
|
|
|
124
124
|
var handleSearch = (0, _react.useCallback)(function () {
|
|
125
125
|
onSearch({
|
|
126
126
|
jql: jql
|
|
127
|
-
},
|
|
127
|
+
}, {
|
|
128
|
+
searchMethod: currentSearchMethod,
|
|
129
|
+
basicFilterSelections: filterSelections
|
|
130
|
+
});
|
|
128
131
|
if (currentSearchMethod === 'basic') {
|
|
129
132
|
fireEvent('ui.form.submitted.basicSearch', {});
|
|
130
133
|
} else if (currentSearchMethod === 'jql') {
|
|
@@ -135,7 +138,7 @@ var JiraSearchContainer = exports.JiraSearchContainer = function JiraSearchConta
|
|
|
135
138
|
fetchHydratedJqlOptions();
|
|
136
139
|
}
|
|
137
140
|
}
|
|
138
|
-
}, [currentSearchMethod, fetchHydratedJqlOptions, fireEvent, jql, onSearch, showBasicFilters]);
|
|
141
|
+
}, [currentSearchMethod, fetchHydratedJqlOptions, filterSelections, fireEvent, jql, onSearch, showBasicFilters]);
|
|
139
142
|
var _useDebouncedCallback = (0, _useDebounce.useDebouncedCallback)(function (filterValues) {
|
|
140
143
|
var jqlWithFilterValues = (0, _buildJQL.buildJQL)({
|
|
141
144
|
rawSearch: basicSearchTerm,
|
|
@@ -146,7 +149,10 @@ var JiraSearchContainer = exports.JiraSearchContainer = function JiraSearchConta
|
|
|
146
149
|
setJql(jqlWithFilterValues);
|
|
147
150
|
onSearch({
|
|
148
151
|
jql: jqlWithFilterValues
|
|
149
|
-
},
|
|
152
|
+
}, {
|
|
153
|
+
searchMethod: currentSearchMethod,
|
|
154
|
+
basicFilterSelections: filterSelections
|
|
155
|
+
});
|
|
150
156
|
}, _asyncPopupSelect.SEARCH_DEBOUNCE_MS),
|
|
151
157
|
_useDebouncedCallback2 = (0, _slicedToArray2.default)(_useDebouncedCallback, 1),
|
|
152
158
|
debouncedBasicFilterSelectionChange = _useDebouncedCallback2[0];
|
|
@@ -36,6 +36,7 @@ var _noInstances = require("../../common/error-state/no-instances");
|
|
|
36
36
|
var _noResults = require("../../common/error-state/no-results");
|
|
37
37
|
var _issueLikeTable = require("../../issue-like-table");
|
|
38
38
|
var _link = _interopRequireDefault(require("../../issue-like-table/render-type/link"));
|
|
39
|
+
var _ui = require("../basic-filters/ui");
|
|
39
40
|
var _initialStateView = require("../initial-state-view");
|
|
40
41
|
var _jiraSearchContainer = require("../jira-search-container");
|
|
41
42
|
var _modeSwitcher = require("../mode-switcher");
|
|
@@ -140,6 +141,7 @@ var PlainJiraIssuesConfigModal = exports.PlainJiraIssuesConfigModal = function P
|
|
|
140
141
|
setCurrentSearchMethod = _useState12[1];
|
|
141
142
|
var searchMethodSearchedWith = (0, _react.useRef)(null);
|
|
142
143
|
var visibleColumnCount = (0, _react.useRef)((visibleColumnKeys === null || visibleColumnKeys === void 0 ? void 0 : visibleColumnKeys.length) || 0);
|
|
144
|
+
var basicFilterSelectionsSearchedWith = (0, _react.useRef)({});
|
|
143
145
|
var parameters = (0, _react.useMemo)(function () {
|
|
144
146
|
return !!cloudId ? {
|
|
145
147
|
cloudId: cloudId,
|
|
@@ -304,9 +306,12 @@ var PlainJiraIssuesConfigModal = exports.PlainJiraIssuesConfigModal = function P
|
|
|
304
306
|
}
|
|
305
307
|
}, [currentViewMode, status, fireIssueViewAnalytics, fireCountViewedEvent]);
|
|
306
308
|
(0, _useColumnPickerRenderedFailedUfoExperience.useColumnPickerRenderedFailedUfoExperience)(status, modalRenderInstanceId);
|
|
307
|
-
var onSearch = (0, _react.useCallback)(function (newParameters,
|
|
309
|
+
var onSearch = (0, _react.useCallback)(function (newParameters, _ref2) {
|
|
310
|
+
var searchMethod = _ref2.searchMethod,
|
|
311
|
+
basicFilterSelections = _ref2.basicFilterSelections;
|
|
308
312
|
searchCount.current++;
|
|
309
313
|
searchMethodSearchedWith.current = searchMethod;
|
|
314
|
+
basicFilterSelectionsSearchedWith.current = basicFilterSelections;
|
|
310
315
|
if (jql !== newParameters.jql) {
|
|
311
316
|
userInteractionActions.current.add(_types.DatasourceAction.QUERY_UPDATED);
|
|
312
317
|
}
|
|
@@ -345,6 +350,10 @@ var PlainJiraIssuesConfigModal = exports.PlainJiraIssuesConfigModal = function P
|
|
|
345
350
|
if (!isParametersSet || !jql || !selectedJiraSite) {
|
|
346
351
|
return;
|
|
347
352
|
}
|
|
353
|
+
var filterSelectionCount = _ui.availableBasicFilterTypes.reduce(function (current, filter) {
|
|
354
|
+
var _basicFilterSelection;
|
|
355
|
+
return _objectSpread(_objectSpread({}, current), {}, (0, _defineProperty2.default)({}, "".concat(filter, "BasicFilterSelectionCount"), ((_basicFilterSelection = basicFilterSelectionsSearchedWith.current[filter]) === null || _basicFilterSelection === void 0 ? void 0 : _basicFilterSelection.length) || 0));
|
|
356
|
+
}, {});
|
|
348
357
|
var insertButtonClickedEvent = analyticsEvent.update({
|
|
349
358
|
actionSubjectId: 'insert',
|
|
350
359
|
attributes: _objectSpread(_objectSpread({}, analyticsPayload), {}, {
|
|
@@ -354,7 +363,7 @@ var PlainJiraIssuesConfigModal = exports.PlainJiraIssuesConfigModal = function P
|
|
|
354
363
|
searchCount: searchCount.current,
|
|
355
364
|
searchMethod: (0, _utils.mapSearchMethod)(searchMethodSearchedWith.current),
|
|
356
365
|
actions: Array.from(userInteractionActions.current)
|
|
357
|
-
}),
|
|
366
|
+
}, searchMethodSearchedWith.current === 'basic' ? _objectSpread({}, filterSelectionCount) : {}),
|
|
358
367
|
eventType: 'ui'
|
|
359
368
|
});
|
|
360
369
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { Flex, xcss } from '@atlaskit/primitives';
|
|
3
3
|
import AsyncPopupSelect from './async-popup-select';
|
|
4
|
-
const availableBasicFilterTypes = ['project', 'issuetype', 'status', 'assignee'];
|
|
4
|
+
export const availableBasicFilterTypes = ['project', 'issuetype', 'status', 'assignee'];
|
|
5
5
|
const basicFilterContainerStyles = xcss({
|
|
6
6
|
paddingLeft: "var(--ds-space-100, 8px)"
|
|
7
7
|
});
|
|
@@ -19,6 +19,7 @@ export const buildJQL = input => {
|
|
|
19
19
|
filterValues
|
|
20
20
|
} = input;
|
|
21
21
|
const trimmedRawSearch = rawSearch.trim();
|
|
22
|
+
const hasFilterSelectionValues = filterValues && Object.values(filterValues).some(value => value.length > 0);
|
|
22
23
|
if (!query) {
|
|
23
24
|
return '';
|
|
24
25
|
}
|
|
@@ -35,16 +36,16 @@ export const buildJQL = input => {
|
|
|
35
36
|
const orClause = creators.compoundClause(creators.compoundOperator(COMPOUND_OPERATOR_OR), orClauseFields);
|
|
36
37
|
query.appendClause(orClause, COMPOUND_OPERATOR_AND);
|
|
37
38
|
}
|
|
38
|
-
if (
|
|
39
|
+
if (hasFilterSelectionValues) {
|
|
39
40
|
Object.entries(filterValues).forEach(([key, filterFieldValues]) => {
|
|
40
|
-
if (
|
|
41
|
+
if (filterFieldValues.length === 0) {
|
|
41
42
|
return;
|
|
42
43
|
}
|
|
43
44
|
const filterInClause = creators.terminalClause(creators.field(key), creators.operator(OPERATOR_IN), creators.listOperand(filterFieldValues.map(filterFieldValue => creators.valueOperand(filterFieldValue.value))));
|
|
44
45
|
query.appendClause(filterInClause, COMPOUND_OPERATOR_AND);
|
|
45
46
|
});
|
|
46
47
|
}
|
|
47
|
-
if (!trimmedRawSearch) {
|
|
48
|
+
if (!trimmedRawSearch && !hasFilterSelectionValues) {
|
|
48
49
|
const created = constructTerminalClause('created', OPERATOR_GT_EQUALS, '-30d');
|
|
49
50
|
query.appendClause(created, COMPOUND_OPERATOR_AND);
|
|
50
51
|
}
|
|
@@ -94,7 +94,10 @@ export const JiraSearchContainer = props => {
|
|
|
94
94
|
const handleSearch = useCallback(() => {
|
|
95
95
|
onSearch({
|
|
96
96
|
jql
|
|
97
|
-
},
|
|
97
|
+
}, {
|
|
98
|
+
searchMethod: currentSearchMethod,
|
|
99
|
+
basicFilterSelections: filterSelections
|
|
100
|
+
});
|
|
98
101
|
if (currentSearchMethod === 'basic') {
|
|
99
102
|
fireEvent('ui.form.submitted.basicSearch', {});
|
|
100
103
|
} else if (currentSearchMethod === 'jql') {
|
|
@@ -105,7 +108,7 @@ export const JiraSearchContainer = props => {
|
|
|
105
108
|
fetchHydratedJqlOptions();
|
|
106
109
|
}
|
|
107
110
|
}
|
|
108
|
-
}, [currentSearchMethod, fetchHydratedJqlOptions, fireEvent, jql, onSearch, showBasicFilters]);
|
|
111
|
+
}, [currentSearchMethod, fetchHydratedJqlOptions, filterSelections, fireEvent, jql, onSearch, showBasicFilters]);
|
|
109
112
|
const [debouncedBasicFilterSelectionChange] = useDebouncedCallback(filterValues => {
|
|
110
113
|
const jqlWithFilterValues = buildJQL({
|
|
111
114
|
rawSearch: basicSearchTerm,
|
|
@@ -116,7 +119,10 @@ export const JiraSearchContainer = props => {
|
|
|
116
119
|
setJql(jqlWithFilterValues);
|
|
117
120
|
onSearch({
|
|
118
121
|
jql: jqlWithFilterValues
|
|
119
|
-
},
|
|
122
|
+
}, {
|
|
123
|
+
searchMethod: currentSearchMethod,
|
|
124
|
+
basicFilterSelections: filterSelections
|
|
125
|
+
});
|
|
120
126
|
}, SEARCH_DEBOUNCE_MS);
|
|
121
127
|
const handleBasicFilterSelectionChange = useCallback(filterValues => {
|
|
122
128
|
setFilterSelections(filterValues);
|
|
@@ -24,6 +24,7 @@ import { NoInstancesView } from '../../common/error-state/no-instances';
|
|
|
24
24
|
import { NoResults } from '../../common/error-state/no-results';
|
|
25
25
|
import { EmptyState, IssueLikeDataTableView } from '../../issue-like-table';
|
|
26
26
|
import LinkRenderType from '../../issue-like-table/render-type/link';
|
|
27
|
+
import { availableBasicFilterTypes } from '../basic-filters/ui';
|
|
27
28
|
import { InitialStateView } from '../initial-state-view';
|
|
28
29
|
import { JiraSearchContainer } from '../jira-search-container';
|
|
29
30
|
import { ModeSwitcher } from '../mode-switcher';
|
|
@@ -107,6 +108,7 @@ export const PlainJiraIssuesConfigModal = props => {
|
|
|
107
108
|
const [currentSearchMethod, setCurrentSearchMethod] = useState(initialSearchMethod);
|
|
108
109
|
const searchMethodSearchedWith = useRef(null);
|
|
109
110
|
const visibleColumnCount = useRef((visibleColumnKeys === null || visibleColumnKeys === void 0 ? void 0 : visibleColumnKeys.length) || 0);
|
|
111
|
+
const basicFilterSelectionsSearchedWith = useRef({});
|
|
110
112
|
const parameters = useMemo(() => !!cloudId ? {
|
|
111
113
|
cloudId,
|
|
112
114
|
jql: jql || ''
|
|
@@ -252,9 +254,13 @@ export const PlainJiraIssuesConfigModal = props => {
|
|
|
252
254
|
}
|
|
253
255
|
}, [currentViewMode, status, fireIssueViewAnalytics, fireCountViewedEvent]);
|
|
254
256
|
useColumnPickerRenderedFailedUfoExperience(status, modalRenderInstanceId);
|
|
255
|
-
const onSearch = useCallback((newParameters,
|
|
257
|
+
const onSearch = useCallback((newParameters, {
|
|
258
|
+
searchMethod,
|
|
259
|
+
basicFilterSelections
|
|
260
|
+
}) => {
|
|
256
261
|
searchCount.current++;
|
|
257
262
|
searchMethodSearchedWith.current = searchMethod;
|
|
263
|
+
basicFilterSelectionsSearchedWith.current = basicFilterSelections;
|
|
258
264
|
if (jql !== newParameters.jql) {
|
|
259
265
|
userInteractionActions.current.add(DatasourceAction.QUERY_UPDATED);
|
|
260
266
|
}
|
|
@@ -293,6 +299,13 @@ export const PlainJiraIssuesConfigModal = props => {
|
|
|
293
299
|
if (!isParametersSet || !jql || !selectedJiraSite) {
|
|
294
300
|
return;
|
|
295
301
|
}
|
|
302
|
+
const filterSelectionCount = availableBasicFilterTypes.reduce((current, filter) => {
|
|
303
|
+
var _basicFilterSelection;
|
|
304
|
+
return {
|
|
305
|
+
...current,
|
|
306
|
+
[`${filter}BasicFilterSelectionCount`]: ((_basicFilterSelection = basicFilterSelectionsSearchedWith.current[filter]) === null || _basicFilterSelection === void 0 ? void 0 : _basicFilterSelection.length) || 0
|
|
307
|
+
};
|
|
308
|
+
}, {});
|
|
296
309
|
const insertButtonClickedEvent = analyticsEvent.update({
|
|
297
310
|
actionSubjectId: 'insert',
|
|
298
311
|
attributes: {
|
|
@@ -302,7 +315,10 @@ export const PlainJiraIssuesConfigModal = props => {
|
|
|
302
315
|
display: getDisplayValue(currentViewMode, totalCount || 0),
|
|
303
316
|
searchCount: searchCount.current,
|
|
304
317
|
searchMethod: mapSearchMethod(searchMethodSearchedWith.current),
|
|
305
|
-
actions: Array.from(userInteractionActions.current)
|
|
318
|
+
actions: Array.from(userInteractionActions.current),
|
|
319
|
+
...(searchMethodSearchedWith.current === 'basic' ? {
|
|
320
|
+
...filterSelectionCount
|
|
321
|
+
} : {})
|
|
306
322
|
},
|
|
307
323
|
eventType: 'ui'
|
|
308
324
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { Flex, xcss } from '@atlaskit/primitives';
|
|
3
3
|
import AsyncPopupSelect from './async-popup-select';
|
|
4
|
-
var availableBasicFilterTypes = ['project', 'issuetype', 'status', 'assignee'];
|
|
4
|
+
export var availableBasicFilterTypes = ['project', 'issuetype', 'status', 'assignee'];
|
|
5
5
|
var basicFilterContainerStyles = xcss({
|
|
6
6
|
paddingLeft: "var(--ds-space-100, 8px)"
|
|
7
7
|
});
|
|
@@ -20,6 +20,9 @@ export var buildJQL = function buildJQL(input) {
|
|
|
20
20
|
orderKey = _input$orderKey === void 0 ? 'created' : _input$orderKey,
|
|
21
21
|
filterValues = input.filterValues;
|
|
22
22
|
var trimmedRawSearch = rawSearch.trim();
|
|
23
|
+
var hasFilterSelectionValues = filterValues && Object.values(filterValues).some(function (value) {
|
|
24
|
+
return value.length > 0;
|
|
25
|
+
});
|
|
23
26
|
if (!query) {
|
|
24
27
|
return '';
|
|
25
28
|
}
|
|
@@ -36,12 +39,12 @@ export var buildJQL = function buildJQL(input) {
|
|
|
36
39
|
var orClause = creators.compoundClause(creators.compoundOperator(COMPOUND_OPERATOR_OR), orClauseFields);
|
|
37
40
|
query.appendClause(orClause, COMPOUND_OPERATOR_AND);
|
|
38
41
|
}
|
|
39
|
-
if (
|
|
42
|
+
if (hasFilterSelectionValues) {
|
|
40
43
|
Object.entries(filterValues).forEach(function (_ref) {
|
|
41
44
|
var _ref2 = _slicedToArray(_ref, 2),
|
|
42
45
|
key = _ref2[0],
|
|
43
46
|
filterFieldValues = _ref2[1];
|
|
44
|
-
if (
|
|
47
|
+
if (filterFieldValues.length === 0) {
|
|
45
48
|
return;
|
|
46
49
|
}
|
|
47
50
|
var filterInClause = creators.terminalClause(creators.field(key), creators.operator(OPERATOR_IN), creators.listOperand(filterFieldValues.map(function (filterFieldValue) {
|
|
@@ -50,7 +53,7 @@ export var buildJQL = function buildJQL(input) {
|
|
|
50
53
|
query.appendClause(filterInClause, COMPOUND_OPERATOR_AND);
|
|
51
54
|
});
|
|
52
55
|
}
|
|
53
|
-
if (!trimmedRawSearch) {
|
|
56
|
+
if (!trimmedRawSearch && !hasFilterSelectionValues) {
|
|
54
57
|
var created = constructTerminalClause('created', OPERATOR_GT_EQUALS, '-30d');
|
|
55
58
|
query.appendClause(created, COMPOUND_OPERATOR_AND);
|
|
56
59
|
}
|
|
@@ -115,7 +115,10 @@ export var JiraSearchContainer = function JiraSearchContainer(props) {
|
|
|
115
115
|
var handleSearch = useCallback(function () {
|
|
116
116
|
onSearch({
|
|
117
117
|
jql: jql
|
|
118
|
-
},
|
|
118
|
+
}, {
|
|
119
|
+
searchMethod: currentSearchMethod,
|
|
120
|
+
basicFilterSelections: filterSelections
|
|
121
|
+
});
|
|
119
122
|
if (currentSearchMethod === 'basic') {
|
|
120
123
|
fireEvent('ui.form.submitted.basicSearch', {});
|
|
121
124
|
} else if (currentSearchMethod === 'jql') {
|
|
@@ -126,7 +129,7 @@ export var JiraSearchContainer = function JiraSearchContainer(props) {
|
|
|
126
129
|
fetchHydratedJqlOptions();
|
|
127
130
|
}
|
|
128
131
|
}
|
|
129
|
-
}, [currentSearchMethod, fetchHydratedJqlOptions, fireEvent, jql, onSearch, showBasicFilters]);
|
|
132
|
+
}, [currentSearchMethod, fetchHydratedJqlOptions, filterSelections, fireEvent, jql, onSearch, showBasicFilters]);
|
|
130
133
|
var _useDebouncedCallback = useDebouncedCallback(function (filterValues) {
|
|
131
134
|
var jqlWithFilterValues = buildJQL({
|
|
132
135
|
rawSearch: basicSearchTerm,
|
|
@@ -137,7 +140,10 @@ export var JiraSearchContainer = function JiraSearchContainer(props) {
|
|
|
137
140
|
setJql(jqlWithFilterValues);
|
|
138
141
|
onSearch({
|
|
139
142
|
jql: jqlWithFilterValues
|
|
140
|
-
},
|
|
143
|
+
}, {
|
|
144
|
+
searchMethod: currentSearchMethod,
|
|
145
|
+
basicFilterSelections: filterSelections
|
|
146
|
+
});
|
|
141
147
|
}, SEARCH_DEBOUNCE_MS),
|
|
142
148
|
_useDebouncedCallback2 = _slicedToArray(_useDebouncedCallback, 1),
|
|
143
149
|
debouncedBasicFilterSelectionChange = _useDebouncedCallback2[0];
|
|
@@ -31,6 +31,7 @@ import { NoInstancesView } from '../../common/error-state/no-instances';
|
|
|
31
31
|
import { NoResults } from '../../common/error-state/no-results';
|
|
32
32
|
import { EmptyState, IssueLikeDataTableView } from '../../issue-like-table';
|
|
33
33
|
import LinkRenderType from '../../issue-like-table/render-type/link';
|
|
34
|
+
import { availableBasicFilterTypes } from '../basic-filters/ui';
|
|
34
35
|
import { InitialStateView } from '../initial-state-view';
|
|
35
36
|
import { JiraSearchContainer } from '../jira-search-container';
|
|
36
37
|
import { ModeSwitcher } from '../mode-switcher';
|
|
@@ -131,6 +132,7 @@ export var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(prop
|
|
|
131
132
|
setCurrentSearchMethod = _useState12[1];
|
|
132
133
|
var searchMethodSearchedWith = useRef(null);
|
|
133
134
|
var visibleColumnCount = useRef((visibleColumnKeys === null || visibleColumnKeys === void 0 ? void 0 : visibleColumnKeys.length) || 0);
|
|
135
|
+
var basicFilterSelectionsSearchedWith = useRef({});
|
|
134
136
|
var parameters = useMemo(function () {
|
|
135
137
|
return !!cloudId ? {
|
|
136
138
|
cloudId: cloudId,
|
|
@@ -295,9 +297,12 @@ export var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(prop
|
|
|
295
297
|
}
|
|
296
298
|
}, [currentViewMode, status, fireIssueViewAnalytics, fireCountViewedEvent]);
|
|
297
299
|
useColumnPickerRenderedFailedUfoExperience(status, modalRenderInstanceId);
|
|
298
|
-
var onSearch = useCallback(function (newParameters,
|
|
300
|
+
var onSearch = useCallback(function (newParameters, _ref2) {
|
|
301
|
+
var searchMethod = _ref2.searchMethod,
|
|
302
|
+
basicFilterSelections = _ref2.basicFilterSelections;
|
|
299
303
|
searchCount.current++;
|
|
300
304
|
searchMethodSearchedWith.current = searchMethod;
|
|
305
|
+
basicFilterSelectionsSearchedWith.current = basicFilterSelections;
|
|
301
306
|
if (jql !== newParameters.jql) {
|
|
302
307
|
userInteractionActions.current.add(DatasourceAction.QUERY_UPDATED);
|
|
303
308
|
}
|
|
@@ -336,6 +341,10 @@ export var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(prop
|
|
|
336
341
|
if (!isParametersSet || !jql || !selectedJiraSite) {
|
|
337
342
|
return;
|
|
338
343
|
}
|
|
344
|
+
var filterSelectionCount = availableBasicFilterTypes.reduce(function (current, filter) {
|
|
345
|
+
var _basicFilterSelection;
|
|
346
|
+
return _objectSpread(_objectSpread({}, current), {}, _defineProperty({}, "".concat(filter, "BasicFilterSelectionCount"), ((_basicFilterSelection = basicFilterSelectionsSearchedWith.current[filter]) === null || _basicFilterSelection === void 0 ? void 0 : _basicFilterSelection.length) || 0));
|
|
347
|
+
}, {});
|
|
339
348
|
var insertButtonClickedEvent = analyticsEvent.update({
|
|
340
349
|
actionSubjectId: 'insert',
|
|
341
350
|
attributes: _objectSpread(_objectSpread({}, analyticsPayload), {}, {
|
|
@@ -345,7 +354,7 @@ export var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(prop
|
|
|
345
354
|
searchCount: searchCount.current,
|
|
346
355
|
searchMethod: mapSearchMethod(searchMethodSearchedWith.current),
|
|
347
356
|
actions: Array.from(userInteractionActions.current)
|
|
348
|
-
}),
|
|
357
|
+
}, searchMethodSearchedWith.current === 'basic' ? _objectSpread({}, filterSelectionCount) : {}),
|
|
349
358
|
eventType: 'ui'
|
|
350
359
|
});
|
|
351
360
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Generates Typescript types for analytics events from analytics.spec.yaml
|
|
5
5
|
*
|
|
6
|
-
* @codegen <<SignedSource::
|
|
6
|
+
* @codegen <<SignedSource::650bd05729c6d9d8eb143f643a8c34c2>>
|
|
7
7
|
* @codegenCommand yarn workspace @atlassian/analytics-tooling run analytics:codegen link-datasource
|
|
8
8
|
*/
|
|
9
9
|
export type PackageMetaDataType = {
|
|
@@ -46,6 +46,10 @@ export type ButtonClickedCancelAttributesType = {
|
|
|
46
46
|
destinationObjectTypes: unknown[];
|
|
47
47
|
extensionKey: string | null;
|
|
48
48
|
actions: unknown[];
|
|
49
|
+
projectBasicFilterSelectionCount: number;
|
|
50
|
+
statusBasicFilterSelectionCount: number;
|
|
51
|
+
issuetypeBasicFilterSelectionCount: number;
|
|
52
|
+
assigneeBasicFilterSelectionCount: number;
|
|
49
53
|
};
|
|
50
54
|
export type LinkClickedSingleItemAttributesType = {
|
|
51
55
|
extensionKey: string | null;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import type { BasicFilterFieldType, SelectedOptionsMap, SelectOption } from '../types';
|
|
3
|
+
export declare const availableBasicFilterTypes: BasicFilterFieldType[];
|
|
3
4
|
export interface BasicFilterContainerProps {
|
|
4
5
|
cloudId: string;
|
|
5
6
|
selections: SelectedOptionsMap;
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import { jsx } from '@emotion/react';
|
|
2
2
|
import type { JiraSearchMethod } from '../../../common/types';
|
|
3
|
+
import { SelectedOptionsMap } from '../basic-filters/types';
|
|
3
4
|
import { JiraIssueDatasourceParameters, JiraIssueDatasourceParametersQuery } from '../types';
|
|
4
5
|
export declare const ALLOWED_ORDER_BY_KEYS: string[];
|
|
5
6
|
export interface SearchContainerProps {
|
|
6
7
|
isSearching?: boolean;
|
|
7
|
-
onSearch: (query: JiraIssueDatasourceParametersQuery, searchMethod
|
|
8
|
+
onSearch: (query: JiraIssueDatasourceParametersQuery, { searchMethod, basicFilterSelections, }: {
|
|
9
|
+
searchMethod: JiraSearchMethod;
|
|
10
|
+
basicFilterSelections: SelectedOptionsMap;
|
|
11
|
+
}) => void;
|
|
8
12
|
initialSearchMethod: JiraSearchMethod;
|
|
9
13
|
onSearchMethodChange: (searchMethod: JiraSearchMethod) => void;
|
|
10
14
|
parameters?: JiraIssueDatasourceParameters;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Generates Typescript types for analytics events from analytics.spec.yaml
|
|
5
5
|
*
|
|
6
|
-
* @codegen <<SignedSource::
|
|
6
|
+
* @codegen <<SignedSource::650bd05729c6d9d8eb143f643a8c34c2>>
|
|
7
7
|
* @codegenCommand yarn workspace @atlassian/analytics-tooling run analytics:codegen link-datasource
|
|
8
8
|
*/
|
|
9
9
|
export type PackageMetaDataType = {
|
|
@@ -46,6 +46,10 @@ export type ButtonClickedCancelAttributesType = {
|
|
|
46
46
|
destinationObjectTypes: unknown[];
|
|
47
47
|
extensionKey: string | null;
|
|
48
48
|
actions: unknown[];
|
|
49
|
+
projectBasicFilterSelectionCount: number;
|
|
50
|
+
statusBasicFilterSelectionCount: number;
|
|
51
|
+
issuetypeBasicFilterSelectionCount: number;
|
|
52
|
+
assigneeBasicFilterSelectionCount: number;
|
|
49
53
|
};
|
|
50
54
|
export type LinkClickedSingleItemAttributesType = {
|
|
51
55
|
extensionKey: string | null;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import type { BasicFilterFieldType, SelectedOptionsMap, SelectOption } from '../types';
|
|
3
|
+
export declare const availableBasicFilterTypes: BasicFilterFieldType[];
|
|
3
4
|
export interface BasicFilterContainerProps {
|
|
4
5
|
cloudId: string;
|
|
5
6
|
selections: SelectedOptionsMap;
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import { jsx } from '@emotion/react';
|
|
2
2
|
import type { JiraSearchMethod } from '../../../common/types';
|
|
3
|
+
import { SelectedOptionsMap } from '../basic-filters/types';
|
|
3
4
|
import { JiraIssueDatasourceParameters, JiraIssueDatasourceParametersQuery } from '../types';
|
|
4
5
|
export declare const ALLOWED_ORDER_BY_KEYS: string[];
|
|
5
6
|
export interface SearchContainerProps {
|
|
6
7
|
isSearching?: boolean;
|
|
7
|
-
onSearch: (query: JiraIssueDatasourceParametersQuery, searchMethod
|
|
8
|
+
onSearch: (query: JiraIssueDatasourceParametersQuery, { searchMethod, basicFilterSelections, }: {
|
|
9
|
+
searchMethod: JiraSearchMethod;
|
|
10
|
+
basicFilterSelections: SelectedOptionsMap;
|
|
11
|
+
}) => void;
|
|
8
12
|
initialSearchMethod: JiraSearchMethod;
|
|
9
13
|
onSearchMethodChange: (searchMethod: JiraSearchMethod) => void;
|
|
10
14
|
parameters?: JiraIssueDatasourceParameters;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/link-datasource",
|
|
3
|
-
"version": "1.19.
|
|
3
|
+
"version": "1.19.2",
|
|
4
4
|
"description": "UI Components to support linking platform dataset feature",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"@atlaskit/jql-ast": "^3.0.0",
|
|
47
47
|
"@atlaskit/jql-editor-autocomplete-rest": "^2.0.0",
|
|
48
48
|
"@atlaskit/link-client-extension": "^1.8.0",
|
|
49
|
-
"@atlaskit/linking-common": "^4.
|
|
49
|
+
"@atlaskit/linking-common": "^4.20.0",
|
|
50
50
|
"@atlaskit/linking-types": "^8.5.0",
|
|
51
51
|
"@atlaskit/lozenge": "^11.4.0",
|
|
52
52
|
"@atlaskit/modal-dialog": "^12.8.0",
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
"@atlaskit/tag": "^12.0.0",
|
|
63
63
|
"@atlaskit/textfield": "6.0.0",
|
|
64
64
|
"@atlaskit/theme": "^12.6.0",
|
|
65
|
-
"@atlaskit/tokens": "^1.
|
|
65
|
+
"@atlaskit/tokens": "^1.29.0",
|
|
66
66
|
"@atlaskit/tooltip": "^18.0.0",
|
|
67
67
|
"@atlaskit/ufo": "^0.2.4",
|
|
68
68
|
"@atlassianlabs/jql-editor": "^2.0.1",
|