From 2a59ed092ca1eea733a28f3ceb7f03776582ecb6 Mon Sep 17 00:00:00 2001 From: BoYiZhang Date: Thu, 29 Apr 2021 16:29:29 +0800 Subject: [PATCH] [Improvement-#3476][UI]Resource files support copy path operations (#5348) * Improvement-5346 : Resource files support copy path operations * Improvement-5346 : Resource files support copy path operations * this close #5346 The current resource file does not support copying paths When using the path is very easy to output errors. Add copy button. Support copy operation * fix code smell --- .../dag/_source/formModel/tasks/flink.vue | 22 +++++++++++++++++- .../pages/dag/_source/formModel/tasks/mr.vue | 23 ++++++++++++++++++- .../dag/_source/formModel/tasks/python.vue | 23 +++++++++++++++++-- .../dag/_source/formModel/tasks/shell.vue | 23 +++++++++++++++++-- .../dag/_source/formModel/tasks/spark.vue | 23 +++++++++++++++++-- .../src/js/module/i18n/locale/en_US.js | 1 + .../src/js/module/i18n/locale/zh_CN.js | 1 + 7 files changed, 108 insertions(+), 8 deletions(-) diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/flink.vue b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/flink.vue index 518e324d46..3031dcca92 100644 --- a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/flink.vue +++ b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/flink.vue @@ -177,7 +177,7 @@
{{$t('Resources')}}
-
{{ node.raw.fullName }}
+
{{ node.raw.fullName }}   
@@ -203,6 +203,7 @@ import Treeselect from '@riophae/vue-treeselect' import '@riophae/vue-treeselect/dist/vue-treeselect.css' import disabledState from '@/module/mixin/disabledState' + import Clipboard from 'clipboard' export default { name: 'flink', @@ -263,6 +264,25 @@ }, mixins: [disabledState], methods: { + _copyPath (e, node) { + e.stopPropagation() + let clipboard = new Clipboard('.copy-path', { + text: function () { + return node.raw.fullName + } + }) + clipboard.on('success', handler => { + this.$message.success(`${i18n.$t('Copy success')}`) + // Free memory + clipboard.destroy() + }) + clipboard.on('error', handler => { + // Copy is not supported + this.$message.warning(`${i18n.$t('The browser does not support automatic copying')}`) + // Free memory + clipboard.destroy() + }) + }, /** * getResourceId */ diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/mr.vue b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/mr.vue index ba50195b39..253a596327 100644 --- a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/mr.vue +++ b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/mr.vue @@ -91,7 +91,7 @@
{{$t('Resources')}}
-
{{ node.raw.fullName }}
+
{{ node.raw.fullName }}   
@@ -116,6 +116,8 @@ import Treeselect from '@riophae/vue-treeselect' import '@riophae/vue-treeselect/dist/vue-treeselect.css' import disabledState from '@/module/mixin/disabledState' + import Clipboard from 'clipboard' + export default { name: 'mr', data () { @@ -158,6 +160,25 @@ }, mixins: [disabledState], methods: { + _copyPath (e, node) { + e.stopPropagation() + let clipboard = new Clipboard('.copy-path', { + text: function () { + return node.raw.fullName + } + }) + clipboard.on('success', handler => { + this.$message.success(`${i18n.$t('Copy success')}`) + // Free memory + clipboard.destroy() + }) + clipboard.on('error', handler => { + // Copy is not supported + this.$message.warning(`${i18n.$t('The browser does not support automatic copying')}`) + // Free memory + clipboard.destroy() + }) + }, /** * getResourceId */ diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/python.vue b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/python.vue index d5322ea681..78b4985754 100644 --- a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/python.vue +++ b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/python.vue @@ -32,7 +32,7 @@
{{$t('Resources')}}
-
{{ node.raw.fullName }}
+
{{ node.raw.fullName }}   
@@ -65,7 +65,7 @@ import '@riophae/vue-treeselect/dist/vue-treeselect.css' import disabledState from '@/module/mixin/disabledState' import codemirror from '@/conf/home/pages/resource/pages/file/pages/_source/codemirror' - + import Clipboard from 'clipboard' let editor export default { @@ -98,6 +98,25 @@ backfillItem: Object }, methods: { + _copyPath (e, node) { + e.stopPropagation() + let clipboard = new Clipboard('.copy-path', { + text: function () { + return node.raw.fullName + } + }) + clipboard.on('success', handler => { + this.$message.success(`${i18n.$t('Copy success')}`) + // Free memory + clipboard.destroy() + }) + clipboard.on('error', handler => { + // Copy is not supported + this.$message.warning(`${i18n.$t('The browser does not support automatic copying')}`) + // Free memory + clipboard.destroy() + }) + }, /** * return localParams */ diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/shell.vue b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/shell.vue index 4c61ed266e..64181913b0 100644 --- a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/shell.vue +++ b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/shell.vue @@ -35,7 +35,7 @@
{{$t('Resources')}}
-
{{ node.raw.fullName }}
+
{{ node.raw.fullName }}    
@@ -68,7 +68,7 @@ import Treeselect from '@riophae/vue-treeselect' import '@riophae/vue-treeselect/dist/vue-treeselect.css' import codemirror from '@/conf/home/pages/resource/pages/file/pages/_source/codemirror' - + import Clipboard from 'clipboard' let editor export default { @@ -102,6 +102,25 @@ backfillItem: Object }, methods: { + _copyPath (e, node) { + e.stopPropagation() + let clipboard = new Clipboard('.copy-path', { + text: function () { + return node.raw.fullName + } + }) + clipboard.on('success', handler => { + this.$message.success(`${i18n.$t('Copy success')}`) + // Free memory + clipboard.destroy() + }) + clipboard.on('error', handler => { + // Copy is not supported + this.$message.warning(`${i18n.$t('The browser does not support automatic copying')}`) + // Free memory + clipboard.destroy() + }) + }, /** * return localParams */ diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/spark.vue b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/spark.vue index 5fbc767e35..bc299a372f 100644 --- a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/spark.vue +++ b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/spark.vue @@ -178,7 +178,7 @@
{{$t('Resources')}}
-
{{ node.raw.fullName }}
+
{{ node.raw.fullName }}   
@@ -204,7 +204,7 @@ import Treeselect from '@riophae/vue-treeselect' import '@riophae/vue-treeselect/dist/vue-treeselect.css' import disabledState from '@/module/mixin/disabledState' - + import Clipboard from 'clipboard' export default { name: 'spark', data () { @@ -263,6 +263,25 @@ }, mixins: [disabledState], methods: { + _copyPath (e, node) { + e.stopPropagation() + let clipboard = new Clipboard('.copy-path', { + text: function () { + return node.raw.fullName + } + }) + clipboard.on('success', handler => { + this.$message.success(`${i18n.$t('Copy success')}`) + // Free memory + clipboard.destroy() + }) + clipboard.on('error', handler => { + // Copy is not supported + this.$message.warning(`${i18n.$t('The browser does not support automatic copying')}`) + // Free memory + clipboard.destroy() + }) + }, /** * getResourceId */ diff --git a/dolphinscheduler-ui/src/js/module/i18n/locale/en_US.js b/dolphinscheduler-ui/src/js/module/i18n/locale/en_US.js index 8d8ccbeaea..7c9eb0808e 100755 --- a/dolphinscheduler-ui/src/js/module/i18n/locale/en_US.js +++ b/dolphinscheduler-ui/src/js/module/i18n/locale/en_US.js @@ -366,6 +366,7 @@ export default { Start: 'Start', Copy: 'Copy', 'Copy name': 'Copy name', + 'Copy path': 'Copy path', 'Please enter keyword': 'Please enter keyword', 'File Upload': 'File Upload', 'Drag the file into the current upload window': 'Drag the file into the current upload window', diff --git a/dolphinscheduler-ui/src/js/module/i18n/locale/zh_CN.js b/dolphinscheduler-ui/src/js/module/i18n/locale/zh_CN.js index 4ebf4c2eca..e18b6a8c83 100755 --- a/dolphinscheduler-ui/src/js/module/i18n/locale/zh_CN.js +++ b/dolphinscheduler-ui/src/js/module/i18n/locale/zh_CN.js @@ -366,6 +366,7 @@ export default { Start: '运行', Copy: '复制节点', 'Copy name': '复制名称', + 'Copy path': '复制路径', 'Please enter keyword': '请输入关键词', 'File Upload': '文件上传', 'Drag the file into the current upload window': '请将文件拖拽到当前上传窗口内!',