update copy buttons

This commit is contained in:
Mutasem 2021-07-28 14:11:26 +02:00
parent 8490286e9a
commit 3986446363
2 changed files with 13 additions and 10 deletions

View file

@ -37,9 +37,9 @@
<span class="box-card__subtitle">Data below may contain sensitive information. Proceed with caution when sharing.</span> <span class="box-card__subtitle">Data below may contain sensitive information. Proceed with caution when sharing.</span>
</div> </div>
<div> <div>
<el-button v-if="displayCause" class="copy-button" @click="copyCause" circle type="text" title="Copy to clipboard"> <div class="copy-button">
<font-awesome-icon icon="copy" /> <n8n-icon-button v-if="displayCause" @click="copyCause" title="Copy to Clipboard" icon="copy" />
</el-button> </div>
<vue-json-pretty <vue-json-pretty
v-if="displayCause" v-if="displayCause"
:data="error.cause" :data="error.cause"
@ -179,7 +179,6 @@ details[open] {
.copy-button { .copy-button {
position: absolute; position: absolute;
font-size: 1.1rem;
right: 50px; right: 50px;
z-index: 1000; z-index: 1000;
} }

View file

@ -3,10 +3,10 @@
<BinaryDataDisplay :windowVisible="binaryDataDisplayVisible" :displayData="binaryDataDisplayData" @close="closeBinaryDataDisplay"/> <BinaryDataDisplay :windowVisible="binaryDataDisplayVisible" :displayData="binaryDataDisplayData" @close="closeBinaryDataDisplay"/>
<div <div
v-if="node && !isReadOnly"
class="execute-node-button" class="execute-node-button"
> >
<n8n-button <n8n-button
v-if="node && !isReadOnly"
:title="`Executes this ${node.name} node after executing any previous nodes that have not yet returned data`" :title="`Executes this ${node.name} node after executing any previous nodes that have not yet returned data`"
:loading="workflowRunning" :loading="workflowRunning"
icon="play-circle" icon="play-circle"
@ -54,19 +54,17 @@
</span> </span>
</div> </div>
<div v-if="node && workflowRunData !== null && workflowRunData.hasOwnProperty(node.name) && !workflowRunData[node.name][runIndex].error" class="title-data-display-selector" @click.stop> <div v-if="hasNodeRun && !hasRunError" class="title-data-display-selector" @click.stop>
<el-radio-group v-model="displayMode" size="mini"> <el-radio-group v-model="displayMode" size="mini">
<el-radio-button label="JSON" :disabled="showData === false"></el-radio-button> <el-radio-button label="JSON" :disabled="showData === false"></el-radio-button>
<el-radio-button label="Table"></el-radio-button> <el-radio-button label="Table"></el-radio-button>
<el-radio-button label="Binary" v-if="binaryData.length !== 0"></el-radio-button> <el-radio-button label="Binary" v-if="binaryData.length !== 0"></el-radio-button>
</el-radio-group> </el-radio-group>
</div> </div>
<div class="select-button" v-if="displayMode === 'JSON' && state.path !== deselectedPlaceholder"> <div class="select-button" v-if="hasNodeRun && !hasRunError && displayMode === 'JSON' && state.path !== deselectedPlaceholder">
<el-dropdown trigger="click" @command="handleCopyClick"> <el-dropdown trigger="click" @command="handleCopyClick">
<span class="el-dropdown-link"> <span class="el-dropdown-link">
<el-button class="retry-button" circle type="text" size="small" title="Copy"> <n8n-icon-button title="Copy to Clipboard" icon="copy" />
<font-awesome-icon icon="copy" />
</el-button>
</span> </span>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<el-dropdown-item :command="{command: 'itemPath'}">Copy Item Path</el-dropdown-item> <el-dropdown-item :command="{command: 'itemPath'}">Copy Item Path</el-dropdown-item>
@ -266,6 +264,12 @@ export default mixins(
}; };
}, },
computed: { computed: {
hasNodeRun(): boolean {
return Boolean(this.node && this.workflowRunData && this.workflowRunData.hasOwnProperty(this.node.name));
},
hasRunError(): boolean {
return Boolean(this.node && this.workflowRunData && this.workflowRunData[this.node.name] && this.workflowRunData[this.node.name][this.runIndex] && this.workflowRunData[this.node.name][this.runIndex].error);
},
workflowRunning (): boolean { workflowRunning (): boolean {
return this.$store.getters.isActionActive('workflowRunning'); return this.$store.getters.isActionActive('workflowRunning');
}, },