Skip to content

Commit b87fed1

Browse files
authored
Merge branch 'main' into CHARTS-8656-basic-dataset-e2e
2 parents 32e1983 + e1b7bcb commit b87fed1

File tree

142 files changed

+2588
-769
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

142 files changed

+2588
-769
lines changed

api/server/charts-engine.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,5 @@ export {
55

66
export {resolveParams} from '../../src/server/components/charts-engine/components/utils';
77
export {getTelemetryCallbacks} from '../../src/server/modes/charts/telemetry';
8+
9+
export {RUNNER_NAME} from '../../src/server/components/charts-engine/runners/constants';

api/server/registry.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,5 @@
11
export {registry} from '../../src/server/registry';
22
export {registerAppPlugins} from '../../src/server/registry/utils/register-app-plugins';
3+
4+
export {OnEmbedsControllerBeforeResponse} from '../../src/server/registry/units/common/functions-map/on-embeds-controller-before-response';
5+
export {OnEmbedsControllerStart} from '../../src/server/registry/units/common/functions-map/on-embeds-controller-start';

package-lock.json

Lines changed: 12 additions & 12 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@
7171
"@diplodoc/transform": "^4.60.3",
7272
"@gravity-ui/app-layout": "^2.1.0",
7373
"@gravity-ui/browserslist-config": "^4.3.0",
74-
"@gravity-ui/chartkit": "^7.37.3",
75-
"@gravity-ui/dashkit": "^9.3.1",
74+
"@gravity-ui/chartkit": "^7.37.5",
75+
"@gravity-ui/dashkit": "^10.0.0",
7676
"@gravity-ui/date-utils": "^2.5.6",
7777
"@gravity-ui/expresskit": "^2.11.1",
7878
"@gravity-ui/gateway": "^4.10.4",
@@ -271,4 +271,4 @@
271271
"optionalDependencies": {
272272
"fsevents": "^2.3.2"
273273
}
274-
}
274+
}

src/i18n-keysets/dash.main.view/en.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,29 @@
22
"button_apply-remove-global-item": "Delete",
33
"button_cancel": "Cancel",
44
"button_close": "Close",
5+
"button_create-new": "Copy",
56
"button_edit-panel-chart": "Chart",
67
"button_edit-panel-editor-selector": "Selector (JS)",
78
"button_edit-panel-image": "Image",
89
"button_edit-panel-paste": "Paste",
910
"button_edit-panel-selector": "Selector",
1011
"button_edit-panel-text": "Text",
1112
"button_edit-panel-title": "Header",
13+
"button_link": "Change settings",
1214
"button_links": "Links",
1315
"label_details": "Details",
1416
"label_failed-copy-global-item": "The copied selector settings make it impossible to display it on the current tab. Change the display settings in the original selector before trying to copy it.",
1517
"label_fixed-collapsed-default": "Collapse by default",
18+
"label_link-group-selector-to-tab": "A selector group with the same content already exists on another tab. You can change the display settings of the original group so that it displays on the current tab, or copy the selector group and create a new group independent from the original.",
19+
"label_link-selector-to-tab": "This selector is already added to another tab. You can change the display settings of the original selector so that it displays on the current tab, or copy it to create a new independent selector.",
1620
"label_loading": "Uploading",
1721
"label_pin": "Pin",
1822
"label_remove-global-selector": "The selector is displayed on multiple tabs. Are you sure you want to delete it from all tabs?",
1923
"label_unpin": "Unpin",
2024
"label_unpin-all": "Unpin all",
2125
"label_updating": "Updating",
2226
"title_failed-copy-global-item": "Failed to copy selector",
27+
"title_link-selector-to-tab": "Change the selector display settings?",
2328
"title_remove-global-selector": "Deleting a selector",
2429
"toast_paste-invalid-workbook-entry": "Pasting widgets linked to objects from another workbook is forbidden",
2530
"toast_unsaved": "There are unsaved changes on the page. Are you sure?",

src/i18n-keysets/dash.main.view/ru.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,29 @@
22
"button_apply-remove-global-item": "Удалить",
33
"button_cancel": "Отменить",
44
"button_close": "Закрыть",
5+
"button_create-new": "Скопировать",
56
"button_edit-panel-chart": "Чарт",
67
"button_edit-panel-editor-selector": "Селектор (JS)",
78
"button_edit-panel-image": "Изображение",
89
"button_edit-panel-paste": "Вставка",
910
"button_edit-panel-selector": "Селектор",
1011
"button_edit-panel-text": "Текст",
1112
"button_edit-panel-title": "Заголовок",
13+
"button_link": "Изменить настройки",
1214
"button_links": "Связи",
1315
"label_details": "Подробнее",
1416
"label_failed-copy-global-item": "Из-за настроек скопированного селектора его нельзя показывать на текущей вкладке. Измените настройки показа на вкладках в исходном селекторе и повторите попытку его копирования.",
1517
"label_fixed-collapsed-default": "Скрывать по умолчанию",
18+
"label_link-group-selector-to-tab": "Такая группа селекторов уже добавлена на другой вкладке. Вы можете изменить настройки показа исходной группы селекторов, чтобы она отображалась также на текущей вкладке, или скопировать группу селекторов и создать новую группу, независимую от исходной.",
19+
"label_link-selector-to-tab": "Этот селектор уже добавлен на другой вкладке. Вы можете изменить настройки показа исходного селектора, чтобы он отображался также на текущей вкладке, или скопировать его, чтобы создать новый независимый селектор.",
1620
"label_loading": "Загрузка",
1721
"label_pin": "Закрепить",
1822
"label_remove-global-selector": "Этот селектор показывается на нескольких вкладках. Вы действительно хотите удалить его со всех вкладок?",
1923
"label_unpin": "Открепить",
2024
"label_unpin-all": "Открепить всё",
2125
"label_updating": "Обновление",
2226
"title_failed-copy-global-item": "Невозможно скопировать селектор",
27+
"title_link-selector-to-tab": "Изменить настройки показа селекторов?",
2328
"title_remove-global-selector": "Удаление селектора",
2429
"toast_paste-invalid-workbook-entry": "Не допускается вставка виджетов, у которых есть связи с объектами из другого воркбука",
2530
"toast_unsaved": "На странице есть несохраненные изменения. Вы уверены?",

src/server/components/charts-engine/components/processor/data-fetcher.ts

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -185,13 +185,13 @@ type FetchSourceResult = {
185185
uiUrl?: string | null;
186186
dataUrl?: string | null;
187187
datasetId?: string | null;
188-
datasetFields?: PartialDatasetField[];
189188
hideInInspector?: boolean;
190189
url?: string | null;
191190
message?: string;
192191
code?: string | null;
193192
data?: unknown;
194193
details?: string;
194+
source?: Source;
195195
};
196196

197197
export type AuthParams = {
@@ -211,7 +211,12 @@ export function addAuthHeaders({
211211
}
212212

213213
export class DataFetcher {
214-
static fetch({
214+
static async fetch(options: DataFetcherOptions) {
215+
const result = await this.fetchSources(options);
216+
return result.result;
217+
}
218+
219+
static fetchSources({
215220
sources,
216221
ctx,
217222
postprocess = null,
@@ -227,7 +232,10 @@ export class DataFetcher {
227232
telemetryCallbacks,
228233
cacheClient,
229234
sourcesConfig,
230-
}: DataFetcherOptions): Promise<Record<string, DataFetcherResult>> {
235+
}: DataFetcherOptions): Promise<{
236+
result: Record<string, DataFetcherResult>;
237+
sources?: Record<string, Source>;
238+
}> {
231239
const fetchingTimeout = ctx.config.fetchingTimeout || DEFAULT_FETCHING_TIMEOUT;
232240

233241
const fetchingStartTime = Date.now();
@@ -291,10 +299,11 @@ export class DataFetcher {
291299
.then((results) => {
292300
const failed: Record<string, Record<string, string>> = {};
293301
const fetched: Record<string, DataFetcherResult> = {};
302+
const fetchedSources: Record<string, Source> = {};
294303

295304
clearTimeout(overallTimeout);
296305

297-
(results as DataFetcherResult[]).forEach((result) => {
306+
(results as FetchSourceResult[]).forEach((result) => {
298307
Object.keys(result).forEach((key) => {
299308
if ((result as Record<string, any>)[key] === null) {
300309
delete (result as Record<string, any>)[key];
@@ -329,15 +338,19 @@ export class DataFetcher {
329338
result,
330339
ctx.config.runResponseWhitelist,
331340
) as DataFetcherResult;
341+
342+
if (result.source) {
343+
fetchedSources[result.sourceId] = result.source;
344+
}
332345
}
333346
});
334347

335348
if (Object.keys(failed).length) {
336349
reject(failed);
337350
} else if (postprocess) {
338-
resolve(postprocess(fetched));
351+
resolve({result: postprocess(fetched), sources: fetchedSources});
339352
} else {
340-
resolve(fetched);
353+
resolve({result: fetched, sources: fetchedSources});
341354
}
342355
})
343356
.catch((error) => {
@@ -1103,6 +1116,7 @@ export class DataFetcher {
11031116
fetchResolve({
11041117
sourceId: sourceName,
11051118
sourceType,
1119+
source,
11061120
body: data,
11071121
responseHeaders: response.headers,
11081122
status: response.statusCode,
@@ -1111,7 +1125,6 @@ export class DataFetcher {
11111125
uiUrl: userTargetUriUi,
11121126
dataUrl: publicTargetUri,
11131127
datasetId,
1114-
datasetFields: source.datasetFields,
11151128
hideInInspector,
11161129
data: publicSourceData,
11171130
/** @deprecated use uiUrl or dataUrl */

src/server/components/charts-engine/components/processor/index.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -583,20 +583,21 @@ export class Processor {
583583
cacheClient,
584584
sourcesConfig,
585585
};
586-
resolvedSources = await DataFetcher.fetch({
586+
const dataFetcherResult = await DataFetcher.fetchSources({
587587
sources,
588588
...dataFetcherOptions,
589589
});
590+
resolvedSources = dataFetcherResult.result;
590591

591-
if (builder.buildPaletteSources) {
592+
if (builder.buildPaletteSources && dataFetcherResult.sources) {
592593
const paletteSourcesResult = await builder.buildPaletteSources({
593-
sources: resolvedSources,
594+
sources: dataFetcherResult.sources,
594595
});
595-
const resolvedPalettes = await DataFetcher.fetch({
596+
const resolvedPalettesResult = await DataFetcher.fetchSources({
596597
sources: paletteSourcesResult.exports as Record<string, Source>,
597598
...dataFetcherOptions,
598599
});
599-
Object.assign(resolvedSources, resolvedPalettes);
600+
Object.assign(resolvedSources, resolvedPalettesResult.result);
600601
}
601602

602603
if (Object.keys(resolvedSources).length) {

src/server/components/charts-engine/components/processor/types.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import type {
88
IChartEditor,
99
StringParams,
1010
} from '../../../../../shared';
11+
import type {Source} from '../../types';
1112

1213
import type {
1314
CommentsFetcherFetchResult,
@@ -165,9 +166,7 @@ export type ChartBuilder = {
165166
actionParams: StringParams;
166167
hooks: ProcessorHooks;
167168
}) => Promise<ChartBuilderResult>;
168-
buildPaletteSources?: (args: {
169-
sources?: Record<string, DataFetcherResult>;
170-
}) => Promise<ChartBuilderResult>;
169+
buildPaletteSources?: (args: {sources?: Record<string, Source>}) => Promise<ChartBuilderResult>;
171170
buildChartLibraryConfig: (args: {
172171
data?: unknown;
173172
params: StringParams;

0 commit comments

Comments
 (0)