mirror of
https://github.com/wahyd4/ocelots.git
synced 2026-08-09 04:56:21 +10:00
88 lines
2.0 KiB
Ruby
88 lines
2.0 KiB
Ruby
require 'team_filter'
|
|
require 'mail'
|
|
|
|
class TeamsController < ApplicationController
|
|
include TeamFilter
|
|
|
|
def index
|
|
@memberships = current_person.memberships.select { |membership| membership.ended==nil }.sort_by {|mem| mem.team_name.downcase}
|
|
@view_membership = current_person.viewable_teams.sort_by {|team| team.name.downcase}
|
|
if params[:sortby]== 'CreateDate'
|
|
@memberships = @memberships.sort_by {|mem| mem.id}
|
|
@view_membership = @view_membership.sort_by {|team| team.id}
|
|
@sortby = params[:sortby]
|
|
end
|
|
@team = Team.new
|
|
@organisations = Organisation.find(:all)
|
|
end
|
|
|
|
def create
|
|
@teams = current_person.teams
|
|
@team = Team.new params[:team].merge creator: current_person
|
|
if @team.save
|
|
if org = current_person.organisation
|
|
org.teams << @team
|
|
end
|
|
|
|
current_person.teams << @team
|
|
|
|
redirect_to "/teams/#{@team.slug}"
|
|
else
|
|
@memberships = current_person.memberships
|
|
@view_membership = current_person.viewable_teams
|
|
render :index
|
|
end
|
|
end
|
|
|
|
def add
|
|
with_team do |team|
|
|
begin
|
|
current_person.invite(params[:emails], team)
|
|
message = 'All people invited'
|
|
result_status = 'success'
|
|
rescue => error
|
|
message = error.to_s
|
|
result_status = 'failed'
|
|
end
|
|
|
|
respond_to do |format|
|
|
format.json { render :json => {:message => message, :status => result_status} }
|
|
end
|
|
end
|
|
end
|
|
|
|
def show
|
|
with_team { render :show }
|
|
end
|
|
|
|
def avatars
|
|
with_team { render :avatars, layout: 'no_header' }
|
|
end
|
|
|
|
def quiz
|
|
with_team do |team|
|
|
@people = team.people.sample 5
|
|
@person = team.people.select {|person| !person.facts.empty?}.sample
|
|
if @person
|
|
@facts = @person.facts.sample 3
|
|
render :quiz
|
|
else
|
|
render :nofacts
|
|
end
|
|
end
|
|
end
|
|
|
|
def join
|
|
with_team do |team|
|
|
current_person.join team
|
|
redirect_to "/teams/#{team.slug}"
|
|
end
|
|
end
|
|
|
|
def quit
|
|
with_team do |team|
|
|
current_person.leave team
|
|
end
|
|
redirect_to "/teams"
|
|
end
|
|
end |