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