Sha256: 5c4b39e0643d4acf5d5339261db0bc1650e220f131d3e6ae7189294d9970b01a

Contents?: true

Size: 1.3 KB

Versions: 29

Compression:

Stored size: 1.3 KB

Contents

#= require ./image_view

Locomotive.Views.Inputs ||= {}

class Locomotive.Views.Inputs.SimpleImageView extends Locomotive.Views.Inputs.ImageView

  events: _.extend {}, Locomotive.Views.Inputs.ImageView.prototype.events,
    'change input[type=file]': 'change_file'

  render: ->
    super

    @$fields  =
      file:     @$('input[type=file]')
      remove:   @$('input[type=hidden].remove')

  undo: (event) ->
    # reset file input
    @$fields.file.wrap('<form>').parent('form').trigger('reset')
    @$fields.file.unwrap()

    super

  change_file: (event) ->
    file = if event.target.files then event.target.files[0] else null

    return if !file? || !file.type.match('image.*')

    @current_filename ||= @$('.file-name').html()

    @$spinner.show() & @update_filename(file.name)

    # ask for a cropped/resized version of the image
    @image_to_base_64 file, (base64) =>
      window.resize_image base64, @resize_format, (resized_image) =>
        @update_ui true, true, resized_image, file.name
        @$spinner.hide()

  update_ui: (with_file, undo_enabled, url, filename) ->
    value = if with_file then '0' else '1'
    @$fields.remove.val(value)

    super

  image_to_base_64: (file, callback) ->
    reader = new FileReader()
    reader.onload = (e) -> callback(e.target.result)
    reader.readAsDataURL(file)

Version data entries

29 entries across 29 versions & 1 rubygems

Version Path
locomotivecms-4.2.0.alpha2 app/assets/javascripts/locomotive/views/inputs/simple_image_view.js.coffee
locomotivecms-4.2.0.alpha1 app/assets/javascripts/locomotive/views/inputs/simple_image_view.js.coffee
locomotivecms-4.1.1 app/assets/javascripts/locomotive/views/inputs/simple_image_view.js.coffee
locomotivecms-4.1.0 app/assets/javascripts/locomotive/views/inputs/simple_image_view.js.coffee
locomotivecms-4.1.0.rc1 app/assets/javascripts/locomotive/views/inputs/simple_image_view.js.coffee
locomotivecms-4.0.3 app/assets/javascripts/locomotive/views/inputs/simple_image_view.js.coffee
locomotivecms-4.0.2 app/assets/javascripts/locomotive/views/inputs/simple_image_view.js.coffee
locomotivecms-4.0.1 app/assets/javascripts/locomotive/views/inputs/simple_image_view.js.coffee
locomotivecms-4.0.0 app/assets/javascripts/locomotive/views/inputs/simple_image_view.js.coffee
locomotivecms-4.0.0.rc0 app/assets/javascripts/locomotive/views/inputs/simple_image_view.js.coffee
locomotivecms-4.0.0.alpha3 app/assets/javascripts/locomotive/views/inputs/simple_image_view.js.coffee
locomotivecms-3.4.1 app/assets/javascripts/locomotive/views/inputs/simple_image_view.js.coffee
locomotivecms-4.0.0.alpha2 app/assets/javascripts/locomotive/views/inputs/simple_image_view.js.coffee
locomotivecms-4.0.0.alpha1 app/assets/javascripts/locomotive/views/inputs/simple_image_view.js.coffee
locomotivecms-3.4.0 app/assets/javascripts/locomotive/views/inputs/simple_image_view.js.coffee
locomotivecms-3.3.0 app/assets/javascripts/locomotive/views/inputs/simple_image_view.js.coffee
locomotivecms-3.3.0.rc3 app/assets/javascripts/locomotive/views/inputs/simple_image_view.js.coffee
locomotivecms-3.3.0.rc2 app/assets/javascripts/locomotive/views/inputs/simple_image_view.js.coffee
locomotivecms-3.1.2 app/assets/javascripts/locomotive/views/inputs/simple_image_view.js.coffee
locomotivecms-3.2.1 app/assets/javascripts/locomotive/views/inputs/simple_image_view.js.coffee