diff --git a/kyuubi-server/web-ui/src/api/editor/index.ts b/kyuubi-server/web-ui/src/api/editor/index.ts
index 67163af8782..daaf0471c12 100644
--- a/kyuubi-server/web-ui/src/api/editor/index.ts
+++ b/kyuubi-server/web-ui/src/api/editor/index.ts
@@ -68,3 +68,10 @@ export function getLog(identifier: string): any {
method: 'get'
})
}
+
+export function closeOperation(identifier: string) {
+ return request({
+ url: `api/v1/admin/operations/${identifier}`,
+ method: 'delete'
+ })
+}
diff --git a/kyuubi-server/web-ui/src/locales/en_US/index.ts b/kyuubi-server/web-ui/src/locales/en_US/index.ts
index 62f6bd62504..9bb0144ff40 100644
--- a/kyuubi-server/web-ui/src/locales/en_US/index.ts
+++ b/kyuubi-server/web-ui/src/locales/en_US/index.ts
@@ -38,7 +38,10 @@ export default {
failure_reason: 'Failure Reason',
session_properties: 'Session Properties',
no_data: 'No data',
+ no_log: 'No log',
run_sql_tips: 'Run a SQL to get result',
+ result: 'Result',
+ log: 'Log',
operation: {
text: 'Operation',
delete_confirm: 'Delete Confirm',
diff --git a/kyuubi-server/web-ui/src/locales/zh_CN/index.ts b/kyuubi-server/web-ui/src/locales/zh_CN/index.ts
index 7b0f41d27f0..198f379eccb 100644
--- a/kyuubi-server/web-ui/src/locales/zh_CN/index.ts
+++ b/kyuubi-server/web-ui/src/locales/zh_CN/index.ts
@@ -38,7 +38,10 @@ export default {
failure_reason: '失败原因',
session_properties: 'Session 参数',
no_data: '无数据',
+ no_log: '无日志',
run_sql_tips: '请运行SQL获取结果',
+ result: '结果',
+ log: '日志',
operation: {
text: '操作',
delete_confirm: '确认删除',
diff --git a/kyuubi-server/web-ui/src/views/editor/components/Editor.vue b/kyuubi-server/web-ui/src/views/editor/components/Editor.vue
index 6ed89048384..21faee5a33a 100644
--- a/kyuubi-server/web-ui/src/views/editor/components/Editor.vue
+++ b/kyuubi-server/web-ui/src/views/editor/components/Editor.vue
@@ -62,14 +62,18 @@
@change="handleContentChange"
@editor-save="editorSave" />
-
{{ sqlLog }}
+
+
+
@@ -77,6 +81,7 @@
+
+
diff --git a/kyuubi-server/web-ui/src/views/editor/components/Result.vue b/kyuubi-server/web-ui/src/views/editor/components/Result.vue
index 1eefe1e6b39..3937905c0db 100644
--- a/kyuubi-server/web-ui/src/views/editor/components/Result.vue
+++ b/kyuubi-server/web-ui/src/views/editor/components/Result.vue
@@ -18,18 +18,14 @@
-
-
+
+
@@ -55,11 +51,13 @@
diff --git a/kyuubi-server/web-ui/src/views/editor/components/types.ts b/kyuubi-server/web-ui/src/views/editor/components/types.ts
index 3fb84a53d62..42475bf4ae8 100644
--- a/kyuubi-server/web-ui/src/views/editor/components/types.ts
+++ b/kyuubi-server/web-ui/src/views/editor/components/types.ts
@@ -39,4 +39,12 @@ interface IErrorMessage {
description: string
}
-export { IResponse, ISqlResult, IFields, ILog, IErrorMessage }
+interface IError extends Error {
+ response?: {
+ data?: {
+ message?: string
+ }
+ }
+}
+
+export { IResponse, ISqlResult, IFields, ILog, IErrorMessage, IError }
diff --git a/kyuubi-server/web-ui/src/views/editor/index.vue b/kyuubi-server/web-ui/src/views/editor/index.vue
index 37df66fe940..424d3e929c8 100644
--- a/kyuubi-server/web-ui/src/views/editor/index.vue
+++ b/kyuubi-server/web-ui/src/views/editor/index.vue
@@ -105,19 +105,36 @@
}
:deep(.result-el-tabs) {
+ $border: 1px solid #e4e7ed;
.el-tabs__header {
margin-bottom: 0;
background: transparent;
.el-tabs__nav-wrap {
- border-bottom: 1px solid #e4e7ed;
+ border-bottom: $border;
}
.el-tabs__nav {
- background: #f5f5f5;
+ border: 0;
+
+ .el-tabs__item {
+ border: $border;
+ border-bottom: 0;
+ margin-right: 4px;
+ background: #f5f5f5;
+ border-radius: 2px 2px 0 0;
+
+ &.is-active {
+ background: #fff;
+ }
+
+ &:not(.is-active) {
+ color: #909399;
+ }
+ }
}
}
.el-tabs__content {
padding: 10px 0 0 0;
- border: 1px solid #e4e7ed;
+ border: $border;
border-top: none;
}
}
diff --git a/kyuubi-server/web-ui/src/views/editor/styles/shared-styles.scss b/kyuubi-server/web-ui/src/views/editor/styles/shared-styles.scss
new file mode 100644
index 00000000000..9027ef69a3a
--- /dev/null
+++ b/kyuubi-server/web-ui/src/views/editor/styles/shared-styles.scss
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+@mixin sharedNoData {
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ transform: translate(-50%, -50%);
+ font-size: 14px;
+ color: #999;
+ font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
+ text-align: center;
+}
\ No newline at end of file