Sha256: ac839b899d30f3e4cdeffabc98be910de552a451bb48735b633da277ac7c465f

Contents?: true

Size: 1.62 KB

Versions: 73

Compression:

Stored size: 1.62 KB

Contents

class Tenon.features.tenonContent.ImageLinks
  constructor: (@$container) ->
    $(document).on('click', '.image-controls .add-link', @buildLinkForm)

  buildLinkForm: (e) =>
    @$button = $(e.currentTarget)
    @$image = @_getImage(e)
    @$form = @$image.find('.link-form')
    @$visibleForm = @$form.clone()
    @_showLinkForm()
    @_bindLinkForm()
    Tenon.activeImageControlsLinkForm = this

  saveForm: =>
    @$form.replaceWith(@$visibleForm)
    @_setButtonActiveState()
    Tenon.activeImageControls.showControls()

  _showLinkForm: (e) =>
    Tenon.activeImageControls.hideControls()
    @$visibleForm.appendTo('body').css
      left: @_leftOffset(Tenon.activeImageControls.previousX)
      top: Tenon.activeImageControls.previousY - 75
      display: 'block'

  _getImage: (e) =>
    $(e.currentTarget)
      .closest('.image-controls')
      .data('image')

  _leftOffset: (left) =>
    if $(window).width() < 641
      (($(window).width() - @$visibleForm.width()) / 2) + 'px'
    else
      left - (@$visibleForm.width() / 2) + 'px'

  _bindLinkForm: =>
    @$visibleForm.on('keyup', 'input', @_formFilled)
    @$visibleForm.on('click', '.medium-editor-cancel', @_cancel)

  _formFilled: (e) =>
    @saveForm() if e.keyCode == 13

  _cancel: (e) =>
    e.preventDefault()
    @$visibleForm.remove()

  _setButtonActiveState: (e) =>
    if @$visibleForm.find('input').val() != ''
      @$button.addClass('medium-editor-button-active')
      @$image.find('.add-link').addClass('medium-editor-button-active')
    else
      @$button.removeClass('medium-editor-button-active')
      @$image.find('.add-link').removeClass('medium-editor-button-active')

Version data entries

73 entries across 73 versions & 1 rubygems

Version Path
tenon-1.1.8 app/assets/javascripts/tenon/features/tenon_content/image_links.js.coffee
tenon-1.1.7 app/assets/javascripts/tenon/features/tenon_content/image_links.js.coffee
tenon-1.1.6 app/assets/javascripts/tenon/features/tenon_content/image_links.js.coffee
tenon-1.1.5 app/assets/javascripts/tenon/features/tenon_content/image_links.js.coffee
tenon-1.1.4 app/assets/javascripts/tenon/features/tenon_content/image_links.js.coffee
tenon-1.1.3 app/assets/javascripts/tenon/features/tenon_content/image_links.js.coffee
tenon-1.1.2 app/assets/javascripts/tenon/features/tenon_content/image_links.js.coffee
tenon-1.1.1 app/assets/javascripts/tenon/features/tenon_content/image_links.js.coffee
tenon-1.0.76 app/assets/javascripts/tenon/features/tenon_content/image_links.js.coffee
tenon-1.0.75 app/assets/javascripts/tenon/features/tenon_content/image_links.js.coffee
tenon-1.0.74 app/assets/javascripts/tenon/features/tenon_content/image_links.js.coffee
tenon-1.0.73 app/assets/javascripts/tenon/features/tenon_content/image_links.js.coffee
tenon-1.0.72 app/assets/javascripts/tenon/features/tenon_content/image_links.js.coffee
tenon-1.0.71 app/assets/javascripts/tenon/features/tenon_content/image_links.js.coffee
tenon-1.0.70 app/assets/javascripts/tenon/features/tenon_content/image_links.js.coffee
tenon-1.0.69 app/assets/javascripts/tenon/features/tenon_content/image_links.js.coffee
tenon-1.0.68 app/assets/javascripts/tenon/features/tenon_content/image_links.js.coffee
tenon-1.0.67 app/assets/javascripts/tenon/features/tenon_content/image_links.js.coffee
tenon-1.0.66 app/assets/javascripts/tenon/features/tenon_content/image_links.js.coffee
tenon-1.0.65 app/assets/javascripts/tenon/features/tenon_content/image_links.js.coffee