Disable buggy copy & paste
This commit is contained in:
parent
7554aa5357
commit
90cb9c7b99
|
|
@ -151,19 +151,19 @@ export class ElsaWorkflowDesigner {
|
|||
this.activityContextMenuTestState = newValue;
|
||||
}
|
||||
|
||||
@Listen('keydown', {target: 'window'})
|
||||
async handleKeyDown(event: KeyboardEvent) {
|
||||
if (this.ignoreCopyPasteActivities)
|
||||
return;
|
||||
|
||||
if ((event.ctrlKey || event.metaKey) && event.key === 'c') {
|
||||
await this.copyActivitiesToClipboard();
|
||||
}
|
||||
if ((event.ctrlKey || event.metaKey) && event.key === 'v') {
|
||||
|
||||
await this.pasteActivitiesFromClipboard();
|
||||
}
|
||||
}
|
||||
// @Listen('keydown', {target: 'window'})
|
||||
// async handleKeyDown(event: KeyboardEvent) {
|
||||
// if (this.ignoreCopyPasteActivities)
|
||||
// return;
|
||||
//
|
||||
// if ((event.ctrlKey || event.metaKey) && event.key === 'c') {
|
||||
// await this.copyActivitiesToClipboard();
|
||||
// }
|
||||
// if ((event.ctrlKey || event.metaKey) && event.key === 'v') {
|
||||
//
|
||||
// await this.pasteActivitiesFromClipboard();
|
||||
// }
|
||||
// }
|
||||
|
||||
@Method()
|
||||
async removeActivity(activity: ActivityModel) {
|
||||
|
|
@ -186,19 +186,19 @@ export class ElsaWorkflowDesigner {
|
|||
await this.showActivityEditorInternal(activity, animate);
|
||||
}
|
||||
|
||||
async copyActivitiesToClipboard() {
|
||||
await navigator.clipboard.writeText(JSON.stringify(this.selectedActivities));
|
||||
await eventBus.emit(EventTypes.ClipboardCopied, this);
|
||||
}
|
||||
// async copyActivitiesToClipboard() {
|
||||
// await navigator.clipboard.writeText(JSON.stringify(this.selectedActivities));
|
||||
// await eventBus.emit(EventTypes.ClipboardCopied, this);
|
||||
// }
|
||||
|
||||
async pasteActivitiesFromClipboard() {
|
||||
let copiedActivities: Array<ActivityModel> = [];
|
||||
|
||||
await navigator.clipboard.readText().then(data => {
|
||||
copiedActivities = JSON.parse(data);
|
||||
});
|
||||
await this.addActivitiesFromClipboard(copiedActivities)
|
||||
}
|
||||
// async pasteActivitiesFromClipboard() {
|
||||
// let copiedActivities: Array<ActivityModel> = [];
|
||||
//
|
||||
// await navigator.clipboard.readText().then(data => {
|
||||
// copiedActivities = JSON.parse(data);
|
||||
// });
|
||||
// await this.addActivitiesFromClipboard(copiedActivities)
|
||||
// }
|
||||
|
||||
async addActivitiesFromClipboard(copiedActivities: Array<ActivityModel>) {
|
||||
let sourceActivityId: string;
|
||||
|
|
@ -233,18 +233,18 @@ export class ElsaWorkflowDesigner {
|
|||
connectedCallback() {
|
||||
eventBus.on(EventTypes.ActivityPicked, this.onActivityPicked);
|
||||
eventBus.on(EventTypes.UpdateActivity, this.onUpdateActivity);
|
||||
eventBus.on(EventTypes.PasteActivity, this.onPasteActivity);
|
||||
eventBus.on(EventTypes.HideModalDialog, this.onCopyPasteActivityEnabled);
|
||||
eventBus.on(EventTypes.ShowWorkflowSettings, this.onCopyPasteActivityDisabled);
|
||||
//eventBus.on(EventTypes.PasteActivity, this.onPasteActivity);
|
||||
// eventBus.on(EventTypes.HideModalDialog, this.onCopyPasteActivityEnabled);
|
||||
// eventBus.on(EventTypes.ShowWorkflowSettings, this.onCopyPasteActivityDisabled);
|
||||
eventBus.on(EventTypes.WorkflowExecuted, this.onWorkflowExecuted);
|
||||
}
|
||||
|
||||
disconnectedCallback() {
|
||||
eventBus.detach(EventTypes.ActivityPicked, this.onActivityPicked);
|
||||
eventBus.detach(EventTypes.UpdateActivity, this.onUpdateActivity);
|
||||
eventBus.detach(EventTypes.PasteActivity, this.onPasteActivity);
|
||||
eventBus.detach(EventTypes.HideModalDialog, this.onCopyPasteActivityEnabled);
|
||||
eventBus.detach(EventTypes.ShowWorkflowSettings, this.onCopyPasteActivityDisabled);
|
||||
//eventBus.detach(EventTypes.PasteActivity, this.onPasteActivity);
|
||||
// eventBus.detach(EventTypes.HideModalDialog, this.onCopyPasteActivityEnabled);
|
||||
// eventBus.detach(EventTypes.ShowWorkflowSettings, this.onCopyPasteActivityDisabled);
|
||||
eventBus.detach(EventTypes.WorkflowExecuted, this.onWorkflowExecuted);
|
||||
d3.selectAll('.node').on('click', null);
|
||||
d3.selectAll('.edgePath').on('contextmenu', null);
|
||||
|
|
@ -663,22 +663,22 @@ export class ElsaWorkflowDesigner {
|
|||
}
|
||||
};
|
||||
|
||||
onPasteActivity = async args => {
|
||||
const activityModel = args as ActivityModel;
|
||||
|
||||
this.selectedActivities = {};
|
||||
activityModel.outcomes[0] = this.parentActivityOutcome;
|
||||
this.selectedActivities[activityModel.activityId] = activityModel;
|
||||
await this.pasteActivitiesFromClipboard();
|
||||
};
|
||||
|
||||
onCopyPasteActivityEnabled = () => {
|
||||
this.ignoreCopyPasteActivities = false
|
||||
}
|
||||
|
||||
onCopyPasteActivityDisabled = () => {
|
||||
this.ignoreCopyPasteActivities = true
|
||||
}
|
||||
// onPasteActivity = async args => {
|
||||
// const activityModel = args as ActivityModel;
|
||||
//
|
||||
// this.selectedActivities = {};
|
||||
// activityModel.outcomes[0] = this.parentActivityOutcome;
|
||||
// this.selectedActivities[activityModel.activityId] = activityModel;
|
||||
// await this.pasteActivitiesFromClipboard();
|
||||
// };
|
||||
//
|
||||
// onCopyPasteActivityEnabled = () => {
|
||||
// this.ignoreCopyPasteActivities = false
|
||||
// }
|
||||
//
|
||||
// onCopyPasteActivityDisabled = () => {
|
||||
// this.ignoreCopyPasteActivities = true
|
||||
// }
|
||||
|
||||
onWorkflowExecuted = () => {
|
||||
const firstNode = d3.select(this.el).select('.node.activity');
|
||||
|
|
|
|||
|
|
@ -71,12 +71,12 @@ export class ElsaWorkflowDefinitionEditorScreen {
|
|||
selectedActivities: {}
|
||||
};
|
||||
|
||||
@State() connectionContextMenuState: ActivityContextMenuState = {
|
||||
shown: false,
|
||||
x: 0,
|
||||
y: 0,
|
||||
activity: null,
|
||||
};
|
||||
// @State() connectionContextMenuState: ActivityContextMenuState = {
|
||||
// shown: false,
|
||||
// x: 0,
|
||||
// y: 0,
|
||||
// activity: null,
|
||||
// };
|
||||
|
||||
@State() activityContextMenuTestState: ActivityContextMenuState = {
|
||||
shown: false,
|
||||
|
|
@ -92,7 +92,7 @@ export class ElsaWorkflowDefinitionEditorScreen {
|
|||
helpDialog: HTMLElsaModalDialogElement;
|
||||
activityContextMenu: HTMLDivElement;
|
||||
componentCustomButton: HTMLDivElement;
|
||||
connectionContextMenu: HTMLDivElement;
|
||||
//connectionContextMenu: HTMLDivElement;
|
||||
|
||||
@Method()
|
||||
async getServerUrl(): Promise<string> {
|
||||
|
|
@ -187,8 +187,8 @@ export class ElsaWorkflowDefinitionEditorScreen {
|
|||
if (!this.activityContextMenu.contains(target))
|
||||
this.handleContextMenuChange({x: 0, y: 0, shown: false, activity: null, selectedActivities: {}});
|
||||
|
||||
if (!this.connectionContextMenu.contains(target))
|
||||
this.handleConnectionContextMenuChange({x: 0, y: 0, shown: false, activity: null});
|
||||
// if (!this.connectionContextMenu.contains(target))
|
||||
// this.handleConnectionContextMenuChange({x: 0, y: 0, shown: false, activity: null});
|
||||
}
|
||||
|
||||
async componentWillLoad() {
|
||||
|
|
@ -414,9 +414,9 @@ export class ElsaWorkflowDefinitionEditorScreen {
|
|||
this.activityContextMenuState = state;
|
||||
}
|
||||
|
||||
handleConnectionContextMenuChange(state: ActivityContextMenuState) {
|
||||
this.connectionContextMenuState = state;
|
||||
}
|
||||
// handleConnectionContextMenuChange(state: ActivityContextMenuState) {
|
||||
// this.connectionContextMenuState = state;
|
||||
// }
|
||||
|
||||
handleContextMenuTestChange(x: number, y: number, shown: boolean, activity: ActivityModel) {
|
||||
this.activityContextMenuTestState = {
|
||||
|
|
@ -467,12 +467,12 @@ export class ElsaWorkflowDefinitionEditorScreen {
|
|||
this.handleContextMenuChange({x: 0, y: 0, shown: false, activity: null});
|
||||
}
|
||||
|
||||
async onPasteActivityClick(e: Event) {
|
||||
e.preventDefault();
|
||||
let activityModel = this.connectionContextMenuState.activity;
|
||||
await eventBus.emit(EventTypes.PasteActivity, this, activityModel);
|
||||
this.handleConnectionContextMenuChange({x: 0, y: 0, shown: false, activity: null});
|
||||
}
|
||||
// async onPasteActivityClick(e: Event) {
|
||||
// e.preventDefault();
|
||||
// let activityModel = this.connectionContextMenuState.activity;
|
||||
// await eventBus.emit(EventTypes.PasteActivity, this, activityModel);
|
||||
// this.handleConnectionContextMenuChange({x: 0, y: 0, shown: false, activity: null});
|
||||
// }
|
||||
|
||||
async onActivityContextMenuButtonClicked(e: CustomEvent<ActivityContextMenuState>) {
|
||||
this.activityContextMenuState = e.detail;
|
||||
|
|
@ -499,9 +499,9 @@ export class ElsaWorkflowDefinitionEditorScreen {
|
|||
this.selectedActivityId = null;
|
||||
}
|
||||
|
||||
onConnectionContextMenuButtonClicked(e: CustomEvent<ActivityContextMenuState>) {
|
||||
this.connectionContextMenuState = e.detail;
|
||||
}
|
||||
// onConnectionContextMenuButtonClicked(e: CustomEvent<ActivityContextMenuState>) {
|
||||
// this.connectionContextMenuState = e.detail;
|
||||
// }
|
||||
|
||||
onTestActivityMessageReceived = async args => {
|
||||
const message = args as WorkflowTestActivityMessage;
|
||||
|
|
@ -662,7 +662,7 @@ export class ElsaWorkflowDefinitionEditorScreen {
|
|||
{this.renderWorkflowHelpButton()}
|
||||
{this.renderPanel()}
|
||||
{this.renderActivityContextMenu()}
|
||||
{this.renderConnectionContextMenu()}
|
||||
{/*{this.renderConnectionContextMenu()}*/}
|
||||
<elsa-workflow-settings-modal workflowDefinition={this.workflowDefinition}/>
|
||||
<elsa-workflow-definition-editor-notifications/>
|
||||
<div class="elsa-fixed elsa-bottom-10 elsa-right-12">
|
||||
|
|
@ -894,34 +894,34 @@ export class ElsaWorkflowDefinitionEditorScreen {
|
|||
</div>
|
||||
}
|
||||
|
||||
renderConnectionContextMenu() {
|
||||
const t = this.t;
|
||||
|
||||
return <div
|
||||
data-transition-enter="elsa-transition elsa-ease-out elsa-duration-100"
|
||||
data-transition-enter-start="elsa-transform elsa-opacity-0 elsa-scale-95"
|
||||
data-transition-enter-end="elsa-transform elsa-opacity-100 elsa-scale-100"
|
||||
data-transition-leave="elsa-transition elsa-ease-in elsa-duration-75"
|
||||
data-transition-leave-start="elsa-transform elsa-opacity-100 elsa-scale-100"
|
||||
data-transition-leave-end="elsa-transform elsa-opacity-0 elsa-scale-95"
|
||||
class={`${this.connectionContextMenuState.shown ? '' : 'hidden'} context-menu elsa-z-10 elsa-mx-3 elsa-w-48 elsa-mt-1 elsa-rounded-md elsa-shadow-lg elsa-absolute`}
|
||||
style={{left: `${this.connectionContextMenuState.x}px`, top: `${this.connectionContextMenuState.y - 64}px`}}
|
||||
ref={el => this.connectionContextMenu = el}
|
||||
>
|
||||
<div class="elsa-rounded-md elsa-bg-white elsa-shadow-xs" role="menu" aria-orientation="vertical"
|
||||
aria-labelledby="pinned-project-options-menu-0">
|
||||
<div class="elsa-py-1">
|
||||
<a
|
||||
onClick={e => this.onPasteActivityClick(e)}
|
||||
href="#"
|
||||
class="elsa-block elsa-px-4 elsa-py-2 elsa-text-sm elsa-leading-5 elsa-text-gray-700 hover:elsa-bg-gray-100 hover:elsa-text-gray-900 focus:elsa-outline-none focus:elsa-bg-gray-100 focus:elsa-text-gray-900"
|
||||
role="menuitem">
|
||||
{t('ConnectionContextMenu.Paste')}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
// renderConnectionContextMenu() {
|
||||
// const t = this.t;
|
||||
//
|
||||
// return <div
|
||||
// data-transition-enter="elsa-transition elsa-ease-out elsa-duration-100"
|
||||
// data-transition-enter-start="elsa-transform elsa-opacity-0 elsa-scale-95"
|
||||
// data-transition-enter-end="elsa-transform elsa-opacity-100 elsa-scale-100"
|
||||
// data-transition-leave="elsa-transition elsa-ease-in elsa-duration-75"
|
||||
// data-transition-leave-start="elsa-transform elsa-opacity-100 elsa-scale-100"
|
||||
// data-transition-leave-end="elsa-transform elsa-opacity-0 elsa-scale-95"
|
||||
// class={`${this.connectionContextMenuState.shown ? '' : 'hidden'} context-menu elsa-z-10 elsa-mx-3 elsa-w-48 elsa-mt-1 elsa-rounded-md elsa-shadow-lg elsa-absolute`}
|
||||
// style={{left: `${this.connectionContextMenuState.x}px`, top: `${this.connectionContextMenuState.y - 64}px`}}
|
||||
// ref={el => this.connectionContextMenu = el}
|
||||
// >
|
||||
// <div class="elsa-rounded-md elsa-bg-white elsa-shadow-xs" role="menu" aria-orientation="vertical"
|
||||
// aria-labelledby="pinned-project-options-menu-0">
|
||||
// <div class="elsa-py-1">
|
||||
// <a
|
||||
// onClick={e => this.onPasteActivityClick(e)}
|
||||
// href="#"
|
||||
// class="elsa-block elsa-px-4 elsa-py-2 elsa-text-sm elsa-leading-5 elsa-text-gray-700 hover:elsa-bg-gray-100 hover:elsa-text-gray-900 focus:elsa-outline-none focus:elsa-bg-gray-100 focus:elsa-text-gray-900"
|
||||
// role="menuitem">
|
||||
// {t('ConnectionContextMenu.Paste')}
|
||||
// </a>
|
||||
// </div>
|
||||
// </div>
|
||||
// </div>
|
||||
// }
|
||||
|
||||
renderActivityPicker() {
|
||||
return <elsa-activity-picker-modal/>;
|
||||
|
|
|
|||
Loading…
Reference in a new issue