Skip to content
This repository has been archived by the owner on Mar 7, 2020. It is now read-only.

Commit

Permalink
Added submit on blur option
Browse files Browse the repository at this point in the history
  • Loading branch information
TrevorHinesley committed Apr 10, 2014
1 parent e32fab0 commit 6192f35
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 3 deletions.
5 changes: 5 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,11 @@ tab_to_next: ".my-class"
# Description: Puts a link to DELETE the object (obviously, it always uses DELETE as the
# HTTP verb).
# Default: false

submit_on_blur: true
# Description: Submit form when focus leaves the input, rather than simply closing it
# out.
# Default: false
```

## Configuration
Expand Down
17 changes: 15 additions & 2 deletions app/assets/javascripts/abracadabra.js
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,11 @@ $(function() {

$("body").on("blur", ".abracadabra-input", function() {
if(abracadabraSubmissionInProgress == false && abracadabraDeleteMousedown == false) {
closeAbracadabra(this, false);
if($(this).data("submit-on-blur") == true) {
$(this.form).submit();
} else {
closeAbracadabra(this, false);
}
}
});

Expand Down Expand Up @@ -174,6 +178,15 @@ $(function() {
}
/* /Tab to next? */

/* Submit on blur? */
submitOnBlur = link.data("submit-on-blur");
if(submitOnBlur == true) {
submitOnBlur = " data-submit-on-blur=\"true\"";
} else {
submitOnBlur = "";
}
/* /Submit on blur? */

/* AJAX? */
if(remote == "") {
authToken = "<input name=\"authenticity_token\" type=\"hidden\" value=\"" + $("meta[name=\"csrf-token\"]").attr("content") + "\">";
Expand All @@ -199,7 +212,7 @@ $(function() {

openFormTag = "<form accept-charset=\"UTF-8\" action=\"" + path + "\"" + remote + type + " class=\"form-inline abracadabra-form\" method=\"post\">";
hiddenMethodTags = "<div style=\"display:none;\"><input name=\"utf8\" type=\"hidden\" value=\"&#10003;\"><input name=\"_method\" type=\"hidden\" value=\"" + formMethod + "\">" + authToken + "</div>";
input = "<input type=\"text\" class=\"form-control abracadabra-input\" id=\"" + inputId + "\" name=\"" + inputName + "\" value=\"" + inputValue + "\"" + tabToNextSelector + ">";
input = "<input type=\"text\" class=\"form-control abracadabra-input\" id=\"" + inputId + "\" name=\"" + inputName + "\" value=\"" + inputValue + "\"" + tabToNextSelector + submitOnBlur + ">";

html = "<span class=\"abracadabra-container\">" + openFormTag + hiddenMethodTags;
html += "<div class=\"control-group\"><div class=\"abracadabra-input-and-button-wrapper\"><div class=\"abracadabra-input-container\">" + input + deletable + "</div>";
Expand Down
4 changes: 3 additions & 1 deletion app/helpers/abracadabra/rails/view_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ def click_to_edit(instance, options)
buttonless = options[:buttonless] || false
deletable = options[:deletable] || false
deletable_path = options[:deletable_path] || path
submit_on_blur = options[:submit_on_blur] || false

if options[:tab_to_next] || options[:tab_to_next] != false
if options[:tab_to_next] == true
Expand Down Expand Up @@ -41,7 +42,8 @@ def click_to_edit(instance, options)
buttonless: buttonless,
deletable: deletable,
deletable_path: deletable_path,
tab_to_next: tab_to_next
tab_to_next: tab_to_next,
submit_on_blur: submit_on_blur
},
remote: remote
)
Expand Down

0 comments on commit 6192f35

Please sign in to comment.