diff --git a/cypress/e2e/28-debug.cy.ts b/cypress/e2e/28-debug.cy.ts index bc1f03c162..b5159951a7 100644 --- a/cypress/e2e/28-debug.cy.ts +++ b/cypress/e2e/28-debug.cy.ts @@ -117,7 +117,8 @@ describe('Debug', () => { workflowPage.getters.canvasNodes().last().find('.node-info-icon').should('be.empty'); workflowPage.getters.canvasNodes().first().dblclick(); - ndv.getters.pinDataButton().click(); + ndv.actions.unPinData(); + ndv.actions.close(); workflowPage.actions.saveWorkflowUsingKeyboardShortcut(); diff --git a/cypress/pages/ndv.ts b/cypress/pages/ndv.ts index f32b1ff1a3..ab2a88896c 100644 --- a/cypress/pages/ndv.ts +++ b/cypress/pages/ndv.ts @@ -20,7 +20,8 @@ export class NDV extends BasePage { outputDataContainer: () => this.getters.outputPanel().findChildByTestId('ndv-data-container'), outputDisplayMode: () => this.getters.outputPanel().findChildByTestId('ndv-run-data-display-mode').first(), - pinDataButton: () => cy.getByTestId('ndv-pin-data'), + pinDataButton: () => this.getters.outputPanel().findChildByTestId('ndv-pin-data'), + unpinDataLink: () => this.getters.outputPanel().findChildByTestId('ndv-unpin-data'), editPinnedDataButton: () => cy.getByTestId('ndv-edit-pinned-data'), pinnedDataEditor: () => this.getters.outputPanel().find('.cm-editor .cm-scroller .cm-content'), runDataPaneHeader: () => cy.getByTestId('run-data-pane-header'), @@ -147,6 +148,9 @@ export class NDV extends BasePage { pinData: () => { this.getters.pinDataButton().click({ force: true }); }, + unPinData: () => { + this.getters.unpinDataLink().click({ force: true }); + }, editPinnedData: () => { this.getters.editPinnedDataButton().click(); }, diff --git a/packages/editor-ui/src/components/RunData.vue b/packages/editor-ui/src/components/RunData.vue index fa5f896db5..a7c56605c0 100644 --- a/packages/editor-ui/src/components/RunData.vue +++ b/packages/editor-ui/src/components/RunData.vue @@ -255,6 +255,22 @@ export default defineComponent({ } return this.nodeTypesStore.isTriggerNode(this.node.type); }, + showPinButton(): boolean { + return Boolean( + (this.canPinData || this.pinnedData.hasData.value || !!this.binaryData?.length) && + (this.rawInputData.length || this.pinnedData.hasData.value) && + !this.editMode.enabled, + ); + }, + pinButtonDisabled(): boolean { + return ( + this.pinnedData.hasData.value || + !this.rawInputData.length || + !!this.binaryData?.length || + this.isReadOnlyRoute || + this.readOnlyEnv + ); + }, canPinData(): boolean { if (this.node === null) { return false; @@ -1199,6 +1215,7 @@ export default defineComponent({ size="small" underline bold + data-test-id="ndv-unpin-data" @click.stop="onTogglePinData({ source: 'banner-link' })" > {{ $locale.baseText('runData.pindata.unpin') }} @@ -1269,13 +1286,8 @@ export default defineComponent({ />