Sha256: 8c5e01db9b3878e981061bbe512e4c3b30b43d80701095b7a03d10dc06c7c552

Contents?: true

Size: 798 Bytes

Versions: 48

Compression:

Stored size: 798 Bytes

Contents

class Tenon.features.ProtectChanges
  constructor: ->
    @changesMade = false
    @bindChangeEvents()
    $(window).on('beforeunload', @confirmNavigation)

  bindChangeEvents: =>
    @$form = $('.main-content form')
    @$form.on('cocoon:after-insert cocoon:after-remove', @_markChanged)
    @$form.on('keyup change', 'input, select, textarea', @_markChanged)
    @$form.on('input', '.editable-text', @_markChanged)
    @$form.on('submit', @_clearChanges)

  _markChanged: (e) =>
    ignore = [37, 38, 39, 40, 20, 16, 17, 18]
    code = e.keyCode || e.which
    @changesMade = true if $.inArray(code, ignore) == -1

  _clearChanges: =>
    @changesMade = false
    return true

  confirmNavigation: =>
    if @changesMade
      'You have unsaved changes, are you sure you want to leave this page?'

Version data entries

48 entries across 48 versions & 1 rubygems

Version Path
tenon-1.1.4 app/assets/javascripts/tenon/features/protect_changes.js.coffee
tenon-1.1.3 app/assets/javascripts/tenon/features/protect_changes.js.coffee
tenon-1.1.2 app/assets/javascripts/tenon/features/protect_changes.js.coffee
tenon-1.1.1 app/assets/javascripts/tenon/features/protect_changes.js.coffee
tenon-1.0.76 app/assets/javascripts/tenon/features/protect_changes.js.coffee
tenon-1.0.75 app/assets/javascripts/tenon/features/protect_changes.js.coffee
tenon-1.0.74 app/assets/javascripts/tenon/features/protect_changes.js.coffee
tenon-1.0.73 app/assets/javascripts/tenon/features/protect_changes.js.coffee
tenon-1.0.72 app/assets/javascripts/tenon/features/protect_changes.js.coffee
tenon-1.0.71 app/assets/javascripts/tenon/features/protect_changes.js.coffee
tenon-1.0.70 app/assets/javascripts/tenon/features/protect_changes.js.coffee
tenon-1.0.69 app/assets/javascripts/tenon/features/protect_changes.js.coffee
tenon-1.0.68 app/assets/javascripts/tenon/features/protect_changes.js.coffee
tenon-1.0.67 app/assets/javascripts/tenon/features/protect_changes.js.coffee
tenon-1.0.66 app/assets/javascripts/tenon/features/protect_changes.js.coffee
tenon-1.0.65 app/assets/javascripts/tenon/features/protect_changes.js.coffee
tenon-1.0.64 app/assets/javascripts/tenon/features/protect_changes.js.coffee
tenon-1.0.63 app/assets/javascripts/tenon/features/protect_changes.js.coffee
tenon-1.0.62 app/assets/javascripts/tenon/features/protect_changes.js.coffee
tenon-1.0.61 app/assets/javascripts/tenon/features/protect_changes.js.coffee