Skip to content

Commit fb2745c

Browse files
author
Tim Berners-Lee
committed
Add dropping of files to drag/drop functionality
1 parent 7626aa7 commit fb2745c

2 files changed

Lines changed: 13 additions & 1 deletion

File tree

index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ var UI = {
5151
pad: require('./lib/pad'),
5252
rdf: rdf,
5353
signin: require('./lib/signin'),
54+
solid: require('solid-client'),
5455
store: require('./lib/store'),
5556
table: require('./lib/table'),
5657
tabs: require('./lib/tabs'),

lib/widgets.js

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,7 @@ UI.widgets.askName = function (dom, kb, container, predicate, klass) {
290290

291291

292292

293-
UI.widgets.makeDropTarget = function(ele, droppedURIHandler){
293+
UI.widgets.makeDropTarget = function(ele, droppedURIHandler, droppedFileHandler){
294294

295295
var dragoverListener = function (e) {
296296
e.preventDefault() // Neeed else drop does not work [sic]
@@ -324,6 +324,17 @@ UI.widgets.makeDropTarget = function(ele, droppedURIHandler){
324324
console.log('Dropped text/uri-list: ' + uris)
325325
} else if (type === 'text/plain') {
326326
text = e.dataTransfer.getData(type)
327+
} else if (type === 'Files' && droppedFileHandler) {
328+
var files = e.dataTransfer.files; // FileList object.
329+
// files is a FileList of File objects. List some properties.
330+
// https://www.html5rocks.com/en/tutorials/file/dndfiles/
331+
for (var i = 0, f; f = files[i]; i++) {
332+
console.log("Filename: " + f.name + ", type: " + (f.type || 'n/a') +
333+
" size: " + f.size + ' bytes, last modified: ' +
334+
(f.lastModifiedDate ? f.lastModifiedDate.toLocaleDateString() : 'n/a')
335+
);
336+
}
337+
droppedFileHandler(files)
327338
}
328339
}
329340
if (uris === null && text && text.slice(0, 4) === 'http') {

0 commit comments

Comments
 (0)