From 7a0db3b3f1d6369c04cb3dfee93318b945497050 Mon Sep 17 00:00:00 2001 From: william Date: Sun, 11 Aug 2013 23:44:12 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=99=E9=9C=80=E6=B1=82=E7=9A=84=E7=95=99?= =?UTF-8?q?=E8=A8=80=E6=B7=BB=E5=8A=A0=E4=BA=86=E2=80=9C=E7=A1=AE=E8=AE=A4?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E2=80=9D=E5=BC=B9=E7=AA=97=EF=BC=8C=E9=87=8D?= =?UTF-8?q?=E6=9E=84=E4=BA=86=E8=B5=9E=E5=92=8C=E8=B8=A9=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=EF=BC=8C=E9=92=88=E5=AF=B9=E9=97=AE=E9=A2=98=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E4=BA=86=E8=B5=9E=E5=92=8C=E8=B8=A9=E5=8A=9F=E8=83=BD=E3=80=82?= =?UTF-8?q?=E7=B2=89=E4=B8=9D=E6=95=B0=E7=9A=84=E9=93=BE=E6=8E=A5=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E6=9C=AA=E4=BF=AE=E6=94=B9=E7=8E=A9=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/praise_tread_controller.rb | 80 +++++++++++++------ app/helpers/praise_tread_helper.rb | 6 +- app/views/bids/_history.html.erb | 3 +- app/views/issues/show.html.erb | 7 +- app/views/layouts/base_users.html.erb | 5 +- app/views/praise_tread/_praise_tread.html.erb | 35 ++++---- app/views/praise_tread/praise_plus.js.erb | 2 +- config/routes.rb | 6 +- 8 files changed, 88 insertions(+), 56 deletions(-) diff --git a/app/controllers/praise_tread_controller.rb b/app/controllers/praise_tread_controller.rb index 528011102..41b167ed0 100644 --- a/app/controllers/praise_tread_controller.rb +++ b/app/controllers/praise_tread_controller.rb @@ -1,32 +1,10 @@ class PraiseTreadController < ApplicationController - def praise_plus @obj = nil if request.get? - @obj = params[:obj] # 传的是对象,最后变成id了 - - #首先创建或更新praise_tread 表 - @pt = PraiseTread.find_by_user_id_and_praise_tread_object_id(User.current.id,@obj) - @pt = @pt.nil? ? PraiseTread.new : @pt - - @pt.user_id = User.current.id - @pt.praise_tread_object_id = @obj.to_i - @pt.praise_tread_object_type = User.find_by_id(@obj).class.name.underscore - @pt.praise_or_tread = 1 - @pt.save - - #再创建或更新praise_tread_cache表 - @ptc = PraiseTreadCache.find_by_object_id(@obj) - @ptc = @ptc.nil? ? PraiseTreadCache.new : @ptc - @ptc.object_id = @obj.to_i - @ptc.object_type = User.find_by_id(@obj).class.name.underscore - @ptc.plus(1) - @ptc.save - end - @obj = User.find_by_id(@obj) - respond_to do |format| - format.html - format.js + @obj_id = params[:obj_id] + @obj_type = params[:obj_type] + @obj = praise_tread_plus(@obj_type,@obj_id,1) end end @@ -55,7 +33,12 @@ class PraiseTreadController < ApplicationController end def tread_plus - + @obj = nil + if request.get? + @obj_id = params[:obj_id] + @obj_type = params[:obj_type] + @obj = praise_tread_plus(@obj_type,@obj_id,0) + end end def tread_minus @@ -65,4 +48,49 @@ class PraiseTreadController < ApplicationController end end + private + + def find_object_by_type_and_id(type,id) + @obj = nil + case type + when 'User' + @obj = User.find_by_id(id) + when 'Issue' + @obj = Issue.find_by_id(id) + when 'Project' + @obj = Project.find_by_id(id) + when 'Bid' + @obj = Bid.find_by_id(id) + end + return @obj + end + + def praise_tread_plus(type,id,flag) + unless id.nil? and type.nil? + #首先创建或更新praise_tread 表 + @pt = PraiseTread.new + @pt.user_id = User.current.id + @pt.praise_tread_object_id = id.to_i + @pt.praise_tread_object_type = type + @pt.praise_or_tread = flag + @pt.save + # end + + #再创建或更新praise_tread_cache表 + @ptc = PraiseTreadCache.find_by_object_id_and_object_type(id,type) + @ptc = @ptc.nil? ? PraiseTreadCache.new : @ptc + @ptc.object_id = id.to_i + @ptc.object_type = type + @ptc.save + @ptc.plus(1) + end + + @obj = find_object_by_type_and_id(type,id) + + respond_to do |format| + format.html + format.js + end + end + end diff --git a/app/helpers/praise_tread_helper.rb b/app/helpers/praise_tread_helper.rb index 9b2eba969..1aa49d3ab 100644 --- a/app/helpers/praise_tread_helper.rb +++ b/app/helpers/praise_tread_helper.rb @@ -1,10 +1,10 @@ module PraiseTreadHelper #added by william def is_praise_or_tread(object,user_id) - @obj_type = object.class.name.underscore + @obj_type = object.class @obj_id = object.id - @is_praise = PraiseTread.find_by_sql("select * from praise_treads where user_id=#{user_id} and " + - "praise_tread_object_type='#{@obj_type}' and praise_tread_object_id=#{@obj_id} ") + @is_praise = PraiseTread.find_by_sql("select praise_or_tread from praise_treads where user_id=#{user_id} and " + + "praise_tread_object_type='#{@obj_type}' and praise_tread_object_id=#{@obj_id}") return @is_praise end #end diff --git a/app/views/bids/_history.html.erb b/app/views/bids/_history.html.erb index e17b0e2e6..c1a9c3257 100644 --- a/app/views/bids/_history.html.erb +++ b/app/views/bids/_history.html.erb @@ -48,7 +48,8 @@ <%= journal.created_on %> <%= link_to(image_tag('comment.png'), {:controller => 'bids', :action => 'new', :id => bid, :journal_id => journal}, :remote => true, - :method => 'post', :title => l(:button_quote))%><%= link_to(image_tag('delete.png'), {:controller => 'bids', :action => 'destroy', :object_id => journal, :id => bid}, + :method => 'post', :title => l(:button_quote))%> + <%= link_to(image_tag('delete.png'), {:controller => 'bids', :action => 'destroy', :object_id => journal, :id => bid},:confirm => l(:label_delete_confirm), :remote => true, :method => 'delete', :class => "delete", :title => l(:button_delete)) if remove_allowed || journal.user_id == User.current.id %> diff --git a/app/views/issues/show.html.erb b/app/views/issues/show.html.erb index 67035468a..8305cd18d 100644 --- a/app/views/issues/show.html.erb +++ b/app/views/issues/show.html.erb @@ -20,8 +20,6 @@ <% end %> - -
<%= render_issue_subject_with_tree(@issue) %> @@ -36,7 +34,10 @@
<%= render :partial => 'layouts/tag', :locals => {:obj => @issue,:object_flag => "3" }%>
- + + <%= render :partial => "/praise_tread/praise_tread", + :locals => {:obj => @issue,:user_id =>User.current.id}%> + <%= issue_fields_rows do |rows| rows.left l(:field_status), h(@issue.status.name), :class => 'status' diff --git a/app/views/layouts/base_users.html.erb b/app/views/layouts/base_users.html.erb index 6c65e1507..1d668117a 100644 --- a/app/views/layouts/base_users.html.erb +++ b/app/views/layouts/base_users.html.erb @@ -44,15 +44,12 @@
- - <%= render :partial => "/praise_tread/praise_tread",:locals => {:obj => @user,:show_flag => false,:user_id =>User.current.id}%> -
<%= l(:label_user_watcher) %> (<%=link_to User.watched_by(@user.id).count ,:controller=>"users", :action=>"user_watchlist"%>)   <%= render :partial => "watchers/fans_num",:locals => {:fans_num => get_fans_num(@user) }%> - +
diff --git a/app/views/praise_tread/_praise_tread.html.erb b/app/views/praise_tread/_praise_tread.html.erb index c5a427a61..ebd48bf6b 100644 --- a/app/views/praise_tread/_praise_tread.html.erb +++ b/app/views/praise_tread/_praise_tread.html.erb @@ -1,17 +1,22 @@ - - <% if is_praise_or_tread(obj,user_id).size > 0 %> - <%= image_tag("/images/praise.png") %> - <%= link_to "#{l(:label_cancel_praise)}",:controller=>"praise_tread",:action=>"praise_minus",:remote=>true,:obj => obj %> - (<%= get_praise_num(obj)%>) - <% else %> - <%= image_tag("/images/tread.png") %> - <%= link_to "#{l(:label_praise)}",:controller=>"praise_tread",:action=>"praise_plus",:remote=>true,:obj => obj %> - (<%= get_praise_num(obj)%>) + + <% @is_valuate = is_praise_or_tread(obj,user_id)%> + + <% if @is_valuate.size > 0 %> + + <% @flag = @is_valuate.first.praise_or_tread %> + <% if @flag == 1 %> + <%= image_tag("/images/praise_tread/praise_true.png") %> <%= get_praise_num(obj)%> <%= image_tag("/images/praise_tread/tread_false.png") %> + + <% elsif @flag == 0 %> + <%= image_tag("/images/praise_tread/praise_false.png") %> <%= get_praise_num(obj)%> <%= image_tag("/images/praise_tread/tread_true.png") %> <% end %> + + <% else %> + + <%= link_to image_tag("/images/praise_tread/praise_false.png"), + :controller=>"praise_tread",:action=>"praise_plus",:remote=>true,:obj_id => obj.id,:obj_type => obj.class %> <%= get_praise_num(obj)%> <%= link_to image_tag("/images/praise_tread/tread_false.png"),:controller=>"praise_tread", + :action=>"tread_plus",:remote=>true,:obj_id => obj.id,:obj_type => obj.class %> + + <% end %> -<% if show_flag %> - - <%= link_to image_tag("/images/tread.png"),:controller=>"praise_tread", - :action=>"tread_minus",:remote=>true,:obj => obj %>踩 - -<% end %> + diff --git a/app/views/praise_tread/praise_plus.js.erb b/app/views/praise_tread/praise_plus.js.erb index 74f7d6bfe..5020bb3c9 100644 --- a/app/views/praise_tread/praise_plus.js.erb +++ b/app/views/praise_tread/praise_plus.js.erb @@ -1,3 +1,3 @@ $('#praise_tread').html('<%= j( -render :partial => "/praise_tread/praise_tread",:locals => {:obj => @obj,:show_flag => false,:user_id => User.current.id} +render :partial => "/praise_tread/praise_tread",:locals => {:obj => @obj,:user_id => User.current.id} )%>'); diff --git a/config/routes.rb b/config/routes.rb index 72e8ca27c..5a024082c 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -23,8 +23,8 @@ RedmineApp::Application.routes.draw do get "tags/show" get "praise_tread/praise_plus" - get "praise_tread/praise_minus" - get "praise_tread/tread_minus" + + get "praise_tread/tread_plus" root :to => 'welcome#index', :as => 'home' @@ -442,7 +442,7 @@ RedmineApp::Application.routes.draw do match 'tags/delete_tag',:to => 'tags#delete_tag',:as=>"add_tag" match 'tags/show_all',:to => 'tags#show_all' match 'parise_tread/praise_plus',:to => 'parise_tread#praise_plus',:as=>"praise" - match 'parise_tread/tread_minus',:to => 'parise_tread#tread_minus',:as=>"tread" + match 'parise_tread/tread_plus',:to => 'parise_tread#tread_plus',:as=>"tread" end