mirror of
https://github.com/basecamp/once-campfire.git
synced 2026-02-21 20:20:34 +09:00
27 lines
761 B
Ruby
27 lines
761 B
Ruby
class Rooms::InvolvementsController < ApplicationController
|
|
include RoomScoped
|
|
|
|
def show
|
|
@involvement = @membership.involvement
|
|
end
|
|
|
|
def update
|
|
@membership.update! involvement: params[:involvement]
|
|
|
|
broadcast_visibility_changes
|
|
redirect_to room_involvement_url(@room)
|
|
end
|
|
|
|
private
|
|
def broadcast_visibility_changes
|
|
case
|
|
when @room.direct?
|
|
# Do nothing
|
|
when @membership.involved_in_invisible?
|
|
broadcast_remove_to @membership.user, :rooms, target: [ @room, :list ]
|
|
when @membership.involvement_previously_was.inquiry.invisible?
|
|
broadcast_prepend_to @membership.user, :rooms, target: :shared_rooms, partial: "users/sidebars/rooms/shared", locals: { room: @room }
|
|
end
|
|
end
|
|
end
|