diff --git a/app/controllers/praise_tread_controller.rb b/app/controllers/praise_tread_controller.rb
index 528011102..48574bcad 100644
--- a/app/controllers/praise_tread_controller.rb
+++ b/app/controllers/praise_tread_controller.rb
@@ -1,32 +1,17 @@
class PraiseTreadController < ApplicationController
-
+
+ accept_api_auth :tread_plus,:praise_plus
+ before_filter :require_login,:only => [:praise_plus,:tread_plus]
+
def praise_plus
@obj = nil
+ # @is_in_list = 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 = find_object_by_type_and_id(@obj_type,@obj_id)
+ # @is_in_list = params[:is_in_list]
+ praise_tread_plus(@obj_type,@obj_id,1)
end
end
@@ -55,7 +40,15 @@ class PraiseTreadController < ApplicationController
end
def tread_plus
-
+ @obj = nil
+ # @is_in_list = nil
+ if request.get?
+ @obj_id = params[:obj_id]
+ @obj_type = params[:obj_type]
+ @obj = find_object_by_type_and_id(@obj_type,@obj_id)
+ # @is_in_list = params[:is_in_list]
+ praise_tread_plus(@obj_type,@obj_id,0)
+ end
end
def tread_minus
@@ -65,4 +58,46 @@ 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(flag,1)
+ end
+ respond_to do |format|
+ format.html
+ format.js
+ end
+ end
+
end
diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb
index 0e005690e..0a1775c5c 100644
--- a/app/controllers/users_controller.rb
+++ b/app/controllers/users_controller.rb
@@ -28,10 +28,10 @@ class UsersController < ApplicationController
before_filter :require_admin, :except => [:show, :index,:tag_save, :user_projects, :user_newfeedback, :user_comments, :watch_bids, :info, :user_watchlist, :user_fanslist,:edit]
before_filter :find_user, :only => [:user_fanslist, :user_watchlist, :show, :edit, :update, :destroy, :edit_membership,
:destroy_membership, :user_activities, :user_projects, :user_newfeedback, :user_comments, :watch_bids, :info]
- accept_api_auth :index, :show, :create, :update, :destroy
+ accept_api_auth :index, :show, :create, :update, :destroy,:tag_save
#william
- before_filter :require_login,:only=>[:tag_save]
+ before_filter :need_login,:only => :tag_save
helper :sort
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index 789861fad..75484a227 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -1317,8 +1317,8 @@ module ApplicationHelper
# end
#added by william
- def get_fans_num(user)
- user.watcher_users.count
+ def need_login
+ redirect_to signin_path
end
#end
end
diff --git a/app/helpers/praise_tread_helper.rb b/app/helpers/praise_tread_helper.rb
index 9b2eba969..26e4e5f4c 100644
--- a/app/helpers/praise_tread_helper.rb
+++ b/app/helpers/praise_tread_helper.rb
@@ -1,22 +1,27 @@
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
- def get_praise_num(object)
- @obj_type = object.class.name.underscore
+ def get_praise_num(object,flag)
+ @obj_type = object.class
@obj_id = object.id
@record = PraiseTreadCache.find_by_object_id_and_object_type(@obj_id,@obj_type)
if @record
- return @record.praise_num
- else
- return 0
+ case flag
+ when 1
+ return @record.praise_num.nil? ? 0 : @record.praise_num
+ when 0
+ return @record.tread_num.nil? ? 0 : @record.tread_num
+ end
+ else
+ return 0
end
end
diff --git a/app/models/praise_tread_cache.rb b/app/models/praise_tread_cache.rb
index 330e197cf..739b45876 100644
--- a/app/models/praise_tread_cache.rb
+++ b/app/models/praise_tread_cache.rb
@@ -1,8 +1,13 @@
class PraiseTreadCache < ActiveRecord::Base
attr_accessible :object_id,:object_type,:praise_num,:tread_num
- def plus(num)
- self.update_attribute(:praise_num, self.praise_num.to_i + num)
+ def plus(flag,num)
+ case flag
+ when 0
+ self.update_attribute(:tread_num, self.tread_num.to_i + num)
+ when 1
+ self.update_attribute(:praise_num, self.praise_num.to_i + num)
+ end
end
def minus(num)
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/_list.html.erb b/app/views/issues/_list.html.erb
index e174b01bc..53a6681db 100644
--- a/app/views/issues/_list.html.erb
+++ b/app/views/issues/_list.html.erb
@@ -72,23 +72,27 @@
diff --git a/app/views/issues/show.html.erb b/app/views/issues/show.html.erb
index 67035468a..2917bdf4a 100644
--- a/app/views/issues/show.html.erb
+++ b/app/views/issues/show.html.erb
@@ -20,12 +20,15 @@
<% end %>
-
-
<%= render_issue_subject_with_tree(@issue) %>
-
+
+
+
+<%= render :partial => "/praise_tread/praise_tread",
+ :locals => {:obj => @issue,:user_id =>User.current.id}%>
+
<%= authoring @issue.created_on, @issue.author %>.
<% if @issue.created_on != @issue.updated_on %>
@@ -36,7 +39,6 @@
<%= render :partial => 'layouts/tag', :locals => {:obj => @issue,:object_flag => "3" }%>
-
<%= issue_fields_rows do |rows|
rows.left l(:field_status), h(@issue.status.name), :class => 'status'
diff --git a/app/views/layouts/_base_header.html.erb b/app/views/layouts/_base_header.html.erb
index a64767f98..892be7e42 100644
--- a/app/views/layouts/_base_header.html.erb
+++ b/app/views/layouts/_base_header.html.erb
@@ -1,6 +1,6 @@
-
- <%= 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..4ed2328cf 100644
--- a/app/views/praise_tread/_praise_tread.html.erb
+++ b/app/views/praise_tread/_praise_tread.html.erb
@@ -1,17 +1,57 @@
-
- <% 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)%>)
- <% end %>
-
-<% if show_flag %>
-
- <%= link_to image_tag("/images/tread.png"),:controller=>"praise_tread",
- :action=>"tread_minus",:remote=>true,:obj => obj %>踩
-
-<% end %>
+
+
+
+ <% @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,1)%> |
+
+
+
+ <%= image_tag("/images/praise_tread/tread_false.png") %> |
+
+
+ <% elsif @flag == 0 %>
+
+
+ <%= image_tag("/images/praise_tread/praise_false.png") %> |
+
+
+
+ -<%= get_praise_num(obj,0)%> |
+
+
+ <%= 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,1)%> |
+
+ --- |
+
+ -<%= get_praise_num(obj,0)%> |
+
+
+ <%= 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 %>
+
+
diff --git a/app/views/praise_tread/praise_plus.js.erb b/app/views/praise_tread/praise_plus.js.erb
index 74f7d6bfe..c2584dcd2 100644
--- a/app/views/praise_tread/praise_plus.js.erb
+++ b/app/views/praise_tread/praise_plus.js.erb
@@ -1,3 +1,4 @@
-$('#praise_tread').html('<%= j(
-render :partial => "/praise_tread/praise_tread",:locals => {:obj => @obj,:show_flag => false,:user_id => User.current.id}
+
+$('#praise_tread_<%= @obj.id %>').html('<%= j(
+render :partial => "/praise_tread/praise_tread",:locals => {:obj => @obj,:user_id => User.current.id}
)%>');
diff --git a/app/views/users/index.html.erb b/app/views/users/index.html.erb
index 0bf0642dd..d82d3dc9d 100644
--- a/app/views/users/index.html.erb
+++ b/app/views/users/index.html.erb
@@ -87,8 +87,7 @@