diff --git a/app/controllers/praise_tread_controller.rb b/app/controllers/praise_tread_controller.rb index 41b167ed0..48574bcad 100644 --- a/app/controllers/praise_tread_controller.rb +++ b/app/controllers/praise_tread_controller.rb @@ -1,10 +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_id = params[:obj_id] @obj_type = params[:obj_type] - @obj = praise_tread_plus(@obj_type,@obj_id,1) + @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 @@ -34,10 +41,13 @@ class PraiseTreadController < ApplicationController def tread_plus @obj = nil + # @is_in_list = nil if request.get? @obj_id = params[:obj_id] @obj_type = params[:obj_type] - @obj = praise_tread_plus(@obj_type,@obj_id,0) + @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 @@ -79,14 +89,11 @@ class PraiseTreadController < ApplicationController #再创建或更新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) + @ptc.object_id = id.to_i + @ptc.object_type = type + @ptc.save + @ptc.plus(flag,1) end - - @obj = find_object_by_type_and_id(type,id) - respond_to do |format| format.html format.js diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 0e005690e..02d23e174 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 :require_login,:only => :tag_save helper :sort diff --git a/app/helpers/praise_tread_helper.rb b/app/helpers/praise_tread_helper.rb index 1aa49d3ab..26e4e5f4c 100644 --- a/app/helpers/praise_tread_helper.rb +++ b/app/helpers/praise_tread_helper.rb @@ -9,14 +9,19 @@ module PraiseTreadHelper 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/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 @@
  • "> <% column_content = ( query.inline_columns.map {|column| "#{column_content_new(column, issue)}"}) %> + + <%= render :partial => "/praise_tread/praise_tread", + :locals => {:obj => issue,:user_id =>User.current.id}%> + <% if issue.tracker.name == 'Bug' %> <%= image_tag("/images/task.png", :class => "img-tag-issues") %> <% end %> <% if issue.tracker.name == '任务'%> <%= image_tag("/images/issues.png", :class => "img-tag-issues") %> <% end %> +
  • diff --git a/app/views/issues/show.html.erb b/app/views/issues/show.html.erb index 8305cd18d..2917bdf4a 100644 --- a/app/views/issues/show.html.erb +++ b/app/views/issues/show.html.erb @@ -23,7 +23,12 @@
    <%= 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 %> @@ -34,10 +39,6 @@

    <%= 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/praise_tread/_praise_tread.html.erb b/app/views/praise_tread/_praise_tread.html.erb index ebd48bf6b..4ed2328cf 100644 --- a/app/views/praise_tread/_praise_tread.html.erb +++ b/app/views/praise_tread/_praise_tread.html.erb @@ -1,22 +1,57 @@ - - <% @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 %> + <% @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 %> + <% 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 %>
    - <%= 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 %> - + <% end %> + diff --git a/app/views/praise_tread/praise_plus.js.erb b/app/views/praise_tread/praise_plus.js.erb index 5020bb3c9..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( + +$('#praise_tread_<%= @obj.id %>').html('<%= j( render :partial => "/praise_tread/praise_tread",:locals => {:obj => @obj,:user_id => User.current.id} )%>');