Page MenuHomestyx hydra

behavior-global-drag-and-drop.js
No OneTemporary

behavior-global-drag-and-drop.js

/**
* @provides javelin-behavior-global-drag-and-drop
* @requires javelin-behavior
* javelin-dom
* javelin-uri
* javelin-mask
* phabricator-drag-and-drop-file-upload
*/
JX.behavior('global-drag-and-drop', function(config) {
if (!JX.PhabricatorDragAndDropFileUpload.isSupported()) {
return;
}
var pending = 0;
var files = [];
var errors = false;
if (config.ifSupported) {
JX.$(config.ifSupported).style.display = '';
}
var drop = new JX.PhabricatorDragAndDropFileUpload(document.documentElement)
.setURI(config.uploadURI);
drop.listen('didBeginDrag', function() {
JX.Mask.show();
JX.DOM.show(JX.$(config.instructions));
});
drop.listen('didEndDrag', function() {
JX.Mask.hide();
JX.DOM.hide(JX.$(config.instructions));
});
drop.listen('willUpload', function() {
pending++;
});
drop.listen('didUpload', function(f) {
files.push(f);
pending--;
if (pending === 0 && !errors) {
// If whatever the user dropped in has finished uploading, send them to
// their uploads.
var uri;
uri = JX.$U(config.browseURI);
var ids = [];
for (var ii = 0; ii < files.length; ii++) {
ids.push(files[ii].getID());
}
uri.setQueryParam('h', ids.join(','));
files = [];
uri.go();
}
});
drop.listen('didError', function() {
pending--;
errors = true;
});
drop.start();
});

File Metadata

Mime Type
text/plain
Expires
Wed, Dec 3, 4:29 PM (2 h, 42 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
433732
Default Alt Text
behavior-global-drag-and-drop.js (1 KB)

Event Timeline