@finos/legend-application-query 7.0.1 → 8.1.0
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/lib/LegendQueryAppEvent.d.ts +1 -1
- package/lib/LegendQueryAppEvent.d.ts.map +1 -1
- package/lib/LegendQueryAppEvent.js +1 -1
- package/lib/LegendQueryAppEvent.js.map +1 -1
- package/lib/application/LegendQuery.d.ts.map +1 -1
- package/lib/application/LegendQuery.js +1 -1
- package/lib/application/LegendQuery.js.map +1 -1
- package/lib/application/LegendQueryApplicationConfig.d.ts +6 -7
- package/lib/application/LegendQueryApplicationConfig.d.ts.map +1 -1
- package/lib/application/LegendQueryApplicationConfig.js +9 -4
- package/lib/application/LegendQueryApplicationConfig.js.map +1 -1
- package/lib/components/LegendQueryApplication.d.ts +1 -2
- package/lib/components/LegendQueryApplication.d.ts.map +1 -1
- package/lib/components/LegendQueryApplication.js +2 -3
- package/lib/components/LegendQueryApplication.js.map +1 -1
- package/lib/components/LegendQueryBaseStoreProvider.d.ts +1 -3
- package/lib/components/LegendQueryBaseStoreProvider.d.ts.map +1 -1
- package/lib/components/LegendQueryBaseStoreProvider.js +2 -2
- package/lib/components/LegendQueryBaseStoreProvider.js.map +1 -1
- package/lib/components/QueryEditor.d.ts +1 -0
- package/lib/components/QueryEditor.d.ts.map +1 -1
- package/lib/components/QueryEditor.js +42 -28
- package/lib/components/QueryEditor.js.map +1 -1
- package/lib/components/QueryEditorComponentTestUtils.d.ts.map +1 -1
- package/lib/components/QueryEditorComponentTestUtils.js +2 -2
- package/lib/components/QueryEditorComponentTestUtils.js.map +1 -1
- package/lib/components/QueryEditorStoreProvider.d.ts.map +1 -1
- package/lib/components/QueryEditorStoreProvider.js +6 -8
- package/lib/components/QueryEditorStoreProvider.js.map +1 -1
- package/lib/components/QuerySetup.d.ts +6 -0
- package/lib/components/QuerySetup.d.ts.map +1 -1
- package/lib/components/QuerySetup.js +152 -34
- package/lib/components/QuerySetup.js.map +1 -1
- package/lib/components/QuerySetupStoreProvider.d.ts.map +1 -1
- package/lib/components/QuerySetupStoreProvider.js +2 -3
- package/lib/components/QuerySetupStoreProvider.js.map +1 -1
- package/lib/index.css +2 -2
- package/lib/index.css.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/package.json +9 -9
- package/lib/stores/LegendQueryApplicationPlugin.d.ts +10 -2
- package/lib/stores/LegendQueryApplicationPlugin.d.ts.map +1 -1
- package/lib/stores/LegendQueryApplicationPlugin.js.map +1 -1
- package/lib/stores/LegendQueryBaseStore.d.ts +2 -3
- package/lib/stores/LegendQueryBaseStore.d.ts.map +1 -1
- package/lib/stores/LegendQueryBaseStore.js +2 -2
- package/lib/stores/LegendQueryBaseStore.js.map +1 -1
- package/lib/stores/LegendQueryRouter.d.ts +16 -1
- package/lib/stores/LegendQueryRouter.d.ts.map +1 -1
- package/lib/stores/LegendQueryRouter.js +17 -2
- package/lib/stores/LegendQueryRouter.js.map +1 -1
- package/lib/stores/QueryEditorStore.d.ts +15 -12
- package/lib/stores/QueryEditorStore.d.ts.map +1 -1
- package/lib/stores/QueryEditorStore.js +24 -19
- package/lib/stores/QueryEditorStore.js.map +1 -1
- package/lib/stores/QueryEditorStoreTestUtils.d.ts.map +1 -1
- package/lib/stores/QueryEditorStoreTestUtils.js +1 -0
- package/lib/stores/QueryEditorStoreTestUtils.js.map +1 -1
- package/lib/stores/QuerySetupStore.d.ts +35 -9
- package/lib/stores/QuerySetupStore.d.ts.map +1 -1
- package/lib/stores/QuerySetupStore.js +188 -17
- package/lib/stores/QuerySetupStore.js.map +1 -1
- package/package.json +17 -17
- package/src/LegendQueryAppEvent.ts +1 -1
- package/src/application/LegendQuery.tsx +1 -4
- package/src/application/LegendQueryApplicationConfig.ts +30 -10
- package/src/components/LegendQueryApplication.tsx +3 -9
- package/src/components/LegendQueryBaseStoreProvider.tsx +4 -14
- package/src/components/QueryEditor.tsx +77 -61
- package/src/components/QueryEditorComponentTestUtils.tsx +1 -6
- package/src/components/QueryEditorStoreProvider.tsx +3 -14
- package/src/components/QuerySetup.tsx +411 -50
- package/src/components/QuerySetupStoreProvider.tsx +2 -11
- package/src/index.ts +1 -0
- package/src/stores/LegendQueryApplicationPlugin.ts +18 -2
- package/src/stores/LegendQueryBaseStore.ts +2 -4
- package/src/stores/LegendQueryRouter.ts +35 -2
- package/src/stores/QueryEditorStore.ts +34 -30
- package/src/stores/QueryEditorStoreTestUtils.ts +1 -0
- package/src/stores/QuerySetupStore.ts +275 -20
@@ -34,23 +34,39 @@ import {
|
|
34
34
|
type Mapping,
|
35
35
|
type PackageableRuntime,
|
36
36
|
type Service,
|
37
|
+
type QueryInfo,
|
37
38
|
QuerySearchSpecification,
|
38
39
|
BasicGraphManagerState,
|
40
|
+
CORE_PURE_PATH,
|
39
41
|
} from '@finos/legend-graph';
|
40
42
|
import {
|
41
43
|
type DepotServerClient,
|
44
|
+
type StoredEntity,
|
42
45
|
ProjectData,
|
46
|
+
DepotScope,
|
43
47
|
} from '@finos/legend-server-depot';
|
44
|
-
import type
|
48
|
+
import { type Entity, parseProjectIdentifier } from '@finos/legend-storage';
|
45
49
|
import { LEGEND_QUERY_APP_EVENT } from '../LegendQueryAppEvent.js';
|
46
|
-
import {
|
50
|
+
import {
|
51
|
+
APPLICATION_EVENT,
|
52
|
+
DEFAULT_TYPEAHEAD_SEARCH_LIMIT,
|
53
|
+
DEFAULT_TYPEAHEAD_SEARCH_MINIMUM_SEARCH_LENGTH,
|
54
|
+
TAB_SIZE,
|
55
|
+
} from '@finos/legend-application';
|
47
56
|
import type { LegendQueryPluginManager } from '../application/LegendQueryPluginManager.js';
|
48
57
|
import type { LegendQueryApplicationStore } from './LegendQueryBaseStore.js';
|
49
58
|
import {
|
50
59
|
type MappingRuntimeCompatibilityAnalysisResult,
|
51
60
|
type ServiceExecutionAnalysisResult,
|
61
|
+
type ServiceInfo,
|
52
62
|
getQueryBuilderGraphManagerExtension,
|
63
|
+
extractServiceInfo,
|
53
64
|
} from '@finos/legend-query-builder';
|
65
|
+
import {
|
66
|
+
EXTERNAL_APPLICATION_NAVIGATION__generateStudioProductionizeQueryUrl,
|
67
|
+
EXTERNAL_APPLICATION_NAVIGATION__generateStudioUpdateExistingServiceQueryUrl,
|
68
|
+
EXTERNAL_APPLICATION_NAVIGATION__generateStudioUpdateProjectServiceQueryUrl,
|
69
|
+
} from './LegendQueryRouter.js';
|
54
70
|
|
55
71
|
export abstract class QuerySetupState {
|
56
72
|
setupStore: QuerySetupStore;
|
@@ -65,6 +81,7 @@ export class EditExistingQuerySetupState extends QuerySetupState {
|
|
65
81
|
loadQueriesState = ActionState.create();
|
66
82
|
loadQueryState = ActionState.create();
|
67
83
|
currentQuery?: LightQuery | undefined;
|
84
|
+
currentQueryInfo?: QueryInfo | undefined;
|
68
85
|
showCurrentUserQueriesOnly = false;
|
69
86
|
|
70
87
|
constructor(setupStore: QuerySetupStore) {
|
@@ -73,6 +90,7 @@ export class EditExistingQuerySetupState extends QuerySetupState {
|
|
73
90
|
makeObservable(this, {
|
74
91
|
queries: observable,
|
75
92
|
currentQuery: observable,
|
93
|
+
currentQueryInfo: observable,
|
76
94
|
showCurrentUserQueriesOnly: observable,
|
77
95
|
setShowCurrentUserQueriesOnly: action,
|
78
96
|
setCurrentQuery: flow,
|
@@ -92,6 +110,10 @@ export class EditExistingQuerySetupState extends QuerySetupState {
|
|
92
110
|
(yield this.setupStore.graphManagerState.graphManager.getLightQuery(
|
93
111
|
queryId,
|
94
112
|
)) as LightQuery;
|
113
|
+
this.currentQueryInfo =
|
114
|
+
(yield this.setupStore.graphManagerState.graphManager.getQueryInfo(
|
115
|
+
queryId,
|
116
|
+
)) as QueryInfo;
|
95
117
|
} catch (error) {
|
96
118
|
assertErrorThrown(error);
|
97
119
|
this.setupStore.applicationStore.notifyError(error);
|
@@ -104,14 +126,15 @@ export class EditExistingQuerySetupState extends QuerySetupState {
|
|
104
126
|
}
|
105
127
|
|
106
128
|
*loadQueries(searchText: string): GeneratorFn<void> {
|
107
|
-
const isValidSearchString =
|
129
|
+
const isValidSearchString =
|
130
|
+
searchText.length >= DEFAULT_TYPEAHEAD_SEARCH_MINIMUM_SEARCH_LENGTH;
|
108
131
|
this.loadQueriesState.inProgress();
|
109
132
|
try {
|
110
133
|
const searchSpecification = new QuerySearchSpecification();
|
111
134
|
searchSpecification.searchTerm = isValidSearchString
|
112
135
|
? searchText
|
113
136
|
: undefined;
|
114
|
-
searchSpecification.limit =
|
137
|
+
searchSpecification.limit = DEFAULT_TYPEAHEAD_SEARCH_LIMIT;
|
115
138
|
searchSpecification.showCurrentUserQueriesOnly =
|
116
139
|
this.showCurrentUserQueriesOnly;
|
117
140
|
this.queries =
|
@@ -121,8 +144,186 @@ export class EditExistingQuerySetupState extends QuerySetupState {
|
|
121
144
|
this.loadQueriesState.pass();
|
122
145
|
} catch (error) {
|
123
146
|
assertErrorThrown(error);
|
147
|
+
this.setupStore.applicationStore.notifyError(error);
|
148
|
+
this.loadQueriesState.fail();
|
149
|
+
}
|
150
|
+
}
|
151
|
+
}
|
152
|
+
|
153
|
+
export class QueryProductionizationSetupState extends QuerySetupState {
|
154
|
+
queries: LightQuery[] = [];
|
155
|
+
loadQueriesState = ActionState.create();
|
156
|
+
loadQueryState = ActionState.create();
|
157
|
+
currentQuery?: LightQuery | undefined;
|
158
|
+
currentQueryInfo?: QueryInfo | undefined;
|
159
|
+
|
160
|
+
constructor(setupStore: QuerySetupStore) {
|
161
|
+
super(setupStore);
|
162
|
+
|
163
|
+
makeObservable(this, {
|
164
|
+
queries: observable,
|
165
|
+
currentQuery: observable,
|
166
|
+
currentQueryInfo: observable,
|
167
|
+
setCurrentQuery: flow,
|
168
|
+
loadQueries: flow,
|
169
|
+
});
|
170
|
+
}
|
171
|
+
|
172
|
+
async loadQueryProductionizer(): Promise<void> {
|
173
|
+
if (!this.currentQuery) {
|
174
|
+
return;
|
175
|
+
}
|
176
|
+
|
177
|
+
// fetch project data
|
178
|
+
const project = ProjectData.serialization.fromJson(
|
179
|
+
await this.setupStore.depotServerClient.getProject(
|
180
|
+
this.currentQuery.groupId,
|
181
|
+
this.currentQuery.artifactId,
|
182
|
+
),
|
183
|
+
);
|
184
|
+
|
185
|
+
// find the matching SDLC instance
|
186
|
+
const projectIDPrefix = parseProjectIdentifier(project.projectId).prefix;
|
187
|
+
const matchingSDLCEntry =
|
188
|
+
this.setupStore.applicationStore.config.studioInstances.find(
|
189
|
+
(entry) => entry.sdlcProjectIDPrefix === projectIDPrefix,
|
190
|
+
);
|
191
|
+
if (matchingSDLCEntry) {
|
192
|
+
this.setupStore.applicationStore.setBlockingAlert({
|
193
|
+
message: `Loading query...`,
|
194
|
+
prompt: 'Please do not close the application',
|
195
|
+
showLoading: true,
|
196
|
+
});
|
197
|
+
this.setupStore.applicationStore.navigator.jumpTo(
|
198
|
+
EXTERNAL_APPLICATION_NAVIGATION__generateStudioProductionizeQueryUrl(
|
199
|
+
matchingSDLCEntry.url,
|
200
|
+
this.currentQuery.id,
|
201
|
+
),
|
202
|
+
);
|
203
|
+
} else {
|
204
|
+
this.setupStore.applicationStore.notifyWarning(
|
205
|
+
`Can't find the corresponding SDLC instance to productionize the query`,
|
206
|
+
);
|
207
|
+
}
|
208
|
+
}
|
209
|
+
|
210
|
+
*setCurrentQuery(queryId: string | undefined): GeneratorFn<void> {
|
211
|
+
if (queryId) {
|
212
|
+
try {
|
213
|
+
this.loadQueryState.inProgress();
|
214
|
+
this.currentQuery =
|
215
|
+
(yield this.setupStore.graphManagerState.graphManager.getLightQuery(
|
216
|
+
queryId,
|
217
|
+
)) as LightQuery;
|
218
|
+
this.currentQueryInfo =
|
219
|
+
(yield this.setupStore.graphManagerState.graphManager.getQueryInfo(
|
220
|
+
queryId,
|
221
|
+
)) as QueryInfo;
|
222
|
+
} catch (error) {
|
223
|
+
assertErrorThrown(error);
|
224
|
+
this.setupStore.applicationStore.notifyError(error);
|
225
|
+
} finally {
|
226
|
+
this.loadQueryState.reset();
|
227
|
+
}
|
228
|
+
} else {
|
229
|
+
this.currentQuery = undefined;
|
230
|
+
}
|
231
|
+
}
|
232
|
+
|
233
|
+
*loadQueries(searchText: string): GeneratorFn<void> {
|
234
|
+
const isValidSearchString =
|
235
|
+
searchText.length >= DEFAULT_TYPEAHEAD_SEARCH_MINIMUM_SEARCH_LENGTH;
|
236
|
+
this.loadQueriesState.inProgress();
|
237
|
+
try {
|
238
|
+
const searchSpecification = new QuerySearchSpecification();
|
239
|
+
searchSpecification.searchTerm = isValidSearchString
|
240
|
+
? searchText
|
241
|
+
: undefined;
|
242
|
+
searchSpecification.limit = DEFAULT_TYPEAHEAD_SEARCH_LIMIT;
|
243
|
+
this.queries =
|
244
|
+
(yield this.setupStore.graphManagerState.graphManager.searchQueries(
|
245
|
+
searchSpecification,
|
246
|
+
)) as LightQuery[];
|
247
|
+
this.loadQueriesState.pass();
|
248
|
+
} catch (error) {
|
249
|
+
assertErrorThrown(error);
|
250
|
+
this.setupStore.applicationStore.notifyError(error);
|
124
251
|
this.loadQueriesState.fail();
|
252
|
+
}
|
253
|
+
}
|
254
|
+
}
|
255
|
+
|
256
|
+
export class UpdateExistingServiceQuerySetupState extends QuerySetupState {
|
257
|
+
services: ServiceInfo[] = [];
|
258
|
+
loadServicesState = ActionState.create();
|
259
|
+
|
260
|
+
constructor(setupStore: QuerySetupStore) {
|
261
|
+
super(setupStore);
|
262
|
+
|
263
|
+
makeObservable(this, {
|
264
|
+
services: observable,
|
265
|
+
loadServices: flow,
|
266
|
+
});
|
267
|
+
}
|
268
|
+
|
269
|
+
async loadServiceUpdater(serviceInfo: ServiceInfo): Promise<void> {
|
270
|
+
// fetch project data
|
271
|
+
const project = ProjectData.serialization.fromJson(
|
272
|
+
await this.setupStore.depotServerClient.getProject(
|
273
|
+
serviceInfo.groupId,
|
274
|
+
serviceInfo.artifactId,
|
275
|
+
),
|
276
|
+
);
|
277
|
+
|
278
|
+
// find the matching SDLC instance
|
279
|
+
const projectIDPrefix = parseProjectIdentifier(project.projectId).prefix;
|
280
|
+
const matchingSDLCEntry =
|
281
|
+
this.setupStore.applicationStore.config.studioInstances.find(
|
282
|
+
(entry) => entry.sdlcProjectIDPrefix === projectIDPrefix,
|
283
|
+
);
|
284
|
+
if (matchingSDLCEntry) {
|
285
|
+
this.setupStore.applicationStore.setBlockingAlert({
|
286
|
+
message: `Loading service...`,
|
287
|
+
prompt: 'Please do not close the application',
|
288
|
+
showLoading: true,
|
289
|
+
});
|
290
|
+
this.setupStore.applicationStore.navigator.jumpTo(
|
291
|
+
EXTERNAL_APPLICATION_NAVIGATION__generateStudioUpdateExistingServiceQueryUrl(
|
292
|
+
matchingSDLCEntry.url,
|
293
|
+
serviceInfo.groupId,
|
294
|
+
serviceInfo.artifactId,
|
295
|
+
serviceInfo.path,
|
296
|
+
),
|
297
|
+
);
|
298
|
+
} else {
|
299
|
+
this.setupStore.applicationStore.notifyWarning(
|
300
|
+
`Can't find the corresponding SDLC instance to update the service`,
|
301
|
+
);
|
302
|
+
}
|
303
|
+
}
|
304
|
+
|
305
|
+
*loadServices(searchText: string): GeneratorFn<void> {
|
306
|
+
const isValidSearchString =
|
307
|
+
searchText.length >= DEFAULT_TYPEAHEAD_SEARCH_MINIMUM_SEARCH_LENGTH;
|
308
|
+
this.loadServicesState.inProgress();
|
309
|
+
try {
|
310
|
+
this.services = (
|
311
|
+
(yield this.setupStore.depotServerClient.getEntitiesByClassifierPath(
|
312
|
+
CORE_PURE_PATH.SERVICE,
|
313
|
+
{
|
314
|
+
search: isValidSearchString ? searchText : undefined,
|
315
|
+
// NOTE: since this mode is meant for contribution, we want to load services
|
316
|
+
// on the snapshot version (i.e. merged to the default branch on the projects)
|
317
|
+
scope: DepotScope.SNAPSHOT,
|
318
|
+
limit: DEFAULT_TYPEAHEAD_SEARCH_LIMIT,
|
319
|
+
},
|
320
|
+
)) as StoredEntity[]
|
321
|
+
).map((storedEntity) => extractServiceInfo(storedEntity));
|
322
|
+
this.loadServicesState.pass();
|
323
|
+
} catch (error) {
|
324
|
+
assertErrorThrown(error);
|
125
325
|
this.setupStore.applicationStore.notifyError(error);
|
326
|
+
this.loadServicesState.fail();
|
126
327
|
}
|
127
328
|
}
|
128
329
|
}
|
@@ -195,8 +396,8 @@ export class CreateMappingQuerySetupState extends QuerySetupState {
|
|
195
396
|
this.loadProjectsState.pass();
|
196
397
|
} catch (error) {
|
197
398
|
assertErrorThrown(error);
|
198
|
-
this.loadProjectsState.fail();
|
199
399
|
this.setupStore.applicationStore.notifyError(error);
|
400
|
+
this.loadProjectsState.fail();
|
200
401
|
}
|
201
402
|
}
|
202
403
|
|
@@ -226,13 +427,67 @@ export class CreateMappingQuerySetupState extends QuerySetupState {
|
|
226
427
|
|
227
428
|
this.surveyMappingRuntimeCompatibilityState.pass();
|
228
429
|
} catch (error) {
|
229
|
-
this.surveyMappingRuntimeCompatibilityState.fail();
|
230
430
|
assertErrorThrown(error);
|
231
431
|
this.setupStore.applicationStore.log.error(
|
232
|
-
LogEvent.create(LEGEND_QUERY_APP_EVENT.
|
432
|
+
LogEvent.create(LEGEND_QUERY_APP_EVENT.GENERIC_FAILURE),
|
233
433
|
error,
|
234
434
|
);
|
235
435
|
this.setupStore.applicationStore.notifyError(error);
|
436
|
+
this.surveyMappingRuntimeCompatibilityState.fail();
|
437
|
+
}
|
438
|
+
}
|
439
|
+
}
|
440
|
+
|
441
|
+
export class LoadProjectServiceQuerySetupState extends QuerySetupState {
|
442
|
+
projects: ProjectData[] = [];
|
443
|
+
loadProjectsState = ActionState.create();
|
444
|
+
|
445
|
+
constructor(setupStore: QuerySetupStore) {
|
446
|
+
super(setupStore);
|
447
|
+
|
448
|
+
makeObservable(this, {
|
449
|
+
projects: observable,
|
450
|
+
loadProjects: flow,
|
451
|
+
});
|
452
|
+
}
|
453
|
+
|
454
|
+
*loadProjects(): GeneratorFn<void> {
|
455
|
+
this.loadProjectsState.inProgress();
|
456
|
+
try {
|
457
|
+
this.projects = (
|
458
|
+
(yield this.setupStore.depotServerClient.getProjects()) as PlainObject<ProjectData>[]
|
459
|
+
).map((v) => ProjectData.serialization.fromJson(v));
|
460
|
+
this.loadProjectsState.pass();
|
461
|
+
} catch (error) {
|
462
|
+
assertErrorThrown(error);
|
463
|
+
this.setupStore.applicationStore.notifyError(error);
|
464
|
+
this.loadProjectsState.fail();
|
465
|
+
}
|
466
|
+
}
|
467
|
+
|
468
|
+
async loadProjectServiceUpdater(project: ProjectData): Promise<void> {
|
469
|
+
// find the matching SDLC instance
|
470
|
+
const projectIDPrefix = parseProjectIdentifier(project.projectId).prefix;
|
471
|
+
const matchingSDLCEntry =
|
472
|
+
this.setupStore.applicationStore.config.studioInstances.find(
|
473
|
+
(entry) => entry.sdlcProjectIDPrefix === projectIDPrefix,
|
474
|
+
);
|
475
|
+
if (matchingSDLCEntry) {
|
476
|
+
this.setupStore.applicationStore.setBlockingAlert({
|
477
|
+
message: `Loading service project...`,
|
478
|
+
prompt: 'Please do not close the application',
|
479
|
+
showLoading: true,
|
480
|
+
});
|
481
|
+
this.setupStore.applicationStore.navigator.jumpTo(
|
482
|
+
EXTERNAL_APPLICATION_NAVIGATION__generateStudioUpdateProjectServiceQueryUrl(
|
483
|
+
matchingSDLCEntry.url,
|
484
|
+
project.projectId,
|
485
|
+
),
|
486
|
+
);
|
487
|
+
} else {
|
488
|
+
this.setupStore.applicationStore.notifyWarning(
|
489
|
+
`Can't find the corresponding SDLC instance to load project '${project.projectId}'`,
|
490
|
+
);
|
236
491
|
}
|
237
492
|
}
|
238
493
|
}
|
@@ -242,7 +497,7 @@ export interface ServiceExecutionOption {
|
|
242
497
|
key?: string | undefined;
|
243
498
|
}
|
244
499
|
|
245
|
-
export class
|
500
|
+
export class CloneServiceQuerySetupState extends QuerySetupState {
|
246
501
|
projects: ProjectData[] = [];
|
247
502
|
loadProjectsState = ActionState.create();
|
248
503
|
loadServiceExecutionsState = ActionState.create();
|
@@ -296,8 +551,8 @@ export class LoadServiceQuerySetupState extends QuerySetupState {
|
|
296
551
|
this.loadProjectsState.pass();
|
297
552
|
} catch (error) {
|
298
553
|
assertErrorThrown(error);
|
299
|
-
this.loadProjectsState.fail();
|
300
554
|
this.setupStore.applicationStore.notifyError(error);
|
555
|
+
this.loadProjectsState.fail();
|
301
556
|
}
|
302
557
|
}
|
303
558
|
|
@@ -340,29 +595,29 @@ export class LoadServiceQuerySetupState extends QuerySetupState {
|
|
340
595
|
);
|
341
596
|
this.loadServiceExecutionsState.pass();
|
342
597
|
} catch (error) {
|
343
|
-
this.loadServiceExecutionsState.fail();
|
344
598
|
assertErrorThrown(error);
|
345
599
|
this.setupStore.applicationStore.log.error(
|
346
|
-
LogEvent.create(LEGEND_QUERY_APP_EVENT.
|
600
|
+
LogEvent.create(LEGEND_QUERY_APP_EVENT.GENERIC_FAILURE),
|
347
601
|
error,
|
348
602
|
);
|
349
603
|
this.setupStore.applicationStore.notifyError(error);
|
604
|
+
this.loadServiceExecutionsState.fail();
|
350
605
|
}
|
351
606
|
}
|
352
607
|
}
|
353
608
|
|
354
609
|
export class QuerySetupStore {
|
355
|
-
applicationStore: LegendQueryApplicationStore;
|
356
|
-
graphManagerState: BasicGraphManagerState;
|
357
|
-
depotServerClient: DepotServerClient;
|
358
|
-
pluginManager: LegendQueryPluginManager;
|
610
|
+
readonly applicationStore: LegendQueryApplicationStore;
|
611
|
+
readonly graphManagerState: BasicGraphManagerState;
|
612
|
+
readonly depotServerClient: DepotServerClient;
|
613
|
+
readonly pluginManager: LegendQueryPluginManager;
|
614
|
+
|
615
|
+
readonly initState = ActionState.create();
|
359
616
|
querySetupState?: QuerySetupState | undefined;
|
360
|
-
initState = ActionState.create();
|
361
617
|
|
362
618
|
constructor(
|
363
619
|
applicationStore: LegendQueryApplicationStore,
|
364
620
|
depotServerClient: DepotServerClient,
|
365
|
-
pluginManager: LegendQueryPluginManager,
|
366
621
|
) {
|
367
622
|
makeObservable(this, {
|
368
623
|
querySetupState: observable,
|
@@ -372,11 +627,11 @@ export class QuerySetupStore {
|
|
372
627
|
|
373
628
|
this.applicationStore = applicationStore;
|
374
629
|
this.graphManagerState = new BasicGraphManagerState(
|
375
|
-
pluginManager,
|
630
|
+
applicationStore.pluginManager,
|
376
631
|
applicationStore.log,
|
377
632
|
);
|
378
633
|
this.depotServerClient = depotServerClient;
|
379
|
-
this.pluginManager = pluginManager;
|
634
|
+
this.pluginManager = applicationStore.pluginManager;
|
380
635
|
}
|
381
636
|
|
382
637
|
setSetupState(val: QuerySetupState | undefined): void {
|
@@ -420,7 +675,7 @@ export class QuerySetupStore {
|
|
420
675
|
} catch (error) {
|
421
676
|
assertErrorThrown(error);
|
422
677
|
this.applicationStore.log.error(
|
423
|
-
LogEvent.create(LEGEND_QUERY_APP_EVENT.
|
678
|
+
LogEvent.create(LEGEND_QUERY_APP_EVENT.GENERIC_FAILURE),
|
424
679
|
error,
|
425
680
|
);
|
426
681
|
this.applicationStore.setBlockingAlert({
|