From 3c7238f29cbae89bafe5c4510cb2af456da59cdf Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Mon, 6 May 2019 22:34:38 +1000 Subject: [PATCH] Extract img URL from a drag-and-dropped image from another website - https://stackoverflow.com/a/19268449 --- InvenTree/part/templates/part/part_base.html | 19 +++++++++++---- .../static/script/inventree/inventree.js | 24 +++++++++++++++++++ 2 files changed, 39 insertions(+), 4 deletions(-) diff --git a/InvenTree/part/templates/part/part_base.html b/InvenTree/part/templates/part/part_base.html index 29e1638d55..fa6b077f8e 100644 --- a/InvenTree/part/templates/part/part_base.html +++ b/InvenTree/part/templates/part/part_base.html @@ -106,11 +106,10 @@ var transfer = event.originalEvent.dataTransfer; - var files = transfer.files; - - if (files.length > 0) { - var file = files[0]; + if (isFileTransfer(transfer)) { + var file = transfer.files[0]; + inventreeFileUpload( "{% url 'part-image-upload' part.id %}", file, @@ -124,6 +123,18 @@ } } ); + } else if (isOnlineTransfer(transfer)) { + + getImageUrlFromTransfer(transfer); + /* + for (var i = 0; i < 12; i++) { + transfer.items[i].getAsString(function(text) { + console.log('item ' + i + ' - ' + text); + }); + } + */ + } else { + console.log('Unknown transfer'); } }); diff --git a/InvenTree/static/script/inventree/inventree.js b/InvenTree/static/script/inventree/inventree.js index 35f446f9ef..b9454e96a7 100644 --- a/InvenTree/static/script/inventree/inventree.js +++ b/InvenTree/static/script/inventree/inventree.js @@ -35,4 +35,28 @@ function inventreeDocReady() { modal.modal('show'); }); +} + +function isFileTransfer(transfer) { + /* Determine if a transfer (e.g. drag-and-drop) is a file transfer + */ + + return transfer.files.length > 0; +} + + +function isOnlineTransfer(transfer) { + /* Determine if a drag-and-drop transfer is from another website. + * e.g. dragged from another browser window + */ + + return transfer.items.length > 0; +} + + +function getImageUrlFromTransfer(transfer) { + /* Extract external image URL from a drag-and-dropped image + */ + + console.log(transfer.getData('text/html').match(/src\s*=\s*"(.+?)"/)[1]); } \ No newline at end of file