@atlaskit/link-datasource 1.8.0 → 1.9.1
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 +12 -0
- package/dist/cjs/analytics/constants.js +1 -1
- package/dist/cjs/common/zindex.js +8 -0
- package/dist/cjs/hooks/useValidateAqlText.js +21 -16
- package/dist/cjs/i18n/da.js +1 -1
- package/dist/cjs/i18n/en.js +5 -3
- package/dist/cjs/i18n/en_GB.js +5 -3
- package/dist/cjs/i18n/en_ZZ.js +5 -3
- package/dist/cjs/i18n/es.js +1 -1
- package/dist/cjs/i18n/fi.js +1 -1
- package/dist/cjs/i18n/fr.js +1 -1
- package/dist/cjs/i18n/hu.js +1 -1
- package/dist/cjs/i18n/it.js +1 -1
- package/dist/cjs/i18n/ja.js +1 -1
- package/dist/cjs/i18n/ko.js +1 -1
- package/dist/cjs/i18n/nb.js +5 -3
- package/dist/cjs/i18n/nl.js +1 -1
- package/dist/cjs/i18n/pl.js +1 -1
- package/dist/cjs/i18n/pt_BR.js +1 -1
- package/dist/cjs/i18n/ru.js +1 -1
- package/dist/cjs/i18n/sv.js +1 -1
- package/dist/cjs/i18n/tr.js +1 -1
- package/dist/cjs/i18n/uk.js +3 -3
- package/dist/cjs/i18n/vi.js +2 -2
- package/dist/cjs/i18n/zh.js +1 -1
- package/dist/cjs/i18n/zh_TW.js +1 -1
- package/dist/cjs/ui/assets-modal/modal/index.js +1 -1
- package/dist/cjs/ui/assets-modal/search-container/aql-search-input/index.js +12 -6
- package/dist/cjs/ui/common/error-state/access-required.js +42 -8
- package/dist/cjs/ui/common/error-state/messages.js +4 -4
- package/dist/cjs/ui/datasource-table-view/datasourceTableView.js +3 -1
- package/dist/cjs/ui/issue-like-table/index.js +2 -1
- package/dist/cjs/ui/jira-issues-modal/modal/index.js +24 -25
- package/dist/cjs/ui/jira-issues-modal/modal/messages.js +2 -2
- package/dist/cjs/ui/jira-issues-modal/site-selector/index.js +59 -37
- package/dist/cjs/ui/jira-issues-modal/site-selector/messages.js +4 -9
- package/dist/es2019/analytics/constants.js +1 -1
- package/dist/es2019/common/zindex.js +2 -0
- package/dist/es2019/hooks/useValidateAqlText.js +8 -2
- package/dist/es2019/i18n/da.js +1 -1
- package/dist/es2019/i18n/en.js +5 -3
- package/dist/es2019/i18n/en_GB.js +5 -3
- package/dist/es2019/i18n/en_ZZ.js +5 -3
- package/dist/es2019/i18n/es.js +1 -1
- package/dist/es2019/i18n/fi.js +1 -1
- package/dist/es2019/i18n/fr.js +1 -1
- package/dist/es2019/i18n/hu.js +1 -1
- package/dist/es2019/i18n/it.js +1 -1
- package/dist/es2019/i18n/ja.js +1 -1
- package/dist/es2019/i18n/ko.js +1 -1
- package/dist/es2019/i18n/nb.js +5 -3
- package/dist/es2019/i18n/nl.js +1 -1
- package/dist/es2019/i18n/pl.js +1 -1
- package/dist/es2019/i18n/pt_BR.js +1 -1
- package/dist/es2019/i18n/ru.js +1 -1
- package/dist/es2019/i18n/sv.js +1 -1
- package/dist/es2019/i18n/tr.js +1 -1
- package/dist/es2019/i18n/uk.js +3 -3
- package/dist/es2019/i18n/vi.js +2 -2
- package/dist/es2019/i18n/zh.js +1 -1
- package/dist/es2019/i18n/zh_TW.js +1 -1
- package/dist/es2019/ui/assets-modal/modal/index.js +1 -1
- package/dist/es2019/ui/assets-modal/search-container/aql-search-input/index.js +8 -6
- package/dist/es2019/ui/common/error-state/access-required.js +41 -6
- package/dist/es2019/ui/common/error-state/messages.js +4 -4
- package/dist/es2019/ui/datasource-table-view/datasourceTableView.js +3 -1
- package/dist/es2019/ui/issue-like-table/index.js +2 -1
- package/dist/es2019/ui/jira-issues-modal/modal/index.js +25 -26
- package/dist/es2019/ui/jira-issues-modal/modal/messages.js +2 -2
- package/dist/es2019/ui/jira-issues-modal/site-selector/index.js +50 -32
- package/dist/es2019/ui/jira-issues-modal/site-selector/messages.js +4 -9
- package/dist/esm/analytics/constants.js +1 -1
- package/dist/esm/common/zindex.js +2 -0
- package/dist/esm/hooks/useValidateAqlText.js +21 -16
- package/dist/esm/i18n/da.js +1 -1
- package/dist/esm/i18n/en.js +5 -3
- package/dist/esm/i18n/en_GB.js +5 -3
- package/dist/esm/i18n/en_ZZ.js +5 -3
- package/dist/esm/i18n/es.js +1 -1
- package/dist/esm/i18n/fi.js +1 -1
- package/dist/esm/i18n/fr.js +1 -1
- package/dist/esm/i18n/hu.js +1 -1
- package/dist/esm/i18n/it.js +1 -1
- package/dist/esm/i18n/ja.js +1 -1
- package/dist/esm/i18n/ko.js +1 -1
- package/dist/esm/i18n/nb.js +5 -3
- package/dist/esm/i18n/nl.js +1 -1
- package/dist/esm/i18n/pl.js +1 -1
- package/dist/esm/i18n/pt_BR.js +1 -1
- package/dist/esm/i18n/ru.js +1 -1
- package/dist/esm/i18n/sv.js +1 -1
- package/dist/esm/i18n/tr.js +1 -1
- package/dist/esm/i18n/uk.js +3 -3
- package/dist/esm/i18n/vi.js +2 -2
- package/dist/esm/i18n/zh.js +1 -1
- package/dist/esm/i18n/zh_TW.js +1 -1
- package/dist/esm/ui/assets-modal/modal/index.js +1 -1
- package/dist/esm/ui/assets-modal/search-container/aql-search-input/index.js +14 -8
- package/dist/esm/ui/common/error-state/access-required.js +43 -9
- package/dist/esm/ui/common/error-state/messages.js +4 -4
- package/dist/esm/ui/datasource-table-view/datasourceTableView.js +3 -1
- package/dist/esm/ui/issue-like-table/index.js +2 -1
- package/dist/esm/ui/jira-issues-modal/modal/index.js +25 -26
- package/dist/esm/ui/jira-issues-modal/modal/messages.js +2 -2
- package/dist/esm/ui/jira-issues-modal/site-selector/index.js +59 -34
- package/dist/esm/ui/jira-issues-modal/site-selector/messages.js +4 -9
- package/dist/types/common/zindex.d.ts +2 -0
- package/dist/types/hooks/useValidateAqlText.d.ts +6 -2
- package/dist/types/i18n/en.d.ts +2 -0
- package/dist/types/i18n/en_GB.d.ts +2 -0
- package/dist/types/i18n/en_ZZ.d.ts +2 -0
- package/dist/types/i18n/nb.d.ts +2 -0
- package/dist/types/types/assets/types.d.ts +4 -1
- package/dist/types/ui/common/error-state/access-required.d.ts +2 -2
- package/dist/types/ui/jira-issues-modal/site-selector/index.d.ts +0 -1
- package/dist/types/ui/jira-issues-modal/site-selector/messages.d.ts +1 -6
- package/dist/types/ui/jira-issues-modal/types.d.ts +2 -0
- package/dist/types-ts4.5/common/zindex.d.ts +2 -0
- package/dist/types-ts4.5/hooks/useValidateAqlText.d.ts +6 -2
- package/dist/types-ts4.5/i18n/en.d.ts +2 -0
- package/dist/types-ts4.5/i18n/en_GB.d.ts +2 -0
- package/dist/types-ts4.5/i18n/en_ZZ.d.ts +2 -0
- package/dist/types-ts4.5/i18n/nb.d.ts +2 -0
- package/dist/types-ts4.5/types/assets/types.d.ts +4 -1
- package/dist/types-ts4.5/ui/common/error-state/access-required.d.ts +2 -2
- package/dist/types-ts4.5/ui/jira-issues-modal/site-selector/index.d.ts +0 -1
- package/dist/types-ts4.5/ui/jira-issues-modal/site-selector/messages.d.ts +1 -6
- package/dist/types-ts4.5/ui/jira-issues-modal/types.d.ts +2 -0
- package/package.json +4 -4
- package/report.api.md +1 -0
- package/tmp/api-report-tmp.d.ts +1 -0
package/dist/es2019/i18n/sv.js
CHANGED
|
@@ -41,7 +41,7 @@ export default {
|
|
|
41
41
|
'linkDataSource.jira-issues.refresh': 'Uppdatera',
|
|
42
42
|
'linkDataSource.jira-issues.unableToLoadItems': 'Det gick inte att läsa in objekten',
|
|
43
43
|
'linkDataSource.jira-issues.unableToLoadResults': 'Det gick inte att läsa in resultat',
|
|
44
|
-
'linkDataSource.modal-initial-state.learnMoreLink': 'Läs mer om att söka med JQL',
|
|
44
|
+
'linkDataSource.modal-initial-state.learnMoreLink': 'Läs mer om att söka med JQL.',
|
|
45
45
|
'linkDataSource.modal-initial-state.searchDescription': 'Börja skriva eller använd JQL för att söka.',
|
|
46
46
|
'linkDataSource.modal-initial-state.searchTitle': 'Sök efter Jira-ärenden',
|
|
47
47
|
'linkDataSource.render-type.boolean.false': 'Nej',
|
package/dist/es2019/i18n/tr.js
CHANGED
|
@@ -41,7 +41,7 @@ export default {
|
|
|
41
41
|
'linkDataSource.jira-issues.refresh': 'Yenile',
|
|
42
42
|
'linkDataSource.jira-issues.unableToLoadItems': 'Öğeler yüklenemiyor',
|
|
43
43
|
'linkDataSource.jira-issues.unableToLoadResults': 'Sonuçlar yüklenemiyor',
|
|
44
|
-
'linkDataSource.modal-initial-state.learnMoreLink': 'JQL ile arama yapmak hakkında daha fazla bilgi edinin',
|
|
44
|
+
'linkDataSource.modal-initial-state.learnMoreLink': 'JQL ile arama yapmak hakkında daha fazla bilgi edinin.',
|
|
45
45
|
'linkDataSource.modal-initial-state.searchDescription': 'Aramak için yazmaya başlayın veya JQL kullanın.',
|
|
46
46
|
'linkDataSource.modal-initial-state.searchTitle': 'Jira konuları arayın',
|
|
47
47
|
'linkDataSource.render-type.boolean.false': 'Hayır',
|
package/dist/es2019/i18n/uk.js
CHANGED
|
@@ -39,9 +39,9 @@ export default {
|
|
|
39
39
|
'linkDataSource.jira-issues.configmodal.selectedJiraSiteLabel': 'Вибрано сайт {siteName}',
|
|
40
40
|
'linkDataSource.jira-issues.noResultsFound': 'Немає результатів',
|
|
41
41
|
'linkDataSource.jira-issues.refresh': 'Оновити',
|
|
42
|
-
'linkDataSource.jira-issues.unableToLoadItems': 'Не вдалося завантажити
|
|
42
|
+
'linkDataSource.jira-issues.unableToLoadItems': 'Не вдалося завантажити елементи',
|
|
43
43
|
'linkDataSource.jira-issues.unableToLoadResults': 'Не вдалося завантажити результати',
|
|
44
|
-
'linkDataSource.modal-initial-state.learnMoreLink': 'Докладніше про пошук засобами JQL',
|
|
44
|
+
'linkDataSource.modal-initial-state.learnMoreLink': 'Докладніше про пошук засобами JQL.',
|
|
45
45
|
'linkDataSource.modal-initial-state.searchDescription': 'Почніть вводити запит або скористайтеся JQL для пошуку.',
|
|
46
46
|
'linkDataSource.modal-initial-state.searchTitle': 'Пошук завдань Jira',
|
|
47
47
|
'linkDataSource.render-type.boolean.false': 'Ні',
|
|
@@ -49,7 +49,7 @@ export default {
|
|
|
49
49
|
'linkDataSource.render-type.user.default.display.name': 'Не призначено',
|
|
50
50
|
'linkDataSource.table-footer.date_formatter.under_one_minute': 'Синхронізовано щойно',
|
|
51
51
|
'linkDataSource.table-footer.date_formatter.under_over_minute': 'Синхронізація: {date}',
|
|
52
|
-
'linkDataSource.table-footer.item': '{itemCount, plural, one {елемент} few {елементи} many {елементів} other {
|
|
52
|
+
'linkDataSource.table-footer.item': '{itemCount, plural, one {елемент} few {елементи} many {елементів} other {елементи}}',
|
|
53
53
|
'linkDataSource.table-footer.loading': 'Завантаження…',
|
|
54
54
|
'linkDataSource.table-footer.refresh': 'Оновити'
|
|
55
55
|
};
|
package/dist/es2019/i18n/vi.js
CHANGED
|
@@ -41,7 +41,7 @@ export default {
|
|
|
41
41
|
'linkDataSource.jira-issues.refresh': 'Làm mới',
|
|
42
42
|
'linkDataSource.jira-issues.unableToLoadItems': 'Không thể tải được các mục',
|
|
43
43
|
'linkDataSource.jira-issues.unableToLoadResults': 'Không tải được kết quả',
|
|
44
|
-
'linkDataSource.modal-initial-state.learnMoreLink': 'Tìm hiểu thêm về việc tìm kiếm bằng JQL',
|
|
44
|
+
'linkDataSource.modal-initial-state.learnMoreLink': 'Tìm hiểu thêm về việc tìm kiếm bằng JQL.',
|
|
45
45
|
'linkDataSource.modal-initial-state.searchDescription': 'Bắt đầu nhập hoặc sử dụng JQL để tìm kiếm.',
|
|
46
46
|
'linkDataSource.modal-initial-state.searchTitle': 'Tìm kiếm vấn đề Jira',
|
|
47
47
|
'linkDataSource.render-type.boolean.false': 'Không',
|
|
@@ -49,7 +49,7 @@ export default {
|
|
|
49
49
|
'linkDataSource.render-type.user.default.display.name': 'Chưa được chỉ định',
|
|
50
50
|
'linkDataSource.table-footer.date_formatter.under_one_minute': 'Vừa mới đồng bộ',
|
|
51
51
|
'linkDataSource.table-footer.date_formatter.under_over_minute': 'Đã đồng bộ trong {date}',
|
|
52
|
-
'linkDataSource.table-footer.item': '{itemCount, plural, other {
|
|
52
|
+
'linkDataSource.table-footer.item': '{itemCount, plural, other {mục}}',
|
|
53
53
|
'linkDataSource.table-footer.loading': 'Đang tải...',
|
|
54
54
|
'linkDataSource.table-footer.refresh': 'Làm mới'
|
|
55
55
|
};
|
package/dist/es2019/i18n/zh.js
CHANGED
|
@@ -41,7 +41,7 @@ export default {
|
|
|
41
41
|
'linkDataSource.jira-issues.refresh': '刷新',
|
|
42
42
|
'linkDataSource.jira-issues.unableToLoadItems': '无法加载项目',
|
|
43
43
|
'linkDataSource.jira-issues.unableToLoadResults': '无法加载结果',
|
|
44
|
-
'linkDataSource.modal-initial-state.learnMoreLink': '详细了解如何使用 JQL
|
|
44
|
+
'linkDataSource.modal-initial-state.learnMoreLink': '详细了解如何使用 JQL 进行搜索。',
|
|
45
45
|
'linkDataSource.modal-initial-state.searchDescription': '开始输入搜索内容或使用 JQL 进行搜索。',
|
|
46
46
|
'linkDataSource.modal-initial-state.searchTitle': '搜索 Jira 事务',
|
|
47
47
|
'linkDataSource.render-type.boolean.false': '否',
|
|
@@ -41,7 +41,7 @@ export default {
|
|
|
41
41
|
'linkDataSource.jira-issues.refresh': '重新整理',
|
|
42
42
|
'linkDataSource.jira-issues.unableToLoadItems': '無法載入項目',
|
|
43
43
|
'linkDataSource.jira-issues.unableToLoadResults': '無法載入結果',
|
|
44
|
-
'linkDataSource.modal-initial-state.learnMoreLink': '進一步了解如何使用 JQL
|
|
44
|
+
'linkDataSource.modal-initial-state.learnMoreLink': '進一步了解如何使用 JQL 進行搜尋。',
|
|
45
45
|
'linkDataSource.modal-initial-state.searchDescription': '開始輸入或使用 JQL 進行搜尋。',
|
|
46
46
|
'linkDataSource.modal-initial-state.searchTitle': '搜尋 Jira 議題',
|
|
47
47
|
'linkDataSource.render-type.boolean.false': '否',
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
2
|
/** @jsx jsx */
|
|
3
|
-
import { Fragment, useCallback, useRef } from 'react';
|
|
3
|
+
import { Fragment, useCallback, useRef, useState } from 'react';
|
|
4
4
|
import { css, jsx } from '@emotion/react';
|
|
5
5
|
import { useIntl } from 'react-intl-next';
|
|
6
6
|
import { LoadingButton } from '@atlaskit/button';
|
|
7
|
-
import { Field } from '@atlaskit/form';
|
|
7
|
+
import { ErrorMessage, Field } from '@atlaskit/form';
|
|
8
8
|
import CheckCircleIcon from '@atlaskit/icon/glyph/check-circle';
|
|
9
9
|
import CrossCircleIcon from '@atlaskit/icon/glyph/cross-circle';
|
|
10
10
|
import SearchIcon from '@atlaskit/icon/glyph/editor/search';
|
|
@@ -76,6 +76,7 @@ export const AqlSearchInput = ({
|
|
|
76
76
|
const timeout = useRef();
|
|
77
77
|
const lastValue = useRef(value);
|
|
78
78
|
const lastResult = useRef(Promise.resolve(undefined));
|
|
79
|
+
const [message, setMessage] = useState(null);
|
|
79
80
|
const {
|
|
80
81
|
validateAqlText
|
|
81
82
|
} = useValidateAqlText(workspaceId);
|
|
@@ -85,8 +86,9 @@ export const AqlSearchInput = ({
|
|
|
85
86
|
if (!newUnvalidatedQlQuery) {
|
|
86
87
|
return undefined;
|
|
87
88
|
}
|
|
88
|
-
const
|
|
89
|
-
|
|
89
|
+
const validation = await validateAqlText(newUnvalidatedQlQuery);
|
|
90
|
+
setMessage(validation.message);
|
|
91
|
+
return validation.isValid ? undefined : 'invalid';
|
|
90
92
|
}, [validateAqlText]);
|
|
91
93
|
|
|
92
94
|
/* Debounce async validation for input, validation is also called on every field change
|
|
@@ -119,7 +121,7 @@ export const AqlSearchInput = ({
|
|
|
119
121
|
fieldProps,
|
|
120
122
|
meta,
|
|
121
123
|
error
|
|
122
|
-
}) => jsx(Textfield, _extends({}, fieldProps, {
|
|
124
|
+
}) => jsx(Fragment, null, jsx(Textfield, _extends({}, fieldProps, {
|
|
123
125
|
elemBeforeInput: jsx("span", {
|
|
124
126
|
style: {
|
|
125
127
|
paddingLeft: 6,
|
|
@@ -153,5 +155,5 @@ export const AqlSearchInput = ({
|
|
|
153
155
|
})),
|
|
154
156
|
placeholder: formatMessage(searchInputMessages.placeholder),
|
|
155
157
|
testId: testId
|
|
156
|
-
}))));
|
|
158
|
+
})), fieldProps.value && error && message && jsx(ErrorMessage, null, message))));
|
|
157
159
|
};
|
|
@@ -1,13 +1,40 @@
|
|
|
1
1
|
/** @jsx jsx */
|
|
2
2
|
import { useEffect } from 'react';
|
|
3
|
-
import { jsx } from '@emotion/react';
|
|
3
|
+
import { css, jsx } from '@emotion/react';
|
|
4
4
|
import { useIntl } from 'react-intl-next';
|
|
5
5
|
import EmptyState from '@atlaskit/empty-state';
|
|
6
|
+
import { N400 } from '@atlaskit/theme/colors';
|
|
6
7
|
import { useDatasourceAnalyticsEvents } from '../../../analytics';
|
|
7
8
|
import { AccessRequiredSVG } from './access-required-svg';
|
|
8
9
|
import { loadingErrorMessages } from './messages';
|
|
10
|
+
const urlStyles = css({
|
|
11
|
+
color: `var(--ds-text-subtlest, ${N400})`,
|
|
12
|
+
fontSize: "var(--ds-font-size-100, 14px)",
|
|
13
|
+
lineHeight: "var(--ds-font-lineHeight-200, 20px)"
|
|
14
|
+
});
|
|
15
|
+
const descriptionMessageStyles = css({
|
|
16
|
+
display: 'flex',
|
|
17
|
+
flexDirection: 'column',
|
|
18
|
+
gap: "var(--ds-space-200, 16px)"
|
|
19
|
+
});
|
|
20
|
+
const iconContainerStyles = css({
|
|
21
|
+
marginBottom: "var(--ds-space-200, 16px)"
|
|
22
|
+
});
|
|
23
|
+
const Description = ({
|
|
24
|
+
message,
|
|
25
|
+
url
|
|
26
|
+
}) => {
|
|
27
|
+
return jsx("div", {
|
|
28
|
+
css: descriptionMessageStyles
|
|
29
|
+
}, jsx("span", {
|
|
30
|
+
css: urlStyles
|
|
31
|
+
}, url), jsx("span", null, message));
|
|
32
|
+
};
|
|
33
|
+
const IconContainer = () => jsx("div", {
|
|
34
|
+
css: iconContainerStyles
|
|
35
|
+
}, jsx(AccessRequiredSVG, null));
|
|
9
36
|
export const AccessRequired = ({
|
|
10
|
-
|
|
37
|
+
url
|
|
11
38
|
}) => {
|
|
12
39
|
const {
|
|
13
40
|
formatMessage
|
|
@@ -20,11 +47,19 @@ export const AccessRequired = ({
|
|
|
20
47
|
reason: 'access'
|
|
21
48
|
});
|
|
22
49
|
}, [fireEvent]);
|
|
50
|
+
if (url) {
|
|
51
|
+
return jsx(EmptyState, {
|
|
52
|
+
header: formatMessage(loadingErrorMessages.accessRequiredWithSite),
|
|
53
|
+
description: jsx(Description, {
|
|
54
|
+
message: formatMessage(loadingErrorMessages.accessInstructions),
|
|
55
|
+
url: url
|
|
56
|
+
}),
|
|
57
|
+
renderImage: IconContainer
|
|
58
|
+
});
|
|
59
|
+
}
|
|
23
60
|
return jsx(EmptyState, {
|
|
24
|
-
header:
|
|
25
|
-
siteName
|
|
26
|
-
}) : formatMessage(loadingErrorMessages.accessRequired),
|
|
61
|
+
header: formatMessage(loadingErrorMessages.accessRequired),
|
|
27
62
|
description: formatMessage(loadingErrorMessages.accessInstructions),
|
|
28
|
-
renderImage:
|
|
63
|
+
renderImage: IconContainer
|
|
29
64
|
});
|
|
30
65
|
};
|
|
@@ -2,8 +2,8 @@ import { defineMessages } from 'react-intl-next';
|
|
|
2
2
|
export const loadingErrorMessages = defineMessages({
|
|
3
3
|
accessInstructions: {
|
|
4
4
|
id: 'linkDataSource.jira-issues.accessInstructions',
|
|
5
|
-
description: "Instructions to let the user know they must contact
|
|
6
|
-
defaultMessage: 'To request access, contact your
|
|
5
|
+
description: "Instructions to let the user know they must contact their site administrator in order to access this site's content",
|
|
6
|
+
defaultMessage: 'To request access, contact your site administrator.'
|
|
7
7
|
},
|
|
8
8
|
accessRequired: {
|
|
9
9
|
id: 'linkDataSource.jira-issues.accessRequired',
|
|
@@ -12,8 +12,8 @@ export const loadingErrorMessages = defineMessages({
|
|
|
12
12
|
},
|
|
13
13
|
accessRequiredWithSite: {
|
|
14
14
|
id: 'linkDataSource.jira-issues.accessRequiredWithSite',
|
|
15
|
-
description: 'Message letting user know that they do not have access to the site
|
|
16
|
-
defaultMessage: "You don't have access to
|
|
15
|
+
description: 'Message letting user know that they do not have access to the site that will be listed below this message',
|
|
16
|
+
defaultMessage: "You don't have access to the following site:"
|
|
17
17
|
},
|
|
18
18
|
checkConnection: {
|
|
19
19
|
id: 'linkDataSource.jira-issues.checkConnection',
|
|
@@ -109,7 +109,9 @@ const DatasourceTableViewWithoutAnalytics = ({
|
|
|
109
109
|
});
|
|
110
110
|
}
|
|
111
111
|
if (status === 'unauthorized') {
|
|
112
|
-
return jsx(AccessRequired,
|
|
112
|
+
return jsx(AccessRequired, {
|
|
113
|
+
url: url
|
|
114
|
+
});
|
|
113
115
|
}
|
|
114
116
|
if (status === 'rejected') {
|
|
115
117
|
return jsx(LoadingError, {
|
|
@@ -13,6 +13,7 @@ import { combine } from '@atlaskit/pragmatic-drag-and-drop/util/combine';
|
|
|
13
13
|
import { N40 } from '@atlaskit/theme/colors';
|
|
14
14
|
import Tooltip from '@atlaskit/tooltip';
|
|
15
15
|
import { startUfoExperience, succeedUfoExperience } from '../../analytics/ufoExperiences';
|
|
16
|
+
import { stickyTableHeadersIndex } from '../../common/zindex';
|
|
16
17
|
import { ColumnPicker } from './column-picker';
|
|
17
18
|
import { DragColumnPreview } from './drag-column-preview';
|
|
18
19
|
import { DraggableTableHeading } from './draggable-table-heading';
|
|
@@ -25,7 +26,7 @@ const tableHeadStyles = css({
|
|
|
25
26
|
background: "var(--ds-surface, #FFF)",
|
|
26
27
|
position: 'sticky',
|
|
27
28
|
top: 0,
|
|
28
|
-
zIndex:
|
|
29
|
+
zIndex: stickyTableHeadersIndex
|
|
29
30
|
});
|
|
30
31
|
const ColumnPickerHeader = styled.th`
|
|
31
32
|
width: 40px;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
2
|
/** @jsx jsx */
|
|
3
|
-
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
3
|
+
import { Fragment, useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
4
4
|
import { css, jsx } from '@emotion/react';
|
|
5
5
|
import { FormattedMessage, FormattedNumber, useIntl } from 'react-intl-next';
|
|
6
6
|
import { v4 as uuidv4 } from 'uuid';
|
|
@@ -30,8 +30,11 @@ import { JiraSiteSelector } from '../site-selector';
|
|
|
30
30
|
import { modalMessages } from './messages';
|
|
31
31
|
const dropdownContainerStyles = css({
|
|
32
32
|
display: 'flex',
|
|
33
|
-
|
|
33
|
+
alignItems: 'center',
|
|
34
|
+
gap: "var(--ds-space-100, 0.5rem)",
|
|
35
|
+
minHeight: '40px' // to prevent vertical shifting when site selector pops in
|
|
34
36
|
});
|
|
37
|
+
|
|
35
38
|
const contentContainerStyles = css({
|
|
36
39
|
display: 'grid',
|
|
37
40
|
maxHeight: '420px',
|
|
@@ -77,11 +80,12 @@ export const getColumnAction = (oldVisibleColumnKeys, newVisibleColumnKeys) => {
|
|
|
77
80
|
export const PlainJiraIssuesConfigModal = props => {
|
|
78
81
|
const {
|
|
79
82
|
datasourceId,
|
|
80
|
-
parameters: initialParameters,
|
|
81
|
-
visibleColumnKeys: initialVisibleColumnKeys,
|
|
82
83
|
onCancel,
|
|
83
84
|
onInsert,
|
|
84
|
-
viewMode = 'issue'
|
|
85
|
+
viewMode = 'issue',
|
|
86
|
+
parameters: initialParameters,
|
|
87
|
+
url: urlBeingEdited,
|
|
88
|
+
visibleColumnKeys: initialVisibleColumnKeys
|
|
85
89
|
} = props;
|
|
86
90
|
const [availableSites, setAvailableSites] = useState([]);
|
|
87
91
|
const [currentViewMode, setCurrentViewMode] = useState(viewMode);
|
|
@@ -129,9 +133,7 @@ export const PlainJiraIssuesConfigModal = props => {
|
|
|
129
133
|
} = useRef(uuidv4());
|
|
130
134
|
const selectedJiraSite = useMemo(() => {
|
|
131
135
|
if (cloudId) {
|
|
132
|
-
|
|
133
|
-
// TODO: unauthorized to edit flow https://product-fabric.atlassian.net/browse/EDM-7216
|
|
134
|
-
return availableSites.find(jiraSite => jiraSite.cloudId === cloudId) || availableSites[0];
|
|
136
|
+
return availableSites.find(jiraSite => jiraSite.cloudId === cloudId);
|
|
135
137
|
} else {
|
|
136
138
|
const currentlyLoggedInSiteUrl = window.location.origin;
|
|
137
139
|
return availableSites.find(jiraSite => jiraSite.url === currentlyLoggedInSiteUrl) || availableSites[0];
|
|
@@ -360,12 +362,12 @@ export const PlainJiraIssuesConfigModal = props => {
|
|
|
360
362
|
extensionKey: extensionKey
|
|
361
363
|
})), [columns, defaultVisibleColumnKeys, handleOnNextPage, handleVisibleColumnKeysChange, hasNextPage, loadDatasourceDetails, modalRenderInstanceId, responseItems, status, visibleColumnKeys, extensionKey]);
|
|
362
364
|
const renderCountModeContent = useCallback(() => {
|
|
363
|
-
const
|
|
365
|
+
const selectedJiraSiteUrl = selectedJiraSite === null || selectedJiraSite === void 0 ? void 0 : selectedJiraSite.url;
|
|
364
366
|
if (status === 'unauthorized') {
|
|
365
367
|
return jsx(AccessRequired, {
|
|
366
|
-
|
|
368
|
+
url: selectedJiraSiteUrl || urlBeingEdited
|
|
367
369
|
});
|
|
368
|
-
} else if (status === 'empty' || !jql || !
|
|
370
|
+
} else if (status === 'empty' || !jql || !selectedJiraSiteUrl) {
|
|
369
371
|
return jsx("div", {
|
|
370
372
|
css: smartLinkContainerStyles
|
|
371
373
|
}, jsx("span", {
|
|
@@ -373,22 +375,23 @@ export const PlainJiraIssuesConfigModal = props => {
|
|
|
373
375
|
css: placeholderSmartLinkStyles
|
|
374
376
|
}, jsx(FormattedMessage, modalMessages.issuesCountSmartCardPlaceholderText)));
|
|
375
377
|
} else {
|
|
376
|
-
const urlWithEncodedJql = `${
|
|
378
|
+
const urlWithEncodedJql = `${selectedJiraSiteUrl}/issues/?jql=${encodeURI(jql)}`;
|
|
377
379
|
return jsx("div", {
|
|
378
380
|
css: smartLinkContainerStyles
|
|
379
381
|
}, jsx(LinkRenderType, {
|
|
380
382
|
url: urlWithEncodedJql
|
|
381
383
|
}));
|
|
382
384
|
}
|
|
383
|
-
}, [jql, selectedJiraSite, status]);
|
|
385
|
+
}, [jql, selectedJiraSite === null || selectedJiraSite === void 0 ? void 0 : selectedJiraSite.url, status, urlBeingEdited]);
|
|
384
386
|
const renderIssuesModeContent = useCallback(() => {
|
|
387
|
+
const selectedJiraSiteUrl = selectedJiraSite === null || selectedJiraSite === void 0 ? void 0 : selectedJiraSite.url;
|
|
385
388
|
if (status === 'rejected' && jqlUrl) {
|
|
386
389
|
return jsx(ModalLoadingError, {
|
|
387
390
|
url: jqlUrl
|
|
388
391
|
});
|
|
389
392
|
} else if (status === 'unauthorized') {
|
|
390
393
|
return jsx(AccessRequired, {
|
|
391
|
-
|
|
394
|
+
url: selectedJiraSiteUrl || urlBeingEdited
|
|
392
395
|
});
|
|
393
396
|
} else if (resolvedWithNoResults) {
|
|
394
397
|
return jsx(NoResults, null);
|
|
@@ -411,24 +414,20 @@ export const PlainJiraIssuesConfigModal = props => {
|
|
|
411
414
|
}));
|
|
412
415
|
}
|
|
413
416
|
return issueLikeDataTableView;
|
|
414
|
-
}, [
|
|
417
|
+
}, [columns.length, currentSearchMethod, issueLikeDataTableView, jql, jqlUrl, resolvedWithNoResults, responseItems.length, retrieveUrlForSmartCardRender, selectedJiraSite === null || selectedJiraSite === void 0 ? void 0 : selectedJiraSite.url, status, urlBeingEdited]);
|
|
415
418
|
return jsx(ModalTransition, null, jsx(Modal, {
|
|
416
|
-
testId:
|
|
419
|
+
testId: "jira-jql-datasource-modal",
|
|
417
420
|
onClose: onCancel,
|
|
418
421
|
width: "calc(100% - 80px)",
|
|
419
422
|
shouldScrollInViewport: true
|
|
420
|
-
}, jsx(ModalHeader, null, jsx(ModalTitle, null,
|
|
423
|
+
}, jsx(ModalHeader, null, jsx(ModalTitle, null, jsx("div", {
|
|
421
424
|
css: dropdownContainerStyles
|
|
422
|
-
}, jsx(FormattedMessage,
|
|
423
|
-
values: {
|
|
424
|
-
siteName: selectedJiraSite === null || selectedJiraSite === void 0 ? void 0 : selectedJiraSite.displayName
|
|
425
|
-
}
|
|
426
|
-
})), jsx(JiraSiteSelector, {
|
|
427
|
-
testId: `jira-jql-datasource-modal--site-selector`,
|
|
425
|
+
}, availableSites.length < 2 ? jsx(FormattedMessage, modalMessages.insertIssuesTitle) : jsx(Fragment, null, jsx(FormattedMessage, modalMessages.insertIssuesTitleManySites), jsx(JiraSiteSelector, {
|
|
428
426
|
availableSites: availableSites,
|
|
429
427
|
onSiteSelection: onSiteSelection,
|
|
430
|
-
selectedJiraSite: selectedJiraSite
|
|
431
|
-
|
|
428
|
+
selectedJiraSite: selectedJiraSite,
|
|
429
|
+
testId: "jira-jql-datasource-modal--site-selector"
|
|
430
|
+
})))), jsx(ModeSwitcher, {
|
|
432
431
|
isCompact: true,
|
|
433
432
|
options: [{
|
|
434
433
|
label: formatMessage(modalMessages.issueViewModeLabel),
|
|
@@ -468,7 +467,7 @@ export const PlainJiraIssuesConfigModal = props => {
|
|
|
468
467
|
appearance: "primary",
|
|
469
468
|
onClick: onInsertPressed,
|
|
470
469
|
isDisabled: isInsertDisabled,
|
|
471
|
-
testId:
|
|
470
|
+
testId: "jira-jql-datasource-modal--insert-button"
|
|
472
471
|
}, jsx(FormattedMessage, modalMessages.insertIssuesButtonText)))));
|
|
473
472
|
};
|
|
474
473
|
const analyticsContextAttributes = {
|
|
@@ -17,8 +17,8 @@ export const modalMessages = defineMessages({
|
|
|
17
17
|
},
|
|
18
18
|
insertIssuesTitleManySites: {
|
|
19
19
|
id: 'linkDataSource.jira-issues.configmodal.insertIssuesTitleManySites',
|
|
20
|
-
description: 'Title for the Jira Issues
|
|
21
|
-
defaultMessage: 'Insert Jira issues from
|
|
20
|
+
description: 'Title for the Jira Issues modal when a user has to select a site to inserting issues from',
|
|
21
|
+
defaultMessage: 'Insert Jira issues from'
|
|
22
22
|
},
|
|
23
23
|
issueViewModeLabel: {
|
|
24
24
|
id: 'linkDataSource.jira-issues.configmodal.issueViewModeLabel',
|
|
@@ -1,11 +1,16 @@
|
|
|
1
|
-
import _extends from "@babel/runtime/helpers/extends";
|
|
2
1
|
/** @jsx jsx */
|
|
3
|
-
import {
|
|
2
|
+
import { useMemo } from 'react';
|
|
3
|
+
import { css, jsx } from '@emotion/react';
|
|
4
4
|
import { useIntl } from 'react-intl-next';
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import ChevronDownIcon from '@atlaskit/icon/glyph/chevron-down';
|
|
5
|
+
import Select from '@atlaskit/select';
|
|
6
|
+
import { siteSelectorIndex } from '../../../common/zindex';
|
|
8
7
|
import { siteSelectorMessages } from './messages';
|
|
8
|
+
const selectStyles = css({
|
|
9
|
+
fontSize: "var(--ds-font-size-100, 14px)",
|
|
10
|
+
fontWeight: "var(--ds-font-weight-medium, 500)",
|
|
11
|
+
lineHeight: "var(--ds-font-lineHeight-200, 20px)",
|
|
12
|
+
zIndex: siteSelectorIndex
|
|
13
|
+
});
|
|
9
14
|
export const JiraSiteSelector = props => {
|
|
10
15
|
const {
|
|
11
16
|
availableSites,
|
|
@@ -13,32 +18,45 @@ export const JiraSiteSelector = props => {
|
|
|
13
18
|
selectedJiraSite,
|
|
14
19
|
testId
|
|
15
20
|
} = props;
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
21
|
+
const {
|
|
22
|
+
formatMessage
|
|
23
|
+
} = useIntl();
|
|
24
|
+
const onChange = newValue => {
|
|
25
|
+
const selectedSite = availableSites.find(site => site.cloudId === (newValue === null || newValue === void 0 ? void 0 : newValue.value));
|
|
26
|
+
if (selectedSite) {
|
|
27
|
+
onSiteSelection(selectedSite);
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
const availableSitesOptions = useMemo(() => availableSites.map(site => ({
|
|
31
|
+
label: site.displayName,
|
|
32
|
+
value: site.cloudId
|
|
33
|
+
})), [availableSites]);
|
|
34
|
+
const selectedSiteOption = selectedJiraSite && {
|
|
35
|
+
label: selectedJiraSite.displayName,
|
|
36
|
+
value: selectedJiraSite.cloudId
|
|
37
|
+
};
|
|
38
|
+
return jsx("span", {
|
|
39
|
+
"data-testid": `${testId}--trigger`
|
|
40
|
+
}, jsx(Select, {
|
|
41
|
+
css: selectStyles,
|
|
42
|
+
classNamePrefix: testId,
|
|
43
|
+
isLoading: availableSites.length === 0,
|
|
44
|
+
onChange: onChange,
|
|
45
|
+
options: availableSitesOptions,
|
|
46
|
+
placeholder: formatMessage(siteSelectorMessages.chooseSite),
|
|
47
|
+
styles: {
|
|
48
|
+
// prevents the popup menu with available sites from being too narrow
|
|
49
|
+
// if the selected site is much shorter than the other options
|
|
50
|
+
menu: ({
|
|
51
|
+
width,
|
|
52
|
+
...css
|
|
53
|
+
}) => ({
|
|
54
|
+
...css,
|
|
55
|
+
minWidth: '100%',
|
|
56
|
+
width: 'max-content'
|
|
57
|
+
})
|
|
58
|
+
},
|
|
19
59
|
testId: testId,
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
...props
|
|
23
|
-
}) => jsx(Button, _extends({}, props, {
|
|
24
|
-
testId: `${testId}--trigger`,
|
|
25
|
-
spacing: "none",
|
|
26
|
-
iconBefore: jsx(ChevronDownIcon, {
|
|
27
|
-
label: intl.formatMessage(siteSelectorMessages.dropdownChevronLabel)
|
|
28
|
-
}),
|
|
29
|
-
ref: triggerRef
|
|
30
|
-
}))
|
|
31
|
-
}, jsx(DropdownItemGroup, null, availableSites.map(availableSite => {
|
|
32
|
-
const {
|
|
33
|
-
displayName,
|
|
34
|
-
cloudId
|
|
35
|
-
} = availableSite;
|
|
36
|
-
const isSelected = displayName === (selectedJiraSite === null || selectedJiraSite === void 0 ? void 0 : selectedJiraSite.displayName);
|
|
37
|
-
return jsx(DropdownItem, {
|
|
38
|
-
isSelected: isSelected,
|
|
39
|
-
key: cloudId,
|
|
40
|
-
onClick: () => onSiteSelection(availableSite),
|
|
41
|
-
testId: testId && `${testId}--dropdown-item${isSelected ? '__selected' : ''}`
|
|
42
|
-
}, displayName);
|
|
43
|
-
})));
|
|
60
|
+
value: selectedSiteOption
|
|
61
|
+
}));
|
|
44
62
|
};
|
|
@@ -1,13 +1,8 @@
|
|
|
1
1
|
import { defineMessages } from 'react-intl-next';
|
|
2
2
|
export const siteSelectorMessages = defineMessages({
|
|
3
|
-
|
|
4
|
-
id: 'linkDataSource.jira-issues.configmodal.
|
|
5
|
-
description: 'Label for
|
|
6
|
-
defaultMessage: '
|
|
7
|
-
},
|
|
8
|
-
selectedJiraSiteLabel: {
|
|
9
|
-
id: 'linkDataSource.jira-issues.configmodal.selectedJiraSiteLabel',
|
|
10
|
-
description: 'Label for a check icon declaring which option is selected',
|
|
11
|
-
defaultMessage: '{siteName} is selected'
|
|
3
|
+
chooseSite: {
|
|
4
|
+
id: 'linkDataSource.jira-issues.configmodal.chooseSite',
|
|
5
|
+
description: 'Label for input letting user know they have to choose a site',
|
|
6
|
+
defaultMessage: 'Choose site'
|
|
12
7
|
}
|
|
13
8
|
});
|
|
@@ -3,7 +3,7 @@ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
|
3
3
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
4
4
|
import { useCallback, useState } from 'react';
|
|
5
5
|
import { validateAql } from '../services/cmdbService';
|
|
6
|
-
export var useValidateAqlText = function useValidateAqlText(workspaceId
|
|
6
|
+
export var useValidateAqlText = function useValidateAqlText(workspaceId) {
|
|
7
7
|
var _useState = useState(false),
|
|
8
8
|
_useState2 = _slicedToArray(_useState, 2),
|
|
9
9
|
loading = _useState2[0],
|
|
@@ -18,43 +18,48 @@ export var useValidateAqlText = function useValidateAqlText(workspaceId, hostnam
|
|
|
18
18
|
setError = _useState6[1];
|
|
19
19
|
var validateAqlText = useCallback( /*#__PURE__*/function () {
|
|
20
20
|
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(aql) {
|
|
21
|
-
var isValid, validateAqlResponse;
|
|
21
|
+
var isValid, message, _validateAqlResponse$, validateAqlResponse;
|
|
22
22
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
23
23
|
while (1) switch (_context.prev = _context.next) {
|
|
24
24
|
case 0:
|
|
25
25
|
setLoading(true);
|
|
26
26
|
setError(undefined);
|
|
27
27
|
isValid = false;
|
|
28
|
-
|
|
29
|
-
_context.
|
|
28
|
+
message = null;
|
|
29
|
+
_context.prev = 4;
|
|
30
|
+
_context.next = 7;
|
|
30
31
|
return validateAql(workspaceId, {
|
|
31
32
|
qlQuery: aql
|
|
32
33
|
});
|
|
33
|
-
case
|
|
34
|
+
case 7:
|
|
34
35
|
validateAqlResponse = _context.sent;
|
|
35
36
|
setIsValidAqlText(validateAqlResponse.isValid);
|
|
36
37
|
isValid = validateAqlResponse.isValid;
|
|
37
|
-
|
|
38
|
+
message = ((_validateAqlResponse$ = validateAqlResponse.errors) === null || _validateAqlResponse$ === void 0 ? void 0 : _validateAqlResponse$.iql) || null;
|
|
39
|
+
_context.next = 16;
|
|
38
40
|
break;
|
|
39
|
-
case
|
|
40
|
-
_context.prev =
|
|
41
|
-
_context.t0 = _context["catch"](
|
|
41
|
+
case 13:
|
|
42
|
+
_context.prev = 13;
|
|
43
|
+
_context.t0 = _context["catch"](4);
|
|
42
44
|
if (_context.t0 instanceof Error) {
|
|
43
45
|
setError(_context.t0);
|
|
44
46
|
} else {
|
|
45
47
|
setError(new Error('Unexpected error occured'));
|
|
46
48
|
}
|
|
47
|
-
case
|
|
48
|
-
_context.prev =
|
|
49
|
+
case 16:
|
|
50
|
+
_context.prev = 16;
|
|
49
51
|
setLoading(false);
|
|
50
|
-
return _context.finish(
|
|
51
|
-
case
|
|
52
|
-
return _context.abrupt("return",
|
|
53
|
-
|
|
52
|
+
return _context.finish(16);
|
|
53
|
+
case 19:
|
|
54
|
+
return _context.abrupt("return", {
|
|
55
|
+
isValid: isValid,
|
|
56
|
+
message: message
|
|
57
|
+
});
|
|
58
|
+
case 20:
|
|
54
59
|
case "end":
|
|
55
60
|
return _context.stop();
|
|
56
61
|
}
|
|
57
|
-
}, _callee, null, [[
|
|
62
|
+
}, _callee, null, [[4, 13, 16, 19]]);
|
|
58
63
|
}));
|
|
59
64
|
return function (_x) {
|
|
60
65
|
return _ref.apply(this, arguments);
|
package/dist/esm/i18n/da.js
CHANGED
|
@@ -41,7 +41,7 @@ export default {
|
|
|
41
41
|
'linkDataSource.jira-issues.refresh': 'Opdater',
|
|
42
42
|
'linkDataSource.jira-issues.unableToLoadItems': 'Kunne ikke indlæse elementer',
|
|
43
43
|
'linkDataSource.jira-issues.unableToLoadResults': 'Kunne ikke indlæse resultater',
|
|
44
|
-
'linkDataSource.modal-initial-state.learnMoreLink': 'Få mere at vide om
|
|
44
|
+
'linkDataSource.modal-initial-state.learnMoreLink': 'Få mere at vide om at søge med JQL.',
|
|
45
45
|
'linkDataSource.modal-initial-state.searchDescription': 'Begynd at indtaste, eller brug JQL til at søge.',
|
|
46
46
|
'linkDataSource.modal-initial-state.searchTitle': 'Søg efter Jira-sager',
|
|
47
47
|
'linkDataSource.render-type.boolean.false': 'Nej',
|
package/dist/esm/i18n/en.js
CHANGED
|
@@ -21,13 +21,14 @@ export default {
|
|
|
21
21
|
'linkDataSource.column-picker.no-all-items-shown-message.line-1': 'Your search returned too many results.',
|
|
22
22
|
'linkDataSource.column-picker.no-all-items-shown-message.line-2': 'Try again with more specific keywords.',
|
|
23
23
|
'linkDataSource.column-picker.search': 'Search for fields',
|
|
24
|
+
'linkDataSource.column-picker.tooltip': 'Configure columns',
|
|
24
25
|
'linkDataSource.jira-issues.accessInstructions': 'To request access, contact your admin.',
|
|
25
26
|
'linkDataSource.jira-issues.accessRequired': "You don't have access to this site",
|
|
26
27
|
'linkDataSource.jira-issues.accessRequiredWithSite': "You don't have access to {siteName}",
|
|
27
28
|
'linkDataSource.jira-issues.checkConnection': 'Check your connection and refresh, or try again later.',
|
|
28
29
|
'linkDataSource.jira-issues.checkConnectionWithSource': 'Check your connection and refresh, or <a>open this query in Jira</a> to review.',
|
|
29
30
|
'linkDataSource.jira-issues.configmodal.basicModeText': 'Basic',
|
|
30
|
-
'linkDataSource.jira-issues.configmodal.basicTextSearchPlaceholder': 'Search',
|
|
31
|
+
'linkDataSource.jira-issues.configmodal.basicTextSearchPlaceholder': 'Search for issues by keyword',
|
|
31
32
|
'linkDataSource.jira-issues.configmodal.cancelButtonText': 'Cancel',
|
|
32
33
|
'linkDataSource.jira-issues.configmodal.countViewModeLabel': 'Count view',
|
|
33
34
|
'linkDataSource.jira-issues.configmodal.dropdownChevronLabel': 'Pick jira site',
|
|
@@ -42,8 +43,9 @@ export default {
|
|
|
42
43
|
'linkDataSource.jira-issues.refresh': 'Refresh',
|
|
43
44
|
'linkDataSource.jira-issues.unableToLoadItems': 'Unable to load items',
|
|
44
45
|
'linkDataSource.jira-issues.unableToLoadResults': 'Unable to load results',
|
|
45
|
-
'linkDataSource.modal-initial-state.
|
|
46
|
-
'linkDataSource.modal-initial-state.
|
|
46
|
+
'linkDataSource.modal-initial-state.beta': 'Beta',
|
|
47
|
+
'linkDataSource.modal-initial-state.learnMoreLink': 'Learn how to search with JQL',
|
|
48
|
+
'linkDataSource.modal-initial-state.searchDescription': 'Use JQL (Jira Query Language) to search for issues.',
|
|
47
49
|
'linkDataSource.modal-initial-state.searchTitle': 'Search for Jira issues',
|
|
48
50
|
'linkDataSource.render-type.boolean.false': 'No',
|
|
49
51
|
'linkDataSource.render-type.boolean.true': 'Yes',
|