Sha256: 40cf50b17a53ddc7f1fa0f8a5c7100ec04f437f56d057f14163c4248af088359

Contents?: true

Size: 1.71 KB

Versions: 3

Compression:

Stored size: 1.71 KB

Contents

@Mercury.modalHandlers.insertTable = {

  initialize: ->
    @table = @element.find('#table_display table')

    @table.on 'click', (event) => @onCellClick($(event.target))

    @element.find('#table_alignment').on 'change', => @setTableAlignment()
    @element.find('#table_border').on 'keyup', => @setTableBorder()
    @element.find('#table_spacing').on 'keyup', => @setTableCellSpacing()
    @element.find('[data-action]').on 'click', (event) =>
      event.preventDefault()
      @onActionClick(jQuery(event.target).data('action'))

    @selectFirstCell()

    @element.find('form').on 'submit', (event) =>
      event.preventDefault()
      @submitForm()
      @hide()


  selectFirstCell: ->
    firstCell = @table.find('td, th').first()
    firstCell.addClass('selected')
    Mercury.tableEditor(@table, firstCell, ' ')


  onCellClick: (@cell) ->
    @table = @cell.closest('table')
    @table.find('.selected').removeAttr('class')
    @cell.addClass('selected')
    Mercury.tableEditor(@table, @cell, ' ')


  onActionClick: (action) ->
    return unless action
    Mercury.tableEditor[action]()


  setTableAlignment: ->
    @table.attr({align: @element.find('#table_alignment').val()})


  setTableBorder: ->
    @table.attr({border: parseInt(@element.find('#table_border').val(), 10) || 1})


  setTableCellSpacing: ->
    @table.attr({cellspacing: parseInt(@element.find('#table_spacing').val(), 10) || 1})


  submitForm: ->
    @table.find('.selected').removeAttr('class')
    @table.find('td, th').html('<br/>')

    html = jQuery('<div>').html(@table).html()
    value = html.replace(/^\s+|\n/gm, '').replace(/(<\/.*?>|<table.*?>|<tbody>|<tr>)/g, '$1\n')

    Mercury.trigger('action', {action: 'insertTable', value: value})

}

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
mercury-rails-0.8.0 app/assets/javascripts/mercury/modals/inserttable.js.coffee
mercury-rails-0.7.1 app/assets/javascripts/mercury/modals/inserttable.js.coffee
mercury-rails-0.7.0 app/assets/javascripts/mercury/modals/inserttable.js.coffee