@ -75,7 +75,7 @@ class MessagesController < ApplicationController
@replies = paginateHelper messages_replies , 10
@reply = Message . new ( :subject = > " RE: #{ @message . subject } " )
render :action = > " show " , :layout = > " base_courses " #by young
els e
els if @proj ect
@reply_pages = Paginator . new @reply_count , REPLIES_PER_PAGE , page
@replies = @topic . children .
includes ( :author , :attachments , { :board = > :project } ) .
@ -86,6 +86,18 @@ class MessagesController < ApplicationController
@reply = Message . new ( :subject = > " RE: #{ @message . subject } " )
render :action = > " show " , :layout = > " base_projects " #by young
else
@reply_pages = Paginator . new @reply_count , REPLIES_PER_PAGE , page
@replies = @topic . children .
includes ( :author , :attachments , { :board = > :project } ) .
reorder ( " #{ Message . table_name } .created_on DESC " ) .
limit ( @reply_pages . per_page ) .
offset ( @reply_pages . offset ) .
all
@reply = Message . new ( :subject = > " RE: #{ @message . subject } " )
@organization = @org_subfield . organization
render :action = > " show " , :layout = > " base_org " #by young
end
end
@ -199,6 +211,8 @@ class MessagesController < ApplicationController
end
if params [ :user_activity_id ]
@user_activity_id = params [ :user_activity_id ]
@is_course = params [ :is_course ]
@is_board = params [ :is_board ]
respond_to do | format |
format . js
end
@ -219,39 +233,52 @@ class MessagesController < ApplicationController
@isReply = false
if @project
( render_403 ; return false ) unless @message . editable_by? ( User . current )
els e
els if @cours e
( render_403 ; return false ) unless @message . course_editable_by? ( User . current )
else
( render_403 ; return false ) unless @message . org_subfield_editable_by? ( User . current )
end
@message . safe_attributes = params [ :message ]
if request . post? && @message . save
attachments = Attachment . attach_files ( @message , params [ :attachments ] )
render_attachment_warning_if_needed ( @message )
flash [ :notice ] = l ( :notice_successful_update )
#flash[:notice] = l(:notice_successful_update )
@message . reload
if params [ :is_board ]
if params [ :is_course ] && params [ :is_course ] . to_i == 0
redirect_to user_activities_path ( User . current . id )
elsif params [ :is_course ] && params [ :is_course ] . to_i == 1 && params [ :is_board ] && params [ :is_board ] . to_i == 0
if @project
redirect_to project_boards_path ( @project )
redirect_to project_ path( @project )
elsif @course
redirect_to course_ boards _path( @course )
redirect_to course_ activity _path( @course )
end
else
redirect_to board_message_url ( @message . board , @message . root , :r = > ( @message . parent_id && @message . id ) )
end
elsif request . get? || request . post?
if params [ :is_board ]
elsif params [ :is_course ] && params [ :is_course ] . to_i == 1 && params [ :is_board ] && params [ :is_board ] . to_i == 1
if @project
redirect_to project_boards_path ( @project )
elsif @course
redirect_to course_boards_path ( @course )
end
else
respond_to do | format |
format . html {
layout_file = @project ? 'base_projects' : 'base_courses'
render :layout = > layout_file
}
end
redirect_to board_message_url ( @message . board , @message . root , :r = > ( @message . parent_id && @message . id ) )
end
elsif request . get? || request . post?
if params [ :is_course ] && params [ :is_board ]
@is_course = params [ :is_course ]
@is_board = params [ :is_board ]
end
respond_to do | format |
format . html {
if @project
layout_file = 'base_projects'
elsif @course
layout_file = 'base_courses'
elsif @org_subfield
@organization = @org_subfield . organization
layout_file = 'base_org'
end
render :layout = > layout_file
}
end
end
end
@ -260,31 +287,46 @@ class MessagesController < ApplicationController
def destroy
if @project
( render_403 ; return false ) unless @message . destroyable_by? ( User . current )
els e
els if @cours e
( render_403 ; return false ) unless @message . course_destroyable_by? ( User . current )
else
( render_403 ; return false ) unless @message . org_subfield_editable_by? ( User . current )
end
r = @message . to_param
@message . destroy
# modify by nwb
if @project
if params [ :is_board ]
redirect_to project_boards_url ( @project )
if params [ :is_course ] && params [ :is_course ] . to_i == 0
redirect_to user_activities_path ( User . current . id )
elsif params [ :is_course ] && params [ :is_course ] . to_i == 1 && params [ :is_board ] && params [ :is_board ] . to_i == 0
redirect_to project_path ( @project )
elsif params [ :is_course ] && params [ :is_course ] . to_i == 1 && params [ :is_board ] && params [ :is_board ] . to_i == 1
redirect_to project_boards_path ( @project )
elsif @message . parent
redirect_to board_message_url ( @board , @message . parent , :r = > r )
else
if @message . parent
redirect_to board_message_url ( @board , @message . parent , :r = > r )
else
redirect_to project_board_url ( @project , @board )
end
# redirect_to board_message_url(@board, @topic, :r => @reply)
redirect_to project_board_url ( @project , @board )
end
elsif @course
if params [ :is_course ] && params [ :is_course ] . to_i == 0
redirect_to user_activities_path ( User . current . id )
elsif params [ :is_course ] && params [ :is_course ] . to_i == 1 && params [ :is_board ] && params [ :is_board ] . to_i == 0
redirect_to course_activity_path ( @course )
elsif params [ :is_course ] && params [ :is_course ] . to_i == 1 && params [ :is_board ] && params [ :is_board ] . to_i == 1
redirect_to course_boards_path ( @course )
elsif @message . parent
redirect_to board_message_url ( @board , @message . parent , :r = > r )
else
redirect_to course_boards_path ( @course )
end
elsif @org_subfield
if params [ :is_board ]
redirect_to course_boards_url ( @course )
redirect_to organization_path( :id = > @org_subfield . organization_id , :org_subfield_id = > @org_subfield . id )
else
if @message . parent
redirect_to board_message_url ( @board , @message . parent , :r = > r )
else
redirect_to course_board_url ( @course , @board )
redirect_to organization_path( :id = > @org_subfield . organization_id , :org_subfield_id = > @org_subfield . i d)
end
end
end
@ -319,15 +361,25 @@ class MessagesController < ApplicationController
org_subfield_ids = params [ :org_subfields ]
@message = Message . find ( params [ :id ] )
# @message.update_attribute(:updated_on, Time.now)
type = @message . board . course_id . nil? ? " Project " :" Course "
# type = @message.board.course_id.nil? ? "Project":"Course "
org_subfield_ids . each do | field_id |
OrgSubfieldMessage . create ( :org_subfield_id = > field_id . to_i , :message_id = > @message . id , :message_type = > type )
org_acts = OrgActivity . where ( " container_type='OrgSubfield' and container_id=? and org_act_type='Message' and org_act_id=? " , field_id . to_i , @message . id )
if org_acts . all . size ( ) > 0
org_acts . first . update_attribute ( :updated_at , Time . now )
else
OrgActivity . create ( :container_type = > 'OrgSubfield' , :container_id = > field_id . to_i , :org_act_type = > 'Message' , :org_act_id = > @message . id , :user_id = > User . current . id )
@message . quotes = @message . quotes . nil? ? 1 : ( @message . quotes + 1 )
@message . save
board = OrgSubfield . find ( field_id ) . boards . first
mes = Message . create ( :board_id = > board . id , :subject = > @message . subject , :content = > @message . content , :author_id = > User . current . id ,
:created_on = > Time . now , :updated_on = > Time . now , :locked = > @message . locked , :sticky = > @message . sticky )
@message . attachments . each do | attach |
mes . attachments << Attachment . new ( :filename = > attach . filename , :disk_filename = > attach . disk_filename , :filesize = > attach . filesize , :content_type = > attach . content_type , :digest = > attach . digest ,
:downloads = > 0 , :author_id = > User . current . id , :created_on = > Time . now , :description = > attach . description , :disk_directory = > attach . disk_directory , :attachtype = > attach . attachtype ,
:is_public = > attach . is_public , :quotes = > 0 )
end
# OrgSubfieldMessage.create(:org_subfield_id => field_id.to_i, :message_id => mes.id, :message_type => type)
# org_acts = OrgActivity.where("container_type='OrgSubfield' and container_id=? and org_act_type='Message' and org_act_id=?", field_id.to_i, @message.id)
# if org_acts.all.size() > 0
# org_acts.first.update_attribute(:updated_at, Time.now)
# else
OrgActivity . create ( :container_type = > 'OrgSubfield' , :container_id = > field_id . to_i , :org_act_type = > 'Message' , :org_act_id = > mes . id , :user_id = > User . current . id )
# end
end
end
@ -347,6 +399,9 @@ class MessagesController < ApplicationController
@project = @board . project
elsif @board . course_id
@course = @board . course
else
@org_subfield = @board . org_subfield
@organization = @org_subfield
end
rescue ActiveRecord :: RecordNotFound