Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
admin_toolbox / app / assets / javascripts / admin_toolbox / live_preview.coffee
Size: Mime:
class @LivePreview
  @form = null
  @method_field = null
  @preview_url = null

  constructor: (form, preview_url) ->
    @form = form
    @method_field = form.find('input[name=_method]')
    @preview_url = preview_url

  run: ->
    @store_attrs()
    @set_preview_mode()
    @form.submit()
    @restore_form()

  store_attrs: ->
    @form.data('original-method', @form.attr('method'))
    @form.data('original-action', @form.attr('action'))
    @form.data('original-rails-method', @method_field.val())

  restore_form: ->
    @form.attr('method', @form.data('original-method'))
    @form.attr('action', @form.data('original-action'))
    @form.attr('target', '_self')
    @method_field.val(@form.data('original-rails-method'))

  set_preview_mode:  ->
    @method_field.val('post')
    @form.attr('method', 'post').attr('action', @preview_url).attr('target', '_blank')

  @attach_handler: (element) ->
    element.click (ev) ->
      ev.preventDefault
      new LivePreview($('#main_content').find('form'), $(this).attr('href')).run()
      return false