class AtWhoController < ApplicationController include InputSanitizeHelper before_action :load_vars before_action :check_users_permissions def users users = @team.search_users(@query).limit(Constants::ATWHO_SEARCH_LIMIT + 1) respond_to do |format| format.json do render json: { users: [render_to_string(partial: 'shared/smart_annotation/users.html.erb', locals: {users: users})], status: :ok } end end end def menu_items res = SmartAnnotation.new(current_user, current_team, @query) respond_to do |format| format.json do render json: { prj: res.projects, exp: res.experiments, tsk: res.my_modules, sam: res.samples, status: :ok } end end end def rep_items repository = Repository.find_by_id(params[:repository_id]) || Repository.active.accessible_by_teams(@team).first items = if repository && can_read_repository?(repository) SmartAnnotation.new(current_user, current_team, @query) .repository_rows(repository) else [] end respond_to do |format| format.json do render json: { res: [render_to_string(partial: 'shared/smart_annotation/repository_items.html.erb', locals: { repository_rows: items })], repository: repository.id, team: current_team.id, status: :ok } end end end def menu repositories = Repository.active.accessible_by_teams(@team) render json: { html: render_to_string({ partial: "shared/smart_annotation/menu.html.erb", locals: { repositories: repositories } }) } end def projects res = SmartAnnotation.new(current_user, current_team, @query) respond_to do |format| format.json do render json: { res: [render_to_string(partial: 'shared/smart_annotation/project_items.html.erb', locals: { projects: res.projects })], team: current_team.id, status: :ok } end end end def experiments res = SmartAnnotation.new(current_user, current_team, @query) respond_to do |format| format.json do render json: { res: [render_to_string(partial: 'shared/smart_annotation/experiment_items.html.erb', locals: { experiments: res.experiments })], team: current_team.id, status: :ok } end end end def my_modules res = SmartAnnotation.new(current_user, current_team, @query) respond_to do |format| format.json do render json: { res: [render_to_string(partial: 'shared/smart_annotation/my_module_items.html.erb', locals: { my_modules: res.my_modules })], team: current_team.id, status: :ok } end end end private def load_vars @team = Team.find_by_id(params[:id]) @query = params[:query] render_404 unless @team end def check_users_permissions render_403 unless can_read_team?(@team) end end