IT61/it61-rails

View on GitHub
app/assets/javascripts/users/edit_event_manager.js

Summary

Maintainability
A
2 hrs
Test Coverage
function uploadImageToServer($croppedModalImage, $form) {
  var canvas = $croppedModalImage.cropper('getCroppedCanvas');
  canvas.toBlob(function (blob) {
    var formData = new FormData();
    formData.append('avatar', blob, 'blob.png');
    $.ajax($form.data('avatar-path'), {
      method: 'POST',
      data: formData,
      processData: false,
      contentType: false,
      xhr: function () {  // Custom XMLHttpRequest
        var myXhr = $.ajaxSettings.xhr();
        if (myXhr.upload) { // Check if upload property exists
          myXhr.upload.addEventListener('progress', function progressHandlingFunction() {
          }, false); // For handling the progress of the upload
        }
        return myXhr;
      },
      success: function () {
        $('#image').replaceWith($('<div>', {'id': 'image'}).html(canvas));
      },
      error: function () {
        console.log('Upload error');
      }
    });
  });
}

var editEventManager = {
  bindDeleteAvatarButton: function($imageForm, $image, $deleteBtn) {
    $deleteBtn.on('click', function () {
      deleteAvatar($imageForm);
      $image.attr('src', $image.data('default-avatar-path'));
      return false;
    });
  },

  initCropper: function($croppedModalImage, $imageInput, $modal, $uploadImage, $imageForm, $currentImage) {
    imageImport.bind($croppedModalImage, $imageInput, $modal);
    cropper.create($croppedModalImage, $currentImage, $imageForm, function onCropperCreated() {
      $uploadImage.on('click', function () {
        uploadImageToServer($croppedModalImage, $imageForm);
      });
    });
  }
};