Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extract the confirm call in its own, overridable method in rails_ujs #32404

merged 1 commit into from Apr 2, 2018


Copy link

@mathieumahe mathieumahe commented Apr 1, 2018

Following the discussion in #32402 and the inactivity of #29965, I added the possibility to override the confirm call in rails_ujs. This feature can be useful to anyone who want to customize the confirm dialog for example.

The behaviour was possible with jquery_ujs but was missing from rails_ujs.

Copy link

@rails-bot rails-bot commented Apr 1, 2018

Thanks for the pull request, and welcome! The Rails team is excited to review your changes, and you should hear from @sgrif (or someone else) soon.

If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. Due to the way GitHub handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes.

This repository is being automatically checked for code quality issues using Code Climate. You can see results for this analysis in the PR status below. Newly introduced issues should be fixed before a Pull Request is considered ready to review.

Please see the contribution instructions for more information.

@guilleiguaran guilleiguaran merged commit 91f4e33 into rails:master Apr 2, 2018
2 checks passed
Copy link

ycherniavskyi commented on e9aa7ec Aug 14, 2018

@mathieumahe could you please explain in more details how exactly you propose to implement my_bootstrap_modal_confirm?
Because Window.confirm() method waits until a user makes a choice and only then returned. But how to implement the same behavior for my_bootstrap_modal_confirm is not fully clear.

Copy link

mathieumahe commented on e9aa7ec Aug 15, 2018

First a redefine in my code the Rails.confirm function. When it's called, I display a modal and return false immediately.
If the user click on the "OK" button of the modal, I keep an reference to my current Rails.confirm, redefine it as a function that always return true, simulate a click on the element that trigger the event, and redefine back the Rails.confirm.

A light version would be :

Rails.confirm = function(message, element) {
  let $element = $(element)
  let $dialog = ...

    .find(".modal-ok-button").click(function(event) {

      let old = Rails.confirm

      Rails.confirm = function() { return true }
      Rails.confirm = old;

  return false;
Copy link

ycherniavskyi commented on e9aa7ec Aug 18, 2018

@mathieumahe thank you for explanation and clear example.

Copy link

@orischwartz orischwartz commented Nov 6, 2018

Any reason why this commit (91f4e33) has not been pulled into

There's no risk of breaking any existing functionality and it's a useful enhancement for the rails-ujs npm package.

Copy link

@brendon brendon commented Aug 9, 2020

This would have been so good to get into Rails 5.2. Is there any chance of that happening now? Rails 6 wasn't out when this one was merged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
None yet
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

7 participants