Sha256: c279e49b2b6e425b91488f63db2682813557f566d2afcd9413064d451057e340

Contents?: true

Size: 1.09 KB

Versions: 3

Compression:

Stored size: 1.09 KB

Contents

class window.CroppableImage
  @crop_defaults = {}
#    aspectRatio: 760 / 350
#    setSelect: [0, 0, 760, 350]

  constructor: (@el, @options = {}) ->
    @options = {} unless _.isObject(@options)

  fancyboxHandler: =>
    _.defaults(@options, CroppableImage.crop_defaults)
    @options.onSelect = @setCropData
    @options.onChange = @setCropData

    $('.fancybox-image:first').Jcrop @options
    $('.fancybox-nav').hide()

    $cont = $('.fancybox-outer:first')
    $btn = $("<a href='#' class='btn btn-primary' id='crop_button'>Обрезать</a>")
    $cont.append($btn)
    $btn.click @cropHandler

  setCropData: (coords) =>
    @cropData = coords

  cropHandler: (e) =>
    e.preventDefault()
    asset_id = to_i($('.fancybox-image:first').attr('src').match(/\/[\d\/]{2,}\//)[0].replace(/\//g, ''))
    $asset = $("#asset_#{asset_id}")
    geometry = [@cropData['w'], @cropData['h'], @cropData['x'], @cropData['y']].join(',')
    $.post "/admin/assets/#{$asset.data('id')}/crop", {geometry: geometry}, (data) =>
      $asset.replaceWith @el.data('assets').template(data.asset)
      $.fancybox.close()

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
ab_admin-0.6.0 app/assets/javascripts/ab_admin/components/croppable_image.js.coffee
ab_admin-0.5.0 app/assets/javascripts/ab_admin/components/croppable_image.js.coffee
ab_admin-0.4.0 app/assets/javascripts/ab_admin/components/croppable_image.js.coffee