diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2012-07-19 19:10:18 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2012-07-19 19:10:18 +0000 |
commit | 3eaa998c28eb5f5dcbe0af6181ac28521c92f75d (patch) | |
tree | 0b4087ddbefa9765fc853039fb4ad8507ffc19f8 | |
parent | e8469e2c5b41e59a1a204ac730e2c3ab9261b8ff (diff) | |
download | redmine-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.rb | 12 | ||||
-rw-r--r-- | app/views/journals/edit.js.erb | 2 | ||||
-rw-r--r-- | app/views/journals/edit.rjs | 3 | ||||
-rw-r--r-- | app/views/journals/new.js.erb | 5 | ||||
-rw-r--r-- | app/views/journals/update.js.erb | 9 | ||||
-rw-r--r-- | app/views/journals/update.rjs | 10 | ||||
-rw-r--r-- | test/functional/journals_controller_test.rb | 41 |
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 |