Sha256: 66d314c3ff58fe74694072f0e7d979b388b617a19750d7a09a2132ebc7f11d03

Contents?: true

Size: 1.44 KB

Versions: 7

Compression:

Stored size: 1.44 KB

Contents

class Tenon.features.AssetCropping
  constructor: ->
    $(document).on('click', '.asset-crop', @_loadCrop)
    $(document).on('click', '.asset-cropping .close', @_cancelCrop)
    $(document).on('ajax:success', '.asset-cropping form[data-remote]', @_saveCrop)
    $(document).keyup (ev) =>
      @_cancelCrop(ev) if ev.keyCode is 27
    $(document).on('click', '.save', @_showSpinner)

  _showSpinner: (e) ->
    $('.spinner').fadeIn()

  _loadCrop: (e) =>
    e.preventDefault()
    @$link = $(e.currentTarget)
    $.get(@$link.attr('href'), {format: 'html'}, @_startCrop, 'html')

  _cancelCrop: (e) ->
    e.preventDefault()
    $('.asset-cropping').remove()

  _startCrop: (data) =>
    $(data).appendTo('body')
    $cropbox = $('#cropbox')

    $("#cropbox").Jcrop
      onChange: @_updateCrop
      onSelect: @_updateCrop
      boxWidth: $(window).width() * 0.8
      boxHeight: $(window).height() * 0.75

  _saveCrop: (e, data) =>
    if @$link.data('post-crop-handler')
      @_sendToHandler(data)
    else
      $('.asset-cropping').remove()

  _sendToHandler: (data) =>
    parts = @$link.data('post-crop-handler').split('.')
    method = window
    $(parts).each (i, part) -> method = method[part]
    new method(@$link, data)

  _updateCrop: (coords) ->
    ratio = $('#cropbox').data('width') / $('#cropbox').width()
    $('#asset_crop_x').val(coords.x)
    $('#asset_crop_y').val(coords.y)
    $('#asset_crop_w').val(coords.w)
    $('#asset_crop_h').val(coords.h)

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
tenon-1.1.8 app/assets/javascripts/tenon/features/asset_cropping.js.coffee
tenon-1.1.7 app/assets/javascripts/tenon/features/asset_cropping.js.coffee
tenon-1.1.6 app/assets/javascripts/tenon/features/asset_cropping.js.coffee
tenon-1.1.5 app/assets/javascripts/tenon/features/asset_cropping.js.coffee
tenon-1.1.4 app/assets/javascripts/tenon/features/asset_cropping.js.coffee
tenon-1.1.3 app/assets/javascripts/tenon/features/asset_cropping.js.coffee
tenon-1.1.2 app/assets/javascripts/tenon/features/asset_cropping.js.coffee