@atlaskit/link-datasource 1.19.41 → 1.19.42
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 +7 -0
- package/dist/cjs/ui/assets-modal/modal/index.js +2 -1
- package/dist/cjs/ui/assets-modal/modal/messages.js +5 -0
- package/dist/cjs/ui/jira-issues-modal/modal/display-view-dropdown/display-view-drop-down.js +68 -0
- package/dist/cjs/ui/jira-issues-modal/modal/index.js +19 -39
- package/dist/cjs/ui/jira-issues-modal/modal/messages.js +19 -9
- package/dist/es2019/ui/assets-modal/modal/index.js +2 -1
- package/dist/es2019/ui/assets-modal/modal/messages.js +5 -0
- package/dist/es2019/ui/jira-issues-modal/modal/display-view-dropdown/display-view-drop-down.js +55 -0
- package/dist/es2019/ui/jira-issues-modal/modal/index.js +20 -41
- package/dist/es2019/ui/jira-issues-modal/modal/messages.js +19 -9
- package/dist/esm/ui/assets-modal/modal/index.js +2 -1
- package/dist/esm/ui/assets-modal/modal/messages.js +5 -0
- package/dist/esm/ui/jira-issues-modal/modal/display-view-dropdown/display-view-drop-down.js +57 -0
- package/dist/esm/ui/jira-issues-modal/modal/index.js +20 -40
- package/dist/esm/ui/jira-issues-modal/modal/messages.js +19 -9
- package/dist/types/ui/assets-modal/modal/messages.d.ts +5 -0
- package/dist/types/ui/jira-issues-modal/modal/display-view-dropdown/display-view-drop-down.d.ts +8 -0
- package/dist/types/ui/jira-issues-modal/modal/messages.d.ts +12 -2
- package/dist/types-ts4.5/ui/assets-modal/modal/messages.d.ts +5 -0
- package/dist/types-ts4.5/ui/jira-issues-modal/modal/display-view-dropdown/display-view-drop-down.d.ts +8 -0
- package/dist/types-ts4.5/ui/jira-issues-modal/modal/messages.d.ts +12 -2
- package/package.json +3 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# @atlaskit/link-datasource
|
|
2
2
|
|
|
3
|
+
## 1.19.42
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#67168](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/67168) [`aa400684d082`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/aa400684d082) - [ux] Updating modal insert button to show 'Update table' when editing existing table
|
|
8
|
+
- [#63918](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/63918) [`ab7df781854a`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/ab7df781854a) - Updating mode switcher toggle with drop down for issue/count view
|
|
9
|
+
|
|
3
10
|
## 1.19.41
|
|
4
11
|
|
|
5
12
|
### Patch Changes
|
|
@@ -213,6 +213,7 @@ var PlainAssetsConfigModal = function PlainAssetsConfigModal(props) {
|
|
|
213
213
|
}
|
|
214
214
|
}, [defaultVisibleColumnKeys, isNewSearch]);
|
|
215
215
|
var isDisabled = !!errorState || status !== 'resolved' || assetsClientLoading || !aql || !schemaId;
|
|
216
|
+
var isEditingExistingTable = !!(initialParameters !== null && initialParameters !== void 0 && initialParameters.aql && initialParameters !== null && initialParameters !== void 0 && initialParameters.schemaId && initialParameters !== null && initialParameters !== void 0 && initialParameters.workspaceId);
|
|
216
217
|
var retrieveUrlForSmartCardRender = (0, _react.useCallback)(function () {
|
|
217
218
|
var _data$key;
|
|
218
219
|
var _responseItems = (0, _slicedToArray2.default)(responseItems, 1),
|
|
@@ -371,7 +372,7 @@ var PlainAssetsConfigModal = function PlainAssetsConfigModal(props) {
|
|
|
371
372
|
onClick: onInsertPressed,
|
|
372
373
|
isDisabled: isDisabled,
|
|
373
374
|
testId: 'assets-datasource-modal--insert-button'
|
|
374
|
-
}, (0, _react2.jsx)(_reactIntlNext.FormattedMessage, (0, _extends2.default)({}, _messages.modalMessages.insertIssuesButtonText, {
|
|
375
|
+
}, (0, _react2.jsx)(_reactIntlNext.FormattedMessage, (0, _extends2.default)({}, isEditingExistingTable ? _messages.modalMessages.updateObjectsButtonText : _messages.modalMessages.insertIssuesButtonText, {
|
|
375
376
|
values: {
|
|
376
377
|
objectsCount: responseItems.length
|
|
377
378
|
}
|
|
@@ -11,6 +11,11 @@ var modalMessages = exports.modalMessages = (0, _reactIntlNext.defineMessages)({
|
|
|
11
11
|
description: 'Button text to close the modal with no changes being made',
|
|
12
12
|
defaultMessage: 'Cancel'
|
|
13
13
|
},
|
|
14
|
+
updateObjectsButtonText: {
|
|
15
|
+
id: 'linkDataSource.assets.configmodal.updateObjectsButtonText',
|
|
16
|
+
description: 'Button text to update the displayed content',
|
|
17
|
+
defaultMessage: 'Update table'
|
|
18
|
+
},
|
|
14
19
|
insertIssuesButtonText: {
|
|
15
20
|
id: 'linkDataSource.assets.configmodal.insertIssuesButtonText',
|
|
16
21
|
description: 'Button text to insert the displayed content',
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.DisplayViewDropDown = void 0;
|
|
9
|
+
var _react = require("@emotion/react");
|
|
10
|
+
var _reactIntlNext = require("react-intl-next");
|
|
11
|
+
var _dropdownMenu = _interopRequireWildcard(require("@atlaskit/dropdown-menu"));
|
|
12
|
+
var _table = _interopRequireDefault(require("@atlaskit/icon/glyph/table"));
|
|
13
|
+
var _primitives = require("@atlaskit/primitives");
|
|
14
|
+
var _messages = require("../messages");
|
|
15
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
16
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
17
|
+
/** @jsx jsx */
|
|
18
|
+
|
|
19
|
+
var dropDownItemGroupStyles = (0, _primitives.xcss)({
|
|
20
|
+
width: '320px',
|
|
21
|
+
height: '140px',
|
|
22
|
+
paddingTop: "var(--ds-space-050, 4px)",
|
|
23
|
+
paddingBottom: "var(--ds-space-050, 4px)",
|
|
24
|
+
borderRadius: 'border.radius'
|
|
25
|
+
});
|
|
26
|
+
var InlineIcon = (0, _react.jsx)("svg", {
|
|
27
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
28
|
+
width: "24",
|
|
29
|
+
height: "24",
|
|
30
|
+
viewBox: "0 0 24 24",
|
|
31
|
+
fill: "none"
|
|
32
|
+
}, (0, _react.jsx)("path", {
|
|
33
|
+
fillRule: "evenodd",
|
|
34
|
+
clipRule: "evenodd",
|
|
35
|
+
d: "M4 9C2.89543 9 2 9.67155 2 10.5V13.5C2 14.3285 2.89543 15 4 15H20C21.1046 15 22 14.3285 22 13.5V10.5C22 9.67155 21.1046 9 20 9H4ZM4.22222 11.25C4.22222 10.5 4.22222 10.5 5 10.5H7C7.55556 10.5 7.55556 10.5 7.55556 11.25V13C7.55556 13.5 7.55556 13.5 7 13.5H5C4.22222 13.5 4.22222 13.5 4.22222 13V11.25ZM9 12C9 11.7929 9.2239 11.625 9.5 11.625H19.5C19.7761 11.625 20 11.7929 20 12C20 12.2071 19.7761 12.375 19.5 12.375H9.5C9.2239 12.375 9 12.2071 9 12Z",
|
|
36
|
+
fill: 'currentColor'
|
|
37
|
+
}));
|
|
38
|
+
var DisplayViewDropDown = exports.DisplayViewDropDown = function DisplayViewDropDown(_ref) {
|
|
39
|
+
var onViewModeChange = _ref.onViewModeChange,
|
|
40
|
+
viewMode = _ref.viewMode;
|
|
41
|
+
var _useIntl = (0, _reactIntlNext.useIntl)(),
|
|
42
|
+
formatMessage = _useIntl.formatMessage;
|
|
43
|
+
var triggerText = viewMode === 'issue' ? formatMessage(_messages.modalMessages.tableViewModeLabel) : formatMessage(_messages.modalMessages.inlineLinkViewModeLabel);
|
|
44
|
+
return (0, _react.jsx)(_dropdownMenu.default, {
|
|
45
|
+
trigger: triggerText,
|
|
46
|
+
testId: "jira-jql-datasource-modal--view-drop-down"
|
|
47
|
+
}, (0, _react.jsx)(_primitives.Box, {
|
|
48
|
+
xcss: dropDownItemGroupStyles
|
|
49
|
+
}, (0, _react.jsx)(_dropdownMenu.DropdownItemGroup, null, (0, _react.jsx)(_dropdownMenu.DropdownItem, {
|
|
50
|
+
testId: "dropdown-item-table",
|
|
51
|
+
onClick: function onClick() {
|
|
52
|
+
return onViewModeChange('issue');
|
|
53
|
+
},
|
|
54
|
+
isSelected: viewMode === 'issue',
|
|
55
|
+
description: formatMessage(_messages.modalMessages.tableViewModeDescription),
|
|
56
|
+
elemBefore: (0, _react.jsx)(_table.default, {
|
|
57
|
+
label: "table icon"
|
|
58
|
+
})
|
|
59
|
+
}, (0, _react.jsx)(_reactIntlNext.FormattedMessage, _messages.modalMessages.tableViewModeLabel)), (0, _react.jsx)(_dropdownMenu.DropdownItem, {
|
|
60
|
+
testId: "dropdown-item-inline-link",
|
|
61
|
+
onClick: function onClick() {
|
|
62
|
+
return onViewModeChange('count');
|
|
63
|
+
},
|
|
64
|
+
isSelected: viewMode === 'count',
|
|
65
|
+
description: formatMessage(_messages.modalMessages.inlineLinkViewModeDescription),
|
|
66
|
+
elemBefore: InlineIcon
|
|
67
|
+
}, (0, _react.jsx)(_reactIntlNext.FormattedMessage, _messages.modalMessages.inlineLinkViewModeLabel)))));
|
|
68
|
+
};
|
|
@@ -44,8 +44,8 @@ var _ui = require("../basic-filters/ui");
|
|
|
44
44
|
var _isQueryTooComplex = require("../basic-filters/utils/isQueryTooComplex");
|
|
45
45
|
var _initialStateView = require("../initial-state-view");
|
|
46
46
|
var _jiraSearchContainer = require("../jira-search-container");
|
|
47
|
-
var _modeSwitcher = require("../mode-switcher");
|
|
48
47
|
var _siteSelector = require("../site-selector");
|
|
48
|
+
var _displayViewDropDown = require("./display-view-dropdown/display-view-drop-down");
|
|
49
49
|
var _messages = require("./messages");
|
|
50
50
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
51
51
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -89,10 +89,10 @@ var smartLinkContainerStyles = (0, _react2.css)({
|
|
|
89
89
|
paddingLeft: '1px'
|
|
90
90
|
});
|
|
91
91
|
var getDisplayValue = function getDisplayValue(currentViewMode, itemCount) {
|
|
92
|
-
if (currentViewMode === '
|
|
93
|
-
return _types.DatasourceDisplay.
|
|
92
|
+
if (currentViewMode === 'issue') {
|
|
93
|
+
return _types.DatasourceDisplay.DATASOURCE_TABLE;
|
|
94
94
|
}
|
|
95
|
-
return itemCount
|
|
95
|
+
return itemCount === 1 ? _types.DatasourceDisplay.INLINE : _types.DatasourceDisplay.DATASOURCE_INLINE;
|
|
96
96
|
};
|
|
97
97
|
|
|
98
98
|
/**
|
|
@@ -188,8 +188,6 @@ var PlainJiraIssuesConfigModal = exports.PlainJiraIssuesConfigModal = function P
|
|
|
188
188
|
_useDatasourceTableSt2 = _useDatasourceTableSt.extensionKey,
|
|
189
189
|
extensionKey = _useDatasourceTableSt2 === void 0 ? null : _useDatasourceTableSt2,
|
|
190
190
|
destinationObjectTypes = _useDatasourceTableSt.destinationObjectTypes;
|
|
191
|
-
var _useIntl = (0, _reactIntlNext.useIntl)(),
|
|
192
|
-
formatMessage = _useIntl.formatMessage;
|
|
193
191
|
var _useDatasourceAnalyti = (0, _analytics.useDatasourceAnalyticsEvents)(),
|
|
194
192
|
fireEvent = _useDatasourceAnalyti.fireEvent;
|
|
195
193
|
var _useRef = (0, _react.useRef)((0, _uuid.v4)()),
|
|
@@ -412,18 +410,11 @@ var PlainJiraIssuesConfigModal = exports.PlainJiraIssuesConfigModal = function P
|
|
|
412
410
|
var firstIssueUrl = retrieveUrlForSmartCardRender();
|
|
413
411
|
if (currentViewMode === 'count') {
|
|
414
412
|
macroInsertedEvent === null || macroInsertedEvent === void 0 || macroInsertedEvent.fire(_analytics.EVENT_CHANNEL);
|
|
413
|
+
var url = responseItems.length === 1 ? firstIssueUrl : upToDateJqlUrl;
|
|
415
414
|
onInsert({
|
|
416
415
|
type: 'inlineCard',
|
|
417
416
|
attrs: {
|
|
418
|
-
url:
|
|
419
|
-
}
|
|
420
|
-
}, consumerEvent);
|
|
421
|
-
} else if (responseItems.length === 1 && firstIssueUrl) {
|
|
422
|
-
macroInsertedEvent === null || macroInsertedEvent === void 0 || macroInsertedEvent.fire(_analytics.EVENT_CHANNEL);
|
|
423
|
-
onInsert({
|
|
424
|
-
type: 'inlineCard',
|
|
425
|
-
attrs: {
|
|
426
|
-
url: firstIssueUrl
|
|
417
|
+
url: url
|
|
427
418
|
}
|
|
428
419
|
}, consumerEvent);
|
|
429
420
|
} else {
|
|
@@ -453,7 +444,7 @@ var PlainJiraIssuesConfigModal = exports.PlainJiraIssuesConfigModal = function P
|
|
|
453
444
|
}
|
|
454
445
|
}, consumerEvent);
|
|
455
446
|
}
|
|
456
|
-
}, [isParametersSet, jql, selectedJiraSite, analyticsPayload, totalCount, visibleColumnKeys, currentViewMode, retrieveUrlForSmartCardRender,
|
|
447
|
+
}, [isParametersSet, jql, selectedJiraSite, analyticsPayload, totalCount, visibleColumnKeys, currentViewMode, retrieveUrlForSmartCardRender, onInsert, datasourceId, cloudId, columnCustomSizes, searchBarJql, responseItems]);
|
|
457
448
|
var handleViewModeChange = function handleViewModeChange(selectedMode) {
|
|
458
449
|
userInteractionActions.current.add(_types.DatasourceAction.DISPLAY_VIEW_CHANGED);
|
|
459
450
|
setCurrentViewMode(selectedMode);
|
|
@@ -503,14 +494,19 @@ var PlainJiraIssuesConfigModal = exports.PlainJiraIssuesConfigModal = function P
|
|
|
503
494
|
css: placeholderSmartLinkStyles
|
|
504
495
|
}, (0, _react2.jsx)(_reactIntlNext.FormattedMessage, _messages.modalMessages.issuesCountSmartCardPlaceholderText)));
|
|
505
496
|
} else {
|
|
506
|
-
var
|
|
497
|
+
var url;
|
|
498
|
+
if (responseItems.length === 1 && retrieveUrlForSmartCardRender()) {
|
|
499
|
+
url = retrieveUrlForSmartCardRender();
|
|
500
|
+
} else {
|
|
501
|
+
url = "".concat(selectedJiraSiteUrl, "/issues/?jql=").concat(encodeURI(jql));
|
|
502
|
+
}
|
|
507
503
|
return (0, _react2.jsx)("div", {
|
|
508
504
|
css: smartLinkContainerStyles
|
|
509
505
|
}, (0, _react2.jsx)(_link.default, {
|
|
510
|
-
url:
|
|
506
|
+
url: url
|
|
511
507
|
}));
|
|
512
508
|
}
|
|
513
|
-
}, [jql, selectedJiraSite === null || selectedJiraSite === void 0 ? void 0 : selectedJiraSite.url, status, urlBeingEdited]);
|
|
509
|
+
}, [jql, selectedJiraSite === null || selectedJiraSite === void 0 ? void 0 : selectedJiraSite.url, status, urlBeingEdited, responseItems, retrieveUrlForSmartCardRender]);
|
|
514
510
|
var renderIssuesModeContent = (0, _react.useCallback)(function () {
|
|
515
511
|
var selectedJiraSiteUrl = selectedJiraSite === null || selectedJiraSite === void 0 ? void 0 : selectedJiraSite.url;
|
|
516
512
|
if (status === 'rejected' && jqlUrl) {
|
|
@@ -533,16 +529,8 @@ var PlainJiraIssuesConfigModal = exports.PlainJiraIssuesConfigModal = function P
|
|
|
533
529
|
searchMethod: currentSearchMethod
|
|
534
530
|
}));
|
|
535
531
|
}
|
|
536
|
-
var firstIssueUrl = retrieveUrlForSmartCardRender();
|
|
537
|
-
if (responseItems.length === 1 && firstIssueUrl) {
|
|
538
|
-
return (0, _react2.jsx)("div", {
|
|
539
|
-
css: smartLinkContainerStyles
|
|
540
|
-
}, (0, _react2.jsx)(_link.default, {
|
|
541
|
-
url: firstIssueUrl
|
|
542
|
-
}));
|
|
543
|
-
}
|
|
544
532
|
return issueLikeDataTableView;
|
|
545
|
-
}, [columns.length, currentSearchMethod, issueLikeDataTableView, jql, jqlUrl, resolvedWithNoResults,
|
|
533
|
+
}, [columns.length, currentSearchMethod, issueLikeDataTableView, jql, jqlUrl, resolvedWithNoResults, selectedJiraSite === null || selectedJiraSite === void 0 ? void 0 : selectedJiraSite.url, status, urlBeingEdited]);
|
|
546
534
|
return (0, _react2.jsx)(_intlMessagesProvider.IntlMessagesProvider, {
|
|
547
535
|
defaultMessages: _en.default,
|
|
548
536
|
loaderFn: _fetchMessagesForLocale.fetchMessagesForLocale
|
|
@@ -558,17 +546,9 @@ var PlainJiraIssuesConfigModal = exports.PlainJiraIssuesConfigModal = function P
|
|
|
558
546
|
onSiteSelection: onSiteSelection,
|
|
559
547
|
selectedJiraSite: selectedJiraSite,
|
|
560
548
|
testId: "jira-jql-datasource-modal--site-selector"
|
|
561
|
-
})) : (0, _react2.jsx)(_reactIntlNext.FormattedMessage, _messages.modalMessages.insertIssuesTitle))), !hasNoJiraSites && (0, _react2.jsx)(
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
label: formatMessage(_messages.modalMessages.issueViewModeLabel),
|
|
565
|
-
value: 'issue'
|
|
566
|
-
}, {
|
|
567
|
-
label: formatMessage(_messages.modalMessages.countViewModeLabel),
|
|
568
|
-
value: 'count'
|
|
569
|
-
}],
|
|
570
|
-
onOptionValueChange: handleViewModeChange,
|
|
571
|
-
selectedOptionValue: currentViewMode
|
|
549
|
+
})) : (0, _react2.jsx)(_reactIntlNext.FormattedMessage, _messages.modalMessages.insertIssuesTitle))), !hasNoJiraSites && (0, _react2.jsx)(_displayViewDropDown.DisplayViewDropDown, {
|
|
550
|
+
onViewModeChange: handleViewModeChange,
|
|
551
|
+
viewMode: currentViewMode
|
|
572
552
|
})), (0, _react2.jsx)(_modalDialog.ModalBody, null, !hasNoJiraSites ? (0, _react2.jsx)(_react.Fragment, null, (0, _react2.jsx)(_jiraSearchContainer.JiraSearchContainer, {
|
|
573
553
|
setSearchBarJql: setSearchBarJql,
|
|
574
554
|
searchBarJql: searchBarJql,
|
|
@@ -26,15 +26,25 @@ var modalMessages = exports.modalMessages = (0, _reactIntlNext.defineMessages)({
|
|
|
26
26
|
description: 'Title for the Jira Issues modal when a user has to select a site to inserting issues from',
|
|
27
27
|
defaultMessage: 'Insert Jira issues from'
|
|
28
28
|
},
|
|
29
|
-
|
|
30
|
-
id: 'linkDataSource.jira-issues.configmodal.
|
|
31
|
-
description: '
|
|
32
|
-
defaultMessage: '
|
|
33
|
-
},
|
|
34
|
-
|
|
35
|
-
id: 'linkDataSource.jira-issues.configmodal.
|
|
36
|
-
description: '
|
|
37
|
-
defaultMessage: '
|
|
29
|
+
tableViewModeLabel: {
|
|
30
|
+
id: 'linkDataSource.jira-issues.configmodal.tableViewModeLabel',
|
|
31
|
+
description: 'Display Jira search results as a table',
|
|
32
|
+
defaultMessage: 'Table'
|
|
33
|
+
},
|
|
34
|
+
tableViewModeDescription: {
|
|
35
|
+
id: 'linkDataSource.jira-issues.configmodal.tableViewModeDescription',
|
|
36
|
+
description: 'Description for table view mode',
|
|
37
|
+
defaultMessage: 'Display Jira search results as a table'
|
|
38
|
+
},
|
|
39
|
+
inlineLinkViewModeLabel: {
|
|
40
|
+
id: 'linkDataSource.jira-issues.configmodal.inlineLinkViewModeLabel',
|
|
41
|
+
description: 'Display the number of search results as an inline smart link',
|
|
42
|
+
defaultMessage: 'Inline link'
|
|
43
|
+
},
|
|
44
|
+
inlineLinkViewModeDescription: {
|
|
45
|
+
id: 'linkDataSource.jira-issues.configmodal.inlineLinkViewModeDescription',
|
|
46
|
+
description: 'Description for inline link view mode',
|
|
47
|
+
defaultMessage: 'Display the number of search results or as an inline smart link'
|
|
38
48
|
},
|
|
39
49
|
issuesCountSmartCardPlaceholderText: {
|
|
40
50
|
id: 'linkDataSource.jira-issues.configmodal.placeholder.issues',
|
|
@@ -189,6 +189,7 @@ const PlainAssetsConfigModal = props => {
|
|
|
189
189
|
}
|
|
190
190
|
}, [defaultVisibleColumnKeys, isNewSearch]);
|
|
191
191
|
const isDisabled = !!errorState || status !== 'resolved' || assetsClientLoading || !aql || !schemaId;
|
|
192
|
+
const isEditingExistingTable = !!(initialParameters !== null && initialParameters !== void 0 && initialParameters.aql && initialParameters !== null && initialParameters !== void 0 && initialParameters.schemaId && initialParameters !== null && initialParameters !== void 0 && initialParameters.workspaceId);
|
|
192
193
|
const retrieveUrlForSmartCardRender = useCallback(() => {
|
|
193
194
|
var _data$key, _data$key$data;
|
|
194
195
|
const [data] = responseItems;
|
|
@@ -346,7 +347,7 @@ const PlainAssetsConfigModal = props => {
|
|
|
346
347
|
onClick: onInsertPressed,
|
|
347
348
|
isDisabled: isDisabled,
|
|
348
349
|
testId: 'assets-datasource-modal--insert-button'
|
|
349
|
-
}, jsx(FormattedMessage, _extends({}, modalMessages.insertIssuesButtonText, {
|
|
350
|
+
}, jsx(FormattedMessage, _extends({}, isEditingExistingTable ? modalMessages.updateObjectsButtonText : modalMessages.insertIssuesButtonText, {
|
|
350
351
|
values: {
|
|
351
352
|
objectsCount: responseItems.length
|
|
352
353
|
}
|
|
@@ -5,6 +5,11 @@ export const modalMessages = defineMessages({
|
|
|
5
5
|
description: 'Button text to close the modal with no changes being made',
|
|
6
6
|
defaultMessage: 'Cancel'
|
|
7
7
|
},
|
|
8
|
+
updateObjectsButtonText: {
|
|
9
|
+
id: 'linkDataSource.assets.configmodal.updateObjectsButtonText',
|
|
10
|
+
description: 'Button text to update the displayed content',
|
|
11
|
+
defaultMessage: 'Update table'
|
|
12
|
+
},
|
|
8
13
|
insertIssuesButtonText: {
|
|
9
14
|
id: 'linkDataSource.assets.configmodal.insertIssuesButtonText',
|
|
10
15
|
description: 'Button text to insert the displayed content',
|
package/dist/es2019/ui/jira-issues-modal/modal/display-view-dropdown/display-view-drop-down.js
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
import { jsx } from '@emotion/react';
|
|
3
|
+
import { FormattedMessage, useIntl } from 'react-intl-next';
|
|
4
|
+
import DropdownMenu, { DropdownItem, DropdownItemGroup } from '@atlaskit/dropdown-menu';
|
|
5
|
+
import TableIcon from '@atlaskit/icon/glyph/table';
|
|
6
|
+
import { Box, xcss } from '@atlaskit/primitives';
|
|
7
|
+
import { modalMessages } from '../messages';
|
|
8
|
+
const dropDownItemGroupStyles = xcss({
|
|
9
|
+
width: '320px',
|
|
10
|
+
height: '140px',
|
|
11
|
+
paddingTop: "var(--ds-space-050, 4px)",
|
|
12
|
+
paddingBottom: "var(--ds-space-050, 4px)",
|
|
13
|
+
borderRadius: 'border.radius'
|
|
14
|
+
});
|
|
15
|
+
const InlineIcon = jsx("svg", {
|
|
16
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
17
|
+
width: "24",
|
|
18
|
+
height: "24",
|
|
19
|
+
viewBox: "0 0 24 24",
|
|
20
|
+
fill: "none"
|
|
21
|
+
}, jsx("path", {
|
|
22
|
+
fillRule: "evenodd",
|
|
23
|
+
clipRule: "evenodd",
|
|
24
|
+
d: "M4 9C2.89543 9 2 9.67155 2 10.5V13.5C2 14.3285 2.89543 15 4 15H20C21.1046 15 22 14.3285 22 13.5V10.5C22 9.67155 21.1046 9 20 9H4ZM4.22222 11.25C4.22222 10.5 4.22222 10.5 5 10.5H7C7.55556 10.5 7.55556 10.5 7.55556 11.25V13C7.55556 13.5 7.55556 13.5 7 13.5H5C4.22222 13.5 4.22222 13.5 4.22222 13V11.25ZM9 12C9 11.7929 9.2239 11.625 9.5 11.625H19.5C19.7761 11.625 20 11.7929 20 12C20 12.2071 19.7761 12.375 19.5 12.375H9.5C9.2239 12.375 9 12.2071 9 12Z",
|
|
25
|
+
fill: 'currentColor'
|
|
26
|
+
}));
|
|
27
|
+
export const DisplayViewDropDown = ({
|
|
28
|
+
onViewModeChange,
|
|
29
|
+
viewMode
|
|
30
|
+
}) => {
|
|
31
|
+
const {
|
|
32
|
+
formatMessage
|
|
33
|
+
} = useIntl();
|
|
34
|
+
const triggerText = viewMode === 'issue' ? formatMessage(modalMessages.tableViewModeLabel) : formatMessage(modalMessages.inlineLinkViewModeLabel);
|
|
35
|
+
return jsx(DropdownMenu, {
|
|
36
|
+
trigger: triggerText,
|
|
37
|
+
testId: "jira-jql-datasource-modal--view-drop-down"
|
|
38
|
+
}, jsx(Box, {
|
|
39
|
+
xcss: dropDownItemGroupStyles
|
|
40
|
+
}, jsx(DropdownItemGroup, null, jsx(DropdownItem, {
|
|
41
|
+
testId: "dropdown-item-table",
|
|
42
|
+
onClick: () => onViewModeChange('issue'),
|
|
43
|
+
isSelected: viewMode === 'issue',
|
|
44
|
+
description: formatMessage(modalMessages.tableViewModeDescription),
|
|
45
|
+
elemBefore: jsx(TableIcon, {
|
|
46
|
+
label: "table icon"
|
|
47
|
+
})
|
|
48
|
+
}, jsx(FormattedMessage, modalMessages.tableViewModeLabel)), jsx(DropdownItem, {
|
|
49
|
+
testId: "dropdown-item-inline-link",
|
|
50
|
+
onClick: () => onViewModeChange('count'),
|
|
51
|
+
isSelected: viewMode === 'count',
|
|
52
|
+
description: formatMessage(modalMessages.inlineLinkViewModeDescription),
|
|
53
|
+
elemBefore: InlineIcon
|
|
54
|
+
}, jsx(FormattedMessage, modalMessages.inlineLinkViewModeLabel)))));
|
|
55
|
+
};
|
|
@@ -2,7 +2,7 @@ import _extends from "@babel/runtime/helpers/extends";
|
|
|
2
2
|
/** @jsx jsx */
|
|
3
3
|
import { Fragment, useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
4
4
|
import { css, jsx } from '@emotion/react';
|
|
5
|
-
import { FormattedMessage, FormattedNumber
|
|
5
|
+
import { FormattedMessage, FormattedNumber } from 'react-intl-next';
|
|
6
6
|
import { v4 as uuidv4 } from 'uuid';
|
|
7
7
|
import { withAnalyticsContext } from '@atlaskit/analytics-next';
|
|
8
8
|
import Button from '@atlaskit/button/standard-button';
|
|
@@ -32,8 +32,8 @@ import { availableBasicFilterTypes } from '../basic-filters/ui';
|
|
|
32
32
|
import { isQueryTooComplex } from '../basic-filters/utils/isQueryTooComplex';
|
|
33
33
|
import { InitialStateView } from '../initial-state-view';
|
|
34
34
|
import { JiraSearchContainer } from '../jira-search-container';
|
|
35
|
-
import { ModeSwitcher } from '../mode-switcher';
|
|
36
35
|
import { JiraSiteSelector } from '../site-selector';
|
|
36
|
+
import { DisplayViewDropDown } from './display-view-dropdown/display-view-drop-down';
|
|
37
37
|
import { modalMessages } from './messages';
|
|
38
38
|
const dropdownContainerStyles = css({
|
|
39
39
|
display: 'flex',
|
|
@@ -73,10 +73,10 @@ const smartLinkContainerStyles = css({
|
|
|
73
73
|
paddingLeft: '1px'
|
|
74
74
|
});
|
|
75
75
|
const getDisplayValue = (currentViewMode, itemCount) => {
|
|
76
|
-
if (currentViewMode === '
|
|
77
|
-
return DatasourceDisplay.
|
|
76
|
+
if (currentViewMode === 'issue') {
|
|
77
|
+
return DatasourceDisplay.DATASOURCE_TABLE;
|
|
78
78
|
}
|
|
79
|
-
return itemCount
|
|
79
|
+
return itemCount === 1 ? DatasourceDisplay.INLINE : DatasourceDisplay.DATASOURCE_INLINE;
|
|
80
80
|
};
|
|
81
81
|
|
|
82
82
|
/**
|
|
@@ -150,9 +150,6 @@ export const PlainJiraIssuesConfigModal = props => {
|
|
|
150
150
|
parameters: isParametersSet ? parameters : undefined,
|
|
151
151
|
fieldKeys: visibleColumnKeys
|
|
152
152
|
});
|
|
153
|
-
const {
|
|
154
|
-
formatMessage
|
|
155
|
-
} = useIntl();
|
|
156
153
|
const {
|
|
157
154
|
fireEvent
|
|
158
155
|
} = useDatasourceAnalyticsEvents();
|
|
@@ -366,18 +363,11 @@ export const PlainJiraIssuesConfigModal = props => {
|
|
|
366
363
|
const firstIssueUrl = retrieveUrlForSmartCardRender();
|
|
367
364
|
if (currentViewMode === 'count') {
|
|
368
365
|
macroInsertedEvent === null || macroInsertedEvent === void 0 ? void 0 : macroInsertedEvent.fire(EVENT_CHANNEL);
|
|
366
|
+
const url = responseItems.length === 1 ? firstIssueUrl : upToDateJqlUrl;
|
|
369
367
|
onInsert({
|
|
370
368
|
type: 'inlineCard',
|
|
371
369
|
attrs: {
|
|
372
|
-
url
|
|
373
|
-
}
|
|
374
|
-
}, consumerEvent);
|
|
375
|
-
} else if (responseItems.length === 1 && firstIssueUrl) {
|
|
376
|
-
macroInsertedEvent === null || macroInsertedEvent === void 0 ? void 0 : macroInsertedEvent.fire(EVENT_CHANNEL);
|
|
377
|
-
onInsert({
|
|
378
|
-
type: 'inlineCard',
|
|
379
|
-
attrs: {
|
|
380
|
-
url: firstIssueUrl
|
|
370
|
+
url
|
|
381
371
|
}
|
|
382
372
|
}, consumerEvent);
|
|
383
373
|
} else {
|
|
@@ -405,7 +395,7 @@ export const PlainJiraIssuesConfigModal = props => {
|
|
|
405
395
|
}
|
|
406
396
|
}, consumerEvent);
|
|
407
397
|
}
|
|
408
|
-
}, [isParametersSet, jql, selectedJiraSite, analyticsPayload, totalCount, visibleColumnKeys, currentViewMode, retrieveUrlForSmartCardRender,
|
|
398
|
+
}, [isParametersSet, jql, selectedJiraSite, analyticsPayload, totalCount, visibleColumnKeys, currentViewMode, retrieveUrlForSmartCardRender, onInsert, datasourceId, cloudId, columnCustomSizes, searchBarJql, responseItems]);
|
|
409
399
|
const handleViewModeChange = selectedMode => {
|
|
410
400
|
userInteractionActions.current.add(DatasourceAction.DISPLAY_VIEW_CHANGED);
|
|
411
401
|
setCurrentViewMode(selectedMode);
|
|
@@ -451,14 +441,19 @@ export const PlainJiraIssuesConfigModal = props => {
|
|
|
451
441
|
css: placeholderSmartLinkStyles
|
|
452
442
|
}, jsx(FormattedMessage, modalMessages.issuesCountSmartCardPlaceholderText)));
|
|
453
443
|
} else {
|
|
454
|
-
|
|
444
|
+
let url;
|
|
445
|
+
if (responseItems.length === 1 && retrieveUrlForSmartCardRender()) {
|
|
446
|
+
url = retrieveUrlForSmartCardRender();
|
|
447
|
+
} else {
|
|
448
|
+
url = `${selectedJiraSiteUrl}/issues/?jql=${encodeURI(jql)}`;
|
|
449
|
+
}
|
|
455
450
|
return jsx("div", {
|
|
456
451
|
css: smartLinkContainerStyles
|
|
457
452
|
}, jsx(LinkRenderType, {
|
|
458
|
-
url:
|
|
453
|
+
url: url
|
|
459
454
|
}));
|
|
460
455
|
}
|
|
461
|
-
}, [jql, selectedJiraSite === null || selectedJiraSite === void 0 ? void 0 : selectedJiraSite.url, status, urlBeingEdited]);
|
|
456
|
+
}, [jql, selectedJiraSite === null || selectedJiraSite === void 0 ? void 0 : selectedJiraSite.url, status, urlBeingEdited, responseItems, retrieveUrlForSmartCardRender]);
|
|
462
457
|
const renderIssuesModeContent = useCallback(() => {
|
|
463
458
|
const selectedJiraSiteUrl = selectedJiraSite === null || selectedJiraSite === void 0 ? void 0 : selectedJiraSite.url;
|
|
464
459
|
if (status === 'rejected' && jqlUrl) {
|
|
@@ -481,16 +476,8 @@ export const PlainJiraIssuesConfigModal = props => {
|
|
|
481
476
|
searchMethod: currentSearchMethod
|
|
482
477
|
}));
|
|
483
478
|
}
|
|
484
|
-
const firstIssueUrl = retrieveUrlForSmartCardRender();
|
|
485
|
-
if (responseItems.length === 1 && firstIssueUrl) {
|
|
486
|
-
return jsx("div", {
|
|
487
|
-
css: smartLinkContainerStyles
|
|
488
|
-
}, jsx(LinkRenderType, {
|
|
489
|
-
url: firstIssueUrl
|
|
490
|
-
}));
|
|
491
|
-
}
|
|
492
479
|
return issueLikeDataTableView;
|
|
493
|
-
}, [columns.length, currentSearchMethod, issueLikeDataTableView, jql, jqlUrl, resolvedWithNoResults,
|
|
480
|
+
}, [columns.length, currentSearchMethod, issueLikeDataTableView, jql, jqlUrl, resolvedWithNoResults, selectedJiraSite === null || selectedJiraSite === void 0 ? void 0 : selectedJiraSite.url, status, urlBeingEdited]);
|
|
494
481
|
return jsx(IntlMessagesProvider, {
|
|
495
482
|
defaultMessages: i18nEN,
|
|
496
483
|
loaderFn: fetchMessagesForLocale
|
|
@@ -506,17 +493,9 @@ export const PlainJiraIssuesConfigModal = props => {
|
|
|
506
493
|
onSiteSelection: onSiteSelection,
|
|
507
494
|
selectedJiraSite: selectedJiraSite,
|
|
508
495
|
testId: "jira-jql-datasource-modal--site-selector"
|
|
509
|
-
})) : jsx(FormattedMessage, modalMessages.insertIssuesTitle))), !hasNoJiraSites && jsx(
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
label: formatMessage(modalMessages.issueViewModeLabel),
|
|
513
|
-
value: 'issue'
|
|
514
|
-
}, {
|
|
515
|
-
label: formatMessage(modalMessages.countViewModeLabel),
|
|
516
|
-
value: 'count'
|
|
517
|
-
}],
|
|
518
|
-
onOptionValueChange: handleViewModeChange,
|
|
519
|
-
selectedOptionValue: currentViewMode
|
|
496
|
+
})) : jsx(FormattedMessage, modalMessages.insertIssuesTitle))), !hasNoJiraSites && jsx(DisplayViewDropDown, {
|
|
497
|
+
onViewModeChange: handleViewModeChange,
|
|
498
|
+
viewMode: currentViewMode
|
|
520
499
|
})), jsx(ModalBody, null, !hasNoJiraSites ? jsx(Fragment, null, jsx(JiraSearchContainer, {
|
|
521
500
|
setSearchBarJql: setSearchBarJql,
|
|
522
501
|
searchBarJql: searchBarJql,
|
|
@@ -20,15 +20,25 @@ export const modalMessages = defineMessages({
|
|
|
20
20
|
description: 'Title for the Jira Issues modal when a user has to select a site to inserting issues from',
|
|
21
21
|
defaultMessage: 'Insert Jira issues from'
|
|
22
22
|
},
|
|
23
|
-
|
|
24
|
-
id: 'linkDataSource.jira-issues.configmodal.
|
|
25
|
-
description: '
|
|
26
|
-
defaultMessage: '
|
|
27
|
-
},
|
|
28
|
-
|
|
29
|
-
id: 'linkDataSource.jira-issues.configmodal.
|
|
30
|
-
description: '
|
|
31
|
-
defaultMessage: '
|
|
23
|
+
tableViewModeLabel: {
|
|
24
|
+
id: 'linkDataSource.jira-issues.configmodal.tableViewModeLabel',
|
|
25
|
+
description: 'Display Jira search results as a table',
|
|
26
|
+
defaultMessage: 'Table'
|
|
27
|
+
},
|
|
28
|
+
tableViewModeDescription: {
|
|
29
|
+
id: 'linkDataSource.jira-issues.configmodal.tableViewModeDescription',
|
|
30
|
+
description: 'Description for table view mode',
|
|
31
|
+
defaultMessage: 'Display Jira search results as a table'
|
|
32
|
+
},
|
|
33
|
+
inlineLinkViewModeLabel: {
|
|
34
|
+
id: 'linkDataSource.jira-issues.configmodal.inlineLinkViewModeLabel',
|
|
35
|
+
description: 'Display the number of search results as an inline smart link',
|
|
36
|
+
defaultMessage: 'Inline link'
|
|
37
|
+
},
|
|
38
|
+
inlineLinkViewModeDescription: {
|
|
39
|
+
id: 'linkDataSource.jira-issues.configmodal.inlineLinkViewModeDescription',
|
|
40
|
+
description: 'Description for inline link view mode',
|
|
41
|
+
defaultMessage: 'Display the number of search results or as an inline smart link'
|
|
32
42
|
},
|
|
33
43
|
issuesCountSmartCardPlaceholderText: {
|
|
34
44
|
id: 'linkDataSource.jira-issues.configmodal.placeholder.issues',
|
|
@@ -204,6 +204,7 @@ var PlainAssetsConfigModal = function PlainAssetsConfigModal(props) {
|
|
|
204
204
|
}
|
|
205
205
|
}, [defaultVisibleColumnKeys, isNewSearch]);
|
|
206
206
|
var isDisabled = !!errorState || status !== 'resolved' || assetsClientLoading || !aql || !schemaId;
|
|
207
|
+
var isEditingExistingTable = !!(initialParameters !== null && initialParameters !== void 0 && initialParameters.aql && initialParameters !== null && initialParameters !== void 0 && initialParameters.schemaId && initialParameters !== null && initialParameters !== void 0 && initialParameters.workspaceId);
|
|
207
208
|
var retrieveUrlForSmartCardRender = useCallback(function () {
|
|
208
209
|
var _data$key;
|
|
209
210
|
var _responseItems = _slicedToArray(responseItems, 1),
|
|
@@ -362,7 +363,7 @@ var PlainAssetsConfigModal = function PlainAssetsConfigModal(props) {
|
|
|
362
363
|
onClick: onInsertPressed,
|
|
363
364
|
isDisabled: isDisabled,
|
|
364
365
|
testId: 'assets-datasource-modal--insert-button'
|
|
365
|
-
}, jsx(FormattedMessage, _extends({}, modalMessages.insertIssuesButtonText, {
|
|
366
|
+
}, jsx(FormattedMessage, _extends({}, isEditingExistingTable ? modalMessages.updateObjectsButtonText : modalMessages.insertIssuesButtonText, {
|
|
366
367
|
values: {
|
|
367
368
|
objectsCount: responseItems.length
|
|
368
369
|
}
|
|
@@ -5,6 +5,11 @@ export var modalMessages = defineMessages({
|
|
|
5
5
|
description: 'Button text to close the modal with no changes being made',
|
|
6
6
|
defaultMessage: 'Cancel'
|
|
7
7
|
},
|
|
8
|
+
updateObjectsButtonText: {
|
|
9
|
+
id: 'linkDataSource.assets.configmodal.updateObjectsButtonText',
|
|
10
|
+
description: 'Button text to update the displayed content',
|
|
11
|
+
defaultMessage: 'Update table'
|
|
12
|
+
},
|
|
8
13
|
insertIssuesButtonText: {
|
|
9
14
|
id: 'linkDataSource.assets.configmodal.insertIssuesButtonText',
|
|
10
15
|
description: 'Button text to insert the displayed content',
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
import { jsx } from '@emotion/react';
|
|
3
|
+
import { FormattedMessage, useIntl } from 'react-intl-next';
|
|
4
|
+
import DropdownMenu, { DropdownItem, DropdownItemGroup } from '@atlaskit/dropdown-menu';
|
|
5
|
+
import TableIcon from '@atlaskit/icon/glyph/table';
|
|
6
|
+
import { Box, xcss } from '@atlaskit/primitives';
|
|
7
|
+
import { modalMessages } from '../messages';
|
|
8
|
+
var dropDownItemGroupStyles = xcss({
|
|
9
|
+
width: '320px',
|
|
10
|
+
height: '140px',
|
|
11
|
+
paddingTop: "var(--ds-space-050, 4px)",
|
|
12
|
+
paddingBottom: "var(--ds-space-050, 4px)",
|
|
13
|
+
borderRadius: 'border.radius'
|
|
14
|
+
});
|
|
15
|
+
var InlineIcon = jsx("svg", {
|
|
16
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
17
|
+
width: "24",
|
|
18
|
+
height: "24",
|
|
19
|
+
viewBox: "0 0 24 24",
|
|
20
|
+
fill: "none"
|
|
21
|
+
}, jsx("path", {
|
|
22
|
+
fillRule: "evenodd",
|
|
23
|
+
clipRule: "evenodd",
|
|
24
|
+
d: "M4 9C2.89543 9 2 9.67155 2 10.5V13.5C2 14.3285 2.89543 15 4 15H20C21.1046 15 22 14.3285 22 13.5V10.5C22 9.67155 21.1046 9 20 9H4ZM4.22222 11.25C4.22222 10.5 4.22222 10.5 5 10.5H7C7.55556 10.5 7.55556 10.5 7.55556 11.25V13C7.55556 13.5 7.55556 13.5 7 13.5H5C4.22222 13.5 4.22222 13.5 4.22222 13V11.25ZM9 12C9 11.7929 9.2239 11.625 9.5 11.625H19.5C19.7761 11.625 20 11.7929 20 12C20 12.2071 19.7761 12.375 19.5 12.375H9.5C9.2239 12.375 9 12.2071 9 12Z",
|
|
25
|
+
fill: 'currentColor'
|
|
26
|
+
}));
|
|
27
|
+
export var DisplayViewDropDown = function DisplayViewDropDown(_ref) {
|
|
28
|
+
var onViewModeChange = _ref.onViewModeChange,
|
|
29
|
+
viewMode = _ref.viewMode;
|
|
30
|
+
var _useIntl = useIntl(),
|
|
31
|
+
formatMessage = _useIntl.formatMessage;
|
|
32
|
+
var triggerText = viewMode === 'issue' ? formatMessage(modalMessages.tableViewModeLabel) : formatMessage(modalMessages.inlineLinkViewModeLabel);
|
|
33
|
+
return jsx(DropdownMenu, {
|
|
34
|
+
trigger: triggerText,
|
|
35
|
+
testId: "jira-jql-datasource-modal--view-drop-down"
|
|
36
|
+
}, jsx(Box, {
|
|
37
|
+
xcss: dropDownItemGroupStyles
|
|
38
|
+
}, jsx(DropdownItemGroup, null, jsx(DropdownItem, {
|
|
39
|
+
testId: "dropdown-item-table",
|
|
40
|
+
onClick: function onClick() {
|
|
41
|
+
return onViewModeChange('issue');
|
|
42
|
+
},
|
|
43
|
+
isSelected: viewMode === 'issue',
|
|
44
|
+
description: formatMessage(modalMessages.tableViewModeDescription),
|
|
45
|
+
elemBefore: jsx(TableIcon, {
|
|
46
|
+
label: "table icon"
|
|
47
|
+
})
|
|
48
|
+
}, jsx(FormattedMessage, modalMessages.tableViewModeLabel)), jsx(DropdownItem, {
|
|
49
|
+
testId: "dropdown-item-inline-link",
|
|
50
|
+
onClick: function onClick() {
|
|
51
|
+
return onViewModeChange('count');
|
|
52
|
+
},
|
|
53
|
+
isSelected: viewMode === 'count',
|
|
54
|
+
description: formatMessage(modalMessages.inlineLinkViewModeDescription),
|
|
55
|
+
elemBefore: InlineIcon
|
|
56
|
+
}, jsx(FormattedMessage, modalMessages.inlineLinkViewModeLabel)))));
|
|
57
|
+
};
|
|
@@ -9,7 +9,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
9
9
|
/** @jsx jsx */
|
|
10
10
|
import { Fragment, useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
11
11
|
import { css, jsx } from '@emotion/react';
|
|
12
|
-
import { FormattedMessage, FormattedNumber
|
|
12
|
+
import { FormattedMessage, FormattedNumber } from 'react-intl-next';
|
|
13
13
|
import { v4 as uuidv4 } from 'uuid';
|
|
14
14
|
import { withAnalyticsContext } from '@atlaskit/analytics-next';
|
|
15
15
|
import Button from '@atlaskit/button/standard-button';
|
|
@@ -39,8 +39,8 @@ import { availableBasicFilterTypes } from '../basic-filters/ui';
|
|
|
39
39
|
import { isQueryTooComplex } from '../basic-filters/utils/isQueryTooComplex';
|
|
40
40
|
import { InitialStateView } from '../initial-state-view';
|
|
41
41
|
import { JiraSearchContainer } from '../jira-search-container';
|
|
42
|
-
import { ModeSwitcher } from '../mode-switcher';
|
|
43
42
|
import { JiraSiteSelector } from '../site-selector';
|
|
43
|
+
import { DisplayViewDropDown } from './display-view-dropdown/display-view-drop-down';
|
|
44
44
|
import { modalMessages } from './messages';
|
|
45
45
|
var dropdownContainerStyles = css({
|
|
46
46
|
display: 'flex',
|
|
@@ -80,10 +80,10 @@ var smartLinkContainerStyles = css({
|
|
|
80
80
|
paddingLeft: '1px'
|
|
81
81
|
});
|
|
82
82
|
var getDisplayValue = function getDisplayValue(currentViewMode, itemCount) {
|
|
83
|
-
if (currentViewMode === '
|
|
84
|
-
return DatasourceDisplay.
|
|
83
|
+
if (currentViewMode === 'issue') {
|
|
84
|
+
return DatasourceDisplay.DATASOURCE_TABLE;
|
|
85
85
|
}
|
|
86
|
-
return itemCount
|
|
86
|
+
return itemCount === 1 ? DatasourceDisplay.INLINE : DatasourceDisplay.DATASOURCE_INLINE;
|
|
87
87
|
};
|
|
88
88
|
|
|
89
89
|
/**
|
|
@@ -179,8 +179,6 @@ export var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(prop
|
|
|
179
179
|
_useDatasourceTableSt2 = _useDatasourceTableSt.extensionKey,
|
|
180
180
|
extensionKey = _useDatasourceTableSt2 === void 0 ? null : _useDatasourceTableSt2,
|
|
181
181
|
destinationObjectTypes = _useDatasourceTableSt.destinationObjectTypes;
|
|
182
|
-
var _useIntl = useIntl(),
|
|
183
|
-
formatMessage = _useIntl.formatMessage;
|
|
184
182
|
var _useDatasourceAnalyti = useDatasourceAnalyticsEvents(),
|
|
185
183
|
fireEvent = _useDatasourceAnalyti.fireEvent;
|
|
186
184
|
var _useRef = useRef(uuidv4()),
|
|
@@ -403,18 +401,11 @@ export var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(prop
|
|
|
403
401
|
var firstIssueUrl = retrieveUrlForSmartCardRender();
|
|
404
402
|
if (currentViewMode === 'count') {
|
|
405
403
|
macroInsertedEvent === null || macroInsertedEvent === void 0 || macroInsertedEvent.fire(EVENT_CHANNEL);
|
|
404
|
+
var url = responseItems.length === 1 ? firstIssueUrl : upToDateJqlUrl;
|
|
406
405
|
onInsert({
|
|
407
406
|
type: 'inlineCard',
|
|
408
407
|
attrs: {
|
|
409
|
-
url:
|
|
410
|
-
}
|
|
411
|
-
}, consumerEvent);
|
|
412
|
-
} else if (responseItems.length === 1 && firstIssueUrl) {
|
|
413
|
-
macroInsertedEvent === null || macroInsertedEvent === void 0 || macroInsertedEvent.fire(EVENT_CHANNEL);
|
|
414
|
-
onInsert({
|
|
415
|
-
type: 'inlineCard',
|
|
416
|
-
attrs: {
|
|
417
|
-
url: firstIssueUrl
|
|
408
|
+
url: url
|
|
418
409
|
}
|
|
419
410
|
}, consumerEvent);
|
|
420
411
|
} else {
|
|
@@ -444,7 +435,7 @@ export var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(prop
|
|
|
444
435
|
}
|
|
445
436
|
}, consumerEvent);
|
|
446
437
|
}
|
|
447
|
-
}, [isParametersSet, jql, selectedJiraSite, analyticsPayload, totalCount, visibleColumnKeys, currentViewMode, retrieveUrlForSmartCardRender,
|
|
438
|
+
}, [isParametersSet, jql, selectedJiraSite, analyticsPayload, totalCount, visibleColumnKeys, currentViewMode, retrieveUrlForSmartCardRender, onInsert, datasourceId, cloudId, columnCustomSizes, searchBarJql, responseItems]);
|
|
448
439
|
var handleViewModeChange = function handleViewModeChange(selectedMode) {
|
|
449
440
|
userInteractionActions.current.add(DatasourceAction.DISPLAY_VIEW_CHANGED);
|
|
450
441
|
setCurrentViewMode(selectedMode);
|
|
@@ -494,14 +485,19 @@ export var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(prop
|
|
|
494
485
|
css: placeholderSmartLinkStyles
|
|
495
486
|
}, jsx(FormattedMessage, modalMessages.issuesCountSmartCardPlaceholderText)));
|
|
496
487
|
} else {
|
|
497
|
-
var
|
|
488
|
+
var url;
|
|
489
|
+
if (responseItems.length === 1 && retrieveUrlForSmartCardRender()) {
|
|
490
|
+
url = retrieveUrlForSmartCardRender();
|
|
491
|
+
} else {
|
|
492
|
+
url = "".concat(selectedJiraSiteUrl, "/issues/?jql=").concat(encodeURI(jql));
|
|
493
|
+
}
|
|
498
494
|
return jsx("div", {
|
|
499
495
|
css: smartLinkContainerStyles
|
|
500
496
|
}, jsx(LinkRenderType, {
|
|
501
|
-
url:
|
|
497
|
+
url: url
|
|
502
498
|
}));
|
|
503
499
|
}
|
|
504
|
-
}, [jql, selectedJiraSite === null || selectedJiraSite === void 0 ? void 0 : selectedJiraSite.url, status, urlBeingEdited]);
|
|
500
|
+
}, [jql, selectedJiraSite === null || selectedJiraSite === void 0 ? void 0 : selectedJiraSite.url, status, urlBeingEdited, responseItems, retrieveUrlForSmartCardRender]);
|
|
505
501
|
var renderIssuesModeContent = useCallback(function () {
|
|
506
502
|
var selectedJiraSiteUrl = selectedJiraSite === null || selectedJiraSite === void 0 ? void 0 : selectedJiraSite.url;
|
|
507
503
|
if (status === 'rejected' && jqlUrl) {
|
|
@@ -524,16 +520,8 @@ export var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(prop
|
|
|
524
520
|
searchMethod: currentSearchMethod
|
|
525
521
|
}));
|
|
526
522
|
}
|
|
527
|
-
var firstIssueUrl = retrieveUrlForSmartCardRender();
|
|
528
|
-
if (responseItems.length === 1 && firstIssueUrl) {
|
|
529
|
-
return jsx("div", {
|
|
530
|
-
css: smartLinkContainerStyles
|
|
531
|
-
}, jsx(LinkRenderType, {
|
|
532
|
-
url: firstIssueUrl
|
|
533
|
-
}));
|
|
534
|
-
}
|
|
535
523
|
return issueLikeDataTableView;
|
|
536
|
-
}, [columns.length, currentSearchMethod, issueLikeDataTableView, jql, jqlUrl, resolvedWithNoResults,
|
|
524
|
+
}, [columns.length, currentSearchMethod, issueLikeDataTableView, jql, jqlUrl, resolvedWithNoResults, selectedJiraSite === null || selectedJiraSite === void 0 ? void 0 : selectedJiraSite.url, status, urlBeingEdited]);
|
|
537
525
|
return jsx(IntlMessagesProvider, {
|
|
538
526
|
defaultMessages: i18nEN,
|
|
539
527
|
loaderFn: fetchMessagesForLocale
|
|
@@ -549,17 +537,9 @@ export var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(prop
|
|
|
549
537
|
onSiteSelection: onSiteSelection,
|
|
550
538
|
selectedJiraSite: selectedJiraSite,
|
|
551
539
|
testId: "jira-jql-datasource-modal--site-selector"
|
|
552
|
-
})) : jsx(FormattedMessage, modalMessages.insertIssuesTitle))), !hasNoJiraSites && jsx(
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
label: formatMessage(modalMessages.issueViewModeLabel),
|
|
556
|
-
value: 'issue'
|
|
557
|
-
}, {
|
|
558
|
-
label: formatMessage(modalMessages.countViewModeLabel),
|
|
559
|
-
value: 'count'
|
|
560
|
-
}],
|
|
561
|
-
onOptionValueChange: handleViewModeChange,
|
|
562
|
-
selectedOptionValue: currentViewMode
|
|
540
|
+
})) : jsx(FormattedMessage, modalMessages.insertIssuesTitle))), !hasNoJiraSites && jsx(DisplayViewDropDown, {
|
|
541
|
+
onViewModeChange: handleViewModeChange,
|
|
542
|
+
viewMode: currentViewMode
|
|
563
543
|
})), jsx(ModalBody, null, !hasNoJiraSites ? jsx(Fragment, null, jsx(JiraSearchContainer, {
|
|
564
544
|
setSearchBarJql: setSearchBarJql,
|
|
565
545
|
searchBarJql: searchBarJql,
|
|
@@ -20,15 +20,25 @@ export var modalMessages = defineMessages({
|
|
|
20
20
|
description: 'Title for the Jira Issues modal when a user has to select a site to inserting issues from',
|
|
21
21
|
defaultMessage: 'Insert Jira issues from'
|
|
22
22
|
},
|
|
23
|
-
|
|
24
|
-
id: 'linkDataSource.jira-issues.configmodal.
|
|
25
|
-
description: '
|
|
26
|
-
defaultMessage: '
|
|
27
|
-
},
|
|
28
|
-
|
|
29
|
-
id: 'linkDataSource.jira-issues.configmodal.
|
|
30
|
-
description: '
|
|
31
|
-
defaultMessage: '
|
|
23
|
+
tableViewModeLabel: {
|
|
24
|
+
id: 'linkDataSource.jira-issues.configmodal.tableViewModeLabel',
|
|
25
|
+
description: 'Display Jira search results as a table',
|
|
26
|
+
defaultMessage: 'Table'
|
|
27
|
+
},
|
|
28
|
+
tableViewModeDescription: {
|
|
29
|
+
id: 'linkDataSource.jira-issues.configmodal.tableViewModeDescription',
|
|
30
|
+
description: 'Description for table view mode',
|
|
31
|
+
defaultMessage: 'Display Jira search results as a table'
|
|
32
|
+
},
|
|
33
|
+
inlineLinkViewModeLabel: {
|
|
34
|
+
id: 'linkDataSource.jira-issues.configmodal.inlineLinkViewModeLabel',
|
|
35
|
+
description: 'Display the number of search results as an inline smart link',
|
|
36
|
+
defaultMessage: 'Inline link'
|
|
37
|
+
},
|
|
38
|
+
inlineLinkViewModeDescription: {
|
|
39
|
+
id: 'linkDataSource.jira-issues.configmodal.inlineLinkViewModeDescription',
|
|
40
|
+
description: 'Description for inline link view mode',
|
|
41
|
+
defaultMessage: 'Display the number of search results or as an inline smart link'
|
|
32
42
|
},
|
|
33
43
|
issuesCountSmartCardPlaceholderText: {
|
|
34
44
|
id: 'linkDataSource.jira-issues.configmodal.placeholder.issues',
|
package/dist/types/ui/jira-issues-modal/modal/display-view-dropdown/display-view-drop-down.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
import { jsx } from '@emotion/react';
|
|
3
|
+
import { JiraIssueViewModes } from '../../types';
|
|
4
|
+
export type DisplayViewDropDownProps = {
|
|
5
|
+
onViewModeChange: (value: JiraIssueViewModes) => void;
|
|
6
|
+
viewMode: JiraIssueViewModes;
|
|
7
|
+
};
|
|
8
|
+
export declare const DisplayViewDropDown: ({ onViewModeChange, viewMode, }: DisplayViewDropDownProps) => jsx.JSX.Element;
|
|
@@ -19,12 +19,22 @@ export declare const modalMessages: {
|
|
|
19
19
|
description: string;
|
|
20
20
|
defaultMessage: string;
|
|
21
21
|
};
|
|
22
|
-
|
|
22
|
+
tableViewModeLabel: {
|
|
23
23
|
id: string;
|
|
24
24
|
description: string;
|
|
25
25
|
defaultMessage: string;
|
|
26
26
|
};
|
|
27
|
-
|
|
27
|
+
tableViewModeDescription: {
|
|
28
|
+
id: string;
|
|
29
|
+
description: string;
|
|
30
|
+
defaultMessage: string;
|
|
31
|
+
};
|
|
32
|
+
inlineLinkViewModeLabel: {
|
|
33
|
+
id: string;
|
|
34
|
+
description: string;
|
|
35
|
+
defaultMessage: string;
|
|
36
|
+
};
|
|
37
|
+
inlineLinkViewModeDescription: {
|
|
28
38
|
id: string;
|
|
29
39
|
description: string;
|
|
30
40
|
defaultMessage: string;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
import { jsx } from '@emotion/react';
|
|
3
|
+
import { JiraIssueViewModes } from '../../types';
|
|
4
|
+
export type DisplayViewDropDownProps = {
|
|
5
|
+
onViewModeChange: (value: JiraIssueViewModes) => void;
|
|
6
|
+
viewMode: JiraIssueViewModes;
|
|
7
|
+
};
|
|
8
|
+
export declare const DisplayViewDropDown: ({ onViewModeChange, viewMode, }: DisplayViewDropDownProps) => jsx.JSX.Element;
|
|
@@ -19,12 +19,22 @@ export declare const modalMessages: {
|
|
|
19
19
|
description: string;
|
|
20
20
|
defaultMessage: string;
|
|
21
21
|
};
|
|
22
|
-
|
|
22
|
+
tableViewModeLabel: {
|
|
23
23
|
id: string;
|
|
24
24
|
description: string;
|
|
25
25
|
defaultMessage: string;
|
|
26
26
|
};
|
|
27
|
-
|
|
27
|
+
tableViewModeDescription: {
|
|
28
|
+
id: string;
|
|
29
|
+
description: string;
|
|
30
|
+
defaultMessage: string;
|
|
31
|
+
};
|
|
32
|
+
inlineLinkViewModeLabel: {
|
|
33
|
+
id: string;
|
|
34
|
+
description: string;
|
|
35
|
+
defaultMessage: string;
|
|
36
|
+
};
|
|
37
|
+
inlineLinkViewModeDescription: {
|
|
28
38
|
id: string;
|
|
29
39
|
description: string;
|
|
30
40
|
defaultMessage: string;
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/link-datasource",
|
|
3
|
-
"version": "1.19.
|
|
3
|
+
"version": "1.19.42",
|
|
4
4
|
"description": "UI Components to support linking platform dataset feature",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
7
7
|
},
|
|
8
|
-
"repository": "https://bitbucket.org/atlassian/atlassian-frontend",
|
|
8
|
+
"repository": "https://bitbucket.org/atlassian/atlassian-frontend-mirror",
|
|
9
9
|
"author": "Atlassian Pty Ltd",
|
|
10
10
|
"main": "dist/cjs/index.js",
|
|
11
11
|
"module": "dist/esm/index.js",
|
|
@@ -35,6 +35,7 @@
|
|
|
35
35
|
"@atlaskit/avatar": "^21.4.0",
|
|
36
36
|
"@atlaskit/badge": "^15.2.0",
|
|
37
37
|
"@atlaskit/button": "^17.2.0",
|
|
38
|
+
"@atlaskit/dropdown-menu": "^12.1.10",
|
|
38
39
|
"@atlaskit/editor-prosemirror": "1.1.0",
|
|
39
40
|
"@atlaskit/empty-state": "^7.5.0",
|
|
40
41
|
"@atlaskit/form": "^9.0.3",
|