Skip to content

Commit 3968935

Browse files
authored
Merge pull request #956 from Cuiyansong/master
fix(view): save view model version
2 parents 7933c41 + 171b1dd commit 3968935

File tree

6 files changed

+22
-7
lines changed

6 files changed

+22
-7
lines changed

frontend/src/app/migration/constants.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,3 +32,5 @@ export const APP_SEMANTIC_VERSIONS = [
3232
APP_VERSION_BETA_1,
3333
APP_VERSION_BETA_2,
3434
];
35+
export const APP_CURRENT_VERSION =
36+
APP_SEMANTIC_VERSIONS[APP_SEMANTIC_VERSIONS.length - 1];

frontend/src/app/pages/MainPage/pages/ViewPage/Main/Outputs/Results.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import {
2424
import { Tooltip } from 'antd';
2525
import { Popup, ToolbarButton, Tree } from 'app/components';
2626
import useI18NPrefix from 'app/hooks/useI18NPrefix';
27+
import { APP_CURRENT_VERSION } from 'app/migration/constants';
2728
import classnames from 'classnames';
2829
import { memo, useCallback, useMemo } from 'react';
2930
import { useDispatch, useSelector } from 'react-redux';
@@ -108,6 +109,7 @@ export const Results = memo(({ height = 0, width = 0 }: ResultsProps) => {
108109
model: {
109110
...model,
110111
hierarchy: clonedHierarchyModel,
112+
version: APP_CURRENT_VERSION,
111113
},
112114
}),
113115
);

frontend/src/app/pages/MainPage/pages/ViewPage/Main/Properties/DataModelTree/DataModelTree.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import { Form, Input, Select, Tooltip } from 'antd';
2121
import { Popup, ToolbarButton, Tree } from 'app/components';
2222
import useI18NPrefix from 'app/hooks/useI18NPrefix';
2323
import useStateModal, { StateModalSize } from 'app/hooks/useStateModal';
24+
import { APP_CURRENT_VERSION } from 'app/migration/constants';
2425
import { selectRoles } from 'app/pages/MainPage/pages/MemberPage/slice/selectors';
2526
import { SubjectTypes } from 'app/pages/MainPage/pages/PermissionPage/constants';
2627
import classnames from 'classnames';
@@ -206,6 +207,7 @@ const DataModelTree: FC = memo(() => {
206207
model: {
207208
...currentEditingView?.model,
208209
hierarchy,
210+
version: APP_CURRENT_VERSION,
209211
},
210212
}),
211213
);

frontend/src/app/pages/MainPage/pages/ViewPage/slice/thunks.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,12 @@
1818

1919
import { createAsyncThunk } from '@reduxjs/toolkit';
2020
import sqlReservedWords from 'app/assets/javascripts/sqlReservedWords';
21+
import { APP_CURRENT_VERSION } from 'app/migration/constants';
2122
import { migrateViewConfig } from 'app/migration/ViewConfig/migrationViewDetailConfig';
2223
import beginViewModelMigration from 'app/migration/ViewConfig/migrationViewModelConfig';
2324
import { selectOrgId } from 'app/pages/MainPage/slice/selectors';
2425
import i18n from 'i18next';
26+
import produce from 'immer';
2527
import { monaco } from 'react-monaco-editor';
2628
import { RootState } from 'types';
2729
import { request, request2 } from 'utils/request';
@@ -200,11 +202,11 @@ export const saveView = createAsyncThunk<
200202
SaveViewParams,
201203
{ state: RootState }
202204
>('view/saveView', async ({ resolve, isSaveAs, currentView }, { getState }) => {
203-
const currentEditingView = isSaveAs
205+
let currentEditingView = isSaveAs
204206
? (currentView as ViewViewModel)
205207
: (selectCurrentEditingView(getState()) as ViewViewModel);
206208
const orgId = selectOrgId(getState());
207-
209+
208210
try {
209211
if (isNewView(currentEditingView.id) || isSaveAs) {
210212
const { data } = await request<View>({

frontend/src/app/pages/MainPage/pages/ViewPage/utils.tsx

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
*/
1818

1919
import { TreeDataNode } from 'antd';
20+
import { APP_CURRENT_VERSION } from 'app/migration/constants';
2021
import { FONT_WEIGHT_MEDIUM, SPACE_UNIT } from 'styles/StyleConstants';
2122
import { Nullable } from 'types';
2223
import { isEmptyArray } from 'utils/object';
@@ -47,7 +48,9 @@ export function generateEditingView(
4748
index: null,
4849
script: '',
4950
config: {},
50-
model: {},
51+
model: {
52+
version: APP_CURRENT_VERSION,
53+
},
5154
originVariables: [],
5255
variables: [],
5356
originColumnPermissions: [],
@@ -117,7 +120,10 @@ export function transformQueryResultToModelAndDataSource(
117120
{},
118121
),
119122
);
120-
return { model: { ...lastModel, columns: newColumns }, dataSource };
123+
return {
124+
model: { ...lastModel, columns: newColumns },
125+
dataSource,
126+
};
121127
}
122128

123129
export function getHierarchyColumn(

frontend/src/app/utils/internalChartHelper.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -381,9 +381,10 @@ export function transformMeta(model?: string) {
381381
return undefined;
382382
}
383383
const jsonObj = JSON.parse(model);
384-
return Object.keys(jsonObj).flatMap(colKey => {
385-
const column = jsonObj[colKey];
386-
if (!isEmptyArray(column.children)) {
384+
const HierarchyModel = 'hierarchy' in jsonObj ? jsonObj.hierarchy : jsonObj;
385+
return Object.keys(HierarchyModel || {}).flatMap(colKey => {
386+
const column = HierarchyModel[colKey];
387+
if (!isEmptyArray(column?.children)) {
387388
return column.children.map(c => ({
388389
...c,
389390
id: c.name,

0 commit comments

Comments
 (0)