Sha256: 929f7af89f8f73f90c56b5a1fd0344fdc23f428db43faed4588cfffe87078f80

Contents?: true

Size: 1.71 KB

Versions: 112

Compression:

Stored size: 1.71 KB

Contents

# Matt Mower <matt@cominded.com>
# 
# A base class for creating DHTML confirmation types.
#
# The real work is done by the onclick_function and onclick_handler methods. In
# general it should only be required to override the default onclick_handler
# method and provide the specific Javascript required to invoke the DHTML confirm
# dialog of your choice.
#
# It is up to this dialog, if the user confirms the intended action, to invoke
# the function window.gFireModalLink() to trigger the intended action of the link.
# For example, using the Modalbox library, you would use something like:
#
#     Modalbox.hide( {
#               afterHide: function() {
#                 window.gFireModalLink();
#               } } );
#
# By default the only action recognized is :value which is used to add a
# dhtml_confirm attribute to the link <a> tag. This value is detected by the
# ActiveScaffold link and triggers the DHTML confirmation logic.
#
class DHTMLConfirm
  attr_accessor :value, :message, :options
  
  def initialize( options = {} )
    @options = options
    @value = @options.delete(:value) { |key| "yes" }
    @message = @options.delete(:message) { |key| "Are you sure?" }
  end
  
  def onclick_function( controller, link_id )
    script = <<-END
window.gFireModalLink = function() {
  var link = $('#{link_id}').action_link;
  link.open_action.call( link );
};
#{ensure_termination(onclick_handler(controller,link_id))}
return false;
END
    # script = "window.gModalLink = $('#{link_id}').action_link;#{onclick_handler(controller,link_id)}return false;"
  end
  
  def onclick_handler( controller, link_id )
    ""
  end
  
protected
  def ensure_termination( expression )
    expression =~ /;$/ ? expression : "#{expression};"
  end
  
end

Version data entries

112 entries across 112 versions & 6 rubygems

Version Path
six-updater-web-0.19.3 lib/six-updater-web/vendor/plugins/active_scaffold/lib/dhtml_confirm.rb
six-updater-web-0.19.2 lib/six-updater-web/vendor/plugins/active_scaffold/lib/dhtml_confirm.rb
six-updater-web-0.19.1 lib/six-updater-web/vendor/plugins/active_scaffold/lib/dhtml_confirm.rb
six-updater-web-0.19.0 lib/six-updater-web/vendor/plugins/active_scaffold/lib/dhtml_confirm.rb
six-updater-web-0.18.2 lib/six-updater-web/vendor/plugins/active_scaffold/lib/dhtml_confirm.rb
six-updater-web-0.18.1 lib/six-updater-web/vendor/plugins/active_scaffold/lib/dhtml_confirm.rb
six-updater-web-0.18.0 lib/six-updater-web/vendor/plugins/active_scaffold/lib/dhtml_confirm.rb
six-updater-web-0.17.7 lib/six-updater-web/vendor/plugins/active_scaffold/lib/dhtml_confirm.rb
six-updater-web-0.17.6 lib/six-updater-web/vendor/plugins/active_scaffold/lib/dhtml_confirm.rb
six-updater-web-0.17.5 lib/six-updater-web/vendor/plugins/active_scaffold/lib/dhtml_confirm.rb
six-updater-web-0.17.4 lib/six-updater-web/vendor/plugins/active_scaffold/lib/dhtml_confirm.rb
lockbox_middleware-1.2.1 vendor/plugins/active_scaffold/lib/dhtml_confirm.rb
six-updater-web-0.17.3 lib/six-updater-web/vendor/plugins/active_scaffold/lib/dhtml_confirm.rb
six-updater-web-0.17.2 lib/six-updater-web/vendor/plugins/active_scaffold/lib/dhtml_confirm.rb
six-updater-web-0.17.1 lib/six-updater-web/vendor/plugins/active_scaffold/lib/dhtml_confirm.rb
six-updater-web-0.17.0 lib/six-updater-web/vendor/plugins/active_scaffold/lib/dhtml_confirm.rb
six-updater-web-0.16.3 lib/six-updater-web/vendor/plugins/active_scaffold/lib/dhtml_confirm.rb
six-updater-web-0.16.2 lib/six-updater-web/vendor/plugins/active_scaffold/lib/dhtml_confirm.rb
six-updater-web-0.16.0 lib/six-updater-web/vendor/plugins/active_scaffold/lib/dhtml_confirm.rb
six-updater-web-0.15.4 lib/six-updater-web/vendor/plugins/active_scaffold/lib/dhtml_confirm.rb