@atlaskit/link-datasource 1.25.0 → 1.25.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 +14 -0
- package/dist/cjs/ui/assets-modal/modal/index.js +11 -15
- package/dist/cjs/ui/assets-modal/modal/messages.js +0 -5
- package/dist/cjs/ui/common/modal/cancel-button/index.js +31 -0
- package/dist/cjs/ui/common/modal/cancel-button/messages.js +14 -0
- package/dist/cjs/ui/confluence-search-modal/modal/index.js +95 -13
- package/dist/cjs/ui/jira-issues-modal/modal/index.js +12 -15
- package/dist/cjs/ui/jira-issues-modal/modal/messages.js +0 -5
- package/dist/es2019/ui/assets-modal/modal/index.js +12 -16
- package/dist/es2019/ui/assets-modal/modal/messages.js +0 -5
- package/dist/es2019/ui/common/modal/cancel-button/index.js +25 -0
- package/dist/es2019/ui/common/modal/cancel-button/messages.js +8 -0
- package/dist/es2019/ui/confluence-search-modal/modal/index.js +96 -12
- package/dist/es2019/ui/jira-issues-modal/modal/index.js +17 -22
- package/dist/es2019/ui/jira-issues-modal/modal/messages.js +0 -5
- package/dist/esm/ui/assets-modal/modal/index.js +11 -15
- package/dist/esm/ui/assets-modal/modal/messages.js +0 -5
- package/dist/esm/ui/common/modal/cancel-button/index.js +23 -0
- package/dist/esm/ui/common/modal/cancel-button/messages.js +8 -0
- package/dist/esm/ui/confluence-search-modal/modal/index.js +94 -12
- package/dist/esm/ui/jira-issues-modal/modal/index.js +12 -15
- package/dist/esm/ui/jira-issues-modal/modal/messages.js +0 -5
- package/dist/types/analytics/generated/analytics.types.d.ts +1 -1
- package/dist/types/ui/assets-modal/modal/messages.d.ts +0 -5
- package/dist/types/ui/common/modal/cancel-button/index.d.ts +8 -0
- package/dist/types/ui/common/modal/cancel-button/messages.d.ts +7 -0
- package/dist/types/ui/confluence-search-modal/modal/index.d.ts +5 -1
- package/dist/types/ui/jira-issues-modal/modal/messages.d.ts +0 -5
- package/dist/types-ts4.5/analytics/generated/analytics.types.d.ts +1 -1
- package/dist/types-ts4.5/ui/assets-modal/modal/messages.d.ts +0 -5
- package/dist/types-ts4.5/ui/common/modal/cancel-button/index.d.ts +8 -0
- package/dist/types-ts4.5/ui/common/modal/cancel-button/messages.d.ts +7 -0
- package/dist/types-ts4.5/ui/confluence-search-modal/modal/index.d.ts +5 -1
- package/dist/types-ts4.5/ui/jira-issues-modal/modal/messages.d.ts +0 -5
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# @atlaskit/link-datasource
|
|
2
2
|
|
|
3
|
+
## 1.25.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#87128](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/87128) [`2b6b715884a0`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/2b6b715884a0) - Adds Insert button click analytics event and tests to confluence-search config modal.
|
|
8
|
+
- Updated dependencies
|
|
9
|
+
|
|
10
|
+
## 1.25.1
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- [#86770](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/86770) [`67209c8f2921`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/67209c8f2921) - Adds cancel button click analytics event and tests to confluence-search config modal.
|
|
15
|
+
- Updated dependencies
|
|
16
|
+
|
|
3
17
|
## 1.25.0
|
|
4
18
|
|
|
5
19
|
### Minor Changes
|
|
@@ -31,6 +31,7 @@ var _en = _interopRequireDefault(require("../../../i18n/en"));
|
|
|
31
31
|
var _cmdbService = require("../../../services/cmdbService.utils");
|
|
32
32
|
var _accessRequired = require("../../../ui/common/error-state/access-required");
|
|
33
33
|
var _modalLoadingError = require("../../common/error-state/modal-loading-error");
|
|
34
|
+
var _cancelButton = require("../../common/modal/cancel-button");
|
|
34
35
|
var _searchContainer = require("../search-container");
|
|
35
36
|
var _loadingState = require("../search-container/loading-state");
|
|
36
37
|
var _messages = require("./messages");
|
|
@@ -272,17 +273,6 @@ var PlainAssetsConfigModal = function PlainAssetsConfigModal(props) {
|
|
|
272
273
|
}), consumerEvent);
|
|
273
274
|
}
|
|
274
275
|
}, [aql, schemaId, workspaceId, analyticsPayload, totalCount, retrieveUrlForSmartCardRender, responseItems.length, onInsert, datasourceId, visibleColumnKeys]);
|
|
275
|
-
var onCancelClick = (0, _react.useCallback)(function (e, analyticEvent) {
|
|
276
|
-
analyticEvent.update({
|
|
277
|
-
eventType: 'ui',
|
|
278
|
-
actionSubjectId: 'cancel',
|
|
279
|
-
attributes: _objectSpread(_objectSpread({}, analyticsPayload), {}, {
|
|
280
|
-
searchCount: searchCount.current,
|
|
281
|
-
actions: Array.from(userInteractionActions.current)
|
|
282
|
-
})
|
|
283
|
-
}).fire(_analytics.EVENT_CHANNEL);
|
|
284
|
-
onCancel();
|
|
285
|
-
}, [analyticsPayload, onCancel]);
|
|
286
276
|
var handleOnSearch = (0, _react.useCallback)(function (searchAql, searchSchemaId) {
|
|
287
277
|
if (schemaId !== searchSchemaId || aql !== searchAql || status === 'rejected') {
|
|
288
278
|
searchCount.current++;
|
|
@@ -336,6 +326,12 @@ var PlainAssetsConfigModal = function PlainAssetsConfigModal(props) {
|
|
|
336
326
|
});
|
|
337
327
|
}
|
|
338
328
|
}, [errorState, workspaceId, assetsClientLoading, initialParameters === null || initialParameters === void 0 ? void 0 : initialParameters.aql, existingObjectSchema, objectSchemas, handleOnSearch, status]);
|
|
329
|
+
var getCancelButtonAnalyticsPayload = (0, _react.useCallback)(function () {
|
|
330
|
+
return _objectSpread(_objectSpread({}, analyticsPayload), {}, {
|
|
331
|
+
searchCount: searchCount.current,
|
|
332
|
+
actions: Array.from(userInteractionActions.current)
|
|
333
|
+
});
|
|
334
|
+
}, [analyticsPayload]);
|
|
339
335
|
return (0, _react2.jsx)(_intlMessagesProvider.IntlMessagesProvider, {
|
|
340
336
|
defaultMessages: _en.default,
|
|
341
337
|
loaderFn: _fetchMessagesForLocale.fetchMessagesForLocale
|
|
@@ -362,11 +358,11 @@ var PlainAssetsConfigModal = function PlainAssetsConfigModal(props) {
|
|
|
362
358
|
columns: columns,
|
|
363
359
|
defaultVisibleColumnKeys: defaultVisibleColumnKeys,
|
|
364
360
|
modalRenderInstanceId: modalRenderInstanceId
|
|
365
|
-
})), (0, _react2.jsx)(_modalDialog.ModalFooter, null, (0, _react2.jsx)(
|
|
366
|
-
|
|
367
|
-
|
|
361
|
+
})), (0, _react2.jsx)(_modalDialog.ModalFooter, null, (0, _react2.jsx)(_cancelButton.CancelButton, {
|
|
362
|
+
onCancel: onCancel,
|
|
363
|
+
getAnalyticsPayload: getCancelButtonAnalyticsPayload,
|
|
368
364
|
testId: 'asset-datasource-modal--cancel-button'
|
|
369
|
-
}
|
|
365
|
+
}), (0, _react2.jsx)(_standardButton.default, {
|
|
370
366
|
appearance: "primary",
|
|
371
367
|
onClick: onInsertPressed,
|
|
372
368
|
isDisabled: isDisabled,
|
|
@@ -6,11 +6,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.modalMessages = void 0;
|
|
7
7
|
var _reactIntlNext = require("react-intl-next");
|
|
8
8
|
var modalMessages = exports.modalMessages = (0, _reactIntlNext.defineMessages)({
|
|
9
|
-
cancelButtonText: {
|
|
10
|
-
id: 'linkDataSource.assets.configmodal.cancelButtonText',
|
|
11
|
-
description: 'Button text to close the modal with no changes being made',
|
|
12
|
-
defaultMessage: 'Cancel'
|
|
13
|
-
},
|
|
14
9
|
updateObjectsButtonText: {
|
|
15
10
|
id: 'linkDataSource.assets.configmodal.updateObjectsButtonText',
|
|
16
11
|
description: 'Button text to update the displayed content',
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.CancelButton = void 0;
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
var _react2 = require("@emotion/react");
|
|
10
|
+
var _reactIntlNext = require("react-intl-next");
|
|
11
|
+
var _standardButton = _interopRequireDefault(require("@atlaskit/button/standard-button"));
|
|
12
|
+
var _analytics = require("../../../../analytics");
|
|
13
|
+
var _messages = require("./messages");
|
|
14
|
+
/** @jsx jsx */
|
|
15
|
+
|
|
16
|
+
var CancelButton = exports.CancelButton = function CancelButton(_ref) {
|
|
17
|
+
var getAnalyticsPayload = _ref.getAnalyticsPayload,
|
|
18
|
+
onCancel = _ref.onCancel,
|
|
19
|
+
testId = _ref.testId;
|
|
20
|
+
var _useDatasourceAnalyti = (0, _analytics.useDatasourceAnalyticsEvents)(),
|
|
21
|
+
fireEvent = _useDatasourceAnalyti.fireEvent;
|
|
22
|
+
var onCancelClick = (0, _react.useCallback)(function () {
|
|
23
|
+
fireEvent('ui.button.clicked.cancel', getAnalyticsPayload());
|
|
24
|
+
onCancel();
|
|
25
|
+
}, [getAnalyticsPayload, fireEvent, onCancel]);
|
|
26
|
+
return (0, _react2.jsx)(_standardButton.default, {
|
|
27
|
+
appearance: "default",
|
|
28
|
+
onClick: onCancelClick,
|
|
29
|
+
testId: testId
|
|
30
|
+
}, (0, _react2.jsx)(_reactIntlNext.FormattedMessage, _messages.cancelButtonMessages.cancelButtonText));
|
|
31
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.cancelButtonMessages = void 0;
|
|
7
|
+
var _reactIntlNext = require("react-intl-next");
|
|
8
|
+
var cancelButtonMessages = exports.cancelButtonMessages = (0, _reactIntlNext.defineMessages)({
|
|
9
|
+
cancelButtonText: {
|
|
10
|
+
id: 'linkDataSource.configmodal.cancelButtonText',
|
|
11
|
+
description: 'Button text to close the modal with no changes being made',
|
|
12
|
+
defaultMessage: 'Cancel'
|
|
13
|
+
}
|
|
14
|
+
});
|
|
@@ -5,7 +5,7 @@ var _typeof = require("@babel/runtime/helpers/typeof");
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.ConfluenceSearchConfigModal = void 0;
|
|
8
|
+
exports.getColumnAction = exports.PlainConfluenceSearchConfigModal = exports.ConfluenceSearchConfigModal = void 0;
|
|
9
9
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
10
10
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
11
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
@@ -16,6 +16,7 @@ var _react = require("react");
|
|
|
16
16
|
var _react2 = require("@emotion/react");
|
|
17
17
|
var _reactIntlNext = require("react-intl-next");
|
|
18
18
|
var _uuid = require("uuid");
|
|
19
|
+
var _analyticsNext = require("@atlaskit/analytics-next");
|
|
19
20
|
var _standardButton = _interopRequireDefault(require("@atlaskit/button/standard-button"));
|
|
20
21
|
var _intlMessagesProvider = require("@atlaskit/intl-messages-provider");
|
|
21
22
|
var _modalDialog = _interopRequireWildcard(require("@atlaskit/modal-dialog"));
|
|
@@ -23,6 +24,9 @@ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
|
23
24
|
var _primitives = require("@atlaskit/primitives");
|
|
24
25
|
var _linkUrl = _interopRequireDefault(require("@atlaskit/smart-card/link-url"));
|
|
25
26
|
var _colors = require("@atlaskit/theme/colors");
|
|
27
|
+
var _analytics = require("../../../analytics");
|
|
28
|
+
var _constants = require("../../../analytics/constants");
|
|
29
|
+
var _types = require("../../../analytics/types");
|
|
26
30
|
var _adf = require("../../../common/utils/adf");
|
|
27
31
|
var _fetchMessagesForLocale = require("../../../common/utils/locale/fetch-messages-for-locale");
|
|
28
32
|
var _useDatasourceTableState = require("../../../hooks/useDatasourceTableState");
|
|
@@ -33,6 +37,7 @@ var _modalLoadingError = require("../../common/error-state/modal-loading-error")
|
|
|
33
37
|
var _noInstances = require("../../common/error-state/no-instances");
|
|
34
38
|
var _noResults = require("../../common/error-state/no-results");
|
|
35
39
|
var _initialStateView = require("../../common/initial-state-view");
|
|
40
|
+
var _cancelButton = require("../../common/modal/cancel-button");
|
|
36
41
|
var _contentContainer = require("../../common/modal/content-container");
|
|
37
42
|
var _siteSelector = require("../../common/modal/site-selector");
|
|
38
43
|
var _issueLikeTable = require("../../issue-like-table");
|
|
@@ -52,7 +57,20 @@ var searchCountStyles = (0, _primitives.xcss)({
|
|
|
52
57
|
flex: 1,
|
|
53
58
|
fontWeight: 600
|
|
54
59
|
});
|
|
55
|
-
|
|
60
|
+
|
|
61
|
+
// TODO: common functionality of all modals refactor in EDM-9573
|
|
62
|
+
var getColumnAction = exports.getColumnAction = function getColumnAction(oldVisibleColumnKeys, newVisibleColumnKeys) {
|
|
63
|
+
var newColumnSize = newVisibleColumnKeys.length;
|
|
64
|
+
var oldColumnSize = oldVisibleColumnKeys.length;
|
|
65
|
+
if (newColumnSize > oldColumnSize) {
|
|
66
|
+
return _types.DatasourceAction.COLUMN_ADDED;
|
|
67
|
+
} else if (newColumnSize < oldColumnSize) {
|
|
68
|
+
return _types.DatasourceAction.COLUMN_REMOVED;
|
|
69
|
+
} else {
|
|
70
|
+
return _types.DatasourceAction.COLUMN_REORDERED;
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
var PlainConfluenceSearchConfigModal = exports.PlainConfluenceSearchConfigModal = function PlainConfluenceSearchConfigModal(props) {
|
|
56
74
|
var _useRef = (0, _react.useRef)((0, _uuid.v4)()),
|
|
57
75
|
modalRenderInstanceId = _useRef.current;
|
|
58
76
|
var datasourceId = props.datasourceId,
|
|
@@ -80,6 +98,11 @@ var ConfluenceSearchConfigModal = exports.ConfluenceSearchConfigModal = function
|
|
|
80
98
|
visibleColumnKeys = _useState8[0],
|
|
81
99
|
setVisibleColumnKeys = _useState8[1];
|
|
82
100
|
|
|
101
|
+
// analytics related parameters
|
|
102
|
+
var searchCount = (0, _react.useRef)(0);
|
|
103
|
+
var userInteractionActions = (0, _react.useRef)(new Set());
|
|
104
|
+
var visibleColumnCount = (0, _react.useRef)((visibleColumnKeys === null || visibleColumnKeys === void 0 ? void 0 : visibleColumnKeys.length) || 0);
|
|
105
|
+
|
|
83
106
|
// TODO: further refactoring in EDM-9573
|
|
84
107
|
// https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/pull-requests/82725/overview?commentId=6829210
|
|
85
108
|
var parameters = (0, _react.useMemo)(function () {
|
|
@@ -106,9 +129,10 @@ var ConfluenceSearchConfigModal = exports.ConfluenceSearchConfigModal = function
|
|
|
106
129
|
columns = _useDatasourceTableSt.columns,
|
|
107
130
|
defaultVisibleColumnKeys = _useDatasourceTableSt.defaultVisibleColumnKeys,
|
|
108
131
|
loadDatasourceDetails = _useDatasourceTableSt.loadDatasourceDetails,
|
|
132
|
+
totalCount = _useDatasourceTableSt.totalCount,
|
|
109
133
|
_useDatasourceTableSt2 = _useDatasourceTableSt.extensionKey,
|
|
110
134
|
extensionKey = _useDatasourceTableSt2 === void 0 ? null : _useDatasourceTableSt2,
|
|
111
|
-
|
|
135
|
+
destinationObjectTypes = _useDatasourceTableSt.destinationObjectTypes;
|
|
112
136
|
var hasNoConfluenceSites = availableSites && availableSites.length === 0;
|
|
113
137
|
var selectedConfluenceSite = (0, _react.useMemo)(function () {
|
|
114
138
|
if (cloudId) {
|
|
@@ -170,6 +194,11 @@ var ConfluenceSearchConfigModal = exports.ConfluenceSearchConfigModal = function
|
|
|
170
194
|
}();
|
|
171
195
|
void fetchSiteDisplayNames();
|
|
172
196
|
}, []);
|
|
197
|
+
(0, _react.useEffect)(function () {
|
|
198
|
+
var newVisibleColumnKeys = !initialVisibleColumnKeys || (initialVisibleColumnKeys || []).length === 0 ? defaultVisibleColumnKeys : initialVisibleColumnKeys;
|
|
199
|
+
visibleColumnCount.current = newVisibleColumnKeys.length;
|
|
200
|
+
setVisibleColumnKeys(newVisibleColumnKeys);
|
|
201
|
+
}, [initialVisibleColumnKeys, defaultVisibleColumnKeys]);
|
|
173
202
|
var siteSelectorLabel = availableSites && availableSites.length > 1 ? _messages.confluenceSearchModalMessages.insertIssuesTitleManySites : _messages.confluenceSearchModalMessages.insertIssuesTitle;
|
|
174
203
|
var _useState9 = (0, _react.useState)(initialColumnCustomSizes),
|
|
175
204
|
_useState10 = (0, _slicedToArray2.default)(_useState9, 2),
|
|
@@ -192,6 +221,15 @@ var ConfluenceSearchConfigModal = exports.ConfluenceSearchConfigModal = function
|
|
|
192
221
|
setWrappedColumnKeys(Array.from(set));
|
|
193
222
|
}, [wrappedColumnKeys]);
|
|
194
223
|
|
|
224
|
+
// TODO: common functionality of all modals refactor in EDM-9573
|
|
225
|
+
var handleVisibleColumnKeysChange = (0, _react.useCallback)(function () {
|
|
226
|
+
var newVisibleColumnKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
227
|
+
var columnAction = getColumnAction(visibleColumnKeys || [], newVisibleColumnKeys);
|
|
228
|
+
userInteractionActions.current.add(columnAction);
|
|
229
|
+
visibleColumnCount.current = newVisibleColumnKeys.length;
|
|
230
|
+
setVisibleColumnKeys(newVisibleColumnKeys);
|
|
231
|
+
}, [visibleColumnKeys]);
|
|
232
|
+
|
|
195
233
|
// TODO: further refactoring in EDM-9573
|
|
196
234
|
// https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/pull-requests/82725/overview?commentId=6798258
|
|
197
235
|
var confluenceSearchTable = (0, _react.useMemo)(function () {
|
|
@@ -206,7 +244,7 @@ var ConfluenceSearchConfigModal = exports.ConfluenceSearchConfigModal = function
|
|
|
206
244
|
visibleColumnKeys: visibleColumnKeys || defaultVisibleColumnKeys,
|
|
207
245
|
onNextPage: onNextPage,
|
|
208
246
|
onLoadDatasourceDetails: loadDatasourceDetails,
|
|
209
|
-
onVisibleColumnKeysChange:
|
|
247
|
+
onVisibleColumnKeysChange: handleVisibleColumnKeysChange,
|
|
210
248
|
parentContainerRenderInstanceId: modalRenderInstanceId,
|
|
211
249
|
extensionKey: extensionKey,
|
|
212
250
|
columnCustomSizes: columnCustomSizes,
|
|
@@ -214,11 +252,19 @@ var ConfluenceSearchConfigModal = exports.ConfluenceSearchConfigModal = function
|
|
|
214
252
|
wrappedColumnKeys: wrappedColumnKeys,
|
|
215
253
|
onWrappedColumnChange: (0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.datasource-word_wrap') ? onWrappedColumnChange : undefined
|
|
216
254
|
}));
|
|
217
|
-
}, [status, columns, responseItems, hasNextPage, visibleColumnKeys, defaultVisibleColumnKeys, onNextPage, loadDatasourceDetails,
|
|
255
|
+
}, [status, columns, responseItems, hasNextPage, visibleColumnKeys, defaultVisibleColumnKeys, onNextPage, loadDatasourceDetails, handleVisibleColumnKeysChange, modalRenderInstanceId, extensionKey, columnCustomSizes, onColumnResize, wrappedColumnKeys, onWrappedColumnChange]);
|
|
218
256
|
var resolvedWithNoResults = status === 'resolved' && !responseItems.length;
|
|
219
257
|
var hasConfluenceSearchParams = selectedConfluenceSite && searchString;
|
|
220
258
|
var selectedConfluenceSiteUrl = selectedConfluenceSite === null || selectedConfluenceSite === void 0 ? void 0 : selectedConfluenceSite.url;
|
|
221
259
|
var confluenceSearchUrl = selectedConfluenceSiteUrl && searchString !== undefined && "".concat(selectedConfluenceSiteUrl, "/wiki/search/?text=").concat(encodeURI(searchString));
|
|
260
|
+
var analyticsPayload = (0, _react.useMemo)(function () {
|
|
261
|
+
return {
|
|
262
|
+
extensionKey: extensionKey,
|
|
263
|
+
destinationObjectTypes: destinationObjectTypes,
|
|
264
|
+
searchCount: searchCount.current,
|
|
265
|
+
actions: Array.from(userInteractionActions.current)
|
|
266
|
+
};
|
|
267
|
+
}, [destinationObjectTypes, extensionKey]);
|
|
222
268
|
var renderModalContent = (0, _react.useCallback)(function () {
|
|
223
269
|
if (status === 'rejected') {
|
|
224
270
|
return (0, _react2.jsx)(_modalLoadingError.ModalLoadingError, null);
|
|
@@ -244,10 +290,25 @@ var ConfluenceSearchConfigModal = exports.ConfluenceSearchConfigModal = function
|
|
|
244
290
|
return confluenceSearchTable;
|
|
245
291
|
}, [columns.length, selectedConfluenceSiteUrl, confluenceSearchTable, resolvedWithNoResults, status, urlBeingEdited, hasConfluenceSearchParams]);
|
|
246
292
|
var shouldShowResultsCount = !!totalCount && totalCount !== 1;
|
|
247
|
-
var onInsertPressed = (0, _react.useCallback)(function () {
|
|
293
|
+
var onInsertPressed = (0, _react.useCallback)(function (e, analyticsEvent) {
|
|
294
|
+
var _insertButtonClickedE;
|
|
248
295
|
if (!isParametersSet || !cloudId) {
|
|
249
296
|
return;
|
|
250
297
|
}
|
|
298
|
+
var insertButtonClickedEvent = analyticsEvent.update({
|
|
299
|
+
actionSubjectId: 'insert',
|
|
300
|
+
attributes: _objectSpread(_objectSpread({}, analyticsPayload), {}, {
|
|
301
|
+
totalItemCount: totalCount || 0,
|
|
302
|
+
displayedColumnCount: visibleColumnCount.current,
|
|
303
|
+
display: _types.DatasourceDisplay.DATASOURCE_TABLE,
|
|
304
|
+
searchCount: searchCount.current,
|
|
305
|
+
searchMethod: _types.DatasourceSearchMethod.DATASOURCE_SEARCH_QUERY,
|
|
306
|
+
actions: Array.from(userInteractionActions.current)
|
|
307
|
+
}),
|
|
308
|
+
eventType: 'ui'
|
|
309
|
+
});
|
|
310
|
+
var consumerEvent = (_insertButtonClickedE = insertButtonClickedEvent.clone()) !== null && _insertButtonClickedE !== void 0 ? _insertButtonClickedE : undefined;
|
|
311
|
+
insertButtonClickedEvent.fire(_analytics.EVENT_CHANNEL);
|
|
251
312
|
onInsert((0, _adf.buildDatasourceAdf)({
|
|
252
313
|
id: datasourceId,
|
|
253
314
|
parameters: _objectSpread(_objectSpread({}, parameters), {}, {
|
|
@@ -269,15 +330,25 @@ var ConfluenceSearchConfigModal = exports.ConfluenceSearchConfigModal = function
|
|
|
269
330
|
})
|
|
270
331
|
}
|
|
271
332
|
}]
|
|
272
|
-
}));
|
|
273
|
-
}, [cloudId,
|
|
333
|
+
}), consumerEvent);
|
|
334
|
+
}, [isParametersSet, cloudId, analyticsPayload, totalCount, onInsert, datasourceId, parameters, visibleColumnKeys, columnCustomSizes, wrappedColumnKeys]);
|
|
274
335
|
var onSearch = (0, _react.useCallback)(function (newSearchString) {
|
|
336
|
+
searchCount.current++;
|
|
337
|
+
userInteractionActions.current.add(_types.DatasourceAction.QUERY_UPDATED);
|
|
275
338
|
setSearchString(newSearchString);
|
|
276
339
|
reset({
|
|
277
340
|
shouldForceRequest: true
|
|
278
341
|
});
|
|
279
342
|
}, [reset]);
|
|
280
343
|
var isInsertDisabled = !isParametersSet || status === 'rejected' || status === 'unauthorized' || status === 'loading';
|
|
344
|
+
var getCancelButtonAnalyticsPayload = (0, _react.useCallback)(function () {
|
|
345
|
+
return {
|
|
346
|
+
extensionKey: extensionKey,
|
|
347
|
+
destinationObjectTypes: destinationObjectTypes,
|
|
348
|
+
searchCount: searchCount.current,
|
|
349
|
+
actions: Array.from(userInteractionActions.current)
|
|
350
|
+
};
|
|
351
|
+
}, [destinationObjectTypes, extensionKey]);
|
|
281
352
|
return (0, _react2.jsx)(_intlMessagesProvider.IntlMessagesProvider, {
|
|
282
353
|
defaultMessages: _en.default,
|
|
283
354
|
loaderFn: _fetchMessagesForLocale.fetchMessagesForLocale
|
|
@@ -319,13 +390,24 @@ var ConfluenceSearchConfigModal = exports.ConfluenceSearchConfigModal = function
|
|
|
319
390
|
values: {
|
|
320
391
|
totalCount: totalCount
|
|
321
392
|
}
|
|
322
|
-
})))), (0, _react2.jsx)(
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
393
|
+
})))), (0, _react2.jsx)(_cancelButton.CancelButton, {
|
|
394
|
+
onCancel: onCancel,
|
|
395
|
+
getAnalyticsPayload: getCancelButtonAnalyticsPayload,
|
|
396
|
+
testId: "confluence-search-modal--cancel-button"
|
|
397
|
+
}), !hasNoConfluenceSites && (0, _react2.jsx)(_standardButton.default, {
|
|
326
398
|
appearance: "primary",
|
|
327
399
|
onClick: onInsertPressed,
|
|
328
400
|
isDisabled: isInsertDisabled,
|
|
329
401
|
testId: "confluence-search-datasource-modal--insert-button"
|
|
330
402
|
}, (0, _react2.jsx)(_reactIntlNext.FormattedMessage, _messages.confluenceSearchModalMessages.insertResultsButtonText)))));
|
|
331
|
-
};
|
|
403
|
+
};
|
|
404
|
+
var analyticsContextAttributes = {
|
|
405
|
+
dataProvider: 'confluence-search'
|
|
406
|
+
};
|
|
407
|
+
var analyticsContextData = _objectSpread(_objectSpread({}, _constants.componentMetadata.configModal), {}, {
|
|
408
|
+
source: 'datasourceConfigModal'
|
|
409
|
+
});
|
|
410
|
+
var contextData = _objectSpread(_objectSpread({}, analyticsContextData), {}, {
|
|
411
|
+
attributes: _objectSpread({}, analyticsContextAttributes)
|
|
412
|
+
});
|
|
413
|
+
var ConfluenceSearchConfigModal = exports.ConfluenceSearchConfigModal = (0, _analyticsNext.withAnalyticsContext)(contextData)(PlainConfluenceSearchConfigModal);
|
|
@@ -42,6 +42,7 @@ var _noInstances = require("../../common/error-state/no-instances");
|
|
|
42
42
|
var _noResults = require("../../common/error-state/no-results");
|
|
43
43
|
var _initialStateView = require("../../common/initial-state-view");
|
|
44
44
|
var _messages2 = require("../../common/initial-state-view/messages");
|
|
45
|
+
var _cancelButton = require("../../common/modal/cancel-button");
|
|
45
46
|
var _contentContainer = require("../../common/modal/content-container");
|
|
46
47
|
var _siteSelector = require("../../common/modal/site-selector");
|
|
47
48
|
var _issueLikeTable = require("../../issue-like-table");
|
|
@@ -335,17 +336,6 @@ var PlainJiraIssuesConfigModal = exports.PlainJiraIssuesConfigModal = function P
|
|
|
335
336
|
shouldForceRequest: true
|
|
336
337
|
});
|
|
337
338
|
}, [jql, reset]);
|
|
338
|
-
var onCancelClick = (0, _react.useCallback)(function (e, analyticEvent) {
|
|
339
|
-
analyticEvent.update({
|
|
340
|
-
eventType: 'ui',
|
|
341
|
-
actionSubjectId: 'cancel',
|
|
342
|
-
attributes: _objectSpread(_objectSpread({}, analyticsPayload), {}, {
|
|
343
|
-
searchCount: searchCount.current,
|
|
344
|
-
actions: Array.from(userInteractionActions.current)
|
|
345
|
-
})
|
|
346
|
-
}).fire(_analytics.EVENT_CHANNEL);
|
|
347
|
-
onCancel();
|
|
348
|
-
}, [analyticsPayload, onCancel]);
|
|
349
339
|
var onSiteSelection = (0, _react.useCallback)(function (site) {
|
|
350
340
|
userInteractionActions.current.add(_types.DatasourceAction.INSTANCE_UPDATED);
|
|
351
341
|
setJql('');
|
|
@@ -547,6 +537,12 @@ var PlainJiraIssuesConfigModal = exports.PlainJiraIssuesConfigModal = function P
|
|
|
547
537
|
return issueLikeDataTableView;
|
|
548
538
|
}, [columns.length, currentSearchMethod, issueLikeDataTableView, jql, jqlUrl, resolvedWithNoResults, selectedJiraSite === null || selectedJiraSite === void 0 ? void 0 : selectedJiraSite.url, status, urlBeingEdited]);
|
|
549
539
|
var siteSelectorLabel = availableSites && availableSites.length > 1 ? _messages3.modalMessages.insertIssuesTitleManySites : _messages3.modalMessages.insertIssuesTitle;
|
|
540
|
+
var getCancelButtonAnalyticsPayload = (0, _react.useCallback)(function () {
|
|
541
|
+
return _objectSpread(_objectSpread({}, analyticsPayload), {}, {
|
|
542
|
+
searchCount: searchCount.current,
|
|
543
|
+
actions: Array.from(userInteractionActions.current)
|
|
544
|
+
});
|
|
545
|
+
}, [analyticsPayload]);
|
|
550
546
|
return (0, _react2.jsx)(_intlMessagesProvider.IntlMessagesProvider, {
|
|
551
547
|
defaultMessages: _en.default,
|
|
552
548
|
loaderFn: _fetchMessagesForLocale.fetchMessagesForLocale
|
|
@@ -593,10 +589,11 @@ var PlainJiraIssuesConfigModal = exports.PlainJiraIssuesConfigModal = function P
|
|
|
593
589
|
values: {
|
|
594
590
|
totalCount: totalCount
|
|
595
591
|
}
|
|
596
|
-
})))), (0, _react2.jsx)(
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
592
|
+
})))), (0, _react2.jsx)(_cancelButton.CancelButton, {
|
|
593
|
+
onCancel: onCancel,
|
|
594
|
+
getAnalyticsPayload: getCancelButtonAnalyticsPayload,
|
|
595
|
+
testId: "jira-datasource-modal--cancel-button"
|
|
596
|
+
}), !hasNoJiraSites && (0, _react2.jsx)(_standardButton.default, {
|
|
600
597
|
appearance: "primary",
|
|
601
598
|
onClick: onInsertPressed,
|
|
602
599
|
isDisabled: isInsertDisabled,
|
|
@@ -6,11 +6,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.modalMessages = void 0;
|
|
7
7
|
var _reactIntlNext = require("react-intl-next");
|
|
8
8
|
var modalMessages = exports.modalMessages = (0, _reactIntlNext.defineMessages)({
|
|
9
|
-
cancelButtonText: {
|
|
10
|
-
id: 'linkDataSource.jira-issues.configmodal.cancelButtonText',
|
|
11
|
-
description: 'Button text to close the modal with no changes being made',
|
|
12
|
-
defaultMessage: 'Cancel'
|
|
13
|
-
},
|
|
14
9
|
insertIssuesButtonText: {
|
|
15
10
|
id: 'linkDataSource.jira-issues.configmodal.insertIssuesButtonText',
|
|
16
11
|
description: 'Button text to insert the displayed content',
|
|
@@ -22,6 +22,7 @@ import i18nEN from '../../../i18n/en';
|
|
|
22
22
|
import { PermissionError } from '../../../services/cmdbService.utils';
|
|
23
23
|
import { AccessRequired } from '../../../ui/common/error-state/access-required';
|
|
24
24
|
import { ModalLoadingError } from '../../common/error-state/modal-loading-error';
|
|
25
|
+
import { CancelButton } from '../../common/modal/cancel-button';
|
|
25
26
|
import { AssetsSearchContainer } from '../search-container';
|
|
26
27
|
import { AssetsSearchContainerLoading } from '../search-container/loading-state';
|
|
27
28
|
import { modalMessages } from './messages';
|
|
@@ -246,18 +247,6 @@ const PlainAssetsConfigModal = props => {
|
|
|
246
247
|
}), consumerEvent);
|
|
247
248
|
}
|
|
248
249
|
}, [aql, schemaId, workspaceId, analyticsPayload, totalCount, retrieveUrlForSmartCardRender, responseItems.length, onInsert, datasourceId, visibleColumnKeys]);
|
|
249
|
-
const onCancelClick = useCallback((e, analyticEvent) => {
|
|
250
|
-
analyticEvent.update({
|
|
251
|
-
eventType: 'ui',
|
|
252
|
-
actionSubjectId: 'cancel',
|
|
253
|
-
attributes: {
|
|
254
|
-
...analyticsPayload,
|
|
255
|
-
searchCount: searchCount.current,
|
|
256
|
-
actions: Array.from(userInteractionActions.current)
|
|
257
|
-
}
|
|
258
|
-
}).fire(EVENT_CHANNEL);
|
|
259
|
-
onCancel();
|
|
260
|
-
}, [analyticsPayload, onCancel]);
|
|
261
250
|
const handleOnSearch = useCallback((searchAql, searchSchemaId) => {
|
|
262
251
|
if (schemaId !== searchSchemaId || aql !== searchAql || status === 'rejected') {
|
|
263
252
|
searchCount.current++;
|
|
@@ -311,6 +300,13 @@ const PlainAssetsConfigModal = props => {
|
|
|
311
300
|
});
|
|
312
301
|
}
|
|
313
302
|
}, [errorState, workspaceId, assetsClientLoading, initialParameters === null || initialParameters === void 0 ? void 0 : initialParameters.aql, existingObjectSchema, objectSchemas, handleOnSearch, status]);
|
|
303
|
+
const getCancelButtonAnalyticsPayload = useCallback(() => {
|
|
304
|
+
return {
|
|
305
|
+
...analyticsPayload,
|
|
306
|
+
searchCount: searchCount.current,
|
|
307
|
+
actions: Array.from(userInteractionActions.current)
|
|
308
|
+
};
|
|
309
|
+
}, [analyticsPayload]);
|
|
314
310
|
return jsx(IntlMessagesProvider, {
|
|
315
311
|
defaultMessages: i18nEN,
|
|
316
312
|
loaderFn: fetchMessagesForLocale
|
|
@@ -337,11 +333,11 @@ const PlainAssetsConfigModal = props => {
|
|
|
337
333
|
columns: columns,
|
|
338
334
|
defaultVisibleColumnKeys: defaultVisibleColumnKeys,
|
|
339
335
|
modalRenderInstanceId: modalRenderInstanceId
|
|
340
|
-
})), jsx(ModalFooter, null, jsx(
|
|
341
|
-
|
|
342
|
-
|
|
336
|
+
})), jsx(ModalFooter, null, jsx(CancelButton, {
|
|
337
|
+
onCancel: onCancel,
|
|
338
|
+
getAnalyticsPayload: getCancelButtonAnalyticsPayload,
|
|
343
339
|
testId: 'asset-datasource-modal--cancel-button'
|
|
344
|
-
}
|
|
340
|
+
}), jsx(Button, {
|
|
345
341
|
appearance: "primary",
|
|
346
342
|
onClick: onInsertPressed,
|
|
347
343
|
isDisabled: isDisabled,
|
|
@@ -1,10 +1,5 @@
|
|
|
1
1
|
import { defineMessages } from 'react-intl-next';
|
|
2
2
|
export const modalMessages = defineMessages({
|
|
3
|
-
cancelButtonText: {
|
|
4
|
-
id: 'linkDataSource.assets.configmodal.cancelButtonText',
|
|
5
|
-
description: 'Button text to close the modal with no changes being made',
|
|
6
|
-
defaultMessage: 'Cancel'
|
|
7
|
-
},
|
|
8
3
|
updateObjectsButtonText: {
|
|
9
4
|
id: 'linkDataSource.assets.configmodal.updateObjectsButtonText',
|
|
10
5
|
description: 'Button text to update the displayed content',
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
import { useCallback } from 'react';
|
|
3
|
+
import { jsx } from '@emotion/react';
|
|
4
|
+
import { FormattedMessage } from 'react-intl-next';
|
|
5
|
+
import Button from '@atlaskit/button/standard-button';
|
|
6
|
+
import { useDatasourceAnalyticsEvents } from '../../../../analytics';
|
|
7
|
+
import { cancelButtonMessages } from './messages';
|
|
8
|
+
export const CancelButton = ({
|
|
9
|
+
getAnalyticsPayload,
|
|
10
|
+
onCancel,
|
|
11
|
+
testId
|
|
12
|
+
}) => {
|
|
13
|
+
const {
|
|
14
|
+
fireEvent
|
|
15
|
+
} = useDatasourceAnalyticsEvents();
|
|
16
|
+
const onCancelClick = useCallback(() => {
|
|
17
|
+
fireEvent('ui.button.clicked.cancel', getAnalyticsPayload());
|
|
18
|
+
onCancel();
|
|
19
|
+
}, [getAnalyticsPayload, fireEvent, onCancel]);
|
|
20
|
+
return jsx(Button, {
|
|
21
|
+
appearance: "default",
|
|
22
|
+
onClick: onCancelClick,
|
|
23
|
+
testId: testId
|
|
24
|
+
}, jsx(FormattedMessage, cancelButtonMessages.cancelButtonText));
|
|
25
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { defineMessages } from 'react-intl-next';
|
|
2
|
+
export const cancelButtonMessages = defineMessages({
|
|
3
|
+
cancelButtonText: {
|
|
4
|
+
id: 'linkDataSource.configmodal.cancelButtonText',
|
|
5
|
+
description: 'Button text to close the modal with no changes being made',
|
|
6
|
+
defaultMessage: 'Cancel'
|
|
7
|
+
}
|
|
8
|
+
});
|