This is an automated email from the ASF dual-hosted git repository.
benjobs pushed a commit to branch dev-2.1.3
in repository https://gitbox.apache.org/repos/asf/incubator-streampark.git
The following commit(s) were added to refs/heads/dev-2.1.3 by this push:
new f6b972e06 [Improve] start flink job from cp/sp improvement
f6b972e06 is described below
commit f6b972e0635b0bf21c85df13e8eabdf7e6f6d867
Author: benjobs <[email protected]>
AuthorDate: Fri Feb 16 01:30:58 2024 +0800
[Improve] start flink job from cp/sp improvement
---
.../src/locales/lang/en/flink/app.ts | 6 ++--
.../src/locales/lang/zh-CN/flink/app.ts | 5 ++--
.../src/locales/lang/zh-CN/setting/flinkCluster.ts | 2 +-
.../components/AppView/StartApplicationModal.vue | 32 +++++++++++++++++++---
4 files changed, 36 insertions(+), 9 deletions(-)
diff --git
a/streampark-console/streampark-console-webapp/src/locales/lang/en/flink/app.ts
b/streampark-console/streampark-console-webapp/src/locales/lang/en/flink/app.ts
index 755533a2b..c91427c96 100644
---
a/streampark-console/streampark-console-webapp/src/locales/lang/en/flink/app.ts
+++
b/streampark-console/streampark-console-webapp/src/locales/lang/en/flink/app.ts
@@ -169,9 +169,10 @@ export default {
fromSavepoint: 'From savepoint',
savepointTip: 'Restore the job from savepoint or latest checkpoint',
savepointInput:
- 'Select or manually specify the savepoint/checkpoint path, Same
as:-allowNonRestoredState(-n)',
+ 'Specify the savepoint/checkpoint path (Double-click to switch between
"manual input" and "dropdown selection")',
ignoreRestored: 'Ignore failed',
- ignoreRestoredTip: 'ignore savepoint then cannot be restored,',
+ ignoreRestoredTip:
+ 'ignore savepoint then cannot be restored, Same
as:-allowNonRestoredState(-n)',
recheck: 'the associated project has changed and this job need to be
rechecked',
changed: 'the application has changed.',
},
@@ -219,6 +220,7 @@ export default {
enableDrain: 'Send MAX_WATERMARK before taking the savepoint and stopping
the pipeline',
invalidSavePoint: 'Custom savepoint path invalid: ',
canceling: 'The current job is canceling',
+ starting: 'The current job is starting',
},
dashboard: {
availableTaskSlots: 'Available Task Slots',
diff --git
a/streampark-console/streampark-console-webapp/src/locales/lang/zh-CN/flink/app.ts
b/streampark-console/streampark-console-webapp/src/locales/lang/zh-CN/flink/app.ts
index ce3096ad9..8e7aba279 100644
---
a/streampark-console/streampark-console-webapp/src/locales/lang/zh-CN/flink/app.ts
+++
b/streampark-console/streampark-console-webapp/src/locales/lang/zh-CN/flink/app.ts
@@ -153,14 +153,14 @@ export default {
logTitle: '启动日志 : 应用名称 [ {0} ]',
refreshTime: '上次刷新时间',
refresh: '刷新',
- start: '开启应用',
+ start: '启动作业',
stop: '停止应用',
savepoint: '触发 Savepoint',
recheck: '关联的项目已更改,需要重新检查此作业',
changed: '应用程序已更改。',
fromSavepoint: 'Savepoint 恢复',
savepointTip: '作业从 savepoint 或 checkpoint 恢复状态',
- savepointInput: '选择或者手动指定 savepoint/checkpoint 路径',
+ savepointInput: '指定 savepoint/checkpoint 路径 (双击切换"手动输入"或"下拉框选择")',
ignoreRestored: '跳过恢复失败',
ignoreRestoredTip: '当状态恢复失败时跳过错误,作业继续运行, 同参数:-allowNonRestoredState(-n)',
},
@@ -208,6 +208,7 @@ export default {
enableDrain: '在触发 savepoint 和停止作业之前发送 MAX_WATERMARK',
invalidSavePoint: 'savepoint 路径无效: ',
canceling: '当前作业正在停止中',
+ starting: '当前作业正在q启动中',
},
dashboard: {
availableTaskSlots: '可用的任务槽数',
diff --git
a/streampark-console/streampark-console-webapp/src/locales/lang/zh-CN/setting/flinkCluster.ts
b/streampark-console/streampark-console-webapp/src/locales/lang/zh-CN/setting/flinkCluster.ts
index 92be88546..eaf9e396a 100644
---
a/streampark-console/streampark-console-webapp/src/locales/lang/zh-CN/setting/flinkCluster.ts
+++
b/streampark-console/streampark-console-webapp/src/locales/lang/zh-CN/setting/flinkCluster.ts
@@ -18,7 +18,7 @@ export default {
title: 'Flink 集群',
detail: '查看集群详情',
stop: '停止集群',
- start: '开启集群',
+ start: '启动集群',
edit: '编辑集群',
delete: '确定要删除此集群 ?',
form: {
diff --git
a/streampark-console/streampark-console-webapp/src/views/flink/app/components/AppView/StartApplicationModal.vue
b/streampark-console/streampark-console-webapp/src/views/flink/app/components/AppView/StartApplicationModal.vue
index 88632acbb..6e3a347ca 100644
---
a/streampark-console/streampark-console-webapp/src/views/flink/app/components/AppView/StartApplicationModal.vue
+++
b/streampark-console/streampark-console-webapp/src/views/flink/app/components/AppView/StartApplicationModal.vue
@@ -24,7 +24,7 @@
});
</script>
<script setup lang="ts" name="StartApplicationModal">
- import { h } from 'vue';
+ import { h, ref } from 'vue';
import { Select, Input, Tag } from 'ant-design-vue';
import { BasicForm, useForm } from '/@/components/Form';
import { SvgIcon, Icon } from '/@/components/Icon';
@@ -39,6 +39,8 @@
const { t } = useI18n();
const { Swal } = useMessage();
const router = useRouter();
+ const selectInput = ref<boolean>(false);
+ const selectValue = ref<string>(null);
const emits = defineEmits(['register', 'updateOption']);
const receiveData = reactive<Recordable>({});
@@ -113,12 +115,18 @@
await handleDoSubmit();
}
+ async function handleReset() {
+ selectInput.value = false;
+ selectValue.value = null;
+ }
+
/* submit */
async function handleDoSubmit() {
try {
const formValue = (await validate()) as Recordable;
const savePointed = formValue.startSavePointed;
const savePointPath = savePointed ? formValue['startSavePoint'] : null;
+ handleReset();
const { data } = await fetchStart({
id: receiveData.application.id,
savePointed,
@@ -128,7 +136,7 @@
if (data.data) {
Swal.fire({
icon: 'success',
- title: 'The current job is starting',
+ title: t('flink.app.operation.starting'),
showConfirmButton: false,
timer: 2000,
});
@@ -165,12 +173,23 @@
console.error(error);
}
}
+
+ function handleSavepoint(model, field, input) {
+ selectInput.value = input;
+ if (input) {
+ selectValue.value = model[field];
+ model[field] = null;
+ } else {
+ model[field] = selectValue.value;
+ }
+ }
</script>
<template>
<BasicModal
@register="registerModal"
:minHeight="100"
@ok="handleSubmit"
+ @cancel="handleReset"
:okText="t('common.apply')"
:cancelText="t('common.cancelText')"
>
@@ -181,8 +200,12 @@
<BasicForm @register="registerForm" class="!pt-40px">
<template #savepoint="{ model, field }">
- <template v-if="receiveData.historySavePoint &&
receiveData.historySavePoint.length > 0">
- <Select allow-clear v-model:value="model[field]">
+ <template
+ v-if="
+ !selectInput && receiveData.historySavePoint &&
receiveData.historySavePoint.length > 0
+ "
+ >
+ <Select v-model:value="model[field]"
@dblclick="handleSavepoint(model, field, true)">
<SelectOption v-for="(k, i) in receiveData.historySavePoint"
:key="i" :value="k.path">
<span style="color: darkgrey">
<Icon icon="ant-design:clock-circle-outlined" />
@@ -202,6 +225,7 @@
</template>
<Input
v-else
+ @dblclick="handleSavepoint(model, field, false)"
type="text"
placeholder="Please enter savepoint manually"
v-model:value="model[field]"