Browse Source

AJAX call on the issue form resets data entered during the call (#14621).

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@12166 e93f8b46-1217-0410-a6f0-8f06a7374b81
tags/2.4.0
Jean-Philippe Lang 10 years ago
parent
commit
2c97f9ecde
2 changed files with 19 additions and 2 deletions
  1. 1
    1
      app/views/issues/update_form.js.erb
  2. 18
    1
      public/javascripts/application.js

+ 1
- 1
app/views/issues/update_form.js.erb View File

@@ -1,4 +1,4 @@
$('#all_attributes').html('<%= escape_javascript(render :partial => 'form') %>');
replaceIssueFormWith('<%= escape_javascript(render :partial => 'form') %>');

<% if User.current.allowed_to?(:log_time, @issue.project) %>
$('#log_time').show();

+ 18
- 1
public/javascripts/application.js View File

@@ -444,8 +444,10 @@ function randomKey(size) {
return key;
}

// Can't use Rails' remote select because we need the form data
function updateIssueFrom(url) {
$('#all_attributes input, #all_attributes textarea, #all_attributes select').each(function(){
$(this).data('valuebeforeupdate', $(this).val());
});
$.ajax({
url: url,
type: 'post',
@@ -453,6 +455,21 @@ function updateIssueFrom(url) {
});
}

function replaceIssueFormWith(html){
var replacement = $(html);
$('#all_attributes input, #all_attributes textarea, #all_attributes select').each(function(){
var object_id = $(this).attr('id');
if (object_id && $(this).data('valuebeforeupdate')!=$(this).val()) {
replacement.find('#'+object_id).val($(this).val());
}
});
$('#all_attributes').empty();
$('#all_attributes').prepend(replacement);
if (focus) {
$('#'+focus).focus();
}
}

function updateBulkEditFrom(url) {
$.ajax({
url: url,

Loading…
Cancel
Save