summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2012-07-19 19:10:18 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2012-07-19 19:10:18 +0000
commit3eaa998c28eb5f5dcbe0af6181ac28521c92f75d (patch)
tree0b4087ddbefa9765fc853039fb4ad8507ffc19f8
parente8469e2c5b41e59a1a204ac730e2c3ab9261b8ff (diff)
downloadredmine-3eaa998c28eb5f5dcbe0af6181ac28521c92f75d.tar.gz
redmine-3eaa998c28eb5f5dcbe0af6181ac28521c92f75d.zip
Removes RJS from JournalsController.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@10054 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r--app/controllers/journals_controller.rb12
-rw-r--r--app/views/journals/edit.js.erb2
-rw-r--r--app/views/journals/edit.rjs3
-rw-r--r--app/views/journals/new.js.erb5
-rw-r--r--app/views/journals/update.js.erb9
-rw-r--r--app/views/journals/update.rjs10
-rw-r--r--test/functional/journals_controller_test.rb41
7 files changed, 43 insertions, 39 deletions
diff --git a/app/controllers/journals_controller.rb b/app/controllers/journals_controller.rb
index c063e8c82..287d94440 100644
--- a/app/controllers/journals_controller.rb
+++ b/app/controllers/journals_controller.rb
@@ -67,16 +67,8 @@ class JournalsController < ApplicationController
end
# Replaces pre blocks with [...]
text = text.to_s.strip.gsub(%r{<pre>((.|\s)*?)</pre>}m, '[...]')
- content = "#{ll(Setting.default_language, :text_user_wrote, user)}\n> "
- content << text.gsub(/(\r?\n|\r\n?)/, "\n> ") + "\n\n"
-
- render(:update) { |page|
- page.<< "$('notes').value = \"#{escape_javascript content}\";"
- page.show 'update'
- page << "Form.Element.focus('notes');"
- page << "Element.scrollTo('update');"
- page << "$('notes').scrollTop = $('notes').scrollHeight - $('notes').clientHeight;"
- }
+ @content = "#{ll(Setting.default_language, :text_user_wrote, user)}\n> "
+ @content << text.gsub(/(\r?\n|\r\n?)/, "\n> ") + "\n\n"
end
def edit
diff --git a/app/views/journals/edit.js.erb b/app/views/journals/edit.js.erb
new file mode 100644
index 000000000..18d85a4ce
--- /dev/null
+++ b/app/views/journals/edit.js.erb
@@ -0,0 +1,2 @@
+Element.hide("journal-<%= @journal.id %>-notes");
+Element.insert("journal-<%= @journal.id %>-notes", {'after': '<%= escape_javascript(render :partial => 'notes_form') %>'});
diff --git a/app/views/journals/edit.rjs b/app/views/journals/edit.rjs
deleted file mode 100644
index 798cb0f04..000000000
--- a/app/views/journals/edit.rjs
+++ /dev/null
@@ -1,3 +0,0 @@
-page.hide "journal-#{@journal.id}-notes"
-page.insert_html :after, "journal-#{@journal.id}-notes",
- :partial => 'notes_form'
diff --git a/app/views/journals/new.js.erb b/app/views/journals/new.js.erb
new file mode 100644
index 000000000..e2e6590ae
--- /dev/null
+++ b/app/views/journals/new.js.erb
@@ -0,0 +1,5 @@
+$('notes').value = "<%= raw escape_javascript(@content) %>";
+Element.show('update');
+Form.Element.focus('notes');
+Element.scrollTo('update');
+$('notes').scrollTop = $('notes').scrollHeight - $('notes').clientHeight;
diff --git a/app/views/journals/update.js.erb b/app/views/journals/update.js.erb
new file mode 100644
index 000000000..9b16273ab
--- /dev/null
+++ b/app/views/journals/update.js.erb
@@ -0,0 +1,9 @@
+<% if @journal.frozen? %>
+ Element.remove("change-<%= @journal.id %>");
+<% else %>
+ Element.replace("journal-<%= @journal.id %>-notes", '<%= escape_javascript(render_notes(@journal.issue, @journal, :reply_links => authorize_for('issues', 'edit'))) %>');
+ Element.show("journal-<%= @journal.id %>-notes");
+ Element.remove("journal-<%= @journal.id %>-form");
+<% end %>
+
+<%= call_hook(:view_journals_update_js_bottom, { :journal => @journal }) %>
diff --git a/app/views/journals/update.rjs b/app/views/journals/update.rjs
deleted file mode 100644
index a83d58126..000000000
--- a/app/views/journals/update.rjs
+++ /dev/null
@@ -1,10 +0,0 @@
-if @journal.frozen?
- # journal was destroyed
- page.remove "change-#{@journal.id}"
-else
- page.replace "journal-#{@journal.id}-notes", render_notes(@journal.issue, @journal, :reply_links => authorize_for('issues', 'edit'))
- page.show "journal-#{@journal.id}-notes"
- page.remove "journal-#{@journal.id}-form"
-end
-
-call_hook(:view_journals_update_rjs_bottom, { :page => page, :journal => @journal })
diff --git a/test/functional/journals_controller_test.rb b/test/functional/journals_controller_test.rb
index a12872e40..652edf68d 100644
--- a/test/functional/journals_controller_test.rb
+++ b/test/functional/journals_controller_test.rb
@@ -54,47 +54,56 @@ class JournalsControllerTest < ActionController::TestCase
def test_reply_to_issue
@request.session[:user_id] = 2
- get :new, :id => 6
+ xhr :get, :new, :id => 6
assert_response :success
- assert_select_rjs :show, "update"
+ assert_template 'new'
+ assert_equal 'text/javascript', response.content_type
+ assert_include '> This is an issue', response.body
end
def test_reply_to_issue_without_permission
@request.session[:user_id] = 7
- get :new, :id => 6
+ xhr :get, :new, :id => 6
assert_response 403
end
def test_reply_to_note
@request.session[:user_id] = 2
- get :new, :id => 6, :journal_id => 4
+ xhr :get, :new, :id => 6, :journal_id => 4
assert_response :success
- assert_select_rjs :show, "update"
+ assert_template 'new'
+ assert_equal 'text/javascript', response.content_type
+ assert_include '> A comment with a private version', response.body
end
- def test_get_edit
+ def test_edit_xhr
@request.session[:user_id] = 1
xhr :get, :edit, :id => 2
assert_response :success
- assert_select_rjs :insert, :after, 'journal-2-notes' do
- assert_select 'form[id=journal-2-form]'
- assert_select 'textarea'
- end
+ assert_template 'edit'
+ assert_equal 'text/javascript', response.content_type
+ assert_include 'textarea', response.body
end
- def test_post_edit
+ def test_update_xhr
@request.session[:user_id] = 1
xhr :post, :edit, :id => 2, :notes => 'Updated notes'
assert_response :success
- assert_select_rjs :replace, 'journal-2-notes'
+ assert_template 'update'
+ assert_equal 'text/javascript', response.content_type
assert_equal 'Updated notes', Journal.find(2).notes
+ assert_include 'journal-2-notes', response.body
end
- def test_post_edit_with_empty_notes
+ def test_update_xhr_with_empty_notes_should_delete_the_journal
@request.session[:user_id] = 1
- xhr :post, :edit, :id => 2, :notes => ''
- assert_response :success
- assert_select_rjs :remove, 'change-2'
+ assert_difference 'Journal.count', -1 do
+ xhr :post, :edit, :id => 2, :notes => ''
+ assert_response :success
+ assert_template 'update'
+ assert_equal 'text/javascript', response.content_type
+ end
assert_nil Journal.find_by_id(2)
+ assert_include 'change-2', response.body
end
end