Page Menu
Home
GnuPG
Search
Configure Global Search
Log In
Files
F35860126
behavior-global-drag-and-drop.js
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Size
1 KB
Subscribers
None
behavior-global-drag-and-drop.js
View Options
/**
* @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
(
f
)
{
JX
.
Mask
.
show
();
JX
.
DOM
.
show
(
JX
.
$
(
config
.
instructions
));
});
drop
.
listen
(
'didEndDrag'
,
function
(
f
)
{
JX
.
Mask
.
hide
();
JX
.
DOM
.
hide
(
JX
.
$
(
config
.
instructions
));
});
drop
.
listen
(
'willUpload'
,
function
(
f
)
{
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
(
f
)
{
pending
--
;
errors
=
true
;
});
drop
.
start
();
});
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, Feb 15, 3:46 PM (15 h, 24 m)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
aa/57/abbb685f02642eb696c046bbef6a
Attached To
rPHAB Phabricator
Event Timeline
Log In to Comment