ydb-embedded-ui 1.0.2 → 1.0.3
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGELOG.md +9 -0
- package/dist/containers/Storage/StorageGroups/StorageGroups.tsx +4 -1
- package/dist/containers/Storage/StorageNodes/StorageNodes.tsx +6 -1
- package/dist/containers/Tenant/QueryEditor/QueryEditor.js +2 -9
- package/dist/containers/Tenant/QueryEditor/QueryExplain/QueryExplain.js +25 -21
- package/dist/containers/Tenant/QueryEditor/QueryExplain/QueryExplain.scss +1 -0
- package/dist/containers/Tenant/QueryEditor/QueryResult/QueryResult.scss +1 -0
- package/dist/store/reducers/executeQuery.js +4 -1
- package/dist/store/reducers/storage.js +2 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
@@ -1,5 +1,14 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
### [1.0.3](https://www.github.com/ydb-platform/ydb-embedded-ui/compare/v1.0.2...v1.0.3) (2022-03-21)
|
4
|
+
|
5
|
+
|
6
|
+
### Bug Fixes
|
7
|
+
|
8
|
+
* query status should not be shown when query is loading ([d214eee](https://www.github.com/ydb-platform/ydb-embedded-ui/commit/d214eee575b63341082f0be33163e3fce520df88))
|
9
|
+
* should set correct initial current index in queries history ([c3228d7](https://www.github.com/ydb-platform/ydb-embedded-ui/commit/c3228d7a6a0c810982db1bdbec7762889ac44ffa))
|
10
|
+
* **Storage:** wording fixed [YDB-1552] ([3f487ff](https://www.github.com/ydb-platform/ydb-embedded-ui/commit/3f487ff01117963760b676d14281e93e5f3002c0))
|
11
|
+
|
3
12
|
### [1.0.2](https://www.github.com/ydb-platform/ydb-embedded-ui/compare/v1.0.1...v1.0.2) (2022-03-11)
|
4
13
|
|
5
14
|
|
@@ -210,13 +210,16 @@ function StorageGroups({data, tableSettings, visibleEntities, nodes}: StorageGro
|
|
210
210
|
];
|
211
211
|
|
212
212
|
let columns = allColumns;
|
213
|
+
let emptyMessage = 'No such groups.';
|
213
214
|
|
214
215
|
if (visibleEntities === VisibleEntities.Space) {
|
215
216
|
columns = allColumns.filter((col) => col.name !== TableColumnsIds.Missing);
|
217
|
+
emptyMessage = 'No storage groups with space problems.';
|
216
218
|
}
|
217
219
|
|
218
220
|
if (visibleEntities === VisibleEntities.Missing) {
|
219
221
|
columns = allColumns.filter((col) => col.name !== TableColumnsIds.UsedSpaceFlag);
|
222
|
+
emptyMessage = 'No degraded groups.';
|
220
223
|
}
|
221
224
|
return data ? (
|
222
225
|
<DataTable
|
@@ -226,7 +229,7 @@ function StorageGroups({data, tableSettings, visibleEntities, nodes}: StorageGro
|
|
226
229
|
columns={columns}
|
227
230
|
settings={tableSettings}
|
228
231
|
initialSortOrder={setSortOrder(visibleEntities)}
|
229
|
-
emptyDataMessage=
|
232
|
+
emptyDataMessage={emptyMessage}
|
230
233
|
/>
|
231
234
|
) : null;
|
232
235
|
}
|
@@ -114,9 +114,14 @@ function StorageNodes({data, tableSettings, visibleEntities}: StorageGroupsProps
|
|
114
114
|
];
|
115
115
|
|
116
116
|
let columns = allColumns;
|
117
|
+
let emptyMessage = 'No such nodes.';
|
117
118
|
|
118
119
|
if (visibleEntities === VisibleEntities.Space) {
|
119
120
|
columns = allColumns.filter((col) => col.name !== TableColumnsIds.Missing);
|
121
|
+
emptyMessage = 'No nodes with space problems.';
|
122
|
+
}
|
123
|
+
if (visibleEntities === VisibleEntities.Missing) {
|
124
|
+
emptyMessage = 'No degraded nodes.';
|
120
125
|
}
|
121
126
|
|
122
127
|
return data ? (
|
@@ -127,7 +132,7 @@ function StorageNodes({data, tableSettings, visibleEntities}: StorageGroupsProps
|
|
127
132
|
columns={columns}
|
128
133
|
settings={tableSettings}
|
129
134
|
initialSortOrder={setSortOrder(visibleEntities)}
|
130
|
-
emptyDataMessage=
|
135
|
+
emptyDataMessage={emptyMessage}
|
131
136
|
/>
|
132
137
|
) : null;
|
133
138
|
}
|
@@ -154,7 +154,7 @@ function QueryEditor(props) {
|
|
154
154
|
useEffect(() => {
|
155
155
|
const {monacoHotKey, setMonacoHotKey} = props;
|
156
156
|
if (monacoHotKey === null) {
|
157
|
-
return
|
157
|
+
return;
|
158
158
|
}
|
159
159
|
setMonacoHotKey(null);
|
160
160
|
switch (monacoHotKey) {
|
@@ -464,19 +464,12 @@ function QueryEditor(props) {
|
|
464
464
|
};
|
465
465
|
|
466
466
|
const getExecuteResult = () => {
|
467
|
-
const {
|
468
|
-
data = [],
|
469
|
-
error,
|
470
|
-
loading,
|
471
|
-
history: {queries},
|
472
|
-
} = props.executeQuery;
|
467
|
+
const {data = [], error} = props.executeQuery;
|
473
468
|
|
474
469
|
if (error) {
|
475
470
|
return error.data || error;
|
476
471
|
} else if (data.length > 0) {
|
477
472
|
return data;
|
478
|
-
} else if (!loading && queries.length) {
|
479
|
-
return 'The request was successful';
|
480
473
|
} else {
|
481
474
|
return '';
|
482
475
|
}
|
@@ -252,28 +252,32 @@ function QueryExplain(props) {
|
|
252
252
|
return (
|
253
253
|
<React.Fragment>
|
254
254
|
<div className={b('controls')}>
|
255
|
-
|
256
|
-
<
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
255
|
+
{!props.loading && (
|
256
|
+
<React.Fragment>
|
257
|
+
<div className={b('controls-right')}>
|
258
|
+
<QueryExecutionStatus hasError={Boolean(props.error)} />
|
259
|
+
{!props.error && (
|
260
|
+
<React.Fragment>
|
261
|
+
<Divider />
|
262
|
+
<RadioButton
|
263
|
+
options={explainOptions}
|
264
|
+
value={activeOption}
|
265
|
+
onUpdate={onSelectOption}
|
266
|
+
/>
|
267
|
+
</React.Fragment>
|
268
|
+
)}
|
269
|
+
</div>
|
270
|
+
<div className={b('controls-left')}>
|
271
|
+
<EnableFullscreenButton disabled={Boolean(props.error)} />
|
272
|
+
<PaneVisibilityToggleButtons
|
273
|
+
onCollapse={props.onCollapseResults}
|
274
|
+
onExpand={props.onExpandResults}
|
275
|
+
isCollapsed={props.isResultsCollapsed}
|
276
|
+
initialDirection="bottom"
|
264
277
|
/>
|
265
|
-
</
|
266
|
-
|
267
|
-
|
268
|
-
<div className={b('controls-left')}>
|
269
|
-
<EnableFullscreenButton disabled={Boolean(props.error)} />
|
270
|
-
<PaneVisibilityToggleButtons
|
271
|
-
onCollapse={props.onCollapseResults}
|
272
|
-
onExpand={props.onExpandResults}
|
273
|
-
isCollapsed={props.isResultsCollapsed}
|
274
|
-
initialDirection="bottom"
|
275
|
-
/>
|
276
|
-
</div>
|
278
|
+
</div>
|
279
|
+
</React.Fragment>
|
280
|
+
)}
|
277
281
|
</div>
|
278
282
|
<div className={b('result')}>{renderContent()}</div>
|
279
283
|
</React.Fragment>
|
@@ -34,7 +34,10 @@ const initialState = {
|
|
34
34
|
input: '',
|
35
35
|
history: {
|
36
36
|
queries: queriesHistoryInitial.slice(sliceLimit < 0 ? 0 : sliceLimit),
|
37
|
-
currentIndex:
|
37
|
+
currentIndex:
|
38
|
+
queriesHistoryInitial.length > MAXIMUM_QUERIES_IN_HISTORY
|
39
|
+
? MAXIMUM_QUERIES_IN_HISTORY - 1
|
40
|
+
: queriesHistoryInitial.length - 1,
|
38
41
|
},
|
39
42
|
runAction: RUN_ACTIONS_VALUES.script,
|
40
43
|
monacoHotKey: null,
|