parent
							
								
									f96a0f747d
								
							
						
					
					
						commit
						08f374fede
					
				| @ -1,7 +1,7 @@ | ||||
| module PaginateHelper | ||||
|   def paginate(objs, **opts) | ||||
|     page     = params[:page].to_i <= 0 ? 1 : params[:page].to_i | ||||
|     per_page = params[:per_page].to_i > 0 ? params[:per_page].to_i : 20 | ||||
|     per_page = params[:per_page].to_i > 0 ? params[:per_page].to_i : opts[:per_page] || 20 | ||||
| 
 | ||||
|     Kaminari.paginate_array(objs).page(page).per(per_page) | ||||
|   end | ||||
|  | ||||
| @ -1,19 +1,32 @@ | ||||
| class TidingsController < ApplicationController | ||||
|   include PaginateHelper | ||||
| 
 | ||||
|   after_action :update_onclick_time!, only: [:index] | ||||
| 
 | ||||
|   def index | ||||
|     tidings = current_user.tidings.order(created_at: :desc) | ||||
|     tidings = current_user.tidings | ||||
| 
 | ||||
|     tiding_types = | ||||
|       case params[:type] | ||||
|       when 'notice'      then 'System' | ||||
|       when 'apply'       then 'Apply' | ||||
|       when 'course'      then %w(HomeworkCommon Exercise Poll) | ||||
|       when 'course'      then %w(HomeworkCommon Exercise Poll GraduationTask GraduationTopic) | ||||
|       when 'project'     then 'Project' | ||||
|       when 'interaction' then %w(Comment Mentioned Praise Fan) | ||||
|       when 'project_package' then %w(Created Destroyed Bidding BiddingEnd BiddingWon BiddingLost) | ||||
|       end | ||||
| 
 | ||||
|     tidings = tidings.where(tiding_type: tiding_types) if tiding_types.present? | ||||
| 
 | ||||
|     tidings = tidings.where(container_type: 'ProjectPackage') if params[:type] == 'project_package' | ||||
| 
 | ||||
|     @count   = tidings.count | ||||
|     @tidings = paginate tidings | ||||
|     @tidings = paginate(tidings.order(created_at: :desc), per_page: 10) | ||||
|     @onclick_time = current_user.click_time | ||||
|   end | ||||
| 
 | ||||
|   private | ||||
| 
 | ||||
|   def update_onclick_time! | ||||
|     current_user.onclick_time.touch(:onclick_time) | ||||
|   end | ||||
| end | ||||
| @ -1,9 +1,11 @@ | ||||
| json.extract! tiding, :id, :status, :viewed, :user_id, :tiding_type, :container_type, :parent_container_type | ||||
| json.extract! tiding, :id, :status, :viewed, :user_id, :tiding_type, :container_id, :container_type, :parent_container_id, :parent_container_type | ||||
| json.content tiding.content | ||||
| json.identifier tiding.try(:container).try(:identifier) rescue nil | ||||
| json.time tiding.how_long_time | ||||
| json.new_tiding tiding.unread?(@onclick_time) | ||||
| 
 | ||||
| json.trigger_user do | ||||
|   json.partial! 'users/user_simple', user: tiding.trigger_user | ||||
|   json.partial! 'users/user_simple', user: tiding.trigger_user_id.zero? ? User.find(1) : tiding.trigger_user | ||||
| end | ||||
| 
 | ||||
| json.attachments tiding.attachments, partial: 'attachments/attachment_small', as: :attachment | ||||
|  | ||||
					Loading…
					
					
				
		Reference in new issue