@@ -22,7 +22,8 @@ var widgets = module.exports = Object.assign(
2222 { } ,
2323 {
2424 PeoplePicker : require ( './peoplePicker' ) . default
25- }
25+ } ,
26+ require ( './dragAndDrop' )
2627)
2728
2829var UI = {
@@ -297,115 +298,6 @@ UI.widgets.askName = function (dom, kb, container, predicate, klass) {
297298}
298299
299300
300- ///////////////////////////////////////////////////// DRAG AND drop
301-
302-
303-
304- UI . widgets . makeDropTarget = function ( ele , droppedURIHandler , droppedFileHandler ) {
305-
306- var dragoverListener = function ( e ) {
307- e . preventDefault ( ) // Neeed else drop does not work [sic]
308- e . dataTransfer . dropEffect = 'copy'
309- }
310-
311- var dragenterListener = function ( e ) {
312- console . log ( 'dragenter event dropEffect: ' + e . dataTransfer . dropEffect )
313- this . style . backgroundColor = '#ccc'
314- e . dataTransfer . dropEffect = 'link'
315- console . log ( 'dragenter event dropEffect 2: ' + e . dataTransfer . dropEffect )
316- }
317- var dragleaveListener = function ( e ) {
318- console . log ( 'dragleave event dropEffect: ' + e . dataTransfer . dropEffect )
319- this . style . backgroundColor = 'white'
320- }
321-
322- var dropListener = function ( e ) {
323- if ( e . preventDefault ) e . preventDefault ( ) // stops the browser from redirecting off to the text.
324- console . log ( 'Drop event. dropEffect: ' + e . dataTransfer . dropEffect )
325- console . log ( 'Drop event. types: ' + ( e . dataTransfer . types ? e . dataTransfer . types . join ( ', ' ) : 'NOPE' ) )
326-
327- var uris = null
328- var text
329- var thisEle = this
330- if ( e . dataTransfer . types ) {
331- for ( var t = 0 ; t < e . dataTransfer . types . length ; t ++ ) {
332- var type = e . dataTransfer . types [ t ]
333- if ( type === 'text/uri-list' ) {
334- uris = e . dataTransfer . getData ( type ) . split ( '\n' ) // @ ignore those starting with #
335- console . log ( 'Dropped text/uri-list: ' + uris )
336- } else if ( type === 'text/plain' ) {
337- text = e . dataTransfer . getData ( type )
338- } else if ( type === 'Files' && droppedFileHandler ) {
339- var files = e . dataTransfer . files ; // FileList object.
340- // files is a FileList of File objects. List some properties.
341- // https://www.html5rocks.com/en/tutorials/file/dndfiles/
342- for ( var i = 0 , f ; f = files [ i ] ; i ++ ) {
343- console . log ( "Filename: " + f . name + ", type: " + ( f . type || 'n/a' ) +
344- " size: " + f . size + ' bytes, last modified: ' +
345- ( f . lastModifiedDate ? f . lastModifiedDate . toLocaleDateString ( ) : 'n/a' )
346- ) ;
347- }
348- droppedFileHandler ( files )
349- }
350- }
351- if ( uris === null && text && text . slice ( 0 , 4 ) === 'http' ) {
352- uris = text
353- console . log ( "Waring: Poor man's drop: using text for URI" ) // chrome disables text/uri-list??
354- }
355- } else {
356- // ... however, if we're IE, we don't have the .types property, so we'll just get the Text value
357- uris = [ e . dataTransfer . getData ( 'Text' ) ]
358- console . log ( 'WARNING non-standard drop event: ' + uris [ 0 ] )
359- }
360- console . log ( 'Dropped URI list (2): ' + uris )
361- if ( uris ) {
362- droppedURIHandler ( uris )
363- }
364- return false
365- } // dropListener
366-
367- var addTargetListeners = function ( ele ) {
368- if ( ! ele ) {
369- console . log ( "@@@ addTargetListeners: ele " + ele )
370- }
371- ele . addEventListener ( 'dragover' , dragoverListener )
372- ele . addEventListener ( 'dragenter' , dragenterListener )
373- ele . addEventListener ( 'dragleave' , dragleaveListener )
374- ele . addEventListener ( 'drop' , dropListener )
375- }
376- addTargetListeners ( ele , droppedURIHandler )
377- } // listen for dropped URIs
378-
379-
380- // Make an HTML element draggable as a URI-identified thing
381- //
382- // Possibly later set the drag image too?
383- //
384- UI . widgets . makeDraggable = function ( tr , obj ) {
385-
386- tr . setAttribute ( 'draggable' , 'true' ) // Stop the image being dragged instead - just the TR
387-
388- tr . addEventListener ( 'dragstart' , function ( e ) {
389- tr . style . fontWeight = 'bold'
390- e . dataTransfer . setData ( 'text/uri-list' , obj . uri )
391- e . dataTransfer . setData ( 'text/plain' , obj . uri )
392- e . dataTransfer . setData ( 'text/html' , tr . outerHTML )
393- console . log ( 'Dragstart: ' + tr + ' -> ' + obj + 'de: ' + e . dataTransfer . dropEffect )
394- } , false )
395-
396- tr . addEventListener ( 'drag' , function ( e ) {
397- e . preventDefault ( )
398- e . stopPropagation ( )
399- // console.log('Drag: dropEffect: ' + e.dataTransfer.dropEffect)
400- } , false )
401-
402- tr . addEventListener ( 'dragend' , function ( e ) {
403- tr . style . fontWeight = 'normal'
404- console . log ( 'Dragend dropeffect: ' + e . dataTransfer . dropEffect )
405- console . log ( 'Dragend: ' + tr + ' -> ' + obj )
406- } , false )
407- }
408-
409301//////////////////////////////////////////////////////////////////
410302
411303// A little link icon
0 commit comments