question 1:
after the [continue to add] button of the webuploader plugin is clicked, after the file box pops up, you cannot drag and drop files, but Google can drag and drop them.
Code:
-webuploader.js-
define("lib/filepicker",[
"base",
"runtime/client",
"lib/file"
], function( Base, RuntimeClient, File ) {
var $ = Base.$;
function FilePicker( opts ) {
opts = this.options = $.extend({}, FilePicker.options, opts );
opts.container = $( opts.id );
if ( !opts.container.length ) {
throw new Error("");
}
opts.innerHTML = opts.innerHTML || opts.label ||
opts.container.html() || "";
opts.button = $( opts.button || document.createElement("div") );
opts.button.html( opts.innerHTML );
opts.container.html( opts.button );
RuntimeClient.call( this, "FilePicker", true );
}
FilePicker.options = {
button: null,
container: null,
label: null,
innerHTML: null,
multiple: true,
accept: null,
name: "file",
style: "webuploader-pick" //pick element class attribute, default is "webuploader-pick"
};
Base.inherits(RuntimeClient, {
constructor: FilePicker,
init: function() {
var me = this,
opts = me.options,
button = opts.button,
style = opts.style;
if (style)
button.addClass("webuploader-pick");
me.on( "all", function( type ) {
var files;
switch ( type ) {
case "mouseenter":
if (style)
button.addClass("webuploader-pick-hover");
break;
case "mouseleave":
if (style)
button.removeClass("webuploader-pick-hover");
break;
case "change":
files = me.exec("getFiles");
me.trigger( "select", $.map( files, function( file ) {
file = new File( me.getRuid(), file );
//
file._refer = opts.container;
return file;
}), opts.container );
break;
}
});
me.connectRuntime( opts, function() {
me.refresh();
me.exec( "init", opts );
me.trigger("ready");
});
this._resizeHandler = Base.bindFn( this.refresh, this );
$( window ).on( "resize", this._resizeHandler );
},
refresh: function() {
var shimContainer = this.getRuntime().getContainer(),
button = this.options.button,
width = button.outerWidth ?
button.outerWidth() : button.width(),
height = button.outerHeight ?
button.outerHeight() : button.height(),
pos = button.offset();
width && height && shimContainer.css({
bottom: "auto",
right: "auto",
width: width + "px",
height: height + "px"
}).offset( pos );
},
enable: function() {
var btn = this.options.button;
btn.removeClass("webuploader-pick-disable");
this.refresh();
},
disable: function() {
var btn = this.options.button;
this.getRuntime().getContainer().css({
top: "-99999px"
});
btn.addClass("webuploader-pick-disable");
},
destroy: function() {
var btn = this.options.button;
$( window ).off( "resize", this._resizeHandler );
btn.removeClass("webuploader-pick-disable webuploader-pick-hover " +
"webuploader-pick");
}
});
return FilePicker;
});