IT61/it61-rails

View on GitHub
app/assets/javascripts/components/image_import.js

Summary

Maintainability
A
2 hrs
Test Coverage
var imageImport = (function () {
  // Import image to Canvas when $setImage input changed
  var importImage = function ($croppedModalImage, $imageInput, $modal) {
    var files = $imageInput[0].files;
    var file;
    if (!$croppedModalImage.data('cropper')) {
      return;
    }
    if (files && files.length) {
      file = files[0];
      if (/^image\/[\w+]+$/.test(file.type)) {
        $modal.prop("checked", true);
        blobURL = URL.createObjectURL(file);
        $croppedModalImage.one('built.cropper', function () {
          // Revoke when load complete
          URL.revokeObjectURL(blobURL);
        }).cropper('reset').cropper('replace', blobURL);
        $imageInput.val('');
      } else {
        window.alert('Please choose an image file.');
      }
    }
  };

  var bindImageImport = function ($croppedModalImage, $imageInput, $modal) {
    var URL = window.URL || window.webkitURL;
    if (URL) {
      $imageInput.change(function () {
        importImage($croppedModalImage, $imageInput, $modal)
      });
    } else {
      $imageInput.prop('disabled', true).parent().addClass('disabled');
    }
  };

  return {
    bind: bindImageImport
  };
})();