Commit 3bf91a3f authored by wenmo's avatar wenmo

修复 批量启用禁用集群、关闭tab无法更新位置及无法取消FlinkSQLEnv的bug

parent 983bbecb
......@@ -97,9 +97,9 @@ Dinky(原 Dlink):
### 版本
抢先体验( main 主支):dlink-0.5.0-SNAPSHOT
抢先体验( main 主支):dlink-0.6.0-SNAPSHOT
稳定版本( 0.4.0 分支):dlink-0.4.0
稳定版本( 0.5.0 分支):dlink-0.5.0
### 从安装包开始
......
......@@ -39,6 +39,15 @@ public class ClusterController {
return Result.succeed(Asserts.isNotNull(cluster.getId())?"修改成功":"新增成功");
}
/**
* 启用和禁用
*/
@PutMapping("/enable")
public Result enableCluster(@RequestBody Cluster cluster) throws Exception {
clusterService.enableCluster(cluster);
return Result.succeed("修改成功");
}
/**
* 动态查询列表
*/
......
......@@ -32,5 +32,7 @@ public interface ClusterService extends ISuperService<Cluster> {
Cluster registersCluster(Cluster cluster);
boolean enableCluster(Cluster cluster);
int clearCluster();
}
......@@ -95,6 +95,14 @@ public class ClusterServiceImpl extends SuperServiceImpl<ClusterMapper, Cluster>
return cluster;
}
@Override
public boolean enableCluster(Cluster cluster) {
Cluster clusterInfo = getById(cluster);
clusterInfo.setEnabled(cluster.getEnabled());
checkHealth(clusterInfo);
return updateById(clusterInfo);
}
@Override
public int clearCluster() {
List<Cluster> clusters = listAutoEnable();
......
......@@ -64,7 +64,7 @@ public class StudioServiceImpl implements StudioService {
private TaskService taskService;
private void addFlinkSQLEnv(AbstractStatementDTO statementDTO){
if(Asserts.isNotNull(statementDTO.getEnvId())){
if(Asserts.isNotNull(statementDTO.getEnvId())&&statementDTO.getEnvId()!=0){
Task task = taskService.getTaskInfoById(statementDTO.getEnvId());
if(Asserts.isNotNull(task)&&Asserts.isNotNullString(task.getStatement())) {
statementDTO.setStatement(task.getStatement() + "\r\n" + statementDTO.getStatement());
......
......@@ -167,7 +167,7 @@ public class TaskServiceImpl extends SuperServiceImpl<TaskMapper, Task> implemen
private JobConfig buildJobConfig(Task task){
boolean isJarTask = isJarTask(task);
if(!isJarTask&&Asserts.isNotNull(task.getEnvId())){
if(!isJarTask&&Asserts.isNotNull(task.getEnvId())&&task.getEnvId()!=0){
Task envTask = getTaskInfoById(task.getEnvId());
if(Asserts.isNotNull(envTask)&&Asserts.isNotNullString(envTask.getStatement())) {
task.setStatement(envTask.getStatement() + "\r\n" + task.getStatement());
......
......@@ -50,7 +50,9 @@ const StudioSetting = (props: any) => {
};
const getEnvOptions = () => {
const itemList = [];
const itemList = [<Option key={0} value={0} label='无'>
</Option>];
for (const item of env) {
const tag = (<>{item.enabled ? <Badge status="success"/> : <Badge status="error"/>}
{item.fragment ? <PaperClipOutlined /> : undefined}{item.alias}</>);
......@@ -188,6 +190,7 @@ const StudioSetting = (props: any) => {
placeholder="选择 FlinkSQL 环境,非必填"
allowClear
optionLabelProp="label"
defaultValue={0} value={0}
>
{getEnvOptions()}
</Select>
......
......@@ -5,6 +5,7 @@ import {StateType} from '@/pages/FlinkSqlStudio/model';
import styles from './index.less';
import StudioEdit from '../StudioEdit';
import {DIALECT} from '../conf';
import StudioHome from "@/components/Studio/StudioHome";
const {TabPane} = Tabs;
......@@ -105,6 +106,8 @@ const EditorTabs = (props: any) => {
);
return (
<>
{tabs.panes.length === 0?<StudioHome width={width} />:
<Tabs
hideAdd
type="editable-card"
......@@ -125,7 +128,8 @@ const EditorTabs = (props: any) => {
/>
</TabPane>
))}
</Tabs>
</Tabs>}
</>
);
};
......
......@@ -126,7 +126,6 @@ const StudioTree: React.FC<StudioTreeProps> = (props) => {
setAvailable(true);
},200);
if(node?.isLeaf&&node.taskId) {
// @ts-ignore
for(let item of tabs.panes){
if(item.key==node.taskId){
dispatch&&dispatch({
......
......@@ -17,11 +17,10 @@ import {
import {loadSettings} from "@/pages/Settings/function";
import DraggleLayout from "@/components/DraggleLayout";
import DraggleVerticalLayout from "@/components/DraggleLayout/DraggleVerticalLayout";
import {Dispatch} from "@@/plugin-dva/connect";
const Studio = (props: any) => {
const {rightClickMenu, toolHeight, toolLeftWidth,toolRightWidth,tabs,current, dispatch} = props;
const {rightClickMenu, toolHeight, toolLeftWidth,toolRightWidth,dispatch} = props;
const [form] = Form.useForm();
const VIEW = {
leftToolWidth: 300,
......@@ -51,6 +50,7 @@ const Studio = (props: any) => {
};
}, [onResize]);
useEffect(() => {
loadSettings(dispatch);
getFillAllByVersion('', dispatch);
showCluster(dispatch);
......@@ -60,6 +60,7 @@ const Studio = (props: any) => {
listSession(dispatch);
showJars(dispatch);
showEnv(dispatch);
}, []);
const onClick = () => {
if (rightClickMenu) {
......@@ -133,7 +134,7 @@ const Studio = (props: any) => {
}}/>
</Col>
<Col>
{tabs.panes.length === 0 ?<StudioHome width={size.width - toolRightWidth - toolLeftWidth} />:<StudioTabs width={size.width - toolRightWidth - toolLeftWidth}/>}
<StudioTabs width={size.width - toolRightWidth - toolLeftWidth}/>
</Col>
</DraggleLayout>
<Col id='StudioRightTool' className={styles["vertical-tabs"]}>
......@@ -158,6 +159,4 @@ export default connect(({Studio}: { Studio: StateType }) => ({
toolHeight: Studio.toolHeight,
toolLeftWidth: Studio.toolLeftWidth,
toolRightWidth: Studio.toolRightWidth,
tabs: Studio.tabs,
current: Studio.current,
}))(Studio);
......@@ -367,7 +367,7 @@ const ClusterTableList: React.FC<{}> = (props: any) => {
okText: '确认',
cancelText: '取消',
onOk: async () => {
await updateEnabled(url, selectedRowsState, true);
await updateEnabled(url+'/enable', selectedRowsState, true);
setSelectedRows([]);
actionRef.current?.reloadAndRest?.();
}
......@@ -382,7 +382,7 @@ const ClusterTableList: React.FC<{}> = (props: any) => {
okText: '确认',
cancelText: '取消',
onOk: async () => {
await updateEnabled(url, selectedRowsState, false);
await updateEnabled(url+'/enable', selectedRowsState, false);
setSelectedRows([]);
actionRef.current?.reloadAndRest?.();
}
......
......@@ -317,6 +317,7 @@ const Model: ModelType = {
tabs: {
...payload,
},
currentPath: ['引导页'],
};
}
return {
......@@ -328,6 +329,7 @@ const Model: ModelType = {
tabs: {
...payload,
},
currentPath: newCurrent.path,
};
},
deleteTabByKey(state, {payload}) {
......
......@@ -559,6 +559,9 @@ export default (): React.ReactNode => {
<li>
<Link>修改 草稿为引导页</Link>
</li>
<li>
<Link>修复 批量启用禁用集群、关闭tab无法更新位置及无法取消FlinkSQLEnv的bug</Link>
</li>
</ul>
</Paragraph>
</Timeline.Item>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment