Sha256: 4ecafe35291f023827cc1dd5d831b37e11b791034caa2d5c73ff0bdc44e44b4e

Contents?: true

Size: 1.53 KB

Versions: 1

Compression:

Stored size: 1.53 KB

Contents

class Ponytail.Views.Table extends Backbone.View
  className: "table"
  events:
    "click .edit_table": "clickEditTable"
    "click .table_name span": "clickEditTable"
    "keyup .table_name input": "keyupTableNameInput"
    "blur  .table_name input": "blurTableName"
    "click .drop_table": "clickDropTable"
    "click .restore_table": "clickRestoreTable"
    "click .add_column a": "clickAddColumn"

  initialize: ->
    @model.bind("change", @render)

  render: =>
    if @el.parentNode == null
      $(@el).html(_.template($("#table_template").html(), @model.attributes))
    else
      @$(".table_name span").text(@model.get("name"))
    @

  clickEditTable: ->
    if @$(".table_name span").is(":visible")
      @$(".table_name span").toggle()
      @$(".table_name input").toggle()
    false

  keyupTableNameInput: (e) ->
    @model.set({name: e.target.value})
    # 13(ENTER_KEY)
    if e.which == 13
      @.blurTableName()

  blurTableName: ->
    if @$(".table_name input").is(":visible")
      @$(".table_name span").toggle()
      @$(".table_name input").toggle()

  clickDropTable: ->
    @model.set({isDrop: true})
    @$(".drop_table").hide()
    @$(".restore_table").show()
    false

  clickRestoreTable: ->
    @model.set({isDrop: false})
    @$(".drop_table").show()
    @$(".restore_table").hide()
    false

  clickAddColumn: ->
    column = new Ponytail.Models.Column({table: @model, isAdded: true})
    view = new Ponytail.Views.Column({model: column})
    @$(".add_column").before(view.render().el)
    @model.addColumn(column)
    false

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ponytail-0.4.0 app/assets/javascripts/ponytail/views/table.coffee