Sha256: 25d29d1b67c7eead46ea8b42847fdda0f1c3d631779d668da7473f4cc4da2dc5
Contents?: true
Size: 1.48 KB
Versions: 2
Compression:
Stored size: 1.48 KB
Contents
class @Mercury.Dialog constructor: (@url, @name, @options = {}) -> @button = @options.for @build() @bindEvents() @preload() build: -> @element = $('<div>', {class: "mercury-dialog mercury-#{@name}-dialog loading", style: 'display:none'}) @element.appendTo($(@options.appendTo).get(0) ? 'body') bindEvents: -> @element.mousedown (event) -> event.stopPropagation() preload: -> @load() if @options.preload toggle: (element) -> if @visible then @hide() else @show() resize: -> @show() show: -> Mercury.trigger('hide:dialogs', @) @visible = true if @loaded @element.css({width: 'auto', height: 'auto'}) @position(@visible) @appear() else @position() @appear() position: (keepVisible) -> appear: -> @element.css({display: 'block', opacity: 0}) @element.animate {opacity: .95}, 200, 'easeInOutSine', => @load(=> @resize()) unless @loaded hide: -> @element.hide() @visible = false load: (callback) -> return unless @url $.ajax @url, { success: (data) => @loadContent(data) Mercury.dialogHandlers[@name].call(@) if Mercury.dialogHandlers[@name] callback() if callback error: => @hide() @button.removeClass('pressed') if @button alert("Mercury was unable to load #{@url} for the #{@name} dialog.") } loadContent: (data) -> @loaded = true @element.removeClass('loading') @element.html(data)
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
mercury-rails-0.1.1 | app/assets/javascripts/mercury/dialog.js.coffee |
mercury-rails-0.1.0 | app/assets/javascripts/mercury/dialog.js.coffee |