Browse Source

Removes RJS from JournalsController.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@10054 e93f8b46-1217-0410-a6f0-8f06a7374b81
tags/2.1.0
Jean-Philippe Lang 12 years ago
parent
commit
3eaa998c28

+ 2
- 10
app/controllers/journals_controller.rb View File

@@ -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

+ 2
- 0
app/views/journals/edit.js.erb View File

@@ -0,0 +1,2 @@
Element.hide("journal-<%= @journal.id %>-notes");
Element.insert("journal-<%= @journal.id %>-notes", {'after': '<%= escape_javascript(render :partial => 'notes_form') %>'});

+ 0
- 3
app/views/journals/edit.rjs View File

@@ -1,3 +0,0 @@
page.hide "journal-#{@journal.id}-notes"
page.insert_html :after, "journal-#{@journal.id}-notes",
:partial => 'notes_form'

+ 5
- 0
app/views/journals/new.js.erb View File

@@ -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;

+ 9
- 0
app/views/journals/update.js.erb View File

@@ -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 }) %>

+ 0
- 10
app/views/journals/update.rjs View File

@@ -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 })

+ 25
- 16
test/functional/journals_controller_test.rb View File

@@ -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

Loading…
Cancel
Save