mirror of
https://github.com/rr-/szurubooru.git
synced 2025-07-17 08:26:24 +00:00
Switched to spaces
This commit is contained in:
@ -2,64 +2,64 @@ var App = App || {};
|
||||
App.Controls = App.Controls || {};
|
||||
|
||||
App.Controls.FileDropper = function($fileInput) {
|
||||
var _ = App.DI.get('_');
|
||||
var jQuery = App.DI.get('jQuery');
|
||||
var _ = App.DI.get('_');
|
||||
var jQuery = App.DI.get('jQuery');
|
||||
|
||||
var options = {
|
||||
onChange: null,
|
||||
setNames: false,
|
||||
};
|
||||
var options = {
|
||||
onChange: null,
|
||||
setNames: false,
|
||||
};
|
||||
|
||||
var $dropDiv = jQuery('<button type="button" class="file-handler"></button>');
|
||||
var allowMultiple = $fileInput.attr('multiple');
|
||||
$dropDiv.html((allowMultiple ? 'Drop files here!' : 'Drop file here!') + '<br/>Or just click on this box.');
|
||||
$dropDiv.insertBefore($fileInput);
|
||||
$fileInput.attr('multiple', allowMultiple);
|
||||
$fileInput.hide();
|
||||
var $dropDiv = jQuery('<button type="button" class="file-handler"></button>');
|
||||
var allowMultiple = $fileInput.attr('multiple');
|
||||
$dropDiv.html((allowMultiple ? 'Drop files here!' : 'Drop file here!') + '<br/>Or just click on this box.');
|
||||
$dropDiv.insertBefore($fileInput);
|
||||
$fileInput.attr('multiple', allowMultiple);
|
||||
$fileInput.hide();
|
||||
|
||||
$fileInput.change(function(e) {
|
||||
addFiles(this.files);
|
||||
});
|
||||
$fileInput.change(function(e) {
|
||||
addFiles(this.files);
|
||||
});
|
||||
|
||||
$dropDiv.on('dragenter', function(e) {
|
||||
$dropDiv.addClass('active');
|
||||
}).on('dragleave', function(e) {
|
||||
$dropDiv.removeClass('active');
|
||||
}).on('dragover', function(e) {
|
||||
e.preventDefault();
|
||||
}).on('drop', function(e) {
|
||||
e.preventDefault();
|
||||
addFiles(e.originalEvent.dataTransfer.files);
|
||||
}).on('click', function(e) {
|
||||
$fileInput.show().focus().trigger('click').hide();
|
||||
$dropDiv.addClass('active');
|
||||
});
|
||||
$dropDiv.on('dragenter', function(e) {
|
||||
$dropDiv.addClass('active');
|
||||
}).on('dragleave', function(e) {
|
||||
$dropDiv.removeClass('active');
|
||||
}).on('dragover', function(e) {
|
||||
e.preventDefault();
|
||||
}).on('drop', function(e) {
|
||||
e.preventDefault();
|
||||
addFiles(e.originalEvent.dataTransfer.files);
|
||||
}).on('click', function(e) {
|
||||
$fileInput.show().focus().trigger('click').hide();
|
||||
$dropDiv.addClass('active');
|
||||
});
|
||||
|
||||
function addFiles(files) {
|
||||
$dropDiv.removeClass('active');
|
||||
if (!allowMultiple && files.length > 1) {
|
||||
window.alert('Cannot select multiple files.');
|
||||
return;
|
||||
}
|
||||
if (typeof(options.onChange) !== 'undefined') {
|
||||
options.onChange(files);
|
||||
}
|
||||
if (options.setNames && !allowMultiple) {
|
||||
$dropDiv.text(files[0].name);
|
||||
}
|
||||
}
|
||||
function addFiles(files) {
|
||||
$dropDiv.removeClass('active');
|
||||
if (!allowMultiple && files.length > 1) {
|
||||
window.alert('Cannot select multiple files.');
|
||||
return;
|
||||
}
|
||||
if (typeof(options.onChange) !== 'undefined') {
|
||||
options.onChange(files);
|
||||
}
|
||||
if (options.setNames && !allowMultiple) {
|
||||
$dropDiv.text(files[0].name);
|
||||
}
|
||||
}
|
||||
|
||||
function readAsDataURL(file, callback) {
|
||||
var reader = new FileReader();
|
||||
reader.onloadend = function() {
|
||||
callback(reader.result);
|
||||
};
|
||||
reader.readAsDataURL(file);
|
||||
}
|
||||
function readAsDataURL(file, callback) {
|
||||
var reader = new FileReader();
|
||||
reader.onloadend = function() {
|
||||
callback(reader.result);
|
||||
};
|
||||
reader.readAsDataURL(file);
|
||||
}
|
||||
|
||||
_.extend(options, {
|
||||
readAsDataURL: readAsDataURL,
|
||||
});
|
||||
_.extend(options, {
|
||||
readAsDataURL: readAsDataURL,
|
||||
});
|
||||
|
||||
return options;
|
||||
return options;
|
||||
};
|
||||
|
Reference in New Issue
Block a user