:javascript
var $here = $("#csv-drop-here");
var form_data = new FormData;
var appendFiles = function(files) {
$.each(files, function(i, file) {
form_data.append("files[]", file);
$("#csv-file-list").append($("
" + file.name + "
"));
});
};
$("#csv-drop-cover").hide();
$here.on("dragenter", function(e) {
$("#csv-drop-cover").show();
});
$("#csv-drop-cover")
.on("dragenter", function(e) {
$here.addClass("dragover");
})
.on("dragover", function(e) {
e.preventDefault();
e.dataTransfer.dropEffect = "copy";
return false;
})
.on("dragleave", function(e) {
$here.removeClass("dragover");
$(this).hide();
})
.on("drop", function(e) {
e.preventDefault();
$here.removeClass("dragover");
$(this).hide();
appendFiles(e.dataTransfer.files);
});
$("#csv-select-file-button").on("click", function(e) {
$("#csv-select-file-input").click();
});
$("#csv-select-file-input").on("change", function(e) {
appendFiles(this.files);
});
$("#csv-import-files").on("click", function(e) {
$.ajax({
url: "/api/csv/import",
type: "post",
data: form_data,
processData: false,
contentType: false
});
});
#csv-drop-here
.inner
%div
%div ここにCSVファイルをドラッグ&ドロップ
%div.else もしくは…
%div
%input#csv-select-file-input.hidden(type="file" multiple="multiple")
%button#csv-select-file-button.btn.btn-warning.btn-xs
ファイルを選択
#csv-drop-cover.drop-cover(effectAllowed="all")
#csv-file-list
-# インポートダイアログの「インポート」ボタンから処理を移譲されてくる
#csv-import-files.hidden