123 lines
3.4 KiB
JavaScript
123 lines
3.4 KiB
JavaScript
// This is a manifest file that'll be compiled into application.js, which will include all the files
|
|
// listed below.
|
|
//
|
|
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
|
|
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
|
|
//
|
|
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
|
|
// compiled file.
|
|
//
|
|
// Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details
|
|
// about supported directives.
|
|
//
|
|
//= require jquery
|
|
//= require jquery_ujs
|
|
//= require foundation
|
|
//= require cookies_eu
|
|
//= require_tree .
|
|
|
|
$(function(){ $(document).foundation(); });
|
|
|
|
// Load reviews on package's details page
|
|
load_reviews = function() {
|
|
// Display message while loading reviews
|
|
// $('#reviews').html("<i>Loading reviews...</i>");
|
|
|
|
// Hide the DIV so that in can be faded in later
|
|
$('#reviews').hide();
|
|
|
|
// The URL is specified in the #reviews's DIV data attribute
|
|
var url = $('#reviews').attr('data-package-reviews-url');
|
|
$('#reviews').load(url, null,
|
|
// Fade in the reviews as soon as the DIV is loaded and filled
|
|
function(){
|
|
$(this).fadeIn('slow')
|
|
}
|
|
);
|
|
};
|
|
|
|
// Initialize the upload form.
|
|
upload_form_init = function() {
|
|
// Disable the submit button if Javascript is supported.
|
|
// Upload will start right after selecting images.
|
|
$('#file-submit').hide();
|
|
|
|
// Install event handler to notice when files were selected.
|
|
$('#file').on('change', upload_form_files_selected);
|
|
};
|
|
|
|
upload_form_files_selected = function() {
|
|
no_files = this.files.length;
|
|
if (no_files > 0) {
|
|
$('#file-label').html(no_files+" files selected - uploading…"); // change label
|
|
$('#file-select-button').attr('disabled','disabled'); // disable select button
|
|
$('#file-form').submit(); // start upload
|
|
}
|
|
};
|
|
|
|
|
|
// Handle Ctrl-V to paste an image directly
|
|
function upload_paste_handler(event)
|
|
{
|
|
console.log("paste!");
|
|
var items = (event.clipboardData || event.originalEvent.clipboardData).items;
|
|
|
|
// /*Make Sure Only One File is Copied*/
|
|
// if (items.length != 1) {
|
|
// return;
|
|
// }
|
|
|
|
for (var i = 0 ; i < items.length ; i++)
|
|
{
|
|
var item = items[i];
|
|
console.log(item);
|
|
console.log("item size="+item.size);
|
|
if (!item.type.startsWith('image/'))
|
|
{
|
|
console.log("Skipping file with type "+item.type);
|
|
continue
|
|
}
|
|
console.log(item.type);
|
|
var file = item.getAsFile();
|
|
console.log(file);
|
|
upload_file_with_ajax(file);
|
|
}
|
|
}
|
|
|
|
function upload_file_with_ajax(file)
|
|
{
|
|
if (file==null)
|
|
{
|
|
console.log("File was null. Strange.");
|
|
display_error('Maybe the image was too large.');
|
|
return;
|
|
}
|
|
var formData = new FormData();
|
|
formData.append('file', file);
|
|
|
|
$.ajax(ajax_upload_url,
|
|
{
|
|
type: 'POST',
|
|
contentType: false,
|
|
processData: false,
|
|
data: formData,
|
|
//dataType: 'json',
|
|
error: function(xhr, txt, err)
|
|
{
|
|
console.log("AJAX file upload returned error: "+txt+" / "+err);
|
|
display_error('Did you copy a proper image into your clipboard?');
|
|
},
|
|
success: function(res)
|
|
{
|
|
console.log("AJAX file upload was ok");
|
|
// Go back to details page to show the new upload
|
|
window.location.replace(after_upload_url);
|
|
}
|
|
});
|
|
}
|
|
|
|
function display_error(msg)
|
|
{
|
|
$('#messages').html(
|
|
'<div class="callout alert alert-callout-subtle radius">Sorry, pasting did not work.' + msg + '</div>')
|
|
}
|