From 64d85a9ab22d25374d6c9777e188cd8d45b3ee8d Mon Sep 17 00:00:00 2001
From: yanxd
Date: Wed, 25 Dec 2013 22:21:16 +0800
Subject: [PATCH] =?UTF-8?q?=E4=B8=80=E9=83=A8=E5=88=86ajax=E7=95=99?=
=?UTF-8?q?=E8=A8=80=E5=AE=9E=E7=8E=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/controllers/users_controller.rb | 5 ++--
app/controllers/words_controller.rb | 27 ++++++++++---------
app/views/words/_journal_reply_items.html.erb | 4 +--
app/views/words/_new_respond.html.erb | 3 +--
app/views/words/create_reply.js.erb | 11 ++++++++
5 files changed, 31 insertions(+), 19 deletions(-)
create mode 100644 app/views/words/create_reply.js.erb
diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb
index 3bcfcf6fc..4b7f04547 100644
--- a/app/controllers/users_controller.rb
+++ b/app/controllers/users_controller.rb
@@ -223,9 +223,8 @@ class UsersController < ApplicationController
# modified by fq
def user_newfeedback
@jours = @user.journals_for_messages.where('m_parent_id IS NULL').order('created_on DESC')
- @jours.each do |jour|
- jour.update_attribute(:status, false)
- end
+ @jours.update_all(:is_readed => true, :status => false)
+
@limit = 10
@feedback_count = @jours.count
@feedback_pages = Paginator.new @feedback_count, @limit, params['page']
diff --git a/app/controllers/words_controller.rb b/app/controllers/words_controller.rb
index 0f11cc5e3..da5bbb8bd 100644
--- a/app/controllers/words_controller.rb
+++ b/app/controllers/words_controller.rb
@@ -41,31 +41,34 @@ class WordsController < ApplicationController
end
def create_reply
- @params = params
+ user_id_str = request.headers["Referer"].match((%r|/[0-9]{1,}/|))[0]
+ user_id = user_id_str[1, user_id_str.size-2]
+ @user = User.find(user_id)
parent_id = params[:reference_id]
author_id = User.current.id
reply_user_id = params[:reference_user_id]
- reply_id = nil # 暂时不实现
+ reply_id = params[:reference_message_id] # 暂时不实现
content = params[:user_notes]
- @params.merge!({flag:'====', parent_id: parent_id, author_id: author_id, reply_user_id: reply_user_id, content: content})
options = {:user_id => author_id,
:m_parent_id => parent_id,
:m_reply_id => reply_id,
:reply_id => reply_user_id,
:notes => content,
:is_readed => false}
- jfm = User.current.add_jour(nil, nil, nil, options)
+ @jfm = @user.add_jour(nil, nil, nil, options)
respond_to do |format|
- format.html {
- if jfm.errors.empty?
- flash.notice = l(:label_feedback_success)
- else
- flash.errors = l(:label_feedback_fail)
- end
- render 'test/index'
+ # format.html {
+ # if @jfm.errors.empty?
+ # flash.now.notice = l(:label_feedback_success)
+ # else
+ # flash.now.errors = l(:label_feedback_fail)
+ # end
+ # render 'test/index'
+ # }
+ format.js{
+ @save_succ = true if @jfm.errors.empty?
}
- format.js
end
end
diff --git a/app/views/words/_journal_reply_items.html.erb b/app/views/words/_journal_reply_items.html.erb
index 406ead1db..9f5bceeef 100644
--- a/app/views/words/_journal_reply_items.html.erb
+++ b/app/views/words/_journal_reply_items.html.erb
@@ -3,7 +3,7 @@
<%= image_tag url_to_avatar(reply.user), :class => "avatar-3" %>
- <% id = reply.id %>
+ <% id = 'project_respond_form_'+ reply.id.to_s %>
<%= link_to reply.user.name, user_path(reply.user) %>:
<%= reply.notes %>
<% ids = 'project_respond_form_'+ journal.id.to_s%>
@@ -13,7 +13,7 @@
<%= toggle_link l(:label_projects_feedback_respond), id, {:focus => 'project_respond'} %>
- style="display: none;">
+
<%= render :partial => "words/new_respond", :locals => {:journal => journal, :m_reply_id => m_reply_id} %>
diff --git a/app/views/words/_new_respond.html.erb b/app/views/words/_new_respond.html.erb
index dd3886812..61953457a 100644
--- a/app/views/words/_new_respond.html.erb
+++ b/app/views/words/_new_respond.html.erb
@@ -1,5 +1,4 @@
-<%= form_tag({:controller => 'words',
-:action => 'create_reply'}) do %>
+<%= form_tag({:controller => 'words', :action => 'create_reply'}, :remote => true) do %>
<%= text_area_tag 'user_notes', "", :class => 'noline', :style => "resize: none;", :rows => 4, :placeholder => l(:label_projects_feedback_respond_content) %>
<%= hidden_field_tag 'reference_id', params[:reference_id], :value => journal.id %>
diff --git a/app/views/words/create_reply.js.erb b/app/views/words/create_reply.js.erb
new file mode 100644
index 000000000..20964d9b0
--- /dev/null
+++ b/app/views/words/create_reply.js.erb
@@ -0,0 +1,11 @@
+<% if @save_succ %>
+ $('#journal_reply_ul_<%=@jfm.m_parent_id%>').append(
+ '<%= j(
+ render :partial => "words/journal_reply_items",
+ :locals => {:reply => @jfm, :journal => @jfm.parent, :m_reply_id => @jfm.id}
+ ) %>');
+ $('#project_respond_form_<%=@jfm.m_reply_id.to_s%> textarea').val('');
+ $('#project_respond_form_<%=@jfm.m_reply_id.to_s%>').hide();
+<% else %>
+ alert("<%= l(:label_feedback_fail) %>");
+<% end %>
\ No newline at end of file