Added copy-pasting of MULTIPLE nodes in and between workflows
This commit is contained in:
@@ -2497,7 +2497,7 @@ const AngularWorkflow = (props) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var previouskey = 0
|
//var previouskey = 0
|
||||||
const handleKeyDown = (event) => {
|
const handleKeyDown = (event) => {
|
||||||
switch( event.keyCode ) {
|
switch( event.keyCode ) {
|
||||||
case 27:
|
case 27:
|
||||||
@@ -2521,25 +2521,65 @@ const AngularWorkflow = (props) => {
|
|||||||
console.log("RIGHT")
|
console.log("RIGHT")
|
||||||
break;
|
break;
|
||||||
case 90:
|
case 90:
|
||||||
if (previouskey === 17) {
|
if (event.ctrlKey) {
|
||||||
console.log("CTRL+Z")
|
console.log("CTRL+Z")
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case 67:
|
case 67:
|
||||||
if (previouskey === 17) {
|
console.log(event)
|
||||||
|
if (event.ctrlKey) {
|
||||||
console.log("CTRL+C")
|
console.log("CTRL+C")
|
||||||
|
if (cy !== undefined) {
|
||||||
|
var cydata = cy.$(':selected').jsons()
|
||||||
|
if (cydata !== undefined && cydata !== null && cydata.length > 0) {
|
||||||
|
console.log(cydata)
|
||||||
|
|
||||||
|
const elementName = "copy_element_shuffle"
|
||||||
|
var copyText = document.getElementById(elementName)
|
||||||
|
if (copyText !== null && copyText !== undefined) {
|
||||||
|
const clipboard = navigator.clipboard
|
||||||
|
if (clipboard === undefined) {
|
||||||
|
alert.error("Can only copy over HTTPS (port 3443)")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
navigator.clipboard.writeText(JSON.stringify(cydata))
|
||||||
|
copyText.select()
|
||||||
|
copyText.setSelectionRange(0, 99999); /* For mobile devices */
|
||||||
|
document.execCommand("copy")
|
||||||
|
alert.success(`Copied ${cydata.length} elements`)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 86:
|
case 86:
|
||||||
if (previouskey === 17) {
|
if (event.ctrlKey) {
|
||||||
console.log("CTRL+V")
|
console.log("CTRL+V")
|
||||||
|
|
||||||
|
// The below parts are handled in the function handlePaste()
|
||||||
|
/*
|
||||||
|
const clipboard = navigator.clipboard
|
||||||
|
if (clipboard === undefined || window === undefined || window === null) {
|
||||||
|
alert.error("Can only use cliboard over HTTPS (port 3443)")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log("CLIPBOARD: ", window.clipboardData)
|
||||||
|
const pastedData = window.clipboardData.getData('Text');
|
||||||
|
console.log("PASTED: ", pastedData)
|
||||||
|
|
||||||
|
|
||||||
|
//var tmpAuth = JSON.parse(JSON.stringify(appAuthentication))
|
||||||
|
var jsonvalid = true
|
||||||
|
var parsedjson = []
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 88:
|
case 88:
|
||||||
if (previouskey === 17) {
|
if (event.ctrlKey) {
|
||||||
console.log("CTRL+V")
|
console.log("CTRL+X")
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 83:
|
case 83:
|
||||||
@@ -2549,18 +2589,44 @@ const AngularWorkflow = (props) => {
|
|||||||
break;
|
break;
|
||||||
case 65:
|
case 65:
|
||||||
// As a poweruser myself, I found myself hitting this a few
|
// As a poweruser myself, I found myself hitting this a few
|
||||||
// too many times to just edit text. Need a better bind
|
// too many times to just edit text. Need a better bind, which does NOT work while inside a field
|
||||||
|
break;
|
||||||
break;
|
default:
|
||||||
default:
|
break;
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
previouskey = event.keyCode
|
//previouskey = event.keyCode
|
||||||
|
}
|
||||||
|
|
||||||
|
const handlePaste = (event) => {
|
||||||
|
event.preventDefault();
|
||||||
|
const clipboard = (event.originalEvent || event).clipboardData.getData('text/plain');
|
||||||
|
//console.log("Text: ", clipboard)
|
||||||
|
//window.document.execCommand('insertText', false, text);
|
||||||
|
//
|
||||||
|
try {
|
||||||
|
const parsedjson = JSON.parse(clipboard)
|
||||||
|
//console.log("Parsed: ", parsedjson)
|
||||||
|
|
||||||
|
for (var key in parsedjson) {
|
||||||
|
const item = parsedjson[key]
|
||||||
|
console.log("Adding: ", item)
|
||||||
|
|
||||||
|
cy.add({
|
||||||
|
group: item.group,
|
||||||
|
data: item.data,
|
||||||
|
position: item.position,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e)
|
||||||
|
alert.info("Failed parsing clipboard: ", e)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const registerKeys = () => {
|
const registerKeys = () => {
|
||||||
document.addEventListener("keydown", handleKeyDown);
|
document.addEventListener("keydown", handleKeyDown);
|
||||||
|
document.addEventListener('paste', handlePaste)
|
||||||
}
|
}
|
||||||
|
|
||||||
const getEnvironments = () => {
|
const getEnvironments = () => {
|
||||||
|
|||||||
Reference in New Issue
Block a user